How NVRAM can change storage systems?

The most trivial computer model, known to any secondary school student, contains four main parts: a “processor”, a “memory”, a “storage” and an “input-output device”. This review concentrates on comparing a memory and a storage between itself and finding out why it is different. There is a third camp - non-volatile random access memory. NVRAM combines advantages from either hard drives and memory. Unfortunatly, Modern OS and software architecture is based on distinct memory and storage. But, specific efforts can be made in order to use NVRAM’s advantages. Those improvements can be done in a several levels: from the hardware to business-level applications.


First of all, engineering aspects will be discussed: how memory works, why persistency/throughput/latency/capacity trade-off occurs and how it was solved historically.

After retrospective analysis, the most serious drawbacks of a classical solutions will be discussed and the alternative approach will be proposed. The review explores different solutions that that might become broadly used in nearest 5 years.

At the end, the current situation is analysed and different possibilities for future exploration will be discussed.

Storage devices retrospection

The comparison is be made over 4 characteristics:

Seek time - the amount of time between requesting an arbitrary memory cell and getting it’s value

Throughput - the total amount of data that can be r/w to storage per second

Price - the cost of 1GB in the most profitable capacity option.

Capacity - total volume.

Kind (and volatility) Year Seek time Throughput Price per GB Capacity
HDD 1956 600 ms N/A $7400000 350MB
HDD 2009 15 ms 43.7 MiB/s $0.21 320GB
HDD 2017 12 ms 223 MiB/s $0.03 14TB
DRAM ~2001 10 ns 1.6 Gb/s $5 1Gb
DRAM 2017 15 ns 17 Gb/s ~$14 16Gb
SSD 1994 n/a 10 Mb/s n/a 80MB
SSD 2017 34mu 545 MB/s $0.28 500Gb
PC-RAM 2014 1.5 mu 3 million I/Os Prototype Prototype
STT-RAM 2012 1-10 ns 3.2 GB/s 50x flash 64 MB


The novel history of storage devices starts with a first HDD in 19561. IBM 350 had capacity of 3.75MB and would cost nearly US$28,000 today or US$7,400 per MB.

Since 1950’s HDDs has become much cheaper. One of the milestones was Toshiba’s MK3233GSG in 2009. The improvement in seek time has the lowest ratio, comparing its parameters with IBM’s 350.

As an example of the most advanced HDD, Ultrastar He12 might be taken. As it is shown in the table, price continues to decrease, while seek time almost stopped improving.


Another technology basic computer technology is a RAM memory. The first broadly used approach is a magnetic-core memory. It was used as a main technology from 1955 to 1975. Actually, it was non-volatile, but had a small capacity and was expensive.

As a replacement, Dynamic RAM has become popular in 1970s. The core idea behind DRAM is a repetitive refreshing of already written data, preventing it from vanishing.

The first approach was an asynchronous DRAM. It hasn’t shown its effectiveness and rapidly was replaced with synchronous DRAM (SDRAM). An important advance was inventing DDR - Double Data Rate version of SDRAM. As a popular DDR-1 device Samsung’s M470L2923BN0 can be considered.

Nowadays, more advanced version of DDR standard are used. As an example of DDR4 high-end memory: Kingston HyperX Fury. As it can be seen, capacity growth barely can outperform HDDs, same for price.


The third class of popular storage devices is SSD. SSDs and HDDs are commonly comapred between itself. It is a true example of a NVRAM, but unfortunately, its performace currently doesn’t allow replace main computer’s memory with SSD.

One of the first broadly used novel SSDs on a market was CERAM’s T8000 in 1994.

As a modern example Western Digital Blue SSD is considered. As we see, modern SSD is somewhat in the middle between HDD and DRAM. While having a middle latency, it’s price and maximum capacity are approximately equal to HDD market state ~8 years ago.

NVRAM: state of the art solutions

Currently, there are several approaches for making NV-RAM units. Two of them will be discussed. Other technologies are also being developed, as an example, R-RAM.

Phase-change random access memory

PC-RAM uses specific physical properties of a chalcogenide glass2. Electric current is used for heating and melting the glass to store bits of data. There are several research directions concentrated on adding different chemical elements to the glass in order to obtain more productive properties.

One of the latest advances was made in 2014 by Western Digital. The has shown prototype of PC-RAM storage with over 1 million I/Os and 1.5 microsecond latency.

Spin-transfer torque

The idea behind STT is quantum physics properties of a magnetic field3. Spin can be change it’s value in a specific construction called Spin Valve.

One of the first publicly available device was presented by Everspin Technologies in 2012. It uses DDR3 memory module with a capacity of 64 Mb.

Applications of NVRAM

The software can profit from using of NVRAM on several abstraction levels:

  1. Speedup obtained by an out-of-the-box HDD replacement.

  2. OS components

  3. Supplementary and infrastructural software

  4. NVRAM-specific business logic

The first, the most trivial part is a implication of a comparison table.

Speaking of an OS components which directly works with storage, variability of filesystems comes to mind. One of the most recent works in this direction is DJFS4 and wrJFS5. The first one concentrates on optimizing cache buffers and moving journaling into NVRAM. The latter one approaches cost asymmetricity issue: write consumes more power, than read. wrJFS applies different behaviour for metadata, which is volatile and relatively small, and userdata, which is being compressed to obtain lower power cost.

Relational database management systems (DBMSs) is a good example of an infrastructural service. One of the most famous general-purpose DBMS is PostgreSQL. It turns out that, apart from ~15% wall-clock time improvement which is done on the ground level by simply replacing the HDD to NVRAM instance, PostgreSQL may benefit for another 5% by writing a specific storage engine6.

While considering the highest level business applications, it is barely possible to get any performance improvement, as long as low-level storage and memory management is unavailable on high-level programming language. Although, there is an example of web-page loading improvement7 for better browsing experience.


NVRAM is a developing branch of low-level computer architecture. Current solutions can compete with classic HDDs, but SSDs now cannot be considered as vital alternative to main computer’s RAM due to high latency and low throughput.

There are several alternative approaches to develop NVRAM units with better characterstics. It might be expected that In the nearest 5-10 years technologies will emerge up to total DRAM->NVRAM replacement.

It is possible to adopt existing methods in software development to fulfill NVRAM’s advantages. Experiments has shown that exploring system’s behaviour in NVRAM environment allows to achieve better performance.

  1. ↩︎

  2. Phase-change random access memory: A scalable technology ↩︎

  3. Advances and Future Prospects of Spin-Transfer Torque Random Access Memory ↩︎

  4. DJFS: Providing Highly Reliable and High‐Performance File System with Small‐Sized NVRAM ↩︎

  5. wrJFS: A Write-Reduction Journaling File System for Byte-addressable NVRAM ↩︎

  6. Implications of Non-Volatile Memory as Primary Storage for Database Management Systems ↩︎

  7. A Prefetching Scheme for Improving the Web Page Loading Time with NVRAM ↩︎