主导闪存发展的关键技术
扫描二维码
随时随地手机看文章
闪存几乎无处不在,特别是在移动设备中。闪存具有各种外形尺寸,随着成本的不断降低以及容量和工作寿命的不断增加,闪存不断地推动着越来越多的平台中硬盘驱动器的发展。
NAND和NOR闪存主导着固态非易失性存储器(NVM)市场,但是这些闪存并不是唯一可用的技术。不会明确地暴露闪存的外形尺寸是使用非闪存技术来替代的可能目标。比如,非闪存产品正在串行存储领域中暂露头角。
图1:闪存具有各种外形尺寸,包括SecureDigital(a)、MicroSD(b)、Sony记忆棒(c)、紧凑型闪存(d)和mSATA(e)。它们一般都采用NAND闪存
非易失性固态存储器
一方面是一次性可编程(OTP)存储器。现在,OTP存储器一般用来保存安全密钥或网络ID。它是采用诸如熔丝、反熔丝和浮栅等各种技术实现的。这种存储器还可以采用标准CMOS技术来实现。
带动NVM规模的是各种多次可编程(MTP)存储器技术,这类技术可以写入上百次甚至上千次。MTP存储器一般用来实现很少更改的启动代码。与OTP一样,MTP一般是采用CMOS技术实现的,这样就可以用在数字逻辑中。
浮栅EEPROM已经在数据存储中得到普遍的应用。由于具有写入单字节的能力、良好的耐力和数据保持能力,浮栅EEPROM已经相当流行,但是闪存技术在密度上远胜于浮栅EEPROM。EEPROM仿真常常被视为某些闪存实现方案的一种功能,它可以隐藏闪存的块擦除要求,以便能够写入单个字节。
其他的非易失性技术正在不断地提升闪存的优势,包括磁阻RAM(MRAM)、铁电RAM (FRAM)、相变存储器(PCM)以及前途无量的NVM技术。与NAND和NOR闪存等其他NVM技术相比,这些技术都具有更高的总体性能,包括写入速度、电压要求、缺少页面擦除周期、长期耐用性、数据保持能力和可扩展性。
这些技术开始是针对利基市场,在这种市场中,成本高一点并没有什么问题(至少在初期阶段是这样),其优势相当明显。它们甚至会引发SRAM与DRAM之间的激烈竞争。
德州仪器(TI)公司的16位MSP430FR57xx系列以其高达16 kB的用于数据存储和程序存储的FRAM而著称。该系列存储器具有代表性地融合了SRAM、闪存和EEPROM存储器。单个方案就可以降低库存单位(SKU)数,并简化开发人员的工作,使他们不再需要应付程序存储的RAM要求。
今后,这些可供选择的NVM技术将在更多的设计中得到应用。不过现在,闪存仍是主导的NVM技术。
闪存技术
闪存实现方案可以分成NAND和NOR方案,不同的供应商提供的方案各有不同。他们一般采用浮栅晶体管。这两种技术都表明了晶体管是如何连接和使用的,而不是将晶体管作为数字逻辑的一部分与FPGA或定制逻辑整合在一起。
NOR闪存晶体管接地和位线,这样就可以访问单个位。与NAND闪存相比,它具有更好的耐写性能。NOR闪存一般用在有代码和数据的应用中。带片上闪存的微控制器一般都会整合NOR闪存。
NAND闪存晶体管一般是成组连接至字线。这就可以实现比NOR闪存更高的密度。NAND闪存一般用于面向块的数据存储器。从晶体管的角度来看,NAND闪存不如NOR闪存可靠,因此NAND存储平台就需要使用错误检测和校正硬件或软件。NAND闪存一般用于高容量数据存储。
闪存使用擦写周期。擦除本质上是将闪存设置为1。写入则是将位设置为0,只要现有的1被改为0,就可以写入不同的数据。由于允许在没有长时间的耗电擦除周期的情况下执行操作,因此闪存文件系统可以充分利用这种特性。NAND闪存一般工作在块级别,而NOR可访问更加精细的级别。
闪存从单级单元(SLC)数据编码开始,每个存储晶体管对1或0进行编码。多级单元(MLC)闪存一般是指每单元存储2位(而不是1位)信息的能力。在晶体管级,所有的信息都是模拟的,不过与构建MLC闪存所需要的四级检测电路相比,构建一个两级检测电路更加简单。
同样,对MLC单元进行编程需要有产生四个不同级的能力。三级单元(TLC)闪存则更进了一步,这种闪存将3位或八级装入单个存储单元中,比如美光(Micron)公司的3位34nm NAND闪存芯片。
MLC或TLC存储器的明显优势是密度更高。其通常会在性能上作出折衷,尤其是耐写性能方面。
典型的SLC NAND闪存的可写次数为10万次,而SLC NOR闪存的可写次数为100万次。MLC闪存的可写次数则仅为上述次数的10分之一,TLC闪存的可写次数则更少。随着技术的进步,这些可写次数在不断地增加。SLC具有更好的耐写性能,而MLC和TLC的成本效益将更高。
闪存系统的使用寿命取决于多重因素,包括其托管方式。如果一个区域出现耗损时(即出现写入失败,无法保存正确的信息的情况时),非托管型闪存就会出现问题。错误检测系统有助于确定何时出现这种情况,不过一旦出现这种情况,设备一般也毫无用处了。更糟糕的是,其失效可能会导致相当多的问题。这也就是为什么带有内置闪存(无法跟踪耗损情况)的微控制器等器件依赖于可写次数较高的NOR闪存的原因。
有多种方法可以用来提高总系统寿命,比如耗损均衡。这种方法需要重新映射信息位置的能力。该方法对于面向块的器件最有效,尽管它可以应用到块大小的单个字中。实现耗损均衡会引起开销,因此块尺寸较大的话,效率就会更高。
耗损均衡可将写入操作分布在存储设备中。系统的使用寿命可以视为系统的总写入容量,而不是单个块的最大值。耗损均衡需要跟踪块写入使用情况以及记录和利用该信息的能力。如果出现缺陷的话,块的使用寿命往往会缩短至不到其建议的写入寿命。
在这种情况下,如果存储器被超额配置的话,则可以使用重新映射机制。额外的块或扇区在硬盘驱动器上很常见,对闪存可以采用同样的方法。唯一的区别是,如果在规则的块中检测到不可校正的错误,那么就会使用额外的块。
使用耗损均衡之后,所有的块往往就都是存储池的一部分。如果系统是以软件方式实现的,也可以根据系统所需的使用寿命来选择逻辑设备尺寸。逻辑尺寸越小,出现的“额外”块越多。
像FRAM、MRAM和PCM等其他一些技术不会出现与闪存一样的耐写能力问题。但是仍然可以使用诸如存储器过度配置和重新映射等技术,特别是在硬件缺陷等其他错误可能比较常见的大型设备中。
闪存软件和控制器
对闪存的受控访问使软件可以忽略从擦除要求到耐写能力等一系列支持闪存的问题。在哪里以及以何种方式实现这种控制差别很大。
闪存文件系统是开发人员处理原始闪存的一种方法。这些系统是可访问闪存芯片接口的设备驱动器。明显地,相对于操作系统和应用而言,驱动器处理所有的闪存常规工作,如错误检测、耗损均衡和坏块重新映射。它可以将部分闪存用于内部表,并负责说明闪存擦除和写入特性。
驱动器可以提供一定的文件和目录管理功能,或者只代表一个低级逻辑块器件。这两种方法有各自的优势,需根据具体的应用环境来选择。
采用硬件方案时,一般会提供块级接口。由于软件方案一般无法提供硬件加速,因此硬件方案还可以整合更具鲁棒性的纠错和映射系统。早期阶段出现过众多闪存控制器公司,不过现在它们都已经被致力于提供集成度更高的方案的闪存公司收购了。
将闪存放在硬件控制器后面可以起很大的作用。比如,它可以简化设备接口、提供诸如降低功耗(包括各种休眠模式)等更加先进的功能,并实现混合存储系统。
混合系统可在同一封装中整合不同类型的存储器。这种方法可以通过在混合系统中增加RAM,从而使NAND闪存等块设备能够在比特级或文字级进行访问。三星(Samsung)的OneNAND将SRAM与其NAND闪存控制器整合在一起。该方案可使系统用作程序存储器,并根据需要在SRAM中对块设备进行缓存。
此外,RAM的速度也比闪存快,特别是写入速度方面。它也不受闪存耐写能力限制的影响。并且RAM不受块访问的限制。作为一般缓存系统使用时,混合系统兼具闪存和RAM的诸多优势。由于在这类设计中闪存往往比RAM更多,因此必要时数据需从RAM中转入闪存中。
希捷公司(Seagate)推出的Momentus XT硬盘驱动器表明,混合系统可以变得更加复杂。该存储系统整合了三种存储器:DRAM、SLC闪存和旋转磁性存储器。它具有SATA接口,因此除了闪存和硬盘驱动器控制器之外,还有一个SATA控制器。这对于用户来讲完全是透明的。
在闪存中使用硬件控制器还可以让设计人员在混合系统中增加安全和加密等其他功能。硬件加速也可以从这些功能中受益。
将闪存接口标准化一定会简化系统设计人员的工作。开放NAND闪存接口(ONFI)工作组一直在致力于这方面的工作,他们于2011年发布了OFNI 3.0规范。该规范旨在提供400Mtransfers/s的传输速度和双数据速率(DDR)传输。其切换模式2.0可选地采用差分信令。此外,OFNI还规定了芯片级外形尺寸,不过闪存可采用的外形尺寸相当多。
闪存的尺寸
小型串行闪存设备的外形尺寸差异相当大。有支持一级(1Wire)协议的三引脚设备以及支持I2C和SPI的各种设备。四SPI(QSPI) NVM设备可将传输的位数增加四分之一,甚至还有微控制器,这类设备可以直接从像恩智浦半导体(NXP)公司的LPC1800系列这样的QSPI串行存储器中执行程序。
将程序保存在串行闪存中是相当常见的。大多数PC都将其BIOS保存在串行闪存中。芯片引导装载程序将该程序复制到执行该程序的RAM中。NXP公司的LPC1800一次读取存储器中的一个指令。
串行存储器是FRAM和MRAM等其他技术应用的首个用武之地之一。串行存储器一般包含温度传感器和实时时钟(RTC)等其他子系统。有些RTC甚至利用串行存储器保存时间戳信息。
具有JEDEC e-MMC(嵌入式多媒体卡)外形尺寸的芯片(比如San-Disk的iNAND)采用与可移动七引脚MMC外形尺寸相同的串行接口。对于开发人员来讲,其优势在于他们可以对固定存储器和移动存储器使用同样的接口。
该七引脚MMC设备可插入与九引脚SD和九引脚SDIO设备相同的插槽中,因此I/O设备可以置于该卡上。SD与MMC具有相同的引脚分布,其外沿附近增加了两个额外的引脚。MMC接口本质上是SPI接口,SD为QSPI接口。11引脚miniSD卡和八引脚microSD卡都采用相同类型的接口,只不过封装更小。这些串行设备的传输速率为832Mbps。
移动闪存也采用USB、SATA和SAS接口。SAS往往只用于驱动器上,而SATA则用于具有磁盘驱动器外形尺寸的闪存驱动器以及像Viking Technology公司的SATA Cube 3这样的嵌入式设备中。SATA Cube 3是一堆带闪存和控制器的电路板。电路板越多,表明存储容量越大。
板上SATA设备还包含mSATA和Slim SATA模块等标准。相比与SD卡等介质配合使用的SPI/QSPI 接口,SATA接口可以提供高相当多的吞吐能力。大型SATA闪存一般用于1.8、2.5和3.5英寸的硬盘驱动器外形尺寸中。
基于IDE的微型闪存仍是许多嵌入式母板上的常见功能部件。随着微控制器从IDE和PCI转换到SATA和PCI Express,这种情况正在发生变化。虽然摄像机往往采用SD卡,不过仍有许多移动设备(比如数码摄像机)使用微型闪存。
USB闪存驱动器已经有效地替代了CD、DVD和软盘。与现在的平均容量相比,首款USB 1.x闪存驱动器的存储容量相当小。如今的高端平台的规模相当大,并且采用USB 3.0总线标准。
容量和速度并不是随着USB闪存驱动器的发展而变化的唯一指标。增加的功能(特别是安全领域中)更为普遍。比如,Apricorn公司的Aegis安全密钥带一个内置键盘,可用来输入安全代码,阻止按键记录病毒捕获代码。它可以用在任何操作系统上。
大多数与安全相关的其他解决方案都采用在主机上运行并使用主机输入所有解码密钥的设备驱动器或者应用程序。Aegis安全密钥具有管理员和用户密码。这些功能可用来对加密和解密保存在闪存中的数据的密钥进行解码。
USB闪存驱动器一般用于便携设备中,不过它们也广泛地用在嵌入式设备中。许多母板都有一个内部A型连接器。大多数母板只有背板上有A型连接器。有些设备(像Eurotech公司的Helios Edge控制器)仅有用于闪存的USB接口和外设接口(请参见“Eurotech公司的Helios Edge控制器的实地操作评估”一文)。
USB头在母板上也很常见。它们用于通过线缆和背板连接的额外外部USB接口,还可以用于USB存储器中,比如Swissbit公司的USB存储器(图6)。Swissbit USB闪存模块可插入大多数母板的标准九引脚USB头中。母板上不一定总是使用安装孔,但是当板可以用螺栓固定到母板上时,安装孔确实可以提供稳固的解决方案。
像mSATA和Swissbit公司的USB闪存模块这样的模块并不是基于板的唯一闪存方案。闪存还可用于双列直插内存模块(DIMM)和小外形DIMM (SODIMM)外形尺寸,不过与DRAM一样,仅使用闪存的解决方案没有标准。
另一方面,有些方案(比如Viking Technology公司的ArxCis-NV)将DRAM与闪存整合在一起。闪存作为备份,用于在断电时保存DRAM的内容。超级电容器足以执行复制操作。
使用这些混合存储器的难题在于软件需要考虑非易失性。过去,具有磁芯存储器的计算机可以在不重装操作系统或应用程序的情况下关断和导通。这可以节省相当长的时间,对于嵌入式应用来讲非常方便。
现在,主要存储器一般是DRAM。关断系统后,这种存储器中的内容就会丢失,因此默认的恢复过程就会重启系统。与这些已经保存了DRAM先前内容的非易失性解决方案不同的是,保存在闪存中的引导程序不会丢失。
大多数这类混合解决方案的目标应用都是企业系统,不过由于它们采用标准DIMM插座,并且看起来像系统硬件的标准DDR2或DDR3 DRAM,因此这些混合方案可以轻松地整合到嵌入式应用中。
昙花一现的PCI Express
带宽是闪存可以使用的,不过诸如USB和SATA等诸多接口都受限于无法充分利用闪存的速度。PCI Express是加快数据移动的一种方法。
非易失性内存主机控制器接口(NVMHCI)工作组开发了NVM Express标准,并管理着该标准,该标准可以提供非易失性存储器(在这里基本上是指闪存)的接口。
SCSI Express是另一个正在准备阶段的标准,该标准可将闪存直接应用到PCI Express接口中。这两个标准的区别在于接口是SCSI适配器。SAS采用SCSI命令集,因此它可以有效地定义标准SAS接口。而传统的SAS控制器需要其各自的供应商提供的设备驱动程序。
串行ATA 组织的SATA Express标准是一个类似的标准,不过该标准可以提供SATA接口。与SCSI Express一样,SATA Express可以同样轻松地通过接口实现硬盘存储器和闪存。
NVM Express和SCSI Express标准都用于企业。支持热插拔的板和驱动标准融合在一起。随着这些平台的日益普及,它们可能会在嵌入式系统中找到用武之地。由于这些平台可以提供位于处理和网络硬件所在的板上的高速解决方案,因此它们适合用于嵌入式应用。
标准组织
上文已经提到了大多数与闪存相关的重要组织,比如JEDEC、ONFI工作组和NVMHCI工作组。SD协会负责移动存储器的SD卡系列。同样,CompactFlash协会负责管理CompactFlash标准。T10则负责管理SCSI和SCSI Express标准。串行ATA组织负责管理SATA Express标准。