{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,6]],"date-time":"2026-06-06T01:15:27Z","timestamp":1780708527725,"version":"3.54.1"},"reference-count":159,"publisher":"Association for Computing Machinery (ACM)","issue":"7","license":[{"start":{"date-parts":[[2021,7,18]],"date-time":"2021-07-18T00:00:00Z","timestamp":1626566400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"FCT","award":["UIDB\/50021\/2020"],"award-info":[{"award-number":["UIDB\/50021\/2020"]}]},{"DOI":"10.13039\/501100001807","name":"FAPESP","doi-asserted-by":"crossref","award":["2018\/15519-5"],"award-info":[{"award-number":["2018\/15519-5"]}],"id":[{"id":"10.13039\/501100001807","id-type":"DOI","asserted-by":"crossref"}]},{"name":"EU?s H2020 R&I programme","award":["GA 801051"],"award-info":[{"award-number":["GA 801051"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Comput. Surv."],"published-print":{"date-parts":[[2022,9,30]]},"abstract":"<jats:p>The recent rise of byte-addressable non-volatile memory technologies is blurring the dichotomy between memory and storage. In particular, they allow programmers to have direct access to persistent data instead of relying on traditional interfaces, such as file and database systems. However, they also bring new challenges, as a failure may render the program in an unrecoverable and inconsistent state. Consequently, a lot of effort has been put by both industry and academia into making the task of programming with such memories easier while, at the same time, efficient from the runtime perspective. This survey summarizes such a body of research, from the abstractions to the implementation level. As persistent memory is starting to appear commercially, the state-of-the-art research condensed here will help investigators to quickly stay up to date while also motivating others to pursue research in the field.<\/jats:p>","DOI":"10.1145\/3465402","type":"journal-article","created":{"date-parts":[[2021,7,18]],"date-time":"2021-07-18T16:07:33Z","timestamp":1626624453000},"page":"1-37","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":33,"title":["Persistent Memory"],"prefix":"10.1145","volume":"54","author":[{"given":"Alexandro","family":"Baldassin","sequence":"first","affiliation":[{"name":"S\u00e3o Paulo State University (Unesp), Institute of Geosciences and Exact Sciences, Brazil"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Jo\u00e3o","family":"Barreto","sequence":"additional","affiliation":[{"name":"INESC-ID, Instituto Superior T\u00e9cnico, Universidade de Lisboa"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Daniel","family":"Castro","sequence":"additional","affiliation":[{"name":"INESC-ID, Instituto Superior T\u00e9cnico, Universidade de Lisboa"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Paolo","family":"Romano","sequence":"additional","affiliation":[{"name":"INESC-ID, Instituto Superior T\u00e9cnico, Universidade de Lisboa"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2021,7,18]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1109\/JPROC.2010.2070830"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/2463585.2463589"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380130306"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01231642"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1093\/comjnl\/26.4.360"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/245882.245905"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.14778\/3025111.3025122"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-48653-5_41"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1109\/MC.2013.189"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-57675-2_30"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/355602.361306"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/2983990.2984019"},{"key":"e_1_2_1_14_1","volume-title":"Miller","author":"Bittman Daniel","year":"2019","unstructured":"Daniel Bittman , Peter Alvaro , and Ethan L . Miller . 2019 . A Persistent Problem: Managing Pointers in NVM. In Proceedings of PLOS\u2019 19. 30\u201337. Daniel Bittman, Peter Alvaro, and Ethan L. Miller. 2019. A Persistent Problem: Managing Pointers in NVM. In Proceedings of PLOS\u201919. 30\u201337."},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1109\/L-CA.2006.18"},{"key":"e_1_2_1_16_1","volume-title":"Proceedings of PLDI\u201908","author":"J.","unstructured":"Hans- J. Boehm and Sarita V. Adve. 2008. Foundations of the C++ concurrency memory model . In Proceedings of PLDI\u201908 . 68\u201378. Hans-J. Boehm and Sarita V. Adve. 2008. Foundations of the C++ concurrency memory model. In Proceedings of PLDI\u201908. 68\u201378."},{"key":"e_1_2_1_17_1","volume-title":"Proceedings of ISMM\u201916","author":"J.","unstructured":"Hans- J. Boehm and Dhruva R. Chakrabarti. 2016. Persistence programming models for non-volatile memory . In Proceedings of ISMM\u201916 . 55\u201367. Hans-J. Boehm and Dhruva R. Chakrabarti. 2016. Persistence programming models for non-volatile memory. In Proceedings of ISMM\u201916. 55\u201367."},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/3131848"},{"key":"e_1_2_1_19_1","volume-title":"Bovet and Marco Cesati","author":"Daniel","year":"2005","unstructured":"Daniel P. Bovet and Marco Cesati . 2005 . Understanding the Linux Kernel (3th ed.). O\u2019Reilly Media . Daniel P. Bovet and Marco Cesati. 2005. Understanding the Linux Kernel (3th ed.). O\u2019Reilly Media."},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA45697.2020.00055"},{"key":"e_1_2_1_21_1","volume-title":"Proceedings of PPoPP\u201920","author":"Cai Wentao","unstructured":"Wentao Cai , Haosen Wen , H. Alan Beadle , Mohammad Hedayati , and Michael L. Scott . 2020. Understanding and optimizing persistent memory allocation . In Proceedings of PPoPP\u201920 . 421\u2013422. Wentao Cai, Haosen Wen, H. Alan Beadle, Mohammad Hedayati, and Michael L. Scott. 2020. Understanding and optimizing persistent memory allocation. In Proceedings of PPoPP\u201920. 421\u2013422."},{"key":"e_1_2_1_22_1","volume-title":"Proceedings of FAST\u201921","author":"Castro Daniel","year":"2021","unstructured":"Daniel Castro , Alexandro Baldassin , Jo\u00e3o Barreto , and Paolo Romano . 2021 . SPHT: Scalable persistent hardware transactions . In Proceedings of FAST\u201921 . 155\u2013169. Daniel Castro, Alexandro Baldassin, Jo\u00e3o Barreto, and Paolo Romano. 2021. SPHT: Scalable persistent hardware transactions. In Proceedings of FAST\u201921. 155\u2013169."},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1109\/IPDPS.2018.00046"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1109\/SC.2010.56"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/2660193.2660224"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/35037.42270"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.14778\/2735479.2735483"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/3123939.3124543"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.14778\/2752939.2752947"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/1950365.1950380"},{"key":"e_1_2_1_31_1","volume-title":"Proceedings of ASPLOS\u201919","author":"Cohen Nachshon","unstructured":"Nachshon Cohen , David T. Aksun , Hillel Avni , and James R. Larus . 2019. Fine-grain checkpointing with in-cache-line logging . In Proceedings of ASPLOS\u201919 . 441\u2013454. Nachshon Cohen, David T. Aksun, Hillel Avni, and James R. Larus. 2019. Fine-grain checkpointing with in-cache-line logging. In Proceedings of ASPLOS\u201919. 441\u2013454."},{"key":"e_1_2_1_32_1","volume-title":"Proc. ACM Program. Lang. 2, OOPSLA (Oct.","author":"Cohen Nachshon","year":"2018","unstructured":"Nachshon Cohen , David T. Aksun , and James R. Larus . 2018. Object-Oriented Recovery for non-volatile memory . Proc. ACM Program. Lang. 2, OOPSLA (Oct. 2018 ), 153:1\u2013153:22. Nachshon Cohen, David T. Aksun, and James R. Larus. 2018. Object-Oriented Recovery for non-volatile memory. Proc. ACM Program. Lang. 2, OOPSLA (Oct. 2018), 153:1\u2013153:22."},{"key":"e_1_2_1_33_1","volume-title":"Proc. ACM Program. Lang. 1, OOPSLA (Oct.","author":"Cohen Nachshon","year":"2017","unstructured":"Nachshon Cohen , Michal Friedman , and James R. Larus . 2017. Efficient logging in non-volatile memory by exploiting coherency protocols . Proc. ACM Program. Lang. 1, OOPSLA (Oct. 2017 ), 67:1\u201367:24. Nachshon Cohen, Michal Friedman, and James R. Larus. 2017. Efficient logging in non-volatile memory by exploiting coherency protocols. Proc. ACM Program. Lang. 1, OOPSLA (Oct. 2017), 67:1\u201367:24."},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/3210377.3210400"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/1629575.1629589"},{"key":"e_1_2_1_36_1","unstructured":"Intel Corporation. 2020. Intel Architecture Instruction Set Extensions Programming Reference.  Intel Corporation. 2020. Intel Architecture Instruction Set Extensions Programming Reference."},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/3210377.3210392"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/3342195.3387515"},{"key":"e_1_2_1_39_1","volume-title":"Proceedings of USENIX ATC\u201918","author":"David Tudor","year":"2018","unstructured":"Tudor David , Aleksandar Dragojevic , Rachid Guerraoui , and Igor Zablotchi . 2018 . Log-free concurrent data structures . In Proceedings of USENIX ATC\u201918 . 373\u2013386. Tudor David, Aleksandar Dragojevic, Rachid Guerraoui, and Igor Zablotchi. 2018. Log-free concurrent data structures. In Proceedings of USENIX ATC\u201918. 373\u2013386."},{"key":"e_1_2_1_40_1","volume-title":"Vetter","author":"Denny Joel E.","year":"2016","unstructured":"Joel E. Denny , Seyong Lee , and Jeffrey S . Vetter . 2016 . NVL-C: Static analysis techniques for efficient, correct programming of non-volatile main memory systems. In Proceedings of HPDC\u2019 16. 125\u2013136. Joel E. Denny, Seyong Lee, and Jeffrey S. Vetter. 2016. NVL-C: Static analysis techniques for efficient, correct programming of non-volatile main memory systems. In Proceedings of HPDC\u201916. 125\u2013136."},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2016.7446055"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA51647.2021.00021"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/1071610.1071615"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1109\/TED.2017.2746342"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1109\/JPROC.2016.2521712"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1147\/rd.524.0439"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/3385412.3386031"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/3385412.3385991"},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/2482767.2482806"},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/3092255.3092270"},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1145\/3240302.3240305"},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1109\/MSST.2015.7208276"},{"key":"e_1_2_1_53_1","volume-title":"Proceedings of PLDI\u201918","author":"Gogte Vaibhav","unstructured":"Vaibhav Gogte , Stephan Diestelhorst , William Wang , Satish Narayanasamy , Peter M. Chen , and Thomas F. Wenisch . 2018. Persistency for synchronization-free regions . In Proceedings of PLDI\u201918 . 46\u201361. Vaibhav Gogte, Stephan Diestelhorst, William Wang, Satish Narayanasamy, Peter M. Chen, and Thomas F. Wenisch. 2018. Persistency for synchronization-free regions. In Proceedings of PLDI\u201918. 46\u201361."},{"key":"e_1_2_1_54_1","volume-title":"Proceedings of ISCA\u201920","author":"Gogte Vaibhav","unstructured":"Vaibhav Gogte , William Wang , Stephan Diestelhorst , Peter M. Chen , Satish Narayanasamy , and Thomas F. Wenisch . 2020. Relaxed persist ordering using strand persistency . In Proceedings of ISCA\u201920 . 652\u2013665. Vaibhav Gogte, William Wang, Stephan Diestelhorst, Peter M. Chen, Satish Narayanasamy, and Thomas F. Wenisch. 2020. Relaxed persist ordering using strand persistency. In Proceedings of ISCA\u201920. 652\u2013665."},{"key":"e_1_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.1145\/356842.356847"},{"key":"e_1_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.5555\/573304"},{"key":"e_1_2_1_57_1","unstructured":"Paul Green. 2005. Multics Virtual Memory\u2014Tutorial and Reflections. Retrieved from https:\/\/multicians.org\/pg\/mvm.html.  Paul Green. 2005. Multics Virtual Memory\u2014Tutorial and Reflections. Retrieved from https:\/\/multicians.org\/pg\/mvm.html."},{"key":"e_1_2_1_58_1","volume-title":"Proceedings of USENIX ATC\u201919","author":"Gu Jinyu","year":"2019","unstructured":"Jinyu Gu , Qianqian Yu , Xiayang Wang , Zhaoguo Wang , Binyu Zang , Haibing Guan , and Haibo Chen . 2019 . Pisces: A scalable and efficient persistent transactional memory . In Proceedings of USENIX ATC\u201919 . 913\u2013928. Jinyu Gu, Qianqian Yu, Xiayang Wang, Zhaoguo Wang, Binyu Zang, Haibing Guan, and Haibo Chen. 2019. Pisces: A scalable and efficient persistent transactional memory. In Proceedings of USENIX ATC\u201919. 913\u2013928."},{"key":"e_1_2_1_59_1","volume-title":"Proceedings of USENIX ATC\u201912","author":"Guerra Jorge","year":"2012","unstructured":"Jorge Guerra , Leonardo Marmol , Daniel Campello , Carlos Crespo , Raju Rangaswami , and Jinpeng Wei . 2012 . Software persistent Memory . In Proceedings of USENIX ATC\u201912 . 319\u2013331. Jorge Guerra, Leonardo Marmol, Daniel Campello, Carlos Crespo, Raju Rangaswami, and Jinpeng Wei. 2012. Software persistent Memory. In Proceedings of USENIX ATC\u201912. 319\u2013331."},{"key":"e_1_2_1_60_1","doi-asserted-by":"publisher","DOI":"10.1145\/3352460.3358321"},{"key":"e_1_2_1_61_1","volume-title":"Swift","author":"Haria Swapnil","year":"2020","unstructured":"Swapnil Haria , Mark D. Hill , and Michael M . Swift . 2020 . MOD : Minimally ordered durable datastructures for persistent memory. In Proceedings of ASPLOS\u2019 20. 775\u2013788. Swapnil Haria, Mark D. Hill, and Michael M. Swift. 2020. MOD: Minimally ordered durable datastructures for persistent memory. In Proceedings of ASPLOS\u201920. 775\u2013788."},{"key":"e_1_2_1_62_1","volume-title":"Patterson","author":"Hennessy John L.","year":"2011","unstructured":"John L. Hennessy and David A . Patterson . 2011 . Computer Architecture : A Quantitative Approach (5th ed.). Morgan Kaufmann . John L. Hennessy and David A. Patterson. 2011. Computer Architecture: A Quantitative Approach (5th ed.). Morgan Kaufmann."},{"key":"e_1_2_1_63_1","volume-title":"The Art of Multiprocessor Programming","author":"Herlihy Maurice","unstructured":"Maurice Herlihy and Nir Shavit . 2012. The Art of Multiprocessor Programming ( 1 st ed.). Morgan Kaufmann . Maurice Herlihy and Nir Shavit. 2012. The Art of Multiprocessor Programming (1st ed.). Morgan Kaufmann.","edition":"1"},{"key":"e_1_2_1_64_1","volume-title":"Proceedings of EuroSys\u201917","author":"Ching-Hsiang Hsu Terry","year":"2017","unstructured":"Terry Ching-Hsiang Hsu , Helge Br\u00fcgner , Indrajit Roy , Kimberly Keeton , and Patrick Eugster . 2017 . NVthreads: Practical persistence for multi-threaded applications . In Proceedings of EuroSys\u201917 . 468\u2013482. Terry Ching-Hsiang Hsu, Helge Br\u00fcgner, Indrajit Roy, Kimberly Keeton, and Patrick Eugster. 2017. NVthreads: Practical persistence for multi-threaded applications. In Proceedings of EuroSys\u201917. 468\u2013482."},{"key":"e_1_2_1_65_1","volume-title":"Proceedings of USENIX ATC\u201917","author":"Hu Qingda","year":"2017","unstructured":"Qingda Hu , Jinglei Ren , Anirudh Badam , Jiwu Shu , and Thomas Moscibroda . 2017 . Log-structured non-volatile main memory . In Proceedings of USENIX ATC\u201917 . 703\u2013717. Qingda Hu, Jinglei Ren, Anirudh Badam, Jiwu Shu, and Thomas Moscibroda. 2017. Log-structured non-volatile main memory. In Proceedings of USENIX ATC\u201917. 703\u2013717."},{"key":"e_1_2_1_66_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICECCS.2019.00024"},{"key":"e_1_2_1_67_1","doi-asserted-by":"publisher","DOI":"10.1145\/2629619"},{"key":"e_1_2_1_68_1","doi-asserted-by":"publisher","DOI":"10.1587\/transinf.2019EDP7002"},{"key":"e_1_2_1_69_1","unstructured":"IBM. 2020. IBM i\u2014A Platform for Innovators by Innovators. Retrieved from https:\/\/www.ibm.com\/it-infrastructure\/power\/os\/ibm-i.  IBM. 2020. IBM i\u2014A Platform for Innovators by Innovators. Retrieved from https:\/\/www.ibm.com\/it-infrastructure\/power\/os\/ibm-i."},{"key":"e_1_2_1_70_1","unstructured":"Intel. 2020. Intel 64 and IA-32 Architectures Software Developer\u2019s Manual. Retrieved from https:\/\/software.intel.com\/content\/www\/us\/en\/develop\/articles\/intel-sdm.html.  Intel. 2020. Intel 64 and IA-32 Architectures Software Developer\u2019s Manual. Retrieved from https:\/\/software.intel.com\/content\/www\/us\/en\/develop\/articles\/intel-sdm.html."},{"key":"e_1_2_1_71_1","unstructured":"ISO\/IEC. 2015. Technical Specification for C++ Extensions for Transactional Memory.  ISO\/IEC. 2015. Technical Specification for C++ Extensions for Transactional Memory."},{"key":"e_1_2_1_72_1","doi-asserted-by":"publisher","DOI":"10.1145\/2872362.2872410"},{"key":"e_1_2_1_73_1","volume-title":"Proceedings of DISC\u201916","author":"Izraelevitz Joseph","unstructured":"Joseph Izraelevitz , Hammurabi Mendes , and Michael L. Scott . 2016. Linearizability of persistent memory objects under a full-system-crash failure model . In Proceedings of DISC\u201916 . 313\u2013327. Joseph Izraelevitz, Hammurabi Mendes, and Michael L. Scott. 2016. Linearizability of persistent memory objects under a full-system-crash failure model. In Proceedings of DISC\u201916. 313\u2013327."},{"key":"e_1_2_1_74_1","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2018.00049"},{"key":"e_1_2_1_75_1","doi-asserted-by":"publisher","DOI":"10.1145\/2830772.2830805"},{"key":"e_1_2_1_76_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA.2018.00045"},{"key":"e_1_2_1_77_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2017.50"},{"key":"e_1_2_1_78_1","doi-asserted-by":"publisher","DOI":"10.1145\/2901318.2901325"},{"key":"e_1_2_1_79_1","doi-asserted-by":"publisher","DOI":"10.1145\/3358955.3358957"},{"key":"e_1_2_1_80_1","doi-asserted-by":"publisher","DOI":"10.1145\/2872362.2872392"},{"key":"e_1_2_1_81_1","volume-title":"Proceedings of ISCA\u201917","author":"Kolli Aasheesh","unstructured":"Aasheesh Kolli , Vaibhav Gogte , Ali Saidi , Stephan Diestelhorst , Peter M. Chen , Satish Narayanasamy , and Thomas F. Wenisch . 2017. Language-level persistency . In Proceedings of ISCA\u201917 . 481\u2013493. Aasheesh Kolli, Vaibhav Gogte, Ali Saidi, Stephan Diestelhorst, Peter M. Chen, Satish Narayanasamy, and Thomas F. Wenisch. 2017. Language-level persistency. In Proceedings of ISCA\u201917. 481\u2013493."},{"key":"e_1_2_1_82_1","doi-asserted-by":"publisher","DOI":"10.1109\/MM.2019.2910821"},{"key":"e_1_2_1_83_1","volume-title":"Proceedings of ASPLOS\u201916","author":"Kolli Aasheesh","unstructured":"Aasheesh Kolli , Steven Pelley , Ali Saidi , Peter M. Chen , and Thomas F. Wenisch . 2016. High-performance transactions for persistent memories . In Proceedings of ASPLOS\u201916 . 399\u2013411. Aasheesh Kolli, Steven Pelley, Ali Saidi, Peter M. Chen, and Thomas F. Wenisch. 2016. High-performance transactions for persistent memories. In Proceedings of ASPLOS\u201916. 399\u2013411."},{"key":"e_1_2_1_84_1","volume-title":"Proceedings of MICRO\u201916","author":"Kolli Aasheesh","unstructured":"Aasheesh Kolli , Jeff Rosen , Stephan Diestelhorst , Ali Saidi , Steven Pelley , Sihang Liu , Peter M. Chen , and Thomas F. Wenisch . 2016. Delegated persist ordering . In Proceedings of MICRO\u201916 . 1\u201313. Aasheesh Kolli, Jeff Rosen, Stephan Diestelhorst, Ali Saidi, Steven Pelley, Sihang Liu, Peter M. Chen, and Thomas F. Wenisch. 2016. Delegated persist ordering. In Proceedings of MICRO\u201916. 1\u201313."},{"key":"e_1_2_1_85_1","doi-asserted-by":"publisher","DOI":"10.1145\/3373376.3378483"},{"key":"e_1_2_1_86_1","doi-asserted-by":"publisher","DOI":"10.1145\/125223.125244"},{"key":"e_1_2_1_87_1","doi-asserted-by":"publisher","DOI":"10.1145\/1555754.1555758"},{"key":"e_1_2_1_88_1","doi-asserted-by":"publisher","DOI":"10.1109\/MM.2010.24"},{"key":"e_1_2_1_89_1","doi-asserted-by":"publisher","DOI":"10.1145\/3341301.3359635"},{"key":"e_1_2_1_90_1","doi-asserted-by":"publisher","DOI":"10.1145\/3337821.3337827"},{"key":"e_1_2_1_91_1","doi-asserted-by":"publisher","DOI":"10.1145\/3037697.3037714"},{"key":"e_1_2_1_92_1","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2018.00029"},{"key":"e_1_2_1_93_1","doi-asserted-by":"publisher","DOI":"10.1145\/3373376.3378452"},{"key":"e_1_2_1_94_1","doi-asserted-by":"publisher","DOI":"10.1145\/3297858.3304015"},{"key":"e_1_2_1_95_1","doi-asserted-by":"publisher","DOI":"10.1145\/269005.266665"},{"key":"e_1_2_1_96_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICCD.2014.6974684"},{"key":"e_1_2_1_97_1","volume-title":"Proceedings of USENIX HotStorage\u201917","author":"Marathe Virendra J.","year":"2017","unstructured":"Virendra J. Marathe , Margo Seltzer , Steve Byan , and Tim Harris . 2017 . Persistent Memcached: Bringing legacy code to byte-addressable persistent memory . In Proceedings of USENIX HotStorage\u201917 . Virendra J. Marathe, Margo Seltzer, Steve Byan, and Tim Harris. 2017. Persistent Memcached: Bringing legacy code to byte-addressable persistent memory. In Proceedings of USENIX HotStorage\u201917."},{"key":"e_1_2_1_98_1","doi-asserted-by":"publisher","DOI":"10.1145\/3278141"},{"key":"e_1_2_1_99_1","doi-asserted-by":"publisher","DOI":"10.1145\/3064176.3064215"},{"key":"e_1_2_1_100_1","doi-asserted-by":"publisher","DOI":"10.1145\/3373376.3378456"},{"key":"e_1_2_1_101_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICCD.2018.00069"},{"key":"e_1_2_1_102_1","doi-asserted-by":"publisher","DOI":"10.1145\/1402227.1402235"},{"key":"e_1_2_1_103_1","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2015.2442980"},{"key":"e_1_2_1_104_1","doi-asserted-by":"publisher","DOI":"10.1145\/128765.128766"},{"key":"e_1_2_1_105_1","doi-asserted-by":"publisher","DOI":"10.1145\/2524211.2524216"},{"key":"e_1_2_1_106_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.153378"},{"key":"e_1_2_1_107_1","unstructured":"David Mulnix. 2020. Third Generation Intel Xeon Processor Scalable Family Technical Overview. Retrieved from https:\/\/www.intel.com\/content\/www\/us\/en\/develop\/articles\/intel-xeon-processo r-scalable-family-overview.html.  David Mulnix. 2020. Third Generation Intel Xeon Processor Scalable Family Technical Overview. Retrieved from https:\/\/www.intel.com\/content\/www\/us\/en\/develop\/articles\/intel-xeon-processo r-scalable-family-overview.html."},{"key":"e_1_2_1_108_1","doi-asserted-by":"publisher","DOI":"10.1145\/3037697.3037730"},{"key":"e_1_2_1_109_1","volume-title":"Proceedings of FAST\u201919","author":"Nam Moohyeon","year":"2019","unstructured":"Moohyeon Nam , Hokeun Cha , Young-ri Choi, Sam H. Noh , and Beomseok Nam . 2019 . Write-optimized dynamic hashing for persistent memory . In Proceedings of FAST\u201919 . 31\u201344. Moohyeon Nam, Hokeun Cha, Young-ri Choi, Sam H. Noh, and Beomseok Nam. 2019. Write-optimized dynamic hashing for persistent memory. In Proceedings of FAST\u201919. 31\u201344."},{"key":"e_1_2_1_110_1","doi-asserted-by":"publisher","DOI":"10.1145\/2150976.2151018"},{"key":"e_1_2_1_111_1","volume-title":"Proceedings of EDBT\u201915","author":"Nawab Faisal","unstructured":"Faisal Nawab , Dhruva R. Chakrabarti , Terence Kelly , and Charles B . Morrey III. 2015. Procrastination beats prevention: Timely sufficient persistence for Efficient Crash Resilience . In Proceedings of EDBT\u201915 . 689\u2013694. Faisal Nawab, Dhruva R. Chakrabarti, Terence Kelly, and Charles B. Morrey III. 2015. Procrastination beats prevention: Timely sufficient persistence for Efficient Crash Resilience. In Proceedings of EDBT\u201915. 689\u2013694."},{"key":"e_1_2_1_112_1","volume-title":"Scott","author":"Nawab Faisal","year":"2017","unstructured":"Faisal Nawab , Joseph Izraelevitz , Terence Kelly , Charles B. Morrey III, Dhruva R. Chakrabarti , and Michael L . Scott . 2017 . Dal\u00ed : A periodically persistent hash map. In Proceedings of DISC\u2019 17. 37:1\u201337:16. Faisal Nawab, Joseph Izraelevitz, Terence Kelly, Charles B. Morrey III, Dhruva R. Chakrabarti, and Michael L. Scott. 2017. Dal\u00ed: A periodically persistent hash map. In Proceedings of DISC\u201917. 37:1\u201337:16."},{"key":"e_1_2_1_113_1","volume-title":"Proceedings of OSDI\u201920","author":"Neal Ian","year":"2020","unstructured":"Ian Neal , Ben Reeves , Ben Stoler , Andrew Quinn , Youngjin Kwon , Simon Peter , and Baris Kasikci . 2020 . AGAMOTTO: How persistent is your persistent memory application? In Proceedings of OSDI\u201920 . 1047\u20131064. Ian Neal, Ben Reeves, Ben Stoler, Andrew Quinn, Youngjin Kwon, Simon Peter, and Baris Kasikci. 2020. AGAMOTTO: How persistent is your persistent memory application? In Proceedings of OSDI\u201920. 1047\u20131064."},{"key":"e_1_2_1_114_1","volume-title":"Nguyen and David Wentzlaff","author":"Tri","year":"2018","unstructured":"Tri M. Nguyen and David Wentzlaff . 2018 . PiCL: A software-transparent, persistent cache log for nonvolatile main memory. In Proceedings of MICRO\u2019 18. 507\u2013519. Tri M. Nguyen and David Wentzlaff. 2018. PiCL: A software-transparent, persistent cache log for nonvolatile main memory. In Proceedings of MICRO\u201918. 507\u2013519."},{"key":"e_1_2_1_115_1","volume-title":"Miller","author":"Ni Yuanjiang","year":"2019","unstructured":"Yuanjiang Ni , Jishen Zhao , Heiner Litz , Daniel Bittman , and Ethan L . Miller . 2019 . SSP : Eliminating redundant writes in failure-atomic NVRAMs via shadow sub-paging. In Proceedings of MICRO\u2019 19. 836\u2013848. Yuanjiang Ni, Jishen Zhao, Heiner Litz, Daniel Bittman, and Ethan L. Miller. 2019. SSP: Eliminating redundant writes in failure-atomic NVRAMs via shadow sub-paging. In Proceedings of MICRO\u201919. 836\u2013848."},{"key":"e_1_2_1_116_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2018.00037"},{"key":"e_1_2_1_117_1","volume-title":"Proceedings of the Flash Memory Summit.","author":"Pappas Jim","year":"2018","unstructured":"Jim Pappas . 2018 . Why persistent memory matters. how did we get here, and what lies ahead? In Proceedings of the Flash Memory Summit. Jim Pappas. 2018. Why persistent memory matters. how did we get here, and what lies ahead? In Proceedings of the Flash Memory Summit."},{"key":"e_1_2_1_118_1","doi-asserted-by":"publisher","DOI":"10.1145\/2465351.2465374"},{"key":"e_1_2_1_119_1","volume-title":"Proceedings of ISCA\u201914","author":"Pelley Steven","unstructured":"Steven Pelley , Peter M. Chen , and Thomas F. Wenisch . 2014. Memory persistency . In Proceedings of ISCA\u201914 . 265\u2013276. Steven Pelley, Peter M. Chen, and Thomas F. Wenisch. 2014. Memory persistency. In Proceedings of ISCA\u201914. 265\u2013276."},{"key":"e_1_2_1_120_1","volume-title":"Proceedings of MEMSYS\u201919","author":"Peng Ivy B.","unstructured":"Ivy B. Peng , Maya B. Gokhale , and Eric W. Green . 2019. System evaluation of the Intel optane byte-addressable NVM . In Proceedings of MEMSYS\u201919 . 304\u2013315. Ivy B. Peng, Maya B. Gokhale, and Eric W. Green. 2019. System evaluation of the Intel optane byte-addressable NVM. In Proceedings of MEMSYS\u201919. 304\u2013315."},{"key":"e_1_2_1_121_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.2781"},{"key":"e_1_2_1_122_1","doi-asserted-by":"publisher","DOI":"10.1109\/ACCESS.2019.2899463"},{"key":"e_1_2_1_123_1","doi-asserted-by":"publisher","DOI":"10.1145\/3276507"},{"key":"e_1_2_1_124_1","volume-title":"Proc. ACM Program. Lang. 4, POPL (Dec.","author":"Raad Azalea","year":"2019","unstructured":"Azalea Raad , John Wickerson , Gil Neiger , and Viktor Vafeiadis . 2019 . Persistency semantics of the Intel-X86 architecture . Proc. ACM Program. Lang. 4, POPL (Dec. 2019), 11:1\u201311:31. Azalea Raad, John Wickerson, Gil Neiger, and Viktor Vafeiadis. 2019. Persistency semantics of the Intel-X86 architecture. Proc. ACM Program. Lang. 4, POPL (Dec. 2019), 11:1\u201311:31."},{"key":"e_1_2_1_125_1","doi-asserted-by":"publisher","DOI":"10.1145\/3360561"},{"key":"e_1_2_1_126_1","doi-asserted-by":"publisher","DOI":"10.1145\/3124680.3124729"},{"key":"e_1_2_1_127_1","doi-asserted-by":"publisher","DOI":"10.1145\/2830772.2830802"},{"key":"e_1_2_1_128_1","unstructured":"Andry Rudoff. 2016. Deprecating the PCOMMIT Instruction. Retrieved from https:\/\/www.intel.com\/content\/www\/us\/en\/develop\/blogs\/deprecate-pcommit-inst ruction.html.  Andry Rudoff. 2016. Deprecating the PCOMMIT Instruction. Retrieved from https:\/\/www.intel.com\/content\/www\/us\/en\/develop\/blogs\/deprecate-pcommit-inst ruction.html."},{"key":"e_1_2_1_129_1","volume-title":"Persistent memory programming. login: 42, 2","author":"Rudoff Andy","year":"2017","unstructured":"Andy Rudoff . 2017. Persistent memory programming. login: 42, 2 ( 2017 ). Andy Rudoff. 2017. Persistent memory programming. login: 42, 2 (2017)."},{"key":"e_1_2_1_130_1","volume-title":"Proceedings of SOSP\u201993","author":"Satyanarayanan M.","unstructured":"M. Satyanarayanan , Henry H. Mashburn , Puneet Kumar , David C. Steere , and James J. Kistler . 1993. Lightweight recoverable virtual memory . In Proceedings of SOSP\u201993 . 146\u2013160. M. Satyanarayanan, Henry H. Mashburn, Puneet Kumar, David C. Steere, and James J. Kistler. 1993. Lightweight recoverable virtual memory. In Proceedings of SOSP\u201993. 146\u2013160."},{"key":"e_1_2_1_131_1","volume-title":"Programming Persistent Memory\u2014A Comprehensive Guide for Developers","author":"Scargall Steve","unstructured":"Steve Scargall . 2020. Programming Persistent Memory\u2014A Comprehensive Guide for Developers ( 1 st ed.). Apress . Steve Scargall. 2020. Programming Persistent Memory\u2014A Comprehensive Guide for Developers (1st ed.). Apress.","edition":"1"},{"key":"e_1_2_1_132_1","volume-title":"Proceedings of ADMS\u201915","author":"Schwalb David","year":"2015","unstructured":"David Schwalb , Tim Berning , Martin Faust , Markus Dreseler , and Hasso Plattner . 2015 . nvm_malloc: Memory allocation for NVRAM . In Proceedings of ADMS\u201915 . 61\u201372. David Schwalb, Tim Berning, Martin Faust, Markus Dreseler, and Hasso Plattner. 2015. nvm_malloc: Memory allocation for NVRAM. In Proceedings of ADMS\u201915. 61\u201372."},{"key":"e_1_2_1_133_1","volume-title":"Proceedings of OSDI\u201906","author":"Sears Russell","year":"2006","unstructured":"Russell Sears and Eric Brewer . 2006 . Stasis: Flexible transactional storage . In Proceedings of OSDI\u201906 . 29\u201344. Russell Sears and Eric Brewer. 2006. Stasis: Flexible transactional storage. In Proceedings of OSDI\u201906. 29\u201344."},{"key":"e_1_2_1_134_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.2018.00011"},{"key":"e_1_2_1_135_1","doi-asserted-by":"publisher","DOI":"10.1145\/3123939.3124539"},{"key":"e_1_2_1_136_1","doi-asserted-by":"publisher","DOI":"10.1145\/3079856.3080240"},{"key":"e_1_2_1_137_1","doi-asserted-by":"publisher","DOI":"10.1145\/3237009.3237027"},{"key":"e_1_2_1_138_1","doi-asserted-by":"publisher","DOI":"10.1145\/3314221.3314608"},{"key":"e_1_2_1_139_1","unstructured":"SNIA Technical Position. 2017. NVM Programming Model Version 1.2.  SNIA Technical Position. 2017. NVM Programming Model Version 1.2."},{"key":"e_1_2_1_140_1","doi-asserted-by":"publisher","DOI":"10.1109\/MM.2018.2885589"},{"key":"e_1_2_1_141_1","doi-asserted-by":"publisher","DOI":"10.1109\/IMW.2015.7150274"},{"key":"e_1_2_1_142_1","unstructured":"Mark Tyson. 2019. Intel Optane DC Persistent Memory Launched. Retrieved from https:\/\/hexus.net\/tech\/news\/storage\/129143-intel-optane-dc-persistent-memory -launched\/.  Mark Tyson. 2019. Intel Optane DC Persistent Memory Launched. Retrieved from https:\/\/hexus.net\/tech\/news\/storage\/129143-intel-optane-dc-persistent-memory -launched\/."},{"key":"e_1_2_1_143_1","volume-title":"Andres Jaan Tack, and Michael M. Swift","author":"Volos Haris","year":"2011","unstructured":"Haris Volos , Andres Jaan Tack, and Michael M. Swift . 2011 . Mnemosyne : Lightweight persistent memory. In Proceedings of ASPLOS\u2019 11. 91\u2013104. Haris Volos, Andres Jaan Tack, and Michael M. Swift. 2011. Mnemosyne: Lightweight persistent memory. In Proceedings of ASPLOS\u201911. 91\u2013104."},{"key":"e_1_2_1_144_1","doi-asserted-by":"publisher","DOI":"10.1109\/NVMSA.2016.7547178"},{"key":"e_1_2_1_145_1","doi-asserted-by":"publisher","DOI":"10.1145\/2901318.2901342"},{"key":"e_1_2_1_146_1","doi-asserted-by":"publisher","DOI":"10.1145\/3123939.3123981"},{"key":"e_1_2_1_147_1","doi-asserted-by":"publisher","DOI":"10.1109\/LCA.2014.2298412"},{"key":"e_1_2_1_148_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA45697.2020.00057"},{"key":"e_1_2_1_149_1","doi-asserted-by":"publisher","DOI":"10.1145\/3295500.3356159"},{"key":"e_1_2_1_150_1","first-page":"12","article-title":"Phase change memory","volume":"98","author":"Philip Wong H.-S.","year":"2010","unstructured":"H.-S. Philip Wong , Simone Raoux , SangBum Kim , Jiale Liang , John P. Reifenberg , Bipin Rajendran , Mehdi Asheghi , and Kenneth E. Goodson . 2010 . Phase change memory . Proc. IEEE 98 , 12 (Dec. 2010), 2201\u20132227. H.-S. Philip Wong, Simone Raoux, SangBum Kim, Jiale Liang, John P. Reifenberg, Bipin Rajendran, Mehdi Asheghi, and Kenneth E. Goodson. 2010. Phase change memory. Proc. IEEE 98, 12 (Dec. 2010), 2201\u20132227.","journal-title":"Proc. IEEE"},{"key":"e_1_2_1_151_1","volume-title":"Proceedings of FAST\u201921","author":"Wu Kai","year":"2021","unstructured":"Kai Wu , Jie Ren , Ivy Peng , and Dong Li . 2021 . ArchTM: Architecture-aware, high performance transaction for persistent memory . In Proceedings of FAST\u201921 . 141\u2013153. Kai Wu, Jie Ren, Ivy Peng, and Dong Li. 2021. ArchTM: Architecture-aware, high performance transaction for persistent memory. In Proceedings of FAST\u201921. 141\u2013153."},{"key":"e_1_2_1_152_1","doi-asserted-by":"publisher","DOI":"10.1145\/3173162.3173201"},{"key":"e_1_2_1_153_1","doi-asserted-by":"publisher","DOI":"10.1145\/3385412.3386000"},{"key":"e_1_2_1_154_1","doi-asserted-by":"publisher","DOI":"10.1007\/s11390-015-1509-2"},{"key":"e_1_2_1_155_1","volume-title":"Proceedings of FAST\u201920","author":"Yang Jian","year":"2020","unstructured":"Jian Yang , Juno Kim , Morteza Hoseinzadeh , Joseph Izraelevitz , and Steve Swanson . 2020 . An empirical guide to the behavior and use of scalable persistent memory . In Proceedings of FAST\u201920 . 169\u2013182. Jian Yang, Juno Kim, Morteza Hoseinzadeh, Joseph Izraelevitz, and Steve Swanson. 2020. An empirical guide to the behavior and use of scalable persistent memory. In Proceedings of FAST\u201920. 169\u2013182."},{"key":"e_1_2_1_156_1","doi-asserted-by":"publisher","DOI":"10.1109\/PCCC.2015.7410326"},{"key":"e_1_2_1_157_1","doi-asserted-by":"publisher","DOI":"10.1109\/IPDPS47924.2020.00044"},{"key":"e_1_2_1_158_1","doi-asserted-by":"publisher","DOI":"10.1109\/PACT.2019.00025"},{"key":"e_1_2_1_159_1","volume-title":"Proceedings of USENIX ATC\u201919","author":"Zhang Lu","year":"2019","unstructured":"Lu Zhang and Steven Swanson . 2019 . Pangolin: A fault-tolerant persistent memory programming library . In Proceedings of USENIX ATC\u201919 . 897\u2013912. Lu Zhang and Steven Swanson. 2019. Pangolin: A fault-tolerant persistent memory programming library. In Proceedings of USENIX ATC\u201919. 897\u2013912."},{"key":"e_1_2_1_160_1","volume-title":"Yuan Xie, and Norman P. Jouppi.","author":"Zhao Jishen","year":"2013","unstructured":"Jishen Zhao , Sheng Li , Doe Hyun Yoon , Yuan Xie, and Norman P. Jouppi. 2013 . Kiln : Closing the performance gap between systems with and without persistence support. In Proceedings of MICRO\u2019 13. 421\u2013432. Jishen Zhao, Sheng Li, Doe Hyun Yoon, Yuan Xie, and Norman P. Jouppi. 2013. Kiln: Closing the performance gap between systems with and without persistence support. In Proceedings of MICRO\u201913. 421\u2013432."}],"container-title":["ACM Computing Surveys"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3465402","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3465402","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T20:18:30Z","timestamp":1750191510000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3465402"}},"subtitle":["A Survey of Programming Support and Implementations"],"short-title":[],"issued":{"date-parts":[[2021,7,18]]},"references-count":159,"journal-issue":{"issue":"7","published-print":{"date-parts":[[2022,9,30]]}},"alternative-id":["10.1145\/3465402"],"URL":"https:\/\/doi.org\/10.1145\/3465402","relation":{},"ISSN":["0360-0300","1557-7341"],"issn-type":[{"value":"0360-0300","type":"print"},{"value":"1557-7341","type":"electronic"}],"subject":[],"published":{"date-parts":[[2021,7,18]]},"assertion":[{"value":"2020-12-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2021-05-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2021-07-18","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}