How can they do that without reducing the overall capacity? My understanding is that part of the MLC storage in SSDs is used as an SLC cache so that it's faster, but can store only half, one third or one fourth of the data it otherwise would.
In general, there are two separate components to the SLC cache strategy (which as you said, is writing only one bit instead of 3 for TLC, because it's much faster to do so). First you have some overprovisionned NAND, the size of which depends with models. I believe it is 6 GB on this one.
Then you have what they call "intelligent turbowrite", which is a dynamically allocated/reallocated SLC cache (about 108 GB).
For both, the concept is broadly the same, your writes go into the overprovisionned "SLC cache" first, then into the dynamic one.
When the drive is idle, it will consolidate the writes of both caches as 3 bit writes, freeing the NAND for "SLC cache" use again. This can take a few minutes of idle time.
As you fill up your disk things get more complicated, you need to keep some free space to be able to consolidate your writes, the exact way this controller works in that case is not known to me, but this is an issue with every SSD that's not full SLC. Modern controllers usually are doing much better than the old ones.
Generally SLC cache has almost no connection to the overall size of the drive. After finishing writing a huge portion of data (for example), the controller will start to move the written data out of the SLC section and turn them into normal TLC mode, releasing the SLC space for next turn of writing. When the drive usage becomes higher, some drive (apparantly Samsung's drive does) have a dynamic SLC capacity policy that will reduce the avaliable SLC space, so the disk can have enough space to store normal TLC data.
Consumer SSDs don't have a a lot of overprovisioning. For example, a 1 TB SSD will never have more than 1 TiB of flash. Server SSDs are a different story.
> a 1 TB SSD will never have more than 1 TiB of flash
It's a bit more complicated than that. None of the quantities precisely correspond to the definitions of 1TB = 1000^4 or 1TiB = 1024^4 bytes. A "1TB" drive will have a host-accessible capacity of 1,024,209,543,168 bytes.
The NAND chips on a consumer 1TB drive will collectively have a nominal capacity of 1TiB (1,099,511,627,776), but that's more of a lower bound; the actual capacities those chips add up to will be higher. If we assume defect-free flash and count the bits used for ECC in order to get an idea of how many memory cells are physically present, then we get numbers as high as 1,335,416,061,952 bytes for our 1TB drive. If we don't count the space reserved for ECC, then we're down to about 1,182,592,401,408 bytes on defect-free flash, and 1,172,551,237,632 after initial defects (taken from a random consumer TLC drive in my collection).
So that means the SSD is starting out with about 14.48% more capacity to work with than it provides to the host system—considerably more than the 9.95% discrepancy between the official definitions of 1TB and 1TiB. Of course, that 14.48% will be reduced as the drive wears out, and the low-grade flash used in thumb drives and bargain barrel SSDs from non-reputable brands will tend to have more initial defects.
How can they do that without reducing the overall capacity? My understanding is that part of the MLC storage in SSDs is used as an SLC cache so that it's faster, but can store only half, one third or one fourth of the data it otherwise would.