Tuesday, April 30th 2024
Enthusiast Transforms QLC SSD Into SLC With Drastic Endurance and Performance Increase
A few months ago, we covered proof of overclocking an off-the-shelf 2.5-inch SATA III NAND Flash SSD thanks to Gabriel Ferraz, Computer Engineer and TechPowerUp's SSD database maintainer. Now, he is back with another equally interesting project of modifying a Quad-Level Cell (QLC) SATA III SSD into a Single-Level Cell (SLC) SATA III SSD. Using the Crucial BX500 512 GB SSD, he aimed at transforming the QLC drive into a more endurant and higher-performance SLC. Silicon Motion SM2259XT2 powers the drive of choice with a single-core ARC 32-bit CPU clocked at 550 MHz and two channels running at 800 MT/s (400 MHz) without a DRAM cache. This particular SSD uses four NAND Flash dies from Micron with NY240 part numbers. Two dies are controlled per channel. These NAND Flash dies were designed to operate at 1,600 MT/s (800 MHz) but are limited to only 525 MT/s in this drive in the real world.
The average endurance of these dies is 1,500 P/E cycles in NANDs FortisFlash and about 900 P/E cycles in Mediagrade. Transforming the same drive in the pSLC is bumping those numbers to 100,000 and 60,000, respectively. However, getting that to work is the tricky part. To achieve this, you have to download MPtools for the Silicon Motion SM2259XT2 controller from the USBdev.ru website and find the correct die used in the SSD. Then, the software is modified carefully, and a case-sensitive configuration file is modified to allow for SLC mode, which forces the die to run as a SLC NAND Flash die. Finally, firmware folder must be reached and files need to be moved arround in a way seen in the video.As the drive powers on, capacity decreases from 512 GB to 114-120 GB. However, the SSD endurance jumps to 4000 TBW (write cycles), which is about a 3000% increase. Additionally, performance increased as well, which you can check out below, and in the original video for more details.Check out the video for more details.
The average endurance of these dies is 1,500 P/E cycles in NANDs FortisFlash and about 900 P/E cycles in Mediagrade. Transforming the same drive in the pSLC is bumping those numbers to 100,000 and 60,000, respectively. However, getting that to work is the tricky part. To achieve this, you have to download MPtools for the Silicon Motion SM2259XT2 controller from the USBdev.ru website and find the correct die used in the SSD. Then, the software is modified carefully, and a case-sensitive configuration file is modified to allow for SLC mode, which forces the die to run as a SLC NAND Flash die. Finally, firmware folder must be reached and files need to be moved arround in a way seen in the video.As the drive powers on, capacity decreases from 512 GB to 114-120 GB. However, the SSD endurance jumps to 4000 TBW (write cycles), which is about a 3000% increase. Additionally, performance increased as well, which you can check out below, and in the original video for more details.Check out the video for more details.
93 Comments on Enthusiast Transforms QLC SSD Into SLC With Drastic Endurance and Performance Increase
QLC holds 4 bits per cell, SLC holds 1 bit per cell. 2^4/2^1=8.
The newsworthy bit is the way of actually doing this by an enthusiast end-user. SLC mode is an intended and specced thing. SSDs commonly have an SLC cache that works by (usually) dynamically allowing part of drive's Flash dies to work as SLC.
One quarter bits per cell, while the number of cells remains the same, amounts to one quarter bits in total.
I have other cool upcoming projects, such as disabling a DRAM Cache to show the real world impact in performance.
And one about over-provisioning showing how much it can affect performance.
Which would still be fine if those numbers were believable and reliable, and the SSD switched to read-only mode when it's worn out. But all to often it just dies without warning.
Now, I'm imagining 4+ cheapie QLC SATA drives in pSLC mode, ran in RAID0. :D
If this is applicable to NVME as well, suddenly Optane isn't looking as 'needed' for a fast and enduring boot(/cache) drive. I'd probably be up for swapping out my 118GB P1600X for a Gen4 DRAM'd 1-2TB QLC drive in pSLC mode.
I'd imagine controller used, channels in-use, and even NAND modules, would influence performance, heavily.
Note: It's common for larger advertised-capacity SSDs to have more DRAM cache than their same-model smaller capacities.
1TB(pSLC)/4TB(QLC) might have double the DRAM on-drive vs. a 1 or 2 TB variant. If TPUs database (or another db) starts including pSLC mode stats/specs, it would force the SSD manufacturers to address this. Ideally, in a fully configurable SSD: Set our own pSLC cache size, caching policies, custom overprovisioning, etc.
However, (today) don't be surprised if they lock down the firmware harder, instead of offering 256GB/1TB, 512GB/2TB, etc. drives. To my knowledge, a lot of drives across brands are differentiated entirely by those 'little tweaks'.
Allowing end-users full-configurability would 'eat into' those drives market(s).
Generally it's better to use UPS and sleep (S3 etc) as it's much faster than writing a big file to the drive every time you put you computer to standby mode.
As for page file - well unfortunately that's a necessary evil even today. There's no real reason for it to exist but unfortunately some software still expects it and either crashes or behaves weirdly if it's disabled.
Also, anyone buying QLC for a system drive is more likely to be RAM-starved as budget constraints will affect both SSD and RAM.
Regardless, thanks for the time and effor put into the research, engineering and recording. It's really interesting.