据我了解,是擦除使 SSD 磨损,而不是写入本身。因此,从驱动器制造商的角度来看,优化消除对擦除的需求将是非常有益的。我可以认为他们这样做是理所当然的吗?
我希望您假设我正在直接写入磁盘并且没有文件系统可以搞砸。
据我了解,是擦除使 SSD 磨损,而不是写入本身。因此,从驱动器制造商的角度来看,优化消除对擦除的需求将是非常有益的。我可以认为他们这样做是理所当然的吗?
我希望您假设我正在直接写入磁盘并且没有文件系统可以搞砸。
如果一个块中有空页并且 SSD 想要写入这些页,它不会先擦除该块。如果 SSD 找不到任何要写入的空页面,SSD 只会在写入之前擦除一个块,因为执行完整的读取 - 擦除 - 写入非常慢。
此外,写入和擦除的磨损大致相同。两者都涉及将电子拉过氧化物层,只是在不同的方向。
此外,NAND 的擦除状态全为 1。然后您将 1 写入 0。您需要擦除 0 以使其恢复为 1。
除非我读错了您的问题,否则我认为您误解了 SSD 的工作原理。
SSD 由大块(通常为 512k)组成,比我们在文件系统中习惯的(通常为 4k)大得多。
除非该块已经是空的,否则在将任何内容写入块之前,擦除过程是必要的。
因此,擦除磨损磁盘的问题是,如果使用了 512k 块中的 4k,则必须擦除整个 512k 块并写入原始 4k +您添加的任何其他内容。这会造成过度磨损并减慢速度,因为您需要“读取-擦除-写入”(称为“写入放大”)而不是一次“写入”。
这稍微简化了它,因为驱动器固件做了很多聪明的事情来尝试确保块被最佳填充,例如它试图保留大量空块以避免写入缓慢。
希望这有助于/没有进一步混淆事情!
在 SSD 使用 read-erase-write 的情况下,它首先读取块的内容,然后擦除它并写入新值。所以它在写入之前擦除了整个块,但它已经保存了下一次写入操作的内容。在一些非读写的SSD中,当你在写入时,它会在新的页面上写入(可能在同一个块上,然后上一页无效)。在这种情况下,只有在确保块中的每个页面都无效或已被复制到另一个地方后,它才会擦除该块。