ACM Home Page
Please provide us with feedback. Feedback
Quasistatic shared libraries and XIP for memory footprint reduction in MMU-less embedded systems
Full text PdfPdf (618 KB)
Source
ACM Transactions on Embedded Computing Systems (TECS) archive
Volume 8 ,  Issue 1  (December 2008) table of contents
Article No. 6  
Year of Publication: 2008
ISSN:1539-9087
Authors
Jiyong Park  Seoul National University, Seoul, South Korea
Jaesoo Lee  Seoul National University, Seoul, South Korea
Saehwa Kim  Hankuk University of Foreign Studies, Gyeonggido, South Korea
Seongsoo Hong  Seoul National University, Seoul, South Korea
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 21,   Downloads (12 Months): 145,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

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

ABSTRACT

Despite a rapid decrease in the price of solid state memory devices, system memory is still a very precious resource in embedded systems. The use of shared libraries and execution-in-place (XIP) is known to be effective in significantly reducing memory usage. Unfortunately, many resource-constrained embedded systems lack an MMU, making it extremely difficult to support these techniques. To address this problem, we propose a novel shared library technique called a quasi-static shared library and an XIP, both based on our enhanced position independent code technique. In our quasistatic shared libraries, global symbols are bound to pseudoaddresses at linking time and actual physical addresses are bound at loading time. Unlike conventional shared libraries, they do not require symbol tables that take up valuable memory space and, therefore, allow for expedited address translation at runtime. Our XIP technique is facilitated by our enhanced position independent code where a data section can be arbitrarily located. Both the shared library and XIP techniques are made possible by emulating an MMU's memory mapping feature with a data section base register (DSBR) and a data section base table (DSBT).

We have implemented these proposed techniques in a commercial ADSL (Asymmetric Digital Subscriber Line) home network gateway equipped with an MMU-less ARM7TDMI processor core, 2MB flash memory, and 16MB RAM. We measured its memory usage and evaluated its performance overhead by conducting a series of experiments. These experiments clearly demonstrate the effectiveness of our techniques in reducing memory usage. The results are impressive: 35% reduction in flash memory usage when using only the shared library and 30% reduction in RAM usage when using the shared library and XIP together. These results were achieved with only a negligible performance penalty of less than 4%. Even though these techniques were applied to uClinux-based embedded systems, they can be used for any MMU-less real-time operating system.


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
Advanced Risc Machines, Ltd. 1995. An introduction to THUMB. http://www.cse.unsw.edu.au/~pcb/LPC210x/Thumb_intro.pdf.
 
2
Advanced Risc Machines, Ltd. 2003. Procedure call standard for the ARM architecture. http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042c/IHI0042C_aapcs.pdf.
 
3
Arnold, J. 1986. Shared libraries on UNIX System V. In Proceedings of the USENIX Summer Conference. USENIX, Berkeley, CA.
4
 
5
 
6
 
7
 
8
 
9
Cadenux. 2002. Cadenux XFLAG shared libraries. http://www.cadenux.com/xflat/.
 
10
 
11
Choudhuri, S. and Givargis, T. 2005. Software virtual memory management for MMU-less embedded systems. Tech. rep. 05-16. University of California, Irvine.
 
12
 
13
Gingell, R., Lee, M., Dang, X., and Weeks, M. 1987. Shared libraries in SunOS. In Proceedings of the USENIX Conference. USENIX, Berkeley, CA.
14
 
15
16
 
17
18
 
19
 
20
Mahlke, S., Chen, W., Chang, P., and Hwu, W. 1992. Scalar program performance on multiple-instruction-issue processors with a limited number of registers. In Proceedings of the 25th Annual Hawaii International Conference on System Sciences (HICSS'25). IEEE, Los Alamitos, CA, 1--2.
 
21
 
22
 
23
Microsoft. 2006. Visual studio, microsoft portable executable and common object file format specification, Revision 8.0. http://www.microsoft.com/whdc/system/platform/firmware/PECOFF.mspx.
24
 
25
26
27
 
28
Peacock, C. 2005. uClinux - BFLT binary flat format. http://www.beyondlogic.org/uClinux/bflt.htm.
 
29
Pietrek, M. 2002. An in-depth look into the Win32 portable executable file format. MSDN Mag. 17, 2, 80--90.
30
 
31
 
32
Sabatella, M. 1990. Issues in shared library design. In Proceedings of the USENIX Summer Conference. USENIX, Berkeley, CA.
 
33
34
 
35
Stallman, R. M. 1999. Using and Porting the GNU Compiler Collection. Free Software Foundation.
 
36
Thomas, R. and Reddy, B. 2006. Dynamic linking in Linux and Windows. http://www.securityfocus.com/infocus/1872.
 
37
Tool Interface Standards Committee. 1995. Executable and linking format (ELF) specification version 1.2. Tool Interface Standards Committee.
 
38
Tremaine, R. and Franaszek, P. 2001. IBM memory expansion technology (MXT). IBM J. Resear. Devel. 45, 2, 271--285.
 
39
uClinux. uClinux Embedded Linux/Microcontroller Project. http://www.uClinux.org/.
 
40
Verneer, D. 1991. eXecute-in-place. Memory Card Mag.
 
41
42
 
43
Yang, L., Dick, R., Lekatsas, H., and Chakradhar, S. 2006. Online memory compression for embedded systems. ACM Trans. Embed. Comput. Syst. 5, 4, 719--752.
 
44
Zucker, S. and Karhi, K. 1995. System V application binary interface: PowerPC processor supplement. SunSoft, Santa Carla, CA.

Collaborative Colleagues:
Jiyong Park: colleagues
Jaesoo Lee: colleagues
Saehwa Kim: colleagues
Seongsoo Hong: colleagues