[发明专利]一种基于DMA的数据处理系统及方法有效
申请号: | 202010051355.9 | 申请日: | 2020-01-17 |
公开(公告)号: | CN111221759B | 公开(公告)日: | 2021-05-28 |
发明(设计)人: | 莫小妮;詹晋川;袁结全 | 申请(专利权)人: | 深圳市风云实业有限公司 |
主分类号: | G06F13/28 | 分类号: | G06F13/28 |
代理公司: | 成都正华专利代理事务所(普通合伙) 51229 | 代理人: | 李蕊 |
地址: | 518057 广东省深圳市福田区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 dma 数据处理系统 方法 | ||
1.一种基于DMA的数据处理系统,其特征在于,所述系统包括FPGA,以及与所述FPGA进行报文交互的CPU,所述FPGA与所述CPU之间通过基于PCIE协议的DMA处理子系统进行报文交互;
所述FPGA用于对报文进行预处理,并通过PCIE接口将预处理后的报文通过DMA处理子系统存储于CPU的存储单元;所述FPGA还用于通过DMA子系统读取存储单元中的报文;
所述CPU用于根据不同线程处理对应不同的报文;
所述DMA处理子系统包括:
队列选择模块,用于利用CPU自由配置队列使能,并将预处理后报文得到的队列写信息写入至配置后对应的队列中,并将报文需要写入的队列信息发送至接收描述符读取模块;
接收指针管理模块,用于分别通过对RX读、写指针和TX读、写指针的管理指示当前描述符是否可用,并获取对应描述符的位置,并将其描述符的信息发送至接收描述符读取模块;
所述接收描述符读取模块,用于根据描述符的位置信息及队列编号信息DMA的方式读取RX描述符,根据CPU返回的RX描述符信息,提取出报文块的开始地址信息,将开始地址信息发送给报文发送及接收描述符回写模块;
所述报文发送及接收描述符回写模块,用于根据报文块的开始地址信息,并以DMA的方式把报文写入对应的位置,同时利用回写描述符将对应的val置为1,写入报文的长度信息以及指示出对应报文块内是否有数据,并由CPU根据val位去读取报文,以及根据pkt_len信息获取完整报文,其中,pkt_len表示报文长度,val表示报文是否为有效信号,当val为1时表示对应的报文块内写有数据,当val为0时表示对应的报文块的空闲状态;
发送指针管理模块,用于管理发送队列TX读指针,并根据所述TX读写指针确定是否能获取发送描述符模块内的描述符信息;
发送描述符读取模块,用于启动DMA读取TX描述符信息,并将获取到的报文块开始地址以及报文长度信息传递至报文读取及发送描述符回写模块;
报文读取及发送描述符回写模块,用于读取发送描述符读取模块发送的报文,并回写描述符val=0,指示出对应的报文块的空闲状态,并通过TX读指针将状态信息传递至发送指针管理模块;
DMA发送调度模块,用于将对应的DMA读、写操作进行合并,并通过PCIE接口传递至CPU;
DMA接收分发模块,用于通过PCIE接口获取CPU的读取信息,并将所述读取信息分发至上述各模块中。
2.根据权利要求1所述的基于DMA的数据处理系统,其特征在于,所述对报文进行预处理,其具体为:
对报文进行hash计算,得到报文的hash值,并根据所述hash值去查表,获取报文需写入的队列信息,其中,所述报文的队列信息与CPU的线程号以及DMA的队列号相对应。
3.根据权利要求1所述的基于DMA的数据处理系统,其特征在于,所述CPU的存储单元包括:
RX描述符存储区,用于根据对读、写指针的管理,决定是否读取描述符,并通过RX描述符信息写入对应的报文;
TX描述符存储区,用于根据对读、写指针的管理,决定是否读取描述符,并通过TX描述符信息读取对应的报文;
报文存储区,用于存储完整报文。
4.根据权利要求3所述的基于DMA的数据处理系统,其特征在于,所述RX描述符存储区和TX描述符存储区均采用连续地址的方式对描述符进行读取;
所述RX描述符存储区和TX描述符存储区中均包括报文的长度pkt_len、报文是否为有效信号val以及对应的报文块开始地址array_addr。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市风云实业有限公司,未经深圳市风云实业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010051355.9/1.html,转载请声明来源钻瓜专利网。