小土刀

【计算机系统导论】4.3 闪存

草稿阶段


  • 主存储器(存储位、内存编址、字节顺序、纠错码、高速缓存、内存封装及其类型)
  • 半导体主存储器(组织、DRAM和SRAM)
  • 内存安全问题(缓冲区溢出攻击、ROF 攻击)

https://zh.wikipedia.org/wiki/%E9%97%AA%E5%AD%98 注意参考页面右边的类别(具体都需要介绍一下)

快闪存储器(英语:flash memory),是一种电子式可清除程序化只读存储器的形式,允许在操作中被多次擦或写的存储器。这种科技主要用于一般性数据存储,以及在电脑与其他数字产品间交换传输数据,如储存卡与U盘。闪存是一种特殊的、以宏块抹写的EEPROM。早期的闪存进行一次抹除,就会清除掉整颗芯片上的数据。
闪存的成本远较可以字节为单位写入的EEPROM来的低[来源请求],也因此成为非易失性固态存储最重要也最广为采纳的技术。像是PDA、笔记本电脑、数字随身听、数码相机与手机上均可见到闪存。此外,闪存在游戏主机上的采用也日渐增加,藉以替换存储游戏数据用的EEPROM或带有电池的SRAM。
闪存是非易失性的内存。这表示单就保存数据而言,它是不需要消耗电力的。与硬盘相比,闪存也有更佳的动态抗震性。这些特性正是闪存被移动设备广泛采用的原因。闪存还有一项特性:当它被制成储存卡时非常可靠──即使浸在水中也足以抵抗高压与极端的温度。闪存的写入速度往往明显慢于读取速度。
虽然闪存在技术上属于EEPROM,但是“EEPROM”这个字眼通常特指非快闪式、以小区块为清除单位的EEPROM。它们典型的清除单位是字节。因为老式的EEPROM抹除循环相当缓慢,相形之下快闪记体较大的抹除区块在写入大量数据时带给其显著的速度优势。闪存最常见的封装方式是TSOP48和BGA,在逻辑接口上的标准则由于厂商阵营而区分为两种:ONFI和Toggle。手机上的闪存常常以eMMC的方式存在。

闪迪 Cruzer TitaniumU盘的印刷电路板上的Samsung闪存(左)与单片机(右)
目录 [隐藏]
1 历史
2 运作原理
2.1 NOR Flash
2.2 NAND Flash
2.3 V-NAND Flash
2.4 SLC
2.5 MLC
2.6 TLC
3 限制
3.1 区块抹除
3.2 记忆耗损
3.3 读取干扰
3.4 写入(编程)干扰
4 低级访问
4.1 NOR Flash
4.2 NAND Flash
4.3 标准化
5 NOR型与NAND型闪存的差异
5.1 写入续航力
6 闪存文件系统
7 容量
8 传输速率
9 应用
9.1 序列接口闪存
9.1.1 固件存储
9.2 闪存作为硬盘的替代品
9.3 闪存作为随机存取存储器
9.4 闪存作为长时间文件存储媒体
10 工业产值
11 未来展望
12 相关条目
13 参考文献
14 外部链接
历史[编辑]
闪存(无论是NOR型或NAND型)是舛冈富士雄博士在1984年于东芝公司工作时发明。据东芝表示闪存之所以命名为“Flash”是由舛冈博士的同事有泉正二建议,因为这种内存的抹除流程让他想起了相机的闪光灯。舛冈博士在1984年的加州旧金山IEEE国际电子组件会议(International Electron Devices Meeting, IEDM)上发表了这项发明。Intel看到了这项发明的巨大潜力,并于1988年推出第一款商业性的NOR Flash芯片。
NOR Flash需要很长的时间进行抹写,但是它提供完整的定址与数据总线,并允许随机存取存储器上的任何区域,这使的它非常适合替换老式的ROM芯片。当时ROM芯片主要用来存储几乎不需更新的代码,例如电脑的BIOS或机上盒(Set-top Box)的固件。NOR Flash可以忍受一万到一百万次抹写循环,它同时也是早期的可移除式快闪存储媒体的基础。CompactFlash本来便是以NOR Flash为基础的,虽然它之后跳槽到成本较低的NAND Flash。
东芝在1989年的国际固态电路研讨会(ISSCC)上发表了NAND Flash。NAND Flash具有较快的抹写时间,而且每个存储单元的面积也较小,这让NAND Flash相较于NOR Flash具有较高的存储密度与较低的每比特成本。同时它的可抹除次数也高出NOR Flash十倍。然而NAND Flash的I/O接口并没有随机存取外部地址总线,它必须以区块性的方式进行读取,NAND Flash典型的区块大小是数百至数千比特。
因为多数微处理器与微控制器要求字节档次的随机存取,所以NAND Flash不适合替换那些用以装载程序的ROM。从这样的角度看来,NAND Flash比较像光盘、硬盘这类的次级存储设备。NAND Flash非常适合用于储存卡之类的大量存储设备。第一款创建在NAND Flash基础上的可移除式存储媒体是SmartMedia,此后许多存储媒体也跟着采用NAND Flash,包括MultiMediaCard、Secure Digital、Memory Stick与xD卡。
运作原理[编辑]

NOR flash的写入与其在硅晶上的结构
闪存将数据存储在由浮闸晶体管组成的记忆单元数组内,在单阶存储单元(Single-level cell, SLC)设备中,每个单元只存储1比特的信息。而多阶存储单元(Multi-level cell, MLC)设备则利用多种电荷值的控制让每个单元可以存储1比特以上的数据。
NOR Flash[编辑]

借由热电子注入写入一个NOR Flash记忆单元(将其在逻辑上设为0)

借由量子穿隧抹除一个NOR Flash记忆单元(将其在逻辑上设为1)
闪存的每个存储单元与标准MOSFET类似,不同的是闪存的晶体管有两个而并非一个栅极。在顶部的是控制栅(Control Gate, CG),如同其他MOS晶体管。但是它下方则是一个以氧化物层与周遭绝缘的浮栅(Floating Gate, FG)。这个FG放在CG与MOSFET沟道之间。由于这个FG在电气上是受绝缘层独立的,所以进入的电子会被困在里面。在一般的条件下电荷经过多年都不会逸散。当FG抓到电荷时,它部分屏蔽掉来自CG的电场,并改变这个单元的阈值电压(VT)。在读出期间。利用向CG的电压,MOSFET沟道会变的导电或保持绝缘。这视乎该单元的VT而定(而该单元的VT受到FG上的电荷控制)。这股电流流过MOSFET沟道,并以二进制码的方式读出、再现存储的数据。在每单元存储1比特以上的数据的MLC设备中,为了能够更精确的测定FG中的电荷位准,则是以感应电流的量(而非单纯的有或无)达成的。
逻辑上,单层NOR Flash单元在默认状态代表二进制码中的“1”值,因为在以特定的电压值控制栅极时,电流会流经沟道。经由以下流程,NOR Flash单元可以被设置为二进制码中的“0”值:
1.对CG施加高电压(通常大于5V)。
2.现在沟道打开,所以电子可以从源极流入漏极(想像它是NMOS晶体管)。
3.源-漏电流够高了,足以导致某些高能电子越过绝缘层,并进入绝缘层上的FG,这种过程称为热电子注入。
由于漏极与CG间有一个大的、相反的极性电压,借由量子穿隧效应可以将电子拉出FG,所以能够地用这个特性抹除NOR Flash单元(将其重置为“1”状态)。现代的NOR Flash芯片被分为若干抹除片段(常称为区扇(Blocks or sectors)),抹除操作只能以这些区块为基础进行;所有区块内的记忆单元都会被一起抹除。不过一般而言,写入NOR Flash单元的动作却可以单一字节的方式进行。
虽然抹写都需要高电压才能进行,不过实际上现今所有闪存芯片是借由芯片内的电荷泵产生足够的电压,所以只需要一个单一的电压供应即可。
NAND Flash[编辑]

NAND flash一个高速缓存存储单元
NAND闸高速缓存利用穿隧注入(Tunnel injection)写入,以及穿隧释放(Tunnel release)抹除。NAND Flash在今天的U盘与多数储存卡上都可看到。
V-NAND Flash[编辑]
将NAND闪存在垂直方向进行堆叠和互联,藉以提高单位面积的内存容量。[1]
SLC[编辑]
传统上,每个存储单元内存储1个信息比特,称为单阶存储单元(Single-Level Cell,SLC),使用这种存储单元的闪存也称为单阶存储单元闪存(SLC flash memory),或简称SLC闪存。SLC闪存的优点是传输速度更快,功率消耗更低和存储单元的寿命更长。然而,由于每个存储单元包含的信息较少,其每百万字节需花费较高的成本来生产,大多数用在企业上,很少有消费型SLC存储设备拿来贩卖,富士通生产的FSX系列是首款使用SLC芯片消费型固态硬盘,在2014贩售。
MLC[编辑]
多阶存储单元(Multi-Level Cell,MLC)可以在每个存储单元内存储2个以上的信息比特,其“多阶”指的是电荷充电有多个能阶(即多个电压值),如此便能存储多个比特的值于每个存储单元中。借由每个存储单元可存储更多的比特,MLC闪存可降低生产成本,但比起SLC闪存,其传输速度较慢,功率消耗较高和存储单元的寿命较低,因此MLC闪存技术会用在标准型的储存卡,也用在最常见的消费型固态硬盘和U盘上。另外,如飞索半导体的MirrorBit®技术,也是属于这一类技术。
TLC[编辑]
三阶储存单元(Triple-Level Cell, TLC),这种架构的原理与MLC类似,但可以在每个储存单元内储存3个信息比特。TLC的写入速度比SLC和MLC慢,寿命也比SLC和MLC短,大约1000次。现在,厂商已不使用TLC这个名字,而是称其为3-bit MLC。[2]
限制[编辑]
区块抹除[编辑]
闪存的一种限制在于即使它可以单一字节的方式读或写入,但是抹除一定是一整个区块。一般来说都是设置某一区中的所有比特为“1”,刚开始区块内的所有部分都可以写入,然而当有任何一个比特被设为“0”时,就只能借由清除整个区块来恢复“1”的状态。换句话说闪存(特别是NOR Flash)能提供随机读取与写入操作,却无法提供任意的随机改写。不过其上的区块可以写入与既存的“0”值一样长的消息(新值的0比特是旧值的0比特的超集)。例如:有一小区块的值已抹除为1111,然后写入1110的消息。接下来这个区块还可以依序写入1010、0010,最后则是0000。可是实际上少有算法可以从这种连续写入兼容性得到好处,一般来说还是整块抹除再重写。尽管闪存的数据结构不能完全以一般的方式做更新,但这允许它以“标记为不可用”的方式删除消息。这种技巧在每单元存储大于1比特数据的MLC设备中必须稍微做点修改。
记忆耗损[编辑]
另一项闪存的限制是它有抹写循环的次数限制(大多商业性SLC闪存保证“0”区有十万次的抹写能力,但其他区块不保证)。这个结果部分地被某些固件或文件系统为了在相异区块间分散写入操作而进行的计算写入次数与动态重對映所抵销;这种技巧称为耗损平衡(wear leveling)。另一种处理方法称为坏区管理(Bad Block Management, BBM)。这种方法是在写入时做验证并进行动态重测,如果有验证失败的区块就加以剔除。对多数移动设备而言,这些磨损管理技术可以延长其内部闪存的寿命(甚至超出这些设备的使用年限)。此外,丢失部分数据在这些设备上或许是可接受的。至于会进行大量数据读写循环的高可靠性数据存储应用则不建议使用闪存。不过这种限制不适用于路由器与瘦客户端(Thin clients)等只读式应用,这些设备往往在使用年限内也只会写入一次或少数几次而已。
读取干扰[编辑]
所使用的闪存读取方式随着时间的推移会导致在同一区块中相近的记忆单元内容改变(变成写入动作)。这即是所谓的读取干扰。会导致读取干扰现象的读取次数门槛介于区块被抹除间,通常为100,000次。假如连续从一个记忆单元读取,此记忆单元将不会受损,而受损却是接下来被读取的周围记忆单元。为避免读取干扰问题,闪存控制器通常会计算从上次抹除动作后的区块读取动作总次数。当计数值超过所设置的目标值门槛时,受影响的区块会被复制到一个新的区块,然后将原区块抹除后释放到区块回收区中。原区块在抹除动作后就会像新的一样。若是闪存控制器没有即时介入时,读取干扰错误就会发生,如果错误太多而无法被ECC机制修复时就会伴随着可能的数据丢失。[3][4]
写入(编程)干扰[编辑]
写入干扰(编程干扰)是指当对页(page)进行写入时,由于阈值电压接近的关系,相邻的位(bit)也被升高,从而造成相邻的位出错。闪存电荷非常不稳定,相邻存储电荷的悬浮门间会相互干扰,造成相邻悬浮门间的bit错误,MLC由于存在4组接近的电压,与SLC相比更容易受到干扰。
低级访问[编辑]
闪存芯片的低级接口通常与通过支持外界的定址总线行随机存取的DRAM、ROM、EEPROM等内存不同。 NOR Flash本身为读取操作(支持随机存取)提供外部定址总线;至于解锁、抹除与写入则须以区块-区块(Block-by-block)的方式进行,典型的区块大小为64、128或256字节。NAND Flash所有的动作都必须以区块性基础(Block-wise fashion)运行,包含读、写、解锁与抹除。
NOR Flash[编辑]
从NOR Flash读取数据的方式与从RAM读取数据相近,只要提供数据的地址,数据总线就可以正确的导出数据。基于以上原因,多数微处理器可以将NOR Flash当作原地运行(Execute in place, XIP)内存使用,这意味着存储在NOR Flash上的程序不需复制到RAM就可以直接运行。由于NOR Flash没有原生坏区管理,所以一旦存储区块发生毁损,软件或驱动程序必须接手这个问题,否则可能会导致设备发生异常。在解锁、抹除或写入NOR Flash区块时,特殊的指令会先写入已绘测的记忆区的第一页(Page)。接着快闪记忆芯片会提供可用的指令清单给实体驱动程序,而这些指令是由通用闪存接口(Common Flash memory Interface, CFI)所界定的。与用于随机存取的ROM不同,NOR Flash也可以用在存储设备上;不过与NAND Flash相比,NOR Flash的写入速度一般来说会慢很多。
NAND Flash[编辑]
东芝在1989年发表了NAND Flash架构,[5]这种内存的访问方式类似硬盘、储存卡之类的区块性存储设备,每个区块由数个页所构成。一般来说这些页的大小为512[6]或2048或4096字节。在各个页之间彼此的连接区域会有几个字节(一般而言是数据大小的1/32),这些空间用于存储错误修正码的校验和。以下是一些典型的区块大小:
每32个512+ 16位组的页为1个大小是16KB的区块
每64个2048+ 64位组的页为1个大小是128KB的区块[7]
每64个4096+128位组的页为1个大小是256KB的区块[8]
每128个4096+128位组的页为1个大小是512KB的区块
读取与写入动作可以以“页”为单位偏移量进行,抹除动作只能以“区块”为单位偏移量进行。NAND Flash还有一项限制就是区块内的数据只能序列性的写入。[来源请求] 操作次数(Number of Operations, NOPs)则代表“页”可以被写入的次数。目前MLC的NOPs是1;而SLC则是4。[来源请求] NAND Flash也需要由设备驱动程序软件或分离的控制器芯片来进行坏区管理,例如SD卡内部便包含实行坏区管理与耗损平衡的电路。当一个逻辑区被高级软件访问时,逻辑区对应到实体区的工作则由驱动程序或控制器进行。
标准化[编辑]
开放式NAND型闪存接口工作小组(Open NAND Flash Interface Working Group (ONFI))已为闪存芯片开发完成一份标准化低级访问接口规格书。这份规格允许并确认了来自不同供应商的闪存组件间的互通性。《开放式闪存接口规格书版本1.0》[9]于2006年12月28日发布。规定着:
下列闪存集成电路封装型式的标准实体接口(接脚排列):TSOP-48、WSOP-48、LGA-52与BGA-63。
一组读取、写入、与抹除闪存芯片的标准命令集
一种自我辨识的机制(相较于SDRAM内存模块的序列式存在侦测特性)
支持ONFI小组的主要闪存制造商包含有:海力士、英特尔、美光科技与恒忆,也有与闪存芯片结合组件的主要制造商。[10]
一群供应商,包含英特尔、戴尔与微软成立非易失性内存主控制器接口(Non-Volatile Memory Host Controller Interface (NVMHCI))工作小组。[11]此小组的目的是提供标准的非易失性内存软硬件程序设计接口,包含有连接到PCI Express总线的”快闪缓存”(flash cache)组件。
NOR型与NAND型闪存的差异[编辑]

NAND型闪存
NOR型与NAND型闪存最主要的两个差异点如下:
连接个别记忆单元的方法不同
读取写入内存的接口不同(NOR型闪存允许随机存取,而NAND型闪存只能允许页访问)
以上两点是相关的NAND型闪存研发所做出的设计抉择。NAND型闪存发展的一个目标是为了减少所需的芯片面积来实现给定的闪存容量,从而降低每比特的成本,并推升芯片最大容量,如此就可与磁性存储设备相互竞争,如硬盘。
NOR和NAND型闪存由记忆单元间的内部连接结构而得名。[12]NOR型闪存内部记忆单元以平行方式连接到比特线,允许个别读取与程序化记忆单元。这种记忆单元的平行连接类似于CMOS NOR闸中的晶体管平行连接。NAND型闪存内部记忆单元以顺序方式连接,类似于NAND闸。顺序连接方式所占空间较平行连接方式为小,降低了NAND型闪存的成本。
NOR型闪存面世后,成为比现有的EPROM与EEPROM内存更经济、更方便的复写型只读内存。因此,随机存取的读取电路是需要的。然而,NOR型闪存当成只读内存使用时的读取次数在预期上通常远大于写入次数,所以其内含的写入电路是相当慢的,并且只提供区块抹除功能。另一方面,使用闪存的应用,如替换硬盘,无需字符组层级的地址线,因为字符组层级的地址线只会增加无谓的复杂度与成本。
因为采用顺序连接方式及去除字符组的接触点,NAND型闪存记忆单元的大型闸格所占面积只有NOR型记忆单元的60%[13](假设采用相同的CMOS制程,如130 nm、90 nm或65 nm)。 NAND型内存的设计者理解到闪存的面积,在移除外部地址线及数据总线电路后,将可进一步缩小。取而代之的是,外部设备可使用顺序访问命令与数据寄存器与NAND型闪存沟通,由内存内部获取所需数据并将其输出。选择这种设计方式使得NAND型闪存无法随机存取,但是NAND型闪存的主要目标是替换硬盘,而不是只读内存。
写入续航力[编辑]

SSD上的三阶Over-Provisioning
NOR型闪存SLC浮闸的写入续航力通常大于或等于NAND型闪存,然而MLC NOR型与NAND型闪存有着相近的续航能力。
NAND型与NOR型闪存规格书所提供的续航周期速率如下:
SLC NAND型闪存的续航率通常落在10万次(Samsung OneNAND KFW4G16Q2M)
MLC NAND型闪存对于早期中型容量应用的续航力通常落在5千至1万次(Samsung K9G8G08U0M),对于后期大型容量应用的续航率则落在1千至3千次。
TLC NAND型闪存的续航率通常落在1千次(Samsung 840)
SLC浮栅NOR型闪存通常有着10万至百万次的写入续航率(Numonyx M58BW 100k; Spansion S29CD016J 1,000k)
MLC浮栅NOR型闪存通常有着10万的写入续航率(Numonyx J3 flash)
以上数据只是大概的标称数值,实际写入寿命与不同厂商的产品技术及定位有关。使用更细微化的制程,可以提高产品读写性能和容量,但同时在写入寿命方面可能会面临更大的挑战。使用如记忆损耗调节及memory over-provisioning的特定算法及设计示例,可以用来调节存储系统的续航率来匹配特定的需求。[14]损耗平衡是闪存产品使用寿命的必要保证,在U盘和SSD等产品中,均有相关支持。
闪存文件系统[编辑]
主条目:闪存文件系统
因为闪存的独特特性,最好使用一个额外的控制器来实行记忆耗损平衡与错误修正或是一个特别设计的闪存文件系统,来将对媒体的写入动作与NOR闪存区块的长抹除时间的处理动作分开。闪存文件系统的背景观念如下:当闪存的存储内容被更新时,文件系统将欲改变的数据写入一个新的区块,重新對映文件指针,然后找时间抹除旧有的区块。
特别的是,闪存文件系统只使用于MTDs(memory technology devices),此设备具有内嵌式闪存,但没有控制器。便携式快闪储存卡与U盘均有自带控制器来实行记忆耗损平衡与错误修正,所以使用特别的闪存文件系统并不会增加任何的好处。
多数情况下,闪存与计算机间存在一个中间层,以将闪存模拟成磁盘使用。对于上层软件和用户来说,并不需要关心闪存的实际细节。
容量[编辑]

各式容量的储存卡
一般采用多颗闪存芯片组成数组的方式来达到增高容量的目的[15],这种方式使用于消费性电子产品中,如多媒体拨放器或全球定位系统中。因为闪存属于集成电路,所以闪存芯片的容量通常遵循摩尔定律。闪存可以通过工艺的进化和3D IC多层堆叠的方式获得更高的容量。而在市售的闪存封装产品中,可以通过包含多个闪存晶体(称为多管芯)来获得更高的容量。控制器可以通过不同的CE信号,选择不同的管芯进行操作。
消费性闪存存储设备一般使用2的整数倍数(2、4、8等等)来标示可使用的容量大小,而最终以百万字节(MB)或十亿字节(GB)来表示,例如:512 MB,8 GB。然而如欲替换传统硬盘(HDD)的固态硬盘(SSD)设备则是使用10的整数倍数来表示容量大小,如1,000,000字节与1,000,000,000字节,这是因为传统硬盘标示容量大小即是使用10进制词头。因此,固态硬盘上标示”64 GB”,则表示实际上至少有64 × 1,0003字节(64 GB),通常更大一些。大部分用户则会感到容量稍少于他们的文件,这是因为文件系统数据使用了一些空间。同时,一些操作系统容量标记的不标准也造成了此问题(混淆MB和MiB)。
闪存芯片内部的容量大小是以2进位倍数计算,但并非所有实际容量空间均能被驱动器接口所使用。闪存芯片实际的容量会大于标示容量,或者说,可用容量会小于芯片容量,这是为了存放写入的分配(记忆损耗平衡)信息、备用数据、文件系统信息、错误修正码、及设备内部固件程序运算所需要的其他中继数据。
2005年,东芝与闪迪公司使用多阶存储单元(multi-level cell,MLC)技术开发出可存储1 GB数据量的NAND型闪存芯片,MLC拥有在最小记忆单元中存储两个比特数据的能力。2005年9月,三星电子宣布开发出世界上第一颗2 GB闪存芯片。[16]
2006年3月,三星电子宣布开发出容量为4 GB的固态硬盘驱动器,比膝上型电脑所使用的同样容量硬盘还要来的小。2006年9月,三星电子宣布使用40奈米制程量产8 GB闪存芯片。[17]
2008年1月,闪迪公司宣布16 GB的MicroSDHC与32 GB的SDHC Plus储存卡开始贩售。[18][19]
2012年后的闪存存储设备有了较大的容量,如64、128及256 GB。[20][21]一些更大容量的固态硬盘,根据容量大小,能被使用来当作整个电脑的备份硬盘。
仍有小容量的闪存芯片生产以供BIOS-ROM与嵌入式应用使用,容量大小约为1 MB或以下。
传输速率[编辑]

容量:2GB、速度:80倍速的CompactFlash储存卡
NAND型闪存卡的读取速度远大于写入速度。
当芯片磨损,抹除与程序的操作速度会降到相当慢,需要更多的重试次数与坏区重對映。传递多个小型文件时,若是每个文件长度均小于闪存芯片所定义的区块大小时,就可能导致很低的传输速率。访问的迟滞也会影响性能,但还是比硬盘的迟滞影响小。
有些时候速度以MB/s(每秒百万字节)表示,或是以旧式单速光盘驱动器速度的倍数表示,如60×、100×或150×。在这里,1×等于150KB/s。举例来说,100×的储存卡的传输速率为150 kB/s×100 = 15,000 kB/s。
闪存控制器的质量也是影响性能的因素之一。即使闪存只有在制造时做缩小晶粒(die-shrink)的改变,但如果欠缺合适的控制器,就可能引起速度的降级。[22]
不同种类、不同工艺、不同技术水平的NAND闪存在读写速率上存在差异,同时,闪存产品的读写性能也与读写方式有关。一般闪存的数据接口为8位或者16位,其中8位较为常见。如果产品支持多通道并行读写,那么就会有更高的速度。同时,若产品支持DDR、interleave技术,也可以提高速度。DDR是存储产品在时钟上升沿和下降沿都可以读写数据,从而提高性能。interleave是存储产品内不同bank或plane间交错读写,控制器在操作对象尚处于忙状态时,即可以转到另一方进行操作,从而提高速度。如果同类闪存中有异步模式和同步模式之分,其中同步模式的读写速度会更快。
应用[编辑]
序列接口闪存[编辑]

SPI总线:单一master对单一slave
序列接口闪存是一种使用序列式接口(通常使用序列周边接口总线(SPI))来循序访问数据内容,小型且低功率的闪存。当其使用于嵌入式系统上时,序列式闪存比平行式闪存在印刷电路板上所需的连接线数要少得多;因为序列式接口可以一次同时发送与接受数据的一个比特,这使得序列式闪存具有减少在印刷电路板上所占面积、耗电量及整体系统成本的优势。
有好几个理由说明了为何使用较少外部接脚的序列式组件,而不是使用平行式组件,可以大大的降低整体的成本:
许多特殊应用集成电路是受接垫所限制的〈Pad-limited〉,意思是晶粒的大小是由引线键合接垫的数量所决定,而不是由组件逻辑门数及功能复杂度所决定。减少键合接垫数自然允许更精简的集成电路在更小的晶粒上;这也增加了晶圆上所能制造出的晶粒数量,同时也降低了单位晶粒的成本。
减少了外在接脚的数目,同时降低了IC组装及封装的成本。序列式接口组件比平行式接口组件所使用的封装型式来的小且简单。
封装型式小及较低的外在接脚数目,所以占据的PCB面积也小。
较少的外在接脚数目,也简化了PCB上绕线的复杂度。
SPI闪存的型式主要有两种:一种是小页特性且内含一个或多个内部SRAM的页缓冲器,能够让整个页的数据都读入缓冲器、修改部分数据、而后再写回闪存中(例如Atmel的DataFlash:AT45,Micron Technology页抹除NOR型闪存)。另一种则有较大的区块。一般来说,SPI闪存的最小区块大小是4 kB,最大可达64 kB。因为此类SPI闪存缺乏内部SRAM缓冲器,修改数据时必须将完整的数据页读出,再修改数据后,写回闪存中,使得管理速度变慢。SPI闪存比平行式接口闪存便宜,因此应用于具有程序代码對映(Code-Shadowing)功能的系统上,是一个不错的选择。
而这两种型式的闪存不容易做到简单的直接置换,因为没有相同的外部接脚且命令集也互不兼容。
固件存储[编辑]

使用平行式接口闪存的个人电脑BIOS
随着现下CPU的速度越来越快,平行式接口闪存组件的速度通常远小于与其连接的电脑系统内存总线速度。相较之下,目前的SRAM访问的时间通常小于10 ns,而DDR2 SDRAM访问时间一般则小于20 ns。因为这个因素,一般合理的使用方式是将要存放于對映内存里的代码预先存放于闪存中,并在CPU运行代码前将闪存中的代码复制到對映内存中,如此一来,CPU就可以用最高速度来取用代码。设备上的固件也可以预先存放于序列式接口闪存中,在设备开机后,将其复制到SDRAM或SRAM里。[23]使用外部序列式闪存而不用芯片中内嵌闪存是因为芯片制程上的考虑而妥协的结果(适用于高速逻辑制程通常不适用于闪存,反之亦然)。如果有需要将一个宏块的固件代码读入时,通常会事先将代码压缩后再存入闪存中,就可以缩小闪存芯片上被使用的区域。典型的序列式接口闪存应用于固件存储上有:硬盘、以太网控制器、DSL调制解调器、无线网络适配器等等。
闪存作为硬盘的替代品[编辑]

华硕Eee PC的SSD
主条目:固态硬盘
近期另一个闪存的应用就是作为硬盘的替代品。因为闪存没有硬盘驱动器械因素的限制并且可以多单元并行访问,所以固态硬盘(SSD)在速度、噪音、耗电量与可靠度等因素的考量上是非常吸引人的。闪存组件正获取便携式行动设备上第二存储组件的地位。同时使用在高性能台式机及一些具有RAID和SAN架构的服务器上作为硬盘的替代品。
但是以闪存为基础的固态硬盘,也存在其他方面因素,使得它并不具有吸引力。例如闪存每千兆比特的成本依旧比硬盘高出许多。[24]另一个不具吸引的因素就是闪存有着有限的P/E 循环次数,但是这个因素可以通过程序优化,目前似乎已在人为控制能力范围内,加上容量的增大使得每单位读写次数减少,让它的使用寿命可以达到传统硬盘甚至更高的水准,因此以闪存为基础的固态硬盘也施行了与现有硬盘相同的保固政策。[25]
对于关系性数据库或其他使用ACID的数据库事务系统上,即使是使用目前最慢的闪存存储媒体也可以比使用硬盘所组成的数组,在速度的表现上有着显著的提升。[26][27]
于2006年6月,三星发布第一批配备闪存固态硬盘的个人电脑:Q1-SSD及Q30-SSD,均使用32 GB的固态硬盘,并且初期只在韩国地区发售。[28]
在2008年,固态硬盘成为第一版Macbook Air的选用配备,并且从2010年起,固态硬盘成为所有Macbook Air膝上型电脑的标准配备。2011年后开始,由于固态硬盘成为Intel所倡议超极本的一部分,超薄膝上型电脑以固态硬盘为标准配备的数量逐渐增加。
也有混合型技术,诸如Hybrid Driver和ReadyBoost,尝试将两种技术的优点合并,使用闪存作为硬盘上常用且鲜少修改的文件,如应用程序及操作系统的可执行文件,的高速非易失性缓存。
闪存作为随机存取存储器[编辑]
截至2012年,有许多的尝试想把闪存作为电脑的主存,动态随机存取存储器(DRAM)。[29]在这个应用角色上,闪存的速度是比现有的DRAM慢,但是耗电量却远小于DRAM。
闪存作为长时间文件存储媒体[编辑]
目前还不清楚闪存作为长时间文件存储媒体的有效文件存储时间究竟有多长?在文件数据不常被访问的条件下,最适合的保存温度与湿度是多少?需不需要作预防性的改写保护?等等相关的保存技术均有待进一步的研究发展。
工业产值[编辑]
2008年,一份数据中表示闪存在制造与销售上的工业产值约为US$91亿。2006年,另一些数据将闪存市场规模预估为超过US$200亿,这是根据整体半导体市场超过8%与全部半导体内存市场超过34%的成长。[30]
根据DRAMeXchange的研究报告,2007年全球Flash产业的市场规模为133亿6千8百万美元,2008年则是114亿1千8百万美元,整体营收降低了14.6%,主要的原因是受到产品平均单价下滑的影响。[31]
根据DRAMeXchange于2009年2月所发布的2008年全年NAND型闪存品牌厂商营收排名数据,第一为韩国厂商三星(Samsung)市占率高达40.4%(46亿1千4百万美元),其次是日本厂商东芝(Toshiba)的28.1%(32亿5百万美元),第三是韩国厂商Hynix的15.1%(17亿2千7百万美元),第4为美国厂商美光(Micron)7.9%(8亿9千7百万美元),第5为美国厂商英特尔(Intel)5.8%(6亿6千万美元),第6是欧洲厂商恒忆(Numonyx,STMicro)2.6%(营收为2亿9千5百万美元)。[32]
于2012年,预估闪存市场落在$268亿。[33]然而根据2013年4月DRAMeXchange的调查数据显示,2012年全年NAND型闪存品牌厂商总营收落在190亿6千2百万美元,较2011年衰退6.6%。[34]
未来展望[编辑]

闪存技术中,缩小制程设计规则或技术里程点的积极趋势,有效的呼应摩尔定律。
由于NAND型闪存本身相对简单的结构及对高容量的高需求关系,使它成为电子组件中,在技术规模上发展最积极的。只有少数几家顶尖的制造商能够在高度的竞争中,积极的开发出缩小设计规则或是制程技术里程点。 [4]虽然原始版本摩尔定律所预测尺寸缩小一半时程因子为每三年,但是在近期NAND型闪存的例子上这个因子却是每两年。
于2012年11月,三星宣布已经开始量产10nm的芯片,这暗示著最小几何形状介于10至19nm间。[35][36]
由于闪存的最小组成组件已被最小化到极致的关系,未来的闪存密度的增加,将依靠更高级别的MLC,或是多层堆栈与制程的改善来驱动。从缩小尺寸伴随而来的耐久性降低与不正确比特错误率增加,这些都可以借由改善错误修正机制来弥补。[37]即使有了这些进步,已有经济规模的闪存在尺寸上也难以越来越小。闪存本身的读写速度有限,并且有写入次数限制。有些具有光明展望的新技术(诸如铁电随机存取存储器(FeRAM)、磁阻式随机存取存储器(MRAM)、可编程金属化单元(PMC)、电阻式存储器(ReRAM)、相变化内存(PCM)与其他)均在探索与研发中,希望能更大规模的替换闪存。[38]

捧个钱场?

热评文章