写在前⾯:
Flash存储器在嵌⼊式开发实施中有着重要位置,⽂本介绍⼀些关于Flash存储器的知识。 本⽂内容如下: (⼀) (⼆) (2-1) (2-2) (2-3) (2-4) (三) (3-1) (3-2) (3-3) (3-4) (3-5) (3-6) (3-7) (3-8) (3-9) (3-10) (四) (4-1) (4-2) (4-3) (4-4) (4-5)
⼀、Nand Flash 和Nor Flash存储器简介
我们使⽤的智能⼿机除了有⼀个可⽤的空间(如苹果8G、16G等),还有⼀个RAM容量,为什么需要⼆个这样的芯⽚做存储呢,这就是我们下⾯要讲到的。这⼆种存储设备我们都统称为“FLASH”,FLASH是⼀种存储芯⽚,全名叫Flash EEPROM Memory,通过程序可以修改数据,即平时所说的“闪存”。Flash⼜分为NAND flash和NOR flash⼆种。U盘和MP3⾥⽤的就是这种存储器。
Nand flash存储器经常可以与NOR Flash存储器互换使⽤。⼤多数情况下闪存只是⽤来存储少量的代码,这时NOR闪存更适合⼀些。⽽NAND则是⾼数据存储密度的理想解决⽅案。 (1)Nor Flash存储器简介
NOR Flash 的读取和我们常见的 SDRAM 的读取是类似,⽤户可以直接运⾏装载在 NOR FLASH ⾥⾯的代码,这样可以减少 SRAM 的容量从⽽节约成本。
intel公司1988年开发出了NOR flash技术。NOR的特点是芯⽚内执⾏(XIP, eXecute In Place),这样应⽤程序可以直接在flash 闪存内运⾏,不必再把代码读到系统RAM中。NOR的传输效率很⾼,在1~4MB的⼩容量时具有很⾼的成本效益,但是其很低的写⼊和擦除速度⼤⼤影响了它的性能。
⼀种NorFlash存储芯⽚
(2)Nand Flash存储器简介
Nand-flash内存是flash内存的⼀种,19年,东芝公司发表了NAND flash结构。其内部采⽤⾮线性宏单元模式,为固态⼤容量内存的实现提供了廉价有效的解决⽅案。
Nand-flash存储器具有容量较⼤,改写速度快等优点,适⽤于⼤量数据的存储,因⽽在业界得到了越来越⼴泛的应⽤,如嵌⼊式产品中包括数码相机、MP3随⾝听记忆卡、体积⼩巧的U盘等
⼀种Nand Flash存储芯⽚
⼆、NAND flash和NOR flash原理
(2-1)、存储数据的原理
两种闪存都是⽤三端器件作为存储单元,分别为源极、漏极和栅极,与场效应管的⼯作原理 相同,主要是利⽤电场的效应来控制源极与漏极之间的通断,栅极的 电流消耗极⼩,不同 的是场效应管为单栅极结构,⽽ FLASH 为双栅极结构,在栅极与硅衬底之间增加了⼀个浮置栅极。[attach]158 [/attach]
浮置栅极是由氮化物夹在两层⼆氧化硅材料之间构成的,中间的氮化物就是可以存储电荷的 电荷势阱。上下两层氧化物的厚度⼤于 50 埃,以避免发⽣击穿。
(2-2)、浮栅的重放电
向数据单元内写⼊数据的过程就是向电荷势阱注⼊电荷的过程,写⼊数据有两种技术,热电 ⼦注⼊(hot electron injection)和 F-N 隧道效应(Fowler Nordheim tunneling),前⼀种是通过源 极给浮栅充电,后⼀种是通过硅基层给浮栅充电。NOR 型 FLASH 通过热电⼦注⼊⽅式给浮 栅充电,⽽ NAND 则通过 F-N 隧道效应给浮栅充电。
在写⼊新数据之前,必须先将原来的数据擦除,这点跟硬盘不同,也就是将浮栅的电荷放掉, 两种 FLASH 都是通过 F-N 隧道效应放电。 (2-3)、0 和 1
这⽅⾯两种 FLASH ⼀样,向浮栅中注⼊电荷表⽰写⼊了'0',没有注⼊电荷表⽰'1',所以对 FLASH 清除数据是写 1 的,这与硬盘正好相反;
对于浮栅中有电荷的单元来说,由于浮栅的感应作⽤,在源极和漏极之间将形成带正电的空 间电荷区,这时⽆论控制极上有没有施加偏置电压,晶体管都将处于 导通状态。⽽对于浮 栅中没有电荷的晶体管来说只有当控制极上施加有适当的偏置电压,在硅基层上感应出电 荷,源极和漏极才能导通,也就是说在没有给控制极施 加偏置电压时,晶体管是截⽌的。 如果晶体管的源极接地⽽漏极接位线,在⽆偏置电压的情况下,检测晶体管的导通状态就可 以获得存储单元中的数据,如果位线上的电平为低,说明晶体管处于 导通状态,读取的数 据为 0,如果位线上为⾼电平,则说明晶体管处于截⽌状态,读取的数据为 1。由于控制栅 极在读取数据的过程中施加的电压较⼩或根本不施加 电压,不⾜以改变浮置栅极中原有的 电荷量,所以读取操作不会改变 FLASH 中原有的数据。
(2-4)、连接和编址⽅式
两种 FLASH 具有相同的存储单元,⼯作原理也⼀样,为了缩短存取时间并不是对每个单元 进⾏单独的存取操作,⽽是对⼀定数量的存取单元进⾏集体操作, NAND 型 FLASH 各存 储单元之间是串联的,⽽ NOR 型 FLASH 各单元之间是并联的;为了对全部的存储单元有效管理,必须对存储单元进⾏统⼀编址。
NAND 的全部存储单元分为若⼲个块,每个块⼜分为若⼲个页,每个页是 512byte,就是 512 个 8 位数,就是说每个页有 512 条位线,每条位线下 有 8 个存储单元;那么每页存储的数 据正好跟硬盘的⼀个扇区存储的数据相同,这是设计时为了⽅便与磁盘进⾏数据交换⽽特意 安排的,那么块就类似硬盘的簇;容 量不同,块的数量不同,组成块的页的数量也不同。 在读取数据时,当字线和位线锁定某个晶体管时,该晶体管的控制极不加偏置电压,其它的 7 个都加上偏置电压 ⽽导通,如果这个晶体管的浮栅中有电荷就会导通使位线为低电平, 读出的数就是 0,反之就是 1。
NOR 的每个存储单元以并联的⽅式连接到位线,⽅便对每⼀位进⾏随机存取;具有专⽤的 地址线,可以实现⼀次性的直接寻址;缩短了 FLASH 对处理器指令的执⾏时间。
三、NAND flash和NOR flash的区别
(3-1)、NAND flash和NOR flash的性能⽐较
flash闪存是⾮易失存储器,可以对称为块的存储器单元块进⾏擦写和再编程。任何flash器件的写⼊操作只能在空或已擦除的单元内进⾏,所以⼤多数情况下,在进⾏写⼊操作之前必须先执⾏擦除。NAND器件执⾏擦除操作是⼗分简单的,⽽NOR则要求在进⾏擦除前先要将⽬标块内所有的位都写为0。由于擦除NOR器件时是以~128KB的块进⾏的,执⾏⼀个写⼊/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进⾏的,执⾏相同的操作最多只需要4ms。执⾏擦除时块尺⼨的不同进⼀步拉⼤了NOR和NADN之间的性能差距,统计表明,对于给定的⼀套写⼊操作(尤其是更新⼩⽂件时),更多的擦除操作必须在基于NOR的单元中进⾏。这样,当选择存储解决⽅案时,设计师必须权衡以下的各项因素。
1、NOR的读速度⽐NAND稍快⼀些。 2、NAND的写⼊速度⽐NOR快很多。
3、NAND的4ms擦除速度远⽐NOR的5s快。 4、⼤多数写⼊操作需要先进⾏擦除操作。
5、NAND的擦除单元更⼩,相应的擦除电路更少。
(3-2)、NAND flash和NOR flash的接⼝差别
NOR flash带有SRAM接⼝,有⾜够的地址引脚来寻址,可以很容易地存取其内部的每⼀个字节。
NAND器件使⽤复杂的I/O⼝来串⾏地存取数据,各个产品或⼚商的⽅法可能各不相同。8个引脚⽤来传送控制、地址和数据信息。NAND读和写操作采⽤512字节的块,这⼀点有点像硬盘管理此类操作,很⾃然地,基于NAND的存储器就可以取代硬盘或其他块设备。 (3-3)、NAND flash和NOR flash的容量和成本
NAND flash的单元尺⼨⼏乎是NOR器件的⼀半,由于⽣产过程更为简单,NAND结构可以在给定的模具尺⼨内提供更⾼的容量,也就相应地降低了价格。
NOR flash占据了容量为1~16MB闪存市场的⼤部分,⽽NAND flash只是⽤在8~128MB的产品当中,这也说明NOR主要应⽤在代码存储介质中,NAND适合于数据存储,NAND在CompactFlash、Secure Digital、PC Cards和MMC存储卡市场上所占份额最⼤。
(3-4)、NAND flash和NOR flash的可靠性和耐⽤性
采⽤flahs介质时⼀个需要重点考虑的问题是可靠性。对于需要扩展MTBF的系统来说,Flash是⾮常合适的存储⽅案。可以从寿命(耐⽤性)、位交换和坏块处理三个⽅⾯来⽐较NOR和NAND的可靠性。
(3-5)、NAND flash和NOR flash的寿命(耐⽤性)
在NAND闪存中每个块的最⼤擦写次数是⼀百万次,⽽NOR的擦写次数是⼗万次。NAND存储器除了具有10⽐1的块擦除周期优势,典型的NAND块尺⼨要⽐NOR器件⼩8倍,每个NAND存储器块在给定的时间内的删除次数要少⼀些。
(3-6)、位交换
所有flash器件都受位交换现象的困扰。在某些情况下(很少见,NAND发⽣的次数要⽐NOR多),⼀个⽐特位会发⽣反转或被报告反转了。⼀位的变化可能不很明显,但是如果发⽣在⼀个关键⽂件上,这个⼩⼩的故障可能导致系统停机。如果只是报告有问题,多读⼏次就可能解决了。当然,如果这个位真的改变了,就必须采⽤错误探测/错误更正(EDC/ECC)算法。位反转的问题更多见于NAND闪存,NAND的供应商建议使⽤NAND闪存的时候,同时使⽤
(3-7)、EDC/ECC算法
这个问题对于⽤NAND存储多媒体信息时倒不是致命的。当然,如果⽤本地存储设备来存储操作系统、配置⽂件或其他敏感信息时,必须使⽤EDC/ECC系统以确保可靠性。
(3-8)、坏块处理
NAND器件中的坏块是随机分布的。以前也曾有过消除坏块的努⼒,但发现成品率太低,代价太⾼,根本不划算。
NAND器件需要对介质进⾏初始化扫描以发现坏块,并将坏块标记为不可⽤。在已制成的器件中,如果通过可靠的⽅法不能进⾏这项处理,将导致⾼故障率。
(3-9)、易于使⽤
可以⾮常直接地使⽤基于NOR的闪存,可以像其他存储器那样连接,并可以在上⾯直接运⾏代码。
由于需要I/O接⼝,NAND要复杂得多。各种NAND器件的存取⽅法因⼚家⽽异。在使⽤NAND器件时,必须先写⼊驱动程序,才能继续执⾏其他操作。向NAND器件写⼊信息需要相当的技巧,因为设计师绝不能向坏块写⼊,这就意味着在NAND器件上⾃始⾄终都必须进⾏虚拟映射。
(3-10)软件⽀持
当讨论软件⽀持的时候,应该区别基本的读/写/擦操作和⾼⼀级的⽤于磁盘仿真和闪存管理算法的软件,包括性能优化。在NOR器件上运⾏代码不需要任何的软件⽀持,在NAND器件上进⾏同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD),NAND和NOR器件在进⾏写⼊和擦除操作时都需要MTD。
使⽤NOR器件时所需要的MTD要相对少⼀些,许多⼚商都提供⽤于NOR器件的更⾼级软件,这其中包括M-System的TrueFFS驱动,该驱动被Wind River System、Microsoft、QNX Software System、Symbian和Intel等⼚商所采⽤。驱动还⽤于对DiskOnChip产品进⾏仿真和NAND闪存的管理,包括纠错、坏块处理和损耗平衡。
四、应⽤
(4-1)序列接⼝闪存
SPI总线:单⼀master对单⼀slave
序列接⼝闪存是⼀种使⽤序列式接⼝(通常使⽤序列周边接⼝总线(SPI))来循序访问数据内容,⼩型且低功率的闪存。当其使⽤于嵌⼊式系统上时,序列式闪存⽐平⾏式闪存在印刷电路板上所需的连接线数要少得多;因为序列式接⼝可以⼀次同时发送与接受数据的⼀个⽐特,这使得序列式闪存具有减少在印刷电路板上所占⾯积、耗电量及整体系统成本的优势。
有好⼏个理由说明了为何使⽤较少外部接脚的序列式组件,⽽不是使⽤平⾏式组件,可以⼤⼤的降低整体的成本:
许多特殊应⽤集成电路是受接垫所的〈Pad-limited〉,意思是晶粒的⼤⼩是由引线键合接垫的数量所决定,⽽不是由组件逻辑门数及功能复杂度所决定。减少键合接垫数⾃然允许更精简的集成电路在更⼩的晶粒上;这也增加了晶圆上所能制造出的晶粒数量,同时也降低了单位晶粒的成本。
减少了外在接脚的数⽬,同时降低了IC组装及封装的成本。序列式接⼝组件⽐平⾏式接⼝组件所使⽤的封装型式来的⼩且简单。封装型式⼩及较低的外在接脚数⽬,所以占据的PCB⾯积也⼩。较少的外在接脚数⽬,也简化了PCB上绕线的复杂度。
SPI闪存的型式主要有两种:⼀种是⼩页特性且内含⼀个或多个内部SRAM的页缓冲器,能够让整个页的数据都读⼊缓冲器、修改部分数据、⽽后再写回闪存中(例如Atmel的DataFlash:AT45,Micron Technology页抹除NOR型闪存)。另⼀种则有较⼤的区段。⼀般来说,SPI闪存的最⼩区段⼤⼩是4kB,最⼤可达kB。因为此类SPI闪存缺乏内部SRAM缓冲器,修改数据时必须将完整的数据页读出,再修改数据后,写回闪存中,使得管理速度变慢。SPI闪存⽐平⾏式接⼝闪存便宜,因此应⽤于具有程序代码對映(Code-Shadowing)功能的系统上,是⼀个不错的选择。
⽽这两种型式的闪存不容易做到简单的直接置换,因为没有相同的外部接脚且命令集也互不兼容。 (4-2)固件存储
使⽤平⾏式接⼝闪存的个⼈电脑BIOS
随着现下CPU的速度越来越快,平⾏式接⼝闪存组件的速度通常远⼩于与其连接的电脑系统存储器总线速度。相较之下,当前
的SRAM访问的时间通常⼩于10ns,⽽DDR2 SDRAM访问时间⼀般则⼩于20ns。因为这个因素,⼀般合理的使⽤⽅式是将要存放于對映存储器⾥的代码预先存放于闪存中,并在CPU运⾏代码前将闪存中的代码复制到對映存储器中,如此⼀来,CPU就可以⽤最⾼速度来取⽤代码。设备上的固件也可以预先存放于序列式接⼝闪存中,在设备引导后,将其复制到SDRAM或SRAM⾥。[24]使⽤外部序列式闪存⽽不⽤芯⽚中内嵌闪存是因为芯⽚制程上的考虑⽽妥协的结果(适⽤于⾼速逻辑制程通常不适⽤于闪存,反之亦然)。如果有需要将⼀个宏块的固件代码读⼊时,通常会事先将代码压缩后再存⼊闪存中,就可以缩⼩闪存芯⽚上被使⽤的区域。典型的序列式接⼝闪存应⽤于固件存储上
有:硬盘、以太⽹控制器、DSL调制解调器、⽆线⽹络接⼝卡等等。对于UEFI⽽⾔,因为在UEFI启动过程的DXE阶段前UEFI对内存的访问有限,所以UEFI固件通常保存在NOR Flash中。
(4-3)闪存作为硬盘的替代品
华硕Eee PC的SSD主条⽬:固态硬盘
近期另⼀个闪存的应⽤就是作为硬盘的替代品。因为闪存没有硬盘驱动器械因素的并且可以多单元并⾏访问,所以固态硬盘
(SSD)在速度、噪⾳、耗电量与可靠度等因素的考量上是⾮常吸引⼈的。闪存组件正获取便携式⾏动设备上第⼆存储组件的地位。同时使⽤在⾼性能台式机及⼀些具有RAID和SAN架构的服务器上作为硬盘的替代品。
但是以闪存为基础的固态硬盘,也存在其他⽅⾯因素,使得它并不具有吸引⼒。例如闪存每千兆⽐特的成本依旧⽐硬盘⾼出许
多。[25]另⼀个不具吸引的因素就是闪存有着有限的P/E循环次数,但是这个因素可以透过程序优化,当前似乎已在⼈为控制能⼒范围内,加上容量的增⼤使得每单位读写次数减少,让它的使⽤寿命可以达到传统硬盘甚⾄更⾼的⽔准,因此以闪存为基础的固态硬盘也施⾏了与现有硬盘相同的保固。
对于关系性数据库或其他使⽤ACID的数据库事务系统上,即使是使⽤当前最慢的闪存存储媒体也可以⽐使⽤硬盘所组成的数组,在速度的表现上有着显著的提升。[
于2006年6⽉,三星发布第⼀批配备闪存固态硬盘的个⼈电脑:Q1-SSD及Q30-SSD,均使⽤32GB的固态硬盘,并且初期只在韩国地区发售。
在2008年,固态硬盘成为第⼀版MacBook Air的选⽤配备,并且从2010年起,固态硬盘成为所有Macbook Air笔记本电脑的标准配备。2011年后开始,由于固态硬盘成为Intel所倡议超极本的⼀部分,超薄笔记本电脑以固态硬盘为标准配备的数量逐渐增加。因为固态硬盘的性能远⾼于机械硬盘,所以2011年以后固态硬盘在PC上逐步得到普及。
也有混合型技术,诸如混合型硬盘和ReadyBoost,尝试将两种技术的优点合并,使⽤闪存作为硬盘上常⽤且鲜少修改的⽂件,如应⽤程序及操作系统的可执⾏⽂件,的⾼速⾮易失性缓存;或者使⽤固态硬盘加快机械硬盘的读写速度。
(4-4)闪存作为随机存取存储器[编辑]
截⾄2012年,有许多的尝试想把闪存作为电脑的主存,动态随机存取存储器(DRAM)。在这个应⽤⾓⾊上,闪存的速度是⽐现有的DRAM慢,但是耗电量却远⼩于DRAM。
(4-5)闪存作为长时间⽂件存储媒体
当前还不清楚闪存作为长时间⽂件存储媒体的有效⽂件存储时间究竟有多长?在⽂件数据不常被访问的条件下,最适合的保存温度与湿度是多少?需不需要作预防性的改写保护?等等相关的保存技术均有待进⼀步的研究发展。
参考⽂档链接:
(4)维基百科
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo6.com 版权所有 湘ICP备2023023988号-11
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务