In our previous article Why SSDs Die a Sudden Death (and How to Deal with It) we talked about SSD endurance and how it’s not the only thing affecting real life reliability. In that article, we assumed that manufacturers’ specifications of certain SSD models remain similar for a given SSD model. In fact, this is not the case. Quite a few manufacturers play tricks with consumers, releasing a certain SSD model with top notch specifications only to downgrade them at some point during the production cycle (but certainly after receiving its share of glowing reviews). While some OEMs do note the change at least in the revision number, the rest will just quote the small print allowing them to “change specifications at any time without prior notice”. We’ve seen well known SSD manufacturers switching from reliable MLC NAND to planar TLC trash within the same model (and zero notice to potential buyers). How can you tell which NAND configuration your particular SSD drive employs and whether or not it lives up to your expectations? Read along to find out.
For starters, you’ll need to know who made the controller in your SSD. Common manufacturers of SSD controllers found in many SSD drives are Marwell, Phison, Sandforce and Silicon Motion. You can look up the model’s controller manufacturer by checking out the reviews for your SSD. In order to determine the exact model of the controller as well as NAND flash configuration you’ll need a set of command-line tools: Phison Flash ID, Silicon Motion Flash ID, and SandForce Flash ID. You will only need the one utility corresponding to your controller manufacturer. Note: Marwell controllers are not supported by these utilities.
Download and save the tool you’re going to use on some disk you’re not going to check (e.g. use a folder on your C: drive). The tool officially supports disks that don’t have any partitions on them, or at least don’t have a drive letter. We found that, at least on some systems, the tool can work without such restrictions. If you’re analyzing a SATA drive, use “flash_idata.exe”. For USB drives, use the USB version. NVME SSDs are not supported.
Note: you must launch the tool with administrative privileges (Run as administrator).
So let’s check our first SSD: a 480GB Crucial BX300 drive. There have been mixed reports about this model. Early revisions were manufactured using 3D-MLC NAND, while later revisions were made using 3D-TLC chips (these drives can be identified by their firmware version, which is different from firmware used on the MLC-based revision).
smi_flash_id_ata.exe SMI 224x/225x SSD Flash ID ATA reader v0.51a by Ochkin Vadim OS: 10.0 build 17763 Use: smi_flash_id disk_num[u] - u - model check override 0: (CT2000MX500SSD1 1: (CT2000MX500SSD1 2: (CT500MX500SSD1 3: (Crucial_CT500MX200SSD1 4: (CT480BX300SSD1 Please select drive number:4 Drive: 4(ATA) Identify - ok! Smart - ok! Model: CT480BX300SSD1 Fw : M2CR010 Size : 457862 MB From smart : [SM2258] [M2CR010 ] Controller : SM2258AB Bank00: 0x2c,0xa4,0x64,0x32,0xaa,0x4,0x0,0x0 - Micron MLC 256Gb/CE 256Gb/die Bank01: 0x2c,0xa4,0x64,0x32,0xaa,0x4,0x0,0x0 - Micron MLC 256Gb/CE 256Gb/die Bank02: 0x2c,0xa4,0x64,0x32,0xaa,0x4,0x0,0x0 - Micron MLC 256Gb/CE 256Gb/die Bank03: 0x2c,0xa4,0x64,0x32,0xaa,0x4,0x0,0x0 - Micron MLC 256Gb/CE 256Gb/die Bank04: 0x2c,0xa4,0x64,0x32,0xaa,0x4,0x0,0x0 - Micron MLC 256Gb/CE 256Gb/die Bank05: 0x2c,0xa4,0x64,0x32,0xaa,0x4,0x0,0x0 - Micron MLC 256Gb/CE 256Gb/die Bank06: 0x2c,0xa4,0x64,0x32,0xaa,0x4,0x0,0x0 - Micron MLC 256Gb/CE 256Gb/die Bank07: 0x2c,0xa4,0x64,0x32,0xaa,0x4,0x0,0x0 - Micron MLC 256Gb/CE 256Gb/die Bank16: 0x2c,0xa4,0x64,0x32,0xaa,0x4,0x0,0x0 - Micron MLC 256Gb/CE 256Gb/die Bank17: 0x2c,0xa4,0x64,0x32,0xaa,0x4,0x0,0x0 - Micron MLC 256Gb/CE 256Gb/die Bank18: 0x2c,0xa4,0x64,0x32,0xaa,0x4,0x0,0x0 - Micron MLC 256Gb/CE 256Gb/die Bank19: 0x2c,0xa4,0x64,0x32,0xaa,0x4,0x0,0x0 - Micron MLC 256Gb/CE 256Gb/die Bank20: 0x2c,0xa4,0x64,0x32,0xaa,0x4,0x0,0x0 - Micron MLC 256Gb/CE 256Gb/die Bank21: 0x2c,0xa4,0x64,0x32,0xaa,0x4,0x0,0x0 - Micron MLC 256Gb/CE 256Gb/die Bank22: 0x2c,0xa4,0x64,0x32,0xaa,0x4,0x0,0x0 - Micron MLC 256Gb/CE 256Gb/die Bank23: 0x2c,0xa4,0x64,0x32,0xaa,0x4,0x0,0x0 - Micron MLC 256Gb/CE 256Gb/die
What can we tell about this SSD?
The larger overprovisioned area and the fact that Crucial installed the more expensive MLC NAND into a budget series drive makes us believe that BX300 were manufactured using 3D-TLC NAND chips that failed Micron’s internal quality control for TLC specifications. Since MLC has less strict tolerances compared to TLC, reusing these chips to build an MLC model (and increasing overprovisioned area just in case) seems like a win-win for both Micron and consumers. Do note, however, that Crucial advertises abysmal endurance rating for the BX300. Tom’s Hardware reviewer was surprised to see that, suggesting that “Crucial could be sacrificing endurance for performance, or the company could just be saving money on warranty claims down the line.” Our suggestion is different; we believe that Crucial simply used sub-standard TLC chips in MLC configuration here.
What if the tool does not work? In this case, you’ll see the following output:
Identify - ok! Smart - ok! Model: CT2000MX500SSD1 Fw : M3CR022 Size : 1907729 MB From smart : [SM2258B16AR] [M3CR022 ] Controller : SM2258AB IOCtl: failed 0x5! Possible disk has partition within first 64MB.
If this is the case, you can try removing the drive letter via dismgmt.msc. If that does not help, you’d have to delete the first partition on the drive (which is hardly worth it in our view). This is what the data for a Crucial MX500 2000GB looks like:
Model: CT2000MX500SSD1 Fw : M3CR022 Size : 1907729 MB From smart : [SM2258B16AR] [M3CR022 ] Controller : SM2258AB Bank00: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank01: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank02: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank03: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank04: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank05: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank06: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank07: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank08: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank09: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank10: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank11: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank12: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank13: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank14: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank15: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank16: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank17: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank18: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank19: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank20: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank21: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank22: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank23: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank24: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank25: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank26: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank27: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank28: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank29: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank30: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die Bank31: 0x2c,0xc4,0x89,0x32,0xa1,0x0,0x0,0x0 - Micron TLC 512Gb/CE 256Gb/die
Conclusion
You can now verify manufacturers’ claims about the SSD NAND configuration, determine the model of your SSD controller and its NAND configuration.