SSD performance is dependent on many hardware and software aspects of both the drive and the host system. For any SSD to offer its full performance, it is required for its many parts to work properly. NAND Flash memory is one of the main components that degrades over time. Its performance also decreases with age.
There could be two broad reasons for degrading SSD performance over time.
The first is that your SSD has filled up with data. Generally, after 70 to 80% of storage is consumed, the SSDs start to become slow. We will come to the reasons later on.
The second reason is that your SSD’s flash memory cells have been worn out.
However, there could be many other reasons such as firmware issues, malware, etc. Fortunately, most of them can be fixed using these methods. I would suggest reading this article before going further so that you get an idea of how SSDs actually work.
Performance Degradation due to low storage space
SSDs store data inside the NAND flash cells and there could be billions of them inside a 1TB drive. Before the data is written to these cells, the controller must find the available space and erase the cells for fresh incoming data. When there is a lot of free space, the controller can just pick any of the available blocks and erase them pretty quickly.
However, when the remaining storage space is low on your drive, this process of finding the available space and their preparation takes a little longer.
You can imagine a conference hall to understand this. If the hall is empty, it will be very easy to arrange empty seats for the incoming guests. As the chairs in the hall start to fill up, finding empty chairs will become tougher and tougher. The same goes for the controller that arranges the storage location and the incoming bits of data from the host.
Another important thing is that SSDs do not store bits in blocks next to each other in a serial manner. The wear leveling algorithms make sure that the damage done to cells while storing the data is spread evenly across the NAND Flash chips. With wear leveling, the controller is always trying to choose the less-utilized blocks, pages, and cells to make sure that no specific ones are getting all the damage while others are sitting idle. So, as the space starts to fill up, as a result, the wear leveling algorithms get slower and slower.
The solution to this is to use another storage drive to divide the storage space and keep your primary SSD almost 50% free.
Performance degradation due to aging
Yes, SSDs age. The cells that undergo charging and discharging start to degrade over time. There are limited program/erase cycles that the memory manufacturers decide for any SSD. After any cell surpasses the number of these P/E cycles, it loses its reliability to hold the charge.
The floating gate of a cell (where the charge is kept) is protected by an insulating material (typically silicon dioxide). The process of inserting the charge inside the floating gate is called Fowler-Nordheim tunneling which damages this insulation material every time the charge bypasses it and reaches inside the floating gate. This insulating layer is generally 5 to 10 nm wide. As this insulation layer degrades over time, the cell’s capacity to hold the charge reduces.
Now, when the controller detects that a cell is losing the charge, it re-arranges the whole page or blocks it to a fresh location. This increases the write tasks even more.
Aging and the way SSDs store the data
When the data write request comes from the host, the controller writes this data on a page which is generally of 4KB size. NAND flash memory cells can be written on the page level while erased on a block level. So, before the controller writes a page, it finds a block and checks if there is any valid data on it. If there is valid data, it moves it to a new block and erases the prepared one. This process is called garbage collection. All the cells in the chosen block are erased and set to logic 1.
Now, the controller writes the data by changing the 1s to 0s according to the incoming data. The 1s are kept 1 when they do not need to change.
So, those additional steps for arranging the blocks and pages for storing the incoming data get done quicker if the cells are in healthy condition. If the controller finds any cell that is losing the charge, it has to re-write it first at a new location.
The SSDs without the TRIM can perform worse after some years of usage because the operating system can’t tell the SSD which blocks of data aren’t usable. This reduced the efficiency of garbage collection. The waste data keeps accumulating until it isn’t erased while doing a new write operation.
Increased Read Latency over time
Not only the write performance but the read performance is also impacted a lot as the SSDs age. For reading the data, the controller must get appropriate voltage levels to interpret the outputs. If the cells have started to lose charge, the controller might have to do more read operations or apply higher voltage for accurate interpretation.
Conclusion
The main reason why solid state drive’s performance degrades over time is the wear to the NAND Flash cells. This makes running the SSDs manage the existing and incoming data organized. When this aging is combined with an SSD that is more than 80% full, the symptoms can get worsen. So, the solution is to first identify the issue and then either buy a new drive or free-up some space from it.