APP下载

星载高速碎片式文件存储访问系统设计

2020-01-02杨宜禥禹霁阳蒋帅李欣黄丹

航天器工程 2019年6期
关键词:板卡遥测字节

杨宜禥 禹霁阳 蒋帅 李欣 黄丹

(1 空军工程大学防空反导学院,西安 710051)(2 重庆高新区飞马创新研究院,重庆 400050)(3 北京空间飞行器总体设计部,北京 100094)(4 中国兵器科学研究院, 北京 100089)

随着卫星平台、载荷系统的快速发展,需要进行存储管理的数据越来越多,文件系统逐渐呈现出碎片化趋势。如何在保证高可靠、稳定运行的状态下提升碎片式文件的存储效率及访问速率,成为当前星载存储系统设计过程中面临的难点[1]。星上数据存储,除遥测遥控数据外,部分小载荷数据以高频率的小文件形式保存,地面用户对过往数据的判读,也是以碎片式访问居多,因此星载高速碎片式文件存储访问系统的设计具有重要意义[2]。

在以NAND Flash为载体的星上数据存储系统中,对于单个大文件,往往建立链表,采用多个Flash不同块切换存储,以提高数据的并行访问速度[3]。碎片式文件往往小于一个块的存储容量,当某一时段大量产生碎片式文件时,对NAND Flash的频繁访问会造成数据通路的极大负担,同时也会造成星上固态存储器寿命的快速降低[4]。针对高速碎片式文件系统,文献[5]中提出一种全程优化的垃圾回收(WPO-GC)方法,在数据初始放置、垃圾回收、数据迁移上考虑文件的优化。文献[6]中提出一种基于逻辑区间热度的垃圾回收算法,构造一种新的回收代价函数选择回收块。文献[7]中使用NAND Flash作为存储介质的存储设备,常常需要闪存转换层(FTL)对NAND进行管理,采用页置换法把需求的映射表搬移到静态随机访问存储器(SRAM)中,以减少碎片式文件造成的系统损耗。文献[8]中采用日志文件的方式,以几千字节的ROM及100多字节RAM的代价实现碎片式文件的高效管理。文献[9]中采用非易失RAM作为日志信息的记录载体,既提高了碎片式文件的访问速度,又提高了安全可靠性。文献[10]中仅采用多片Flash的并行吞吐,没有考虑文件系统在存储过程中大小文件混合造成的速率损耗。以往的文献主要是以额外的缓存区建立碎片式文件的日志形式,提高小文件的管理效率及访问速度,这些碎片式文件的大小在几百到几千字节量级。星上存储系统碎片式文件往往用于存储突发性遥测遥控信息,从几字节到几兆字节大小不等,这也造成了采用外部RAM建立日志文件或者缓存局部信息的方式不可行,因此需要寻找更加高效的方式管理文件系统。

基于文献[10]中的研究,针对碎片式文件存储访问系统现有的局限性及星上存储应用特点,本文从碎片式文件存储访问结构和基于NAND Flash的存储布局策略出发,提出了一种星载高速碎片式文件存储访问(PFSA)系统。通过对平均写入性能、大批量碎片式文件写入性能、文件传输性能及块擦除均衡性能等进行测试,验证了设计的有效性。

1 PFSA系统存储访问结构

本文涉及到的星上文件存储系统主要是应用于卫星平台、接收总线的遥测遥控信息及部分小载荷数据,生成需要存储的数据帧,进行编解码后存入NAND Flash。传统的星上文件系统,为了提高访问速度采用并行Flash存储,对于单个Flash内部数据一般采用循环存储的方式,如图1(a)所示。这种设计结构简单,逻辑资源占用少,但在碎片式文件重复访问较多时访问速度较低,难以满足实际应用需求。

PFSA系统针对Flash中的块操作建立数据访问模型,将不同的碎片式文件尽可能存放在不同的Flash基片上,从而提高并发数据的访问速度;采用磁电存储器(MRAM)存储小于百字节下的碎片式文件模型,当MRAM内部数据达到阈值时一次性搬入Flash的固定块内,从而减少碎片式文件的读写Flash时间,提高查询效率。PFSA系统的结构如图1(b)所示,主要包括星上通信总线、遥控遥测数据帧生成、外部SRAM管理、数据编码、NAND Flash并行访问管理、文件信息管理表和MRAM碎片式文件管理7个模块。

星上通信总线模块负责接收其他外部设备的输入数据,同时向外部设备发送指令等消息,是PFSA系统数据输入的唯一接口。遥控遥测数据帧生成模块负责解析通信总线上的遥测遥控信息,并根据遥控指令生成需要存储数据帧,同时也负责管理文件信息的遥测。外部SRAM管理模块用于数据在内部和外部缓存之间的通路管理。数据编解码模块通过对数据帧进行编解码,提高NAND Flash中数据访问的可靠性。NAND Flash并行访问管理模块通过并行Flash操作提高访问速度,同时根据输入数据属于不同的文件而分配到独立的Flash基片。文件信息管理表模块用于所有文件的文件名、起始信息、链接信息管理及创建、废弃标志的管理。MRAM碎片式文件管理模块用于在MRAM中存储碎片式文件数据,包括文件的创建、修改、删除、回收等操作。

高性能星上文件存储系统,受制于在轨硬件资源体积、功耗及可用元器件的约束,难以直接照搬地面应用设计,同时,星上碎片化信息存储及在轨运行的高可靠需求也对设计提出了更高的要求。下文结合MRAM与Flash访问特点,给出Flash布局存储策略及基于MRAM的碎片式文件管理方法。

图1 传统星上文件系统和PFSA系统结构

1.1 基于NAND Flash的存储布局策略

PFSA系统在存储碎片式文件时采用事先存储于MRAM的方式,传统碎片式文件通过搜索最优Flash可选块位置进行存储,当MRAM数据达到一定阈值时,转为普通碎片式文件存入Flash。本文涉及的星上应用NAND Flash主要采用单块128页、每页4096 byte,一般有4096块,因此在存储过程中最小的存储单位为4096 byte,小于4096 byte的文件存于MRAM中。图2给出了3个Flash、每个3块、每块4页的文件存储过程实例。

假设需要存储的文件标记为aN={a0,a1,…,aN-1},其中N为文件占用的页数。在存储过程中,希望在∀ai∈Fm,∀aj∈Fn,i≠j的条件下,都有m≠n成立。其中:Fm和Fn表示第m个和第n个Flash,这样所有的文件数据都可以并行存储于不同的Flash。

图2 基于NAND Flash的存储结构

(1)

式中:bool(·)表示布尔逻辑操作,为真时输出1,否则输出0。

在存储过程的前后,通过搜索式(1)中的最佳解,可以得到最优访问策略形成文件信息管理表,使访问的并行度和擦除效率最高。

1.2 基于MRAM的碎片式文件存储

对于碎片式文件,如果直接写在Flash中,往往会因为写入及读取耗时降低访问效率,而利用外部SRAM缓存的方式可能丢失重要信息;采用MRAM既能在掉电状态下恢复数据,又容易合并不同碎片式文件。如图3所示,MRAM中主要包含坏块表、碎片式文件信息表、NAND Flash文件重要信息及碎片式文件存储区(PFA)。在PFA中,数据的存储按照先后顺序依次进行,文件的信息存储在碎片式文件信息表中。当写入PFA的数据量大于1页时,即可考虑传输写入到Flash中,但同时也要考虑写入过程编程时间的损耗,因此在实际操作中往往在未达到1页数据量时即开始写入到Flash页中,防止超出数据较少而又占用1页的情况发生。图4为MRAM碎片式文件区域与Flash页映射关系。

图3 MRAM内部信息结构

注:x为碎片式文件映射偏移地址,P为现有的文件数量。

图4 MRAM碎片式文件区域与Flash页映射关系

Fig.4 Map between MRAM patch files and Flash page

考虑本文涉及的MRAM空间较小,碎片式文件存储区文件的存活时间越短越好,而每次页传输数据越接近极限越好。定义写入MRAM中文件大小为fi,i∈[0,P-1],上限为fmax≤8 Kbyte(最大页容量)。对PFA划分子区域,每个大小为1页数据量(4096 byte),标记每个区域可用的空间为Aj,j∈[0,M-1],每个区域的生命周期标记为

(2)

式(2)表示,当区域可用空间为满时,该区域已经被清空过,其数据生存时间清零;否则,区域的生存时间随系统单位时间Ttick不断增加。

(3)

式中:δ为设定的阈值。

(4)

2 PFSA系统设计与实现

PFSA的核心思想是通过减少碎片式文件在NAND Flash读写过程中的数据备份、块的擦除提高整体性能。取消传统文件体系在Flash中建立日志文件的方法,直接在MRAM中存取碎片式文件,整页搬移到Flash中。在软件设计过程中,主要包括数据组织框架和数据访问操作2个部分。

2.1 数据组织框架

文件存储访问过程中,主要区分为碎片式文件和普通文件,碎片式文件存储在PFA,当满足1页大小时搬移至Flash,普通文件则直接存入Flash。在PFA中,所有文件的数据连续存放。考虑空间占用效率,在碎片式文件信息表中只记录PFA的数据大小、文件数量,文件之间采用链表形式连接,不再单独存储文件起始信息。存入Flash后对碎片式文件的读取按照格式解析并获得数据信息,碎片式文件信息表中单页数据的结构体和PFA存储数据结构体如图5所示。

普通文件的存储访问数据结构体如图6所示,主要在MRAM中存放文件的重要信息,包括文件大小、起始/结束地址、创建/更新时间;文件格式和内容与碎片式文件格式不同,不再包含前后文件偏移地址,而是增加文件名信息。

图5 碎片式文件在Flash及PFA中数据结构体

图6 普通文件存储访问数据结构体

2.2 数据访问操作

PFSA系统的数据访问操作,主要分为普通文件和碎片式文件2种类型。当文件输入时,首先判断文件的大小。如果是碎片式文件,则更新碎片式文件信息表,判断单页内是否有足够空间进行存储,足够时数据存入PFA,否则,当前PFA数据搬移至NAND Flash,搜索现存存活时间最长区域并把MRAM数据搬移至该区域;如果是普通文件的写入,更新Flash的文件重要信息,搜索当前最佳文件存储位置,在搜索成功时文件数据搬移至Flash,否则,给出失效警报。图7为写入文件数据的处理流程。PFSA系统读取文件数据时,首先判断文件大小。对于碎片式文件,解析文件信息表,如果尚未存入NAND Flash,则读取MRAM中的相应区域数据,否则认为已经存入NAND Flash,按照普通文件对待;如果读取的是普通文件,先解析Flash文件重要信息,搜索当前读取文件存储位置,搜索成功则把文件数据由Flash读出,否则给出失效警报。图8为读取文件数据的处理流程。

图8 读取文件数据的处理流程

3 仿真试验

为了检验PFSA系统的实际效果,在实验室环境下进行大量仿真试验,主要是验证和分析文件系统的存储布局策略及碎片式文件的传输效果。试验环境采用Xilinx公司的XC2V3000 FPGA,5片3D-Plus公司的NAND Flash 3DFN32G08VS4704,以及1片MRAM MR4A08B,FPGA时钟执行在50 MHz。测试客户机通过外接口总线模拟实时发送碎片式文件数据给板卡(见图9),同时板卡根据接收到的指令回放指定的文件,测试客户机根据文件系统的返回遥测计算得到平均写入性能、大批量碎片式文件写入性能、文件传输性能及块擦除均衡性能。

图9 星载文件系统板卡结构

3.1 文件平均写入性能测试

板卡中5片NAND Flash的接口访问极限性能达到1 Gbit/s,在实际应用中考虑到写入编程时间及文件管理时间开销,极限速度约在0.8 Gbit/s。在测试过程中,测试客户机向板卡持续发送文件数据,文件大小从几字节到几百兆字节随机分布,文件间隔时间为毫秒量级,发送速率从10 Mbit/s到1 Gbit/s扫描,根据板卡返回的文件遥测信息测算平均写入性能。如图10所示,相比于文献[10],PFSA系统平均写入速率随着发送速率的增加而增加,最终达到680 Mbit/s。

图10 文件平均写入速率

3.2 大批量碎片式文件写入性能测试

在测试过程中,测试客户机向板卡持续发送碎片式文件数据,文件大小从几字节到1024 byte随机分布,文件间隔为微秒量级,发送速率从10 Mbit/s到1 Gbit/s扫描,根据板卡返回的文件遥测信息测算碎片式文件平均写入性能。如图11所示,相比于文献[10],PFSA系统写入速率随着发送速率的增加而增加,最终达到650 Mbit/s。

图11 大批量碎片式文件写入速率

3.3 文件传输性能测试

在测试过程中,测试客户机向板卡持续发送碎片式文件数据,文件大小从几字节到几百兆字节随机分布,文件间隔为毫秒量级,同时通过总线接收板卡回传的已存储文件,发送和接收速率从10 Mbit/s到1 Gbit/s扫描,根据板卡返回的文件传输延时遥测信息测算平均传输性能。如图12所示,当发送速率大于300 Mbit/s时,PFSA系统文件传输延迟达到毫秒级,文献[10]中文件传输延迟平均在20 ms以上。

图12 文件传输延迟测试

3.4 块擦除均衡性能测试

在测试过程中,全程发送速率为200 Mbit/s,当存满之后自动擦除存活时间最久的文件,FPGA自动记录每块擦除次数,测试客户机对块擦除遥测进行方差统计。如图13所示,文献[10]块擦除方差在10以上,PFSA系统块擦除方差基本在1以下,表明PFSA系统能有效均衡块之间擦除操作次数差异,提高Flash工作寿命。

图13 块擦除均衡性能测试

综上所述,PFSA系统的文件写入速率相比于以往设计提高了2倍以上,传输延迟降低了80%,存储芯片块擦除方差均衡度平均提高了9倍,能有效降低突发信息文件存储延迟,在提高访问效率的同时增加设备在轨工作寿命。

4 结束语

传统星上文件系统在碎片式文件输入较多时效率较低,无法适应星上碎片式文件的实时存储。本文从碎片式文件存储访问结构和基于NAND Flash的存储布局策略出发,提出了PFSA系统。针对Flash中的块操作建立数据访问模型,将不同的碎片式文件尽可能存放在不同的Flash基片上,从而提高并发数据的访问速度。采用MRAM存储几百字节的碎片式文件,当MRAM内部数据达到阈值时一次性搬入Flash的固定块内,从而减少碎片式文件的读写Flash时间,提高查询效率。测试客户机根据文件系统的返回遥测计算得到平均写入性能、大批量碎片式文件写入性能、文件传输性能及块擦除均衡性能,通过与以往设计比较,PFSA系统能有效提升碎片式文件的存储访问速度,提高NAND Flash在轨使用寿命。

猜你喜欢

板卡遥测字节
前馈复合控制在提高遥测跟踪性能中的应用
No.8 字节跳动将推出独立出口电商APP
RTX系统下并行I/O卡驱动程序的开发
航空电子设备机上线路故障研究
RTX系统下Moxa多串口卡驱动程序的开发*
远程控制式遥测地面站关键技术研究
基于WPF的遥测CAS信息实时监控系统设计开发
自适应模糊PID控制的遥测方舱温度调节方法
No.10 “字节跳动手机”要来了?
人类进入“泽它时代”