微控制器的存储架构可能很简单(图1)。但是,随着应用开始朝便携化、虚拟化和个性化方向发展,它们现在变得相当复杂。多核(multicore)、许多核(many core)和集群架构,它们同样在一个设备中融合了各种存储技术。高端微处理器将多个缓存级别与超多的互连和缓存一致方案整合在一起。
不久以前,高速缓存缺失还只能调用扩展到附近硬盘驱动器的事件链。而现在,这种效应已经扩展到固态磁盘(SDD)驱动器和硬盘驱动器,或者可能通过iSCSI将页面提供给虚拟存储系统从而延伸到云或局域网(LAN)。并且,与应用程序相关的所有操作都以透明方式处理。
尽管如此,设计人员、开发人员、管理人员和用户还需要考虑系统要使用的存储器类型和数量及其配置方式。由于选择方案多种多样,他们现在所面临的挑战比过去更大。
图1:现在,存储层次结构的范围相当广泛。它甚至可以通过互联网连接扩展到云领域。
DRAM发展动态
DRAM的容量越来越大,速度越来越高,价格也越来越便宜。DDR3双列直插内存模块(DIMM)目前的最高容量已经达到16GB,运行速率为533至800MHz,支持1066至1600 Mtransfers/s。标准DDR3的工作电压为1.5V,但是最新的低功耗DDR3L的工作电压为1.35 V,可以显著降低功耗和减少发热。
DIMM和小外形DIMM(SODIMM)是台式电脑、服务器和笔记本电脑的标准配置,而嵌入式存储要求同样永无止境。BGA器件(比如Micron的DDR3芯片)因其外形尺寸而受到移动、工业和耐用型应用的青睐(图2)。DDR3内存与处理器的堆叠式封装匹配,在苹果iPad等高端移动设备中非常普遍。
图2:Micron公司的DDR3 BGA芯片非常适合用于嵌入式设计。
BGA封装可以为耐用型应用提供内存,但是对耐用型存储器的需求仍然没有降温。SFF-SIG的RS-DIMM平台填补了这一空白(图3)。该模块的尺寸为67.5mm×38mm×7.36mm(长×宽×高),支持9芯片和18芯片设计。用于DDR3的Samtec连接器的引脚分布,类似于标准DIMM的引脚分布。该标准还规定了可选的SATA接口。
除了台式电脑、笔记本电脑和服务器领域的其他内存替代市场外,DDR3已经占领了几乎所有市场。不过,它确实还没能取代嵌入式设计中的DDR2,在嵌入式设计中,兼容性和低速率较为普遍。芯片和系统设计人员所面临的挑战是,DDR3的低功耗、高容量和成本优势非常明显。此外,仍有大量的微控制器没有DDR3的速度或存储要求,而片上存储器又不足以满足要求。
GDDR5显存基于DDR3。由于其设计规则与DDR3相似,因此有助于降低成本和简化系统设计。与上一代相比,GDDR5的数据线路数有所增加。它现在主要用于高性能图形和超级计算机环境。
到目前为止,各种DDR实现方案采用的都是单端信令技术。截至目前,设计必须遵从信令限制,但是随着实现的速度越来越高,这种局面有可能发生变化。高速串行接口,比如PCI Express、USB 3.0、SATA和串行连接SCSI(SAS),采用的都是差分信令技术。DDR可能也会经历这个阶段。
Rambus公司的太比特倡仪(Terabit Initiative)是该公司针对用于新一代内存的差分信令系统所提出的倡仪。该公司正在展示为应对这种转变而推出的20Gbps串并转换器(SERDES)。
FlexMode设计定义了可处理DDR3、GDDR5及其新差分支持的接口,采用同一组引脚,由于差分对需要两倍的线路,因此引脚的用途并不相同。
这种技术用控制/寻址(C/A)引脚换来了额外的差分数据引脚。C/A信号也是差分信号,这就进一步减少了实际的C/A信号量。该设计得以实现的原因在于C/A线路数据速率的提高。
串行端口内存技术(SPMT)联盟正在采用另一种差分技术。其解决方案针对移动设备,采用低压差分信令(LVDS)系统,这种系统像PCI Express一样可以通过增加通道进行扩展。与PCI Express一样,SPMT是一种自同步技术。20引脚的方案具有6GBps的带宽。
非易失性存储器
NAND和NOR闪存技术仍是非易失性存储器的核心,但磁阻(MRAM)、铁电RAM(FRAM)和相变存储器(PCM)等其他技术正在逐步普及。单个系统一般都融合了多种技术。基于微控制器的独立冗余磁盘阵列(RAID)系统可能将NAND或NOR闪存用于程序存储器,而将MRAM、FRAM或PCM用于RAID数据表,来替代带蓄电池后备电源的动态RAM(DRAM)。
所有这些技术的存储容量都在日益增长,其中以NAND的容量最大,这是因为NAND更多地使用了多级单元(MLC),尽管单级单元(SLC)NAND闪存仍可提供比较理想的成本、吞吐能力、使用寿命和可靠性。MLC也可与NOR技术配合使用。
大多数USB闪存驱动器和其他移动存储卡都将采用MLC NAND闪存。与高级闪存控制器配合使用时,它甚至还可以用于高容量企业驱动器中。企业级产品的最佳使用寿命是五年,因此系统设计人员一般都要求闪存驱动器的“保质期”至少有五年。
尽管闪存的速度很快,但是6Gbps SATA和多通道PCI Express等接口正在推动着SSD控制器技术的发展。除了性能和可靠性之外,MLC闪存控制器还面临着诸多挑战。
区块循环和负载均衡是驱动器具有长使用寿命的关键。甚至温度管理对使用寿命也有影响。SandForce是一家闪存控制器供应商。该公司的DuraClass RAISE(独立硅元素冗余阵列)技术采用了RAID架构来实现闪存区块故障的恢复。
NOR闪存的应用范围已经覆盖到更严苛的环境中。Spansion公司的65nm MirrorBit GL-s 2Gb技术,可用于温度范围为–40°C至105°C的汽车车内应用。它现在采用9mm×9mm BGA封装。
此外,NOR闪存还拥有支持直接从闪存执行代码的优势。三星等公司正在结合使用SRAM和NAND闪存,从而向NOR闪存提出挑战。三星的OneNAND在其NAND控制器中集成了3KB SRAM缓冲器。必要时,开发人员可以通过此控制器的接口连接外部NOR闪存。
两线和四线串行外设接口(SPI)也会影响非易失性存储器的应用领域,非易失性存储器一般用来替代并行存储器芯片。大多数非易失性存储器都附带这类接口。
NXP公司基于Cortex-M3的LPC1800微处理器甚至可以从四线SPI存储器运行,而不仅仅是引导。最近,LPC1800还强调在微控制器中混合使用存储器。此器件具有片上ROM、一次性可编程(OTP)存储器、闪存和SRAM。
图3:SFF-SIG的RS-RIMM模块可将移动存储器应用到耐用型应用中。
OTP存储器是另一种往往被人们所忽略的非易失性存储器技术。Kilopass和Sidense等公司可以为各种应用提供反熔丝OTP技术。OTP可以实现安全和低功耗的运行,还能够方便地整合到大多数厂商支持的现有CMOS制造流程中。该技术通常用于密钥或配置存储器,还可以用来替代ROM。
图4:Rambus FlexMode架构将采用同样的内存外形尺寸和连接,但是会用差分信号替代单端通信。这需要增加一倍的线缆。实现该目的的具体做法是:减小控制/寻址(C/A)信号的宽度,同时提高其吞吐能力。
磁盘驱动器容量节节攀升
Seagate公司的6Gbps、3TB Barracuda XT硬盘驱动器(HDD)在容量上突破了Windows XP的2.1TB极限。值得庆幸的是,像Windows 7和Linux等大多数64bit操作系统都不存在大容量3TB分区的问题。
不过3TB驱动器带来了统一可扩展固件接口(UEFI)BIOS。设计UEFI旨在解决PC BIOS的局限性。它可以处理GUID分区表(GPT),并且可以提供更快的引导时间,同时支持独立驱动器。
这些大硬盘在旧操作系统中的应用有可能实现。硬盘附带的Seagate DiscWizard软件通过分区和设备驱动程序软件来实现这一点。这种转变很有可能推动众多设计人员使用更新的平台。
Seagate发布的大硬盘产品强调的另一个问题,是从传统的512B扇区转向4kB扇区。除了提供更高的吞吐能力之外,4Kb扇区还能够更好地满足操作系统要求。
大多数母板都已经支持4KB扇区,甚至Windows XP也支持。所有目前的台式电脑和服务器操作系统亦然。操作系统的虚拟内存支持一般采用4kB页面大小或者该大小的倍数进行配置。
有些驱动器同时支持两种扇区大小。这些驱动器一般实现4kB扇区,需要时可以将较小的扇区大小映射到这些驱动器上。驱动器将采用一种模式或另外一种模式工作。
由于成本的原因,很少有闪存驱动器的容量达到3TB,但是从总体来看,闪存驱动器的采用量在上升。芯片价格低是一大因素,但是SSD控制器芯片性能获得提升也是一个因素。推动存储器发展到新领域的另一个方面是闪存能力适合新的应用领域。
Viking Module Solutions公司的SATADIMM和SATACube3,可以实现更加紧凑的嵌入式解决方案(图5)。SATADIMM插入DDR3插座获取电源。它包含SATA线缆连接。设计合理的系统可以在未使用的DIMM插座引脚上运行SATA接口。SATACube3为定制系统设计提供耐用型存储器。
图5:Viking Module Solutions SATADIMM(a)和SATACube(b)将SATA闪存驱动器放至相关位置。SATADIMM插入DDR3插座。
像Seagate公司的Momentus XT等混合驱动器,在单个封装中整合了闪存和硬盘,但这种技术不是实现混合驱动器技术的唯一方法。Marvell公司的SATA控制器HyperDuo技术就是另外一种途径。HyperDuo可以应用在新型母板和HighPoint的RocketHybrid这样的PCI Express适配器上(图6)。
Marvell的双端口SATA控制器可以像传统控制器一样处理任何类型的SATA驱动器。其HyperDuo模式与一个闪存驱动器和一个硬盘驱动器配合使用。操作系统是微软最新支持NTFS的操作系统中的一种。
HyperDuo可以在“安全”或“容量”模式下工作。安全模式的工作方式类似于缓存,在此模式下,常用文件同时存储在硬盘驱动器和闪存驱动器上。其优势在于,硬盘驱动器始终包含有效的文件系统。容量模式类似于RAID 0,在此模式下,数据被分割到两个驱动器中。系统需要两个驱动器都工作。
HyperDuo与大多数其他混合解决方案之间最大的不同在于,HyperDuo在文件级别运行,而不是在扇区级别运行。另一个不同之处是,到闪存的所有数据传输都发生在访问文件之后,而不在访问过程中传输。
此过程可以透明方式进行,高级用户可以明确地对闪存中的文件进行pin操作。这种技术比SAS控制器(一般提供基于闪存的缓存)的成本低,因为HyperDuo可以充分利用SATA控制器上的ARM处理器,并且不需要片外存储器或者带蓄电池后备电源的缓存。
像LSI公司的MegaRAID控制器等SAS控制器,一般采用更加传统的缓存技术。具体来讲,LSI CacheCade采用闪存驱动器作为一组硬盘驱动器的二级缓存层。它可以处理容量高达512GB的阵列。Adaptec公司的maxCache包含硬件和软件。
CacheCade的工作方式类似于典型的缓存控制器,它将常用扇区的数据加载到闪存中。性能往往高出混合驱动器很多,闪存的数量由所有者控制。系统可以处理多达32个SSD。
其他差别,也就是大多数SAS控制器支持的能力在于,可以将存储器作为虚拟驱动器。同样,存储器可以基于RAID配置。比如,单个控制器可以处理像RAID 5、RAID 0和RAID 60阵列的组合,其中每个阵列都包含多个虚拟驱动器。反过来,这些配置中的任意一种配置都可以与闪存匹配。这些控制器一般用于企业服务器,配置往往更加简单,只有单个RAID阵列。互联网服务提供商(ISP)和企业环境可以充分发挥虚拟化技术的优势,但是可能需要具有不同特性的多种虚拟驱动器。此外,这些比较昂贵的SAS控制器还可以处理这些常规操作。
图6:HighPoint公司的RocketHybrid采用Marvell公司的HyperDuo SATA控制器技术在单个Windows混合存储设备中整合了硬盘驱动器和固态磁盘驱动器。
尽管SATA和SAS闪存驱动器有许多优势,但是接口却有带宽限制。闪存的运行速度可能比硬盘驱动器快,供应商将提供使用PCI Express连接至主机的解决方案。PCI Express可以通过增加通道数进行扩展。
Fusion-io公司的ioDrive Octal板通过x16 PCI Express连接提供闪存(图7)。它支持6Gbps带宽,可提供高达每秒1百万次I/O操作的速度。此板以模块化形式构建,可处理容量高达5.12 TB的闪存。ioDrive Octal的外观与传统的模块设备相似。
图7: Fusion-io公司的ioDrive Octal板通过PCI Express提供闪存,可提供6GBps的带宽和高达5.12 TB的存储容量。
基于PCI Express的闪存解决方案现在可谓遍地开花。耐用型应用可以采用Extreme Engineering Solutions XPort6103 XMC模块这样的产品(图8)。
XPort6103可以提供容量高达0.5TB的闪存。它采用PCI Express x1接口,提供可选的3Gbps SATA和加密支持配置。此外,由于在嵌入式应用中很有可能会兴起长使用寿命优于高容量这样一种趋势,因此XPort6103采用SLC NAND闪存。其读性能和写性能分别为200MBps 和120MBps。
图8: Extreme Engineering Solutions XPort6103模块插入XMC插槽,具有高达0.5TB的闪存容量。
非易失性存储器主机控制器接口(NVMHCI)工作组的NVM Express规范,是一个针对基于PCI Express存储器设计的新标准。此标准受到包括英特尔在内的众多供应商支持。
网络和互联网
这些存储技术可满足嵌入式应用、PC和服务器环境的需求,但还有另一个持续增长的主要领域,即网络存储。“云”和“云存储”一直都是最为热门的话题,其背后毫无疑问需要技术支撑。
现在,文件服务器更有可能是带一个或多个硬盘驱动器的网络附加存储(NAS)设备。许多专用片上系统(SoC)都针对这一领域,比如Applied Micro公司的多核Mamba以及PLX公司的NAS7825。
这些芯片一般包含RAID加速芯片和多个吉比特以太网端口。对RAID 1和RAID 5的支持比较普遍,而RAID 6以及RAID 50(RAID 5+0)与RAID 60的组合也很常见。加密支持也是这种混合配置的公共部分,它甚至可以在不使用硬件加密驱动器的情况下实现安全存储。此类芯片可以实现低成本有线和无线NAS服务器。
Marvell公司的Armada芯片是NAS设备的一种变体,此芯片一般用于被称为“插座式计算机”的设备,PogoPlug公司的产品系列就是这种设备的一个例子。PogoPlug Pro支持多达四个USB外部驱动器,这些驱动器一般都是硬盘驱动器(图9)。此外,前面板USB连接也是专为USB闪存驱动器而设计的。
图9:PogoPlug是一个带四个USB端口的NAS设备,仅支持外部存储。其互联网支持是PogoPlug区别于大多数NAS的差异化功能。
插头技术非常灵活,但是这种技术只是这些NAS设备的起点。其互联网连接能力和相关应用使这些设备脱颖而出。PogoPlug Web站点充当连接到互联网设备的网关,支持台式电脑或智能手机等其他设备访问NAS设备上的数据。
这里的主要技巧是克服LAN上的NAS设备与连接到互联网的设备(比如台式电脑或智能手机)之间的防火墙和网关问题。由于允许通过LAN防火墙/网关通信,因此PogoPlug的免费服务通过其互联网服务器执行与连接到该服务器的NAS设备的通信,从而解决了上述防火墙和网关问题。
最初的服务只包含基本文件共享。不过现在这些服务已经得到了扩充,包含对多媒体流、打印机热点和电子邮件打印等功能的支持。现在设备之间甚至出现了Dropbox形式的共享。PogoPlug商业版增加了多个用户支持以及使用和审计功能。
与Dropbox不同的是,PogoPlug的存储容量仅受连接到NAS设备的限制。其缺点一般是上传端的连接带宽,因为大多数用户连接都是非对称连接。使用更快的线缆和光纤到家连接时一般都不存在这个问题。
技术性更强的“云存储”平台往往基于存储区域网络(SAN)。SAN已经成为存储容量达到千兆兆字节(petabyte)甚至艾字节(exabyte)的企业服务器农场的存储骨干。光纤通道正是用在这种应用中,尽管iSCSI是目前首屈一指的存储技术。
光纤通道可以满足运行速率高达10Gbps的硬件接口和存储通信协议的要求。它专门针对大型、高性能、高可靠性存储集群而设计。以太网光纤通道(FCoE)标准已将协议转移到网络上,随着集群计算转移到最前端,这种标准的重要性与日俱增。
早在新一代的SCSI技术SAS驱动器推出之前,iSCSI标准就已经启动了,但是iSCSI标准与底层硬件无关。其命令集影像了那些被SCSI及后来的SAS驱动器所使用的命令,不过iSCSI是针对SAN设计的基于网络的区块存储协议。NAS设备往往支持iSCSI协议。基于BSD(伯克利软件分发)的FreeNAS等开源平台具有iSCSI支持。同样,许多母板和以太网适配器通过iSCSI提供网络引导能力,但是大容量驱动器则来自虚拟化服务器。
Amazon和Google等提供的云计算服务一般以虚拟化服务器为中心进行构建,这些服务器通过iSCSI连接运行SAN存储器链接。这种技术可以实现将存储和计算组件分布在整个网络中。此外还允许服务提供商处理配置,同时提供对可以直接访问虚拟环境的服务用户的免费管理。
到这里为止所阐述的问题是,术语“网络”涵盖了诸多领域。在这种情况下,用于云计算的SAN往往是一个隔离网络,可能在一个虚拟化网络内。事实上,一个服务提供商的环境中一般存在多个虚拟SAN,用于隔离客户存储和计算环境。用于计算环境的虚拟机具有与客户连接的网络接口,用于存储环境的虚拟机则具有与iSCSI SAN连接的网络接口。
来自虚拟机的iSCSI连接数一般不受其操作系统的限制,因此虚拟机可能是由不同SAN服务器托管的访问逻辑iSCSI驱动器。同样,虚拟机不受iSCSI连接的限制。它还可以连接到文件服务器和数据库服务器之类的其他存储解决方案。
灵活性是iSCSI的主要优势,而安全性是另一个优势。我们已经讨论了网络隔离,但是另一方面是iSCSI和SAS支持的端到端加密。这种优势也将在企业硬盘驱动器和SSD中越来越容易获得。
安全存储
SSD和HDD往往支持同一种安全措施。全盘加密是其中一项功能。首次使用自加密驱动器时,访问该驱动器上的数据需要正确的密钥。
然而,由于密钥用来加密和解码驱动器上的信息,因此这不仅仅是门控机制的问题。由于加密的原因,直接绕过安全控制无法实现对数据的访问。可信平台模块(TPM)一般是混合方案的一个组件,它可以提供安全引导支持。
访问密钥一般可提供对用于加密过程的另一个密钥的访问。这就允许使用多个访问密钥,因此企业密钥具有对多个驱动器的访问,个人密钥则具有对与其密钥匹配的驱动器的访问。这种技术的一个相关功能是驱动器基本上都可以通过破坏加密密钥来擦除。这种擦除可以通过一个命令来实现,而无加密驱动器则通常采用覆盖方法进行擦除。基于硬件的全盘加密的优势,是控制器可以处理详细信息。它们一般与硬件匹配,因此加密过程不会降低数据传输速率。
新型SAS控制器旨在利用基于硬件的加密。有些SAS控制器不需要硬件加密设备即可提供加密支持。SAS控制器一般支持一个或多个磁盘阵列,一般使用热插拔更换坏驱动器。由于驱动器被更换或转移到新的位置,密钥管理现已成为控制器的一个问题。
遗憾的是,与基于软件的加密策略相比,全盘加密可能无法实现精细地使用存储器。安全USB闪存驱动器等一些系统可以将驱动器分成两个逻辑部分,一个加密部分,一个非加密部分。这两个部分以两个驱动器出现,因此无需更改操作系统。
一种新的驱动器支持T10保护信息(PI)端到端加密,包括Seagate公司的Constellation 2。这种技术还需要操作系统和应用支持,因为驱动器的扇区实际上更大。
在这种情况下,应用程序处理加密和解密过程。这意味着,数据在离开应用程序之前是安全的,因此研究iSCSI链路的通信没什么作用。
T10 PI还需要匹配的控制器支持,最新的SAS控制器可以提供这种支持。另外,由于复制数据可以提供对非加密内容的访问,因此它还可以对驱动器进行备份。
现在,存储问题涵盖的技术五花八门,嵌入式设计人员甚至也需要对这些技术进行考虑。当涉及到网络时,存储也不再局限于手头的设备。
评论
查看更多