Premium Content

New Signal Chain Resources from Texas Instruments:

Key Challenges in SSD Controller Development

Date Posted: January 17, 2011 12:50 AM
Author: Kent Smith

Endurance

One of the most important advances made by today’s new SSD controllers is a significant improvement in endurance. Today’s advanced controllers can manage commodity flash so that it delivers the same endurance as enterprise hard disk drives. This makes it possible to build SSDs that are competitively priced and yet last as long as other enterprise computing gear. There are several aspects to prolonging endurance, including firmware design and life curve throttling.

Designing firmware for endurance

Flash memory can only be written to so many times before it has trouble recovering (remembering) what it was storing. If the controller can write to the flash less or reduce the overall write amplification, the drive lasts longer. There are a few techniques used by advanced controllers to reduce write amplification including page-based volume management, efficient garbage collection, and line-speed data analysis.

Since whole flash blocks must be erased before the individual pages can be overwritten, the valid data in the surrounding pages that get moved to new blocks causes an increase in write amplification. Today’s advanced controllers use page-based volume managers, which enables them to manage individual pages. This is important for random (as opposed to sequential) write operations, since the controller needs to be able to skip around from page to page when small amounts of data change in a block. If the controller uses a block-based system to write random data, it wastes a huge amount of space as it is forced to rewrite the entire block of typically over 100 pages just to replace a single sector of information. This single write would have a write amplification of over 1000 on that block. A page-based system would only rewrite a single page, reducing the write amplification by two orders of magnitude on that one write.

As mentioned previously, garbage collection is a fundamental process in all flash drives because it ensures a steady pool of free blocks ready to be written. However, there is a limit to how much garbage collection should be done in advance of actually needing the space freed up. This background garbage collection can be wasteful because it may require moving of data that will soon be TRIMed by the operating system anyway. If the controller moves a bunch of data to new blocks and the OS will simply TRIM it shortly after that, the additional writes for that data needlessly increased the drive write amplification and further reduced the flash endurance. Early SSD makers thought that continuous background garbage collection was the best way to ensure a ready supply of fresh blocks for data, but it turned out that the performance gains of such continuous collection were not adequately offset by the larger loss of precious endurance. Ideally, the controller should know when garbage collection is optimum based on space needed and available write cycles. It should also have as efficient a garbage collection system as possible.

One simple method for extending endurance of the flash is to not write to it in the first place. This might sound crazy, like making a gallon of fuel last longer by not burning it, but there are many techniques in use today for storage applications including data deduplication, compression, and data differencing that reduce the amount of data that must be written to the drive. This technique, which SandForce implements with its DuraWrite technology is a very complex process and requires a significant investment in the controller.

flash memory | Sandforce | solid-state drive | SSD
Part Inventory
Go
powered by:
 

 
You must log on before posting a comment.

Are you a new visitor? Register Here
    There are no comments to display. Be the first one!