4 ms·
You can only write once to every block, then you have to erase it completely before reusing. This causes so-called write amplification, in the extreme meaning t
by Maakuth 10y ago
You can only write once to every block, then you have to erase it completely before reusing. This causes so-called write amplification, in the extreme meaning that changing one bit requires erasure and rewrite for the whole 4K block. See here for deeper explanation: https://www.extremetech.com/extreme/210492-extremetech-explains-how-do-ssds-work https://www.extremetech.com/extreme/210492-extremetech-expla...
edit: Typically the SSD has a pool of empty blocks, so in actuality, rewrite is done to one of these blocks and the previously used block is erased and returned to the pool.
- amelius 10y agoThanks! > Typically the SSD has a pool of empty blocks So erase time (the main advantage of this new FeFET technology) does not matter much in practice?
- Maakuth 10y agoMy guess is that it should help with performance on full SSD drives and when there's a lot of small writes that burn through the pooled erased blocks.
- pjc50 10y agoI think it does; while theoretically the storage driver should maintain adequate empty blocks, often they don't - see reports of "SSD performance degradation".
- mrob 10y agoFeFETs are planned for embedded non-volatile memory, eg. the memory for code storage build into microcontrollers, not SSDs. In current devices this is typically NOR flash, and the code executes directly from it. There's no pool of empty blocks, but the cells are single level so endurance is still acceptable.
- jasonwatkinspdx 10y agoThe FTL (a sort of mini log structured file system that runs inside your SSD), works very hard to try to smooth over flash's erase block requirements. That said, it's far from a panacea, and many applications would be much simpler if they could just do real random writes to the physical medium. Take a look at https://www.usenix.org/system/files/conference/inflow14/inflow14-yang.pdf https://www.usenix.org/system/files/conference/inflow14/infl... for a nice summary of what issues pop up even for applications that make all their writes sequential.
- dr_zoidberg 10y agoThere's another micro-optimization in play here: tipically, writing here is understood as the process of turning a 1 to a 0 (flash cells actually reset to a "1" value), and that transition is called "programming". If a write can be accomplished solely by programming, then it can be done in place, without having to reset the block or find an empty (filled with 1s) block to program the write to it.