{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,1]],"date-time":"2026-04-01T17:53:07Z","timestamp":1775065987483,"version":"3.50.1"},"reference-count":24,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2022,1,31]],"date-time":"2022-01-31T00:00:00Z","timestamp":1643587200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/501100001659","name":"Deutsche Forschungsgemeinshaft","doi-asserted-by":"crossref","award":["405422836 and 124020371"],"award-info":[{"award-number":["405422836 and 124020371"]}],"id":[{"id":"10.13039\/501100001659","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Embed. Comput. Syst."],"published-print":{"date-parts":[[2022,1,31]]},"abstract":"<jats:p>\n            In-memory wear-leveling has become an important research field for emerging non-volatile main memories over the past years. Many approaches in the literature perform wear-leveling by making use of special hardware. Since most non-volatile memories only wear out from write accesses, the proposed approaches in the literature also usually try to spread write accesses widely over the entire memory space. Some non-volatile memories, however, also wear out from read accesses, because every read causes a consecutive write access. Software-based solutions only operate from the application or kernel level, where read and write accesses are realized with different instructions and semantics. Therefore different mechanisms are required to handle reads and writes on the software level. First, we design a method to approximate read and write accesses to the memory to allow aging aware coarse-grained wear-leveling in the absence of special hardware, providing the age information. Second, we provide specific solutions to resolve\n            <jats:italic>access hot-spots<\/jats:italic>\n            within the compiled program code (text segment) and on the application stack. In our evaluation, we estimate the cell age by counting the total amount of accesses per cell. The results show that employing all our methods improves the memory lifetime by up to a factor of 955\u00d7.\n          <\/jats:p>","DOI":"10.1145\/3483839","type":"journal-article","created":{"date-parts":[[2022,2,10]],"date-time":"2022-02-10T15:14:22Z","timestamp":1644506062000},"page":"1-24","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":11,"title":["Software-Managed Read and Write Wear-Leveling for Non-Volatile Main Memory"],"prefix":"10.1145","volume":"21","author":[{"given":"Christian","family":"Hakert","sequence":"first","affiliation":[{"name":"Technical University of Dortmund, Dortmund, Germany"}]},{"given":"Kuan-Hsun","family":"Chen","sequence":"additional","affiliation":[{"name":"Technical University of Dortmund, Dortmund, Germany"}]},{"given":"Horst","family":"Schirmeier","sequence":"additional","affiliation":[{"name":"Technical University of Dortmund, Dortmund, Germany"}]},{"given":"Lars","family":"Bauer","sequence":"additional","affiliation":[{"name":"Karlsruhe Institute of Technology, Karlsruhe, Germany"}]},{"given":"Paul R.","family":"Genssler","sequence":"additional","affiliation":[{"name":"University of Stuttgart, Stuttgart, Room"}]},{"given":"Georg","family":"von der Br\u00fcggen","sequence":"additional","affiliation":[{"name":"Max Planck Institute for Software Systems, Dortmund, Germany"}]},{"given":"Hussam","family":"Amrouch","sequence":"additional","affiliation":[{"name":"University of Stuttgart, Germany"}]},{"given":"J\u00f6rg","family":"Henkel","sequence":"additional","affiliation":[{"name":"Karlsruhe Institute of Technology, Karlsruhe, Germany"}]},{"given":"Jian-Jia","family":"Chen","sequence":"additional","affiliation":[{"name":"Technical University of Dortmund, Dortmund, Germany"}]}],"member":"320","published-online":{"date-parts":[[2022,2,10]]},"reference":[{"key":"e_1_3_2_2_2","doi-asserted-by":"publisher","DOI":"10.1145\/2627369.2627667"},{"key":"e_1_3_2_3_2","doi-asserted-by":"publisher","DOI":"10.1145\/2228360.2228439"},{"key":"e_1_3_2_4_2","doi-asserted-by":"publisher","DOI":"10.1145\/1669112.1669157"},{"key":"e_1_3_2_5_2","doi-asserted-by":"publisher","DOI":"10.1145\/2024724.2024939"},{"key":"e_1_3_2_6_2","doi-asserted-by":"publisher","DOI":"10.5555\/1870926.1871147"},{"key":"e_1_3_2_7_2","doi-asserted-by":"publisher","DOI":"10.5555\/3323298.3323303"},{"key":"e_1_3_2_8_2","volume-title":"MSP430 FRAM Technology\u2014How To and Best Practices","author":"Goh William","year":"2014","unstructured":"William Goh and Andreas Dannenberg. 2014. MSP430 FRAM Technology\u2014How To and Best Practices. Technical Report SLAA628. Texas Instruments. https:\/\/www.ti.com\/lit\/an\/slaa628a\/slaa628a.pdf?ts=1609843980784&ref_url=https253A252F252Fwww.ti.com252Fproduct252FMSP430FR5989-EP."},{"key":"e_1_3_2_9_2","doi-asserted-by":"publisher","DOI":"10.5555\/1128020.1128563"},{"key":"e_1_3_2_10_2","article-title":"SoftWear: Software-only in-memory wear-leveling for non-volatile main memory","volume":"2004","author":"Hakert Christian","year":"2020","unstructured":"Christian Hakert, Kuan-Hsun Chen, Paul R. Genssler, Georg Br\u00fcggen, Lars Bauer, Hussam Amrouch, Jian-Jia Chen, and J\u00f6rg Henkel. 2020. SoftWear: Software-only in-memory wear-leveling for non-volatile main memory. CoRR abs\/2004.03244 (2020). https:\/\/arxiv.org\/pdf\/2004.03244.pdf.","journal-title":"CoRR"},{"key":"e_1_3_2_11_2","doi-asserted-by":"publisher","DOI":"10.1109\/ASP-DAC47756.2020.9045418"},{"key":"e_1_3_2_12_2","doi-asserted-by":"publisher","DOI":"10.1109\/TVLSI.2015.2395415"},{"key":"e_1_3_2_13_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.sysarc.2019.101658"},{"key":"e_1_3_2_14_2","doi-asserted-by":"publisher","DOI":"10.1016\/0040-6090(95)06754-X"},{"key":"e_1_3_2_15_2","doi-asserted-by":"publisher","DOI":"10.5555\/2616606.2616715"},{"key":"e_1_3_2_16_2","doi-asserted-by":"publisher","DOI":"10.23919\/DATE.2019.8715132"},{"key":"e_1_3_2_17_2","volume-title":"ARM Compiler User Guide (Version 6.12).","author":"Limited ARM","unstructured":"ARM Limited. ARM Compiler User Guide (Version 6.12). Retreived November 20, 2021 from https:\/\/static.docs.arm.com\/100748\/0612\/compiler_user_guide_100748_0612_00_en.pdf?_ga=2.51313322.225031596.1586250715-64667359.1569664146."},{"key":"e_1_3_2_18_2","first-page":"279","volume-title":"Proceedings of the 2013 18th Asia and South Pacific Design Automation Conference (ASP-DAC\u201913)","author":"Liu D.","year":"2013","unstructured":"D. Liu, T. Wang, Y. Wang, Z. Shao, Q. Zhuge, and E. Sha. 2013. Curling-PCM: Application-specific wear leveling for phase change memory based embedded systems. In Proceedings of the 2013 18th Asia and South Pacific Design Automation Conference (ASP-DAC\u201913). 279\u2013284. https:\/\/doi.org\/10.1109\/ASPDAC.2013.6509609"},{"key":"e_1_3_2_19_2","doi-asserted-by":"publisher","DOI":"10.1109\/NVMT.1996.534679"},{"key":"e_1_3_2_20_2","doi-asserted-by":"publisher","DOI":"10.1145\/1669112.1669117"},{"key":"e_1_3_2_21_2","doi-asserted-by":"publisher","DOI":"10.1109\/PCCC.2015.7410326"},{"key":"e_1_3_2_22_2","volume-title":"Proceedings of the 2012 European Workshop on System Security (EuroSec\u201912)","volume":"12","author":"Vogl Sebastian","year":"2012","unstructured":"Sebastian Vogl and Claudia Eckert. 2012. Using hardware performance events for instruction-level monitoring on the x86 architecture. In Proceedings of the 2012 European Workshop on System Security (EuroSec\u201912), Vol. 12."},{"key":"e_1_3_2_23_2","doi-asserted-by":"publisher","DOI":"10.1145\/1669112.1669116"},{"key":"e_1_3_2_24_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICCD.2014.6974656"},{"key":"e_1_3_2_25_2","doi-asserted-by":"publisher","DOI":"10.1145\/1555815.1555759"}],"container-title":["ACM Transactions on Embedded Computing Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3483839","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3483839","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T20:19:03Z","timestamp":1750191543000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3483839"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022,1,31]]},"references-count":24,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2022,1,31]]}},"alternative-id":["10.1145\/3483839"],"URL":"https:\/\/doi.org\/10.1145\/3483839","relation":{},"ISSN":["1539-9087","1558-3465"],"issn-type":[{"value":"1539-9087","type":"print"},{"value":"1558-3465","type":"electronic"}],"subject":[],"published":{"date-parts":[[2022,1,31]]},"assertion":[{"value":"2021-02-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2021-08-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2022-02-10","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}