{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,8]],"date-time":"2026-01-08T06:25:18Z","timestamp":1767853518975,"version":"3.49.0"},"reference-count":47,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2014,2,1]],"date-time":"2014-02-01T00:00:00Z","timestamp":1391212800000},"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":[[2014,2]]},"abstract":"<jats:p>The main memory system is a shared resource in modern multicore machines that can result in serious interference leading to reduced throughput and unfairness. Many new memory scheduling mechanisms have been proposed to address the interference problem. However, these mechanisms usually employ relative complex scheduling logic and need modifications to Memory Controllers (MCs), which incur expensive hardware design and manufacturing overheads.<\/jats:p>\n          <jats:p>This article presents a practical software approach to effectively eliminate the interference without any hardware modifications. The key idea is to modify the OS memory management system and adopt a page-coloring-based Bank-level Partitioning Mechanism (BPM) that allocates dedicated DRAM banks to each core (or thread). By using BPM, memory requests from distinct programs are segregated across multiple memory banks to promote locality\/fairness and reduce interference. We further extend BPM to BPM+ by incorporating channel-level partitioning, on which we demonstrate additional gain over BPM in many cases. To achieve benefits in the presence of diverse application memory needs and avoid performance degradation due to resource underutilization, we propose a dynamic mechanism upon BPM\/BPM+ that assigns appropriate bank\/channel resources based on application memory\/bandwidth demands monitored through PMU (performance-monitoring unit) and a low-overhead OS page table scanning process.<\/jats:p>\n          <jats:p>We implement BPM\/BPM+ in Linux 2.6.32.15 kernel and evaluate the technique on four-core and eight-core real machines by running a large amount of randomly generated multiprogrammed and multithreaded workloads. Experimental results show that BPM\/BPM+ can improve the overall system throughput by 4.7%\/5.9%, on average, (up to 8.6%\/9.5%) and reduce the unfairness by an average of 4.2%\/6.1% (up to 15.8%\/13.9%).<\/jats:p>","DOI":"10.1145\/2579672","type":"journal-article","created":{"date-parts":[[2014,3,18]],"date-time":"2014-03-18T12:09:07Z","timestamp":1395144547000},"page":"1-28","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":17,"title":["BPM\/BPM+"],"prefix":"10.1145","volume":"11","author":[{"given":"Lei","family":"Liu","sequence":"first","affiliation":[{"name":"State Key Laboratory of Computer Architecture, ICT, CAS, China"}]},{"given":"Zehan","family":"Cui","sequence":"additional","affiliation":[{"name":"State Key Laboratory of Computer Architecture, ICT, CAS, China; Graduate School, CAS, China"}]},{"given":"Yong","family":"Li","sequence":"additional","affiliation":[{"name":"Department of ECE, University of Pittsburgh"}]},{"given":"Yungang","family":"Bao","sequence":"additional","affiliation":[{"name":"State Key Laboratory of Computer Architecture, ICT, CAS, China"}]},{"given":"Mingyu","family":"Chen","sequence":"additional","affiliation":[{"name":"State Key Laboratory of Computer Architecture, ICT, CAS, China"}]},{"given":"Chengyong","family":"Wu","sequence":"additional","affiliation":[{"name":"State Key Laboratory of Computer Architecture, ICT, CAS, China"}]}],"member":"320","published-online":{"date-parts":[[2014,2]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"crossref","unstructured":"N. Aggarwal etal 2008. Power Efficient DRAM Speculation. In HPCA-14.  N. Aggarwal et al. 2008. Power Efficient DRAM Speculation. In HPCA-14.","DOI":"10.1109\/HPCA.2008.4658649"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/1531793.1531803"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/1375457.1375484"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/1816038.1815978"},{"key":"e_1_2_1_5_1","volume-title":"Technical Report TR-811-08, Princeton University.","author":"Bienia C.","year":"2008","unstructured":"C. Bienia , 2008 . The PARSEC Benchmark Suite: Characterization and Architectural Implications . Technical Report TR-811-08, Princeton University. C. Bienia, et al. 2008. The PARSEC Benchmark Suite: Characterization and Architectural Implications. Technical Report TR-811-08, Princeton University."},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2006.31"},{"key":"e_1_2_1_7_1","volume-title":"IGCC'11","author":"Cui Z.","year":"2011","unstructured":"Z. Cui , 2011 . A Fine-grained Component-Level Power Measurement Method . In IGCC'11 . Z.Cui, et al. 2011. A Fine-grained Component-Level Power Measurement Method. In IGCC'11."},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2013.6522311"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/2024723.2000107"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/1594233.1594292"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/1736020.1736058"},{"key":"e_1_2_1_12_1","unstructured":"Hewlett-Packard Development Company Perfmon Project. 2005. Retrieved from http:\/\/www.hpl.hp.com\/techreports\/2004\/HPL-2004-200R1.html&quest;jumpid=reg_r1002_usen_c-001_title_r0001.  Hewlett-Packard Development Company Perfmon Project. 2005. Retrieved from http:\/\/www.hpl.hp.com\/techreports\/2004\/HPL-2004-200R1.html&quest;jumpid=reg_r1002_usen_c-001_title_r0001."},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1314299.1314301"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/1254882.1254886"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2012.6168944"},{"key":"e_1_2_1_16_1","volume-title":"ATLAS: A Scalable and High-Performance Scheduling Algorithm for Multiple MCs. In HPCA-16.","author":"Kim Y.","year":"2010","unstructured":"Y. Kim , 2010 . ATLAS: A Scalable and High-Performance Scheduling Algorithm for Multiple MCs. In HPCA-16. Y. Kim, et al. 2010. ATLAS: A Scalable and High-Performance Scheduling Algorithm for Multiple MCs. In HPCA-16."},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2010.51"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/2155620.2155624"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1109\/MM.2008.48"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/1669112.1669155"},{"key":"e_1_2_1_21_1","unstructured":"J. Liedtke H. Haertig and M. Hohmuth. 1997. OS-Controlled Cache Predictability for Real-Time Systems. In RTAS-3.   J. Liedtke H. Haertig and M. Hohmuth. 1997. OS-Controlled Cache Predictability for Real-Time Systems. In RTAS-3."},{"key":"e_1_2_1_22_1","unstructured":"Linux\/RK. 2013. Homepage. Retrieved from https:\/\/rtml.ece.cmu.edu\/redmine\/projects\/rk.  Linux\/RK. 2013. Homepage. Retrieved from https:\/\/rtml.ece.cmu.edu\/redmine\/projects\/rk."},{"key":"e_1_2_1_23_1","unstructured":"J. Lin Q. Lu X. Ding Z. Zhang X. Zhang and P. Sadayappan. 2008. Gaining Insights into Multicore Cache Partitioning: Bridging the Gap between Simulation and Real Systems. In HPCA-14.  J. Lin Q. Lu X. Ding Z. Zhang X. Zhang and P. Sadayappan. 2008. Gaining Insights into Multicore Cache Partitioning: Bridging the Gap between Simulation and Real Systems. In HPCA-14."},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/2370816.2370869"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.5555\/1882011.1882045"},{"key":"e_1_2_1_26_1","unstructured":"T. Moscibroda and O. Mutlu. 2007. Memory Performance Attacks: Denial of Memory Service in Multi-Core Systems. In USENIX Security.   T. Moscibroda and O. Mutlu. 2007. Memory Performance Attacks: Denial of Memory Service in Multi-Core Systems. In USENIX Security."},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/2155620.2155664"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA.2008.7"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2007.40"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/1054943.1054954"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2006.24"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/2499368.2451137"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2006.49"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/339647.339668"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/1555754.1555801"},{"key":"e_1_2_1_36_1","volume-title":"SPEC CPU2006","author":"Standard Performance Evaluation Corporation","year":"2011","unstructured":"Standard Performance Evaluation Corporation . 2011 . SPEC CPU2006 . Retrieved from http:\/\/www.spec.org\/cpu 2006. Standard Performance Evaluation Corporation. 2011. SPEC CPU2006. Retrieved from http:\/\/www.spec.org\/cpu2006."},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/1736020.1736045"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1023\/B:SUPE.0000014800.27383.8f"},{"key":"e_1_2_1_39_1","unstructured":"G. E. Suh S. Devadas and L. Rudolph. 2002. A New Memory Monitoring Scheme for Memory-Aware Scheduling and Partitioning. In HPCA-8.   G. E. Suh S. Devadas and L. Rudolph. 2002. A New Memory Monitoring Scheme for Memory-Aware Scheduling and Partitioning. In HPCA-8."},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1109\/CSE.2013.106"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1109\/12.165388"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2013.6522356"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/1816038.1815983"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/1669112.1669119"},{"key":"e_1_2_1_45_1","volume-title":"Hardware Execution Throttling for Multi-Core Resource Management. In USENIX ATC'09","author":"Zhang X.","unstructured":"X. Zhang , S. Dwarkadas , and K. Shen . 2009 . Hardware Execution Throttling for Multi-Core Resource Management. In USENIX ATC'09 . X. Zhang, S. Dwarkadas, and K. Shen. 2009. Hardware Execution Throttling for Multi-Core Resource Management. In USENIX ATC'09."},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/360128.360134"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/1735970.1736036"}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2579672","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2579672","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T23:43:50Z","timestamp":1750290230000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2579672"}},"subtitle":["Software-based dynamic memory partitioning mechanisms for mitigating DRAM bank-\/channel-level interferences in multicore systems"],"short-title":[],"issued":{"date-parts":[[2014,2]]},"references-count":47,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2014,2]]}},"alternative-id":["10.1145\/2579672"],"URL":"https:\/\/doi.org\/10.1145\/2579672","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"value":"1544-3566","type":"print"},{"value":"1544-3973","type":"electronic"}],"subject":[],"published":{"date-parts":[[2014,2]]},"assertion":[{"value":"2013-06-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2013-12-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2014-02-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}