In their continuing efforts to get a handle on the read performance degradation issue that some owners/users of 840EVO SSDs have experienced, Samsung has now released their newest firmware version (EXT0DB6Q), as well as the latest Magician 4.6 software (links are provided at the end of this article). The problem would manifest itself to users when they would notice that older blocks of data would take an abnormally longer amount of time to be read – sometimes as low as 30MB/s as opposed to read performance expected to be in the 500MB/s range.
To summarize identification of the issue, as well as previous attempts to fix it that we covered here, here, and here, the nature of the problem was found to be “voltage drift” that is inherent in using TLC NAND. All NAND is subject to “voltage drift” to some degree, and we will take a quick look at the difference in each type of NAND and why some NAND is more susceptible to the problem than others. SLC NAND stores only one bit per cell, which is by far the easiest to read, and is also the most reliable and least susceptible to the voltage drift issue – there is little or no complexity in reading a single bit.
Image courtesy of techspot.com
With MLC NAND, we see two bits per cell, but it also makes it a little more difficult for these bits to be read. The advantage to using MLC is cost-related: two times the storage space from the same NAND capacity. By moving to TLC NAND, we now see the cost benefit of another 50% increase in storage capacity as compared to MLC NAND, yet the complexity of reading those bits is even further increased.
Image courtesy of anandtech.com
The problem was difficult to detect and identify for a couple of reasons. First, data would have to be around eight weeks old (or older) in order for the read slowdown symptom to appear. Secondly, it was nearly impossible to detect with standard benchmarking software, which works by writing and then re-reading fresh data. You have to love it when the SSD user community gets involved to help identify an issue – PCPer.com’s forum user Techie007 created “SSD Read Speed Tester”, which was able to read already-in-place files and demonstrate the read speed difference between these and fresher data; as well as additional analysis, experimentation and tools from PCPer.com forum user BrainSplatter.
Image courtesy of techspot.com
Once Samsung accepted that there was a definite issue, they did get right to work on developing a fix. Several weeks later (10/15/14), Samsung released a firmware update along with a “performance restoration tool”. The firmware update covered both 2.5” (EXT0CB6Q) and mSATA (EXT42B6Q) 840EVO models, and was actually a two-step process. The first part was the firmware update, which modified the algorithm used to compensate for the voltage drift issue. The second step was the “performance restoration tool”, which basically rewrote all the data on the disk to eliminate the old data altogether. Many users first reaction to this step, which turned out to be entirely true, was that this would merely eliminate the problem on a one-time basis, and after another approximately eight week period, the problem did begin to resurface.
Image courtesy of pcper.com
Again, Samsung accepted that there was still a problem, and set out to come up with a more permanent fix. This time, Samsung realized that the problem of stale data could be eliminated by having the drive continuously rewrite old data in the background. This was along with another adjustment of the algorithm that compensates for the voltage drift problem. Some have commented that this would compromise the lifespan of the drive with the continuous rewrites, but bear in mind that most NAND has a longer lifespan that what OEMs actually rate it for, and the excess writes would only be a very small percentage of the available total writes, and most certainly will get the 840EVOs past their three-year warranty. As of date of publication of this article, the latest fix is only for the 840EVO 2.5” variant, and a version for the mSATA models is expected in the future.