[发明专利]一种基于FPGA的DMA读操作实现方法、FPGA设备以及通信系统有效
申请号: | 202110876348.7 | 申请日: | 2021-07-31 |
公开(公告)号: | CN113485951B | 公开(公告)日: | 2022-02-11 |
发明(设计)人: | 苏庆会;冯驰;李银龙;王斌;王中原 | 申请(专利权)人: | 郑州信大捷安信息技术股份有限公司 |
主分类号: | G06F13/28 | 分类号: | G06F13/28;G06F15/78;G06F13/40;G06F3/06 |
代理公司: | 郑州德勤知识产权代理有限公司 41128 | 代理人: | 张微微 |
地址: | 450000 河南省*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 fpga dma 操作 实现 方法 设备 以及 通信 系统 | ||
1.一种基于FPGA的DMA读操作实现方法,其特征在于,包括以下步骤:
预先根据主机配置的PCIE事务层接口位宽设定排序处理位宽和地址对齐方式,其中,排序处理位宽与所述PCIE事务层接口位宽一致,地址对齐方式为N字节对齐方式, N为所述PCIE事务层接口位宽对应的字节数;
执行DMA读操作时,根据DMA读操作的有效起始地址、有效结束地址以及主机配置的DMA读操作基地址生成DMA读请求,所述DMA读请求包括至少一个TLP请求包,其中,首个TLP请求包的起始地址和最后一个TLP请求包的结束地址均满足N字节对齐,且每个所述TLP请求包的大小均不会跨越4KB边界;
将所述DMA读请求通过PCIE内核高速传输给主机,以供主机分别对接收到的TLP请求包进行处理,形成对应的TLP完成包;每个所述TLP完成包所传递数据量不大于预设Payload值且所传递数据的地址范围不会跨越RCB边界,Payload为TLP完成包所允许封装数据的最大长度,RCB(Read Completion Boundary),是接收端在向发送端返回读响应数据时,多个TLP包的大小必须是RCB的倍数,即必须对齐到RCB地址边界上;
接收主机通过PCIE内核高速传输的至少一个TLP完成包,根据所述排序处理位宽对各个TLP完成包进行排序处理,并根据DMA读操作的有效起始地址和/或有效结束地址删除首个TLP完成包和/或最后一个TLP完成包中冗余的数据。
2.根据权利要求1所述的基于FPGA的DMA读操作实现方法,其特征在于,根据DMA读操作的有效起始地址、有效结束地址以及主机配置的DMA读操作基地址生成DMA读请求的具体步骤如下:
根据主机配置的DMA读操作基地址判断DMA读操作的有效起始地址和/或有效结束地址是否满足N字节对齐;
在所述有效起始地址和/或所述有效结束地址不满足N字节对齐时,记录所述有效起始地址和/或所述有效结束地址,并基于所述有效起始地址和/或所述有效结束地址进行地址补位,以使所述DMA读请求的起始地址和结束地址均满足N字节对齐;
判断所述DMA读请求的长度是否大于最大读请求长度,若大于,则根据最大读请求长度将所述DMA读请求拆分为多个TLP请求包,且每个TLP请求包均不会跨越4KB边界;若小于,则判断所述DMA读请求是否跨4KB边界,若跨4K边界,则将所述读请求拆分成2个TLP请求包,否则将所述读请求作为一个TLP请求包。
3.根据权利要求1所述的基于FPGA的DMA读操作实现方法,其特征在于,根据所述排序处理位宽对各个TLP完成包进行排序处理,具体为:
根据每个TLP完成包的起始地址和结束地址计算所述TLP完成包的数据长度,判断所述数据长度是否为排序处理位宽的整数倍,若为整数倍,则进行排序处理;否则,等待其他TLP完成包进行数据拼接,以使所述数据长度为排序处理位宽的整数倍时再进行排序处理。
4.根据权利要求1所述的基于FPGA的DMA读操作实现方法,其特征在于:在将所述DMA读请求通过PCIE内核高速传输给主机,以供主机分别对接收到的TLP请求包进行处理形成对应的TLP完成包时,
首先确定所述FPGA生成的DMA读请求个数,若DMA读请求个数为N个,其中,N≥2,则按照预设的轮询规则轮询N个DMA读请求中的TLP请求包;
所述预设的轮询规则为:当前轮询过程中,分别先后收集每个DMA读请求中的一个TLP请求包,直至N个DMA读请求均被收集一个TLP请求包;间隔预设时间后,进行下一次轮询;
根据收集先后顺序为各个TLP请求包分配排序标签,并通过PCIE内核将携带有排序标签的TLP请求包高速传输给主机,以供主机分别对接收到的TLP请求包进行处理,形成对应的TLP完成包,每个所述TLP完成包均携带有请求者标识信息和排序标签;
根据各TLP完成包携带的请求者标识信息和排序标签将各个TLP完成包依次返回至对应的请求者。
5.根据权利要求4所述的基于FPGA的DMA读操作实现方法,其特征在于:在根据收集先后顺序为各个TLP请求包分配排序标签时,排序标签是依次连续递增的。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州信大捷安信息技术股份有限公司,未经郑州信大捷安信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110876348.7/1.html,转载请声明来源钻瓜专利网。