I’ll give a quick intro to NVDIMM-F in this blog post. I am doing this for completeness sake as we look at some different PMEM implementations over a series of blog posts. We have already looked at NVDIMM-N and later we’ll look at the future of PMEM with NVDIMM-P and Storage Class Memory.
A quick intro to NVDIMM-F
NVDIMM-F is basically a PMEM module that contains only flash and resides on a DIMM slot (DDR-4 bus). There is is no DRAM on an NVDIMM-F module. The main advantage is that it comes in bigger capacities than NVDIMM-N. Flash can be bigger than RAM. The DDR bus speed is excellent and allows for low latency. The most obvious drawback is that it is a lot slower than NVDIMM-N. Sure they surely leverage SLC, but still, compared with DRAM this is significantly slower.
The memory is system mapped flash. So it is slower but is persistent as the reading/writing is done Flash. RAM is not system mapped but it can be used as a cache to speed up IO The RAM cache actually is a risk during power loss as this will not be persisted.
All this means that the speed and latency (10-100us) are flash-like, so not a great. The good news is the capacity can be that large as well so from 128GB to potentially many TB.
- NVDIMM-F provides larger flash-like capacity (128GB – xTB) but with higher latencies (10s of ms).
- It is not byte addressable only block-level access to the memory-mapped flash. There is a proprietary driver between NVDIMM-F and the cache in main memory.
- Caching in main memory (DRAM) is required to hide latencies but prevents 100% persistence.
- The copying of data between cache in system RAM and NVDIMM-F NAND puts a burden on the channel bandwidth.
- NVDIMM-F provides large capacity NVDIMM not limited to DRAM sizes
- it allows for immediate persistence of data in the NVDIMM-F modules without the overhead of moving it to NVMe or SSD at the cost of some temporary latency. Remember that NVDIMM-F is not trying to replace or act as memory in any way.
Use cases and futures
If you have a workload where avoiding PCIe/SAS latencies is important this could be an option. But with the excellent performance of NVMe over PCIe this has been reduced. What if you wanted 4TB of high-speed storage for a Very Large Memory database some years ago? NVDIMM-F was a proposed solution.
With the advent of NVDIMM-P & other Persistent Memory / Storage Class Memory offerings and the new media (3DXP, NRAM, …), I do not think NVDIMM-F is going places anymore. Those will offer capacity and speed. While NVDIMM-N will have some use cases where the absolute lowest latency is needed and the size limitation is not a show stopper, not so for NVDIMM-F. Storage Class Memory and NVDIMM-P will take over the reins.
Diabolo Technologies that made an NVDIMM-F back in the day does not even exist anymore. Maybe that could be a sign as well.