September 14th, 2012 by Guest Author

Media Management in Solid State Drives: Multistep WRITE Operations

Between 2010 and 2015, IDC predicts that shipments of Solid State Drives are expected to increase by a compound annual growth rate of 52 percent on a global basis. The corresponding surge in enterprise server and storage adoption means that a deeper understanding of critical components such as media management and the use of new drives versus used drives can help administrators better manage storage resources.

SSDs may appear very similar to conventional rotating hard drives, but the similarity is only superficial. An examination of the internal workings of an SSD reveals that SSDs actually share very little in common with legacy drives. One key example is the difference in the way that each type of drive overwrites existing data—rotating drives overwrite in a single step, whereas NAND Flash-based SSDs require additional steps. This brief examines the “multistep write process” for SSDs.

Background: The Basics of SSD Design

The first thing to understand about how SSDs overwrite data is how SSDs are constructed. Any SSD has the following basic components:

Host interface

Printed circuit board

NAND controller

NAND

Write Process Differences

Date writes differently to NAND than it is written to a rotating hard drive—NAND that contains data (whether valid or invalid) must first be erased; only then it can have new data written to it. In a nutshell, the erase process first erases an entire block; only then can the pages in that block have new data written to them.

Because NAND that already has data in it must be erased before new data can be written to it, the write sequence for a device that is full (has no empty/erased pages) is very different from that of a device that is empty (or has enough empty/erased pages to absorb the incoming write traffic).

Empty/Erased Pages Available

Suppose we were able to ensure we had empty/erased pages ready at all times. As the write comes into the SSD, the process flow would look similar to that of a rotating drive:

Data comes into the SSD from the host interface, resulting in a write request (that will eventually be written to the NAND).

“Are there any empty/erased pages” (that is, pages that are ready to be written to)? In Figure 1, empty/erased pages are available.

Write the data to the available pages.

This write process is accomplished in a single step, just like rotating drives. Typically, this is much faster than writing to an SSD with no empty/erased pages (as shown in Figure 2).

Insufficient Empty/Erased Pages Available

Suppose now that we have an SSD with insufficient empty/erased pages. As new data is written to the SSD, it requires that cells be erased immediately before that write happens:

Data comes into the SSD from the host interface, resulting in a write request (that will eventually be written to the NAND).

“Are there sufficient empty/erased pages” (that is, pages that are ready to be written to)? In Figure 2, insufficient empty/erased pages are available.

Locate a block whose data has been invalidated or whose valid data can be moved, making it a good erase candidate, and then call the garbage-collection routine (see the New Drives vs. Used Drives section that follows) to enable this block for erasure.

Erase this block. (Repeat as necessary to store the data in the write request.)

Write the data to the newly erased/empty pages.

Step 4 can be slow to complete because erasing NAND takes much longer than writing to it—any NAND erase cycle is “slow” (typically, it takes 250 microseconds [µs] to write to an MLC cell, but 1500µs to erase it).

New Drives vs. Used Drives

If you are using a brand-new SSD, the write process proceeds in the same way as Figure 1. A new SSD is empty; all its pages will be empty and ready to receive new data, so the erase step is rarely performed as data is being written. However, as the drive fills, the number of these empty/erased pages decreases and will eventually be consumed.

There is a background process in SSDs that frees up pages whose data has been invalidated, making them good candidates to be erased. This background process is called “garbage collection.”

Conclusion

If a NAND-based SSD is full, writing new data to it is a very different process compared to writing to an empty SSD. If the drive is empty, the write process is very similar to rotating drives. However, if the SSD already contains data, additional steps are required:

The SSD must determine if sufficient free space exists to accept the data.

If not, it calls its garbage-collection routine to group and move valid data so that an entire block can be erased (so that the pages in the block can receive new data).

The block is erased.

The data is written.

These extra steps are all handled by the SSD controller without host intervention, but results in performance variation.

Doug Rollins (Senior Applications Engineer, Enterprise Solid State Drives, Micron Technology)
Doug Rollins joined Micron in 2009 as an applications engineer with the Enterprise SSD Products group. Prior to joining Micron, Mr. Rollins spent 17 years working in server system, network appliance, and storage platform/data protection design and manufacture, and solid state storage. Mr. Rollins is the named inventor in 13 U.S. patents and has been recognized by both the Storage Networking Industry Association (SNIA) and Intel Corporation for outstanding technical achievement. Mr. Rollins earned his BA degree in mathematics from Humboldt State University.