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 原理的更多相关文章
- (一)Nand FLASH 原理讲解
NAND FLASH 优势 : 可以用当硬盘 这里好像型号是 K9F2G08 基本结构: 不是很难自己看看,暂时不要看
- Nand Flash与Nor Flash的区别
区别:http://zhidao.baidu.com/question/1068445.html?qbl=relate_question_0&word=Serial%20Flash%20%D3 ...
- NAND Flash【转】
转自:http://www.cnblogs.com/lifan3a/articles/4958224.html 以Micron公司的MT29F2G08为例介绍NAND Flash原理和使用. 1. 概 ...
- NAND FLASH
NAND Flash 以Micron公司的MT29F2G08为例介绍NAND Flash原理和使用. 1. 概述 MT29F2G08使用一个高度复用的8-bit总线(I/O[7:0])来数据传输.地址 ...
- u-boot移植总结(三)(转)S3C2440对Nand Flash操作和电路原理(基于K9F2G08U0A)
S3C2440对Nand Flash操作和电路原理(基于K9F2G08U0A) 转载自:http://www.cnblogs.com/idle_man/archive/2010/12/23/19153 ...
- ECC校验原理以及在Nand Flash中的应用
本篇文章主要介绍ECC基本原理以及在Nand Flash中的应用,本文记录自己对ECC校验原理的理解和学习. ECC介绍 ECC,全称为Error Correcting Code, ...
- NAND FLASH ECC校验原理与实现
ECC简介 由于NAND Flash的工艺不能保证NAND的Memory Array在其生命周期中保持性能的可靠,因此,在NAND的生产中及使用过程中会产生坏块.为了检测数据的可靠性,在应用NAND ...
- Nand Flash 控制器工作原理
对 Nand Flash 存储芯片进行操作, 必须通过 Nand Flash 控制器的专用寄存器才能完成.所以,不能对 Nand Flash 进行总线操作.而 Nand Flash 的写操作也必须块方 ...
- Nand flash 芯片工作原理
Nand flash 芯片型号为 Samsung K9F1208U0B,数据存储容量为 64MB,采用块页式存储管理.8 个 I/O 引脚充当数据.地址.命令的复用端口. 芯片内部存储布局及存储操作特 ...
随机推荐
- ExtJS4.2学习(七)EditorGrid可编辑表格(转)
鸣谢地址:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-11-14/176.html ------------- ...
- BZOJ 4123 [Baltic2015] Hacker 解题报告
首先,Alice 会选择一个长度为 $\lfloor\frac{n+1}{2}\rfloor$ 的区间,我们把这个长度记为 $len$. 有这么一个结论:令 $F_i$ 为覆盖 $i$ 点的所有长度为 ...
- Detect loop in a singly linked list
去Twitter面试的被问到这个问题,当时只想到了用HashMap的办法,这种办法时间复杂度O(n),空间复杂度是O(n), 更好的办法是用 FastRunner / SlowRunner appro ...
- Deep Learning and the Triumph of Empiricism
Deep Learning and the Triumph of Empiricism By Zachary Chase Lipton, July 2015 Deep learning is now ...
- OD之窗口界面
- 定长内存池之BOOST::pool
内存池可有效降低动态申请内存的次数,减少与内核态的交互,提升系统性能,减少内存碎片,增加内存空间使用率,避免内存泄漏的可能性,这么多的优点,没有理由不在系统中使用该技术. 内存池分类: 1. ...
- Linux中的栈:用户态栈/内核栈/中断栈
http://blog.chinaunix.net/uid-14528823-id-4136760.html Linux中有多种栈,很容易弄晕,简单说明一下: 1.用户态栈:在进程用户态地址空间底部, ...
- utf-8转换为ansi和修改文件名的批处理(可解决source insight中文注释乱码问题)
source insight中文乱码有两个原因,一个是source insight的设置不正确.另外一个原因是源文件是utf-8格式的. 最近在工作中用source insight 查看jsp文件.j ...
- HashMap源代码深入剖析
..
- 存储过程 务的概念 事务的特性 关于异常的处理 连接池 构JdbcUtil类
1 存储过程 1)用当地数据库语言,写的一段业务逻辑算法,并该算法存储在客户端 2)使用存储过程需要用于CallableStatement接口,同时需要使如下SQL命令调用:{call a ...