The growing use of solid state drive (SSD) technology in data storage applications is shedding light on the way SSDs cope with performance degradation issues. One of the biggest issues is the way these drives collect garbage and delete it from data blocks prior to a write operation.
"Garbage collection," as it is known in the industry, improves write performance by eliminating the need to perform whole block erasure prior to every write. Working in the background, garbage collection accumulates data blocks previously marked for deletion, performs a whole block erasure on each 'garbage' block, and returns the reclaimed space for reuse by subsequent write operations.
Among the vendors with innovative garbage collection approaches are Indilinx, OCZ Technology Group and SandForce.
"SSDs suffer from a difficulty that doesn't exist in HDDs the flash must be erased before new data can be written into it," said Jim Handy, an analyst at Objective Analysis, a market research firm that predicts 148 percent unit growth for the enterprise SSD market.
Flash's Software Problems
Handy said the erasure difficulty stems from the fact that all of today's software was written for HDDs, which don't behave like the flash in an SSD.
"An HDD can overwrite existing data with new data," said Handy. "Since the software doesn't accommodate flash's 'erase-before-write' needs, the controller inside the SSD must take care of this bit of housekeeping. Unused and unerased blocks are moved out of the way and erased in the background."
The main advantage of background garbage collection is the gain in write performance, said Geonyoung Hong, vice president of Indilinx.
"Background garbage collection will not degrade the performance of an SSD if it does not stall ATA command processing from the host," said Hong. "The background garbage collection is kick-started by a pre-set idle period and by calculating the cost of garbage collection at that time."
With those precautions, write amplification increment and lifetime degradation can be controlled to a reasonable degree and do little harm to an SSD, Hong added.
"Background garbage collection will be aborted by any ATA command sent by the host," said Hong.
One thing common to nearly all SSDs is the use of over provisioning to help with garbage collection. More flash resides within the SSD than is available to the user a 64GB SSD may actually contain 80GB of internal NAND, but only 64GB is visible to the user. The other 16GB provides an area that can be used for background processes.
"Every SSD has reserved space for various reasons," said Hong. JEDEC, the leading developer of standards for the solid-state industry, recommends having about 7 percent of reserved space, he said. If the ratio is enlarged, it is called over-provisioning.
A common problem occurs when an SSD recycles blocks moving valid data from multiple blocks into a smaller number of blocks said Radoslav Danilak, chief technical officer of SandForce.
"The host will eventually need to replace data with updates from the user or OS, which will make some of that just-recycled data obsolete," said Danilak.
In this example, the SSD has now rewritten data that the host did not need, said Danilak. "This actually drives up the write amplification factor of the SSD, which wears out the flash sooner," he said. "A better solution would be to improve the process for actually performing the garbage collection so that it can be done in parallel with host write operations without slowing down the performance of the drive."
SSD Performance after Garbage Collection
Danilak noted that the write performance before garbage collection is generally very high and similar between suppliers.
"After writing to each block once, a drive begins garbage collection and the write performance drops significantly, in some cases by as much as 90 percent," said Danilak.
He said SandForce's solution enables a drive to perform write host operations in parallel with garbage collection.
Danilak said the SandForce SSD Processors maintain much higher write performance even with lower-cost MLC memory (30,000 random write IOPS at 4K transfers) compared to other MLC-based solutions (usually less than 1,000 IOPS) and higher-cost SLC-based solutions (usually less than 5,000 IOPS).
TRIM Helps SSD Performance
OCZ takes a different approach to garbage collection, said Eugene Chang, vice president of product management for OCZ Technology Group.
"Our drives are engineered with garbage collection or TRIM support, with the actual implementation dependent on the drive architecture [such as internal RAID], intended target market and application," he said.
Chang added that OCZ's goal is to keep SSD performance at peak levels over the drive's lifespan. OCZ, he said, uses two basic garbage collection methods: incorporating the maintenance within firmware, and providing user-initiated tools to accomplish the same task.
OCZ provides three different garbage collection methods, said Chang.
Some OCZ drives feature idle-time garbage collection in the firmware, including PCI-Express and high-capacity 3.5-inch SSDs, which aim for high-performance endurance. OCZ's mainstream 2.5-inch SSD solutions ship with TRIM support, which is enabled on Windows 7 and various Linux versions.
For users who prefer Windows XP or Vista, OCZ provides a manual garbage collection tool that can be initiated at the user's discretion, said Chang, noting that the company also provides a garbage collection upgrade firmware for XP and Vista systems.
"Garbage collection is just one more tool in OCZ's feature sets that helps sustain the revolutionary performance of SSDs over the long term," said Chang.
The issue of garbage collection is not going away anytime soon, said Handy.
"We expect to hear a lot more about this issue before it is resolved," he said. "Nonetheless, most current garbage collection algorithms perform well enough for today's applications."
Follow Enterprise Storage Forum on Twitter