ACM Home Page
Please provide us with feedback. Feedback
Memory overflow protection for embedded systems using run-time checks, reuse and compression
Full text PdfPdf (254 KB)
Source International Conference on Compilers, Architecture and Synthesis for Embedded Systems archive
Proceedings of the 2004 international conference on Compilers, architecture, and synthesis for embedded systems table of contents
Washington DC, USA
SESSION: Reliability and security table of contents
Pages: 280 - 291  
Year of Publication: 2004
ISBN:1-58113-890-3
Authors
Surupa Biswas  Univ. of MD, College Park, MD
Matthew Simpson  Clemson University
Rajeev Barua  Univ. of MD, College Park, MD
Sponsor
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 58,   Citation Count: 6
Additional Information:

abstract   references   cited by   index terms   review   collaborative colleagues  

Tools and Actions: Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1023833.1023872
What is a DOI?

ABSTRACT

Out-of-memory errors are a serious source of unreliability in most embedded systems. Applications run out of main memory because of the frequent difficulty of estimating the memory requirement before deployment, either because it depends on input data, or because certain language features prevent estimation. The typical lack of disks and virtual memory in embedded systems has two serious consequences when an out-of-memory error occurs. First, there is no swap space for the application to grow into, and the system crashes. Second, since protection from virtual memory is usually absent, the fact that a segment has exceeded its bounds is not even detected and hence no pre-crash remedial action is possible.This work improves system reliability in two ways. First it proposes a low-overhead system of run-time checks by which the out-of-memory errors are detected just before they will happen, by using carefully optimized compiler-inserted run-time check code. Such error detection enables the designer to incorporate system-specific remedial action, such as transfer to manual control, shutting down of non-critical tasks, or other actions. Second, this work proposes five related techniques that can grow the stack or heap segment after it is out of memory, into previously un-utilized space such as dead variables and space freed by compressed live variables. These techniques can avoid the out-of-memory error if the extra space recovered is enough to complete execution.Results from our benchmarks show that the overheads from the system of run-time checks for detecting memory overflow are extremely low: the run-time and code-size overheads are 1.1% and 0.09% on average. When the reuse functionality is included, the run-time and code-size overheads increase to only 3.2%and 2.33%, but the method is able to grow the stack or heap beyond its overflow by an amount that ranges from 0.7% to 93.5% of the combined stack and heap size.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
High availability design for embedded systems. Technical report, Wind River, Inc. http://www.windriver.com/-whitepapers/high availability design.html.
 
2
 
3
Atmel Microcontrollers based on 8051 Architecture. http://www.atmel.com/products/8051.
 
4
Joel F. Bartlett. Compacting Garbage Collection with Ambiguous Roots. Technical report, DEC Western Research Laboratory, Palo Alto, CA, February 1988.
5
 
6
 
7
D. Brylow, N. Damgaard, and J. Palsberg. Stack-size Estimation for Interrupt-driven Microcontrollers. Technical report, Purdue University, June 2000. http://www.brics.dk/ damgaard/Download/zilog-test.pdf.
 
8
9
10
 
11
Document No. ARM DDI 0084D, ARM Ltd. ARM7TDMI-S Data sheet, October 1998.
 
12
Michael Durrant. Running Linux on low cost, low power MMU-less processors. August 2000. http://www.linuxdevices.com/articles/AT6245686197.html.
 
13
 
14
M. Game and A. Booker. Codepack: Code compression for PowerPC processors. MicroNews 5(1), 1999.
 
15
 
16
Intel i960Sx 32-bit Microprocessor. Intel Corporation. http://www.intel.com/design/i960/documentation/docs sx.htm.
 
17
David Kleidermacher and Mark Griglock. Safety-Critical Operating Systems. Embedded Systems Programming, 14(10), September 2001. http://www.embedded.com/story/OEG20010829S0055.
 
18
 
19
 
20
Doug Lea. A Memory Allocator. April 2000. http://gee.cs.oswego.edu/dl/html/malloc.html.
 
21
C.D. Lo. The Design of a Self-Maintained Memory Module for Real-Time Systems. In The 3rd IEEE International Workshop on System-on-Chip for Real-Time Applications, Alberta, Canada, July 2003. IEEE.
 
22
Windows CE.NET. Microsoft Corporation. http://www.microsoft.com/embedded/ce.net/default.aspx.
 
23
Motorola. M68000 User's Manual. Prentice Hall, Englewood Cliffs, NJ.
 
24
M-CORE - MMC2001 Reference Manual. Motorola Corporation, 1998. http://www.motorola.com/SPS/-MCORE/info documentation.htm.
25
26
 
27
Wind River. High Availability Design for Embedded Systems. http://www.windriver.com/whitepapers/-highavailability design.html.
 
28
Matthew Simpson, Surupa Biswas, and Rajeev Barua. Analysis of Compression Algorithms for Program Data. Technical report, U. of Maryland, ECE department, August 2003. http://www.ece.umd.edu/ barua/matt-compress-tr.pdf.
 
29
30
 
31
 
32
MSP430 Ultra-Low-Power MCUs. Texas Instruments, 2004. http://focus.ti.com/lit/ml/slab034g/slab034g.pdf.
33
 
34
Paul R. Wilson, Scott F. Kaplan, and Yannis Smaragdakis. The case for compressed caching in virtual memory systems. In Proceedings of the USENIX Annual Technical Conference, Monterey, CA, June 1999.
 
35



REVIEW

"David Beaulieu : Reviewer"

This paper describes compiler techniques that can improve the reliability of embedded systems, by detecting and alleviating out-of-memory errors caused by overflow of stack or heap memory. The authors acknowledge the difficulty of estimating stack  more...

Collaborative Colleagues:
Surupa Biswas: colleagues
Matthew Simpson: colleagues
Rajeev Barua: colleagues