本发明属于高速信号采集/发生设备,更为具体地讲,涉及一种高速信号采集/发生设备的ptp数据传输方法,即在高速信号采集/发生设备与高速nvme固态硬盘(non-volatile memory express solid state disk,nvme ssd)间,通过pcie(peripheralcomponent interconnect express)总线进行高速点对点(point to point,简称ptp)数据传输的方法。
背景技术:
1、高速信号采集/发生设备的数据传输速率需求一般在5gb/s以上,且具有pcie总线功能,一般包括pcie/pxie总线高速信号采集设备、pcie/pxie总线宽带信号发生设备等。
2、nvme ssd是将数据存储在非易失性存储器中,高性能、高读写带宽的存储设备,其读写接口是符合nvme协议的pcie总线接口。常规的nvme ssd读写访问是使用计算机等主机设备(host)通过pcie总线,以符合nvme协议的方式进行的。如果需要实现高速信号采集设备与nvme ssd之间的数据传输,必须先由主机设备从高速信号采集设备将数据读取到主机内部存储器,而后再将数据写入nvme ssd中。同样地,如果需要实现高速信号发生设备与nvme ssd之间的数据传输,则必须先由主机设备从nvme ssd将数据读取到主机内部存储器,而后再将数据写入高速信号发生设备。这样的操作将大大降低高速信号采集/发生设备与nvme ssd之间的数据读写速度,无法满足高速信号采集/发生设备的数据传输速率即5gb/s的传输速率要求。
技术实现思路
1、本发明的目的在于克服现有技术的不足,提供一种高速信号采集/发生设备的ptp数据传输方法,以满足高速信号采集/发生设备的数据传输速率。
2、为实现上述发明目的,本发明高速信号采集/发生设备的ptp数据传输方法,其特征在于,包括以下步骤:
3、(1)、构建基于pcie总线的ptp数据传输系统,其包括:
4、主机,其内部包括dma(direct memory access,直接存储器访问)控制器、多线程cpu、bar地址空间以及物理内存;
5、两个pcie交换机pcie switch 1、2,其中,pcie交换机pcie switch 1至少包含3个pcie接口,且3个pcie接口配置均不低于pcie3.0 x8,其中1个pcie接口与主机连接,1个pcie接口与pcie交换机pcie switch 2连接,1个pcie接口与高速信号采集/发生设备连接;pcie交换机pcie switch 2至少包含5个pcie接口,且其中1个接口配置不低于pcie3.0 x8,另外4个接口配置不低于pcie3.0 x4,配置不低于pcie3.0 x8的接口用于与pcie交换机pcie switch 1连接,另外4个配置不低于pcie3.0 x4的接口用于分别与4块nvme固态硬盘nvme ssd1、2、3、4连接;
6、4块nvme固态硬盘nvme ssd1、2、3、4,每块nvme固态硬盘包括nvme控制器、dma控制器、bar地址空间和非易失性存储器;
7、高速信号采集/发生设备,其包括pcie控制器、bar地址空间和高速缓存;
8、(2)、内存映射
9、对于高速信号采集/发生设备,在其高速缓存中规划出存储容量为c的存储空间,依据该存储空间在bar地址空间的bar地址dev_bar_addr,以bar地址方式映射到主机物理内存中,从而获取到主机上一块存储容量为c的物理内存,在主机端,将存储容量为c的物理内存的bar地址空间等分为4段相同大小的子地址空间,并将4个子地址空间的bar地址ssd1_bar_addr、ssd2_bar_addr、ssd3_bar_addr、ssd4_bar_addr记录下来分别用于4个pcie3.0 x4接口连接的nvme固态硬盘nvme ssd1、2、3、4的nvme控制器的直接内存访问起始地址,其中:
10、ssd1_bar_addr=dev_bar_addr
11、ssd2_bar_addr=dev_bar_addr+c/4
12、ssd3_bar_addr=dev_bar_addr+c/2
13、ssd4_bar_addr=dev_bar_addr+3c/4
14、(3)、数据访问
15、3.1)、nvme固态硬盘端写入
16、当高速信号采集设备采样到数据后,将这些数据存储内部高速缓存规划出的存储空间中,并产生msi(message signaled interrupt)中断通知主机上的高速信号采集设备内核驱动访问高速缓存,内核驱动收到msi中断通知后,在多线程cpu的控制下,通过主机的dma控制器根据bar地址dev_bar_addr以“直接内存访问”的方式将数据搬移到主机上;
17、当采样的数据搬移到主机的物理内存后,再由4块nvme固态硬盘nvme ssd1、2、3、4各自的nvme控制器调用各自的dma控制器分别依据bar地址ssd1_bar_addr、ssd2_bar_addr、ssd3_bar_addr、ssd4_bar_addr以“直接内存访问”的方式将数据传输到4块nvme固态硬盘nvme ssd1、2、3、4的非易失性存储器中进行存储;
18、3.2)、nvme固态硬盘端读出
19、4块nvme固态硬盘nvme ssd1、2、3、4各自的nvme控制器调用各自的dma控制器分别依据bar地址ssd1_bar_addr、ssd2_bar_addr、ssd3_bar_addr、ssd4_bar_addr以“直接内存访问”的方式将存储数据传输到主机的物理内存;
20、当存储的数据搬移到主机的物理内存后,在多线程cpu的控制下,通过高速信号发生设备的内核驱动调用host主机的dma控制器根据bar地址dev_bar_addr以“直接内存访问”的方式将数据搬移到高速信号发生设备内部的高速缓存中;
21、其中,采样数据的写入和存储数据的读出是基于文件的方式完成的。
22、本发明的发明目的是这样实现的:
23、本发明高速信号采集/发生设备的ptp数据传输方法通过构建基于pcie总线的ptp数据传输系统,并以bar地址方式进行内存映射,为实现并行访问4块pcie3.0 x4 nvme固态硬盘提供pcie总线链路,在此基础上,对nvme固态硬盘端进行数据访问,以同时发挥各个pcie3.0 x4 nvme固态硬盘的读写性能,若每块pcie3.0 x4 nvme ssd的单独持续读写速度为1.5gb/s,则4块pcie3.0x4 nvme ssd拼接后的pcie3.0 x8 nvme ssd理论持续读写速度可以达到6gb/s,这样满足高速信号采集/发生设备的数据传输速率。
1.一种高速信号采集/发生设备的ptp数据传输方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的高速信号采集/发生设备的ptp数据传输方法,其特征在于,所述存储容量为c=4mb,在高速信号采集/发生设备的高速缓存中规划出两个存储容量为c的存储空间,即在高速信号采集/发生设备的高速缓存中规划出8mb存储空间,高速信号采集设备内部高速缓存中的8mb存储空间以bar地址的方式映射到host主机物理内存,将这一块8mb的存储空间定义为2个首尾相连的连续子存储空间,以用作“乒乓缓存”访问,定义子存储空间1的bar地址为dev_bar1_addr,子存储空间2的bar地址为dev_bar2_addr;
3.根据权利要求2所述的高速信号采集/发生设备的ptp数据传输方法,其特征在于,所述nvme固态硬盘端读出即nvme ssd到高速信号发生设备数据传输步骤为: