{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,31]],"date-time":"2026-01-31T04:37:21Z","timestamp":1769834241013,"version":"3.49.0"},"reference-count":47,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2018,5,1]],"date-time":"2018-05-01T00:00:00Z","timestamp":1525132800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["CCF-1619140,CCF-1617954,CNS-1464288"],"award-info":[{"award-number":["CCF-1619140,CCF-1617954,CNS-1464288"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100002418","name":"Intel Corporation","doi-asserted-by":"publisher","id":[{"id":"10.13039\/100002418","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Archit. Code Optim."],"published-print":{"date-parts":[[2018,6,30]]},"abstract":"<jats:p>\n            Controlling the distribution and usage of memory power is often difficult, because these effects typically depend on activity across multiple layers of the vertical execution stack. To address this challenge, we construct a novel and collaborative framework that employs object placement, cross-layer communication, and page-level management to effectively distribute application objects in the DRAM hardware to achieve desired power\/performance goals. This work describes the design and implementation of our framework, which is the first to integrate automatic object profiling and analysis at the application layer with fine-grained management of memory hardware resources in the operating system. We demonstrate the utility of this framework by employing it to control memory power consumption more effectively. First, we design a custom memory-intensive workload to show the potential of this approach to reduce DRAM energy consumption. Next, we develop sampling and profiling-based analyses and modify the code generator in the HotSpot VM to understand object usage patterns and\n            <jats:italic>automatically<\/jats:italic>\n            control the placement of hot and cold objects in a partitioned VM heap. This information is communicated to the operating system, which uses it to map the logical application pages to the appropriate DRAM modules according to user-defined provisioning goals. The evaluation shows that our Java VM-based framework achieves our goal of significant DRAM energy savings across a variety of workloads, without any source code modifications or recompilations.\n          <\/jats:p>","DOI":"10.1145\/3196886","type":"journal-article","created":{"date-parts":[[2018,5,1]],"date-time":"2018-05-01T12:00:39Z","timestamp":1525176039000},"page":"1-27","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":9,"title":["Cross-Layer Memory Management to Improve DRAM Energy Efficiency"],"prefix":"10.1145","volume":"15","author":[{"given":"Matthew Benjamin","family":"Olson","sequence":"first","affiliation":[{"name":"University of Tennessee, Knoxville, TN"}]},{"given":"Joseph T.","family":"Teague","sequence":"additional","affiliation":[{"name":"University of Tennessee, Knoxville, TN"}]},{"given":"Divyani","family":"Rao","sequence":"additional","affiliation":[{"name":"University of Tennessee, Knoxville, TN"}]},{"given":"Michael R.","family":"JANTZ","sequence":"additional","affiliation":[{"name":"University of Tennessee, Knoxville, TN"}]},{"given":"Kshitij A.","family":"Doshi","sequence":"additional","affiliation":[{"name":"Intel Corporation, Chandler, AZ"}]},{"given":"Prasad A.","family":"Kulkarni","sequence":"additional","affiliation":[{"name":"University of Kansas, Lawrence, KS"}]}],"member":"320","published-online":{"date-parts":[[2018,5]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/2775054.2694381"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/3037697.3037706"},{"key":"e_1_2_1_3_1","volume-title":"Proceedings of the Conference on Operating Systems Design and Implementation (OSDI\u201999)","author":"Banga Gaurav","unstructured":"Gaurav Banga , Peter Druschel , and Jeffrey C. Mogul . 1999. Resource containers: A new facility for resource management in server systems . In Proceedings of the Conference on Operating Systems Design and Implementation (OSDI\u201999) . 14. Gaurav Banga, Peter Druschel, and Jeffrey C. Mogul. 1999. Resource containers: A new facility for resource management in server systems. In Proceedings of the Conference on Operating Systems Design and Implementation (OSDI\u201999). 14."},{"key":"e_1_2_1_4_1","volume-title":"Proceedings of the 10th USENIX Conference on Operating Systems Design and Implementation (OSDI\u201912)","author":"Belay Adam","year":"2012","unstructured":"Adam Belay , Andrea Bittau , Ali Mashtizadeh , David Terei , David Mazi\u00e8res , and Christos Kozyrakis . 2012 . Dune: Safe user-level access to privileged CPU features . In Proceedings of the 10th USENIX Conference on Operating Systems Design and Implementation (OSDI\u201912) . 335--348. Adam Belay, Andrea Bittau, Ali Mashtizadeh, David Terei, David Mazi\u00e8res, and Christos Kozyrakis. 2012. Dune: Safe user-level access to privileged CPU features. In Proceedings of the 10th USENIX Conference on Operating Systems Design and Implementation (OSDI\u201912). 335--348."},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1109\/TC.2015.2417540"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1167473.1167488"},{"key":"e_1_2_1_7_1","volume-title":"Hammond","author":"Cantalupo Christopher","year":"2015","unstructured":"Christopher Cantalupo , Vishwanath Venkatesan , and Jeff R . Hammond . 2015 . User Extensible Heap Manager for Heterogeneous Memory Platforms and Mixed Memory Policies. Retrieved April 5, 2018, from https:\/\/memkind.github.io\/memkind\/memkind_arch_20150318.pdf. Christopher Cantalupo, Vishwanath Venkatesan, and Jeff R. Hammond. 2015. User Extensible Heap Manager for Heterogeneous Memory Platforms and Mixed Memory Policies. Retrieved April 5, 2018, from https:\/\/memkind.github.io\/memkind\/memkind_arch_20150318.pdf."},{"key":"e_1_2_1_8_1","volume-title":"AutoNUMA: The Other Approach to NUMA Scheduling. Retrieved","author":"Corbet Jonathan","year":"2018","unstructured":"Jonathan Corbet . 2012. AutoNUMA: The Other Approach to NUMA Scheduling. Retrieved April 5, 2018 , from https:\/\/lwn.net\/Articles\/488709\/. Jonathan Corbet. 2012. AutoNUMA: The Other Approach to NUMA Scheduling. Retrieved April 5, 2018, from https:\/\/lwn.net\/Articles\/488709\/."},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/2499368.2451157"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/1998582.1998590"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/513918.514095"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/2901318.2901344"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/224057.224076"},{"key":"e_1_2_1_14_1","volume-title":"Linux VM Infrastructure to Support Memory Power Management. Retrieved","author":"Garg Ankita","year":"2018","unstructured":"Ankita Garg . 2011. Linux VM Infrastructure to Support Memory Power Management. Retrieved April 5, 2018 , from http:\/\/lwn.net\/Articles\/445045\/. Ankita Garg. 2011. Linux VM Infrastructure to Support Memory Power Management. Retrieved April 5, 2018, from http:\/\/lwn.net\/Articles\/445045\/."},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/1297027.1297033"},{"key":"e_1_2_1_16_1","volume-title":"DaCapo Batik Benchmark Fails. Retrieved","year":"2018","unstructured":"Github.com. 2014a. DaCapo Batik Benchmark Fails. Retrieved April 5, 2018 , from https:\/\/github.com\/RedlineResearch\/OLD-OpenJDK8\/issues\/1. Github.com. 2014a. DaCapo Batik Benchmark Fails. Retrieved April 5, 2018, from https:\/\/github.com\/RedlineResearch\/OLD-OpenJDK8\/issues\/1."},{"key":"e_1_2_1_17_1","volume-title":"DaCapo Eclipse Benchmark Fails. Retrieved","year":"2018","unstructured":"Github.com. 2014b. DaCapo Eclipse Benchmark Fails. Retrieved April 5, 2018 , from https:\/\/github.com\/RedlineResearch\/OLD-OpenJDK8\/issues\/2. Github.com. 2014b. DaCapo Eclipse Benchmark Fails. Retrieved April 5, 2018, from https:\/\/github.com\/RedlineResearch\/OLD-OpenJDK8\/issues\/2."},{"key":"e_1_2_1_18_1","unstructured":"David Gomez. 2001. MADVISE (2). Retrieved April 5 2018 from http:\/\/man7.org\/linux\/man-pages\/man2\/madvise.2.html.  David Gomez. 2001. MADVISE (2). Retrieved April 5 2018 from http:\/\/man7.org\/linux\/man-pages\/man2\/madvise.2.html."},{"key":"e_1_2_1_19_1","volume-title":"Android Linux Kernel Additions. Retrieved","author":"Gonzalez Alex","year":"2018","unstructured":"Alex Gonzalez . 2010. Android Linux Kernel Additions. Retrieved April 5, 2018 , from http:\/\/www.lindusembedded.com\/blog\/2010\/12\/07\/\\\\android-linux-kernel-additions\/. Alex Gonzalez. 2010. Android Linux Kernel Additions. Retrieved April 5, 2018, from http:\/\/www.lindusembedded.com\/blog\/2010\/12\/07\/\\\\android-linux-kernel-additions\/."},{"key":"e_1_2_1_20_1","volume-title":"Proceedings of the 2015 USENIX Annual Technical Conference (USENIX ATC\u201915)","author":"Guo Rentong","year":"2015","unstructured":"Rentong Guo , Xiaofei Liao , Hai Jin , Jianhui Yue , and Guang Tan . 2015 . NightWatch: Integrating lightweight and transparent cache pollution control into dynamic memory allocation systems . In Proceedings of the 2015 USENIX Annual Technical Conference (USENIX ATC\u201915) . 307--318. Rentong Guo, Xiaofei Liao, Hai Jin, Jianhui Yue, and Guang Tan. 2015. NightWatch: Integrating lightweight and transparent cache pollution control into dynamic memory allocation systems. In Proceedings of the 2015 USENIX Annual Technical Conference (USENIX ATC\u201915). 307--318."},{"key":"e_1_2_1_21_1","unstructured":"Urs Hoelzle and Luiz Andre Barroso. 2009. The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines. Morgan 8 Claypool.   Urs Hoelzle and Luiz Andre Barroso. 2009. The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines. Morgan 8 Claypool."},{"key":"e_1_2_1_22_1","volume-title":"Proceedings of the USENIX Annual Technical Conference (ATEC\u201903)","author":"Huang Hai","unstructured":"Hai Huang , Padmanabhan Pillai , and Kang G. Shin . 2003. Design and implementation of power-aware virtual memory . In Proceedings of the USENIX Annual Technical Conference (ATEC\u201903) . 5. Hai Huang, Padmanabhan Pillai, and Kang G. Shin. 2003. Design and implementation of power-aware virtual memory. In Proceedings of the USENIX Annual Technical Conference (ATEC\u201903). 5."},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/1028976.1028983"},{"key":"e_1_2_1_24_1","volume-title":"Intel\u00aeXeon\u00aeProcessor E5 and E7 v3 Family Uncore Performance Monitoring Reference Manual. Retrieved","year":"2018","unstructured":"Intel. 2015. Intel\u00aeXeon\u00aeProcessor E5 and E7 v3 Family Uncore Performance Monitoring Reference Manual. Retrieved April 5, 2018 , from https:\/\/www.intel.com\/content\/www\/us\/en\/processors\/xeon\/xeon-e5-v3-uncore-performance-monitoring.html. Intel. 2015. Intel\u00aeXeon\u00aeProcessor E5 and E7 v3 Family Uncore Performance Monitoring Reference Manual. Retrieved April 5, 2018, from https:\/\/www.intel.com\/content\/www\/us\/en\/processors\/xeon\/xeon-e5-v3-uncore-performance-monitoring.html."},{"key":"e_1_2_1_25_1","unstructured":"Intel. 2016. 3D XPoint. Retrieved April 5 2018 from http:\/\/www.intel.com\/content\/www\/us\/en\/architecture-and-technology\/3d-xpoint-unveiled-video.html.  Intel. 2016. 3D XPoint. Retrieved April 5 2018 from http:\/\/www.intel.com\/content\/www\/us\/en\/architecture-and-technology\/3d-xpoint-unveiled-video.html."},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/2814270.2814322"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/2451512.2451543"},{"key":"e_1_2_1_28_1","volume-title":"DDR3 SDRAM Standard. Retrieved","author":"JEDEC.","year":"2018","unstructured":"JEDEC. 2009. DDR3 SDRAM Standard. Retrieved April 5, 2018 , from http:\/\/www.jedec.org\/standards-documents\/docs\/jesd-79-3d. JEDEC. 2009. DDR3 SDRAM Standard. Retrieved April 5, 2018, from http:\/\/www.jedec.org\/standards-documents\/docs\/jesd-79-3d."},{"key":"e_1_2_1_29_1","unstructured":"Andi Kleen. 2004a. MBIND (2). Retrieved April 5 2018 from http:\/\/man7.org\/linux\/man-pages\/man2\/mbind.2.html.  Andi Kleen. 2004a. MBIND (2). Retrieved April 5 2018 from http:\/\/man7.org\/linux\/man-pages\/man2\/mbind.2.html."},{"key":"e_1_2_1_30_1","unstructured":"A. Kleen. 2004b. A NUMA API for Linux. White Paper. SUSE Labs.  A. Kleen. 2004b. A NUMA API for Linux. White Paper. SUSE Labs."},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/378993.379007"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1109\/MC.2003.1250880"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/1950365.1950391"},{"key":"e_1_2_1_34_1","volume-title":"Proceedings of the Ottawa Linux Symposium. 191--200","author":"Magenheimer D.","unstructured":"D. Magenheimer , C. Mason , D. McCracken , and K. Hackel . 2009. Transcendent memory and Linux . In Proceedings of the Ottawa Linux Symposium. 191--200 . D. Magenheimer, C. Mason, D. McCracken, and K. Hackel. 2009. Transcendent memory and Linux. In Proceedings of the Ottawa Linux Symposium. 191--200."},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.5555\/98124"},{"key":"e_1_2_1_36_1","volume-title":"Proceedings of the High Performance Computer Architecture (HPCA\u201915)","author":"Meswani M. R.","unstructured":"M. R. Meswani , S. Blagodurov , D. Roberts , J. Slice , M. Ignatowski , and G. H. Loh . 2015. Heterogeneous memory architectures: A HW\/SW approach for mixing die-stacked and off-package memories . In Proceedings of the High Performance Computer Architecture (HPCA\u201915) . 126--136. M. R. Meswani, S. Blagodurov, D. Roberts, J. Slice, M. Ignatowski, and G. H. Loh. 2015. Heterogeneous memory architectures: A HW\/SW approach for mixing die-stacked and off-package memories. In Proceedings of the High Performance Computer Architecture (HPCA\u201915). 126--136."},{"key":"e_1_2_1_37_1","volume-title":"Java HotSpot Virtual Machine Performance Enhancements. Retrieved","year":"2018","unstructured":"Oracle. 2017. Java HotSpot Virtual Machine Performance Enhancements. Retrieved April 5, 2018 , from https:\/\/docs.oracle.com\/javase\/7\/docs\/technotes\/guides\/vm\/performance-enhancements-7.html. Oracle. 2017. Java HotSpot Virtual Machine Performance Enhancements. Retrieved April 5, 2018, from https:\/\/docs.oracle.com\/javase\/7\/docs\/technotes\/guides\/vm\/performance-enhancements-7.html."},{"key":"e_1_2_1_38_1","volume-title":"Proceedings of the Java Virtual Machine Research and Technology Symposium. 1--12","author":"Paleczny Michael","year":"2001","unstructured":"Michael Paleczny , Christopher Vick , and Cliff Click . 2001 . The Java hotspot server compiler . In Proceedings of the Java Virtual Machine Research and Technology Symposium. 1--12 . Michael Paleczny, Christopher Vick, and Cliff Click. 2001. The Java hotspot server compiler. In Proceedings of the Java Virtual Machine Research and Technology Symposium. 1--12."},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1109\/HOTCHIPS.2015.7477467"},{"key":"e_1_2_1_40_1","unstructured":"SPEC2008. 2008. SPECjvm2008 Benchmarks. Retrieved April 5 2018 from http:\/\/www.spec.org\/jvm2008\/.  SPEC2008. 2008. SPECjvm2008 Benchmarks. Retrieved April 5 2018 from http:\/\/www.spec.org\/jvm2008\/."},{"key":"e_1_2_1_41_1","volume-title":"Memory Management in the Java HotSpot Virtual Machine. Retrieved","year":"2018","unstructured":"Sun-Microsystems. 2006. Memory Management in the Java HotSpot Virtual Machine. Retrieved April 5, 2018 , from http:\/\/www.oracle.com\/technetwork\/java\/javase\/memorymanagement-whitepaper-150215.pdf. Sun-Microsystems. 2006. Memory Management in the Java HotSpot Virtual Machine. Retrieved April 5, 2018, from http:\/\/www.oracle.com\/technetwork\/java\/javase\/memorymanagement-whitepaper-150215.pdf."},{"key":"e_1_2_1_43_1","volume-title":"Automatic NUMA Balancing. Retrieved","author":"van Riel Rik","year":"2018","unstructured":"Rik van Riel . 2014. Automatic NUMA Balancing. Retrieved April 5, 2018 , from https:\/\/www.linux-kvm.org\/images\/7\/75\/01x07b-NumaAutobalancing.pdf. Rik van Riel. 2014. Automatic NUMA Balancing. Retrieved April 5, 2018, from https:\/\/www.linux-kvm.org\/images\/7\/75\/01x07b-NumaAutobalancing.pdf."},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1109\/MCSE.2015.4"},{"key":"e_1_2_1_45_1","volume-title":"Proceedings of the 16th International Symposium on High-Performance Computer Architecture (HPCA\u201916)","author":"Ware Malcolm","unstructured":"Malcolm Ware , Karthick Rajamani , Michael Floyd , Bishop Brock , Juan C. Rubio , Freeman Rawson , and John B. Carter . 2010. Architecting for power management: The IBM\u00ae POWER7 approach . In Proceedings of the 16th International Symposium on High-Performance Computer Architecture (HPCA\u201916) . IEEE, Los Alamitos, CA, 1--11. Malcolm Ware, Karthick Rajamani, Michael Floyd, Bishop Brock, Juan C. Rubio, Freeman Rawson, and John B. Carter. 2010. Architecting for power management: The IBM\u00ae POWER7 approach. In Proceedings of the 16th International Symposium on High-Performance Computer Architecture (HPCA\u201916). IEEE, Los Alamitos, CA, 1--11."},{"key":"e_1_2_1_46_1","volume-title":"Proceedings of the 2013 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS\u201913)","author":"Weaver V. M.","unstructured":"V. M. Weaver , D. Terpstra , and S. Moore . 2013. Non-determinism and overcount on modern hardware performance counter implementations . In Proceedings of the 2013 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS\u201913) . 215--224. V. M. Weaver, D. Terpstra, and S. Moore. 2013. Non-determinism and overcount on modern hardware performance counter implementations. In Proceedings of the 2013 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS\u201913). 215--224."},{"key":"e_1_2_1_47_1","volume-title":"Intel Performance Counter Monitor. Retrieved","author":"Willhalm Thomas","year":"2018","unstructured":"Thomas Willhalm , Roman Dementiev , and Patrick Fay . 2012. Intel Performance Counter Monitor. Retrieved April 5, 2018 , from http:\/\/www.intel.com\/software\/pcm. Thomas Willhalm, Roman Dementiev, and Patrick Fay. 2012. Intel Performance Counter Monitor. Retrieved April 5, 2018, from http:\/\/www.intel.com\/software\/pcm."},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/1024393.1024415"}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3196886","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3196886","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3196886","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T01:39:29Z","timestamp":1750210769000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3196886"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018,5]]},"references-count":47,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2018,6,30]]}},"alternative-id":["10.1145\/3196886"],"URL":"https:\/\/doi.org\/10.1145\/3196886","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"value":"1544-3566","type":"print"},{"value":"1544-3973","type":"electronic"}],"subject":[],"published":{"date-parts":[[2018,5]]},"assertion":[{"value":"2017-08-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2018-03-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2018-05-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}