一种PFGA通用DAM IP核制造技术

技术编号:24573722 阅读:33 留言:0更新日期:2020-06-21 00:05
本发明专利技术提供了一种PFGA通用DAM IP核,包括PCIE IP核接口模块、标准数据转换模块、DAM引擎处理模块、DAM数据分析控制模块以及若干个通道数据处理模块,其中DMA引擎处理模块将数据收发双方的读写请求处理为CPLD数据,DAM引擎处理模块分别为每个CPLD数据赋予一个描写符,再由通道数据处理模块处理相应通道中描写符的读写和回写操作,从而构成硬件描述闭环(ring)或软件描述闭环(ring)。本发明专利技术提供的IP核具备全线速转发、可自定义逻辑通道数目、支持描述符传输用户数据和控制信息并可自动回写、自动对齐字节、适配性强、支持MSIX中断等众多优点,传输高效、使用广泛,能配合多种硬件和多种PCIE IP数据接口进行使用。

A PFGA universal dam IP core

【技术实现步骤摘要】
一种PFGA通用DAMIP核
本专利技术属于DAMIP核
,特别涉及一种PFGA通用DAMIP核。
技术介绍
DMA(DirectMemoryAccess,直接内存访问)是目前主机与板卡之间最重要的数据交换手段,尤其是目前流行的、需要主机与外设进行大量的数据交换的高速通讯卡和数据加速卡,因此DMA是底层通讯必需的重要基础功能。现有的数据交换方式有如下几种:1、传统的低速的数据交换方式:往往通过IO读取的方式,这种方式,效率及其低下,因为每次发送的数据量小,例如8bytes,而且每次发送都要占用CPU的时间,极其浪费主机资源,因此只适合小数据,不频繁访问的场合。2、BlockDMA方式:主机会事先把主机的一段物理连续地址分配好,然后把这个地址通过寄存器读写方式告知板卡,板卡然后会主动发起DMA读写,来实现高速数据交换功能。这种方式优点是可以单次实现比较大的数据交换功能,但由于有必需是连续物理地址的存储条件的限制,因此无法单次实现大量的数据传输。只能等上次的数据处理完后才发送下一段的地址来传输,需要CPU的多次参与,无法最大限度的利用高速带宽的优势。3、Scatter-gatherDMA分散聚集传输方式:主机会先把数据的存储空间里面的每一段连续物理地址端的起始地址以及长度信息记录下来,组成一个链表。然后把这个链表信息通过寄存器读写方式告知板卡,剩下的工作都是由板卡来处理的,板卡会通过获得的链表信息来自动发起多次DMA传输。每次处理完一段连续的物理地址数据后,会自动处理下一段连续的物理地址数据,来进行下一个读写请求,而无需主机参与,直到链表里面记录的信息全部处理完后,可通过中断来告知主机结果。目前市场上主流的商用DMA均采用了第三种工作方式。但基本上是国外公司的产品,价格比较昂贵,并且经过实际测试,发现仅仅适合单次大数据传输的场合,不适合像网卡这种小数据包、随机访问数量大的应用。在这种应用方式下,经常会发生数据中断、DMA自动停止的bug,在不开源的IP核中无法对这些bug进行排除。同时现有的IP核主要是服务Xilinx高端产品(Ultrascale以及以上产品),对于市场上主流的Aritx、Kintex7系列产品而言、只是外面包裹了一层转换协议,并且该转换协议里有阻塞的代码(不能直接处理跨越TLP),因此并不是线速转发数据的。因此,现有的XDMAIP核目前仍存在bug多、非线速转发、不适合小数据、访问频繁等问题。
技术实现思路
为了解决上述技术问题,本专利技术提供了一种PFGA通用DAMIP核及数据处理方法。本专利技术具体技术方案如下:本专利技术提供了一种PFGA通用DAMIP核,包括如下部分:PCIEIP核接口模块,被配置为为硬件平台提供IP核接口;标准数据转换模块,被配置为将所述PCIEIP核接口模块的接口协议转换为标准接口协议;DMA引擎处理模块,被配置为将PCIE的标准TLP协议翻译为四种不同的TLP类型,包括将PC读写寄存器请求翻译成RXR数据、将PC返回FPGA的读请求翻译成RXC数据、将FPGA发起对PC的读写请求翻译成TXR数据以及将FPGA返回PC的读请求翻译成TXC数据;DMA数据分析控制模块,被配置为对TLP的CPLD数据进行分析、分类,根据类型不同分别为每个所述CPLD数据赋予一个SG读描述符或SG写描述符,并将所述CPLD数据分别发送给各个通道,所述CPLD数据包括所述PC读写寄存器请求以及所述将PC返回FPGA的读请求;每个所述通道发送的TLP指令通过轮询复用的方式发送到所述DMA引擎处理模块;通道数据处理模块,每个所述通道数据处理模块被配置为处理一个所述通道中的所述CPLD数据中的SG描述符读写、用户主数据读写、SG描述符回写、中断指令以及用户接口实现;所述DMA数据分析控制模块与所述通道数据处理模块对所述SG读描述符和所述SG写描述符的处理过程构成硬件描述闭环以及软件驱动描述符闭环。进一步地,所述DMA引擎处理模块包括如下部分:数据接收单元,被配置为接收所述标准数据转换模块发送的数据,并将所述数据翻译成RXR数据或RXC数据,分别发送给所述DMA数据分析控制模块进行处理;数据发送单元,被配置为接收所述DMA数据分析控制模块发送的数据,并将所述数据翻译成TXR数据或TXC数据,并发送给所述标准数据转换模块,最终由所述标准数据转换模块发送到PCIE发送数据总线上。进一步地,所述数据接收单元包括如下部分:RX接收数据引擎,被配置为接收所述标准数据转换模块发送的CPLD数据;RXR翻译子模块,被配置为将所述CPLD数据中的所述PC读写寄存器请求翻译成RXR数据,并发送给所述DMA数据分析控制模块;RXC翻译子模块,被配置为将所述CPLD数据中的所述PC返回FPGA的读请求翻译成RXC数据,并发送给所述DMA数据分析控制模块。进一步地,所述数据发送单元包括如下部分:TXR翻译子模块,被配置为将所述DMA数据分析控制模块发送的所述FPGA发起的对PC的读写请求翻译成TXR数据;TXC翻译子模块,被配置为将所述DMA数据分析控制模块发送的所述FPGA返回PC的读请求翻译成TXC数据;分时复用子模块,被配置为将所述TXR数据和所述TXC数据发送给TX发送数据引擎;TX发送数据引擎,被配置为接收所述TXR数据和所述TXC数据并进一步发送给所述标准数据转换模块;进一步地,所述DMA数据分析模块包括如下部分:BAR寄存器读写子模块,被配置为读取所述RXR数据,根据类型不同分别为每个所述RXR数据赋予一个SG读描述符或SG写描述符,并根据请求的地址不同将所述RXR数据发送到各个通道中;CPLD数据处理及TAG分配子模块,被配置为根据预先分配给所述TLP的TAG识别所述数据的类型和通道,并分别通过不同的FIFO发送到相应的所述通道数据处理模块中,所述数据包括用户的主数据、SG读描述符数据以及SG写描述符数据;TX多路复用子模块,被配置为将FPGA读数据请求、FPGA写数据请求以及MSIX请求发送给所述DMA引擎处理模块。进一步地,所述DMA数据分析模块还包括如下部分:CPLD流控子模块,被配置为根据发送读请求数据的大小和次数以及接收到所述CPLD数据的大小和次数计算Credit数值,判断剩余空间是否足够接收数据,并将判断结果发送给所述通道数据处理模块、由所述通道数据处理模块确定是否发起新一轮的读取请求。进一步地,所述DMA数据分析模块还包括如下部分:中断控制子模块,被配置为对每个所述通道发来的各种中断进行处理,根据所述硬件平台返回的信息确定中断类型,如果所述中断为Legacy或MSI,则直接通过所述PCIEIP核接口模块进行发送;如果所述中断为MSIX,则通过内存写请求发送给所述DMA引擎处理模块上。进一步地,所述通道数据处理模块包括如下部分:描本文档来自技高网
...

【技术保护点】
1.一种PFGA通用DMAIP核,其特征在于,包括如下部分:/nPCIEIP核接口模块(1),被配置为为硬件平台提供IP核接口;/n标准数据转换模块(2),被配置为将所述PCIEIP核接口模块(1)的接口协议转换为标准接口协议;/nDMA引擎处理模块(3),被配置为将PCIE的标准TLP协议翻译为四种不同的TLP类型,包括将PC读写寄存器请求翻译成RXR数据、将PC返回FPGA的读请求翻译成RXC数据、将FPGA发起对PC的读写请求翻译成TXR数据以及将FPGA返回PC的读请求翻译成TXC数据;/nDMA数据分析控制模块(4),被配置为对TLP的CPLD数据进行分析、分类,根据类型不同分别为每个所述CPLD数据赋予一个SG读描述符或SG写描述符,并将所述CPLD数据分别发送给各个通道,所述CPLD数据包括所述PC读写寄存器请求以及所述将PC返回FPGA的读请求;每个所述通道发送的TLP指令通过轮询复用的方式发送到所述DMA引擎处理模块(3);/n通道数据处理模块(5),每个所述通道数据处理模块(5)被配置为处理一个所述通道中的所述CPLD数据中的SG描述符读写、用户主数据读写、SG描述符回写、中断指令以及用户接口实现;/n所述DMA数据分析控制模块(4)与所述通道数据处理模块(5)对所述SG读描述符和所述SG写描述符的处理过程构成硬件描述闭环以及软件驱动描述符闭环。/n...

【技术特征摘要】
1.一种PFGA通用DMAIP核,其特征在于,包括如下部分:
PCIEIP核接口模块(1),被配置为为硬件平台提供IP核接口;
标准数据转换模块(2),被配置为将所述PCIEIP核接口模块(1)的接口协议转换为标准接口协议;
DMA引擎处理模块(3),被配置为将PCIE的标准TLP协议翻译为四种不同的TLP类型,包括将PC读写寄存器请求翻译成RXR数据、将PC返回FPGA的读请求翻译成RXC数据、将FPGA发起对PC的读写请求翻译成TXR数据以及将FPGA返回PC的读请求翻译成TXC数据;
DMA数据分析控制模块(4),被配置为对TLP的CPLD数据进行分析、分类,根据类型不同分别为每个所述CPLD数据赋予一个SG读描述符或SG写描述符,并将所述CPLD数据分别发送给各个通道,所述CPLD数据包括所述PC读写寄存器请求以及所述将PC返回FPGA的读请求;每个所述通道发送的TLP指令通过轮询复用的方式发送到所述DMA引擎处理模块(3);
通道数据处理模块(5),每个所述通道数据处理模块(5)被配置为处理一个所述通道中的所述CPLD数据中的SG描述符读写、用户主数据读写、SG描述符回写、中断指令以及用户接口实现;
所述DMA数据分析控制模块(4)与所述通道数据处理模块(5)对所述SG读描述符和所述SG写描述符的处理过程构成硬件描述闭环以及软件驱动描述符闭环。


2.如权利要求1所述的PFGA通用DMAIP核,其特征在于,所述DMA引擎处理模块(3)包括如下部分:
数据接收单元,被配置为接收所述标准数据转换模块(2)发送的数据,并将所述数据翻译成RXR数据或RXC数据,分别发送给所述DMA数据分析控制模块(4)进行处理;
数据发送单元,被配置为接收所述DMA数据分析控制模块(4)发送的数据,并将所述数据翻译成TXR数据或TXC数据,并发送给所述标准数据转换模块(2),最终由所述标准数据转换模块(2)发送到PCIE发送数据总线上。


3.如权利要求2所述的PFGA通用DAMIP核,其特征在于,所述数据接收单元包括如下部分:
RX接收数据引擎(31),被配置为接收所述标准数据转换模块(2)发送的CPLD数据;
RXR翻译子模块(32),被配置为将所述CPLD数据中的所述PC读写寄存器请求翻译成RXR数据,并发送给所述DMA数据分析控制模块(4);
RXC翻译子模块(33),被配置为将所述CPLD数据中的所述PC返回FPGA的读请求翻译成RXC数据,并发送给所述DMA数据分析控制模块(4)。


4.如权利要求2所述的PFGA通用DAMIP核,其特征在于,所述数据发送单元包括如下部分:
TXR翻译子模块(34),被配置为将所述DMA数据分析控制模块(4)发送的所述FPGA发起的对PC的读写请求翻译成TXR数据;
TXC翻译子模块(35),被配置为将所述DMA数据分析控制模块(4)发送的所述FPGA返回PC的读请求翻译成TXC数据;
分时复用子模块(36),被配置为将所述TXR数据和所述TXC数据发送给TX发送数据引擎(37);
TX发送数据引擎(37),被配置为接收所述TXR数据和所述TXC数据并进一步发送给所述标准数据转换模块(2)。


5.如权利要求1所述的PFGA通用DAMIP核,其...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:北京光润通科技发展有限公司
类型:发明
国别省市:北京;11

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

1