- 注册时间
- 2011-10-23
- 最后登录
- 2011-10-31
- 阅读权限
- 30
- 积分
- 463
- 精华
- 0
- 帖子
- 154
 
升级   87.67%
|
例如Samsung K9F1208U0B,数据存储容量为64MB,采取块页式存储治理。8个I/O 引脚充任数据、地址、命令的复用端口。
芯片内部存储布局及存储操作特点:
一片Nand flash为一个装备(device), 其数据存储分层为:
1 (Device) = 4096 (Blocks)
1 (Block) - = 32 (Pages/Rows) 页与行是雷同的意思,叫法不一样
1 (Page) = 528 (Bytes) = 数据块大小(512Bytes) + OOB 块大小(16Bytes)
NAND Flash出错的时候个别不会造成全部Block或是Page不能读取或是全部出错,而是整个Page(例如512Bytes)中只有一个或多少个bit出 错。普通应用一种比拟专用的校验――ECC。ECC能纠正单比特错误和检测双比特错误,而且盘算速度很快,但对1比特以上的错误无法纠正,对2比特以上的 错误不保障能检测。
ECC正常每256字节原始数据生成3字节ECC校验数据,这三字节共24比特分成两部分:6比特的列校验和16比特的行校验,过剩的两个比特置1.
在每一页中,最后16个字节(又称OOB)用于Nand Flash命令履行完后设置状况用,残余512个字节又分为前半局部和后半部门。能够通过Nand Flash命令00h/01h/50h分辨对前半部、后半部、OOB进行定位通过
Nand Flash内置的指针指向各自的首地址。
存储操作特色:
1. 擦除操作的最小单位是块。
2. Nand Flash芯片每一位(bit)只能从1变为0,而不能从0变为1,所以在对其进行写入操作之前要必定将相应块擦除(擦除等于将相应块得位全体变为1).
3. OOB部分的第六字节(即517字节)标记是否是坏块,假如不是坏块该值为FF,否则为坏块。
4. 除OOB第六字节外,通常至少把OOB的前3个字节寄存Nand Flash硬件ECC码。
ECC:
当往NAND Flash的page中写入数据的时候,每256字节咱们生成一个ECC校验和,称之为原ECC校验和,保留到PAGE的OOB(out-of-band)数据区中。其地位就是eccpos[]。
校验的时候,依据上述ECC天生原理不难推断:将从OOB区中读出的原ECC校验和新ECC校验跟按位异或,若结果为0,则表示不存在错(或是涌现了 ECC无奈检测的毛病);若3个字节异或成果中存在11个比特位为1,表现存在一个比特过错,且可改正;若3个字节异或结果中只存在1个比特位为1,表示 OOB区犯错;其余情形均表示呈现了无法纠正的错误。 |
|