The key components of a SSD are the controller and the memory. These components contain what is called flash memory, a medium that can be electrically erased and reprogrammed. The two main types of flash memory are named after NAND and NOR logic gates and have similar characteristics. The performance of an SSD scales with the number of parallel chips used in the device. When multiple NAND devices operate in parallel the overall transaction load can be evenly distributed between devices. Most SSD manufacturers use non-volatile NAND flash memory which has the ability to retain data without a constant power supply.
The SSD controller system electronics provide a bridge between the host computer operating system and the memory area of the device. The controller system electronics have embedded firmware functions:
- Bad Block mapping
- Read Write Caching.
- Error Detection and Error correcting code.
- Garbage Collection
- Wear Levelling.
Bad Block mapping, Read Write Caching, Encryption and Error Detection are self explanatory functions however specific to SSD’s are :-
SSD Garbage Collection.
Unlike hard disk drives (HDDs), NAND flash memory cannot overwrite existing data they must first erase old data before writing new data to the same location. With SSDs, Garbage Collection (GC) is the name for the process of relocating existing data to new locations and allowing the surrounding invalid data to be erased. Flash memory is subdivided into blocks, and these blocks are divided into pages. Data can be written directly into an empty page, but only whole blocks can be erased. Therefore, to reclaim the space taken up by invalid data, all the valid data from one block must be first copied and written into the empty pages of a new block. It is then that the invalid data in the original block be erased, making it ready for new valid data to be written.
SSD TRIM Command.
The TRIM command enables the OS to notify the SSD that old data is no longer valid about the time it deletes the logical block addresses from its logical table. The TRIM command enables the SSD’s GC to skip the invalid data rather than moving it, thus saving time not rewriting the invalid data. This results in a reduction of the number of erase cycles on the flash memory and enables higher performance during writes. The SSD doesn’t Garbage collect these locations it marks them as no longer valid.
Note: SSD Data Recovery and TRIM control.
SSD Wear Levelling.
Wear levelling is a technique for prolonging the service life of erasable computer storage media, such as flash memory used in solid-state drives (SSDs) and USB flash drives.There are two distinct kinds wear leveling, dynamic and static. Dynamic pools erased blocks and selects the block with the lowest erase count for the next write. Static wear leveling, selects the target block with the lowest overall erase count, erases the block if necessary, writes new data to the block, and ensures that blocks of static data are moved when their block erase count is below a certain threshold. This additional step of moving data can slow write performance due to overhead on the flash controller, but static wear leveling is considerably more effective than dynamic wear leveling for extending the lifespan of solid state devices.
Note: Factors Affecting SSD Failure.
Apart from associated connectors, interface functionality is incorporated into the controller and includes:
- Serial attached SCSI
- Serial ATA
- PCI Express
- Fibre Channel – found on servers
Solid State Drives pose new challenges for Data Recovery companies. The way of storing data on SSD’s is non-linear and much more complex than that of Hard Disk Drives. The control elements of an SSD vary between manufacturers, and the TRIM command zeroes the whole range of a deleted file. Wear Levelling also means that the physical address of the data and the address exposed to the operating system are different.
File systems used on hard disk drives can also be used on solid state drives. The file system supports the TRIM command such that the SSD recycles discarded data. There is no need for the file system to take care of wear leveling or other flash memory operations as these things are handled internally by the SSD.
A TRIM command in the ATA command set, (UNMAP in the SCSI command set) allows an operating system to inform a solid-state drive (SSD) which blocks of data are no longer considered in use and can be wiped internally. The TRIM command was introduced co-incident with SSD availability.
Windows Support for SSD,s
Microsoft Windows prior to 7 do not take any special measures to support solid state drives. From Windows 7, onwards NTFS file system provides TRIM support and the OS detects the presence of an SSD and optimizes operation accordingly. For SSD devices Windows disables “SuperFetch” and “Ready Boost,” boot-time and application pre-fetching operations. Windows 7 also includes support for the TRIM command to reduce garbage collection for data which the operating system has already determined is no longer valid. It is of benefit to make config changes that prevent SSDs from being treated in the same manner as hard disk drives by cancelling de-fragmentation, not using the available capacity to more than about 75%, not storing frequently written-to files such as log and temporary files on them if a hard drive is available and enabling the TRIM process.