闪存Nand Flash存储结构浅析.pdf
文本预览下载声明
闪存NandFlash存储结构浅析
NandFlash存储器由多个Block组成,每一个Block又由多个Page组成,Page 的大小一
般为2K+64Bytes 或512+16Bytes。Page 是读取和编程的基本单位,而擦除的基本单位是
Block。
NANDFlash 的页,包含主区(MainArea)和备用区(SpareArea)两个域,“主区”中
有512*8 (或256*16)或2048*8 (或1024*16)个位,“备用区”中有16*8 (或8*16)或
64*8 (或32*16)个位,这样每一页总共有528*8 (264*16)或2112*8 (或1056*16)个位。
备用区是保留区域,用来标记坏块(badblock)和存放ECC 的值,因此对于用户来说只有
“主区”是可用的。
图1NANDFlash 的存储结果
上图是MT29F2G08AxB 的结构图,它的读取和编程都以Page为基本单位,所以它的
CacheRegister和DataRegister都是一个Page 的规格。NandFlash 的特别之处就在于页结构,
它分成数据区和备用区两个部分,数据区和备用区按页的形式一一对应,因此读取和编程的
数据流也需要按页的结构进行组织和分解。图 1所示的MT29F2G08AxB 芯片的数据区为
2048字节,备用区为64字节。在实际应用中,备用区一般用于数据区的检错和纠错。
NANDflash在出厂时可能含有无效的块,在使用过程中也可能会出现其他无效的块。无效
的块即为包含一个或多个坏位的块。每一片芯片在出厂前都经过测试和擦除,并标识了坏块,
禁止对在出厂时作了标记的坏块进行擦除或编程。因此在应用中和编程时,都需要能够对坏
块进行识别和处理。NandFlash 的第一块保证是可用的。
另外,MicronNandFlash具有10个页的OTP 区域,这个区域不能被擦除,只能编程一
次,而且如果被保护,即使是把1编程为0也是禁止的。
1.1.1 坏块
由于NANDFlash 的工艺不能保证NAND 的MemoryArray在其生命周期中保持性能的
可靠,因此,在NAND 的生产中及使用过程中会产生坏块。所以NandFlash 芯片厂商为了
区分好块与坏块,会在出厂的时候在备用区某个地址中标记非FFh表示坏块。
小心不要擦除坏块标记,这一点很重要。工厂在宽温和宽电压范围内测试了Nand;一
些由工厂标记为坏的区块可能在一定的温度或电压条件下仍然能工作,但是,将来可能会失
效。如果坏块信息被擦除,就无法再恢复。
1.1.2 ECC
由于NANDFlash 的工艺不能保证NAND 的MemoryArray在其生命周期中保持性能的
可靠,因此,在NAND 的生产中及使用过程中会产生坏块。为了检测数据的可靠性,在应
用NANDFlash 的系统中一般都会采用一定的坏区管理策略,而管理坏区的前提是能比较可
靠的进行坏区检测。
如果操作时序和电路稳定性不存在问题的话,NANDFlash 出错的时候一般不会造成整
个Block或是Page不能读取或是全部出错,而是整个Page (例如512Bytes)中只有一个或
几个bit 出错。
对数据的校验常用的有奇偶校验、CRC校验等,而在NANDFlash处理中,一般使用
一种比较专用的校验——ECC。ECC能纠正单比特错误和检测双比特错误,而且计算速度
很快,不同的ECC算法能纠正的位数也不一样。
1.1.3 位反转(位翻转)
NandFlash 由于本身硬件的内在特性,会导致(极其)偶尔的出现位反转的现象。
所谓的位反转,bitflip,指的是原先NandFlash 中的某个位,变化了,即要么从1变成0 了,
要么从0变成 1了。
一般小容量的NandFlash 不容易产生位反转,比如1Gbit、2Gbit等,一般大容量的会比
较容易产生,比如32Gbit等。
NandFlash 的位反转现象,主要是由以下一些原因/效应所导致:
1) 漂移效应(DriftingEffects)
漂移效应指的是,NandFlash 中cell 的电压值,慢慢地变了,变的和原始值不一样了。
2) 编程干扰所产生的错误(Program-DisturbErrors)
此现象有时候也叫做,过度编程效应(over-programeffect)。
对于某个页面的编程操作,即写操作,引
显示全部