1. 根据物理结构上的区别,Nand Flash主要分为:
SLC(Single Level Cell): 单层式存储
MLC(Multi Level Cell): 多层式存储
TLC(Triple Level Cell): 三层式存储
注:SLC在存储格上只存一位数据(2个状态),MLC存放两位数据(4个状态),TLC存放三位数据(8个状态)。
2. Nand Flash 地址结构
注:
①Row Address即页地址,Column Address即页内偏移
②正常页内容读取用Column Address(A0-A10),共11位,最大索引地址为2^11 = 2048
③OOB区域索引用Column Address(A0- A12),共12位,可以索引2048后面的地址
3. Nand Flash 信号引脚
①CLE(Command Latch Enable): 命令锁存允许
②ALE(Address Latch Enable): 地址锁存允许
③CE: 片选
④RE: 读允许
⑤WE: 写允许
⑥WP: 在写或者擦期间,提供写保护
⑦R/B: 读/忙
注:
现代一些SOC都自带Nand Flash控制器,软件工程师只需配置一些控制寄存器,然后按照顺序填写命令寄存器、地址寄存器,操作数据寄存器读写数据。
4. Nand Flash 命令集
5. ECC校验
① ECC的全称是Error Checking and Correction,是一种用于Nand的差错检测和修正算法
② 校验码生成算法:ECC校验每次对256字节的数据进行操作,包含列校验和行校验
列校验:
注:CP0~CP5为6个Bit位,表示Column Parity(列极性)
行校验:
注:RP0~RP15为16个Bit,表示Row Parity(行极性)
综上,对256字节的数据共生成了6个Bit的列校验结果,16个Bit的行校验结果,共22个Bit
原文地址:https://www.cnblogs.com/wulei0630/p/9442049.html