NAND闪存编程:写入的粒度?

时间:2010-09-09 14:21:48

标签: microcontroller flash-memory

是否有人知道现在大型NAND闪存芯片的写访问? 写入的最小粒度是多少?我这里有一个微控制器闪存 这需要至少1个,最多4个字(即16个字) 立即写入statemachine。我认为大(> 1 Gbit)闪烁 出于写入性能的原因,这里的行为有所不同。

slarti

2 个答案:

答案 0 :(得分:3)

所以要清楚,写一个1位你必须清除一整块内存,写一个0位你只需要写一个内存位置。你是在谈论一次性写入(从本质上将一些位从1改为0)或者你是在谈论擦除块并重新写入块,以便你可以使一些位从0到a 1?

最简单的方法是获取相关部件的数据表或来自不同供应商的少数数据表。我使用的最新版本(基于spi)具有类似0x10000(65536)字节大小的擦除块。我称之为较旧的并行端,传统的地址总线和数据总线,有256字节或512字节的页面,但这些并不是更新的技术(nand)。

修改

查看随机选择的三星文档,兆字节大小的内存有256和512字节的页面大小,但没有记录1和2千兆字节的页面大小(它是家庭类型的数据表,而不是特定的部件数据表)。对于MB大小的存储器,块大小在4K到16K范围内。

这是从网页剪切的,我用Google搜索了nand flash页面大小:

“25nm NAND的另一个主要变化是页面尺寸的增加。在50nm和34nm,IMFT的页面大小为4KB。在8GB设备上的25nm,页面大小现在是8KB。块大小也增加了从128页到256页。“

维基百科也为nand flash提供了一些有趣的信息:

“读取和编程是在页面基础上执行的,擦除只能在块的基础上执行.NAND闪存的另一个限制是块中的数据只能按顺序写入。”

所以这听起来很糟糕,你正在寻找需要2MBy擦除的1的写入。我使用这些东西来启动嵌入式处理器,因此我通常擦除一次并在每个蓝色月亮左右写一次,理想情况下是一次擦除和单次写入,并在产品的生命周期内完成。对于像媒体这样的磁盘,这很痛苦。

另请注意,nand和/或较小的密度会出现读取干扰问题,其中过于频繁地读取位置可能会擦除附近的位置。这对于像磁盘一样的介质可能不是问题,但如果你想用nand flash运行(执行)一个嵌入式处理器,那么你不能,你启动并使用最小的循环将一个小程序复制到ram,分支到ram,让那个小程序/函数有一个循环,将程序的其余部分复制到ram并且你用完ram。

答案 1 :(得分:0)

它完全取决于设备,但通常是2的幂。