Abstract
In this article, we propose an application-specific demand paging mechanism for low-end embedded systems that have flash memory as secondary storage. These systems are not equipped with virtual memory. A small memory space called an execution buffer is used to page the code of an application. An application-specific page manager manages the buffer. The page manager is automatically generated by a compiler post-pass optimizer and combined with the application image. The post-pass optimizer analyzes the executable image and transforms function call/return instructions into calls to the page manager. As a result, each function in the code can be loaded into the memory on demand at runtime. To minimize the overhead incurred by the demand paging technique, code clustering algorithms are also presented. We evaluate our techniques with ten embedded applications, and our approach can reduce the code memory size by on average 39.5% with less than 10% performance degradation and on average 14% more energy consumption. Our demand paging technique provides embedded system designers with a trade-off control mechanism between the cost, performance, and energy efficiency in designing embedded systems. Embedded system designers can choose the code memory size depending on their cost, energy, and performance requirements.
- Appel, A. W. 2002. Modern Compiler Implementation in Java. Cambridge University Press. Google Scholar
Digital Library
- ARM. 2001. ARM Developer Suite Version 1.2: ARM Debug Target Guide. ARM Limited.Google Scholar
- ARM. 2007. ARM7TDMI-S. http://www.arm.com/products/CPUs/ARM7TDMIS.html.Google Scholar
- ARM. 2008. ELF for the ARM architecture. ABI release 2.07.Google Scholar
- Arun Kamat. 2007. Simplifying flash controller design. http://onfi.org.Google Scholar
- ATMEL. 2009. AT91SAM 32-bit ARM-based microcontrollers - Devices. http://www.atmel.com.Google Scholar
- Avissar, O. and Barua, R. 2002. An optimal memory allocation scheme for scratchpad-based embedded systems. ACM Trans. Embed. Comput. Syst. 1, 1, 6--26. Google Scholar
Digital Library
- Cytron, R. and Loewner, P. G. 1986. An automatic overlay generator. IBM J. Res. Devel. 30, 6, 603--608. Google Scholar
Digital Library
- De Bus, B., De Sutter, B., Van Put, L., Chanet, D., and De Bosschere, K. 2004. Link-Time optimization of ARM binaries. In Proceedings of the Conference on Languages, Computers and Tools for Embedded System (LCTES’04). 211--220. Google Scholar
Digital Library
- Egger, B., Kim, C., Jang, C., Nam, Y., Lee, J., and Min, S. L. 2006a. A dynamic code placement technique for scratchpad memory using postpass optimization. In Proceedings of the International Conference on Compilers, Architecture and Synthesis for Embedded Systems (CASES’06). 223--233. Google Scholar
Digital Library
- Egger, B., Lee, J., and Shin, H. 2006b. Scratchpad memory management for portable systems with a memory management unit. In Proceedings of the 6th ACM & IEEE International Conference on Embedded Software (EMSOFT’’06). 321--330. Google Scholar
Digital Library
- Francesco, P., Marchal, P., Atienza, D., Benini, L., Catthoor, F., and Mendias, J. M. 2004. An integrated hardware/software approach for run-time scratchpad management. In Proceedings of the 41st Annual ACM/IEEE Design Automation Conference (DAC’04). 238--243. Google Scholar
Digital Library
- Guthaus, M. R., Ringenberg, J. S., Ernst, D., Austin, T. M., Mudge, T., and Brown, R. B. 1998. MiBench: A free, a commercially representative embedded benchmark suite. In Proceedings of the 4th Annual Workshop on Workload Characterization. Google Scholar
Digital Library
- ITRS. 2008. International technology roadmap for semiconductors. http://www.itrs.net.Google Scholar
- Jain, P., Devadas, S., Engels, D., and Rudolph, L. 2001. Software-Assisted cache replacement mechanisms for embedded systems. In Proceedings of the International Conference on Computer Aided Design (ICCAD’01). 119--126. Google Scholar
Digital Library
- Kim, B., Cho, S., Choi, Y., and Choi, Y. 2004. OneNAND(TM): A high performance and low power memory solution for code and data storage. In Proceedings of the 20th Non-Volatile Semiconductor Workshop.Google Scholar
- Lee, C., Potkonjak, M., and Mangione-Smith, W. H. 1997. MediaBench: A tool for evaluating and synthesizing multimedia and communications systems. In Proceedings of the 30th International Symposium on Microarchitecture. Google Scholar
Digital Library
- M-Systems. 2003. Two technologies compared: NOR vs. NAND. White paper, 91-SR-012-04-8L, Rev 1.1.Google Scholar
- MOSAID Technologies Inc. 2007. Unleashing the next generation flash memory architecture: hyperlink NAND (HLNANDTM) flash. White paper.Google Scholar
- NXP. 2009. LPC2364, LPC2366, LPC2368, and LPC2378 device highlight. http://www.standardics.nxp.com.Google Scholar
- Panda, P. R., Dutt, N., and Nicolau, A. 1999. Memory Issues in Embedded Systems-on-Chip: Optimizations and Exploration. Kluwer Academic Publishers. Google Scholar
Digital Library
- Park, C., Seo, J., Bae, S., Kim, H., Kim, S., and Kim, B. 2003. A low-cost memory architecture with NAND XIP for mobile embedded systems. In Proceedings of the 1st IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS’03). Google Scholar
Digital Library
- Park, C., Kang, J.-U., Park, S.-Y., and Kim, J.-S. 2004a. Energy-Aware demand paging on NAND flash-based embedded storages. In Proceedings of the International Symposium on Low Power Electronics and Design (ISLPED’04). Google Scholar
Digital Library
- Park, C., Lim, J., Kwon, K., Lee, J., and Min, S. L. 2004b. Compiler-Assisted demand paging for embedded systems with flash memory. In Proceedings of the ACM Conference on Embedded Software (EMSOFT’04). Google Scholar
Digital Library
- Park, J.-H., Hur, S.-H., Lee, J.-H., Park, J.-T., Sel, J.-S., Kim, J.-W., Song, S.-B., Lee, J.-Y., Lee, J.-H., Son, S.-J., Kim, Y.-S., Park, M.-C., Chai, S.-J., Choi, J.-D., Chung, U.-I., Moon, J.-T., Kim, K.-T., Kim, K., and Ryu, B.-I. 2004c. 8Gb MLC (multi-level cell) NAND flash memory using 63nm process technology. In Technical Digest - International Electron Devices Meeting (IEDM). 873--876.Google Scholar
- Samsung Electronics Co., Ltd. 2007. Samsung k9f2g08r0a nand flash datasheet. Revision 1.3.Google Scholar
- Silberschatz, A., Galvin, P., and Gagne, G. 2003. Applied Operating System Concepts. John Wiley and Sons. Google Scholar
Digital Library
- Steinke, S., Wehmeyer, L., Lee, B.-S., and Marwedel, P. 2002. Assigning program and data objects to scratchpad for energy reduction. In Proceedings of the Conference on Design, Automation and Test in Europ (DATE’02). 409--417. Google Scholar
Digital Library
- Thoziyoor, H., Ahn, J. H., Monchiero, M., Brockman, J. B., and Jouppi, N. P. 2008a. A comprehensive memory modeling tool and its application to the design and analysis of future memory hierarchies. In Proceedings of the International Symposium on Computer Architecture (ISCA’08). Google Scholar
Digital Library
- Thoziyoor, S., Muralimanohar, N., Ahn, J. H., and Jouppi, N. P. 2008b. Cacti 5.1. Tech. rep. HPL-2008-20, Hewlett-Packard.Google Scholar
- Tomiyama, H. and Yasuura, H. 1997. Code placement techniques for cache miss rate reduction. ACM Trans. Des. Autom. Electron. Syst. 2, 4, 410--429. Google Scholar
Digital Library
- Verma, M., Wehmeyer, L., and Marwedel, P. 2004. Cache-Aware scratchpad allocation algorithm. In Proceedings of the Conference on Design, Automation and Test in Europ (DATE’04). 1264--1269. Google Scholar
Digital Library
Index Terms
Demand Paging Techniques for Flash Memory Using Compiler Post-Pass Optimizations
Recommendations
Compiler-assisted demand paging for embedded systems with flash memory
EMSOFT '04: Proceedings of the 4th ACM international conference on Embedded softwareIn this paper, we propose a novel, application specific demand paging mechanism for low-end embedded systems with flash memory as secondary storage. These systems are not equipped with virtual memory. A small memory space called an execution buffer is ...
Energy-aware demand paging on NAND flash-based embedded storages
ISLPED '04: Proceedings of the 2004 international symposium on Low power electronics and designThe ever-increasing requirement for high-performance and huge-capacity memories of emerging embedded applications has led to the widespread adoption of SDRAM and NAND flash memory as main and secondary memories, respectively. In particular, the use of ...
Energy and Performance Optimization of Demand Paging With OneNAND Flash
New fusion memory devices consisting of multiple heterogeneous memory components in a single die or package offer efficient ways to optimize embedded systems in terms of energy, performance, and cost. Samsung Electronics recently announced the OneNAND ...






Comments