Memory Channel Storage devices, like Diablo’s reference design TERADIMM, plug 200 Gbytes to 400 Gbytes of flash into a standard DDR3 DIMM socket. Since the QPI memory controller is on the die of today’s Xeon processors, the DIMM sockets provide much higher bandwidth and lower latency that the PCIe slots.
While it would be cool to just put a dozen 400-Gbyte DIMMs in a server and have 4.8 Tbytes of directly addressable spaces, simply mapping flash into the processor’s address space has a few major drawbacks.
The first is that today’s OSes just aren’t set up to handle large fluctuations in memory latency. Sure, back when I was in college, the mainframe had fast core and a much larger, 4-Mbyte pool of much slower storage. When you submitted a job, you’d pay more for fast core. Windows and Linux were never designed for that kind of computer and don’t prioritize memory usage by location. Even worse, treating an inherently block-addressable system like flash as it if it's byte-addressable DRAM will create a huge amount of write amplification. This will wear out the flash because it has to write a whole page for every 1-byte update.
Rather than just mapping the flash into the processor’s address space, Diablo’s drivers for Windows, Linux and VMware ESXi present the flash as a block storage device, basically using the Memory Channel Storage device as a very fast SSD or directly plugged into the virtual memory paging mechanism. With the virtual memory driver, the flash appears to the processor to be memory, but data is paged in and out of the flash from DRAM in 4K pages. The OS knows which pages are swapped out to flash and can prioritize between the two memory pools.
Diablo won’t be out peddling flash DIMMs, but is selling the technology plus its controller ASIC to OEMs to build devices around it--similar to the way SATA flash controller vendors like LSI/SandForce and Marvell operate. The first flash DIMMs should come from Smart Storage Systems late this year and will use Smart’s Guardian Technology to extend the write endurance of MLC flash to 10 full-drive writes a day for five years.
[EMC recently bulked up its flash products division by acquiring a startup that creates shared storage pools across server clusters. Read the details in EMC Flash Division Expands with Scale IO Deal."]
We should also see the first servers that can run with the TERADIMM. In addition to the usual server vendor qualifications, they require a patch to the server’s UEFI BIOS, and that means an even more extensive testing period. The Diablo guys tell me they have one major OEM with the technology in the pipeline and a couple of others that are in early stages of the process.
If Diablo actually delivers on its claims--150K IOPS read and 85K writes per module--those servers are going to be darned quick. Like the latest enterprise SSDs from Intel and Virident, Diablo's technology also claims deterministic latencies under 50 seconds, all at the same cost per IOP as SATA SSDs.
Strictly speaking, the TERADIMM, and its actual for-sale derivatives from Smart and possibly others, aren’t the first DIMM form factor SSDs. That honor goes to Viking’s SATADIMM. While SATADIMMs plug into a DDR3 DIMM socket, they only use it for power; data is sent through a separate SATA connector, and the SATADIMM, other than its form factor, is a pretty vanilla SATA SSD.
The DIMM form factor is a natural for blade and high-density server environments where PCIe slots, if they exist at all, are a severely limited resource. I wrote about the tyranny of the mezzanine blades when I wrote about Dell’s VRTX. If the next generation of blades from your favorite vendor has the UEFI support, you can use flash DIMMs instead of the mezzanine SSD your server vendor’s blessed.
Diablo’s Memory Channel Storage, like NVMe, has the potential to disrupt the PCIe SSD market, bringing even higher levels of performance by getting closer to the processor.