Solid State Drives (SSDs) are called like this because they do not rely on moving parts or spinning disks, like hard drives do, which increases latency (reaction delay). Instead, the data is stored in the NAND flash memory base. The NAND consists of what is called the transistor floating gate. Unlike the design of the transistors used in DRAM, which has to be refreshed several times per second, the NAND flash is designed to keep the charge state even when it is not turned on. Therefore, NAND memory is non-volatile.
The NAND memory is organized in the grid. The entire grid layout is called a block, and the individual rows that make up the grid are called pages. The usual page sizes are 2K, 4K, 8K or 16K, with 128 to 256 pages per block. The size of the block therefore usually varies between 256KB and 4MB. One advantage of this system should be immediately visible. Since SSDs have no moving parts, they can work at speeds far above of those typical for HDDs.
NAND is not nearly as fast as the main memory, but it is faster than the hard disk. While latency for NAND writing is considerably slower than reading latency, they are still outpacing traditional storage media. Adding more bits per NAND cell has a significant impact on memory performance. The more bits, the slower the work and the greater latency. Reading a valid cell value requires that the memory controller uses a very accurate voltage to determine if the cell is charged or not.
Reads, writes and deletes
One of the functional constraints of SSDs is that, while they can read and write data very quickly to a blank drive, deleting data is much slower. This is because, while SSDs read page-level data (meaning from individual rows within a block), they can write pages, assuming that the surrounding cells are empty, but data can only be deleted at the block level. This is because erasing requires a high amount of voltage. While you can, theoretically, delete NAND at the page level, the amount of voltage needed emphasizes individual cells around the rewriting cells, and blocking data at the block level makes it easier.
The only way SSD updates the existing page is to copy the entire block's contents to the memory, clear the block, and re-write the contents of the old block, and the updated page. If NAND is full, and there are no blank pages, the SSD must first search for the blocks that are marked for deletion, but have not been deleted, delete them, and then enter the data on the currently deleted page. That is why SSDs can become slower as they get older; mostly empty memory is full of blocks that can be written immediately, and mostly full memory is likely to be forced every time through the "write-clear" process. If you have used SSDs, you've probably heard of something called "garbage collection". This is a background process that allows memory to mitigate the effect of the "write-clear" cycle, performing certain tasks in the background.
The TRIM command allows the OS to tell SSD that it can skip the overwriting of certain data next time it blocks deleting. This reduces the total amount of data SSD writes, and increases its longevity. Both procedures damage NAND memory, but writing causes much more damage than reading. Fortunately, block-level longevity did not prove to be a problem in modern NAND.
The last two things that need to be explained are wear leveling and write amplification. Since SSDs writes data on a page, but delete data in blocks, the amount of data being written is always greater than the actual update. Let's say, if you make a change to a 4KB file, the whole block inside the 4K file must be updated and overwritten. Depending on the number of pages per block and page size, the process may end up writing 4 MB of data to update the 4-KB file. Garbage collection reduces the impact of write amplification as well as the TRIM command.
The wear leveling refers to the practice of ensuring that certain NAND blocks do not write and erase more frequently than others. This increases the expected lifespan of memory and endurance, but can really boost writing. For even writing on a disc, sometimes you need to program and delete blocks even though their contents have not actually changed. A good algorithm for wear leveling strives to balance these impacts.
Now, it should be obvious that SSDs require much more sophisticated control mechanisms than hard drives. The mechanical challenges involved in balancing multiple reading and writing heads above the disks moving at a speed of 5400 to 10.000 rpm are not something we should sneeze at.
SSD controllers are nevertheless a class for themselves. They often have a DDR3 memory pool that helps manage NAND. Also, they contain cache in a single cell acting as buffers, increasing performance by dedicating NAND to the "write-erase" cycle. Since the NAND flash in the SSD is usually connected to the controller through a number of parallel memory channels, you can imagine the controller doing the same workload balancing as well as the high-end storage array.
Some SSDs also use data compression algorithms to reduce total writing and improve drive life. The SSD controller handles error corrections, and algorithms that control individual errors have become more complex as time passes. Much of NAND's performance is determined by the controller, and the companies are not ready to show the way they do it, so they will not give it away to the competition.
The future of SSD
The NAND flash offers tremendous progress compared to hard disks, but it is not without its own shortcomings and challenges. Drive capacity is expected to increase, and the price per gigabyte to fall, but there is little chance SSDs will get hard drives in the price per gigabyte. Shrinking process nodes is a significant challenge for NAND flash. While most hardware improves as nodes are shrinked, NAND becomes more sensitive.
So far, SSD manufacturers have been delivering better performance by offering faster data standards, greater bandwidth, and multiple channels per controller, using the SLC container mentioned earlier. However, long-term assumption is that NAND will be replaced by something else. Probably this will be magnetic memory and phase change memory, although both technologies are still in the early stages of development and must overcome significant challenges in order to replace NAND.
If you upgrade your NAND to SSD and then switch to a faster SSD, you probably know that the difference between the hard drive and the SSD is considerably higher than the SSD-SSD gap, even when it is upgraded from a relatively modest drive. Depending on how the technology ladder grows and a 3D NAND flash continues to expand its cell layers (64-layer NAND will soon be released by some manufacturers), with plans for 96 and even 128 layers.