skip to main content
research-article

Demand Paging Techniques for Flash Memory Using Compiler Post-Pass Optimizations

Published:01 November 2011Publication History
Skip Abstract Section

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.

References

  1. Appel, A. W. 2002. Modern Compiler Implementation in Java. Cambridge University Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. ARM. 2001. ARM Developer Suite Version 1.2: ARM Debug Target Guide. ARM Limited.Google ScholarGoogle Scholar
  3. ARM. 2007. ARM7TDMI-S. http://www.arm.com/products/CPUs/ARM7TDMIS.html.Google ScholarGoogle Scholar
  4. ARM. 2008. ELF for the ARM architecture. ABI release 2.07.Google ScholarGoogle Scholar
  5. Arun Kamat. 2007. Simplifying flash controller design. http://onfi.org.Google ScholarGoogle Scholar
  6. ATMEL. 2009. AT91SAM 32-bit ARM-based microcontrollers - Devices. http://www.atmel.com.Google ScholarGoogle Scholar
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. Cytron, R. and Loewner, P. G. 1986. An automatic overlay generator. IBM J. Res. Devel. 30, 6, 603--608. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. ITRS. 2008. International technology roadmap for semiconductors. http://www.itrs.net.Google ScholarGoogle Scholar
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle Scholar
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. M-Systems. 2003. Two technologies compared: NOR vs. NAND. White paper, 91-SR-012-04-8L, Rev 1.1.Google ScholarGoogle Scholar
  19. MOSAID Technologies Inc. 2007. Unleashing the next generation flash memory architecture: hyperlink NAND (HLNANDTM) flash. White paper.Google ScholarGoogle Scholar
  20. NXP. 2009. LPC2364, LPC2366, LPC2368, and LPC2378 device highlight. http://www.standardics.nxp.com.Google ScholarGoogle Scholar
  21. Panda, P. R., Dutt, N., and Nicolau, A. 1999. Memory Issues in Embedded Systems-on-Chip: Optimizations and Exploration. Kluwer Academic Publishers. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle Scholar
  26. Samsung Electronics Co., Ltd. 2007. Samsung k9f2g08r0a nand flash datasheet. Revision 1.3.Google ScholarGoogle Scholar
  27. Silberschatz, A., Galvin, P., and Gagne, G. 2003. Applied Operating System Concepts. John Wiley and Sons. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  29. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  30. Thoziyoor, S., Muralimanohar, N., Ahn, J. H., and Jouppi, N. P. 2008b. Cacti 5.1. Tech. rep. HPL-2008-20, Hewlett-Packard.Google ScholarGoogle Scholar
  31. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  32. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Demand Paging Techniques for Flash Memory Using Compiler Post-Pass Optimizations

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!