首页 > 代码库 > NAND FLASH 原理
NAND FLASH 原理
NAND FLASH 原理
http://www.360doc.com/content/12/0522/21/21412_212888167.shtml
闪存保存数据的原理:
与DRAM以电容作为存储元件不同,闪存的存储单元为三端器件,与场效应管有相同的名称:源极、漏极和栅极。栅极与硅衬底之间有二氧化硅绝缘层,用 来保护浮置栅极中的电荷不会泄漏。采用这种结构,使得存储单元具有了电荷保持能力,就像是装进瓶子里的水,当你倒入水后,水位就一直保持在那里,直到你再 次倒入或倒出,所以闪存具有记忆能力。
与场效应管一样,闪存也是一种电压控制型器件。NAND型闪存的擦和写均是基于隧道效应,电流穿过浮置栅极与硅基层之间的绝缘层,对浮置栅极进行充 电(写数据)或放电(擦除数据)。而NOR型闪存擦除数据仍是基于隧道效应(电流从浮置栅极到硅基层),但在写入数据时则是采用热电子注入方式(电流从浮 置栅极到源极)。
下面主要介绍NAND FLASH的工作原理。
一、NAND flash的物理组成
NAND Flash 的数据是以bit的方式保存在存储单元(memory cell),一般来说,一个单元中只能存储一个bit。这些单元以8个或者16个为单位,连成bit line,形成所谓的byte(x8)/word(x16), 这就是NAND Device的位宽。这些Line会再组成页(page),以所用的samsumg的256M x 8 Bit K9F2G08R0A芯片为例:每页2112Bytes(2kbyte(Main Area)+64byte(Spare Area)),空闲区通常被用于ECC、耗损均衡(wear leveling)和其它软件开销功能,尽管它在物理上与其它页并没有区别。每64个页形成一个块(block 128kB)。具体一片flash上有多少个块视需要所定。
NAND flash以页为单位读写数据,而以块为单位擦除数据。按照这样的组织方式可以形成所谓的三类地址:
Column Address:Starting Address of the Register. 翻成中文为列地址,地址的低8位
Page Address :页地址
Block Address :块地址
对于NAND Flash来讲,地址和命令只能在I/O[7:0]上传递,数据宽度是8位。
二、NAND Flash地址的表示
2112byte 需要12bit来表示,对于2112byte系列的NAND,这2112byte被分成1st half Page Register和2nd half Page Register,各自的访问由地址指针命令来选择,A[11:0]就是所谓的column address(列地址),在进行擦除操作时不需要它,因为以块为单位擦除。64个page需要6bit来表示,占用A[17:12],即该page在块内的相对地址。A11这一位地址被用来设置512byte的1st half page还是2nd half page,0表示1st,1表示2nd。Block的地址是由A18以上的bit来表示。
例如2048MB的NAND flash(实际中由于存在spare area,故都大于这个值),共131,072block,因此,需要11个bit来表示,即A[28:18]。而page address就是blcok address|page address in block 。NAND Flash 的地址表示为: Block Address|Page Address in block|Column Address 地址传送顺序是Column Address,Page Address,Block Address。
由于地址只能在I/O[7:0]上传递,因此,必须采用移位的方式进行。 以K9F2G08R0A 为例:
第1 步是传递column address,就是NAND_ADDR[7:0],不需移位即可传递到I/O[7:0]上。
第2 步就是将NAND_ADDR 右移8位,将NAND_ADDR[11:8]传到I/O[7:0]上;
第3 步将NAND_ADDR[19:12]放到I/O上;
第4步需要将NAND_ADDR[27:20]放到I/O上;
因此,整个地址传递过程需要4 步才能完成,即4-step addressing。 如果NAND Flash 的容量是32MB(256Mbit)以下,那么,block adress最高位只到bit24,因此寻址只需要3步。
引脚定义:
CLE:Command Latch Enable。命令锁存使能。CLE输入信号控制操作模式命令进入内部命令寄存器的加载过程,当CLE高电平有效时,从IO端口输入的命令在\WE上升沿时被锁存进命令寄存器中。
ALE:Address Latch Enable。地址锁存使能。ALE信号被用于控制地址信息或输入数据进入内部地址/数据寄存器内。ALE高电平时,地址信息在/WE上升沿时被锁存到寄存器内;ALE低电平事,输入数据在/WE上升沿时被锁存到寄存器内。
CE#:chip enable。芯片启动。如果没有检测到 CE 信号,那么, NAND 器件就保持待机模式,不对任何控制信号作出响应。
WE#:Write Enable。写使能。WE# 负责将数据、地址或指令写入 NAND 之中。
RE#:Read Enable 。读使能。RE# 允许输出数据缓冲器。
R/B#:Ready/Busy。就绪/忙。 如果NAND器件忙,R/B# 信号将变低。该信号是漏极开路,需要采用上拉电阻。
I/O1-8:做为设备传输地址信息、数据和指令的端口。
NFC原理:
术语解释:
M3IF:Multi-Master Memory Interface
EMI :External Memory Interface
NFC:NAND Flash Controller
处理器访问闪存(flash memory device)过程:
处理器发出访问闪存的请求到M3IF,M3IF通过EMI AHB MUX将请求转发给NFC,NFC然后通过EMI I/O MUX访问外部闪存设备。从闪存中返回的数据将沿原路返回给处理器。
M3IF的作用:
提供一个可以访问多个内存设备的平台,将处理器对不同内存设备的访问请求转发给相应的内存控制器和内存设备。除了NFC,还有ESDRAMC/MDDRC,PCMCIA,WEIM的内存控制器。
EMI AHB MUX和I/O MUX的作用:
实现各个不同的内存控制器和内存设备间的I/O引脚复用。
NFC的作用:使集成电路IC对闪存设备的访问标准化并隐藏其中复杂的访问过程。
各个组件的引脚对应关系如下表所示:
其中IC I/O是处理器MCIMX27L的外部引脚。
NFC | EMI | IC I/O | Flash device |
IPP_NFC_WRITE_DATA_OUT[15:0] | IPP_DO_NFC_WRITE_DATA_OUT[15:0] | D[15:0] | I/O[15:0] |
IPP_NFC_READ_DATA_TA_IN[15:0] | IPP_IND_NFC_READ_DATA_IN[15:0] | D[15:0] | I/O[15:0] |
IPP_NFC_WE_OUT | IPP_NFC_WE_OUT | NFWE_B | WE |
IPP_NFC_WP_OUT | IPP_NFC_WP_OUT | NFWP_B | WP |
IPP_NFC_RE_OUT | IPP_NFC_RE_OUT | NFRE_B | RE |
IPP_NFC_ALE_OUT | IPP_NFC_ALE_OUT | NFALE | ALE |
IPP_NFC_CLE_OUT | IPP_NFC_CLE_OUT | NFCLE | CLE |
IPP_NFC_CE_OUT | IPP_NFC_CE_OUT | NFCE_B | CE |
IPP_NFC_RB_IN | IPP_NFC_RB_IN | NFRB | R/B |
部分引脚信号功能说明:
IPP_IND_NFC_READ_DATA_IN[15:0]: 外部设备从I/O MUX/PADS读取数据。
IPP_DO_NFC_WRITE_DATA_OUT[15:0]: NFC写入数据到I/O MUX/PADS。
NFCE :Flash Chip Enable. 当闪存处于Busy状态或正在读写时,该信号为低电平。
NFRE:Flash Read Enable. 该信号低电平有效。作用时将数据从闪存中输出到I/O总线上,允许NFC读取数据。
NFWE:Flash Write Enable. 上升沿触发。允许向内存写入命令、数据或地址信息。
NFCLE:Flash Command Latch Enable. 高电平有效。控制命令数据写入命令寄存器中。
NFALE:Flash Address Latch Enable. 高电平有效。控制地址数据写入地址寄存器中。
NFWP:Flash Write Protect. 只有在电源启动时(Power up)低电平有效。作用是在电源启动或切换时防止意外操作或擦除数据。
NFRB:Flash Ready/Busy. 指示闪存的工作状态,低电平表示闪存正在进行读写操作,高电平表示空闲状态。
AHB MUX和EMI I/O MUX的引脚复用:
由EMI的概述可知,几个内存控制器会使用总线引脚复用:PCMCIA,EIM,SDRAMC和NFC。
引脚的共享复用是一个各个进程的优先级分配问题,具体的优先级分配在M3IF中完成。
NFC对于Flash memory Device的具体读写操作在此不再详述,详见参考手册的第19章。
心得:
1.NC引脚:表示不需要将任何线路连接到NC引脚,NC引脚是为将来的需要保留的。
2.查询具体芯片的datasheet有个比较好的网站:www.alldatasheet.com,非常全面。
3.AHB:主要用于高性能模块(如CPU、DMA和DSP等)之间的连接,作为SoC的片上系统总
线,它包括以下一些特性:单个时钟边沿操作;非三态的实现方式;支持突发传输;支持分
段传输;支持多个主控制器;可配置32位~128位总线宽度;支持字节、半字节和字的传输。
AHB系统由主模块、从模块和基础结构(Infrastructure)3部分组成,整个AHB总线上的传输
都由主模块发出,由从模块负责回应。基础结构则由仲裁器(arbiter)、主模块到从模块的多
路器、从模块到主模块的多路器、译码器(decoder)、虚拟从模块(dummy Slave)、虚拟主模块
(dummy Master)所组成。
4.MUX: 多通道多路复用器
5.gule logic:中文含意是“胶连逻辑”,它是连接复杂逻辑电路的简单逻辑电路的统称。例如,
一个ASIC芯片可能包含许多诸如微处理器存储器功能块或者通信功能块之类的功能单元,
这些功能单元之间通过较少的粘合逻辑连接起来。在印制板(PCB)层,粘合逻辑可以使用
具有较少逻辑门的“粘合芯片”实现,例如PAL、GAL、CPLD等。
6.glueless interface:(无粘接接口),不粘于某一特类个体(RAM 或 ROM 或 flash)。这芯片
的接口规格一般有超过一种业界规格,使其接口并不局限于一种制式。如NFC中的接口可
以同时有8-Bit和16-Bit两种传输模式。
nand nor区别:
http://jinren1010.spaces.eepw.com.cn/articles/article/item/15556#
NAND FLASH 原理