Why does performance drop?
Users typically notice that an SSD drive runs at the manufacturer's stated peak I/O performance at first, but soon after that it begins to drop. That's because, unlike a hard disk drive, any write operation to an SSD requires not one step, but two: an erase followed by the write.
When an SSD is new, the NAND flash memory inside it has been pre-erased; Users start with a clean slate, so to speak. But, as data is written to the drive, data management algorithms in the controller begin to move that data around the flash memory in an operation known as wear-leveling. Even though wear-leveling is meant to prolong the life of the drive, it can eventually lead to performance issues.
SSD performance and endurance are related. Generally, the poorer the performance of a drive, the shorter the lifespan. That's because the management overhead of an SSD is related to how many writes and erases to the drive take place. The more write/erase cycles there are, the shorter the drive's lifespan. Consumer-grade multi-level cell (MLC) memory can sustain from 2,000 to 10,000 write cycles. Enterprise-class single-level cell (SLC) memory can last through 10 times the number of write cycles of an MLC-based drive.
A brief refresher on the difference between the two technologies: SLC simply means one bit of data is written to each flash memory cell, while MLC allows two bits, or more, to be written to cells. MLC drives are notably less expensive than SLC drives.
Manufacturers moderate how long the flash memory in an SSD will last in several ways, but all involve either adding DRAM cache -- so data writes are buffered to reduce the number of write/erase cycles — or using special firmware located in the drive's processor or controller to combine writes for efficiency.
According to Bob Merritt, an analyst with research firm Convergent Semiconductors, another element of SSD longevity is whether extra memory cells are available and, if so, how many. Some manufacturers over-provision storage, so that when blocks of flash memory wear out, additional blocks become available. For example, a drive may be listed as offering 120GB of memory, but may actually contain 140GB of capacity. The extra 20GB remains unused until it's needed.
The performance problems involving Intel's consumer-grade X25-M SSD were related to its wear-leveling algorithm.
At its most basic, wear-leveling algorithms are used to more evenly distribute data across flash memory so that no one portion wears out faster than another, which prolongs the life of whole drive. The SSD's controller in wear-leveling operations keeps a record of where data is set down on the drive as it's relocated from one portion to another.
"To accomplish this, you need to move commonly used data to different locations, which naturally leads to some data fragmentation, depending on the size of the data blocks required," said Jim McGregor, chief technology strategist for research firm In-Stat Inc.
Intel's X25-M issues
In Intel's case, reviewers at PC Perspective spent months testing X25-M SSDs using multiple PCs and applications to study Intel's advanced wear-leveling and write-combining algorithms. The results showed that write speeds dropped from 80MB/sec. when the drives were new to 30MB/sec. and read speeds dropped from 250MB/sec to 60MB/sec. for some large block writes."We found that a 'used' X25-M will always perform worse than a 'new' one, regardless of any adaptive algorithms that may be at play," PC Perspective wrote.
Intel said the drive's performance problem was related to a bug in the firmware that has since been corrected with an upgrade. PC Perspective re-tested the drive and found the problem had, indeed, been fixed.
Another factor contributing to SSD performance and endurance degradation is something native to all NAND flash memory: write amplification. With NAND flash memory, data is laid down in blocks, just as it is on a hard disk drive. But, unlike a traditional spinning disk, block sizes on an SSD are fixed; even a small 4k chunk of data write can take up a 512k block of space, depending on the NAND flash memory being used. When any portion of the data on the drive is changed, a block must first be marked for deletion in preparation for accommodating the new data.