Solid State Drive (SSD) storage has become a viable performance option thanks to the advent of NAND flash devices which are making memory-based storage affordable. The performance of an SSD is not solely dictated by the NAND but by the performance of the combined components that make up the SSD. The performance of the flash controller, its firmware and how it interacts with the NAND determine the combined performance of the device.
There are many actions that impact flash SSD performance, most notably the management of the flash itself. Flash can only be written to a finite number of times so steps have to be taken to make sure that write I/O is spread evenly across the SSD, a process called “wear leveling”.
There are (at least) three unique features of NAND that make efficient, granular flash management essential for Enterprise SSDs:
- It takes longer to write data to a NAND cell than it does to read data from that same cell
- NAND cells with data in them (even “old” data) must be erased before they can be rewritten
- NAND is written at the page level (typically 4K to 16K), but erased at the block level (a block consists of hundreds of pages)
The first feature, the write/read disparity (sometimes called the “write penalty), creates a natural increase in read performance. The second and third compound this difference, especially for enterprise SSDs, which are typically under very heavy workloads.
The core limitations on performance are the capabilities of NAND flash itself. Innovators like Micron are investing in flash management technologies that optimize the way data is read and written to the flash cell to maximize performance and longevity. While there are differences in the way the NAND silicon chips are manufactured the key value-add for SSD designers is what they do with their management technology to work around those limitations.
Granularity is the key
At different times the flash-based SSD has to manage several large operations that each need to complete prior to accepting additional commands. These operations are typically designed to be executed during idle times. But if read or write commands come in soon after these processes start, as often occurs in enterprise applications, they will experience latency until those processes finish.
To increase performance the next generation of enterprise SSDs will need to develop a more granular understanding of the flash itself to better manage and integrate background operations so that applications sending commands to the SSD will experience minimal latency.
Managing Garbage Collection
At the heart of flash performance limitations is the write operation. As stated above all flash products have a write penalty versus reads. Vendors, early on, created key capabilities like “garbage collection” to minimize this performance impact. Garbage collection is a common SSD process that in the background will clear old data from flash cells or reorganize data so that more capacity in those cells is made available. This can remove the first two steps of the write process (reading and clearing the cell) reducing the delay when writing data to the NAND assuming that the garbage collection process can stay ahead of inbound writes.
Again, most garbage collection routines are designed to run in the background and when the SSD becomes busy this task either pauses or accepts a lower priority. The challenge with garbage collection is that most flash devices deal with this data movement in relatively large block sizes and the process of clearing or reorganizing data must still be completed before garbage collection can be paused or re-prioritized. The result is a relatively large increase in latency, as much as 500 microseconds, if the inbound write “catches” the SSD in garbage collection mode.
Companies like Micron are improving their flash management technologies to facilitate the handling of smaller units of data during garbage collection. As an example, instead of having to read and write in very large chunks, Micron’s new “XPERT” (Extended Performance and Enhanced Reliability Technology) can now deal with data in much smaller, more granular chunks. This means that the process can be more easily interleaved with servicing host I/O, far reducing application-level latency.
Managing DRAM Data Protection
As mentioned above, to help with write performance and to facilitate better use of NAND capacity, most, if not all, flash SSDs also include a small amount of buffer space. DRAM does not suffer the same write performance penalty that flash memory does but of course, is not persistent like flash. The DRAM needs to be protected and occasionally copied to the flash.
The copy function is often called the “Page Table Copy Process” (PTCP) and when it occurs, causes a single write that’s only a small percentage of the flash drive’s capacity. Similar to garbage collection as described above, once this copy command is issued, the process must complete, a process which can increase the latency that other operations to the drive will see. It’s also designed to occur during idle times but if an I/O command is sent to the drive as PTCP starts the latency experienced by the host issuing that command can be quite high.
Once again the next generation of enterprise SSD designs will provide greater granularity allowing a PTCP action to execute a portion of the process at a time. This means that only a smaller segment needs to be completed before the next command can be run. Such designs enable a far more granular interleaving of this operation with host I/O, an approach that typically results in latency reductions of up to 2 orders of magnitude.
Read Performance Tuning
While much of the attention in improving SSD performance is justifiably centered on write I/O, read performance can also be improved by tuning the NAND to its present state of wear. What causes flash to age is use and, as mentioned earlier, that aging changes the optimal way to read data. The flash designer’s software needs to be able to dynamically tune its write patterns to support more efficient reads as the substrate ages so that data can be read from the substrate optimally.
As solid state technology becomes more commonplace there is a tendency for all NAND flash devices to be treated the same, especially from a performance perspective. Compared with hard disk drives all SSDs are fast, so the assumption is that all SSDs (of the same type) will deliver the same performance. In reality, flash designers with their own fabrication facilities like Micron, are advancing the state of the art in SSD design to achieve a more precise management of the data being stored on flash. This granularity leads to more responsive host I/O processing which provides the applications counting on the SSD with reduced latency.
Micron is a client of Storage Switzerland