跟着航天使命的不断丰厚、航天勘探技能的不断进步(如勘探器品种增多,相机分辨率进步级),我国空间站等重大战略规划的逐渐施行,空间科技数据的收集速度与存储总量需求大幅度攀升,对存储器的容量、吞吐速率、数据办理提出了更高的要求。
现在航天器所带着的固态存储器的底子存储介质以SDRAM和Flash为主,Flash读写速度较SDRAM慢、操作杂乱,但因为根底工艺的差异,Flash的存储密度远远超越RAM系列产品,不需求改写,功耗低,而且具有非易失存储特性,在分量、功耗、牢靠性极端灵敏的航天运用上,Flash将坚持巨大的生命力和发展潜力。
依据Flash的存储体系主要有固态硬盘和介质直接办理两种方法。前者现在广泛运用在笔记本、服务器等商用范畴,在存储设备内部,经过FTL(flash transition Layer,闪存转化层)的转化,可处理SATA指令,但在硬件接口及软件体系方面照搬传统磁盘办理技能,对存储特性运用并不充沛:硬件SATA接口标准无法满意Flash存储体系功能要求,成为瓶颈;以文件体系为代表的数据办理战略,大都考虑磁盘环境进行优化,Flash的优势无法充沛体现。航天级运用需求选用介质直接办理的方法,针对Flash存储特性,从底层进行硬件结构规划,在满意使命的容量、速度、容错等要害需求的一起,尽量下降体系杂乱度,逐渐完成数据有用办理战略。
1 Flash器材的存储特性介绍
本文以3D—PLUS公司的NAND型32Gbits(4G×8)Flash叠装模块作为存储介质为例,介绍Flash存储特性。
1.1 并行性
该模块由8片4G位(512Mbits×8)SAMSUNG公司的NAND Flash芯片叠装而成,共用对外的8位宽I/O总线。该Flash芯片每2K字节的主存储区(Main Array)外加64字节的空余区(Spare Array)组成一页(Page),64页组成一个块(Block),4096块组成一个器材(Device)。
因为Flash存储模块的指令与数据共用I/O端口,对时序要求较为严厉,但从运用的视点来看,因为各组I/O之间无依赖性,十分简略完成并行扩展。3D plus公司供给的存储模块经过简略的片选逻辑,即可封装多个Flash存储芯片。在航天实践使命运用中,咱们也能够便利的经过并行总线技能,进行扩展,进步速度、进步容量。
1.2 最小操作单位及编程时刻
写操作最小单位为“页”。写FLASH的进程分为两步,首先将指令、地址以及数据以字节方法写入芯片内部缓存(也便是“加载”,最快周期为50 ns)后,芯片内部需求一个内部编程的进程,才能够承认编程是否成功。典型时刻tPROG为300μs,最大700μs。在编程进程中,芯片不响应外部指令,极大的下降了Flash的写入速度,是Flash运用的难点之一。
读操作一般也是以页为单位进行,但相对灵敏些,也能够经过在输入地址进程中直接定位某一字节读取。在输入指令和地址后,需求一个等待时刻tR后才能够将数据经过读脉冲读出。tR最大值为25μs。擦除操作有必要以“块”为单位进行,每次有必要一起擦除一个块内的悉数64页的数据。在擦除的指令和地址输入后,需求等待时刻tBERS后才能够承认擦除是否成功。tBERS的典型时刻为2 ms,最大为3 ms。
1.3 无效块
NAND型FLASH芯片的特色是在出厂时就存在必定份额的无效块(Invalid Block),在芯片的运用进程中,有或许还会有新的无效块发生,具体表现为在编程或擦除进程中呈现编程失利或擦除失利的状况。对无效块的读操作是答应的,但因为对无效块的写和擦除操作应尽量防止。坏块随机散布,难以从工艺上底子消除。
2 航天存储体系规划及应对技能办法
2.1 体系规划
文中以3D—PLUS公司的NAND型32Gbits(4Gbx8)Flash叠装模块作为存储介质,介绍航天实践运用的Flash存储128Gbits容量计划。存储操控选用FPGA集成悉数操控模块,担任体系作业流程履行和状况保护。
在每次体系从头加电后,硬件电路将主动遍历整个存储区的簇运用记载信息,每64簇的簇运用信息组成一条块信息,悉数块信息构成“块分配表”,即BAT(Block Assignment Table),包含Flash的当时运用信息,作为存储状况操控的依据。硬件初始化完毕后,BAT表送往计算机内存,计算机软件在完成对CPU初始化设置后,进入惯例使命办理,包含数据存储、数据回放、数据读取、数据擦除。FPGA与计算机经过
HPI总线通讯,计算机主板经过CAN总线与上位机通讯,完成指令遥控遥测等功能。存储操控完成以硬件为主,与地上通讯交互功能以软件为主。
为了确保存储数据牢靠,实践运用中在存储操控模块中对存储数据进出Flash存储介质的端口进行RS编译码,有用检错、纠错,防止单粒子翻转形成存储数据过错,并提交检纠错信息至遥测工程参数。体系具有回复进场初始化的指令,当检测到存储体系呈现较为严峻的反常时能够康复存储体系至进场状况。一起能够添加存储电路板备份板,由复接器操控冷备或许热备,进步体系牢靠性。
2.2 并行总线技能和“簇”的概念
叠装模块包含8片Flash芯片,共用对外的8位宽I/O总线。128 Gbits装备的存储区模块由4个Flash叠装模块构成,将4片Flash操控总线、状况总线互连,而I/O总线扩展为32位,其间4片Flash的8位宽I/O总线别离对应32位总线的不同数据位段。即4片并行的FLASH芯片相同地址的页被看作一个底子单位,即“簇”,因而1“簇”的底子存储空间为2 kx32 bits。经扩展后,一簇容量为64 kbits,64簇组成一个块(Block)。
4倍总线扩展的体系操作速度将进步为本来的4倍。一起能够十分简略的进行更多的扩展,但考虑到操控总线的驱动负载才能,更多的并行扩展或许带来时钟沿树立时刻不稳定,能够运用总线驱动器增强驱动负载才能。
2.3 流水线技能
为了进步体系的存储速度,依据FLASH芯片的操作特色,在对存储区模块写入时还将选用流水线操作的方法。将多片FLASH分红若干组,每次加载(写)一页的数据到一组Flash芯片后,该组芯片总要有大约300μs的内部编程时刻,在此期间虽然不能对该组芯片进行其它操作,但能够当即进行另一组芯片的加载。假如选用16 MHz的写时钟(周期62.5 ns),加载2k数据的时刻大约为130μs左右,当第4组芯片加载完毕后,第一组芯片的编程进程一般现已完毕,待体系承认后,开端下一个循环。依据写操作典型事情,本规划选用4级流水线写操作,便能够底子确保在微观上完成对存储区的全速率无间断接连数据写入。图4为流水线写操作的原理示意图。
2.4 坏块办理
关于初始无效块,将被直接越过,后续数据将被加载到该无效块在本流水级内后续的第一个有用块中。假如在运用进程中呈现了新增的编程无效簇,该簇地点的块将被界说为程无效块,体系将把该块地点流水级内后续的第一个有用块作为代替块,编程犯错的数据将被从头加载至代替块内的相同偏移页地址的簇地址空间,该流水级后续的数据将被加载到代替簇地址的后续地址中。
3 民用Flash存储体系的启示
民用Flash存储体系有两个特色,一是Flash存储介质跟着半导体技能的进步密度添加很快,但因为工艺原因,对单粒子效应灵敏,密度越大,或许形成的紊乱越严峻,不适用于航天环境。二是存储办理方法研讨较为深化,极大的便利了用户运用,学习含义较大。
民用Flash存储体系办理类别较广,大体分为Flash加速卡、Flash存储阵列与散布式集群体系,大多重视3个要害技能,依据I/O栈调整与重构的存储功能优化、体系级牢靠性、体积与能耗。代表性Flash存储体系比照见表1。而从航天存储体系现状来看,体系软件层的I/O栈优化尚无必要,而重视大局磨损平衡的体系级牢靠性研讨参考性较强,体积与能耗的相关考量也有彼此学习的当地,散布式集群体系的规划思维有必定的启发性。
体系级牢靠性研讨中磨损平衡的提出,是因为Flash存储单元的屡次擦除,会削弱其保存电子的功能,使得数据易受搅扰。闪存的擦除次数在一万到十万次之间,而且跟着存储密度添加而下降。民用存储体系一般在FTL内完成磨损平衡战略。动态磨损平衡在擦除与写入的进程中,归纳考虑存储单元的磨损程度,实时进行平衡;静态磨损平衡则是守时交流读写频次低的冷数据与频次高热数据的存储方位,又可分为随机平衡机制,与依据擦写次数的平衡机制。
散布式集群存储体系的规划与航天运用的流水操作思维较为类似,都有着用空间交换速度的指导思维。不过前是从更高层次进行的全体体系规划,包含体系架构、FTL优化等办法,处理Flash接口速率远远小于数据吞吐速率需求的问题,但需求考虑大规模扩展带来的时延和牢靠性问题。散布式集群存储体系杰出特色是具有杰出的扩展性,优化存储状况更新查询方法、挑选相习惯的低频低功耗的CPU,有用下降全体功耗。
航天科技使命越来越丰厚,科学数据的品种与数量不断添加,对存储体系数据办理要求也越来越高。比较于航天用存储体系硬件架构从磁带机、磁盘到固态存储器的屡次晋级,相应的数据办理研讨与运用较为落后,如高效坏块办理、长时刻在轨磨损平衡、习惯航天归纳电子渠道的文件操作体系等。现在国内外民用依据Flash的固态存储体系架构与优化技能研讨进展较快,也更为丰厚,对航天运用具有较强的启发性。
4 完毕语
针对Flash存储特性,本文以航天使命为布景,提出一种依据直接操控存储介质的Flash存储体系。发挥Flash存储介质并行性的长处,运用并行总线扩展技能;针对写操作编程时刻长的问题,合理选用多级流水线技能;针对Flash坏块现象,采纳简略牢靠的坏块办理战略。而且调研民用Flash存储技能与规划思维,讨论航天存储技能的研讨方向。