Design tradeoffs for software-managed TLBs
ACM Transactions on Computer Systems (TOCS)
Simple and effective analysis of statically-typed object-oriented programs
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Live memory analysis for garbage collection in embedded systems
Proceedings of the ACM SIGPLAN 1999 workshop on Languages, compilers, and tools for embedded systems
Compiler-driven cached code compression schemes for embedded ILP processors
Proceedings of the 32nd annual ACM/IEEE international symposium on Microarchitecture
A model and stack implementation of multiple environments
Communications of the ACM
Uniprocessor Virtual Memory without TLBs
IEEE Transactions on Computers
JouleTrack: a web based tool for software energy profiling
Proceedings of the 38th annual Design Automation Conference
ARM Architecture Reference Manual
ARM Architecture Reference Manual
Modern Compiler Implementation in C
Modern Compiler Implementation in C
Data Compression: The Complete Reference
Data Compression: The Complete Reference
Computer architecture: a quantitative approach
Computer architecture: a quantitative approach
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
Queue - Embedded Systems
Data Compression Transformations for Dynamically Allocated Data Structures
CC '02 Proceedings of the 11th International Conference on Compiler Construction
A Study on a Garbage Collector for Embedded Applications
Proceedings of the 15th symposium on Integrated circuits and systems design
RTAS '99 Proceedings of the Fifth IEEE Real-Time Technology and Applications Symposium
Code Compression Techniques for Embedded Systems and Their Effectiveness
ISVLSI '03 Proceedings of the IEEE Computer Society Annual Symposium on VLSI (ISVLSI'03)
Tuning Garbage Collection in an Embedded Java Environment
HPCA '02 Proceedings of the 8th International Symposium on High-Performance Computer Architecture
Capriccio: scalable threads for internet services
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
Compiler-decided dynamic memory allocation for scratch-pad based embedded systems
Proceedings of the 2003 international conference on Compilers, architecture and synthesis for embedded systems
The Performance and Energy Consumption of Embedded Real-Time Operating Systems
IEEE Transactions on Computers
Proceedings of the conference on Design, Automation and Test in Europe - Volume 1
Segment protection for embedded systems using run-time checks
Proceedings of the 2005 international conference on Compilers, architectures and synthesis for embedded systems
MiBench: A free, commercially representative embedded benchmark suite
WWC '01 Proceedings of the Workload Characterization, 2001. WWC-4. 2001 IEEE International Workshop
The case for compressed caching in virtual memory systems
ATEC '99 Proceedings of the annual conference on USENIX Annual Technical Conference
Stack size analysis for interrupt-driven programs
SAS'03 Proceedings of the 10th international conference on Static analysis
MTSS: Multitask stack sharing for embedded systems
ACM Transactions on Embedded Computing Systems (TECS)
Rethinking Java call stack design for tiny embedded devices
Proceedings of the 13th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, Tools and Theory for Embedded Systems
Enabling trusted scheduling in embedded systems
Proceedings of the 28th Annual Computer Security Applications Conference
MemSafe: ensuring the spatial and temporal memory safety of C at runtime
Software—Practice & Experience
Surviving sensor node failures by MMU-less incremental checkpointing
Journal of Systems and Software
Hi-index | 0.00 |
Embedded systems usually lack virtual memory and are vulnerable to memory overflow since they lack a mechanism to detect overflow or use swap space thereafter. We present a method to detect memory overflows using compiler-inserted software run-time checks. Its overheads in run-time and energy are 1.35 and 1.12%, respectively. Detection of overflow allows system-specific remedial action. We also present techniques to grow the stack or heap segment after they overflow, into previously unutilized space, such as dead variables, free holes in the heap, and space freed by compressing live variables. These may avoid the out-of-memory error if the space recovered is enough to complete execution. The reuse methods are able to grow the stack or heap beyond its overflow by an amount that varies widely by application---the amount of recovered space ranges from 0.7 to 93.5% of the combined stack and heap size.