3 ms·
Your current SSD already has a beefy computer with lots of ram to handle the flash translation layer. Raw flash has very onerous constraints on how it can be w
by Tuna-Fish 7y ago
Your current SSD already has a beefy computer with lots of ram to handle the flash translation layer.
Raw flash has very onerous constraints on how it can be written: (numbers are from recent QLC chips)
The smallest unit that can be accessed is the individual page (64kB). Those pages belong to blocks (18MB). Each page can be either dirty or clean. You can read any page, but you can only write to clean pages (turning them dirty). To turn dirty pages back to clean, you have to erase them, and you can only erase the entire block containing the page at once. Also, each block can only be erased a certain amount of times (500) until it can no longer be written to.
As you can see, the API this provides is just awful, especially considering what kind of operations (random read/write of 4kB) operating systems offer to programs. So, in order to provide an api operating systems can actually use, there is a massive garbage-collected translation layer on top of the raw flash that makes it usable.
The idea of key-value SSDs is that given that the block layer api is entirely artificial, it might not be the best choice to present to the OS.