{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:13:20Z","timestamp":1750306400097,"version":"3.41.0"},"reference-count":33,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2015,8,31]],"date-time":"2015-08-31T00:00:00Z","timestamp":1440979200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Archit. Code Optim."],"published-print":{"date-parts":[[2015,10,6]]},"abstract":"<jats:p>System emulation is widely used in today\u2019s computer systems. This technology opens new opportunities for resource sharing as well as enhancing system security and reliability. System emulation across different instruction set architectures (ISA) can enable further opportunities. For example, cross-ISA emulation can enable workload consolidation over a wide range of microprocessors and potentially facilitate the seamless deployment of new processor architectures. As multicore and manycore processors become pervasive, it is important to address the challenges toward supporting system emulation on these platforms. A key challenge in cross-ISA emulation on multicore systems is ensuring the correctness of emulation when the guest and the host memory consistency models differ. Many existing cross-ISA system emulators are sequential, thus they are able to avoid this problem at the cost of significant performance degradation. Recently proposed parallel emulators are able to address the performance limitation; however, they provide limited support for memory consistency model emulation.<\/jats:p>\n          <jats:p>When the host system has a weaker memory consistency model compared to the guest system, the emulator can insert memory fences at appropriate locations in the translated code to enforce the guest memory ordering constraints. These memory fences can significantly degrade the performance of the translated code. Transactional execution support available on certain recent microprocessors provides an alternative approach. Transactional execution of the translated code enforces sequential consistency (SC) at the coarse-grained transaction level, which in turn ensures that all memory accesses made on the host machine conform to SC. Enforcing SC on the host machine guarantees that the emulated execution will be correct for any guest memory model. In this article, we compare and evaluate the overheads associated with using transactions and fences for memory consistency model emulation on the Intel Haswell processor. Our experience of implementing these two approaches on a state-of-the-art parallel emulator, COREMU, demonstrates that memory consistency model emulation using transactions performs better when the transaction sizes are large enough to amortize the transaction overhead and the transaction conflict rate is low, whereas inserting memory fences is better for applications in which the transaction overhead is high. A hybrid implementation that dynamically determines which approach to invoke can outperform both approaches. Our results, based on the SPLASH-2 and the PARSEC benchmark suites, demonstrate that the proposed hybrid approach is able to outperform the fence insertion mechanism by 4.9% and the transactional execution approach by 24.9% for two-thread applications, and outperform them by 4.5% and 44.7%, respectively, for four-threaded execution.<\/jats:p>","DOI":"10.1145\/2786980","type":"journal-article","created":{"date-parts":[[2015,9,1]],"date-time":"2015-09-01T13:41:09Z","timestamp":1441114869000},"page":"1-24","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":1,"title":["Leveraging Transactional Execution for Memory Consistency Model Emulation"],"prefix":"10.1145","volume":"12","author":[{"given":"Ragavendra","family":"Natarajan","sequence":"first","affiliation":[{"name":"University of Minnesota, Keller Hall, Minneapolis MN"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Antonia","family":"Zhai","sequence":"additional","affiliation":[{"name":"University of Minnesota, Keller Hall, Minneapolis MN"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2015,8,31]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1109\/2.546611"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.5555\/1247360.1247401"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/1454115.1454128"},{"key":"e_1_2_1_4_1","volume-title":"Proceedings of the Annual Workshop on Duplicating, Deconstructing, and Debunking (WDDD\u201905)","author":"Blundell Colin","year":"2005","unstructured":"Colin Blundell , E. Christopher Lewis , and Milo Martin . 2005 . Deconstructing transactional semantics: The subtleties of atomicity . In Proceedings of the Annual Workshop on Duplicating, Deconstructing, and Debunking (WDDD\u201905) . 48--55. Colin Blundell, E. Christopher Lewis, and Milo Martin. 2005. Deconstructing transactional semantics: The subtleties of atomicity. In Proceedings of the Annual Workshop on Duplicating, Deconstructing, and Debunking (WDDD\u201905). 48--55."},{"volume-title":"Retrieved","year":"2014","key":"e_1_2_1_5_1","unstructured":"Bochs. 2014 . Bochs Home Page . Retrieved July 30, 2015, from http:\/\/bochs.sourceforge.net. Bochs. 2014. Bochs Home Page. Retrieved July 30, 2015, from http:\/\/bochs.sourceforge.net."},{"volume-title":"Understanding the Linux Kernel","author":"Bovet Daniel","key":"e_1_2_1_6_1","unstructured":"Daniel Bovet and Marco Cesati . 2005. Understanding the Linux Kernel . O\u2019Reilly and Associates Inc . Daniel Bovet and Marco Cesati. 2005. Understanding the Linux Kernel. O\u2019Reilly and Associates Inc."},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/1250734.1250737"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/2485922.2485942"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/1250662.1250697"},{"volume-title":"Proceedings of the IEEE 14th International Symposium on High Performance Computer Architecture (HPCA\u201908)","author":"Chung Jaewoong","key":"e_1_2_1_10_1","unstructured":"Jaewoong Chung , M. Dalton , H. Kannan , and C. Kozyrakis . 2008. Thread-safe dynamic binary translation using transactional memory . In Proceedings of the IEEE 14th International Symposium on High Performance Computer Architecture (HPCA\u201908) . 279--289. Jaewoong Chung, M. Dalton, H. Kannan, and C. Kozyrakis. 2008. Thread-safe dynamic binary translation using transactional memory. In Proceedings of the IEEE 14th International Symposium on High Performance Computer Architecture (HPCA\u201908). 279--289."},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/1810479.1810531"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICPADS.2011.102"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2009.29"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/782814.782854"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.5555\/2392163.2392195"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/1024393.1024395"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.5555\/998680.1006711"},{"key":"e_1_2_1_19_1","unstructured":"Intel Corporation. 2013. Intel Architecture Instruction Set Extensions Programming Reference. Available at http:\/\/intel.com.  Intel Corporation. 2013. Intel Architecture Instruction Set Extensions Programming Reference. Available at http:\/\/intel.com."},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2012.12"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.5555\/1998496.1998518"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1109\/TC.1979.1675439"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/1854273.1854312"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1109\/2.982916"},{"key":"e_1_2_1_25_1","volume-title":"Retrieved","author":"Maranget Luc","year":"2012","unstructured":"Luc Maranget , Susmit Sarkar , and Peter Sewell . 2012 . A Tutorial Introduction to the ARM and POWER Relaxed Memory Models . Retrieved July 30, 2015, from https:\/\/www.cl.cam.ac.uk\/&sim;pes20\/ppc-supplemental\/test7.pdf. Luc Maranget, Susmit Sarkar, and Peter Sewell. 2012. A Tutorial Introduction to the ARM and POWER Relaxed Memory Models. Retrieved July 30, 2015, from https:\/\/www.cl.cam.ac.uk\/&sim;pes20\/ppc-supplemental\/test7.pdf."},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-03359-9_27"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1016\/0020-0190(81)90106-X"},{"volume-title":"Proceedings of the 34th Annual ACM\/IEEE International Symposium on Microarchitecture (MICRO-34)","author":"Rajwar Ravi","key":"e_1_2_1_28_1","unstructured":"Ravi Rajwar and James R. Goodman . 2001. Speculative lock elision: Enabling highly concurrent multithreaded execution . In Proceedings of the 34th Annual ACM\/IEEE International Symposium on Microarchitecture (MICRO-34) . IEEE, Los Alamitos, CA, 294--305. Ravi Rajwar and James R. Goodman. 2001. Speculative lock elision: Enabling highly concurrent multithreaded execution. In Proceedings of the 34th Annual ACM\/IEEE International Symposium on Microarchitecture (MICRO-34). IEEE, Los Alamitos, CA, 294--305."},{"volume-title":"CPAs. In Proceedings of the Conference on Communicating Process Architectures. 271--291","author":"Carl","key":"e_1_2_1_29_1","unstructured":"Carl G. Ritson and Frederick R. M. Barnes. 2013. An evaluation of Intel\u2019s restricted transactional memory for CPAs. In Proceedings of the Conference on Communicating Process Architectures. 271--291 . Carl G. Ritson and Frederick R. M. Barnes. 2013. An evaluation of Intel\u2019s restricted transactional memory for CPAs. In Proceedings of the Conference on Communicating Process Architectures. 271--291."},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/42190.42277"},{"key":"e_1_2_1_31_1","volume-title":"Virtual Machines: Versatile Platforms for Systems and Processes. The Morgan Kaufmann Series in Computer Architecture and Design. Morgan Kaufmann","author":"Smith Jim","year":"2005","unstructured":"Jim Smith and Ravi Nair . 2005 . Virtual Machines: Versatile Platforms for Systems and Processes. The Morgan Kaufmann Series in Computer Architecture and Design. Morgan Kaufmann , San Francisco, CA . Jim Smith and Ravi Nair. 2005. Virtual Machines: Versatile Platforms for Systems and Processes. The Morgan Kaufmann Series in Computer Architecture and Design. Morgan Kaufmann, San Francisco, CA."},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA.2006.16"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/1941553.1941583"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/223982.223990"}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2786980","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2786980","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T05:07:26Z","timestamp":1750223246000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2786980"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2015,8,31]]},"references-count":33,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2015,10,6]]}},"alternative-id":["10.1145\/2786980"],"URL":"https:\/\/doi.org\/10.1145\/2786980","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"type":"print","value":"1544-3566"},{"type":"electronic","value":"1544-3973"}],"subject":[],"published":{"date-parts":[[2015,8,31]]},"assertion":[{"value":"2014-07-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2015-05-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2015-08-31","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}