NAND_Application_Theory.ppt_第1页
NAND_Application_Theory.ppt_第2页
免费预览已结束,剩余67页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

nand application theory,csmc mbu smt,contents,1.description,flash存储器又称闪存,目前主要分两种: nor flash和nand flash nor flash的特点: -地址线与数据线分开; -芯片内执行(xip, execute in place),这样应用程序可以直接在flash内运行,不必再把代码读到系统ram中; -nor的传输效率很高,在14mb的小容量时具有很高的成本效益,但是写入和擦除速度较低; nand flash的特点: -复用地址、数据线; -存储容量大; -写入和擦除的速度快; 应用nand的困难在于flash的管理和需要特殊的系统接口。,2.nor flash和nand flash的区别,1.读写速度 写操作:任何flash器件的写入操作都只能在空或已擦除的单元内进行,即先擦后写。nand执行擦除操作,擦除单元比nor小,擦除电路更简单的,而nor写入与擦除速度较低。 读取时,由于nand要先向芯片发送地址信息进行寻址才能开始读写数据,而它的地址信息包括块号、块内页号和页内字节号等部分,要顺序选择才能定位到要操作的字节;这样每进行一次数据访问需要经过三次寻址,至少要三个时钟周期;而nor flash的读操作则是以字或字节为单位进行的,直接读取,所以读取数据时,nor有明显优势。,2.易用性 nor flash地址线和数据线分开,带有通用的sram接口,可以轻松地挂接在cpu的地址、数据总线上,cpu可以直接通过地址总线对nor flash进行访问。xip允许应用程序直接在flash内运行,不必再把代码读到系统ram中,可以简化产品设计;主要被考虑用在存储固件、启动代码、操作系统和其他的很少被修改的数据上。 nand flash采用复用的数据线和地址线,必须先通过寄存器串行地进行数据存取,时序较为复杂,需要cpu集成nand控制器。 各个产品或厂商对信号的定义不同,增加了应用的难度; 3.容量和成本 nor flash的每个存储单元与位线相连,增加了芯片内位线的数量,不利于存储密度的提高。所以在面积和工艺相同的情况下,nand flash结构可以在给定的模具尺寸内提供更高的容量,容量比nor要大得多, 也就相应地降低了价格,生产成本更低。,4.可靠性 nand flash接口和操作均相对复杂,位交换操作也很多,相邻单元之间较易发生位翻转而导致坏块出现,而且是随机分布的,在使用过程中还难免产生新的坏块,所以在使用的时候要配合 edc/ecc(错误探测/错误更正)和bbm(坏块管理)等软件措施来保障数据的可靠性。 nor flash接口简单,数据操作少,位交换操作少,因此可靠性高,极少出现坏块。 5.升级对比 nor flash的升级较为麻烦,因为不同容量的nor flash的地址线需求不一样,所以在更换不同容量的nor flash芯片时不方便。 而不同容量的nand flash的接口是固定的,所以升级简单。 6.寿命对比 在nand闪存中每个块的最大擦写次数是一百万次,而nor的擦写次数是十万次。,3.存储原理,两种闪存都是用三端器件作为存储单元,分别为源极、漏极和栅极,主要利用电场的效应来控制源极和漏极之间的通断,flash采用双栅极结构,在栅极与硅衬底之间增加一个浮置栅极。 浮置栅极是由氮化物夹在两层二氧化硅材料之间构成的,中间的氮化物就是可以存储电荷的电荷势阱。,向数据单元内写入数据的过程就是向电荷势阱注入电荷的过程,写入数据有两种技术: -热电子注入(hot electron injection),通过源极给浮栅充电; -f-n隧道效应(fowler nordheim tunneling),通过硅基层给浮栅充电; nor型flash通过热电子注入方式给浮栅充电,而nand则通过 f-n隧道效应给浮栅充电。 在写入新数据之前,必须先将原来的数据擦除,这点跟硬盘不同,也就是将浮栅的电荷放掉,两种flash都是通过f-n隧道效应放电。,0和1 这方面两种flash一样,向浮栅中注入电荷表示写入了0,没有注入电荷表示1,所以对flash清除数据是写1的,这与硬盘正好相反; 对于浮栅中有电荷的单元来说,由于浮栅的感应作用,在源极和漏极之间将形成带正电的空间电荷区,这时无论控制极上有没有施加偏置电压,晶体管都将处于导通状态。而对于浮栅中没有电荷的晶体管来说只有当控制极上施加有适当的偏置电压,在硅基层上感应出电荷,源极和漏极才能导通,也就是说在没有给控制极施加偏置电压时,晶体管是截止的。,如果晶体管的源极接地而漏极接位线,在无偏置电压的情况下,检测晶体管的导通状态就可以获得存储单元中的数据: 如果位线上的电平为低,说明晶体管处于导通状态,读取的数据为0; 如果位线上为高电平,则说明晶体管处于截止状态,读取的数据为1。由于控制栅极在读取数据的过程中施加的电压较小或根本不施加 电压,不足以改变浮置栅极中原有的电荷量,所以读取操作不会改变flash中原有的数据。,nand在读取数据时,当锁定位线上某个晶体管后,该晶体管的控制极不加偏置电压,其它的7个都加上偏置电压 而导通,如果这个晶体管的浮栅中有电荷就会导通使位线为低电平,读出的数就是0,反之就是1; nor的每个存储单元以并联的方式连接到位线,方便对每一位进行随机存取;具有专用的地址线,可以实现一次性的直接寻址;,mlc架构,nand flash可分为三大架构: -单层式储存(single level cell),即slc; -多层式储存(multi level cell),即mlc; -多位式存储(multi bit cell),即mbc; mlc是英特尔(intel)在1997年9月最先研发成功的,其原理是将两个位的信息存入一个浮动栅(floating gate,闪存存储单元中存放电荷的部分),然后利用不同电位的电荷,透过内存储存格的电压控制精准读写,讲白话点就是一个cell存放多个bit。现在常见的mlc架构闪存每cell可存放2bit,容量是同等slc架构芯片的2倍,再加上可利用比较老旧的生产设备来提高产品的容量,而无须额外投资生产设备,可以享有成本与良率的优势。 mlc架构的缺点:使用寿命(存取次数)较短、存取速度慢、功耗大,出错率高。,在一次读写中mlc有四种状态(以每cell存取2bit为例),这就意味着mlc存储时要更精确地控制每个存储单元的充电电压,读写时就需要更长的充电时间来保证数据的可靠性。它已经不再是简单的开关电路,而是要控制四种不同的状态,这在产品的出错率方面和稳定性方面有较大要求。 在一次读写中slc只有0或1两种状态,这种技术能提供快速的程序编程与读取,只有0和1两种状态,非常稳定。,slc与mlc的区别,toshiba 32g nand,nand interface -bus width*8bits -multiplexed address and data input/output as well as command input -package : lga,power supply -3.3v device: vcc=2.73.6v mode control -serial input/output -command control number of valid blocks -min 31488 blocks -max 33184 blocks,access time -cell array to register 200us max -serial read cycle 25ns min program/erase time -auto page program 1600us/page -auto block erase 4.5ms/block,according to the material toshiba provided, 32g nand is a two-die stack(16g*2). 32g nand共有33184blocks,block由页(page)组成,每128pages形成一个block,每page为8568bytes。 -32gbytes=33184blocks -1block=128pages=(1m+47k)bytes -1page=8568bytes=(8192+376)bytes (8192bytes为main area,376bytes为spare area) -register=8568bytes,memory mapping,main area: 主要用于存储用户数据; spare area: 1.标记是否为坏块(一般芯片原厂都会在出厂时都会将坏块第一个page的spare area的第6个byte标记为不等于0xff的值); 2.存储ecc(error correction code)数据; 3.存储一些和文件系统相关的数据;,array organization,nand flash functional block diagram,4.nand flash的寻址方式,block是nand flash中最大的操作单元,擦除就是按照block为单位完成的,而编程/读取是按照page为单位完成的。 所以,按照这样的组织方式可以形成所谓的三类地址: -block address -page address(row address) -column address,nand flash的地址表示为: block address|page address in block|halfpage pointer|column address 地址传送顺序是: column address,page address,block address,三星64mbyte的k9f1208u0m,每页528byte,每32 个page形成一个block,1 block=16kbyte, 1page=528byte=512byte(main area)+16byte(spare area) 1block=32page number of block=4096 对于nand flash 来讲,数据宽度是8 位,地址和命令只能在i/o7:0上传递。 512byte需要9bit来表示,对于528byte系列的nand,这512byte被分成1st half和2nd half,各自的访问由地址指针命令来选择,a7:0就是所谓的column address。 32 个page 需要5bit 来表示,占用a13:9,即该page 在块内的相对地址。block的地址是由a14 以上的bit 来表示,64mbyte的nand,共4096block,因此,需要12 个bit 来表示,即a25:14。, nand器件能够复用指令、地址和数据总线,从而节省了引脚数量。复用接口的一项好处,就在于能够利用同样的硬件设计和电路板,支持较大的nand器件。 复用接口的缺点是:各个产品或厂商对信号的定义不同,会增加应用的难度。,第1 步是传递column address,就是nand_addr7:0,不需移位即可传递到i/o7:0上,而halfpage pointer 即bit8 是由操作指令决定的,即指令决定在哪个halfpage 上进行读写。而真正的bit8 的值是dont care 的。 第2 步就是将nand_addr 右移9 位,将nand_addr16:9传到i/o7:0上 ; 第3 步将nand_addr24:17放到i/o 上 ; 第4 步需要将nand_addr25放到i/o 上 ; 因此,整个地址传递过程需要4 步才能完成,即4-step addressing。,command definitions,command latch enable:cle 当cle为高电平,在we#信号的上升沿时,将地址被锁存到nand命令寄存器。 address latch enable: ale 当ale为高电平,在we#信号的上升沿时,地址被锁存到nand地址寄存器中。,chip enable:ce 当nand处于ready state,并且ce为高电平,nand进入待机模式;当nand处于busy state,即在进行读写或擦除操作时,ce信号不管什么状态,nand都不会进入待机模式。 write enable:we we#负责将数据、地址或指令写入nand之中。,read enable:re 在re下降沿,允许输出数据缓冲器,并且列地址自动+1 ready/busy:ry/by ry/by 信号用于标示nand状态。在进行读、写、擦除操作时,该信号为低电平,nand处于busy status; 操作完成后,该信号为高电平,nand处于 ready status. 该信号是漏极开路,需要采用上拉电阻。,i/o port: i/o0 to i/o7 i/o端口用于命令、地址以及i/o数据的传输。 write protect: wp wp#用于保护nand数据,防止意外修改或擦除。 该信号无连接时,自动接vss,防止对数据改写。,52pin assignment,pin names,5.command definitions,read operations,page read (00h-30h) cle高,ce#低,在we#上升沿,发出00h指令到命令寄存器,ale高,5个时钟周期后,发出30h结束指令,数据开始被读取到数据寄存器,r/b#在读取时低,读取结束后,r/b#高,在脉冲信号re#下顺序读取数据。,random data read (05h-e0h) -在page read命令之后发出; -仅限当前页访问;,page read cache mode operations,cache register:增加读取速度 前提:通过page read 读取一页到cache: -page read cache mode sequential (31h) 顺序读取下一页到数据寄存器; 只可在block内进行 -page read cache mode random (00h-31h) 读取指定页到数据寄存器; 可在block间进行,不可以在die间进行此操作,page read cache mode last (3fh) 当块中最后一页读完后或者没有新的page read cache mode指令发出时,发布3fh指令;,read id (90h) the read id command reads a 5-byte table that includes manufacturer id, device configuration, and part-specific information for address 00h, bytes 5 to 7 are unknown reserved bytes. the device will repeatedly output the same 8 bytes of data if the host continues to toggle re#. for address 20h, the device will repeatedly output the same 4 bytes of data if the host continues to toggle re#.,read parameter page (ech) when issued, the read parameter page (ech) command returns device configuration information. issue 00h to resume reading the parameter page.,read status (70h) all read cycles will originate from the status register until a new command is issued. changes in the status register are seen on i/o7:0 as long as ce# and re# are low.,read unique id (edh) this id is arbitrary; however, this id is guaranteed to be unique for every nand flash device manufactured.,program operations,program page (80h-10h) 发出80h指令后,经过5个周期后,在连续的we#周期,数据开始写入指定地址,数据输入结束,发出10h指令;,random data input (85h) 在发出10h指令之前,随时可以发出85h指令写入其他数据;,program page cache mode (80h-15h) cache program:写缓冲; 发出80h开始写操作,5个周期后数据开始被写入cache,发出15h指令后,在we#上升沿,数据被写入数据寄存器;,internal data move -read for internal data move (00h-35h) -program for internal data move (85h-10h) read for internal data move (00h-35h) 通过此命令读取一页到cache中; program for internal data move (85h-10h) 通过此命令对数据进行修改,修改的数据被另行存储,发出10h指令后,原有数据与修改数据一起写入数据寄存器;,block erase operation,block erase (60h-d0h) 擦除操作以块为单位;在发出60h指令,经过3个周期后发出d0h指令,对指定块进行擦除;,6.error management,bad block 一般nand都会标明minimum number of valid blocks (nvb). bad block在nand出厂时就可能有,在使用过程中也有可能不断增加。 坏块的特性是:当编程/擦除这个块时,不能将某些位拉高,这会造成page program和block erase操作时的错误,相应地反映到status register的相应位。,坏块分类: -固有坏块:这是生产过程中产生的坏块,一般芯片原厂都会在出厂时都会将坏块第一个page的spare area的第6个byte标记为不等于0xff的值。 -使用坏块:这是在nand flash使用过程中,如果block erase或者page program错误,就可以简单地将这个块作为坏块来处理,这个时候需要把坏块标记起来。为了和固有坏块信息保持一致,将新发现的坏块的第一个page的 spare area的第6个byte标记为非0xff的值。,solution: -bad-block management(坏块管理); -error-correction algorithms(纠错); -wear-leveling algo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论