{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,5]],"date-time":"2026-03-05T15:46:02Z","timestamp":1772725562776,"version":"3.50.1"},"reference-count":36,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2018,3,22]],"date-time":"2018-03-22T00:00:00Z","timestamp":1521676800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"Ministry of Science, ICT & Future Planning","award":["NRF-2015M3C4A7065647, NRF-2017R1A2B3011038"],"award-info":[{"award-number":["NRF-2015M3C4A7065647, NRF-2017R1A2B3011038"]}]},{"name":"Korea government","award":["No. R0190-15-2012"],"award-info":[{"award-number":["No. R0190-15-2012"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Archit. Code Optim."],"published-print":{"date-parts":[[2018,3,31]]},"abstract":"<jats:p>Simulators are the most popular and useful tool to study computer architecture and examine new ideas. However, modern simulators have become prohibitively complex (e.g., 200K+ lines of code) to fully understand and utilize. Users therefore end up analyzing and modifying only the modules of interest (e.g., branch predictor, register file) when performing simulations. Unfortunately, hidden details and inter-module interactions of simulators create discrepancies between the expected and actual module behaviors. Consequently, the effect of modifying the target module may be amplified or masked and the users get inaccurate insights from expensive simulations.<\/jats:p>\n          <jats:p>In this article, we propose DiagSim, an efficient and systematic method to diagnose simulators. It ensures the target modules behave as expected to perform simulation in a healthy (i.e., accurate and correct) way. DiagSim is efficient in that it quickly pinpoints the modules showing discrepancies and guides the users to inspect the behavior without investigating the whole simulator. DiagSim is systematic in that it hierarchically tests the modules to guarantee the integrity of individual diagnosis and always provide reliable results. We construct DiagSim based on generic category-based diagnosis ideas to encourage easy expansion of the diagnosis.<\/jats:p>\n          <jats:p>We diagnose three popular open source simulators and discover hidden details including implicitly reserved resources, un-documented latency factors, and hard-coded module parameter values. We observe that these factors have large performance impacts (up to 156%) and illustrate that our diagnosis can correctly detect and eliminate them.<\/jats:p>","DOI":"10.1145\/3177959","type":"journal-article","created":{"date-parts":[[2018,3,23]],"date-time":"2018-03-23T12:29:49Z","timestamp":1521808189000},"page":"1-27","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":5,"title":["DiagSim"],"prefix":"10.1145","volume":"15","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-0465-2463","authenticated-orcid":false,"given":"Jae-Eon","family":"Jo","sequence":"first","affiliation":[{"name":"Department of Computer Science and Engineering, POSTECH, Gyeongbuk, Korea"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-4012-0085","authenticated-orcid":false,"given":"Gyu-Hyeon","family":"Lee","sequence":"additional","affiliation":[{"name":"Department of Electrical and Computer Engineering, Seoul National University, Seoul, Korea"}]},{"given":"Hanhwi","family":"Jang","sequence":"additional","affiliation":[{"name":"Department of Computer Science and Engineering, POSTECH, Gyeongbuk, Korea"}]},{"given":"Jaewon","family":"Lee","sequence":"additional","affiliation":[{"name":"Department of Computer Science and Engineering, POSTECH, Gyeongbuk, Korea"}]},{"given":"Mohammadamin","family":"Ajdari","sequence":"additional","affiliation":[{"name":"Department of Computer Science and Engineering, POSTECH, Gyeongbuk, Korea"}]},{"given":"Jangwoo","family":"Kim","sequence":"additional","affiliation":[{"name":"Department of Electrical and Computer Engineering, Seoul National University, Seoul, Korea"}]}],"member":"320","published-online":{"date-parts":[[2018,3,22]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"Proceedings of the 2014 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS\u201914)","author":"Abel A."},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2013.6522340"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/1088149.1088164"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/309847.310108"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/378239.378473"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.5555\/647768.733940"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/2024716.2024718"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1109\/MM.2006.82"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1109\/2.675637"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1109\/FTCS.1994.315635"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1109\/2.675632"},{"key":"e_1_2_1_12_1","volume-title":"Proceedings of the 2012 7th International Workshop on Reconfigurable Communication-Centric Systems-on-Chip (ReCoSoC\u201912)","author":"Butko A."},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/379240.565338"},{"key":"e_1_2_1_14_1","unstructured":"Agner Fog. 2000. Test programs for measuring clock cycles and performance monitoring. http:\/\/www.agner.org\/optimize\/#testp.  Agner Fog. 2000. Test programs for measuring clock cycles and performance monitoring. http:\/\/www.agner.org\/optimize\/#testp."},{"key":"e_1_2_1_15_1","volume-title":"Proceedings of the 2010 IEEE International Symposium on Performance Analysis of Systems 8 Software (ISPASS\u201910)","author":"Ganesan Karthik"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/2063384.2063455"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/775832.775906"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISPASS.2014.6844457"},{"key":"e_1_2_1_19_1","unstructured":"Alex Izvorski. 2006. mubench. http:\/\/mubench.sourceforge.net.  Alex Izvorski. 2006. mubench. http:\/\/mubench.sourceforge.net."},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2008.4658642"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2012.28"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1109\/2.982916"},{"key":"e_1_2_1_23_1","volume-title":"Proceedings of the 1996 Annual Conference on USENIX Annual Technical Conference (ATEC\u201996)","author":"McVoy Larry","year":"1996"},{"key":"e_1_2_1_24_1","volume-title":"Proceedings of the 1999 IEEE International Performance, Computing and Communications Conference. 451--457","author":"Moudgill M."},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1109\/MM.2015.74"},{"key":"e_1_2_1_26_1","volume-title":"Proceedings of the 2017 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS\u201917)","author":"Panda R."},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/63039.63042"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/2024724.2024954"},{"key":"e_1_2_1_29_1","volume-title":"SESC simulator. Retrieved","author":"Renau Jose","year":"2005"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1109\/L-CA.2011.4"},{"key":"e_1_2_1_31_1","volume-title":"Proceedings of the 1st Annual Workshop on Interaction Between Operating System and Computer Architecture. 33--38","author":"Saidi Ali G."},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/2370816.2370865"},{"key":"e_1_2_1_33_1","volume-title":"Proceedings of the 2009 IEEE International Symposium on Performance Analysis of Systems and Software. 207--217","author":"Uzelac V."},{"key":"e_1_2_1_34_1","doi-asserted-by":"crossref","volume-title":"The State Explosion Problem","author":"Valmari Antti","DOI":"10.1007\/3-540-65306-6_21"},{"key":"e_1_2_1_35_1","volume-title":"SimBench: A Portable Benchmarking Methodology for Full-System Simulators","author":"Wagstaff Harry"},{"key":"e_1_2_1_36_1","volume-title":"Proceedings of the 2010 IEEE International Symposium on Performance Analysis of Systems Software (ISPASS\u201910)","author":"Wong H."}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3177959","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3177959","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T03:02:55Z","timestamp":1750215775000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3177959"}},"subtitle":["Systematically Diagnosing Simulators for Healthy Simulations"],"short-title":[],"issued":{"date-parts":[[2018,3,22]]},"references-count":36,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2018,3,31]]}},"alternative-id":["10.1145\/3177959"],"URL":"https:\/\/doi.org\/10.1145\/3177959","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"value":"1544-3566","type":"print"},{"value":"1544-3973","type":"electronic"}],"subject":[],"published":{"date-parts":[[2018,3,22]]},"assertion":[{"value":"2017-06-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2017-12-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2018-03-22","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}