我正在尝试理解为什么在写入SSD之前必须擦除单元,以及它们是如何随着时间的推移而减慢的。
发布于 2010-09-04 12:22:25
我在试着理解为什么在写入单元格之前必须擦除它们
您不必在写入闪存单元之前将其擦除。但是,一次只能写入一个完整的单元格块。通常,这些单元块的大小至少为128KB。
因此,假设您正在向SSD写入一个4KB的文件。那么,你必须一次写一个128KB的块。如果128KB数据块中已有数据,驱动器固件必须将128KB数据块读入其内存,修改要写入的4KB部分,然后将整个128KB数据块写回闪存。
发布于 2017-06-15 01:38:29
以下是写入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,这意味着在开始写入之前,我们需要全部1块内存。
来源:
https://flashdba.com/2014/06/20/understanding-flash-blocks-pages-and-program-erases/ https://www.micron.com/~/media/documents/products/technical-note/nand-flash/tn2919_nand_101.pdf
发布于 2010-07-22 08:53:18
Wikipedia article似乎至少暗示了答案。似乎“隧道注入”用于写入,“隧道释放”用于擦除。我将留给物理学家来解释这到底意味着什么。
https://stackoverflow.com/questions/3304993
复制相似问题