基于固态硬盘的星载海量存储阵列研究与设计
2014-12-28
(山东航天电子技术研究所,山东烟台 264670)
1 引言
随着卫星平台及遥感技术的不断发展,星载平台对数据存储技术要求不断提高,对数据存取速度从兆比特/秒已提高到吉比特/秒,对存储容量的要求也从吉比特提高到太比特。在高性能和大容量需求背景下,与非型闪存(NAND Flash)存储介质以其高吞吐率、大容量、低成本、非易失等显著优势成为星载固存设计的首选介质[1]。因此,目前各国航天界都已把星载固存的存储介质从20世纪90年代的静态随机访问存储器(Static Random Access Memory,SRAM)、同步动态随机访问存储器(Synchronous Dynamic Random Access Memory,SDRAM)转变为与非(NAND)Flash芯片,并采用多芯片形成阵列式存储,从而大大提高整个设备的吞吐能力和容量[2]。
采用NAND Flash芯片作为存储介质,较好地解决了星载固存对容量的需求,并降低了成本,但是由于NAND Flash 自身工艺特性而存在一些问题[3-5]:①写入时必须进行纠检错编码以纠正其读出时的错误比特;②出厂时一般有坏块,擦除和写入时也可能会产生新的坏块,需进行坏块管理和替换;③擦写寿命有限,一旦达到寿命周期,其存储稳定性将无法保证,因此在使用中要注意损耗均衡,不对局部进行过于频繁的擦写而导致其过早达到寿命末期。目前在轨、在研的星载固存设备均需要对这些问题进行处理,以满足对数据可靠性的要求。而为了满足吞吐能力的要求,一般使用现场可编程门阵列(FPGA)作为控制器实现上述算法,这极大地增加了控制算法的复杂性,因此有必要探索新的存储途径或介质。
近年来,基于SATA[6]接口的固态硬盘(Solid State Drive,SSD)技术经过多年发展已十分成熟,集成度高、功耗低、价格便宜、可靠性高[7],并且SSD解决了上述问题,采用SSD 作为存储模块不需要关注FLASH 芯片的控制细节,只需要与SATA 接口进行通信。在地面作为新兴硬盘技术已经在高端个人电脑、网络服务器[8]等环境中得到了广泛应用。本文首先介绍采用SSD 研制星载海量固存设备的优势和不足;其次,对在星载应用中的可行性进行研究,并对其与数传分系统的融合进行分析;最后,提出一种以SSD 作为存储模块的星载固存设备设计方案,并对设计中的关键技术和实现难点加以说明。
2 采用SSD设计星载固存设备的特点分析
2.1 采用SSD 的主要优势
SSD主要由3部分组成:FLASH 芯片、主控芯片、缓存芯片。目前主流的SSD 主控芯片基本集中在Marvell、英特尔、三星、SandForce、Jmicro 等几家厂商,其技术成熟、可靠性高,屏蔽了应用FLASH 芯片的控制和可靠性算法问题,使用户如同操作普通硬盘一样使用SSD。采用SSD 作为存储模块的主要优势体现在如下几个方面:
(1)扩展性强。每个SSD 与主控FPGA 的连接仅占用2 对差分输入/输出(I/O)。以Xilinx公司的XC5VFX130T[9]为例,单片提供了20 个GTX(Xilinx公司FPGA 内置高速收发器)单元[10],理论上可连接多至20个SSD。相比单片NAND Flash的至少20个I/O,单片FPGA 能提供更大的存储容量和数据吞吐率,印刷电路板(Printed Circuit Board,PCB)布局布线复杂度低得多。在不更改设备硬件的前提下,调整SSD 的容量即可实现设备容量的增减。
(2)软件可靠性高。SSD 使用的SATA 协议虽然复杂,但有专业公司设计的、经过充分验证的IP核可用,比自行设计、未经充分验证的NAND Flash控制器软件可靠性更高。
(3)简化算法。SSD 可看作多NAND Flash芯片结合外围控制电路在更高层次上的一个封装,对于使用者来说,其屏蔽了NAND Flash使用中的坏块管理、损耗均衡、纠检错编码等复杂的算法,这些算法完全由SSD 的主控芯片完成。
(4)成本低。SSD 的主要成本是NADA Flash芯片,生产厂家通过大规模采购现货产品可降低其生产成本。
(5)更新换代容易。SSD 属于标准化产品,由生产厂家控制其内部接口、芯片等技术的更新换代,而用户只需要关注外部SATA 接口即可。
(6)可维修性/可更换性。单个SSD 价格低廉,在载人航天器上使用时,可通过直接更换SSD 模块完成故障修复,或对于不需要及时回传的科学数据由返回舱带回地面处理。
2.2 采用SSD 的缺点和可行性分析
本节主要通过SSD 与FLASH 芯片两种技术方案的对比,说明其技术可行性。
1)运行环境适应性问题
星载固存设备由于运行环境特殊,其可靠性要求与地面不同,地面应用环境的SSD 不具备抗空间辐射的技术指标,这是SSD 在空间应用的最大问题,对星载应用的固存设备必须进行升级筛选、抗辐射加固等可靠性设计。目前国内已有厂商开始提供军用级的SSD,其存储介质同样采用工业级的NAND Flash芯片,通过了军用设备标准进行温度、震动、冲击等筛选试验,符合MIL-810F 和GJB150环境测试标准[11]。采用这种SSD 产品与直接使用工业级NAND Flash 芯片设计的星载固存设备在可靠性上并无太大差异。如果辅以加屏蔽壳、独立冗余磁盘阵列(Redundant Array of Independent Disks,RAID)、增大冗余备份盘比例等方式,可有效解决SSD 星载应用的可靠性问题。
2)SSD 使用后的性能下降问题
在地面使用中,微软Windows 7以后的操作系统均会支持对SSD 的自动优化,不会有反复使用后性能明显下降的问题。在星载环境下,没有该操作系统支持,SSD 的驱动软件通常由固存设备设计方自行设计,因此需要自行调用Trim[12](ATA8协议中对SSD 进行数据整理的一条指令选项)指令进行优化。国内某厂商提供的军用级硬盘已实现了硬件层面的垃圾回收算法,在使用中几乎不会感觉到硬盘垃圾带来的影响。
3)数据缓冲的需求问题
SSD 使用的存储介质是NAND Flash芯片,其需要以块为单位擦除后才能再次写入数据。然而,由于SATA 接口硬盘通信命令采用的是ATA 协议,并没有擦除命令,因此,SSD 主控在写入新数据时实际上是执行先擦后写模式(当然是其要写入的物理块“脏”的情况下),这导致在连续写入时会出现间歇性地变慢。如图1所示为某SSD 以4 Mbyte为单位,顺序写入144Mbyte时的时间分布情况,在第16次/32次写入时的耗时明显比平时多,因此,必须使用较大的缓冲区以平滑写入速率。对于FPGA主控来说,使用DDR2/DDR3SDRAM 做缓存是理想的选择,其容量大、带宽宽,并且DDR2/DDR3SDRAM 控制器通常作为免费的IP 核在FPGA上使用,设计难度较低。
图1 某SSD 写入时间分布图Fig.1 Distributing diagram of writing time from a SSD
4)整机质量的增加
由于SSD 是一个独立产品,具有自己的组成结构,采用SSD 相比直接采用芯片在整机质量上会少量增加。
5)功耗与性能考虑
对采用SSD 和直接采用FLASH 芯片的固存进行对比测试,其结果如下:在以4块SSD 组成的原理样机测试中,整机功耗达21 W,写入速率仅达4Gbit/s;而采用了8片FLASH 芯片的星载固存,整机功耗仅为15 W,写入速率达5Gbit/s。
但是需要注意的一点是:在上述测试中,由4个SSD 盘组成的样机的容量为480Gbyte,而由8 片FLASH 芯片组成的固存样机容量仅128Gbyte,二者之间几乎相差4倍。因此,可得出这样的结论:在速率要求不是很高,功耗限定不很苛刻,而对容量要求较高的场合,采用SSD 更适合。
6)文件管理方式
尽管SSD 采用了与传统机械硬盘相同的接口,但是作为星载数据的管理仍然无法采用地面通用文件系统,这主要是由于通用文件系统是非常复杂的,需要很强的CPU 处理能力,而星载CPU 均为嵌入式、低功耗、高可靠处理器,其自身计算能力和内存、外设等均无法与地面计算机系统相比[13]。对存储数据管理时,对于FLASH 的块(block)、页(page)的管理和对逻辑区块地址(Logical Block Address,LBA,每个LBA 包含512byte)地址管理采用的方法,与现有技术不同。
通过本节分析可见,采用SSD 尽管存在一些缺点和不足,但在技术上是可行的,并且具有软件可靠性高、研制周期短、容量大等优势。
3 与数传/载荷分系统的数据接口
如果以遥感卫星作为星载固存设备的主要使用场合,对固存的记录性能要求均达到几兆比特/秒,回放性能要求也达到几百兆比特/秒到吉比特/秒。然而,由于星载处理器能力非常低,无法解决上述数据的存盘处理,实时性也不能满足要求,因此数传/载荷系统间需采用FPGA 处理高速数据接口。
对于SSD 作为星载存储模块使用的情况,也只能使用FPGA 将数传/载荷分系统数据接口转换为SSD 使用的SATA 接口,如将低压差分信号接口、TLK2711接口等数据由FPGA 进行缓冲,再通过SATA 总线提交给SSD 进行存储,回放过程恰好相反。
4 SSD 在星载应用中的关键技术
1)SSD 性能优化技术
SSD 厂商在读写控制中采用了损耗均衡技术,以防止Flash的某些块过早到达寿命末期。应用该技术导致在全盘多次写入后,写入速率急剧降低。因此需要对SSD 进行性能优化,以恢复其写入性能。性能优化的方法一般是通过向SSD 发送Trim指令,从而使SSD 能够更加有针对性的进行处理,以恢复写入速率。
2)SSD 环境适应技术
由于星载固存设备应用环境特点,对固存需要有防震动、宽温级、防辐射等要求。对于商用SATA接口SSD,其接口及紧固件防震动问题需要加以改进,可对SSD 接口部分进行硬件更换。宽温级SSD目前市场上产品已有很多,可直接采购,而防辐射指标目前商用SSD 均不具备,必须加以外部防护,可通过辐射总剂量计算,然后贴装钽片等方式进行抗辐照加固屏蔽空间辐射。
3)SSD 升级筛选技术
现货产品SSD 必须经过升级筛选剔除掉其中的不良品后方可用于星载固存。升级筛选过程包括一系列复杂严格的实验流程,如结构分析、X 射线检查、高温存储、静态老炼、动态老炼、温度循环测试、寿命考核、抗辐照能力评估等方面。
5 基于SSD 的存储阵列设计及验证
以下给出一种以4个SATAⅡ接口的120Gbyte大小2.5吋SSD 盘作为存储模块,以Xilinx公司XC5VFX130TFPGA 作为接口控制芯片,以Synopsys公司SATAⅡIP 核为总线控制器的设计思路。
1)设计方案
本节主要以原理设计为主,介绍基于SSD 的星载固存设备的设计方案。硬件主要由电源板、主控板和固态存储板组成,如图2所示。主控板完成对外部接口的控制、存储文件管理、SSD 存储板管理。SSD 存储板由多块SSD 硬盘组成,是设备的存储实体。电源板则为设备提供稳定的电源及加断电控制等。主控板、存储板、电源板通过底板进行连接。主控板和固态存储板之间采用SATA 线缆实现数据传输。
如图3所示,主控板是星载固存的核心控制模块,是一个以FPGA为核心的高度集成的控制系统。FPGA 通过总线接口芯片与控制总线进行交互,以接收指令进行数据存储和回放。通过一对高速串行接口芯片与数传/载荷分系统模拟板进行高速数据传输。FPGA 同时外挂DDR3SDRAM 作为高速数据的缓冲区使用。
图2 系统级功能框图Fig.2 System-level functional block diagram
图3 主控板功能框图Fig.3 Controller board functional block diagram
FPGA 内部为一个典型的高级可扩展接口(Advanced eXtensible Interface,AXI)架构系统,主要包括以下主要功能模块:
(1)32 位MicroBlaze 处理器,主要用于实现SATA 协议的应用层,作为SATA 主机,通过ATA指令进行数据存取服务;
(2)SATA 控制器,实现SATA 协议的链路层和传输层;
(3)FPGA 内置的4 个GTX 收发器,用作SATA协议的物理层,直接与4个SSD 相连;
(4)DDR3 SDRAM 控制器,实现 DDR3 SDRAM 的访问控制;
(5)DMA 控制器,主要实现数据在DDR3 SDRAM、SATA 控制器和数据输出输入接口模块的高速数据传输,将处理器从数据搬移中解放出来;
(6)总线接口模块,实现总线接口时序到AXI接口时序的转换;
(7)数据输入输出接口,实现DDR3SDRAM 和对外数据接口间的数据交换。
2)测试验证
测试平台工控机插入一块PCI Express板卡模拟数传/载荷分系统数据发送和接收,该板卡使用两个TLK2711芯片进行高速数据收发,采用125 M时钟,16 位宽度,带宽达到2 Gbit/s,有效带宽达1.98Gbit/s,总速率达3.96Gbit/s。通过高速电缆连接板卡与SSD 样机,上位机软件进行数据生成、发送给PCI Express板卡,由板卡通过TLK2711发送给SSD 样机进行数据写入测试,读出测试时数据流方向相反。
写入测试时,首先通过控制总线通知SSD 样机进入写入工作模式,然后通过PCI Express板卡发送数据,发送10min数据后停止发送,最后再次通过控制总线发送停止指令。
读出测试时,首先上位机通知PCI Express板卡进行接收,然后通过控制总线通知SSD 样机进入回放工作模式,回放完成后通过控制总线发送停止指令。
(1)测试结果:在上述测试流程完成后,SSD 样机在10min内记录完成295Gbyte数据,平均记录速率达到3.93Gbit/s。回放完该文件耗时10min,平均回放速率达3.93Gbit/s。在回放过程中,计算机对数据正确性进行实时校验,结果正确,没有误码产生。经过测试表明,该设计的原理是正确的,能够完成对SSD 盘阵列控制操作进行数据读写。由于外部数据接口速率限制,该测试并未测试出样机的最高性能,但是通过SATA 协议分析仪抓取的数据可计算出,该样机写入中的性能在132 Mbyte/s以上(见图1)。
(2)环境试验:在功能与性能测试完成后,对该样机进行了力学、85℃高温老练等环境试验,并在试验中、试验后进行了功能与性能测试,所有功能均正常。
6 结束语
本文提出了采用SSD 硬盘作为存储模块研制星载固存设备的技术方案,并结合星载固存运行环境对SSD 的使用提出了可行性分析与设计、关键技术解决思路。研究结果表明,针对星载应用环境,采用SSD 硬盘与FLASH 芯片,相比技术上可行,成本上更低,标准化程度高,研制周期短,能够作为要求快速研制和发射、寿命较短的星载固存设备存储模块使用。对于长寿命、高可靠卫星应用环境,对SSD 硬盘的抗辐照情况和加固措施需要开展更加深入的研究。
(References)
[1]高怡祯.基于闪存的星载大容量存储器的研制[D].北京:中国科学院空间科学与应用研究中心,2004 Gao Yizhen.Designing of high-capacity storage device onboard based on flash[D].Beijing:Center for Space Science and Applied Research,Chinese Academy of Sciences,2004(in Chinese)
[2]朱岩.基于闪存的星载高速大容量存储技术的研究[D].北京:中国科学院空间科学与应用研究中心,2006 Zhu Yan.Research on high-speed and high-capacity storage technology onboard based on flash[D].Beijing:Center for Space Science and Applied Research,Chinese Academy of Sciences,2006(in Chinese)
[3]M Fabiano,Politecnico Torina,G Furano.NAND Flash storage technology for mission-critical space applications[J].IEEE Aerospace and Electronic Systems Magazine,2013,28(9):30-36
[4]李进,金龙旭,李国宁,等.适于空间图像闪存阵列的非与闪存控制器[J].光电子·激光,2012,23(5):866-872 Li Jin,Jin Longxu,Li Guoning,et al.NAND Flash memory controller for image flash array in space[J].Journal of Optoelectronics Laser,2012,23(5):866-872(in Chinese)
[5]彭兵,步凯,徐欣.NAND Flash坏块管理研究[J].微处理机,2009,30(2):113-115 Peng Bing,Bu Kai,Xu Xin.NAND Flash bad block management research[J].Micro Processors,2009,30(2):113-115(in Chinese)
[6]Serial ATA International Organization.Serial ATA Revision 2.6[S].Beaverton:Serial ATA International Organization,2007
[7]袁飞.固态硬盘的研究与应用[D].成都:电子科技大学,2012 Yuan Fei.Research on and application of solid state drive[D].Chengdu:University of Electronic Science and Technology of China,2012(in Chinese)
[8]田芳,唐玮,黄嫦蓉.普通固态硬盘在广播级硬盘播出上载服务器中的应用[J].大众科技,2013(7):27-30 Tian Fang,Tang Wei,Huang Changrong.Ordinary SSD drives in broadcast aired upload server application[J].Dazhong Keji,2013(7):27-30(in Chinese)
[9]Xilinx.Virtex-5FPGA user guide[EB/OL].[2010-05-17].http://www.xilinx.com/support/documentation/user_guides/ug190.pdf
[10]Xilinx.Virtex-5FPGA rocket IO GTX transceiver user guide[EB/OL].[2009-10-30].http://www.xilinx.com/support/documentation/user_guides/ug198.pdf
[11]源科.源科推出磐龙V 代SSD[J].单片机与嵌入式系统应用,2012,12(1):88 Run Core.Version 5SSD of panlong released by runcore[J].Microcontrollers & Embedded Systems,2012,12(1):88(in Chinese)
[12]American Nantional Standards Institute.AT Attachment 8-ATA/ATAPI command set[S].New York:A-merican Nantional Standards Institute,2009
[13]刘立祥,赵军锁,张文君.星载高性能计算的技术现状与技术分析[C]//第十六届全国抗恶劣环境计算机学术年会.北京:中国计算机学会,2006:126-128 Liu Lixiang,Zhao Junsuo,Zhang Wenjun.Current condition and technical analysis of onboard high performance computing[C]//The 16th National Conference on Severe Environment Computer.Beijing:Chinese Computer Federation,2006:126-128(in Chinese)