{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:25:54Z","timestamp":1750307154388,"version":"3.41.0"},"reference-count":32,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2011,11,1]],"date-time":"2011-11-01T00:00:00Z","timestamp":1320105600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/501100003725","name":"National Research Foundation of Korea","doi-asserted-by":"publisher","award":["2009-00815692011-0016460"],"award-info":[{"award-number":["2009-00815692011-0016460"]}],"id":[{"id":"10.13039\/501100003725","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Embed. Comput. Syst."],"published-print":{"date-parts":[[2011,11]]},"abstract":"<jats:p>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.<\/jats:p>","DOI":"10.1145\/2043662.2043664","type":"journal-article","created":{"date-parts":[[2011,11,30]],"date-time":"2011-11-30T13:58:46Z","timestamp":1322661526000},"page":"1-29","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":1,"title":["Demand Paging Techniques for Flash Memory Using Compiler Post-Pass Optimizations"],"prefix":"10.1145","volume":"10","author":[{"given":"Seungkyun","family":"Kim","sequence":"first","affiliation":[{"name":"Seoul National University"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Kiwon","family":"Kwon","sequence":"additional","affiliation":[{"name":"QUALCOMM Korea"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Chihun","family":"Kim","sequence":"additional","affiliation":[{"name":"NEXON Co."}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Choonki","family":"Jang","sequence":"additional","affiliation":[{"name":"Seoul National University"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jaejin","family":"Lee","sequence":"additional","affiliation":[{"name":"Seoul National University"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Sang Lyul","family":"Min","sequence":"additional","affiliation":[{"name":"Seoul National University"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2011,11]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"crossref","unstructured":"Appel A. W. 2002. Modern Compiler Implementation in Java. Cambridge University Press. Appel A. W. 2002. Modern Compiler Implementation in Java . Cambridge University Press.","DOI":"10.1017\/CBO9780511811432"},{"key":"e_1_2_1_2_1","unstructured":"ARM. 2001. ARM Developer Suite Version 1.2: ARM Debug Target Guide. ARM Limited. ARM . 2001. ARM Developer Suite Version 1.2: ARM Debug Target Guide . ARM Limited."},{"key":"e_1_2_1_3_1","unstructured":"ARM. 2007. ARM7TDMI-S. http:\/\/www.arm.com\/products\/CPUs\/ARM7TDMIS.html. ARM . 2007. ARM7TDMI-S. http:\/\/www.arm.com\/products\/CPUs\/ARM7TDMIS.html."},{"key":"e_1_2_1_4_1","unstructured":"ARM. 2008. ELF for the ARM architecture. ABI release 2.07. ARM . 2008. ELF for the ARM architecture. ABI release 2.07."},{"key":"e_1_2_1_5_1","unstructured":"Arun Kamat. 2007. Simplifying flash controller design. http:\/\/onfi.org. Arun Kamat . 2007. Simplifying flash controller design. http:\/\/onfi.org."},{"key":"e_1_2_1_6_1","unstructured":"ATMEL. 2009. AT91SAM 32-bit ARM-based microcontrollers - Devices. http:\/\/www.atmel.com. ATMEL . 2009. AT91SAM 32-bit ARM-based microcontrollers - Devices. http:\/\/www.atmel.com."},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/581888.581891"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1147\/rd.306.0603"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/997163.997194"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/1176760.1176788"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/1176887.1176933"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/996566.996634"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.5555\/1128020.1128563"},{"key":"e_1_2_1_14_1","unstructured":"ITRS. 2008. International technology roadmap for semiconductors. http:\/\/www.itrs.net. ITRS . 2008. International technology roadmap for semiconductors. http:\/\/www.itrs.net."},{"volume-title":"Proceedings of the International Conference on Computer Aided Design (ICCAD\u201901)","author":"Jain P.","key":"e_1_2_1_15_1"},{"volume-title":"Proceedings of the 20th Non-Volatile Semiconductor Workshop.","author":"Kim B.","key":"e_1_2_1_16_1"},{"volume-title":"Proceedings of the 30th International Symposium on Microarchitecture.","author":"Lee C.","key":"e_1_2_1_17_1"},{"key":"e_1_2_1_18_1","unstructured":"M-Systems. 2003. Two technologies compared: NOR vs. NAND. White paper 91-SR-012-04-8L Rev 1.1. M-Systems . 2003. Two technologies compared: NOR vs. NAND. White paper 91-SR-012-04-8L Rev 1.1."},{"key":"e_1_2_1_19_1","unstructured":"MOSAID Technologies Inc. 2007. Unleashing the next generation flash memory architecture: hyperlink NAND (HLNANDTM) flash. White paper. MOSAID Technologies Inc. 2007. Unleashing the next generation flash memory architecture: hyperlink NAND (HLNAND TM ) flash. White paper."},{"key":"e_1_2_1_20_1","unstructured":"NXP. 2009. LPC2364 LPC2366 LPC2368 and LPC2378 device highlight. http:\/\/www.standardics.nxp.com. NXP . 2009. LPC2364 LPC2366 LPC2368 and LPC2378 device highlight. http:\/\/www.standardics.nxp.com."},{"key":"e_1_2_1_21_1","doi-asserted-by":"crossref","unstructured":"Panda P. R. Dutt N. and Nicolau A. 1999. Memory Issues in Embedded Systems-on-Chip: Optimizations and Exploration. Kluwer Academic Publishers. Panda P. R. Dutt N. and Nicolau A. 1999. Memory Issues in Embedded Systems-on-Chip: Optimizations and Exploration . Kluwer Academic Publishers.","DOI":"10.1007\/978-1-4615-5107-2"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/944645.944684"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/1013235.1013317"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/1017753.1017775"},{"volume-title":"Technical Digest - International Electron Devices Meeting (IEDM). 873--876","author":"Park J.-H.","key":"e_1_2_1_25_1"},{"key":"e_1_2_1_26_1","unstructured":"Samsung Electronics Co. Ltd. 2007. Samsung k9f2g08r0a nand flash datasheet. Revision 1.3. Samsung Electronics Co. Ltd. 2007. Samsung k9f2g08r0a nand flash datasheet. Revision 1.3."},{"key":"e_1_2_1_27_1","unstructured":"Silberschatz A. Galvin P. and Gagne G. 2003. Applied Operating System Concepts. John Wiley and Sons. Silberschatz A. Galvin P. and Gagne G. 2003. Applied Operating System Concepts . John Wiley and Sons."},{"volume-title":"Proceedings of the Conference on Design, Automation and Test in Europ (DATE\u201902)","author":"Steinke S.","key":"e_1_2_1_28_1"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA.2008.16"},{"key":"e_1_2_1_30_1","unstructured":"Thoziyoor S. Muralimanohar N. Ahn J. H. and Jouppi N. P. 2008b. Cacti 5.1. Tech. rep. HPL-2008-20 Hewlett-Packard. Thoziyoor S. Muralimanohar N. Ahn J. H. and Jouppi N. P. 2008b. Cacti 5.1. Tech. rep. HPL-2008-20 Hewlett-Packard."},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/268424.268469"},{"volume-title":"Proceedings of the Conference on Design, Automation and Test in Europ (DATE\u201904)","author":"Verma M.","key":"e_1_2_1_32_1"}],"container-title":["ACM Transactions on Embedded Computing Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2043662.2043664","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2043662.2043664","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T09:54:19Z","timestamp":1750240459000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2043662.2043664"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2011,11]]},"references-count":32,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2011,11]]}},"alternative-id":["10.1145\/2043662.2043664"],"URL":"https:\/\/doi.org\/10.1145\/2043662.2043664","relation":{},"ISSN":["1539-9087","1558-3465"],"issn-type":[{"type":"print","value":"1539-9087"},{"type":"electronic","value":"1558-3465"}],"subject":[],"published":{"date-parts":[[2011,11]]},"assertion":[{"value":"2008-05-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2010-04-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2011-11-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}