有人知道当今大型 NAND 闪存芯片的写访问吗?写入的最小粒度是多少?我这里有一个微控制器闪存,它需要至少 1 个和最多 4 个字(即 16 位字)一次馈送到写状态机。我认为出于写入性能的原因,大型(> 1 Gbit)闪存的行为在这里有所不同。
斯拉尔蒂
有人知道当今大型 NAND 闪存芯片的写访问吗?写入的最小粒度是多少?我这里有一个微控制器闪存,它需要至少 1 个和最多 4 个字(即 16 位字)一次馈送到写状态机。我认为出于写入性能的原因,大型(> 1 Gbit)闪存的行为在这里有所不同。
斯拉尔蒂
所以要明确一点,要写入 1 位,您必须清除整个内存块,要写入 0 位,您只需写入一个内存位置。您是在谈论一次性写入(本质上将某些位从 1 更改为 0)还是在谈论擦除块并重新写入块以便您可以使某些位从 0 变为1?
最简单的了解方法是仅获取相关部件的数据表或从不同供应商处获取其中少数的数据表。我最近使用的一个基于 spi 的,有一个 0x10000 (65536) 字节大小的擦除块。我称之为较旧的并行技术,即具有传统地址总线和数据总线的并行技术,具有 256 字节或 512 字节页面,但这些不是较新的技术(nand)。
编辑
查看随机选择的三星文档,兆字节大小的内存有 256 和 512 字节的页面大小,但没有记录 1 和 2 GB 的页面大小(这是家庭类型的数据表,而不是特定的部件数据表)。MB 大小的内存的块大小在 4K 到 16K 范围内。
这是从网页上剪下来的,我用谷歌搜索了 nand flash 页面大小:
“25nm NAND 的另一个主要变化是页面大小的增加。在 50nm 和 34nm 时,IMFT 的页面大小为 4KB。在 25nm 时,8GB 设备的页面大小现在为 8KB。块大小也从 128 页增加256 页。”
维基百科也有一些关于 nand flash 的有趣信息:
“虽然读取和编程是以页为单位执行的,但擦除只能以块为单位执行。NAND 闪存的另一个限制是块中的数据只能按顺序写入。”
所以这听起来很糟糕,您正在查看需要 2MByte 擦除的 1 写入。我使用这些东西来启动嵌入式处理器,所以我通常会在每个蓝月亮左右擦除一次并写入一次,理想情况下是一次擦除和一次写入,并在产品的生命周期内完成。对于像媒体这样的磁盘使用,这是很痛苦的。
另请注意,nand 和/或较小的密度会出现读取干扰问题,即过于频繁地读取位置可能会擦除附近的位置。这对于像媒体这样的磁盘来说可能不是问题,但是如果你想从 nand flash 运行(执行)嵌入式处理器,那么你不能,你启动并使用最小循环将一个小程序复制到 ram,分支到 ram,让那个小程序/函数有一个循环,将程序的其余部分复制到 ram 并且你用完了 ram。
它完全取决于设备,但通常是 2 的幂。