CN110069442A - 一种基于zynq系列fpga的超高速数据采集装置及方法 - Google Patents
一种基于zynq系列fpga的超高速数据采集装置及方法 Download PDFInfo
- Publication number
- CN110069442A CN110069442A CN201910333400.7A CN201910333400A CN110069442A CN 110069442 A CN110069442 A CN 110069442A CN 201910333400 A CN201910333400 A CN 201910333400A CN 110069442 A CN110069442 A CN 110069442A
- Authority
- CN
- China
- Prior art keywords
- data
- register
- nvme solid
- state
- ddr3
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明涉及一种基于ZYNQ系列FPGA的超高速数据采集装置及方法,涉及数据采集技术领域。本发明的装置基于RAID阵列控制实现NVMe固态盘阵列的自动化读写访问控制;基于多通道DDR3/DDR4控制器虚拟FIFO技术,极大提升了内存的访问带宽;通过全交换矩阵实现了采集和回放流程中的数据通路选择。该装置具有10GB/s以上的超高性能,可广泛应用于高清视频、雷达数据和AD采集等高性能应用场景。
Description
技术领域
本发明涉及数据采集技术领域,具体涉及一种基于ZYNQ系列FPGA的超高速数据采集装置及方法。
背景技术
随着高清视频分辨率的提高、雷达原始数据等应用场景下数据带宽的提升,对数据采集系统的存储带宽提出了越来越高的要求,通常要求带宽达到1GB/s,甚至4GB/s以上,采用传统X86处理器平台开展采集装置的设计在功耗、体积上会有明显的劣势,同时在设计带宽上会遇到明显的瓶颈。FPGA以其灵活可编程的特点,已广泛应用于工业控制、航空航天,甚至互联网等领域。同时,随着Xilinx推出了ZYNQ、MPSoC等系列集成ARM硬核的FPGA产品,FPGA能够实现更高数据吞吐率的处理和存储性能,甚至能达到10GB/s以上。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何设计一种具有模块化、超高带宽、低功耗、灵活可扩展特点的超高速数据采集装置,以及设计相应的数据处理方法。
(二)技术方案
为了解决上述技术问题,本发明提供了一种基于ZYNQ系列FPGA的超高速数据采集装置,该装置包括ZYNQ系列FPGA和多个NVMe固态盘,FPGA的PS侧包括ARM硬核和DDR3/DDR4颗粒,FPGA的PL侧包括寄存器、DMA控制器、接口通信模块、全交换矩阵、DDR3/DDR4数据缓冲区和RAID阵列控制器;
所述DDR3/DDR4数据缓冲区内部的控制逻辑将外部多通道DDR3/DDR4颗粒封装后,对外虚拟成一个FIFO数据缓冲区;
所述RAID阵列控制器用于实现多个NVMe固态盘的并行读写控制,即通过多块NVMe固态盘组建RAID0,在写入时同时将数据并行写入多个NVMe固态盘,读取时同时从多个NVMe固态盘中并行将数据读出;
所述ARM硬核用于在采集和导入时通过寄存器选择数据流为写入方向,回放和导出时选择数据流为读取方向;ARM硬核的网络伺服程序收到上位机采集指令时,统计NVMe固态盘阵列中的可用空间列表,并通过寄存器写入RAID阵列控制器,同时通过寄存器启动采集流程;ARM硬核的网络伺服程序收到上位机回放指令时,查询NVMe固态盘阵列中该文件的已用空间列表,并通过寄存器写入RAID阵列控制器,同时通过寄存器启动回放流程;ARM硬核的网络伺服程序收到上位机导入指令时,统计NVMe固态盘阵列中的可用空间列表,并通过寄存器写入RAID阵列控制器,同时通过寄存器启动导入流程;ARM硬核的网络伺服程序收到上位机导出指令时,查询NVMe固态盘阵列中该文件的已用空间列表,并通过寄存器写入RAID阵列控制器,同时通过寄存器启动文件导出流程;
所述全交换矩阵用于在数据采集、回放过程中进行所接收数据的通路选择;
DDR3/DDR4颗粒属于PS侧,作为ARM硬核的软件运行空间和导入导出时的临时DMA数据缓冲区。
优选地,所述FPGA具有AD/LVDS/SRIO接口。
优选地,所述FPGA具有千兆网/USB接口。
优选地,所述接口通信模块用于对来自AD/LVDS/SRIO接口的源数据进行组包后,发给全交换矩阵。
优选地,所述RAID阵列控制器包括可编程逻辑模块和NVMe主机端控制器,所述可编程逻辑模块用于:实时监测DDR3/DDR4数据缓冲区的数据量或DMA控制器的状态,自动触发读写操作,返回操作成功后,则自动获取下一条目的可用空间,从而实现逐条获取并使用每个可用空间对应的物理地址空间;所述NVMe主机端控制器用于实现对每个NVMe固态盘的读写访问控制。
本发明还提供了一种利用所述的装置实现数据采集的方法,包括以下步骤:
当ARM硬核收到上位机采集指令,统计由多个NVMe固态盘组成的NVMe固态盘阵列中的可用空间列表,并通过寄存器写入RAID阵列控制器,同时通过寄存器启动采集流程;来自AD/LVDS/SRIO接口的源数据进入接口通信模块组包后,经过全交换矩阵进行数据通路选择,将数据写入DDR3/DDR4数据缓存区;DDR3/DDR4数据缓冲区中的数据量每次达到阈值后,自动触发RAID阵列控制器向NVMe固态盘阵列进行一次写入操作;当ARM硬核收到上位机停止采集指令,通过寄存器停止采集流程,并由ARM硬核保存文件信息。
本发明又提供了一种利用所述的装置实现数据回放的方法,包括以下步骤:当ARM硬核收到上位机回放指令,查询NVMe固态盘阵列中对应文件的已用空间列表,并通过寄存器写入RAID阵列控制器,同时通过寄存器启动回放流程;RAID阵列控制器自动控制由多个NVMe固态盘组成的NVMe固态盘阵列进行数据读取操作,并将数据写入DDR3/DDR4数据缓冲区;全交换矩阵进行数据通路选择,将数据回放至通信接口模块组包后,通过AD/LVDS/SRIO接口输出;当ARM硬核收到上位机停止回放指令,通过寄存器停止回放流程。
本发明还提供了一种利用所述的装置实现数据导入的方法,包括以下步骤:当ARM硬核收到上位机导入指令,统计NVMe固态盘阵列中的可用空间列表,并通过寄存器写入RAID阵列控制器,同时通过寄存器启动导入流程;上位机通过千兆网/USB接口将数据发送至PS侧的DDR3/DDR4颗粒缓存,并由ARM硬核反复启动DMA控制器,将数据写入RAID阵列控制器;ARM硬核通过寄存器触发RAID阵列控制器向由多个NVMe固态盘组成的NVMe固态盘阵列进行数据写入操作;当ARM硬核收到上位机停止导入指令,通过寄存器停止导入流程,并由ARM硬核保存文件信息。
本发明还提供了一种利用所述的装置实现数据导出的方法,包括以下步骤:当ARM硬核收到上位机导出指令,查询NVMe固态盘阵列中该文件的已用空间列表,并通过寄存器写入RAID阵列控制器,同时通过寄存器启动文件导出流程;ARM硬核通过寄存器触发DMA控制器从由多个NVMe固态盘组成的NVMe固态盘阵列执行数据读取操作;DMA控制器将数据搬运至PS侧的DDR3/DDR4颗粒中缓存后,由千兆网/USB接口发送至上位机。
优选地,PL侧的RAID阵列控制器中的可编程逻辑模块具体用于实现了一种自动化RAID阵列控制方法:在装置采集、回放和导入导出过程中,首先由ARM硬核的软件通过寄存器将可用空间1至可用空间N的描述信息写入Block RAM或寄存器中,然后可编程逻辑模块实现如下功能:实时监测DDR3/DDR4数据缓冲区的数据量或DMA控制器状态,自动触发读写操作,当返回操作成功后,则自动获取下一条目的可用空间,从而实现逐条获取并使用每个可用空间对应的物理地址空间,而不需要ARM硬核参与DMA控制器和RAID阵列控制器状态查询、RAID阵列控制器读写操作和下一条目可用空间的下发操作;
在采集流程中,可编程逻辑模块监测到DDR3/DDR4数据缓冲区的数据量达到阈值时,触发RAID阵列控制器向NVMe固态盘阵列进行一次写入操作后,自动取出可用空间中的下一个条目,并将新数据写入该条目对应的地址空间;当ARM硬核收到停止命令时,还从寄存器中读取当前条目的偏移量,用于计算采集文件大小,而剩余条目对应的地址空间则被回收;
在回放流程中,可编程逻辑模块监测到DDR3/DDR4数据缓冲区未达到最大数据量时,触发RAID阵列控制器从NVMe固态盘阵列进行一次读取操作,然后自动取出可用空间中的下一个条目,并将该条目对应的数据读出,直至所有条目对应的数据全部读出或收到停止命令则停止回放;
在导入流程中,可编程逻辑模块监测到DMA控制器处于数据传输完毕状态时,触发RAID阵列控制器向NVMe固态盘阵列进行一次写入操作,然后自动取出可用空间中的下一个条目,并将新数据写入该条目对应的地址空间;当ARM硬核收到停止命令时,还从寄存器中读取当前条目的偏移量,用于计算采集文件大小,而剩余条目对应的地址空间则被回收;
在导出流程中,可编程逻辑模块监测到DMA控制器已处于空闲状态时,触发RAID阵列控制器从NVMe固态盘阵列进行一次读取操作,然后自动取出可用空间中的下一个条目,并将该条目对应的数据读出,直至所有条目对应的数据全部读出或收到停止命令则停止导出。
(三)有益效果
本发明的装置基于RAID阵列控制实现NVMe固态盘阵列的自动化读写访问控制;基于多通道DDR3/DDR4控制器虚拟FIFO技术,极大提升了内存的访问带宽;通过全交换矩阵实现了采集和回放流程中的数据通路选择。该装置具有10GB/s以上的超高性能,具有模块化、超高带宽、低功耗、灵活可扩展等特点,可广泛应用于高清视频、雷达数据和AD采集等高性能应用场景。
附图说明
图1为本发明的基于ZYNQ的超高速采集装置的总体架构图;
图2为本发明的可编程逻辑模块实现的自动化RAID阵列控制方法原理图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
如图1所示,本发明提出了一种基于ZYNQ系列FPGA的超高速数据采集装置,支持采集、回放和文件导入导出操作。
该装置包括FPGA和多个NVMe固态盘,FPGA具有AD/LVDS/SRIO接口、千兆网/USB接口,FPGA的PS侧包括ARM硬核和DDR3/DDR4颗粒,FPGA的PL侧包括寄存器、DMA控制器、接口通信模块、全交换矩阵、DDR3/DDR4数据缓冲区和RAID阵列控制器;PS侧对应ARM硬核及其外设部分,PL侧对应ARM硬核的可编程逻辑部分。
DDR3/DDR4数据缓冲区内部的控制逻辑将外部多通道DDR3/DDR4颗粒封装后,对外虚拟成一个超高性能FIFO数据缓冲区。
RAID阵列控制器用于实现多个NVMe固态盘的并行读写控制,即通过多块NVMe固态盘组建RAID0,在写入时同时将数据并行写入多个NVMe固态盘,读取时同时从多个NVMe固态盘中并行将数据读出;RAID阵列控制器包括可编程逻辑模块和NVMe主机端控制器,所述可编程逻辑模块用于:实时监测DDR3/DDR4数据缓冲区的数据量或DMA控制器的状态,自动触发读写操作,返回操作成功后,则自动获取下一条目的可用空间,从而实现逐条获取并使用每个可用空间对应的物理地址空间。所述NVMe主机端控制器用于实现对每个NVMe固态盘的读写访问控制。
ARM硬核用于在采集和导入时通过寄存器选择数据流为写入方向,回放和导出时选择数据流为读取方向;ARM硬核的网络伺服程序收到上位机采集指令时,统计NVMe固态盘阵列中的可用空间列表,并通过寄存器写入RAID阵列控制器,同时通过寄存器启动采集流程;ARM硬核的网络伺服程序收到上位机回放指令时,查询NVMe固态盘阵列中该文件的已用空间列表,并通过寄存器写入RAID阵列控制器,同时通过寄存器启动回放流程;ARM硬核的网络伺服程序收到上位机导入指令时,统计NVMe固态盘阵列中的可用空间列表,并通过寄存器写入RAID阵列控制器,同时通过寄存器启动导入流程;ARM硬核的网络伺服程序收到上位机导出指令时,查询NVMe固态盘阵列中该文件的已用空间列表,并通过寄存器写入RAID阵列控制器,同时通过寄存器启动文件导出流程。
接口通信模块用于对来自AD/LVDS/SRIO的源数据进行组包后,发给全交换矩阵;
全交换矩阵用于在数据采集、回放过程中进行所接收数据的通路选择;
DDR3/DDR4颗粒属于PS侧,作为ARM硬核软件的运行空间和导入导出时的临时DMA数据缓冲区。
可以看出,该装置采用多块NVMe固态盘作为大容量数据存储空间,并通过RAID控制及自动化采集技术实现速率的倍增。目前单块NVMe固态盘性能在2GB/s左右,因此采用8块NVMe固态盘即可达到16GB/s。带宽理论计算结果如下:FPGA逻辑频率200MHz,数据位宽512bit,带宽即可达到12.8GB/s;采用2组DDR3/DDR4设计,以DDR3为例,频率1866MHz,数据位宽64位,理论带宽即可达到29.86GB/s。通过各部件带宽核算,该装置的采集性能可达到10GB/s以上。
利用该装置实现数据采集的流程如下:当ARM硬核网络伺服程序收到上位机采集指令,统计NVMe固态盘阵列中的可用空间列表,并通过寄存器写入RAID阵列控制器,同时通过寄存器启动采集流程;来自AD/LVDS/SRIO等源数据进入接口通信模块组包后,经过全交换矩阵进行数据通路选择,将数据写入DDR3/DDR4数据缓存区;DDR3/DDR4数据缓冲区中的数据量每次达到阈值后,自动触发RAID阵列控制器向NVMe固态盘阵列进行一次写入操作;当ARM硬核的网络伺服程序收到上位机停止采集指令,通过寄存器停止采集流程,并由ARM硬核的软件保存文件信息。该流程中,DDR3/DDR4数据缓冲区作为大容量数据缓冲池,有效避免了NVMe固态盘的性能波动带来了采集性能的波动。
利用该装置实现数据回放的流程如下:当ARM硬核网络伺服程序收到上位机回放指令,查询NVMe固态盘阵列中该文件的已用空间列表,并通过寄存器写入RAID阵列控制器,同时通过寄存器启动回放流程;RAID阵列控制器自动控制NVMe固态盘阵列进行数据读取操作,并将数据写入DDR3/DDR4数据缓冲区;全交换矩阵进行数据通路选择,将数据回放至通信接口模块组包后,通过AD/LVDS/SRIO接口输出;当ARM硬核的网络伺服程序收到上位机停止回放指令,通过寄存器停止回放流程。该流程中,DDR3/DDR4数据缓冲区作为大容量数据缓冲池,有效避免了NVMe固态盘的性能波动带来了回放性能的波动。
利用该装置实现数据导入的流程如下:当ARM硬核的网络伺服程序收到上位机导入指令,统计NVMe固态盘阵列中的可用空间列表,并通过寄存器写入RAID阵列控制器,同时通过寄存器启动导入流程;上位机通过千兆网/USB接口将数据发送至PS侧的DDR3/DDR4颗粒缓存,并由ARM硬核软件反复启动DMA控制器,将数据写入RAID阵列控制器;ARM硬核的软件通过寄存器触发RAID阵列控制器向NVMe固态盘阵列进行数据写入操作;当ARM硬核的网络伺服程序收到上位机停止导入指令,通过寄存器停止导入流程,并由ARM硬核的软件保存文件信息。该流程中,在PS侧DDR3/DDR4颗粒缓冲区中,采用乒乓技术实现DMA控制器数据搬运和RAID阵列控制器数据写入操作以流水的方式执行,从而提升导入性能。
利用该装置实现数据导出的流程如下:当ARM硬核的网络伺服程序收到上位机导出指令,查询NVMe固态盘阵列中该文件的已用空间列表,并通过寄存器写入RAID阵列控制器,同时通过寄存器启动文件导出流程;ARM硬核的软件通过寄存器触发DMA控制器从NVMe固态盘阵列执行数据读取操作;DMA控制器将数据搬运至PS侧的DDR3/DDR4颗粒中缓存后,由千兆网/USB接口发送至上位机。该流程中,在PS侧DDR3/DDR4颗粒缓冲区中,采用乒乓技术实现DMA控制器数据搬运和RAID阵列控制器数据读取操作以流水的方式执行,从而提升导出性能。
如图2所示,PL侧的RAID阵列控制器中的可编程逻辑模块具体实现了一种自动化RAID阵列控制方法:在装置采集、回放和导入导出过程中,首先由ARM硬核的软件通过寄存器将可用空间1至可用空间N的描述信息写入Block RAM或寄存器中,然后可编程逻辑模块实现如下功能:实时监测DDR3/DDR4数据缓冲区的数据量或DMA控制器状态,自动触发读写操作,当返回操作成功后,则自动获取下一条目的可用空间,从而实现逐条获取并使用每个可用空间对应的物理地址空间,而不需要ARM硬核参与DMA控制器和RAID阵列控制器状态查询、RAID阵列控制器读写操作和下一条目可用空间的下发操作。
具体而言,在采集流程中,可编程逻辑模块监测到DDR3/DDR4数据缓冲区的数据量达到阈值时,触发RAID阵列控制器向NVMe固态盘阵列进行一次写入操作后,自动取出可用空间中的下一个条目,并将新数据写入该条目对应的地址空间;当ARM硬核收到停止命令时,还从寄存器中读取当前条目的偏移量,用于计算采集文件大小,而剩余条目对应的地址空间则被回收。
在回放流程中,可编程逻辑模块监测到DDR3/DDR4数据缓冲区未达到最大数据量时,触发RAID阵列控制器从NVMe固态盘阵列进行一次读取操作,然后自动取出可用空间中的下一个条目,并将该条目对应的数据读出,直至所有条目对应的数据全部读出或收到停止命令则停止回放。
在导入流程中,可编程逻辑模块监测到DMA控制器处于数据传输完毕状态时,触发RAID阵列控制器向NVMe固态盘阵列进行一次写入操作,然后自动取出可用空间中的下一个条目,并将新数据写入该条目对应的地址空间;当ARM硬核收到停止命令时,还从寄存器中读取当前条目的偏移量,用于计算采集文件大小,而剩余条目对应的地址空间则被回收。
在导出流程中,可编程逻辑模块监测到DMA控制器已处于空闲状态时,触发RAID阵列控制器从NVMe固态盘阵列进行一次读取操作,然后自动取出可用空间中的下一个条目,并将该条目对应的数据读出,直至所有条目对应的数据全部读出或收到停止命令则停止导出。
本发明采用内部集成ARM硬核的FPGA实现超高速数据采集,具有以下优势:
1)FPGA逻辑通过NVMe主机端控制器实现对每个NVMe固态盘的读写访问控制,并通过RAID阵列控制器实现多个NVMe固态盘的并行读写控制,即通过多块NVMe固态盘组建RAID0,在写入时同时将数据并行写入多个NVMe固态盘,读取时同时从多个NVMe固态盘中并行将数据读出,能够有效提升该装置的读取和写入带宽,同时能够扩展装置的有效容量。在采集和导入时由ARM硬核通过寄存器选择数据流为写入方向,回放和导出时选择数据流为读取方向。
2)RAID阵列控制器能够实现数据的缓冲和自动化采集控制,避免ARM硬核频繁参与存储空间的读写访问控制,从而保证采集和回放性能达到最优。
3)内置ARM硬核,实现FPGA逻辑和处理器的紧耦合,相比外置ARM+FPGA等架构在集成度、控制延时、设计复杂度和尺寸等方面有明显的优势。
4)DDR3/DDR4数据缓冲区内部的控制逻辑将多通道DDR3/DDR4颗粒封装后,对外虚拟成一个超高性能FIFO数据缓冲区,由于内存需要同时进行采集写入和RAID阵列控制器读取,采用多通道内存设计能够最大限度避免内存成为系统的瓶颈。在采集时,由ARM硬核软件通过寄存器选择数据流为写入方向,而回放时选择数据流为读取方向。而导入和导出流程,数据直接经过DMA控制器在PS侧DDR3/DDR4颗粒和RAID阵列控制器之间搬运,不需要DDR3/DDR4数据缓冲区参与。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (10)
1.一种基于ZYNQ系列FPGA的超高速数据采集装置,其特征在于,该装置包括ZYNQ系列FPGA和多个NVMe固态盘,FPGA的PS侧包括ARM硬核和DDR3/DDR4颗粒,FPGA的PL侧包括寄存器、DMA控制器、接口通信模块、全交换矩阵、DDR3/DDR4数据缓冲区和RAID阵列控制器;
所述DDR3/DDR4数据缓冲区内部的控制逻辑将外部多通道DDR3/DDR4颗粒封装后,对外虚拟成一个FIFO数据缓冲区;
所述RAID阵列控制器用于实现多个NVMe固态盘的并行读写控制,即通过多块NVMe固态盘组建RAID0,在写入时同时将数据并行写入多个NVMe固态盘,读取时同时从多个NVMe固态盘中并行将数据读出;
所述ARM硬核用于在采集和导入时通过寄存器选择数据流为写入方向,回放和导出时选择数据流为读取方向;ARM硬核的网络伺服程序收到上位机采集指令时,统计NVMe固态盘阵列中的可用空间列表,并通过寄存器写入RAID阵列控制器,同时通过寄存器启动采集流程;ARM硬核的网络伺服程序收到上位机回放指令时,查询NVMe固态盘阵列中该文件的已用空间列表,并通过寄存器写入RAID阵列控制器,同时通过寄存器启动回放流程;ARM硬核的网络伺服程序收到上位机导入指令时,统计NVMe固态盘阵列中的可用空间列表,并通过寄存器写入RAID阵列控制器,同时通过寄存器启动导入流程;ARM硬核的网络伺服程序收到上位机导出指令时,查询NVMe固态盘阵列中该文件的已用空间列表,并通过寄存器写入RAID阵列控制器,同时通过寄存器启动文件导出流程;
所述全交换矩阵用于在数据采集、回放过程中进行所接收数据的通路选择;
DDR3/DDR4颗粒属于PS侧,作为ARM硬核的软件运行空间和导入导出时的临时DMA数据缓冲区。
2.如权利要求1所述的装置,其特征在于,所述FPGA具有AD/LVDS/SRIO接口。
3.如权利要求2所述的装置,其特征在于,所述FPGA具有千兆网/USB接口。
4.如权利要求3所述的装置,其特征在于,所述接口通信模块用于对来自AD/LVDS/SRIO接口的源数据进行组包后,发给全交换矩阵。
5.如权利要求4所述的装置,其特征在于,所述RAID阵列控制器包括可编程逻辑模块和NVMe主机端控制器,所述可编程逻辑模块用于:实时监测DDR3/DDR4数据缓冲区的数据量或DMA控制器的状态,自动触发读写操作,返回操作成功后,则自动获取下一条目的可用空间,从而实现逐条获取并使用每个可用空间对应的物理地址空间;所述NVMe主机端控制器用于实现对每个NVMe固态盘的读写访问控制。
6.一种利用权利要求5所述的装置实现数据采集的方法,其特征在于,包括以下步骤:
当ARM硬核收到上位机采集指令,统计由多个NVMe固态盘组成的NVMe固态盘阵列中的可用空间列表,并通过寄存器写入RAID阵列控制器,同时通过寄存器启动采集流程;来自AD/LVDS/SRIO接口的源数据进入接口通信模块组包后,经过全交换矩阵进行数据通路选择,将数据写入DDR3/DDR4数据缓存区;DDR3/DDR4数据缓冲区中的数据量每次达到阈值后,自动触发RAID阵列控制器向NVMe固态盘阵列进行一次写入操作;当ARM硬核收到上位机停止采集指令,通过寄存器停止采集流程,并由ARM硬核保存文件信息。
7.一种利用权利要求5所述的装置实现数据回放的方法,其特征在于,包括以下步骤:当ARM硬核收到上位机回放指令,查询NVMe固态盘阵列中对应文件的已用空间列表,并通过寄存器写入RAID阵列控制器,同时通过寄存器启动回放流程;RAID阵列控制器自动控制由多个NVMe固态盘组成的NVMe固态盘阵列进行数据读取操作,并将数据写入DDR3/DDR4数据缓冲区;全交换矩阵进行数据通路选择,将数据回放至通信接口模块组包后,通过AD/LVDS/SRIO接口输出;当ARM硬核收到上位机停止回放指令,通过寄存器停止回放流程。
8.一种利用权利要求5所述的装置实现数据导入的方法,其特征在于,包括以下步骤:当ARM硬核收到上位机导入指令,统计NVMe固态盘阵列中的可用空间列表,并通过寄存器写入RAID阵列控制器,同时通过寄存器启动导入流程;上位机通过千兆网/USB接口将数据发送至PS侧的DDR3/DDR4颗粒缓存,并由ARM硬核反复启动DMA控制器,将数据写入RAID阵列控制器;ARM硬核通过寄存器触发RAID阵列控制器向由多个NVMe固态盘组成的NVMe固态盘阵列进行数据写入操作;当ARM硬核收到上位机停止导入指令,通过寄存器停止导入流程,并由ARM硬核保存文件信息。
9.一种利用权利要求5所述的装置实现数据导出的方法,其特征在于,包括以下步骤:当ARM硬核收到上位机导出指令,查询NVMe固态盘阵列中该文件的已用空间列表,并通过寄存器写入RAID阵列控制器,同时通过寄存器启动文件导出流程;ARM硬核通过寄存器触发DMA控制器从由多个NVMe固态盘组成的NVMe固态盘阵列执行数据读取操作;DMA控制器将数据搬运至PS侧的DDR3/DDR4颗粒中缓存后,由千兆网/USB接口发送至上位机。
10.如权利要求6至9中任一项所述的方法,其特征在于,PL侧的RAID阵列控制器中的可编程逻辑模块具体用于实现了一种自动化RAID阵列控制方法:在装置采集、回放和导入导出过程中,首先由ARM硬核的软件通过寄存器将可用空间1至可用空间N的描述信息写入Block RAM或寄存器中,然后可编程逻辑模块实现如下功能:实时监测DDR3/DDR4数据缓冲区的数据量或DMA控制器状态,自动触发读写操作,当返回操作成功后,则自动获取下一条目的可用空间,从而实现逐条获取并使用每个可用空间对应的物理地址空间,而不需要ARM硬核参与DMA控制器和RAID阵列控制器状态查询、RAID阵列控制器读写操作和下一条目可用空间的下发操作;
在采集流程中,可编程逻辑模块监测到DDR3/DDR4数据缓冲区的数据量达到阈值时,触发RAID阵列控制器向NVMe固态盘阵列进行一次写入操作后,自动取出可用空间中的下一个条目,并将新数据写入该条目对应的地址空间;当ARM硬核收到停止命令时,还从寄存器中读取当前条目的偏移量,用于计算采集文件大小,而剩余条目对应的地址空间则被回收;
在回放流程中,可编程逻辑模块监测到DDR3/DDR4数据缓冲区未达到最大数据量时,触发RAID阵列控制器从NVMe固态盘阵列进行一次读取操作,然后自动取出可用空间中的下一个条目,并将该条目对应的数据读出,直至所有条目对应的数据全部读出或收到停止命令则停止回放;
在导入流程中,可编程逻辑模块监测到DMA控制器处于数据传输完毕状态时,触发RAID阵列控制器向NVMe固态盘阵列进行一次写入操作,然后自动取出可用空间中的下一个条目,并将新数据写入该条目对应的地址空间;当ARM硬核收到停止命令时,还从寄存器中读取当前条目的偏移量,用于计算采集文件大小,而剩余条目对应的地址空间则被回收;
在导出流程中,可编程逻辑模块监测到DMA控制器已处于空闲状态时,触发RAID阵列控制器从NVMe固态盘阵列进行一次读取操作,然后自动取出可用空间中的下一个条目,并将该条目对应的数据读出,直至所有条目对应的数据全部读出或收到停止命令则停止导出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910333400.7A CN110069442B (zh) | 2019-04-24 | 2019-04-24 | 一种基于zynq系列fpga的超高速数据采集装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910333400.7A CN110069442B (zh) | 2019-04-24 | 2019-04-24 | 一种基于zynq系列fpga的超高速数据采集装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110069442A true CN110069442A (zh) | 2019-07-30 |
CN110069442B CN110069442B (zh) | 2022-10-14 |
Family
ID=67368739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910333400.7A Active CN110069442B (zh) | 2019-04-24 | 2019-04-24 | 一种基于zynq系列fpga的超高速数据采集装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110069442B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110488291A (zh) * | 2019-08-23 | 2019-11-22 | 成都航天科工微电子系统研究院有限公司 | 一种双基前视sar半实物仿真方法及装置 |
CN110579642A (zh) * | 2019-09-20 | 2019-12-17 | 哈尔滨工业大学 | 基于Zynq的机载交流电多路并行采集处理系统 |
CN110727637A (zh) * | 2019-12-18 | 2020-01-24 | 广东高云半导体科技股份有限公司 | Fpga芯片及电子设备 |
CN111258504A (zh) * | 2020-01-15 | 2020-06-09 | 西安电子科技大学 | 一种基于sata接口固态硬盘的存储控制系统 |
CN112131537A (zh) * | 2020-09-25 | 2020-12-25 | 北京计算机技术及应用研究所 | 一种对zynq芯片程序镜像文件的加解密的方法 |
CN112835829A (zh) * | 2021-02-10 | 2021-05-25 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 多通道dma传输测控信号的方法 |
CN113590528A (zh) * | 2021-07-20 | 2021-11-02 | 湖南艾科诺维科技有限公司 | 基于hp接口的多通道数据采集存储回放卡、系统及方法 |
CN113722270A (zh) * | 2021-07-20 | 2021-11-30 | 湖南艾科诺维科技有限公司 | 一种记录回放设备及其控制方法 |
CN114860158A (zh) * | 2022-04-11 | 2022-08-05 | 中国电子科技集团公司第五十二研究所 | 一种高速数据采集记录方法 |
CN114896183A (zh) * | 2022-05-25 | 2022-08-12 | 安徽隼波科技有限公司 | 一种基于zynq的串口数据发送方法 |
CN117472288A (zh) * | 2023-12-27 | 2024-01-30 | 成都领目科技有限公司 | 一种基于raid0硬盘组的io写入方法及模型 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309732A (zh) * | 2013-05-15 | 2013-09-18 | 中国矿业大学(北京) | 防止探地雷达数据采集系统中数据溢出的方法 |
CN106095334A (zh) * | 2016-06-03 | 2016-11-09 | 江苏科技大学 | 一种基于fpga的高速数据采集存储系统 |
US20170123995A1 (en) * | 2015-11-03 | 2017-05-04 | Intel Corporation | Efficient redundant array of independent disks (raid) write hole solutions |
CN106770623A (zh) * | 2016-12-12 | 2017-05-31 | 中国特种设备检测研究院 | 管道漏磁检测系统、数据采集装置及方法 |
CN108121672A (zh) * | 2017-08-08 | 2018-06-05 | 鸿秦(北京)科技有限公司 | 一种基于NandFlash存储器多通道的存储阵列控制方法与装置 |
CN207601777U (zh) * | 2017-09-22 | 2018-07-10 | 西安思丹德信息技术有限公司 | 一种高速数据存储装置 |
CN109375568A (zh) * | 2018-10-26 | 2019-02-22 | 北京计算机技术及应用研究所 | 一种多源数据实时采集装置 |
-
2019
- 2019-04-24 CN CN201910333400.7A patent/CN110069442B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309732A (zh) * | 2013-05-15 | 2013-09-18 | 中国矿业大学(北京) | 防止探地雷达数据采集系统中数据溢出的方法 |
US20170123995A1 (en) * | 2015-11-03 | 2017-05-04 | Intel Corporation | Efficient redundant array of independent disks (raid) write hole solutions |
CN106095334A (zh) * | 2016-06-03 | 2016-11-09 | 江苏科技大学 | 一种基于fpga的高速数据采集存储系统 |
CN106770623A (zh) * | 2016-12-12 | 2017-05-31 | 中国特种设备检测研究院 | 管道漏磁检测系统、数据采集装置及方法 |
CN108121672A (zh) * | 2017-08-08 | 2018-06-05 | 鸿秦(北京)科技有限公司 | 一种基于NandFlash存储器多通道的存储阵列控制方法与装置 |
CN207601777U (zh) * | 2017-09-22 | 2018-07-10 | 西安思丹德信息技术有限公司 | 一种高速数据存储装置 |
CN109375568A (zh) * | 2018-10-26 | 2019-02-22 | 北京计算机技术及应用研究所 | 一种多源数据实时采集装置 |
Non-Patent Citations (4)
Title |
---|
LU PING等: "A Data Acquisition System for Methane Drainage Based on ARM and FPGA", 《2011 INTERNATIONAL CONFERENCE ON COMPUTER DISTRIBUTED CONTROL AND INTELLIGENT ENVIRONMENTAL MONITORING》 * |
刘召斌: "基于FPGA的高速数据存储系统设计", 《中国优秀硕士学位论文全文数据库》 * |
谭海清等: "基于FPGA的DDR3协议解析逻辑设计", 《计算机应用》 * |
韩茜等: "高速大容量固态存储系统的设计", 《雷达科学与技术》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110488291A (zh) * | 2019-08-23 | 2019-11-22 | 成都航天科工微电子系统研究院有限公司 | 一种双基前视sar半实物仿真方法及装置 |
CN110579642A (zh) * | 2019-09-20 | 2019-12-17 | 哈尔滨工业大学 | 基于Zynq的机载交流电多路并行采集处理系统 |
CN110727637A (zh) * | 2019-12-18 | 2020-01-24 | 广东高云半导体科技股份有限公司 | Fpga芯片及电子设备 |
CN111258504A (zh) * | 2020-01-15 | 2020-06-09 | 西安电子科技大学 | 一种基于sata接口固态硬盘的存储控制系统 |
CN112131537A (zh) * | 2020-09-25 | 2020-12-25 | 北京计算机技术及应用研究所 | 一种对zynq芯片程序镜像文件的加解密的方法 |
CN112131537B (zh) * | 2020-09-25 | 2023-10-20 | 北京计算机技术及应用研究所 | 一种对zynq芯片程序镜像文件的加解密的方法 |
CN112835829A (zh) * | 2021-02-10 | 2021-05-25 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 多通道dma传输测控信号的方法 |
CN112835829B (zh) * | 2021-02-10 | 2022-10-28 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 多通道dma传输测控信号的方法 |
CN113722270B (zh) * | 2021-07-20 | 2023-07-11 | 湖南艾科诺维科技有限公司 | 一种记录回放设备及其控制方法 |
CN113590528A (zh) * | 2021-07-20 | 2021-11-02 | 湖南艾科诺维科技有限公司 | 基于hp接口的多通道数据采集存储回放卡、系统及方法 |
CN113722270A (zh) * | 2021-07-20 | 2021-11-30 | 湖南艾科诺维科技有限公司 | 一种记录回放设备及其控制方法 |
CN114860158A (zh) * | 2022-04-11 | 2022-08-05 | 中国电子科技集团公司第五十二研究所 | 一种高速数据采集记录方法 |
CN114896183B (zh) * | 2022-05-25 | 2023-08-08 | 安徽隼波科技有限公司 | 一种基于zynq的串口数据发送方法 |
CN114896183A (zh) * | 2022-05-25 | 2022-08-12 | 安徽隼波科技有限公司 | 一种基于zynq的串口数据发送方法 |
CN117472288A (zh) * | 2023-12-27 | 2024-01-30 | 成都领目科技有限公司 | 一种基于raid0硬盘组的io写入方法及模型 |
CN117472288B (zh) * | 2023-12-27 | 2024-04-16 | 成都领目科技有限公司 | 一种基于raid0硬盘组的io写入方法及模型 |
Also Published As
Publication number | Publication date |
---|---|
CN110069442B (zh) | 2022-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110069442A (zh) | 一种基于zynq系列fpga的超高速数据采集装置及方法 | |
EP0080875B1 (en) | Data storage system for a host computer | |
EP2361404B1 (en) | Method and system for queuing transfers of multiple non-contiguous address ranges with a single command | |
CN103336745B (zh) | 一种基于ssd缓存的fc hba及其设计方法 | |
US9400603B2 (en) | Implementing enhanced performance flash memory devices | |
KR101663066B1 (ko) | 하이브리드 디바이스에서의 고체 상태 메모리 커맨드 큐 | |
CN109814811B (zh) | 一种减小NVMe SSD响应延迟影响高速数据存储设备写入速度的方法 | |
CN104778138B (zh) | 一种内核多线程直接存储驱动实现方法 | |
CN102637147A (zh) | 利用固态硬盘作为计算机写缓存的存储系统以及相应的管理调度方法 | |
CN109375568A (zh) | 一种多源数据实时采集装置 | |
CN102981783A (zh) | 一种基于Nand Flash的Cache加速方法 | |
CN109144908A (zh) | 一种基于级联Expander的数据存储系统及方法 | |
CN104834478B (zh) | 一种基于异构混合存储设备的数据写入及读取方法 | |
CN106681660A (zh) | Io调度方法及io调度装置 | |
CN103092781A (zh) | 闪存接口的有效利用 | |
CN109375868B (zh) | 一种数据存储方法、调度装置、系统、设备及存储介质 | |
CN106469119A (zh) | 一种基于nvdimm的数据写缓存方法及其装置 | |
WO2024152609A1 (zh) | 一种消息处理方法、装置、电子设备和存储介质 | |
US20190384719A1 (en) | Logical block addressing rangecollision crawler | |
CN104793892B (zh) | 一种加速磁盘随机输入输出(io)读写的方法 | |
CN103577349B (zh) | 在高速缓存中选择数据进行刷盘的方法和装置 | |
CN116136748B (zh) | 基于FPGA实现的高带宽NVMe SSD读写系统与方法 | |
CN109783000A (zh) | 一种数据处理方法及设备 | |
CN207586908U (zh) | 一种高速扩容存储模块 | |
CN105701060B (zh) | 基于fpga的高速实时数据记录系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |