Abstract
Byte-addressable, non-volatile memory (NVM) presents an opportunity to rethink the entire system stack. We present Twizzler, an operating system redesign for this near-future. Twizzler removes the kernel from the I/O path, provides programs with memory-style access to persistent data using small (64 bit), object-relative cross-object pointers, and enables simple and efficient long-term sharing of data both between applications and between runs of an application. Twizzler provides a clean-slate programming model for persistent data, realizing the vision of Unix in a world of persistent RAM.
We show that Twizzler is simpler, more extensible, and more secure than existing I/O models and implementations by building software for Twizzler and evaluating it on NVM DIMMs. Most persistent pointer operations in Twizzler impose less than 0.5 ns added latency. Twizzler operations are up to \(\) faster than Unix, and SQLite queries are up to \(\) faster than on PMDK. YCSB workloads ran 1.1–\(\) faster on Twizzler than on native and NVM-optimized SQLite backends.
- [n.d.]. The musl C Library. Retrieved from https://musl.libc.org/.Google Scholar
- [n.d.]. The Rust Programming Language. Retrieved from https://www.rust-lang.org/.Google Scholar
- Mike Accetta, Robert Baron, William Bolosky, David Golub, Richard Rashid, Avadis Tevanian, and Michael Young. 1986. Mach: A new kernel foundation for UNIX development. In Proceedings of the USENIX Technical Conference. USENIX, 93–112. Retrieved from http://www.ssrc.ucsc.edu/PaperArchive/accetta-usenix86s.pdf.Google Scholar
- Sasha Ames, Nikhil Bobb, Kevin M. Greenan, Owen S. Hofmann, Mark W. Storer, Carlos Maltzahn, Ethan L. Miller, and Scott A. Brandt. 2006. LiFS: An attribute-rich file system for storage class memories. In Proceedings of the 23rd IEEE/14th NASA Goddard Conference on Mass Storage Systems and Technologies. IEEE. Retrieved from http://www.ssrc.ucsc.edu/Papers/ames-mss06.pdf.Google Scholar
- Katelin Bailey, Luis Ceze, Steven D. Gribble, and Henry M. Levy. 2011. Operating system implications of fast, cheap, non-volatile memory. In Proceedings of the 13th Workshop on Hot Topics in Operating Systems (HotOS’11). Retrieved from http://www.ssrc.ucsc.edu/PaperArchive/bailey-hotos11.pdf. Google ScholarDigital Library
- Piotr Balcer. 2015. An introduction to pmemobj (part 1) - accessing the persistent memory. Retrieved from https://pmem.io/2015/06/13/accessing-pmem.html.Google Scholar
- A. Bensoussan, C. T. Clingen, and R. C. Daley. 1969. The Multics virtual memory: Concepts and design. In Proceedings of the 2nd ACM Symposium on Operating Systems Principles (SOSP’69). Google ScholarDigital Library
- Brian N. Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gün Sirer, Marc E. Fiuczynski, David Becker, Craig Chambers, and Susan Eggers. 1995. Extensibility, safety, and performance in the SPIN operating system. In Proceedings of the 15th ACM Symposium on Operating Systems Principles (SOSP’95). Retrieved from http://www.ssrc.ucsc.edu/PaperArchive/bershad-sosp95.pdf. Google ScholarDigital Library
- Andrea Bittau, Petr Marchenko, Mark Handley, and Brad Karp. 2008. Wedge: Splitting applications into reduced-privilege compartments. In Proceedings of the 5th USENIX Symposium on Networked Systems Design and Implementation (NSDI’08). USENIX Association, Berkeley, CA, 309–322. Retrieved from http://dl.acm.org/citation.cfm?id=1387589.1387611. Google ScholarDigital Library
- Daniel Bittman, Peter Alvaro, Darrell D. E. Long, and Ethan L. Miller. 2019. A tale of two abstractions: The case for object space. In Proceedings of USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage’19). Google ScholarDigital Library
- Daniel Bittman, Peter Alvaro, and Ethan L. Miller. 2019. A persistent problem: Managing pointers in NVM. In Proceedings of the 10th Workshop on Programming Languages and Operating Systems (PLOS’19). 30–37. Google ScholarDigital Library
- Adrian M. Caulfield, Arup De, Joel Coburn, Todor Mollov, Rajesh Gupta, and Steven Swanson. 2010. Moneta: A high-performance storage array architecture for next-generation, non-volatile memories. In Proceedings of the 43rd IEEE/ACM International Symposium on Microarchitecture (MICRO’10). 385–395. Retrieved from http://www.ssrc.ucsc.edu/PaperArchive/caulfield-micro10.pdf. Google ScholarDigital Library
- Jeffrey S. Chase, Henry M. Levy, Michael J. Feeley, and Edward D. Lazowska. 1994. Sharing and protection in a single-address-space operating system. ACM Trans. Comput. Syst. 12, 4 (Nov. 1994), 271–307. Retrieved from http://www.ssrc.ucsc.edu/PaperArchive/chase-tocs94.pdf. Google ScholarDigital Library
- Guoyang Chen, Lei Zhang, Richa Budhiraja, Xipeng Shen, and Youfeng Wu. 2017. Efficient support of position independence on non-volatile memory. In Proceedings of the 50th IEEE/ACM International Symposium on Microarchitecture (MICRO’17). ACM, New York, NY, 191–203. Retrieved from http://doi.acm.org/10.1145/3123939.3124543. Google ScholarDigital Library
- Howard Chu and Symas. [n.d.]. Lightning Memory-Mapped Database (part of the OpenLDAP project). Retrieved from https://symas.com/lmdb/.Google Scholar
- Joel Coburn, Adrian M. Caulfield, Ameen Akel, Laura M. Grupp, Rajesh K. Gupta, Ranjit Jhala, and Steven Swanson. 2011. NV-Heaps: Making persistent objects fast and safe with next-generation, non-volatile memories. In Proceedings of the 16th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’11). 105–118. Retrieved from http://www.ssrc.ucsc.edu/PaperArchive/coburn-asplos11.pdf. Google ScholarDigital Library
- Jeremy Condit, Edmund B. Nightingale, Christopher Frost, Engin Ipek, Benjamin Lee, Doug Burger, and Derrick Coetzee. 2009. Better I/O through byte-addressable, persistent memory. In Proceedings of the 22nd ACM Symposium on Operating Systems Principles (SOSP’09). 133–146. Retrieved from http://www.ssrc.ucsc.edu/PaperArchive/condit-sosp09.pdf. Google ScholarDigital Library
- Brian F. Cooper, Adam Silberstein, Erwin Tam, Raghu Ramakrishnan, and Russell Sears. 2010. Benchmarking cloud serving systems with YCSB. In Proceedings of the 1st ACM Symposium on Cloud Computing (SoCC’10). ACM, New York, NY, 143–154. DOI:https://doi.org/10.1145/1807128.1807152. Google ScholarDigital Library
- Fernando J. Corbató and Victor A. Vyssotsky. 1965. Introduction and overview of the Multics system. In Proceedings of the November 30 — December 1, 1965, Fall Joint Computer Conference, Part I. ACM, 185–196. Retrieved from http://dl.acm.org/citation.cfm?id=1463912. Google ScholarDigital Library
- Robert C. Daley and Jack B. Dennis. 1968. Virtual memory, processes, and sharing in MULTICS. Commun. ACM 11, 5 (May 1968), 306–312. Retrieved from http://www.ssrc.ucsc.edu/PaperArchive/daley-cacm68.pdf. Google ScholarDigital Library
- Partha Dasgupta, Richard J. LeBlanc, Jr., Mustaque Ahamad, and Umakishore Ramachandran. 1991. The clouds distributed operating system. IEEE Comput. (Nov. 1991). Retrieved from http://www.ssrc.ucsc.edu/PaperArchive/dasgupta-computer91.pdf. Google ScholarDigital Library
- Alan Dearle, Rex di Bona, James Farrow, Frans Henskens, Anders Lindström, John Rosenberg, and Francis Vaughan. 1994. Grasshopper: An orthogonally persistent operating system. Comput. Syst. 7, 3 (June 1994), 289–312. Retrieved from http://dl.acm.org/citation.cfm?id=198008.198009. Google ScholarDigital Library
- Biplob Debnath, Sudipta Sengupta, and Jin Li. 2010. FlashStore: High throughput persistent key-value store. In Proceedings of the 36th Conference on Very Large Databases (VLDB’10). Retrieved from http://www.ssrc.ucsc.edu/PaperArchive/debnath-vldb10.pdf.Google ScholarDigital Library
- Xiangyu Dong, Cong Xu, Norm Jouppi, and Yuan Xie. 2014. Emerging Memory Technologies: Design, Architecture, and Applications. Springer, 15–50.Google Scholar
- Subramanya R. Dulloor, Sanjay Kumar, Anil Keshavamurthy, Philip Lantz, Dheeraj Reddy, Rajesh Sankaran, and Jeff Jackson. 2014. System software for persistent memory. In Proceedings of the 9th European Conference on Computer Systems (EuroSys’14). Retrieved from http://www.ssrc.ucsc.edu/PaperArchive/dulloor-eurosys14.pdf. Google ScholarDigital Library
- Izzat El Hajj, Alexander Merritt, Gerd Zellweger, Dejan Milojicic, Reto Achermann, Paolo Faraboschi, Wen-mei Hwu, Timothy Roscoe, and Karsten Schwan. 2016. SpaceJMP: Programming with multiple virtual address spaces. In Proceedings of the 21st International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’16). ACM, New York, NY, 353–368. DOI:https://doi.org/10.1145/2872362.2872366. Google ScholarDigital Library
- Dawson R. Engler, Sandeep K. Gupta, and M. Frans Kaashoek. 1995. AVM: Application-level virtual memory. In Proceedings of the 5th Workshop on Hot Topics in Operating Systems (HotOS’95). IEEE, 72–77. Google ScholarDigital Library
- Dawson R. Engler and M. Frans Kaashoek. 1995. Exterminate all operating system abstractions. In Proceedings of the 5th Workshop on Hot Topics in Operating Systems (HotOS’95). IEEE, 78–83. Google ScholarDigital Library
- Dawson R. Engler, M. Frans Kaashoek, and James O’Toole, Jr.1995. Exokernel: An operating system architecture for application-level resource management. In Proceedings of the 15th ACM Symposium on Operating Systems Principles (SOSP’95). 251–266. Retrieved from http://www.ssrc.ucsc.edu/PaperArchive/engler-sosp95.pdf. Google ScholarDigital Library
- Hewlett Packard Enterprise. 2018. YCSB-C. Retrieved from https://github.com/HewlettPackard/meadowlark/tree/master/extra/YCSB-C.Google Scholar
- Paolo Faraboschi, Kimberly Keeton, Tim Marsland, and Dejan Milojicic. 2015. Beyond processor-centric operating systems. In Proceedings of the 15th Workshop on Hot Topics in Operating Systems (HotOS’15). USENIX Association. Retrieved from https://www.usenix.org/conference/hotos15/workshop-program/presentation/faraboschi. Google ScholarDigital Library
- David K. Gifford, Pierre Jouvelot, Mark A. Sheldon, and James W. O’Toole, Jr. 1991. Semantic file systems. In Proceedings of the 13th ACM Symposium on Operating Systems Principles (SOSP’91). ACM, 16–25. Retrieved from http://www.ssrc.ucsc.edu/PaperArchive/gifford-sosp91.pdf. Google ScholarDigital Library
- Burra Gopal and Udi Manber. 1999. Integrating content-based access mechanisms with hierarchical file systems. In Proceedings of the 3rd Symposium on Operating Systems Design and Implementation (OSDI’99). 265–278. Retrieved from http://www.ssrc.ucsc.edu/PaperArchive/gopal-osdi99.pdf. Google ScholarDigital Library
- Jorge Guerra, Leonardo Mármol, Daniel Campello, Carlos Crespo, Raju Rangaswami, and Jinpeng Wei. 2012. Software persistent memory. In Proceedings of the USENIX Annual Technical Conference. Retrieved from http://www.ssrc.ucsc.edu/PaperArchive/guerra-atc12.pdf. Google ScholarDigital Library
- Gernot Heiser and Kevin Elphinstone. 2016. L4 microkernels: The lessons from 20 years of research and deployment. ACM Trans. Comput. Syst. 34, 1 (April 2016). DOI:https://doi.org/10.1145/2893177. Google ScholarDigital Library
- Gernot Heiser, Kevin Elphinstone, Stephen Russell, and Jerry Vochteloo. 1993. Mungi: A Distributed Single Address-Space Operating System. Technical Report 9314. School of Computer Science and Engineering, University of New South Wales. Retrieved from http://www.ssrc.ucsc.edu/PaperArchive/heiser-scse9314.pdf.Google Scholar
- Benjamin Hindman, Andy Konwinski, Matei Zaharia, Ali Ghodsi, Anthony D. Joseph, Randy Katz, Scott Shenker, and Ion Stoica. 2011. Mesos: A platform for fine-grained resource sharing in the data center. In Proceedings of the 8th USENIX Conference on Networked Systems Design and Implementation (NSDI’11). USENIX, Berkeley, CA, 295–308. Retrieved from http://dl.acm.org/citation.cfm?id=1972457.1972488. Google ScholarDigital Library
- Antony L. Hosking and J. Eliot B. Moss. 1993. Object fault handling for persistent programming languages: A performance evaluation. In Proceedings of the 8th Conference on Object-oriented Programming Systems, Languages, and Applications (OOPSLA’93). ACM, New York, NY, 288–303. DOI:https://doi.org/10.1145/165854.165907. Google ScholarDigital Library
- Qingda Hu, Jinglei Ren, Anirudh Badam, and Thomas Moscibrod. 2017. Log-structured non-volatile main memory. In Proceedings of the USENIX Annual Technical Conference. 703–717. Retrieved from http://www.ssrc.ucsc.edu/PaperArchive/hu-atc17.pdf. Google ScholarDigital Library
- Joseph Izraelevitz, Jian Yang, Lu Zhang, Juno Kim, Xiao Liu, Amirsaman Memaripour, Yun Joon Soh, Zixuan Wang, Yi Xu, Subramanya R. Dulloor, Jishen Zhao, and Steven Swanson. 2019. Basic performance measurements of the Intel Optane DC persistent memory module. arXiv abs/1903.05714 (2019).Google Scholar
- Eric Jul, Henry Levy, Norman Hutchinson, and Andrew Black. 1988. Fine-grained mobility in the Emerald system. ACM Trans. Comput. Syst. 6, 1 (Feb. 1988), 109–133. DOI:https://doi.org/10.1145/35037.42182. Google ScholarDigital Library
- Eric Jul and Bjarne Steensgaard. 1991. Implementation of distributed objects in Emerald. In Proceedings of the International Workshop on Object Orientation in Operating Systems. IEEE, 130–132.Google ScholarCross Ref
- M. Frans Kaashoek, Dawson R. Engler, Gregory R. Ganger, Hector M. Briceño, Russell Hunt, David Mazières, Thomas Pinckney, Robert Grimm, John Jannotti, and Kenneth Mackenzie. 1997. Application performance and flexibility on exokernel systems. In Proceedings of the 16th ACM Symposium on Operating Systems Principles (SOSP’97). ACM, New York, NY, 52–65. DOI:https://doi.org/10.1145/268998.266644. Google ScholarDigital Library
- Orran Krieger, Marc Auslander, Bryan Rosenburg, Robert W. Wisniewski, Jimi Xenidis, Dilma Da Silva, Michal Ostrowski, Jonathan Appavoo, Maria Butrico, Mark Mergen, Amos Waterland, and Volkmar Uhlig. 2006. K42: Building a complete operating system. In Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006 (EuroSys’06). ACM, New York, NY, 133–145. DOI:https://doi.org/10.1145/1217935.1217949. Google ScholarDigital Library
- Dokeun Lee and Youjip Won. 2013. Bootless boot: Reducing device boot latency with byte addressable NVRAM. In Proceedings of the International Conference on High Performance Computing. Retrieved from http://www.ssrc.ucsc.edu/PaperArchive/lee-hpcc13.pdf.Google ScholarCross Ref
- James Litton, Anjo Vahldiek-Oberwagner, Eslam Elnikety, Deepak Garg, Bobby Bhattacharjee, and Peter Druschel. 2016. Light-weight contexts: An OS abstraction for safety and performance. In Proceedings of the 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI’16). USENIX Association, 49–64. Retrieved from https://www.usenix.org/conference/osdi16/technical-sessions/presentation/litton. Google ScholarDigital Library
- Youyou Lu, Jiwu Shu, and Long Sun. 2016. Blurred persistence: Efficient transactions in persistent memory. ACM Trans. Stor. 12, 1 (Jan. 2016). Retrieved from http://www.ssrc.ucsc.edu/PaperArchive/lu-tos16.pdf. Google ScholarDigital Library
- Youyou Lu, Jiwu Shu, Long Sun, and Onur Mutlu. 2014. Loose-ordering consistency for persistent memory. In Proceedings of the 32nd IEEE International Conference on Computer Design (ICCD’14). IEEE, 216–223.Google ScholarCross Ref
- Virendra J. Marathe, Margo Seltzer, Steve Byan, and Tim Harris. 2017. Persistent memcached: Bringing legacy code to byte-addressable persistent memory. In Proceedings of the 9th USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage’17). USENIX Association. Retrieved from https://www.usenix.org/conference/hotstorage17/program/presentation/marathe. Google ScholarDigital Library
- Pankaj Mehra and Samuel Fineberg. 2004. Fast and flexible persistence: The magic potion for fault-tolerance, scalability and performance in online data stores. In Proceedings of the 18th International Parallel and Distributed Processing Symposium (IPDPS’04). DOI:https://doi.org/10.1109/IPDPS.2004.1303232.Google ScholarCross Ref
- Justin Meza, Yixin Luo, Samira Khan, Jishen Zhao, Yuan Xie, and Onur Mutlu. 2013. A case for efficient hardware/software cooperative management of storage and memory. In Proceedings of the 5th Workshop on Energy-Efficient Design (WEED’13). Retrieved from http://www.ssrc.ucsc.edu/PaperArchive/meza-weed13.pdf.Google Scholar
- Dushyanth Narayanan and Orion Hodson. 2012. Whole-system persistence. In Proceedings of the 17th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’12). 401–500. Retrieved from http://www.ssrc.ucsc.edu/PaperArchive/narayanan-asplos12.pdf. Google ScholarDigital Library
- Yuanjiang Ni, Jishen Zhao, Daniel Bittman, and Ethan Miller. 2018. Reducing NVM writes with optimized shadow paging. In Proceedings of the 10th Workshop on Hot Topics in Storage and File Systems (HotStorage’18). Retrieved from http://www.ssrc.ucsc.edu/ni-hotstorage18.pdf. Google ScholarDigital Library
- 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 the 52nd IEEE/ACM International Symposium on Microarchitecture. Google ScholarDigital Library
- Matheus Ogleari, Ethan L. Miller, and Jishen Zhao. 2018. Steal but no force: Efficient hardware-driven undo+redo logging for persistent memory systems. In Proceedings of the 24th International Symposium on High-performance Computer Architecture (HPCA’18). Retrieved from http://www.ssrc.ucsc.edu/ogleari-hpca18.pdf.Google ScholarCross Ref
- Yoann Padioleau and Olivier Ridoux. 2003. A logic file system. In Proceedings of the USENIX Annual Technical Conference. 99–112. Retrieved from http://www.ssrc.ucsc.edu/PaperArchive/padioleau-usenix03.pdf.Google Scholar
- Aleatha Parker-Wood, Darrell D. E. Long, Ethan L. Miller, Philippe Rigaux, and Andy Isaacson. 2014. A file by any other name: Managing file names with metadata. In Proceedings of the 7th International Systems and Storage Conference (SYSTOR’14). Retrieved from http://www.ssrc.ucsc.edu/Papers/parkerwood-systor14.pdf. Google ScholarDigital Library
- Timothy Roscoe. 1994. Linkage in the Nemesis single address space operating system. ACM SIGOPS Oper. Syst. Rev. 28, 4 (Oct. 1994), 48–55. Retrieved from http://www.ssrc.ucsc.edu/PaperArchive/roscoe-osr94.pdf. Google ScholarDigital Library
- Andy Rudoff et al. 2017. Persistent Memory Programming Library. Retrieved from http://pmem.io/nvml/.Google Scholar
- Yizhou Shan, Shin-Yeh Tsai, and Yiying Zhang. 2017. Distributed shared persistent memory. In Proceedings of the Symposium on Cloud Computing (SoCC’17). Association for Computing Machinery, New York, NY, 323–337. DOI:https://doi.org/10.1145/3127479.3128610. Google ScholarDigital Library
- Jonathan S. Shapiro and Jonathan Adams. 2002. Design evolution of the EROS single-level store. In Proceedings of the USENIX Annual Technical Conference. USENIX, 59–72. Retrieved from http://www.ssrc.ucsc.edu/PaperArchive/shapiro-usenix02.pdf. Google ScholarDigital Library
- Jonathan S. Shapiro, Jonathan M. Smith, and David J. Farber. 1999. EROS: A fast capability system. In Proceedings of the 17th ACM Symposium on Operating Systems Principles (SOSP’99). ACM, New York, NY, 170–185. DOI:https://doi.org/10.1145/319151.319163. Google ScholarDigital Library
- Eugene Shekita and Michael Zwilling. 1990. Cricket: A Mapped, Persistent Object Store. Technical Report 956. University of Wisconsin. Retrieved from http://www.ssrc.ucsc.edu/PaperArchive/shekita-uw-tr956.pdf.Google Scholar
- Alan Skousen and Donald Miller. 1999. Using a single address space operating system for distributed computing and high performance. In Proceedings of the 18th IEEE International Performance, Computing and Communications Conference (IPCCC’99). 8–14. Google ScholarDigital Library
- Hung-Wei Tseng, Qianchen Zhao, Yuxiao Zhou, Mark Gahagan, and Steven Swanson. 2016. Morpheus: Creating application objects efficiently for heterogenous computing. In Proceedings of the ACM/IEEE 43rd International Symposium on Computer Architecture. Google ScholarDigital Library
- Haris Volos, Andres Jaan Tack, and Michael M. Swift. 2011. Mnemosyne: Lightweight persistent memory. In Proceedings of the 16th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’11). Retrieved from http://www.ssrc.ucsc.edu/PaperArchive/volos-asplos11.pdf. Google ScholarDigital Library
- Tiancong Wang, Sakthikumaran Sambasivam, Yan Solihin, and James Tuck. 2017. Hardware supported persistent object address translation. In Proceedings of the 50th IEEE/ACM International Symposium on Microarchitecture (MICRO’17). ACM, New York, NY, 800–812. DOI:https://doi.org/10.1145/3123939.3123981. Google ScholarDigital Library
- William Wulf, Ellis Cohen, William Corwin, Anita Jones, Roy Levin, C. Pierson, and Fred Pollack. 1974. HYDRA: The kernel of a multiprocessor operating system. Commun. ACM 17, 6 (June 1974), 337–345. DOI:https://doi.org/10.1145/355616.364017. Google ScholarDigital Library
- Jian Xu and Steven Swanson. 2016. NOVA: A log-structured file system for hybrid volatile/non-volatile main memories. In Proceedings of the 14th Usenix Conference on File and Storage Technologies (FAST’16). USENIX Association, Berkeley, CA, 323–338. Retrieved from http://dl.acm.org/citation.cfm?id=2930583.2930608. Google ScholarDigital Library
Index Terms
- Twizzler: A Data-centric OS for Non-volatile Memory
Recommendations
A Survey of Non-Volatile Main Memory Technologies: State-of-the-Arts, Practices, and Future Directions
AbstractNon-Volatile Main Memories (NVMMs) have recently emerged as a promising technology for future memory systems. Generally, NVMMs have many desirable properties such as high density, byte-addressability, non-volatility, low cost, and energy ...
Modeling, Architecture, and Applications for Emerging Memory Technologies
Editor's note:Spin-transfer torque RAM and phase-change RAM are vying to become the next-generation embedded memory, offering high speed, high density, and nonvolatility. This article discusses new opportunities and challenges presented by these two ...
Redesign the Memory Allocator for Non-Volatile Main Memory
Special Issue on Hardware and Algorithms for Learning On-a-chip and Special Issue on Alternative Computing SystemsThe non-volatile memory (NVM) has the merits of byte-addressability, fast speed, persistency and low power consumption, which make it attractive to be used as main memory. Commonly, user process dynamically acquires memory through memory allocators. ...
Comments