Tuesday, April 22, 2008

From EeePC to SLC/MLC SSD

Recently the 9 inch EeePC catches everyone's eye because of the price (under HKD 4,000) and the large 20G SSD. However it raises a big concern after people discovered that the 20GB SSD is made up of 4G SLC + 16G MLC.  Since the life-span of MLC is much lower than SLC and can only survives for 10,000 writes. Someone in a forum even claim that "the SSD will die after 1 month if write to the disk 30 times a day".

I did some research on this.

The smallest unit of SSD is "page", which is usually 2KB in size. Each time SSD write s data to a page, it will need to erase the data first.  This is called erase/write cycle. It is also why writing is SSD is slower because it needs two operations.  When SSD erases data, it is in the unit of "block", which is 64 pages or 128KB data.  So the 10,000 write cycles means each block can be written 10,000 times. Assuming writing 1GB of data every day, a 8GB MLC SSD can last for 219 years (8 * 10000 / 365).

There may be case that it keep writing on the same block and used up the limit of that block.  To solve this, there is a technique called "wear leveling" to balance the erase count of each block.  For example, when there is need to write to a block with high erase count, it will swap the data in this block with another block with lower erase count (this is done by the SSD chips in background).  Note that a swapping is also counted as erase/write and impact the write speed.  Another technique is to reserve some blocks which didn't count as capacity.  When a block's erase count reaches the limit, The reserved block will step it.  This method can reduce the swapping overhead.

After all the life of SSD should not be a concern to for you to buy a EeePC.