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 divided into blocks, which is further divided in 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. Only then can 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 advantage of the TRIM command is that it 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 need to immediately delete or garbage collect these locations it just marks them as no longer valid.
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.
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.
Typically the same file systems used on hard disk drives can also be used on solid state disks. It is usually expected for the file system to support the TRIM command which helps the SSD to recycle discarded data. There is no need for the file system to take care of wear levelling or other flash memory characteristics, as they 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
Versions of Microsoft Windows prior to 7 do not take any special measures to support solid state drives. Starting from Windows 7, the standard NTFS file system provides TRIM support. Windows 7 and later versions have native support for SSDs. The operating system 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. Without support for TRIM, the SSD would be unaware of this data being invalid and would unnecessarily continue to rewrite it during garbage collection causing further wear on the SSD. It is beneficial to make some changes that prevent SSDs from being treated more like HDDs, for example cancelling de-fragmentation, not filling them to more than about 75% of capacity, 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.