This is the KingFast F6 Pro 240 GB SSD. Despite its name, it is neither King nor Fast. I suspect the name might have been chosen for its similarity to Kingston’s brand. It is said the disk is so slow using it qualifies as inhuman punishment under the UN’s Universal Declaration of Human Rights. Yet somehow a copy of them has found their way into my hands. Today, I’d like to figure out what makes it so slow, and take you along on my journey.

## Background

Like many techie people, I get asked for my opinion on (and preferably a solution to) my family’s computer woes. In this case, my mother had bought a refurbished desktop PC, which after about one year of use had become excruciatingly slow. IO would frequently pause for multiple seconds while the disk reset. All credit to my mother here: this is a valid problem and she had correctly diagnosed it was caused by the disk being terrible. Now that we know that, we can move on to the thing itself.

Looking at the case, you might notice the giant QR code on the label. The link was dead when I started writing this article, but now points to a website displaying ads for shady apps and “connection opportunities” so I will not link it. I can’t find for certain when the disk was a released to the market, but Tweakers pricewatch suggests December 2017. That is suspiciously recent for a website to be this dead.

While erasing the disk for disposal, I found that this pattern of bad performance was pretty reproducible: I could average around 6 MB/s write1 speed, but this was because it alternated between 30 MB/s bursts and multiple seconds of nothing. This behaviour seemed familiar to me: it is roughly the performance I get from the SD cards my Raspberry Pi eats. That made me wonder whether it was an SSD at all, and not just a collection of SD cards. Time to find out.

## Software robustness

Most disks will support S.M.A.R.T., a technology where disks can self-assess their health and track certain potentially harmful or ominous events happening over their lifetime. Think of the number of bad sectors, but also simply the number of hours the device has been powered on. To see whether this disk was actually just very dead somehow, I looked up the S.M.A.R.T. data. This started out okay:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
=== START OF INFORMATION SECTION ===
Device Model:     KingFast
Serial Number:    REDACTED
Firmware Version: R0831B0
User Capacity:    240,057,409,536 bytes [240 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Form Factor:      2.5 inches
TRIM Command:     Available, deterministic, zeroed
Device is:        Not in smartctl database 7.3/5319
ATA Version is:   ACS-2 T13/2015-D revision 3
SATA Version is:  SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Thu Nov 10 22:05:38 2022 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled


But somehow accessing the health metrics does not quite work

1
2
Error -4 occurred at disk power-on lifetime: 0 hours (0 days + 0 hours)
When the command that caused the error occurred, the device was active or idle.


The “error -4” in this message is not an unusual error code, it should be an index into the error log. However, the error log is a beautiful sea of nothingness. Alright, so the error reporting doesn’t work, and the metrics are probably rubbish. I had one more trick: S.M.A.R.T. self-tests. Sufficiently broken drives will generally report something of use there.

1
2
3
4
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed without error       00%      1639         -
# 2  Short offline       Completed without error       00%      1639         -


Yet again, all clean. So let’s cast aside the software analysis and try to understand what makes it tick on the inside.

## Taking it apart

After asking the disk nicely why it was so slow failed, we might as well get it open. The case had a kind of warranty seal on it, but it was already broken. It did prevent me from opening the case regardless. This is a great deal for the manufacturer, as the warranty is void before I even begin.2

After breaking the seal with a little more conviction, we can now open the case. There are no screws or anything; you simply slide a screwdriver in between one of the gaps on the corners and pry the case open.

Finally, with the case open we can start to identify the components and see what we can learn.

I have highlighted the different components in the picture. The first bit to talk about is the SSD controller.

### SSD controller

An SSD controller or flash memory controller exists because flash is actually a fickle technology that needs some help to actually be functional. Naively implemented SSDs would have a very short life cycle since any individual bit can only have a limited number of writes. The controller fixes this with various techniques that are out of scope for this article. The thing to note is that they are important and that they need to be good.

The controller included in the KingFast F6 Pro is a SiliconMotion SM2258XT, which as far as I can tell is a pretty normal chip. I even found its fact sheet which is actually interesting, though it also contains a stock photo featuring a woman more commonly known as the jealous girlfriend in the distracted boyfriend meme.3 This is not technically relevant, I just thought it was funny.

One other interesting thing to note is that if you look up this chip, most of the image results are from other people who’ve taken apart their KingFast F6.

### Flash memory

So if the SSD controller is, generally speaking, an okay component, the actual storage might be iffy. For that we are looking at the flash memory. These hold the reprogrammable NAND gates that store the data.

Here I am less sure on exactly what components we have. The best lead I’ve got is the product number 29F32B2ALCMG2, which is probably made by Intel, though I cannot find a definitive source on that. There are a lot of complaints about it (sometimes in relation with KingFast) on Chinese internet forums and some tweets from Chinese Twitter users are not that positive either.4 I will refrain from linking them, but searching for the model should bring it all up.

That was of course before a friend recommended I ask the Electrical Engineering Stackexchange, where someone provided a plausible description of the chip within minutes. This suggests that the chips hold 32 GiB of data. With the five visible chips, that would space for 160 GiB of data. That begs the question of how this drive stores 240 GiB.

Normally, SSDs have a small bit of extra capacity, called over-provisioning, which should deal with particular data blocks being worn out and needing to be replaced. For example, the Western Digital NVMe SSD that powers my laptop has a true capacity of 512 GiB but only provides 476.9 GiB for actual use, meaning it has an over-provisioning of $\frac{512 - 476.9}{476.9} \approx 7.4\%$. This is somewhat consistent with this paper from Samsung which states they use $6.7\%$ over-provisioning, and highlight the effects of leaving even more space.

Compare this to our patient. It advertises 240057409536 bytes. Curiously, this is neither a round number in binary gigabytes (1 GiB is $2^{30}$ bytes) nor SI gigabytes (1 GB = $10^9$ bytes). SSDs are generally measured in the former, while spinning platters are measured in the latter because they sound bigger that way. Instead, the drive claims to be $29303883 \cdot 2^{13}$ bytes, which you can factor into $2^{13} \cdot 3^3 \cdot 7 \cdot 155047$ if you really want to.

Weird sizing aside, the KingFast F6 Pro also advertises itself as having that exact same number of bytes. That gives us a whopping $0\%$ of over-provisioning. However, assuming what we know from the components on the board is correct, the drive doesn’t even have that number of bytes. Instead, we are left with $\frac{5 \cdot 2^{35} - 240057409536}{240057409536} \approx -28\%$ over-provisioning. In other words, it wouldn’t be over-provisioned, it would be under-provisioned by roughly $\frac{2}{7}$ of its capacity!

## In conclusion

There is no real conclusion, at least not yet. Without the official data sheet for the flash memory, we cannot be sure that the drive indeed is missing ±63 GiB of storage. The drives might be 64 GiB a piece, which would be plenty. It would be odd to have so much extra space, but it’s possible.

Even if my suspicions about the missing capacity turn out to be correct, it would still be interesting to know what kind of black magic the SSD controller is doing to pretend there’s more storage than there actually is. It could be compression, it could silently drop data5 or it could do something more complicated. My mother somehow hasn’t lost data that we noticed, but that might just be luck combined with a helping of mostly cloud-based document storage.

With my (lack of) tools and expertise, this is as far as I can dig into the problem for now. Please do get in touch if you can help me fill in some of the remaining blanks. I can say one thing for certain, though: this is a terrible SSD and you should buy a different one. That’s what I did, and my mother has been happy ever since.

## Disclaimer

I’m not really a hardware expert, so consider all of the above with a sufficiently large scoop of salt. All measurements on the disk are done as described, with all potential problems in methodology present. Provisioning calculations were made with potentially incorrect data, though the result wouldn’t make sense if the chips were twice as big either, so the data is funky regardless. Also the thing about human rights is obviously a joke.

1. This is not a typo; while expected throughput for a SATA SSD should be around 50MB/s, I was only doing about ⅛th of that. ↩︎

2. In the hypothetical scenario where I thought claiming warranty would be both an option and a good idea. ↩︎

3. Of course this image has a wiki article. ↩︎

4. This all despite the fact that Twitter is apparently blocked in China. Did you know there are apparently 10 million Chinese twitter users? ↩︎

5. This is actually somewhat common unfortunately. The drive will simply pretend to write data except when you use more than the real capacity your data will simply vanish. ↩︎