{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,8,24]],"date-time":"2025-08-24T01:35:53Z","timestamp":1755999353980,"version":"3.41.0"},"reference-count":56,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2023,7,19]],"date-time":"2023-07-19T00:00:00Z","timestamp":1689724800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"National Science Foundation","award":["CNS-1319353, CNS-1618497, CNS-1618588, CNS-1900803, CNS-2008857"],"award-info":[{"award-number":["CNS-1319353, CNS-1618497, CNS-1618588, CNS-1900803, CNS-2008857"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Archit. Code Optim."],"published-print":{"date-parts":[[2023,9,30]]},"abstract":"<jats:p>As the volume of data processed by applications has increased, considerable attention has been paid to data address translation overheads, leading to the widespread use of larger page sizes (\u201csuperpages\u201d) and multi-level translation lookaside buffers (TLBs). However, far less attention has been paid to instruction address translation and its relation to TLB and pipeline structure. In prior work, we quantified the impact of using code superpages on a variety of widely used applications, ranging from compilers to web user-interface frameworks, and the impact of sharing page table pages for executables and shared libraries. Within this article, we augment those results by first uncovering the effects that microarchitectural differences between Intel Skylake and AMD Zen+, particularly their different TLB organizations, have on instruction address translation overhead. This analysis provides some key insights into the microarchitectural design decisions that impact the cost of instruction address translation. First, a lower-level (level 2) TLB that has both instruction and data mappings competing for space within the same structure allows better overall performance and utilization when using code superpages. Code superpages not only reduce instruction address translation overhead but also indirectly reduce data address translation overhead. In fact, for a few applications, the use of just a few code superpages has a larger impact on overall performance than the use of a much larger number of data superpages. Second, a level 1 (L1) TLB with separate structures for different page sizes may require careful tuning of the superpage promotion policy for code, and a correspondingly suboptimal utilization of the level 2 TLB. In particular, increasing the number of superpages when the size of the L1 superpage structure is small may result in more L1 TLB misses for some applications. Moreover, on some microarchitectures, the cost of these misses can be highly variable, because replacement is delayed until all of the in-flight instructions mapped by the victim entry are retired. Hence, more superpage promotions can result in a performance regression. Finally, our findings also make a case for first-class OS support for superpages on ordinary files containing executables and shared libraries, as well as a more aggressive superpage policy for code.<\/jats:p>","DOI":"10.1145\/3600089","type":"journal-article","created":{"date-parts":[[2023,5,27]],"date-time":"2023-05-27T10:27:33Z","timestamp":1685183253000},"page":"1-25","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["The Impact of Page Size and Microarchitecture on Instruction Address Translation Overhead"],"prefix":"10.1145","volume":"20","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-8626-2145","authenticated-orcid":false,"given":"Yufeng","family":"Zhou","sequence":"first","affiliation":[{"name":"Rice University"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0009-0005-4904-9600","authenticated-orcid":false,"given":"Alan L.","family":"Cox","sequence":"additional","affiliation":[{"name":"Rice University"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-2631-8191","authenticated-orcid":false,"given":"Sandhya","family":"Dwarkadas","sequence":"additional","affiliation":[{"name":"University of Rochester"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0009-0000-3100-0669","authenticated-orcid":false,"given":"Xiaowan","family":"Dong","sequence":"additional","affiliation":[{"name":"University of Rochester"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2023,7,19]]},"reference":[{"key":"e_1_3_2_2_2","unstructured":"Reinhold P. Weicker. n.d. Dhrystone The Classic Benchmark. Retrieved June 2 2023 from https:\/\/github.com\/sifive\/benchmark-dhrystone."},{"key":"e_1_3_2_3_2","unstructured":"TIS Committee. n.d. Tool Interface Standard (TIS) Executable and Linking Format (ELF) Specification. Retrieved June 2 2023 from https:\/\/refspecs.linuxfoundation.org\/elf\/elf.pdf."},{"key":"e_1_3_2_4_2","unstructured":"WikiChip. n.d. Haswell - Microarchitectures - Intel. Retrieved June 2 2023 from https:\/\/en.wikichip.org\/wiki\/intel\/microarchitectures\/haswell_(client)."},{"key":"e_1_3_2_5_2","unstructured":"Intel Open Source: TMA Metrics. Retrieved June 2 2023 from https:\/\/download.01.org\/perfmon\/TMA_Metrics.xlsx."},{"key":"e_1_3_2_6_2","unstructured":"Kernel. n.d. iTLB Multihit. Retrieved June 2 2023 from https:\/\/www.kernel.org\/doc\/html\/next\/admin-guide\/hw-vuln\/multihit.html."},{"key":"e_1_3_2_7_2","unstructured":"Node.js. n.d. Node.js Home Page. Retrieved June 2 2023 from https:\/\/nodejs.org\/en\/."},{"key":"e_1_3_2_8_2","unstructured":"QEMU. n.d. QEMU Home Page. Retrieved June 2 2023 from https:\/\/www.qemu.org\/."},{"key":"e_1_3_2_9_2","unstructured":"WikiChip. n.d. Skylake (client) - Microarchitectures - Intel. Retrieved June 2 2023 from https:\/\/en.wikichip.org\/wiki\/intel\/microarchitectures\/skylake_(client)."},{"key":"e_1_3_2_10_2","unstructured":"SQLite. n.d. SQLite Home Page. Retrieved June 2 2023 from https:\/\/www.sqlite.org\/index.html."},{"key":"e_1_3_2_11_2","unstructured":"SPEC. 1995\u20132008. SPECjvm 2008. Retrieved June 2 2023 from https:\/\/www.spec.org\/jvm2008\/."},{"key":"e_1_3_2_12_2","unstructured":"SPEC. 1995\u20132008. SPECjvm2008 Benchmarks. Retrieved June 2 2023 from https:\/\/www.spec.org\/jvm2008\/docs\/benchmarks\/index.html."},{"key":"e_1_3_2_13_2","unstructured":"PostgreSQL. 1996\u20132018. pgbench\u2014Run a Benchmark Test on PostgreSQL. Retrieved June 2 2023 from https:\/\/www.postgresql.org\/docs\/9.6\/static\/pgbench.html."},{"key":"e_1_3_2_14_2","unstructured":"PostgreSQL. 1996\u20132018. PostgreSQL: The World\u2019s Most Advanced Open Source Relational Database. Retrieved June 2 2023 from https:\/\/www.postgresql.org\/."},{"key":"e_1_3_2_15_2","unstructured":"OpenJDK. 2014. JDK 8. Retrieved June 2 2023 from http:\/\/openjdk.java.net\/projects\/jdk8\/."},{"key":"e_1_3_2_16_2","unstructured":"Intel. 2014. Using Intel VTune Amplifier XE to Tune Software on the 6th Generation Intel Core Processor Family. Retrieved June 2 2023 from https:\/\/software.intel.com\/sites\/default\/files\/managed\/dc\/3a\/Using-intel-vtune-amplifier-xe-on-6th-generation-intel-core-processors-1-0.pdf._Intel_VTune_Amplifier_XE_on_6th_Generation_Intel_Core_Processors_1.0.pdf."},{"volume-title":"Intel 64 and IA-32 Architectures Software Developer\u2019s Manual","key":"e_1_3_2_17_2","unstructured":"Intel. 2016. Intel 64 and IA-32 Architectures Software Developer\u2019s Manual, Vol. 3. Intel."},{"key":"e_1_3_2_18_2","unstructured":"NPM. 2016. React Server-Side Rendering Benchmark. Retrieved June 2 2023 from https:\/\/www.npmjs.com\/package\/react-ssr-benchmarks."},{"key":"e_1_3_2_19_2","unstructured":"AMD. 2017. Software Optimization Guide for AMD Family 17h Processors. Retrieved June 2 2023 from https:\/\/www.amd.com\/en\/support\/tech-docs\/software-optimization-guide-for-amd-family-17h-processors."},{"key":"e_1_3_2_20_2","unstructured":"FreeBSD. 2018. CPUSET(1) FreeBSD General Commands Manual. Retrieved June 2 2023 from https:\/\/www.freebsd.org\/cgi\/man.cgi?query=cpuset&apropos=0&sektion=0&manpath=FreeBSD+11.2-RELEASE+and+Ports&arch=amd64&format=html."},{"key":"e_1_3_2_21_2","unstructured":"Ahmad Yasin. 2018. How TMA* addresses challenges in modern servers and enhancements coming in IceLake. In Proceedings of the Scalable Tools Workshop . https:\/\/dyninst.github.io\/scalable_tools_workshop\/petascale2018\/assets\/slides\/TMA%20addressing%20challenges%20in%20Icelake%20-%20Ahmad%20Yasin.pdf."},{"volume-title":"Intel 64 and IA-32 Architectures Optimization Reference Manual","key":"e_1_3_2_22_2","unstructured":"Intel. 2018. Intel 64 and IA-32 Architectures Optimization Reference Manual, Vol. 3. Intel."},{"key":"e_1_3_2_23_2","unstructured":"Stephane Eranian. 2018. Linux perf_events Updates. In Proceedings of the Scalable Tools Workshop ."},{"key":"e_1_3_2_24_2","unstructured":"MySQL. 2018. MySQL Home Page. Retrieved June 2 2023 from https:\/\/www.mysql.com\/."},{"key":"e_1_3_2_25_2","unstructured":"MySQL. 2018. MySQL Benchmark Tool. Retrieved June 2 2023 from https:\/\/dev.mysql.com\/downloads\/benchmarks.html."},{"key":"e_1_3_2_26_2","unstructured":"FreeBSD. 2018. PMCSTAT(8) FreeBSD System Manager\u2019s Manual. Retrieved June 2 2023 from https:\/\/www.freebsd.org\/cgi\/man.cgi?query=pmcstat&apropos=0&sektion=0&manpath=FreeBSD+11.2-RELEASE+and+Ports&arch=amd64&format=html."},{"key":"e_1_3_2_27_2","doi-asserted-by":"publisher","DOI":"10.1145\/3037697.3037706"},{"key":"e_1_3_2_28_2","doi-asserted-by":"publisher","DOI":"10.1145\/3123939.3123975"},{"key":"e_1_3_2_29_2","doi-asserted-by":"publisher","DOI":"10.1145\/1815961.1815970"},{"key":"e_1_3_2_30_2","doi-asserted-by":"publisher","DOI":"10.1145\/2485922.2485943"},{"key":"e_1_3_2_31_2","doi-asserted-by":"publisher","DOI":"10.1145\/3313808.3313811"},{"key":"e_1_3_2_32_2","doi-asserted-by":"publisher","DOI":"10.1109\/IISWC.2015.19"},{"key":"e_1_3_2_33_2","doi-asserted-by":"publisher","DOI":"10.1145\/2901318.2901327"},{"key":"e_1_3_2_34_2","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2015.7056035"},{"key":"e_1_3_2_35_2","first-page":"231","volume-title":"Proceedings of the 2014 USENIX Annual Technical Conference (USENIX ATC\u201914)","author":"Gaud Fabien","year":"2014","unstructured":"Fabien Gaud, Baptiste Lepers, Jeremie Decouchant, Justin Funston, Alexandra Fedorova, and Vivien Quema. 2014. Large pages may be harmful on NUMA systems. In Proceedings of the 2014 USENIX Annual Technical Conference (USENIX ATC\u201914). 231\u2013242. https:\/\/www.usenix.org\/conference\/atc14\/technical-sessions\/presentation\/gaud."},{"key":"e_1_3_2_36_2","doi-asserted-by":"publisher","DOI":"10.1145\/1375634.1375641"},{"key":"e_1_3_2_37_2","volume-title":"Proceedings of the 6th Annual Workshop on the Interaction Between Operating Systems and Computer Architecture (WIOSCA\u201910)","author":"Gorman Mel","year":"2012","unstructured":"Mel Gorman and Patrick Healy. 2012. Performance characteristics of explicit superpage support. In Proceedings of the 6th Annual Workshop on the Interaction Between Operating Systems and Computer Architecture (WIOSCA\u201910)."},{"key":"e_1_3_2_38_2","first-page":"733","volume-title":"Proceedings of the 2017 USENIX Annual Technical Conference (USENIX ATC\u201917)","author":"Guo Fan","year":"2017","unstructured":"Fan Guo, Yongkun Li, Yinlong Xu, Song Jiang, and John C. S. Lui. 2017. SmartMD: A high performance deduplication engine with mixed pages. In Proceedings of the 2017 USENIX Annual Technical Conference (USENIX ATC\u201917). 733\u2013744. https:\/\/www.usenix.org\/conference\/atc17\/technical-sessions\/presentation\/guo-fan."},{"key":"e_1_3_2_39_2","doi-asserted-by":"publisher","DOI":"10.1145\/2749469.2749471"},{"key":"e_1_3_2_40_2","first-page":"1","article-title":"Performance analysis of the memory management unit under scale-out workloads","author":"Karakostas Vasileios","year":"2014","unstructured":"Vasileios Karakostas, Osman S. Unsal, Mario Nemirovsky, Adri\u00e1n Cristal, and Michael M. Swift. 2014. Performance analysis of the memory management unit under scale-out workloads. In Proceedings of the 2014 IEEE International Symposium on Workload Characterization (IISWC\u201914).1\u201312.","journal-title":"Proceedings of the 2014 IEEE International Symposium on Workload Characterization (IISWC\u201914)."},{"key":"e_1_3_2_41_2","first-page":"705","volume-title":"Proceedings of the 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI\u201916)","author":"Kwon Youngjin","year":"2016","unstructured":"Youngjin Kwon, Hangchen Yu, Simon Peter, Christopher J. Rossbach, and Emmett Witchel. 2016. Coordinated and efficient huge page management with ingens. In Proceedings of the 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI\u201916). 705\u2013721. https:\/\/www.usenix.org\/conference\/osdi16\/technical-sessions\/presentation\/kwon."},{"key":"e_1_3_2_42_2","volume-title":"Profile-Guided Memory Layout: Theory and Practice","author":"Mashhadi Rahman Lavaee","year":"2018","unstructured":"Rahman Lavaee Mashhadi. 2018. Profile-Guided Memory Layout: Theory and Practice. Ph.D. Dissertation. University of Rochester, Rochester, NY."},{"key":"e_1_3_2_43_2","unstructured":"Mel Gorman. 2010. Huge Pages Part 1 (Introduction). Retrieved June 2 2023 from https:\/\/lwn.net\/Articles\/374424\/."},{"key":"e_1_3_2_44_2","volume-title":"Proceedings of the Linux Symposium","author":"Lu H. J.","year":"2006","unstructured":"H. J. Lu, Kshitij Doshi, Rohit Seth, and Jantz Tran. 2006. Using hugetlbfs for mapping application text regions. In Proceedings of the Linux Symposium."},{"key":"e_1_3_2_45_2","doi-asserted-by":"publisher","DOI":"10.1145\/3445814.3446704"},{"key":"e_1_3_2_46_2","doi-asserted-by":"publisher","DOI":"10.5555\/1076580"},{"key":"e_1_3_2_47_2","first-page":"315","volume-title":"Proceedings of the Linux Symposium","author":"McCracken Dave","year":"2003","unstructured":"Dave McCracken. 2003. Sharing page tables in the Linux kernel. In Proceedings of the Linux Symposium. 315."},{"key":"e_1_3_2_48_2","doi-asserted-by":"publisher","DOI":"10.1145\/844128.844138"},{"key":"e_1_3_2_49_2","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2017.7863743"},{"key":"e_1_3_2_50_2","doi-asserted-by":"publisher","DOI":"10.1145\/3173162.3173203"},{"key":"e_1_3_2_51_2","doi-asserted-by":"publisher","DOI":"10.1145\/3079856.3080217"},{"key":"e_1_3_2_52_2","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2014.6835964"},{"key":"e_1_3_2_53_2","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2012.32"},{"key":"e_1_3_2_54_2","doi-asserted-by":"crossref","unstructured":"Michael M. Swift. 2017. DRAFT : Towards O(1) memory. In Proceedings of the Workshop on Hot Topics in Operating Systems (HotOS\u201917) . 1\u20138.","DOI":"10.1145\/3102980.3102982"},{"key":"e_1_3_2_55_2","doi-asserted-by":"publisher","DOI":"10.1145\/3466752.3480049"},{"key":"e_1_3_2_56_2","first-page":"106","volume-title":"Proceedings of the 2019 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS\u201919)","author":"Zhou Y.","year":"2019","unstructured":"Y. Zhou, X. Dong, A. L. Cox, and S. Dwarkadas. 2019. On the impact of instruction address translation overhead. In Proceedings of the 2019 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS\u201919). 106\u2013116."},{"key":"e_1_3_2_57_2","first-page":"829","volume-title":"Proceedings of the 2020 USENIX Annual Technical Conference (USENIX ATC\u201920)","author":"Zhu Weixi","year":"2020","unstructured":"Weixi Zhu, Alan L. Cox, and Scott Rixner. 2020. A comprehensive analysis of superpage management mechanisms and policies. In Proceedings of the 2020 USENIX Annual Technical Conference (USENIX ATC\u201920). 829\u2013842. https:\/\/www.usenix.org\/conference\/atc20\/presentation\/zhu-weixi."}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3600089","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3600089","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T16:36:50Z","timestamp":1750178210000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3600089"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,7,19]]},"references-count":56,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2023,9,30]]}},"alternative-id":["10.1145\/3600089"],"URL":"https:\/\/doi.org\/10.1145\/3600089","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"type":"print","value":"1544-3566"},{"type":"electronic","value":"1544-3973"}],"subject":[],"published":{"date-parts":[[2023,7,19]]},"assertion":[{"value":"2023-01-17","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2023-05-08","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2023-07-19","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}