NAND Flash 的数据是以bit的方式保存在memory cell,一般来说,一个cell 中只能存储一个bit。这些cell 以8个或者16个为单位,连成bit line,形成所谓的byte(x8)/word(x16),这就是NAND Device的位宽。这些Line会再组成Page,(NAND Flash 有多种结构,我使用的NAND Flash 是K9F1208,下面内容针对三星的K9F1208U0M),每页528Bytes(512byte(Main Area)+16byte(Spare Area)),每32个page形成一个Block(32*528B)。具体一片上有多少个Block视需要所定。我所使用的三星k9f1208U0M具有4096个block,故总容量为4096*(32*528B)=66MB,但是其中的2MB是用来保存ECC校验码等额外数据的,故实际中可使用的为64MB。
NandFlash特性
-
存储位:只能将1写成0,不能将0改成1
-
写入单位为山区,一个山区通常为512字节过着2048字节
-
擦出单位为块,一个块一般为64山区或更高
-
要改写:读出一块到RAM->改写RAM的内容->擦出该块->将RAM内容写入该块;
-
必须进行坏块管理和写平衡管理
坏块管理:一定不能对坏块进行擦除操作,擦除操作失败的块一定要标记为坏块(在附加扇区有信息标识为坏块)
写平衡管理: NandFlash可擦写次数为1W或者10W次,对块的平均擦写,可大大增加NandFlash使用寿命
阅读(2701) | 评论(0) | 转发(0) |