3D XPoint storage from Intel and Micron promises to be a thousand times faster than existing flash NAND storage. That means the sorts of speeds we can expect from 3D XPoint-based enterprise SSDs will be about a thousand time faster than existing enterprise SSDs, right?
Wrong. Unfortunately, the speed gains we can expect from 3D XPoint are likely to be much, much lower than that. Initially, these new enterprise SSDs may be five or six times faster, and eventually, they may even be a hundred times faster. But enterprise SSD speeds that are anything like a thousand times faster than now won't ever be on the table.
To understand why, we need to examine the idea that 3D XPoint is a thousand times faster than NAND. "Do we view this type of persistent memory as memory or as storage?" asks Jim Handy, solid state storage expert and semiconductor analyst at Objective Analysis. "The biggest difference is that there are no interrupts with memory. An interrupt stops the processor and makes it jump to a subroutine, and every time it does so, there is a 60-microsecond penalty. With memory there are no interrupts," he says.
3D XPoint Enterprise SSD Speeds Slower Than Memory
The problem with persistent memory like 3D XPoint is that it sits somewhere between fast, expensive DRAM and cheap but slow conventional storage. That means it is too fast for the interrupt system to be used efficiently, but too slow to function efficiently as DRAM (which provides data almost instantly.)
To see how inefficient it is to treat 3D XPoint as storage (albeit very fast storage), it's worth bearing in mind that the time that it takes for data to appear at the output of a NAND or 3D XPoint chip after an address is applied to the chip is only a part of the total latency when using an SSD. According to the Storage Networking Industry Association (SNIA), sources of latency include:
- the time to get the data from the storage medium to the SSD's I/O pins
- address translation and garbage collection with the SSD
- the time needed to transfer the data across the PCIe interface
- delays from the host computer's PCIe port to the processor pins
- software delays: the amount of time the operating system's I/O stack requires to perform a disk read operation
The point is that even though 3D XPoint may be three orders of magnitude faster than NAND, the last three of these sources of latency remain constant regardless of whether an enterprise SSD is NAND-based or 3D XPoint-based.
Latency Kills Enterprise SSD Speeds
While the effect these latency sources have on NAND-based enterprise SSD speed is relatively small because the latency of the NAND itself accounts for the vast majority of the total latency, when it comes to 3D XPoint-based SSDs this latency is very significant indeed — accounting for perhaps half of the total latency.
Let's put that another way. Imagine you could make some sort of super 3D XPoint which worked thousands of times faster still —- in other words, as quickly as DRAM. Even if you used this super 3D XPoint to make an enterprise SSD you would still be stuck with total latency that is just a single order of magnitude less than you would experience with a NAND-based SSD.
That means, for the moment, 3D XPoint enterprise SSD speeds won't be anything like as fast as many people are expecting, and they will likely only offer performance boosts of a factor of seven or eight or even ten. That's still impressive, but not quite the game-changer some people have anticipated.
Enterprise SSD Speed Boosts
So what's the solution if we want to see enterprise SSD speeds that are a thousand times faster than current enterprise SSD speeds, not just ten times faster?
The obvious answer is to figure out how to reduce the latency caused by these last three factors, of which by far the most significant one is the last: the latency introduced by the application and operating system software getting data from the storage. And the most promising solution that would result in faster enterprise SSD speeds is to stop treating these fast SSDs as storage and start treating them more like slow but persistent memory, Handy says.
Just to recap what Handy is saying, 3D XPoint can be treated in two ways:
- Disk-like non-volatile memory: when treated in the conventional way (putting it on a disk interface), 3D XPoint appears as a disk drive to applications and is accessed as a traditional array of blocks using a file system and driver.
- Memory-like non-volatile memory: when treated as memory (putting it on a memory interface) it appears as memory to applications. It stores data directly in byte-addressable memory, and no I/O (or even DMA) is required. Applications move data to and from the persistent memory using a load/store model (as if it were slow DRAM.)
"But at the moment We are forced to put 3D XPoint on a disk interface as the memory interface has not been worked out yet, " Handy says.