A SSD Technology a Day (5) – Wear Leveling

This entry is part 6 of 9 in the series One SSD Technology a Day

Wear leveling is a technology used in Solid State Drive  controllers to prolong the service life of flash memory. As mentioned in the 2nd post of this blog series  What’s the difference between SLC and MLC? flash memories have limited endurance,measured by the number of P/E cycles that the memory can perform before becoming degraded. Wear leveling ensures that all cells are getting the same number of P/E cycles (even wear) so that you do not have  just a few cells on the drive receive the majority of the writes and wear out early. This might cause the drive to fail when most of the memory on it is still usable way ahead of the prescribed service life.

Memory wear-out concerns are unique to flash-based memory. Hard disks store data by magnetizing a thin film of ferromagnetic material on a disk. DRAM is volatile memory  (the memory stores data only while it is powered on). Flash memory stores data inside the NAND cell  via a process called tunneling while the floating gate is being flooded with high voltage. This leaves a charge in the NAND cell and that charge can be read over and over. Because  of this invasive writing method and coresponding erasing method, the flash cells degrade over time.

Wear leveling algorithm basically stores the P/E count of each cell and writes the next block to the  “least used available cell” so that cells that were intensively used are put to the end of the queue until all cells have an even wear.

One caveat is that new disks will have a much better performance than the once that were used intensively because all cells are good candidates for writing. Once the disk has been used, there is a performance degradation due to the need to erase  the cell selected by wear leveling. So a good advice would be not to test a new drive but first perform writes on 2-3 times the capacity of the drive before starting tests(e.g. 240GB SSD drive should have 500-750GB lifetime writes) in order to simulate the a real production scenario instead of just  benchmarking a brand new disk. One other thing that affects this performance is Static Data Rotation which is discussed in the first post of the series. Lifetime writes can be queried using Cristal DiskInfo and other free tools.

Disk parameters to check

Series Navigation<< A SSD Technology a Day (4) – Redundant Array of Independent Silicon Elements (RAISE)A SSD Technology a Day (6) – CacheCade >>

4 thoughts on “A SSD Technology a Day (5) – Wear Leveling”

  1. Hi, Thanks for this series, I am following them with great interest. In your last line you say “So a good advice would be not to test a new drive but use it 2 or 3 times above the capacity before starting the baseline testing”, could you explain the meaning of “use it 2 or 3 times above the capacity” please?

  2. Jonathan,
    Thanks for your kind comments. That is a great point, I realized that was not very well worded. I will update the post.

    What I meant to say there is that you should perform writes on 2-3 times the capacity of the drive before starting tests(e.g. 240GB SSD drive should have 500-750GB lifetime writes) in order to simulate the a real production scenario instead of benchmarking a brand new disk. One other thing that affects this performance is Static Data Rotation which is discussed in the first post of the series. Lifetime writes can be queried using Cristal DiskInfo and other free tools.

  3. Compared to a normale disk I found that the Wear Level of my Intel SSD was quite higher in a shorter period of time. It makes sense but it is kind of a pity.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>