首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NAND flash: pagesize和eraseblocksize大小有什么区别?

NAND flash: pagesize和eraseblocksize大小有什么区别?
EN

Stack Overflow用户
提问于 2014-07-10 20:50:11
回答 2查看 2K关注 0票数 1

所以我的闪存有2k页面大小和128k擦除块大小。使用mtd-utils中的flash_erase /dev/mtd1 0 0,我可以擦除整个mtd1分区。分区总大小为256k。所以2个擦除块被擦除。我只能擦除整个擦除块。但在写入闪存时,我只需要写入页面记录。到底有什么区别,为什么我不能只把我想要删除的0xFF写到内存中,而不是使用必须被分页的erase。提前感谢您的投入!

EN

回答 2

Stack Overflow用户

发布于 2014-07-10 21:51:18

闪存被组织成x个块(或扇区),其中本身被分成y个页面。正如您所发现的,Flash一次只能擦除一个块,但可以一次写入一页,有时甚至更精细。这一事实是由于在微电子级别的存储器的物理设计以及如何物理地存储和释放每个存储器单元中的信息比特。有关科学的更多信息,请查看维基百科,它比我更好地解释了它。我怀疑这样设计Flash (仅限块擦除)是因为它比EEPROM快得多,EEPROM一次可以擦除一个字节。

对于实际想要编写或使用闪存驱动程序的人来说,所有这一切的结果是,信息的位只能从1到0清除,而不能设置。这就是为什么你不能“写1”的原因。

这样做的实际副作用是,如果您在块内的页面中写入某个可寻址字节,则不能为已经写入(“清除”)的位覆盖此内存。例如,如果您再次尝试向同一字节写入0x0F = 0b00001111,您将以0x0A = 0b00001010结束。显然,这不是你想要的。

作为附注,相变存储器(PCM)是一种开始获得牵引力的新技术,由于其设计,它确实允许您进行位可变写入(设置和清除)。

票数 4
EN

Stack Overflow用户

发布于 2014-07-11 09:37:44

为了擦除存储器,硬件知道擦除状态是什么,并且可以擦除它的更大的物理块,并且将擦除,因为它是如何物理构建的。

但是要写它,要把那些1中的一些改成0(在某些情况下,或者所有的情况下,都有一个反相器。被擦除的位实际上是零。但由于逻辑上的节省,它在某种程度上是颠倒的。因此,我们将其视为1。)物理架构只想在页面中做到这一点。

所以我怀疑这部分有一点RAM,一个页面的大小,你在ram中加载你想要的数据。然后,基于芯片的物理和逻辑架构,它可以根据您想要的页面修改该页面(或者至少它将您想要的位设置为零,它不能将0转换为1)。

同样,由于内存的物理属性,您只能在对齐的块中进行页面写入,不能随机写入,也不能不对齐。

因此,我怀疑擦除大小和程序大小(扇区和页面)的原因是由于正在写入的内容以及在“写入”发生之前需要存在多少存储空间。

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

https://stackoverflow.com/questions/24677038

复制
相关文章

相似问题

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