Memory 为什么NAND闪存单元只能在其为空时直接写入?

Memory 为什么NAND闪存单元只能在其为空时直接写入?,memory,solid-state-drive,Memory,Solid State Drive,我试图理解为什么在写入SSD之前必须先擦除单元格,以及它们是如何随着时间的推移而变慢的。这似乎至少暗示了答案。似乎“隧道注入”用于写入,“隧道释放”用于擦除。我会让物理学家来解释这到底意味着什么 我在试着理解为什么你必须在写之前清除细胞 在写入闪存单元之前,您不必擦除闪存单元。但是,一次只能写入整个单元格块。通常,这些单元块的大小至少为128KB 因此,假设您正在将4KB文件写入SSD。嗯,您必须一次写入一个128KB的块。如果128KB块中已经有数据,驱动器固件必须将128KB块读入内存,修改

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

这似乎至少暗示了答案。似乎“隧道注入”用于写入,“隧道释放”用于擦除。我会让物理学家来解释这到底意味着什么

我在试着理解为什么你必须在写之前清除细胞

在写入闪存单元之前,您不必擦除闪存单元。但是,一次只能写入整个单元格块。通常,这些单元块的大小至少为128KB


因此,假设您正在将4KB文件写入SSD。嗯,您必须一次写入一个128KB的块。如果128KB块中已经有数据,驱动器固件必须将128KB块读入内存,修改要写入的4KB部分,然后将整个128KB块写回闪存。

按照现代闪存芯片的设计方式,在一个方向编程单元比在另一个方向编程单元更容易。如果一个芯片在256个块(每个块为65536字节)中包含16777216字节,只能作为一个单元擦除,那么它将需要约1.28亿个“小”电路来允许对单个位进行编程,需要256个“大”电路来擦除这些块。为了让芯片能够擦除256字节的页面,需要65536个“大”电路。我不确定芯片的哪一部分会被这么多的页面擦除电路消耗掉,但这将是非常重要的。使用更大的擦除块可以更便宜地制造芯片;对于许多应用,具有较大擦除块的较便宜芯片比具有较小擦除块的较昂贵芯片更可取。

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

删除块时,所有位都设置为1。要将位从1更改为0,位被编程(写入)。程序无法将位从0更改为1。

假设您必须存储11001100。首先需要擦除该块以获得所有1(11111111),然后对特定位进行编程(11001100)。现在,同一内存位置不能编程为111111 00,因为编程不能将0更改为1

这就是NAND查找包含所有1的空闲/空页,然后将特定位从1更改为0的原因。对于NAND闪存来说,写入可以将1s更改为0s,将0s更改为1s的传统想法是不正确的。NAND程序操作只能将位从1更改为0,这意味着在开始写入之前,我们需要全部1块内存

资料来源:


一次写入整个块不是真的。NAND闪存块分为若干页。必须一次写入整个页面,但不能写入整个块。然而,在整个块上执行擦除操作。