首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么NAND闪存单元只有在为空时才能直接写入?

为什么NAND闪存单元只有在为空时才能直接写入?
EN

Stack Overflow用户
提问于 2010-07-22 08:46:39
回答 4查看 2.5K关注 0票数 0

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

EN

回答 4

Stack Overflow用户

发布于 2010-09-04 12:22:25

我在试着理解为什么在写入单元格之前必须擦除它们

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

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

票数 1
EN

Stack Overflow用户

发布于 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

票数 1
EN

Stack Overflow用户

发布于 2010-07-22 08:53:18

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3304993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档