Our Theory About How v.1.4 Changed Write Performance
Consumer based SSDs typically use multi-level cell (MLC) NAND, which (typically) stores two bits per cell. This effectively doubles the amount of storage space compared to single-level cell (SLC) NAND, limited to one bit per cell.
Writing two bits to a cell comes at a price, though, as it takes longer to program than SLC NAND. When you're talking about MLC NAND, each bit of a cell is programmed separately. The first bit is relatively fast and easy to program, while the second is more complicated, taking three to four times longer. Consequently, there's a significant performance difference between writing the first and second bits.
When you only write to one bit of an MLC NAND cell, performance is very similar to what you'd see from SLC flash. This is referred to as SLC mode. If you only write one bit to each cell across an entire consumer SSD, though, capacity would be cut in half. If you want to use more than 50% of the available capacity, you cannot operate in SLC mode exclusively.
Let’s consider a 120 GB drive built using MLC NAND. In SLC mode, only 60 GB worth of bits are available to program, and writing that capacity consumes 100% of the accessible bits. In order to write any more, the second bit of each cell has to be programmed, forcing the drive to shift into MLC mode. When this transition occurs, write speeds drop significantly because only the second (slower) bit of each cell is available.
Now, let's say that the same 120 GB drive has 80 GB worth of data on it. If that information is rearranged so that it occupies two bits per cell instead of one, the drive can shift back into SLC mode. This time, however, it only has 20 GB worth of space that can be programmed using that faster mechanism.
Our scenario is represented in the image below. The drive, completely empty, starts with 60 GB of capacity that can be written in SLC mode. You write 80 GB to it: the first 60 GB are written quickly, and the next 20 GB are written more slowly, in MLC mode. After the write operation, the drive consolidates data in the background, leaving 20 GB for operation in SLC mode once again.
This behavior seems very similar to what we're seeing from OCZ's Vertex 4, which employs MLC NAND. We could be wrong, of course, but the performance drop, resumption, and drop again appear consistent with the drive cleaning itself up to give you access to an SLC mode whenever it can. Transitioning back and forth, in theory, allows written information to be consolidated, freeing up more space.
If that is what the Vertex 4 is doing, firmware 1.5 appears to have improved the efficiency of the background processes that free up cells, enabling a faster switch back from MLC to SLC mode. Ultimately, though, SLC mode is, by definition, only able to operate within a percentage of whatever free capacity is available.
Should our theory prove correct, OCZ's Vertex 4 adds a new and interesting variable to the way SSDs perform.