nand flash简明自学资料(上)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Nand Flash简明自学资料
——助您理解datasheet要点内容清单:
一技术常识部分
1、逻辑组成
2、常见参数
3、地址结构
二基本操作、时序图部分
*通用引脚符号声明
1、Read—读
2、Program—写
3、Block Erase—擦除
4、其它
*时序图要点讲解
编写目的:
从编程操作角度,简介一些有助于理解nand flash datasheet(数据手册)上相关内容的要点。
编写原因:
●各种nand flash英文datasheets上的内容虽详尽但繁杂,有些业内常识性的
东西没交代清楚,给初学者造成困扰;
●不同的datasheets都有一些共通的要点(基本架构、指令和符号等),了解
这些后再看datasheet的操作命令和时序图部分会省力很多。
一技术常识部分
1、逻辑组成
(1)功能结构抽象图
注:1)Cache有时也被称为Cache register.(严格来讲应称为缓冲区buffer);
2)上述Data指的是输入/输出数据(即Input/Output Data,简称I/O Data),因为从广义上讲所有能存取于硬件设备上的资料都可称为Data,包括图中的ECC码
(Error Correcting Code),所以Page register.也可被称为Data register.(数据寄存
器);
(2)闪存层次结构
Page(页):对nand flash进行读写操作的逻辑单位,一般容量为几到十几KB;
附有额外的小存储区域,这里存储ECC码等附加信息。
Block(块):许多page构成一个block,是擦除的操作单位;一般产品出厂时都有invalid /bad block(坏块),已由厂家在对应block里作相应标示,操作时不能清除这些
标注信息,每个flash的第一个block(编号00h)是在出厂时是好的,用于存储
invalid / bad block table(坏块表);使用过程中也会产生坏块,发生操作失败时
(即使用ECC技术检测到有不可纠正错误时),要将相应的坏块标出,升级坏块
表,改写逻辑地址与物理地址的映射。
Plane (层): 可将flash 里众多的block 分成不同的层,并使用多层操作指令以提高存
取效率。
此外,根据flash 容量大小,还可定义更高一级的存储单位,如LUN (Logic Unit Number );
一个device 可集成多个flash chip (闪存芯片),工作时可根据它们各自的运行状
态为之安排执行任务,使它们同步运行。
2、常见参数
(注:不同厂商不同时期的不同型号产品参数会有差异,但在一定时期内,相同 / 近的技术支持使得大部分flash 参数在数值或数量级上相同 / 近;下面以Samsung (三星)K9GAG08U0M 的参数为例。
)
(1)Vcc (工作电压):3.3 V (波动范围:2.7 V —3.6 V )
(2)Memory Cell :2 bit / Memory Cell
[ ①上面表示每个cell 存2 bit 数据,即所谓MLC (Multi-Level Cel l ,多层式储存单
元)类型的flash ,如果是1 bit / Cell 和3 bit / Cell 则分别称为SLC (Single Level Cell )
和TLC (Triple-Level Cell );
②随着cell 内数据容量增加,flash 的存储量虽增加,造价也大幅降低了,但数
据存取的出错率却增加,速度变慢,寿命也变短,目前,SLC 类型flash 适用于
对稳定性要求高的小容量储存系统,而MLC 则成为大容量储存领域的主流;
③nand flash 上可同时集成MLC 、SLC 和TLC 区域,操作时必须切换到相应模式。
]
(3)Page Size :(4K +128)Byte (4KB 是I/O 数据存储区的容量,而128 Byte 为附加
存储区的大小)
(4)Data Register Size :(4K +128)Byte
(5)Block Size :(512K +16K )Byte (=128×Page Size ,即此型号1 block 含7
2page )
(6)Page Program Time :0.8 mS (Typ ,表示通常情况下页编程操作的平均时间)
(7)Block Erase Time : 1.5 mS (Typ )
(8)Serial Acess Time :25 nS (Min )[ 即Read /Write Cycle Time (Min ),按顺序从
I / O 对Cache 进行1次数据存取的最小时间 ]
(9)ECC Requirement :8 bit / KB (每KB I/O 存储数据要求附带的存放在额外存
储区的校验纠错码位数) 3、地址结构(下面的⎡⎤⎡⎤15.0=”表示向上取整,如“)
由于一般nand flash 传递地址等信息时是8 bit / 次,对应某些datasheet 中的“×8(Bit )”,即以1Byte 为不可拆分的传输单位,又因块、页和页内存储单位的地址编号一般是分开传输的(这样在操作处理时很方便,不用辨认再分),所以,若flash 有个x 个block )22(1k k x ≤<-,每个块有y 个page )22(1n n y ≤<-,每个页的容量(不包括额外存
储区)为z KB )22(1m m z ≤<-,则一般flash 存储单位(1 Byte / 单位)完整地址中的最低
⎥⎥⎤⎢⎢⎡8m 个Byte 用于存储Column Adress (列地址),更高些的⎥⎥
⎤⎢⎢⎡8n 个Byte 用于存储page 编号,剩下⎥⎥
⎤⎢⎢⎡8
k 个Byte 的高位用于存储block 编号,如是多层或多芯片等的,再在其中插入相应编号即可,列地址以外的部分称为Row Address (行地址,即页内偏移地址)。
二 基本操作、时序图部分
*通用引脚符号声明
(1)CE#:芯片使能,表示flash chip 是否被系统选中为当前操作芯片,低电平表示选中
(2)I/O 0~I/O 7: 这8个引脚用于输入command 、address 、data ,以及从cache 中读取
data ,当芯片没被选中或无法正常输出数据时,引脚会处于high-z (或Hi-Z )状态,即高阻态,相当于隔断状态(有的datasheet 将这些引脚信号记为DQ X 或DQ [7:0])
(3)DQS: 反映 toggle 模式下I/O 与flash 间data 的读写情况,在信号上/下沿表示进行
一次读或写操作,即一次信号周期产生两次操作,比普通模式(1次操作/信号周期)的读写效率高,一种型号的nand flash 能否用toggle 模式工作其datasheet 上有说明,一般可看有无此引脚信号
(4)RE#:读取使能,低电平时从cache 中读取data 到I/O ,一次高低信号周期完成一次
数据读取操作,同时读取操作的内部column address counter (列地址计数器)加1
(5)WE#:写入使能,低电平时从I/O 中输入command 、address 、data ,在上升沿处操
作完成,toggle 工作模式下不可用,被DQS 的写控制输入信号代替(这是因为WE#也是从外部输入的写控制信号,不可共同起作用;而RE#虽也为控制输入信号,但读操作时DQS 的读信号是作为状态信号输出,故它们同时有效)
(6)CLE: 指令锁存使能,辨别输入内容是否command ,高电平时表示是,同时在对应
的WE#低电平信号的上升沿处command 被锁存至command register
(7)ALE: 地址锁存使能,辨别输入内容是否address ,高电平时表示是,同时在对应的
WE#低电平信号的上升沿处a ddress 被锁存至address register
(8)R/B#:表示chip 处于Ready 还是Busy 状态(即flash 内部是否还在执行读写、擦除
指令,此时外部不可对芯片进行操作),低电平表示Busy ,当芯片未被选中或无法输出数据时不会处于high-z 状态,仍可用于检测芯片的闲忙状态。