{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,31]],"date-time":"2026-01-31T11:01:46Z","timestamp":1769857306665,"version":"3.49.0"},"reference-count":45,"publisher":"Association for Computing Machinery (ACM)","issue":"5","license":[{"start":{"date-parts":[[2018,9,30]],"date-time":"2018-09-30T00:00:00Z","timestamp":1538265600000},"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. Embed. Comput. Syst."],"published-print":{"date-parts":[[2018,9,30]]},"abstract":"<jats:p>We explore techniques to reverse-engineer DRAM embedded memory controllers (MCs), including page policies, address mapping, and command arbitration. There are several benefits to knowing this information: They allow tightening worst-case bounds of embedded systems and platform-aware optimizations at the operating system, source-code, and compiler levels. We develop a latency-based analysis, which we use to devise algorithms and C programs to extract MC properties. We show the effectiveness of the proposed approach by reverse-engineering the MC details in the XUPV5-LX110T Xilinx platform. Furthermore, to cover a breadth of policies, we use a simulation framework and document our findings.<\/jats:p>","DOI":"10.1145\/3274281","type":"journal-article","created":{"date-parts":[[2018,11,5]],"date-time":"2018-11-05T13:57:45Z","timestamp":1541426265000},"page":"1-25","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":4,"title":["Exposing Implementation Details of Embedded DRAM Memory Controllers through Latency-based Analysis"],"prefix":"10.1145","volume":"17","author":[{"given":"Mohamed","family":"Hassan","sequence":"first","affiliation":[{"name":"University of Waterloo, ON, Canada"}]},{"given":"Anirudh M.","family":"Kaushik","sequence":"additional","affiliation":[{"name":"University of Waterloo, ON, Canada"}]},{"given":"Hiren","family":"Patel","sequence":"additional","affiliation":[{"name":"University of Waterloo, ON, Canada"}]}],"member":"320","published-online":{"date-parts":[[2018,10,30]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1109\/RTAS.2013.6531080"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/1289816.1289877"},{"key":"e_1_2_1_3_1","volume-title":"Usimm: The Utah simulated memory module","author":"Chatterjee Niladrish","year":"2012"},{"key":"e_1_2_1_4_1","volume-title":"Proceedings of the IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS\u201901)","author":"Clark"},{"key":"e_1_2_1_5_1","unstructured":"Adrian Cosoroaba. 2007. Memory interfaces made easy with xilinx fpgas and the memory interface generator. Xilinx Corporation White Paper (2007).  Adrian Cosoroaba. 2007. Memory interfaces made easy with xilinx fpgas and the memory interface generator. Xilinx Corporation White Paper (2007)."},{"key":"e_1_2_1_6_1","volume-title":"Proceedings of the IEEE International Conference on Parallel Architectures and Compilation Techniques (PACT\u201913)","author":"Ding Wei","year":"2013"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.5555\/2485288.2485418"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/3158208"},{"key":"e_1_2_1_9_1","unstructured":"Mohamed Hassan. 2017. Predictable shared memory resources for multi-core real-time systems. Retrieved on 5 October 2018 from https:\/\/uwspace.uwaterloo.ca\/handle\/10012\/11676.  Mohamed Hassan. 2017. Predictable shared memory resources for multi-core real-time systems. Retrieved on 5 October 2018 from https:\/\/uwspace.uwaterloo.ca\/handle\/10012\/11676."},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1109\/RTAS.2015.7108453"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.5555\/2971808.2972124"},{"key":"e_1_2_1_12_1","article-title":"MCXplore: Automating the validation process of DRAM memory controller designs","volume":"37","author":"Hassan Mohamed","year":"2018","journal-title":"IEEE Trans. Comput.-Aided Design Integr. Circ. Syst."},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1109\/RTAS.2015.7108454"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/3019611"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1109\/TCAD.2018.2857379"},{"key":"e_1_2_1_16_1","unstructured":"Intel. 2011. Intel 64 and IA-32 Architectures Software Developer\u2019s Manual Instruction Set Reference A--Z.  Intel. 2011. Intel 64 and IA-32 Architectures Software Developer\u2019s Manual Instruction Set Reference A--Z."},{"key":"e_1_2_1_17_1","unstructured":"Intel. 2017. Intel Memory Latency Checker v3.3. Retrieved from https:\/\/software.intel.com\/en-us\/articles\/intelr-memory-latency-checker.  Intel. 2017. Intel Memory Latency Checker v3.3. Retrieved from https:\/\/software.intel.com\/en-us\/articles\/intelr-memory-latency-checker."},{"key":"e_1_2_1_18_1","unstructured":"Intel. 2017. Intel Xeon Processor X5650. Retrieved from http:\/\/ark.intel.com\/products\/47922.  Intel. 2017. Intel Xeon Processor X5650. Retrieved from http:\/\/ark.intel.com\/products\/47922."},{"key":"e_1_2_1_19_1","volume-title":"Memory Systems: Cache, DRAM, Disk. Morgan Kaufmann.","author":"Jacob Bruce","year":"2010"},{"key":"e_1_2_1_20_1","unstructured":"JEDEC. 2008. JEDEC DDR3 SDRAM specifications JESD79-3D. Retrieved from http:\/\/www.jedec.org\/standards-documents\/docs\/jesd-79-3d.  JEDEC. 2008. JEDEC DDR3 SDRAM specifications JESD79-3D. Retrieved from http:\/\/www.jedec.org\/standards-documents\/docs\/jesd-79-3d."},{"key":"e_1_2_1_21_1","volume-title":"Proceedings of the ACM International Conference on Real-Time and Network Systems (RTNS\u201907)","author":"John Tobias","year":"2007"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1109\/RTAS.2014.6925998"},{"key":"e_1_2_1_23_1","volume-title":"Macsim: A CPU-GPU heterogeneous simulation framework user guide","author":"Kim Hyesoon","year":"2012"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/2678373.2665726"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1109\/LCA.2015.2414456"},{"key":"e_1_2_1_26_1","volume-title":"Proceedings of the IEEE Symposium on High-Performance Computer Architecture (HPCA\u201901)","author":"Lin Wei-Fen","year":"2001"},{"key":"e_1_2_1_27_1","unstructured":"Micron. 2017. Micron DDR2 SDRAM. Retrieved from https:\/\/www.micron.com\/products\/dram\/ddr2-sdram.  Micron. 2017. Micron DDR2 SDRAM. Retrieved from https:\/\/www.micron.com\/products\/dram\/ddr2-sdram."},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1109\/SECPRI.1999.766906"},{"key":"e_1_2_1_29_1","volume-title":"Proceedings of the USENIX Security Symposium.","author":"Moscibroda Thomas","year":"2007"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.14529\/jsfi140302"},{"key":"e_1_2_1_31_1","volume-title":"Proceedings of the IEEE\/ACM International Conference on Computer-Aided Design (ICCAD\u201997)","author":"Panda P. R."},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1109\/LES.2010.2041634"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/2499368.2451137"},{"key":"e_1_2_1_34_1","volume-title":"Proceedings of the USENIX Security Symposium.","author":"Pessl Peter","year":"2016"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/2039370.2039388"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1109\/L-CA.2011.4"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/2830772.2830795"},{"key":"e_1_2_1_38_1","volume-title":"Proceedings of the IEEE International Symposium on High Performance Computer Architecture (HPCA\u201914)","author":"Wang Yao"},{"key":"e_1_2_1_39_1","volume-title":"Proceedings of the IEEE International Symposium on Performance Analysis of Systems Software (ISPASS\u201910)","author":"Wong H."},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1109\/RTSS.2013.44"},{"key":"e_1_2_1_41_1","unstructured":"UG347 Xilinx. 2011. ML505\/506\/507 evaluation platform user guide. Doc. Revis. 3 2 (2011). Retrieved from http:\/\/www.xilinx.com\/support\/documentation\/boards_and_kits\/ug347.pdf.  UG347 Xilinx. 2011. ML505\/506\/507 evaluation platform user guide. Doc. Revis. 3 2 (2011). Retrieved from http:\/\/www.xilinx.com\/support\/documentation\/boards_and_kits\/ug347.pdf."},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1109\/RTAS.2014.6925999"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1109\/ECRTS.2015.24"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1109\/PACT.2011.20"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/360128.360134"}],"container-title":["ACM Transactions on Embedded Computing Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3274281","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3274281","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T00:44:06Z","timestamp":1750207446000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3274281"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018,9,30]]},"references-count":45,"journal-issue":{"issue":"5","published-print":{"date-parts":[[2018,9,30]]}},"alternative-id":["10.1145\/3274281"],"URL":"https:\/\/doi.org\/10.1145\/3274281","relation":{},"ISSN":["1539-9087","1558-3465"],"issn-type":[{"value":"1539-9087","type":"print"},{"value":"1558-3465","type":"electronic"}],"subject":[],"published":{"date-parts":[[2018,9,30]]},"assertion":[{"value":"2017-11-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2018-08-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2018-10-30","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}