{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:52:15Z","timestamp":1750308735068,"version":"3.41.0"},"reference-count":37,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2012,10,1]],"date-time":"2012-10-01T00:00:00Z","timestamp":1349049600000},"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. Des. Autom. Electron. Syst."],"published-print":{"date-parts":[[2012,10]]},"abstract":"<jats:p>Developing software for heterogeneous multicore systems is particularly challenging even for experienced developers. While emulators have proven useful to application development, very few heterogeneous multicore emulators have been made available by vendors so far, as building an emulator for a heterogeneous multicore system has been a time-consuming and difficult task. Thus, we proposed a framework, called MCEmu, to speed up the process of building a heterogeneous multicore emulator by integrating existing and\/or new processor emulators. MCEmu is designed to help system and application development, with a basic multicore board support package, an interprocessor communication library, and tools for debugging, tracing, and performance monitoring. In addition, MCEmu can run on a multicore host system to accelerate the emulation of data parallel applications. We show that MCEmu can be very useful for developing system software before the system becomes available, as it has helped us catch numerous functional and performance bugs which could have been hard to find. In this article, we present the design of MCEmu and demonstrate its capabilities with our case studies.<\/jats:p>","DOI":"10.1145\/2348839.2348840","type":"journal-article","created":{"date-parts":[[2012,10,18]],"date-time":"2012-10-18T13:48:27Z","timestamp":1350568107000},"page":"1-25","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":4,"title":["MCEmu"],"prefix":"10.1145","volume":"17","author":[{"given":"Chia-Heng","family":"Tu","sequence":"first","affiliation":[{"name":"National Taiwan University"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Shih-Hao","family":"Hung","sequence":"additional","affiliation":[{"name":"National Taiwan University"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Tung-Chieh","family":"Tsai","sequence":"additional","affiliation":[{"name":"National Taiwan University"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2012,10]]},"reference":[{"doi-asserted-by":"publisher","key":"e_1_2_1_1_1","DOI":"10.1109\/2.982917"},{"unstructured":"Barney B. 2011. POSIX threads programming. https:\/\/computing.llnl.gov\/tutorials\/pthreads\/. Barney B. 2011. POSIX threads programming. https:\/\/computing.llnl.gov\/tutorials\/pthreads\/.","key":"e_1_2_1_2_1"},{"volume-title":"Proceedings of the Symposium on High Performance Chips.","year":"2004","author":"Bedichek R.","key":"e_1_2_1_3_1"},{"volume-title":"Proceedings of the USENIX Technical Conference. 41--46","year":"2005","author":"Bellard F.","key":"e_1_2_1_4_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_5_1","DOI":"10.1109\/MSP.2009.934110"},{"doi-asserted-by":"publisher","key":"e_1_2_1_6_1","DOI":"10.1145\/1054907.1054910"},{"volume-title":"Proceedings of the 4th LCI International Conference on Linux Clusters: the HPC Revolution.","author":"Ceze L.","key":"e_1_2_1_7_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_8_1","DOI":"10.1007\/s11265-010-0470-0"},{"doi-asserted-by":"publisher","key":"e_1_2_1_9_1","DOI":"10.5555\/1331699.1331723"},{"unstructured":"Claunia.com. 2010. QEMU official OS support list. http:\/\/www.claunia.com\/qemu\/. Claunia.com . 2010. QEMU official OS support list. http:\/\/www.claunia.com\/qemu\/.","key":"e_1_2_1_10_1"},{"unstructured":"Edler J. and Hill M. D. 2012. Dinero IV trace-driven uniprocessor cache simulator. http:\/\/sourceware.org\/cluster\/conga\/spec\/. Edler J. and Hill M. D. 2012. Dinero IV trace-driven uniprocessor cache simulator. http:\/\/sourceware.org\/cluster\/conga\/spec\/.","key":"e_1_2_1_11_1"},{"unstructured":"Google. 2007. Android emulator. http:\/\/developer.android.com\/guide\/developing\/tools\/emulator.html. Google . 2007. Android emulator. http:\/\/developer.android.com\/guide\/developing\/tools\/emulator.html.","key":"e_1_2_1_12_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_13_1","DOI":"10.1016\/0167-8191(96)00024-5"},{"doi-asserted-by":"publisher","key":"e_1_2_1_14_1","DOI":"10.1109\/MC.2007.192"},{"doi-asserted-by":"publisher","key":"e_1_2_1_15_1","DOI":"10.5555\/1128020.1128563"},{"unstructured":"Hennessy J. L. and Patterson D. A. 2011. Computer Architecture 5th Ed. A Quantitative Approach. Morgan Kaufmann. Hennessy J. L. and Patterson D. A. 2011. Computer Architecture 5th Ed. A Quantitative Approach. Morgan Kaufmann.","key":"e_1_2_1_16_1"},{"unstructured":"Hirvisalo V. and Knuuttila J. 2010. pQEMU - Profiling with an ISA emulator. Tech. rep. ESG-pQEMU-1 Aalto University. Hirvisalo V. and Knuuttila J. 2010. pQEMU - Profiling with an ISA emulator. Tech. rep. ESG-pQEMU-1 Aalto University.","key":"e_1_2_1_17_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_18_1","DOI":"10.1109\/CIT.2010.389"},{"doi-asserted-by":"publisher","key":"e_1_2_1_19_1","DOI":"10.1109\/IIH-MSP.2009.86"},{"unstructured":"IBM Corp. 2007. Performance analysis with the IBM full-system simulator. http:\/\/www.01.ibm.com\/chips\/techlib.nsf\/techdocs\/AD47C1219407D49100257353006F98C2\/&dollar;file\/SystemSim.PerfAnalysis.Guide.pdf. IBM Corp. 2007. Performance analysis with the IBM full-system simulator. http:\/\/www.01.ibm.com\/chips\/techlib.nsf\/techdocs\/AD47C1219407D49100257353006F98C2\/&dollar;file\/SystemSim.PerfAnalysis.Guide.pdf.","key":"e_1_2_1_20_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_21_1","DOI":"10.1109\/MM.2006.49"},{"doi-asserted-by":"crossref","unstructured":"Lafage T. and Seznec A. 2001. Choosing representative slices of program execution for microarchitecture simulations: A preliminary application to the data stream. In Workload Characterization of Emerging Computer Applications 145--163. Lafage T. and Seznec A. 2001. Choosing representative slices of program execution for microarchitecture simulations: A preliminary application to the data stream. In Workload Characterization of Emerging Computer Applications 145--163.","key":"e_1_2_1_22_1","DOI":"10.1007\/978-1-4615-1613-2_7"},{"volume-title":"Proceedings of the 4th Annual Workshop on Modeling, Benchmarking and Simulation.","year":"2008","author":"Lantz R. E.","key":"e_1_2_1_23_1"},{"unstructured":"Lawrence Livermore National Laboratory. 2011. BlueGene\/L. https:\/\/asc.llnl.gov\/computing_resources\/bluegenel\/. Lawrence Livermore National Laboratory . 2011. BlueGene\/L. https:\/\/asc.llnl.gov\/computing_resources\/bluegenel\/.","key":"e_1_2_1_24_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_25_1","DOI":"10.1145\/1375657.1375670"},{"unstructured":"Levon J. and Elie P. 2011. OProfile: A system profiler for Linux. http:\/\/oprofile.sourceforge.net\/. Levon J. and Elie P. 2011. OProfile: A system profiler for Linux. http:\/\/oprofile.sourceforge.net\/.","key":"e_1_2_1_26_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_27_1","DOI":"10.1109\/2.982916"},{"doi-asserted-by":"publisher","key":"e_1_2_1_28_1","DOI":"10.1145\/2024724.2024954"},{"volume-title":"Perfctr: Linux performance monitoring counters kernel extension","year":"2011","author":"Pettersson M.","key":"e_1_2_1_29_1"},{"volume-title":"Conga: A management platform for cluster and storage systems","year":"2007","author":"Red Hat","key":"e_1_2_1_30_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_31_1","DOI":"10.1109\/88.473612"},{"doi-asserted-by":"publisher","key":"e_1_2_1_32_1","DOI":"10.1147\/rd.475.0641"},{"doi-asserted-by":"publisher","key":"e_1_2_1_33_1","DOI":"10.1145\/1341312.1341325"},{"doi-asserted-by":"publisher","key":"e_1_2_1_34_1","DOI":"10.1145\/1941553.1941583"},{"doi-asserted-by":"publisher","key":"e_1_2_1_35_1","DOI":"10.1145\/1118299.1118495"},{"doi-asserted-by":"publisher","key":"e_1_2_1_36_1","DOI":"10.1145\/233013.233025"},{"doi-asserted-by":"publisher","key":"e_1_2_1_37_1","DOI":"10.1109\/ISPASS.2007.363733"}],"container-title":["ACM Transactions on Design Automation of Electronic Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2348839.2348840","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2348839.2348840","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T20:22:02Z","timestamp":1750278122000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2348839.2348840"}},"subtitle":["A Framework for Software Development and Performance Analysis of Multicore Systems"],"short-title":[],"issued":{"date-parts":[[2012,10]]},"references-count":37,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2012,10]]}},"alternative-id":["10.1145\/2348839.2348840"],"URL":"https:\/\/doi.org\/10.1145\/2348839.2348840","relation":{},"ISSN":["1084-4309","1557-7309"],"issn-type":[{"type":"print","value":"1084-4309"},{"type":"electronic","value":"1557-7309"}],"subject":[],"published":{"date-parts":[[2012,10]]},"assertion":[{"value":"2011-10-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2012-04-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2012-10-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}