DMA数据传输系统技术方案

技术编号:37812663 阅读:11 留言:0更新日期:2023-06-09 09:42
本公开是关于一种DMA数据传输系统。该DMA数据传输系统包括基于FPGA芯片开发的且用于向上位机环形内存缓冲区传输数据的数据采集卡,数据采集卡包括链表块随机存储器、链表信息处理模块和DMA模块;链表块随机存储器中存储有用于描述上位机环形内存缓冲区的DMA设备描述符,DMA设备描述符为n个且每个DMA设备描述符均包括一段物理上连续的内存空间的起始物理地址及存储空间大小。本申请FPGA向PC机进行数据传输时可直接读取在FPGA数据采集卡内的链表块随机存储器存储的DMA设备描述符,根据DMA设备描述符中的物理地址向PC机发送存储数据。这个数据传输过程中不需要FPGA再与PC机进行频繁通信,来获取物理地址,从而有利于提高数据传输效率。高数据传输效率。高数据传输效率。

【技术实现步骤摘要】
DMA数据传输系统


[0001]本公开涉及数据处理
,尤其涉及一种DMA数据传输系统。

技术介绍

[0002]FPGA(Field Programmable Gate Array,可编程阵列逻辑器件)与PC机交互时,有时候需要将FPGA中的数据传输到PC机供PC机调用。数据传输时一般会采用DMA模块或SGDMA模块。通过DMA模块或SGDMA模块进行数据传输时,一般需要FPGA与PC机频繁通信,读取存储在PC机的数据链表中的物理地址,进行数据传输。这会降低FPGA向PC机的数据传输效率。

技术实现思路

[0003]有鉴于此,本公开实施例期望提供一种DMA数据传输系统。
[0004]本公开的技术方案是这样实现的:本公开提供一种DMA数据传输系统。
[0005]本公开实施例提供的DMA数据传输系统,包括:DMA数据传输系统,其特征在于,包括基于FPGA芯片开发的且用于向上位机环形内存缓冲区传输数据的数据采集卡,所述数据采集卡包括链表块随机存储器、链表信息处理模块和DMA模块;所述链表块随机存储器中存储有用于描述所述上位机环形内存缓冲区的DMA设备描述符,所述DMA设备描述符为n个,2≤n≤50,且每个所述DMA设备描述符均包括一段物理上连续的内存空间的起始物理地址及存储空间大小,n个所述DMA设备描述符所记录的存储空间大小之和等于所述上位机环形内存缓冲区的存储空间大小;所述链表信息处理模块用于对n个所述DMA设备描述符进行排序,且依次循环往复获取所述DMA设备描述符并发送给所述DMA模块;所述DMA模块用于依据接收的所述DMA设备描述符向所述上位机环形内存缓冲区传输数据,每次传输的数据可写满一个所述DMA设备描述符所对应的所述上位机环形内存缓冲区的存储空间之后,再接收所述链表信息处理模块发送的下一个所述DMA设备描述符,并依据下一个所述DMA设备描述符继续传输数据。
[0006]在一些实施例中,所述上位机环形内存缓冲区的申请方法为:以存储空间大小的目标值申请物理地址连续的内存空间,其中,所述目标值的初始值为预设值,所述目标值小于所述上位机环形内存缓冲区的存储空间大小;当申请失败后,更新所述目标值,并返回所述以存储空间大小的目标值申请物理地址连续的内存空间的步骤,其中,更新后的目标值小于更新前的目标值;当申请成功后,获取申请到的内存空间的物理地址,并判断累积申请到的存储空间大小是否达到所述上位机环形内存缓冲区的存储空间大小;若是,则确定申请完成;若否,则返回所述以存储空间大小的目标值申请物理地址连续的内存空间的步
骤。
[0007]在一些实施例中,所述更新所述目标值,包括:计算所述目标值的半值;将所述半值作为更新后的目标值。
[0008]在一些实施例中,在计算所述目标值的半值之后,所述方法还包括:计算所述上位机环形内存缓冲区的存储空间大小与所述累积申请到的存储空间大小之间的差值,并判断所述差值是否小于所述半值;若是,则将所述差值作为更新后的目标值;若否,则执行所述将所述半值作为更新后的目标值的步骤。
[0009]在一些实施例中,所述数据采集卡还包括用于打包数据并向所述上位机环形内存缓冲区传输的数据接口模块。
[0010]在一些实施例中,所述数据接口模块为提供标准AXI总线用户数据接口的AXI Bridge PCIE IP核,所述AXI Bridge PCIE IP核使用axi slave接口接收所述DMA模块传输的数据,打包数据为TLP数据包。
[0011]在一些实施例中,所述数据采集卡还包括用于通过所述数据接口模块接收指令、反馈状态,且用于对所述链表块随机存储器进行读写的寄存器读写模块。
[0012]在一些实施例中,所述寄存器读写模块为AXI Bram Ctrl IP核,且所述AXI Bridge PCIE IP核使用axi master接口连接所述AXI Bram Ctrl IP核。
[0013]在一些实施例中,数据采集卡还包括用于向所述DMA模块提供原始数据的数据缓冲存储模块,所述数据缓冲存储模块包括缓冲存储控制单元和数据缓冲存储器,所述数据缓冲存储器为同步动态随机存取存储器。
[0014]在一些实施例中,所述DMA模块包括用于向所述上位机环形内存缓冲区传输数据的DMA数据搬运单元、用于接收原始数据并提供给所述DMA数据搬运单元的先进先出写入存储器、用于依据接收的所述DMA设备描述符控制所述DMA数据搬运单元的DMA搬运控制单元、用于获取所述DMA搬运控制单元状态信息的DMA状态监视单元。
[0015]在一些实施例中,所述DMA模块包括用于接收所述DMA数据搬运单元传输的数据的先进先出读出存储器,所述DMA数据搬运单元还用于接收所述上位机环形内存缓冲区传输的数据。
[0016]根据本公开实施例的DMA数据传输系统包括基于FPGA芯片开发的且用于向上位机环形内存缓冲区传输数据的数据采集卡,数据采集卡包括链表块随机存储器、链表信息处理模块和DMA模块;链表块随机存储器中存储有用于描述上位机环形内存缓冲区的DMA设备描述符,DMA设备描述符为n个,2≤n≤50,且每个DMA设备描述符均包括一段物理上连续的内存空间的起始物理地址及存储空间大小,n个DMA设备描述符所记录的存储空间大小之和等于上位机环形内存缓冲区的存储空间大小;链表信息处理模块用于对n个DMA设备描述符进行排序,且依次循环往复获取DMA设备描述符并发送给DMA模块;DMA模块用于依据接收的DMA设备描述符向上位机环形内存缓冲区传输数据,每次传输的数据可写满一个DMA设备描述符所对应的上位机环形内存缓冲区的存储空间之后,再接收链表信息处理模块发送的下一个DMA设备描述符,并依据下一个DMA设备描述符继续传输数据。本申请中链表块随机存储器集成于FPGA中,存储有描述上位机环形内存缓冲区的DMA设备描述符。FPGA向PC机进行
数据传输时可直接读取在FPGA数据采集卡内的链表块随机存储器存储的DMA设备描述符,根据DMA设备描述符中的物理地址向PC 机发送存储数据。这个数据传输过程中不需要FPGA再与PC机进行频繁通信,来获取物理地址,从而有利于提高数据传输效率。
[0017]本公开附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。
附图说明
[0018]图1是根据一示例性实施例示出的DMA数据传输系统结构示意图;图2是根据一示例性实施例示出的一种FPGA与PC交互示意图;图3是根据一示例性实施例示出的数据存储空间分配示意图一;图4是根据一示例性实施例示出的数据存储空间分配示意图二;图5是根据一示例性实施例示出的类SGDMA模块结构示意图;图6是根据一示例性实施例示出的类SGDMA模块中的DMA模块结构示意图。
具体实施方式
[0019]下面详细描述本公开的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种DMA数据传输系统,其特征在于,包括基于FPGA芯片开发的且用于向上位机环形内存缓冲区传输数据的数据采集卡,所述数据采集卡包括链表块随机存储器、链表信息处理模块和DMA模块;所述链表块随机存储器中存储有用于描述所述上位机环形内存缓冲区的DMA设备描述符,所述DMA设备描述符为n个,2≤n≤50,且每个所述DMA设备描述符均包括一段物理上连续的内存空间的起始物理地址及存储空间大小,n个所述DMA设备描述符所记录的存储空间大小之和等于所述上位机环形内存缓冲区的存储空间大小;所述链表信息处理模块用于对n个所述DMA设备描述符进行排序,且依次循环往复获取所述DMA设备描述符并发送给所述DMA模块;所述DMA模块用于依据接收的所述DMA设备描述符向所述上位机环形内存缓冲区传输数据,每次传输的数据可写满一个所述DMA设备描述符所对应的所述上位机环形内存缓冲区的存储空间之后,再接收所述链表信息处理模块发送的下一个所述DMA设备描述符,并依据下一个所述DMA设备描述符继续传输数据。2.根据权利要求1所述的DMA数据传输系统,其特征在于,所述上位机环形内存缓冲区的申请方法为:以存储空间大小的目标值申请物理地址连续的内存空间,其中,所述目标值的初始值为预设值,所述目标值小于所述上位机环形内存缓冲区的存储空间大小;当申请失败后,更新所述目标值,并返回所述以存储空间大小的目标值申请物理地址连续的内存空间的步骤,其中,更新后的目标值小于更新前的目标值;当申请成功后,获取申请到的内存空间的物理地址,并判断累积申请到的存储空间大小是否达到所述上位机环形内存缓冲区的存储空间大小;若是,则确定申请完成;若否,则返回所述以存储空间大小的目标值申请物理地址连续的内存空间的步骤。3.根据权利要求2所述的DMA数据传输系统,其特征在于,所述更新所述目标值,包括:计算所述目标值的半值;将所述半值作为更新后的目标值。4.根据权利要求3所述的DMA数据传输系统,其特征在于,在计算所述目标值的半值之后,所述方法还包括:计算所述上位机环形内存缓冲区的存储空间大小与所述累积申请...

【专利技术属性】
技术研发人员:李峰魏云清黄斌吴亚贺羽
申请(专利权)人:国仪量子合肥技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1