为什么NA​​ND闪存单元只有空的时候才能直接写入?

nev*_*ter 4 memory solid-state-drive

我试图理解为什么在写入 SSD 之前必须先擦除单元,以及它们如何随着时间的推移而变慢。

小智 5

以下是写入 NAND 和擦除的工作原理:

当擦除一个块时,所有位都设置为 1。要将位从 1 更改为 0,需要对位进行编程(写入)。编程无法将位从 0 更改为 1。

假设您必须存储值 11001100。首先,需要擦除该块以表示全 1 (11111111)。然后,对特定位进行编程(11001100)。现在,同一内存位置无法编程为 11111100,因为编程无法将 0 更改为 1。

这就是 NAND 找到全为 1 的空闲/空页,然后将特定位从 1 更改为 0 的原因。写入可以将 1 更改为 0、0 更改为 1 的传统想法对于 NAND 闪存来说并不正确。事实上,NAND 编程操作只能将位从 1 更改为 0,这意味着我们在开始写入之前需要擦除页。

下图展示了页面和块之间的关系,来自flashdba.com上的一篇文章

SSD层次结构

如需了解更多信息,请参阅Micron 的 NAND 闪存简介。