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

A new generation of solid-state drive (SSD) controllers has turned the SSD business on end by enabling enterprise-class performance, reliability, and endurance with standard NAND flash memory. In this article, we will look under the hood a bit to see what issues are being dealt with by these new controllers.

Challenges in designing a flash controller fall into five areas: performance, reliability, endurance, security, and flexibility.

Performance

Performance is an issue with any storage medium. The host interface and the NAND flash interface both require careful coordination to maximize the overall performance of the SSD. A single flash die can be programmed at up to 40-50 megatransfers per second (MT/s) with asynchronous mode, and the new ONFI2 and Toggle modes increase this to 133-200 MT/s, providing a 3-4x performance increase at the flash interface. Typical SATA SSDs today support the SATA 2 spec with 3Gb/s, which translates to a top speed of just over 250MB/s. New controllers will need to support the SATA 3 spec with 6Gb/s (roughly 500MB/s), doubling the maximum host interface.

To achieve the required performance, some parallelism must be used so that multiple die are programmed or returning results at once. Native command queuing, garbage collection and block picking are all techniques that must be balanced to obtain this parallelism and high performance, without exceeding the power envelope given for the SSD.

Native command queuing and flash parallelism

There are typically up to 128 flash die on an SSD, and each one can take a millisecond or more to program. The goal is to be able to program as many die as possible at the same time, or nearly at the same time. Native command queuing (NCQ) is part of the SATA drive specification, enabling the host system to send as many as 32 commands to the drive at once. NCQ enables the flash controller to manage up to 32 commands/responses at a time, which reduces the amount of time the operating system must wait to issue new commands and thus improves drive performance.

NCQ automatically gangs up commands and tracks them. The controller can rearrange the queue dynamically if necessary. For example, if the controller is able to respond sooner to a command that came in later than others, it can do so out of order without causing problems for the host system.

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!