{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:24:01Z","timestamp":1750307041294,"version":"3.41.0"},"reference-count":38,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2012,6,1]],"date-time":"2012-06-01T00:00:00Z","timestamp":1338508800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/501100004085","name":"Ministry of Education, Science and Technology","doi-asserted-by":"publisher","award":["BK21"],"award-info":[{"award-number":["BK21"]}],"id":[{"id":"10.13039\/501100004085","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Archit. Code Optim."],"published-print":{"date-parts":[[2012,6]]},"abstract":"<jats:p>There is an increasing interest in explicitly managed memory hierarchies, where a hierarchy of distinct memories is exposed to the programmer and managed explicitly in software. These hierarchies can be found in typical embedded systems and an emerging class of multicore architectures. To run an application that requires more code memory than the available higher-level memory, typically an overlay structure is needed. The overlay structure is generated manually by the programmer or automatically by a specialized linker. Manual code overlaying requires the programmer to deeply understand the program structure for maximum memory savings as well as minimum performance degradation. Although the linker can automatically generate the code overlay structure, its memory savings are limited and it even brings significant performance degradation because traditional techniques do not consider the program context. In this article, we propose an automatic code overlay generation technique that overcomes the limitations of traditional automatic code overlaying techniques. We are dealing with a system context that imposes two distinct constraints: (1) no hardware support for address translation and (2) a spatially and temporally coarse grained faulting mechanism at the function level. Our approach addresses those two constraints as efficiently as possible. Our technique statically computes the Worst-Case Number of Conflict misses (WCNC) between two different code segments using path expressions. Then, it constructs a static temporal relationship graph with the WCNCs and emits an overlay structure for a given higher-level memory size. We also propose an inter-procedural partial redundancy elimination technique that minimizes redundant code copying caused by the generated overlay structure. Experimental results show that our approach is promising.<\/jats:p>","DOI":"10.1145\/2207222.2207226","type":"journal-article","created":{"date-parts":[[2012,6,15]],"date-time":"2012-06-15T15:31:37Z","timestamp":1339774297000},"page":"1-32","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":6,"title":["Automatic code overlay generation and partially redundant code fetch elimination"],"prefix":"10.1145","volume":"9","author":[{"given":"Choonki","family":"Jang","sequence":"first","affiliation":[{"name":"Samsung Electronics"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jaejin","family":"Lee","sequence":"additional","affiliation":[{"name":"Seoul National University"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Bernhard","family":"Egger","sequence":"additional","affiliation":[{"name":"Seoul National University"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Soojung","family":"Ryu","sequence":"additional","affiliation":[{"name":"Samsung Electronics"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2012,6,15]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/207110.207157"},{"key":"e_1_2_1_2_1","volume-title":"Compilers: Principles, Techniques, And Tools","author":"Aho A. V.","year":"2006","edition":"2"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/1023833.1023869"},{"key":"e_1_2_1_4_1","unstructured":"ARM Ltd. 2009. http:\/\/www.arm.com.  ARM Ltd. 2009. http:\/\/www.arm.com."},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/774789.774805"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/277650.277653"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1147\/rd.306.0603"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1176760.1176788"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/1176887.1176933"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/1450058.1450094"},{"volume-title":"Proceedings of the 30th annual ACM\/IEEE international symposium on Microarchitecture. IEEE Computer Society","author":"Gloy N.","key":"e_1_2_1_11_1"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/1023833.1023870"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.5555\/1128020.1128563"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/258915.258931"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/1289927.1289944"},{"key":"e_1_2_1_16_1","unstructured":"IBM. 2007.Software Development Kit for Multicore Acceleration version 3.0 Programmer's Guide. IBM.  IBM. 2007.Software Development Kit for Multicore Acceleration version 3.0 Programmer's Guide. IBM."},{"key":"e_1_2_1_17_1","unstructured":"IBM Sony and Toshiba. 2007. Cell broadband engine architecture. IBM. http:\/\/www.ibm.com\/developerworks\/power\/cell\/.  IBM Sony and Toshiba. 2007. Cell broadband engine architecture. IBM. http:\/\/www.ibm.com\/developerworks\/power\/cell\/."},{"key":"e_1_2_1_18_1","unstructured":"Intel Corp. 2004. Intel XScale Core Developer's Manual. http:\/\/www.intel.com.  Intel Corp. 2004. Intel XScale Core Developer's Manual. http:\/\/www.intel.com."},{"key":"e_1_2_1_19_1","unstructured":"ISO\/IEC. 1996. IS 13818-3 information technology - generic coding of moving pictures and associated audio: Audio. MP3.  ISO\/IEC. 1996. IS 13818-3 information technology - generic coding of moving pictures and associated audio: Audio. MP3."},{"volume-title":"Proceedings of the 21st IEEE International Conference on Application-Specific Systems Architectures and Processors (ASAP). 13--20","author":"Jung S. C.","key":"e_1_2_1_20_1"},{"volume-title":"Proceedings of the 4th International Symposium on High-Performance Computer Architecture (HPCA'98)","author":"Kalamatianos J.","key":"e_1_2_1_21_1"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/143095.143136"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/301618.301678"},{"volume-title":"Proceedings of the 30th annual ACM\/IEEE international symposium on Microarchitecture. IEEE Computer Society","author":"Lee C.","key":"e_1_2_1_24_1"},{"key":"e_1_2_1_25_1","unstructured":"Levine J. R. 2000. Linkers and Loaders. Morgan Kaufmann.   Levine J. R. 2000. Linkers and Loaders. Morgan Kaufmann."},{"key":"e_1_2_1_26_1","unstructured":"Marvell. 2009. Marvell PXA3xx processor family. http:\/\/www.marvell.com.  Marvell. 2009. Marvell PXA3xx processor family. http:\/\/www.marvell.com."},{"volume-title":"Proceedings of the ACM\/IEEE Conference on Supercomputing (SC'08)","author":"Mattson T. G.","key":"e_1_2_1_27_1"},{"volume-title":"Proceedings of the 15th International Conference on High Performance Computing (HiPC'08)","author":"Pabalkar A.","key":"e_1_2_1_28_1"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/93542.93550"},{"key":"e_1_2_1_30_1","unstructured":"SPEC. 2000. SPEC. http:\/\/www.spec.org\/benchmarks.html.  SPEC. 2000. SPEC. http:\/\/www.spec.org\/benchmarks.html."},{"key":"e_1_2_1_31_1","unstructured":"SPEC. 2006. SPEC. http:\/\/www.spec.org\/benchmarks.html.  SPEC. 2006. SPEC. http:\/\/www.spec.org\/benchmarks.html."},{"volume-title":"Proceedings of the Conference on Design, Automation and Test in Europe (DATE'02)","author":"Steinke S.","key":"e_1_2_1_32_1"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/322261.322273"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/322261.322272"},{"key":"e_1_2_1_35_1","unstructured":"Texas Instruments Inc. 2009. http:\/\/www.ti.com.  Texas Instruments Inc. 2009. http:\/\/www.ti.com."},{"volume-title":"Proceedings of the Conference on Design, Automation and Test in Europe (DATE'04)","author":"Verma M.","key":"e_1_2_1_36_1"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/1016720.1016748"},{"key":"e_1_2_1_38_1","unstructured":"Xvid. 2005. Xvid MPEG-4 video codec. http:\/\/www.xvid.org.  Xvid. 2005. Xvid MPEG-4 video codec. http:\/\/www.xvid.org."}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2207222.2207226","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2207222.2207226","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T09:20:55Z","timestamp":1750238455000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2207222.2207226"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2012,6]]},"references-count":38,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2012,6]]}},"alternative-id":["10.1145\/2207222.2207226"],"URL":"https:\/\/doi.org\/10.1145\/2207222.2207226","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"type":"print","value":"1544-3566"},{"type":"electronic","value":"1544-3973"}],"subject":[],"published":{"date-parts":[[2012,6]]},"assertion":[{"value":"2010-04-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2011-09-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2012-06-15","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}