SSD
SSD Basics
-
- SSD stands for solid state drive.
- SSD uses Integrated Circuits assemblies to store the data persistently.
- There is no mechanical part involved in Solid state drives.
- SSD is small and compact in physical size compared to similar capacity of HDD. This compatness in size plays important role as more data can be stored in data center occupying less physical space in datacenter. This is important factor to note considering high rent space of data-centers where we need to store maximum data with less space to be occupied by drives.
- Following are the components of SSD
- Flash Memory
- Controller
- Below is architecture of SSD

Components of SSD:
- Flash Memory: Generally flash memory NAND flash. Flash memory is made up of flash cells and flash cells are grouped into pages. Pages could be 4K, 8K,16K. Pages are grouped into blocks could be 128K, 256K, 512 K.

There are 4 types of NAND flash.
- Single level cell ( SLC) : It can store 1 bit of data ie either 0 or 1.
- Multi level cell (MLC): It can store 2 bit of data per flash cell, (00,01,10,11)
- Enterprise MLC (eMLC):
- Triple level cell ( TLC): It stores 3 bits per cell (000,001,010,011,100,101,110,111)

- Controller
Every SSD includes a controller which is responsible for controlling memory of SSD and and control its interaction with host computer.
It has following functions.
- Bad block mapping
Errors and bad blocks are detected and corrected using CHDSK command.
- Wear levelling:
Wear leveling is the process of distributing the workloads across the flash cells so that all writes are not written on single cell while other cells remain idle.
Two types of wear levelling:
- Background wear levelling:
Wear levelling is done in background by controller. It is also called static called static wear levelling. This process ensures that flash which contains user data is not changed very often.
- In flight wear levelling:
In flight wear levelling redirects incoming writes to unused flash cells.It ensures that incoming writes are not directed to used cells and balances the writes across the flash cells.
- Error detection and correction :
Errors and bad blocks are detected and corrected using ECC ( Error Correcting Code).
- Read scrubbing
Controller reads data from each memory location and corrects bit error with ECC ( Error Correcting Code).
- Caching :
Caching is done for faster access of data and enhancing performance.
Caching is implemented by 2 types in SSD
- Write coalescing
- Write combining
- Garbage collection : Garbage collection runs in background and cleans up following blocks.
- Blocks which are marked for deletion
- Sparsely filled blocks
Recent Comments