嵌入式高速数据记录系统的设计与实现

2021-03-28 04:43马建鹏喻崇仁沈月峰王施人
电子元器件与信息技术 2021年12期
关键词:表项数据文件数据管理

马建鹏,喻崇仁,沈月峰,王施人

(北京计算机技术及应用研究所,北京 100854)

0 引言

随着武器装备的不断发展,数据探测手段日臻丰富完善,对装备中的嵌入式数据记录系统提出了更高的数据传输速率需求与更大的数据存储容量需求,并要求系统在连接管理主机时,能够快速完成数据的导入、导出与回放等数据管理功能[1]。然而,单FPGA架构的数据记录系统虽然可以实现快速数据传输与大容量存储扩展,但难以完成复杂的数据管理;而单处理器架构的数据记录系统则难以实现数据的高速传输以及大容量的存储扩展。现有的嵌入式数据记录系统通常采用单处理器架构,使用通用文件系统或流媒体策略进行数据管理[2],难以满足高速的数据传输需求,并且数据管理效率较低[3]。

本文针对装备中嵌入式数据记录系统的需求现状与数据特点,采用FPGA+DSP的系统架构,使用FPGA来完成数据的快速传输与分发,以及大容量的存储扩展;同时,通过研究通用文件系统与流媒体策略各自的特点,创造性提出了一种轻量级文件管理系统;该文件管理系统使用微型管理数据,可在数据高速记录或回放时,进行内存管理数据的实时更新,以及硬盘管理数据的快速同步,完成对记录文件的高效可靠管理。

1 系统设计

系统采用FPGA+DSP的硬件架构[4]。FPGA芯片与DSP芯片之间使用SRIO总线连接,FPGA芯片与硬盘之间使用SATA总线连接,FPGA芯片与外部数据采集设备之间使用PCIe总线相连,DSP芯片与外部管理主机通过网络相连。系统架构如图1所示。其中,FPGA完成与数据采集设备间的数据传输、存储空间的数据读写、与DSP芯片间的数据通信,以及数据采集设备接口、硬盘接口与DSP通信接口间的数据转发控制;DSP完成与管理主机的信息交互、与FPGA芯片间的数据通信、以及数据的组织与操作控制。

图1 系统架构图

FPGA逻辑由PCIe接口控制模块、SRIO接口控制模块、SATA接口控制模块与传输控制模块构成。其中,PCIe接口控制模块主要实现PCIe协议的解析与封装、收发数据的缓存,以及数据的DMA传输控制;SRIO接口控制模块主要实现SRIO协议的解析与封装、收发数据的缓存,以及数据的DMA传输控制;SATA接口控制模块主要实现SATA命令的生成与SATA协议的解析/封装,以及收发数据的缓存;传输控制模块主要用于接收解析来自DSP芯片的管理指令、PCIe接口数据到SATA接口的分发控制,以及SATA接口数据到SRIO接口的转发控制。

DSP芯片软件包括SRIO接口驱动程序、网卡驱动程序、多线程管理程序与定时器程序。其中,文件管理程序完成对数据的组织与操作。

2 系统数据管理

2.1 数据结构

针对数据记录系统数据的特点与大容量存储的特性,同时考虑嵌入式设备有限的内存资源以及较低的处理主频,本文采用了一种较为简洁的层次化数据结构进行数据管理,该数据结构主要包括数据记录系统信息、数据目录表和数据索引表。

2.1.1 数据记录系统信息

数据记录系统信息包含当前存储资源与数据文件资源的使用现状,便于系统快速的查找、创建与获取文件信息。数据记录系统信息在系统运行时常驻内存,便于快捷地进行数据管理;同时,在FPGA外接非易失存储介质中同步进行信息更新,以便在上电或系统异常时,恢复内存中的数据记录系统信息。数据记录系统信息内容如表1所示。

表1 数据记录系统信息

其中,数据记录系统标识是当前数据记录系统的代号,用以数据记录系统所记录数据在异地备份时,区分不同数据记录系统的数据;存储设备最大容量是FPGA外接非易失存储介质中,除去管理占用,可用于存储记录数据的最大容量;存储设备可用容量是除去当前记录数据占用容量以外的可用于分配的存储容量;可用索引表项个数是指系统支持的最大索引表项的个数;数据文件个数是指当前系统已经创建的数据文件个数;可用项表记录文件目录表或文件索引表数组的可用编号;已用项表记录文件目录表或文件索引表数组的已用编号;可用索引表用于记录不连续的可用存储区域;校验值是使用循环冗余校验算法对文件系统信息进行的校验计算值。

2.1.2 数据文件目录表

数据文件目录表用来存放单个记录文件的目录信息。数据文件目录表的具体内容如表2所示。

表2 数据文件目录表

其中,文件名称是系统根据当前时间与数据特征自动生成的记录数据文件的名称;文件创建时间即当前文件目录表的生成时间;文件类型即当前记录数据文件的类型代号;文件位置即当前记录数据文件所占用的文件索引项编号;文件索引项个数即当前记录数据文件所占用的文件索引项个数;写入速率即当前记录数据由数据采集设备写入FPGA时的平均速率。

2.1.3 数据文件索引表

数据文件索引表用来存放每个记录文件的存储信息。数据文件索引表的具体内容如表3所示。

表3 数据文件索引表

数据文件索引表包含若干表项,每个表项由起始地址和长度构成。数据文件索引表和数据文件目录表一一对应,分别存储数据文件的存储信息和逻辑信息,并在存储设备指定的区域连续存放,以便快速检索。

2.2 数据操作

本系统支持的数据操作包括格式化、数据记录系统信息更新、采集数据、导入数据、导出数据、回放数据、记录文件删除和碎片整理。

格式化是将存储设备的存储空间和管理数据结构初始化的过程,即FPGA芯片在DSP芯片的控制下,清空外接存储设备上数据管理信息的过程。

数据记录系统信息更新是在完成一次格式化、数据采集、数据导入或记录文件删除操作后。更新数据记录系统信息结构,并回写存储设备的过程。主要包括对数据记录系统信息、相关索引表项信息,以及数据文件目录表中相关表项信息的修改。

数据采集是实时采集信息的过程。在启动采集时,系统首先检查存储容量和可用数据文件个数是否可以支撑当前采集过程;在采集过程中,系统保存采集数据的同时,进行数据管理信息的更新。

数据导入是将存储在主机上的记录数据导入高速数据记录设备的过程。数据导入过程与数据采集过程类似,在启动导入时,系统首先检查存储容量和可用数据文件个数是否可以支撑当前导入过程;在导入过程中,系统保存导入数据的同时,进行数据管理信息的更新。

数据导出是将高速数据记录设备上的记录文件导出到外部主机的过程。在启动导出过程时,系统通过查找,获取指定记录文件的数据文件目录表和数据文件索引表,并将数据文件索引表下发给FPGA;在导出数据过程中,接收到停止信号或完成全部内容导出时,完成本次导出过程。

数据回放是将高速数据记录设备中的记录文件,从高速数据采集接口返回给采集设备的过程。数据回放过程类似数据导出过程,只不过通过PCIe接口将记录数据输出。

记录文件删除是删除指定记录文件的过程。文件删除过程中涉及对可用索引表项的碎片整理。

碎片整理是对合并可用索引表中可合并表项的过程[5]。适时的碎片整理可明显提升系统管理效率。碎片整理过程如图2所示。

图2 碎片整理流程

文件管理模块获取当前删除记录文件的数据文件索引表;将数据文件索引表项中的诸表项均在可用索引表中查找是否存在可合并项;若存在向前或向后的可合并表项,则合并当前两个索引项,并查找是否还有其他可合并项;若向前和向后合并项均存在,则合并三个索引项,并查找其他文件索引表项是否存在可合并项;当数据文件索引表中的所有表项均查找完成时,结束本次操作[6]。

3 系统实现与性能评估

系统基于VPX架构进行硬件实现,如图3所示。其中,PCIe接口通过接插件引出,经过底板与数据采集设备相连;网口通过接插件引出,经过底板与控制主机相连;硬盘作为子板,固定在系统板卡上。

图3 系统硬件实现图

系统测试环境由测试主机1、高速数据记录设备与测试主机2构成,如图4所示。其中,测试主机1为VPX架构主板,搭载4块SATA 3.0固态硬盘,与高速数据记录设备通过底板上PCIe总线相连;测试主机2为普通主机,通过网络与高速数据记录设备相连。

图4 系统测试环境

测试主机1上运行Ubuntu操作系统,通过运行dd命令模拟系统记录过程,在大数据连续写入时,测得系统记录性能为1.4GB/s。测试主机2运行Ubuntu操作系统,控制程序产生启动回放命令,通过网络控制系统启动回放过程,在系统数据传输稳定后,测得系统回放性能为1.2GB/s。

4 结语

本设计针对武器装备对嵌入式数据记录系统更快数据传输速率以及更复杂数据管理的需求,采用FPGA+DSP架构,通过对系统功能进行适宜的分割,并结合FPGA芯片与DSP芯片各自的特点,提出了一种轻量级文件管理系统。该文件管理系统使用微型管理数据,可在数据高速记录或回放等高速应用场景中,进行内存管理数据的实时更新,以及硬盘管理数据的快速同步,完成对记录文件的高效可靠管理。该系统在实际应用中达到了GB级的记录效率,满足了应用需求,具备很好的可推广性。

猜你喜欢
表项数据文件数据管理
一种改进的TCAM路由表项管理算法及实现
企业级BOM数据管理概要
定制化汽车制造的数据管理分析
海洋环境数据管理优化与实践
CTCS-2级报文数据管理需求分析和实现
基于ARMA模型预测的交换机流表更新算法
数据文件恢复专题问答
数据文件安全管控技术的研究与实现
SQL数据文件恢复工具
SDN数据中心网络基于流表项转换的流表调度优化