The Radical Future of NVM
Thanks to Linux Journal for publishing my article on
the rise of non-volatile solid-state memory.
This is fast novel transitor memory, not slow (and apparently lossy!) Flash-based chips.
Here's a bunch of links, more info, and other tidbits
that I didn't have the room to get in to the article.
- Everspin announces 1GB spin-torque PCIe memory,
nvmNITRO . 6 microsecond write latency, 1.5M iops.
- How To Build a Non-Volatile Memory Database System (2017) - https://www.cs.cmu.edu/~jarulraj/pages/sigmod_2017_tutorial.html
- Stonebreaker and others on OLTP DBMS issues on NVM (2014) - http://hstore.cs.brown.edu/papers/hstore-nvm.pdf
- NIST researchers develop innovatice spintronic/memristor - Phys.org report - SpintronicsInfo - 2017-04-04
- IBM demonstrates server with DDR3 MRAM - IBM has shown a demonstration Power8 server platform with Everspin spin-torque MRAM in a DDR3 module. See http://www.mram-info.com/ibm-demonstrates-everspins-st-mram-its-contutto-platform-power8-system
- 3-D Memory Breakthroughs
- Developments in "Valleytronics" could lead to new approaches for Spintronics (NVM!) and more"
- Solid State Disks Lose Data Apparently, if left for some days without power, Flash SSDs just start dropping bits. That's not what non-volatile is supposed to mean! May 2015
- Why SSDs Are Obsolete , Robin Harris writing at ZDNet restates the potential new potential of non-volatile memory as not merely a faster disk-drive, but as a significant architectural inflection. Also contains a pointer to De-Indirection for Flash-ased SSDs by Yiying Zhang which suggests some improvements for flash/disk software interfaces. Feb 2015
- Are New Non-Volatile Memory Technologies About To Enter The Main Stream Applications ... And Change The Supply Chain? Jan 2015
- STT-MRAM is most suitable technology to start replacing DRAM by 2018 Jan 2015
- The Next Decade In Storage: non-volatile ram and lower latencies Dec 2014
- Everspin raises more money from various foundaries/etc including Western Digital Feb 2015
- IBM's research web site on Storage-Class Memory , their term for DRAM-fast NVM.
- IEEE Spectrum article (Aug 2014) on Spin-Torque-Transfer NVM - Spin Memory Shows Its Might Aug 2014
- Everspin is announcing new ST-MRAM chips and (more importantly)
new customers. 11 August 2014
- More novel NVM chipmaking from Rice University. 11 August 2014
- HP building radical new computer architecture with memristor-based non-volatile memory. See
Ars Technica (and also here ) and Business Week
12 June 2014
- Toshiba announces new STT-MRAM modules
12 June 2014
- Programmable nanoprocessors - non-volatile nanowire-based transistors integrated into a processor chip 30 March 2014
- Everspin CEO Philip LoPresti talks about their 64Mb STT-MRAM chip and future plans Jan 2014
- STT-MRAM : Survey Of Current And Emerging Trends - slides for presentation 16 Dec 2013
- Crossbar, Inc announces their Resistive-RAM product - up to 1Tb on chip, 20x faster than flash Aug 2013
- Everspin ships Spin-Torque MRAM, 500x performance of flash Nov 2012
- 64Mb MRAM chip released. Via MRAM-Info (Jul 2012)
- PCM memory writes reach new performance record (Jun 2012)
- New SSD drives uses NVM cache to compensate for slow flash. Eventually of course, the whole SSD will be NVM. May 2012
- Using High Pressure to build better Phase-Change Memory (May 2012)
- Flash Storage to blame for sluggish cell phone performance Tablets too? Feb 2012
- Toshiba announces advances in Spin-Torque-Transfer NVM - expects gigabit chips within 3-4 years. (Feb 2012)
Hard Drives / Hybrid Drives
The Linux Journal article covered a lot of ground very quickly and tried to show some ideas of the NVM future. There's a lot of stuff that either didn't make it in to the article, or was condensed down to mere hints.
Are multi-core and GPU computing just as / more important than NVM?
Multi-core CPUs have done their bit to change the way we think about computing and algorithm design but have not changed the basic system design. Likewise, using GPUs for off-chip processing is great, but its really just more CPU. But really, there's no good metric for "most important" architectural change.
Isn't the cloud a more important change than NVM?
I'm fortunate in that I was raised in a world of the The Andrew File System, so I'm quite at ease with cloud computing. Perhaps because of this I don't see cloud computing as comparable to NVM - the cloud/distributed computing is great, but we've been doing this for over 20 years. It's too bad that the Web effectively side-tracked - in my view - cloud computing for a decade or so, but yes, the cloud is great. Certainly, NVM is going to make the cloud work better. As I said above, there's no good metric for "most important". Right now, NVM needs more mind share.
Seems like cache consistency from CPU to NVM is more complicated than you think?
It sure isn't trivial. And, yes, that why either software or hardware transactional memory patterns will need to work well. And possibly be part of the language or OS itself. Case in point, many NVM manufacturers are using/buying transactional memory patents and algorithms. Getting people to think about this, especially the language/OS implications, is the point of the article.
Since NVM will be more expensive than DRAM, isn't all this quite overstated? Sure, if NVM will always be more expensive than DRAM. Yet, according to the the people shipping production NVM now, NVM will be price-competitive with DRAM at some point. If that point takes decades or doesn't ever happen, then its easy to imagine NVM being just part of the spectrum of CPU/CACHE/DRAM/NVM/DISK... But of course, if it comes sooner than later, I hope we can take advantage of some of the exciting changes in architecture that that will permit. And seriously, would you bet that a new memory technology wouldn't get cheaper over time?
OK, so an NVM board may be fast and persistent. But if there's a server motherboard failure, moving an NVM board into another machine is much more difficult than moving a disk. Yes. That's why we need to think about NVM now, rather than get stuck with that kind of scenario. An unplugged NVM board can be moved into a new server, but unlike a disk, much of the configuration information . what address blocks are assigned, etc . will nominally be lost. We'll need some sort of solution to this; of course, the NVM itself is a good place to store that configuration info!
Hey, if all my data is in NVM, what about privacy of any and all of my (currently volatile) data! Right. Disk encryption is a good thing, but on the slow side and problematic to administer, especially for civilians. I don't know how NVM encryption can be made simple and fun, but it is important. (And don't be too sure that your currently volatile RAM data is safe. This isn't just an NVM problem).
Can't we use super-capacitors on DRAM and get NVM now? Ummm, maybe. But super-capacitors have their own problems. A good solution to the problem with old-fashioned chemical batteries will wind up solving myriad problems from cell phones to alternative energy. Still, NVM is real and here now; just need to increase awareness and have the market and economies of scale max it out.
Is DRAM useful for anything? Why not have some DRAM in a system? No reason not to have some DRAM. DRAM or other transient memory cells may be better suited for video boards or cameras. I'm certainly trying to get people to use their imagination when contemplating a 100% NVM desktop or server of the near future. I think it's important to think about that scenario than just think about some incremental use of NVM.
It's unlikely that data written to NVM by an applications data structures would be readable by another, arbitrary, application. True, today. This is perhaps where better language support may be needed. Or, for example, applications could be more likely to use something like SQLite to store data in an organized RDBMS (and getting fast persistence for .free.). That way it's relatively easier for another application to attach to and use that data. This is all food for thought.
Why shouldn't NVM just be used as a high-performance storage system for niche applications? NVM will probably begin to be used this way, just as with Flash SSD. In fact, IBM calls NVM "storage class memory". But this is pretty limiting. The point of this article is to provoke more thinking about all sorts of more radical alternatives.
The bandwith gap between CPU and memory will still be a big deal. Yes, NVM solves other problems.
We need terabytes of storage for video and music. Yes, and video and music don't require nanosecond write latencies. Sounds like a great market for disk manufacturers.
What does this have to do with Linux? GNU/Linux/OSS leads in the innovation of languages, databases, filesystems, networking, operating system, device drivers. Getting some NVM mindshare in this community .. to really get some new ideas, novel use cases, more demand.