4 ms·
Flash is programmed by increasing the probability that electrons will tunnel onto the floating gate and erased by increasing the probability they will tunnel ba
by sevensor 11mo ago
Flash is programmed by increasing the probability that electrons will tunnel onto the floating gate and erased by increasing the probability they will tunnel back off. Those probabilities are never zero. Multiply that by time and the number of cells, and the probability you don’t end up with bit errors gets quite low.
The difference between slc and mlc is just that mlc has four different program voltages instead of two, so reading back the data you have to distinguish between charge levels that are closer together. Same basic cell design. Honestly I can’t quite believe mlc works at all, let alone qlc. I do wonder why there’s no way to operate qlc as if it were mlc, other than the manufacturer not wanting to allow it.
- Someone 11mo ago> I do wonder why there’s no way to operate qlc as if it were mlc, other than the manufacturer not wanting to allow it. You can run an error-correcting code on top of the regular blocks of memory, storing, for example (really an example; I don’t know how large the ‘blocks’ that you can erase are in flash memory), 4096 bits in every 8192 bits of memory, and recovering those 4096 bits from each block of 8192 bits that you read in the disk driver. I think that would be better than a simple “map low levels to 0, high levels to 1” scheme.
- bobmcnamara 11mo ago> I do wonder why there’s no way to operate qlc as if it were mlc, other than the manufacturer not wanting to allow it. Loads of drives do this(or SLC) internally. Though it would be handy if a physical format could change the provisioning at the kernel accessible layer.
- em500 11mo ago> Honestly I can’t quite believe mlc works at all, let alone qlc. I do wonder why there’s no way to operate qlc as if it were mlc, other than the manufacturer not wanting to allow it. Manufacturers often do sell such pMLC or pSLC (p = pseudo) cells as "high endurance" flash.
- testartr 11mo agothe market demands mostly higher capacity tlc/qlc works just fine, it's really difficult to consume the erase cycles unless you really are writing 24/7 to the disk at hundred of megabytes a second
- tcfhgj 11mo agoI have a MLC SSD with TBW/GB much higher than the specified TBW/GB guarantee of usual qlc SSDs
- 55873445216111 11mo agoAll the big 3D NAND makers have already switched from floating gate to charge trapping. Basically the same as what you describe but basically the electrons get stuck in a non-conductive region instead of on an insulated gate.
- sevensor 11mo agoCool! I’ve been out of the industry for over a decade now, so my process knowledge is a little quaint at this point.
- GCUMstlyHarmls 11mo ago> The grand artificers of the Unseen University—those who insist on calling themselves “makers” despite mostly making trouble—gave up on the old Floating Gate enchantments ages ago. Too fiddly, too explosive, and prone to drifting off when no one was looking. Now they use Charge Trapping. Same idea in principle: coax a few errant lightning-spirits into doing something useful. But instead of perching them on a precariously insulated sigil like nervous pigeons, the wizards now shove the little blighters into a quiet, rubbery pocket of reality where they can’t conduct, escape, or start a small civil war. Everyone agrees it’s much safer, except for the pocket. ~ Terry Pratchett's Disklessworld, book 8. (Re: Any sufficiently advanced technology is indistinguishable from magic)
- userbinator 11mo agoI do wonder why there’s no way to operate qlc as if it were mlc, other than the manufacturer not wanting to allow it. There is a way to turn QLC into SLC: https://news.ycombinator.com/item?id=40405578 https://news.ycombinator.com/item?id=40405578
- sevensor 11mo agoThanks! I missed this the first time around!
- tensility 11mo agoAt the physical device layer (i.e. what a nand controller vendor programs to), a nand flash device that supports ONFI 2 SLC Mode can be configured to use (some of) its blocks in SLC mode rather than MLC/TLC/QLC/etc. This allows one to divide the array into high-reliability versus high-capacity regions.