一种高速数据采集记录方法与流程

文档序号:31054560发布日期:2022-08-06 11:34阅读:108来源:国知局
一种高速数据采集记录方法与流程

1.本发明属于高速数据的存储领域,具体涉及一种高速数据采集记录方法。


背景技术:

2.高速数据采集记录系统主要应用于宽带中频信号、通信、雷达回波及高速以太网等数据领域,能够为信号分析、系统互联测试提供可靠的场景数据支撑。随着信号规模及探测精度的提升,数据带宽迅猛增长,给高速数据采集记录系统提出了更高的带宽要求,高速记录带宽要求一般大于4.8gbyte/s。
3.现有采集记录技术采用了通用cpu平台、pcie switch及存储体阵列等通用元器件构建了数据记录架构,以通用文件系统,块设备驱动等通用软件组件为基础,进行数据记录。
4.用户数据的采集存储数据流向过程中,高速数据两次经过数据交换模块的pcie上游端口,并在记录控制模块的系统主存中发生了一次内存拷贝,因此pcie上游端口带宽、ddr主存访问带宽均可能成为整个数据路径上的性能瓶颈,当此类架构应用于高速数据采集记录时,对记录控制模块中cpu平台的性能和访存带宽要求极高。
5.高速记录系统因功耗及应用环境特殊,多采用嵌入式工控cpu平台进行记录控制,其处理能力及内存访问带宽均相对有限,导致现有采集记录技术很难适应所有的高速数据记录场景。


技术实现要素:

6.本发明的目的在于针对以上问题,提出一种高速数据采集记录方法。
7.为实现上述目的,本发明所采取的技术方案为:
8.本发明提出的一种高速数据采集记录方法,应用于高速数据采集记录系统,高速数据采集记录系统包括前端采集装置、读写控制装置和后端存储体,读写控制装置包括记录控制模块、通用文件系统模块和存储体块驱动模块,高速数据采集记录方法,包括:
9.前端采集装置采集数据并缓存到第一缓存中,将缓存数据的参数通知给记录控制模块。
10.记录控制模块调用通用文件系统模块的文件扩展读写接口,将缓存数据的参数传递给通用文件系统模块,通用文件系统模块进行响应,创建特殊的块读写,并将特殊的块读写提交到存储体块驱动模块。
11.存储体块驱动模块接收到特殊的块读写后,将缓存数据参数中的总线地址设置到dma描符中,封装为读写命令,提交给后端存储体。
12.后端存储体接收读写命令,启动dma,直接根据总线地址,从第一缓存中读取数据并存储。
13.优选地,第一缓存中缓存数据的参数包括总线地址、数据长度和数据传输方向。
14.优选地,记录控制模块调用通用文件系统模块的文件扩展读写接口,将缓存数据
的参数传递给通用文件系统模块,包括:
15.记录控制模块通过新增ioctl命令调用通用文件系统模块的文件扩展读写接口,将参数由记录控制模块传递到通用文件系统模块。
16.通用文件系统模块进行响应,包括:
17.通用文件系统模块进行响应时,采用新增ioctl命令响应函数进行响应。
18.优选地,特殊的块读写地址为第一缓存中的总线地址。
19.优选地,存储体块驱动模块接收到特殊的块读写后,还包括:
20.存储体块驱动模块接收到特殊的块读写时,新增标签判断逻辑,新增标签逻辑判断,包括:
21.若为常规的块读写,则将常规块读写的虚拟地址转换为总线地址。
22.若为特殊的块读写,则将接受到的缓存数据参数中的总线地址设置到dma描符中。
23.优选地,后端存储体为nvme固态盘。
24.与现有技术相比,本发明的有益效果为:该方法采用文件扩展读写接口,将前端采集模块采集的数据进行写入,并通过通用文件系统模块进行响应,再通过存储体块驱动模块将数据参数中的总线地址设置到dma描述符中,则后端存储体可以不经过读写控制装置,直接根据前端采集模块采集数据的总线地址,从第一缓存中读取数据并存储,解决了现有技术中数据需要通过读写控制装置进行记录控制,以至于增加读写控制装置中系统的性能和带宽负担的问题,这样设置实现高速记录,降低消耗。
附图说明
25.图1为本技术高速数据采集记录方法流程图;
26.图2为本技术高速数据采集记录系统框图;
27.图3为本技术实施例高速数据采集记录系统示意图。
具体实施方式
28.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
29.需要说明的是,当组件被称为与另一个组件“连接”时,它可以直接与另一个组件连接或者也可以存在居中的组件。除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中在本技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是在于限制本技术。
30.在一个实施例中,如图1示,提出了一种高速数据采集记录方法,应用于高速数据采集记录系统,高速数据采集记录系统包括前端采集装置、读写控制装置和后端存储体,读写控制装置包括记录控制模块、通用文件系统模块和存储体块驱动模块,高速数据采集记录方法,包括:
31.步骤s1、前端采集装置采集数据并缓存到第一缓存中,将缓存数据的参数通知给记录控制模块。
32.如图2示,高速数据记录系统一般包括前端采集装置、读写控制装置和后端存储体,三者通过pcie交换装置连接,pcie交换装置提供高速数据通道。前端采集装置可以是fpga及相应的内存ddr进行外部数据采集缓存,例如摄像头设备。读写控制装置通常为中央处理器cpu及相应的主存ddr,例如一台计算机设备。后端存储体可以为nvme固态盘,进行读取数据并缓存,例如录像机设备。
33.在传统的技术方案中,前端采集装置采集的数据在本地缓存后,需要先被读取到读写控制装置的内存中,然后再被写入到后端存储体。本技术技术方案将前端采集装置采集的数据,从前端采集装置的缓存中直接落盘到后端存储体,降低读写控制装置中系统的性能和带宽负担。
34.本实施例读写控制装置包括记录控制模块、通用文件系统模块和存储体块驱动模块。容易理解的是,记录控制模块通过安装在中央处理器cpu中的软件程序实现,而通用文件系统模块和存储体块驱动模块则为读写控制装置操作系统中的内核程序,通用文件系统模块用于创建特殊的块读写,存储体驱动模块用于根据特殊的块读写标志,判断是否需要进行地址的转换。
35.本实施例中,前端采集模块采集数据并缓存到第一缓存中,第一缓存为前端采集装置的本地缓存,第一缓存中缓存数据的参数包括总线地址、数据长度和数据传输方向,然后前端采集模块将缓存数据的参数传递给记录控制模块。
36.步骤s2、记录控制模块调用通用文件系统模块的文件扩展读写接口,将缓存数据的参数传递给通用文件系统模块,通用文件系统模块进行响应,创建特殊的块读写,并将特殊的块读写提交到存储体块驱动模块。
37.本实施例中通过在通用文件系统模块上新增文件扩展读写接口来实现缓存数据参数的传递。记录控制模块通过调用文件扩展接口将缓存数据的参数传递给通用文件系统模块,文件扩展读写接口的参数就是前端采集装置采集缓存的数据区域描述,包括缓存数据的总线地址、数据长度和数据传输方向。该文件扩展接口在被调用时采用新增ioctl命令,通过系统调用实现,即新增自定义ioctl命令,将参数由应用层(记录控制模块)传递到操作系统内核中的文件系统层(通用文件系统模块)。
38.通用文件系统模块采用新增ioctl命令响应函数进行响应,具体响应如下:
39.通用文件系统模块接收到文件扩展读写接口提供的读写区域,并按读写大小,调用通用文件系统模块的常规块分配函数为读写区域分配逻辑块,得到逻辑地址(lba,logical block address)。
40.通用文件系统模块结合前端采集模块传递的总线地址,创建特殊的块读写,且该特殊的块读写地址为第一缓存中的总线地址。
41.给特殊的块读写标记一个标签,然后通用文件系统模块将该标记标签的特殊块读写提交到存储体驱动模块。
42.本实施例特殊的块读写普通的块读写(bio,block input output)的主要区别是数据所在的内存地址空间不同,普通块读写是cpu主存的内核虚拟地址,特殊的块读写是位于前端采集装置采集缓存数据的连续物理内存的总线地址。
43.步骤s3、存储体块驱动模块接收到特殊的块读写后,将缓存数据参数中的总线地址设置到dma描符中,封装为读写命令,提交给后端存储体。
44.dma描述符一般包含三个要素:数据在系统内存中位置的总线地址;数据将要写入的后端存储体起始块编号;由通用文件系统模块分配数据的长度。
45.当更改后端存储体的dma描述符中的第一要素,即数据在系统内存中位置的总线地址,将缓存数据的总线地址设置到dma描述符中,则后端存储体中的dma引擎可以不经过记录控制模块,直接将第一缓存中缓存的数据进行读取并缓存,dma引擎用于对缓存数据进行搬取。
46.本实施例中,存储体块驱动模块接收到特殊的块读写时,新增标签判断逻辑,该新增标签判断逻辑具体如下:
47.若为普通的块读写,则存储体块驱动模块将普通块读写的虚拟地址转换为总线地址;若为特殊的块读写,则跳过普通块读写的虚拟地址转换步骤,存储体块驱动模块直接将接受到的缓存数据参数中的总线地址设置到dma描述符中,对dma描述符完成初始化。
48.然后存储体块驱动模块将该dma描符封装成读写命令,并提交给后端存储体。
49.步骤s4、后端存储体接收读写命令,启动dma,直接根据总线地址,从第一缓存中读取数据并存储。
50.本实施例中,后端存储体以nvme固态盘为例,nvme固态盘是数据存储的载体,nvme固态盘的接口为pcie接口,可直接接入pcie交换装置,能够响应nvme读写命令,nvme固态盘内含有dma引擎。
51.本实施例中的后端存储体nvme固态盘接受nvme读写命令时,启动dma引擎,dma描述符会指示缓存数据在第一缓存内,则nvme固态盘会直接跳过记录控制模块,且nvme固态盘的dma引擎从第一缓存中读取缓存数据,并进行存储。
52.在另一个实施例中,高速数据采集记录系统的一个具体实施例如图3示,硬件上,是多个nvme ssd组成阵列作为后端存储体,如nvme ssd的数量为六个;使用xilinx fpga v7作为前端采集装置(xilinx fpga v7简化为fpga),fpga中的ddr作为第一缓存;使用powerpc t2081系统作为读写控制装置的系统(powerpc t2081在图3中表示为t2081+linux),powerpc t2081系统通过主存ddr进行存储数据。nvme ssd组成的阵列、fpga和powerpc t2081系统统一连接读写控制装置的pcie switch芯片。前端采集装置fpga采用的接口为pcle3.0,后端存储体nvme ssd采用的接口为pcle3.0,读写控制装置的系统powerpc t2081采用的接口为pcle2.0。
53.软件上,fpga逻辑例化两组pcie endpoint,递增数发生器作为数据源,将两个数据逻辑通道存到fpga的第一缓存ddr内,powerpc t2081上运行嵌入式操作系统。
54.实验结果为:在使用该高速数据采集记录系统前,使用通用文件系统模块、存储体块驱动模块进行数据记录仅800mb/s,主要受powerpc t2081系统的主存ddr内存拷贝带宽及接口pcie2.0性能瓶颈。
55.在使用该高速数据采集记录系统后,使用通用文件系统模块、存储体块驱动模块进行数据记录可达8.4gb/s,并且记录产生的数据与实用该方法前的记录数据一样,可以直接访问。
56.本技术方案采用文件扩展读写接口,将前端采集模块采集的数据进行写入,并通过通用文件系统模块进行响应,再通过存储体块驱动模块将数据参数中的总线地址设置到dma描符中,则后端存储体可以不经过读写控制装置,直接根据前端采集模块采集数据的总
线地址,从第一缓存中读取数据并存储,解决了现有技术中数据需要通过读写控制装置进行记录控制,以至于增加读写控制装置中系统的性能和带宽负担的问题,这样设置实现高速记录,降低消耗。
57.以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
58.以上所述实施例仅表达了本技术描述较为具体和详细的实施例,但并不能因此而理解为对申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1