[发明专利]一种基于DMA的数据处理系统及方法有效
申请号: | 202010051355.9 | 申请日: | 2020-01-17 |
公开(公告)号: | CN111221759B | 公开(公告)日: | 2021-05-28 |
发明(设计)人: | 莫小妮;詹晋川;袁结全 | 申请(专利权)人: | 深圳市风云实业有限公司 |
主分类号: | G06F13/28 | 分类号: | G06F13/28 |
代理公司: | 成都正华专利代理事务所(普通合伙) 51229 | 代理人: | 李蕊 |
地址: | 518057 广东省深圳市福田区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 dma 数据处理系统 方法 | ||
本发明提供了一种基于DMA的数据处理系统,所述系统包括FPGA,以及与所述FPGA进行报文交互的CPU,所述FPGA与所述CPU之间通过基于PCIE协议的DMA处理子系统进行报文交互;所述FPGA用于对报文进行预处理,并通过PCIE接口将预处理后的报文通过DMA子系统存储于CPU的存储单元;所述FPGA还用于通过DMA子系统读取存储单元中的报文;所述CPU用于根据不同线程处理对应不同的报文。基于上述系统,本发明还公开了一种基于DMA的数据处理方法。本发明通过以上设计提高FPGA与CPU之间的数据交互速率,支持灵活可配置的报文处理流程。
技术领域
本发明属于计算机应用技术领域,尤其涉及一种基于DMA的数据处理系统及方法。
背景技术
随着技术的发展,在通信技术领域,高速网络的要求越来越高,PCIE接口具有较大的数据传送带宽,同时使用广泛。在现有的DMA报文处理机制中,需要采用轮询处理的方式,提高了功耗,也对数据传输性能有所影响。
在本发明中,主要介绍FPGA与CPU之间,基于PCIE协议的DMA数据处理方法,采用描述符加指针管理的方式,有效提高FPGA与CPU之间的数据传输。同时,由于CPU都是多线程工作,从而引入了队列的概念,使得CPU一个线程可以独立处理一个队列的报文。并且本发明考虑到在采用指针形式判别队列的空满状态时,如果指针相等,即可表示满状态也可表示空状态,在判别是需要额外耗费逻辑资源,因此,本发明将队列预留一个位置,简化了判别条件,也不会影响性能。
发明内容
针对现有技术中的上述不足,本发明提供的一种基于DMA的数据处理系统及方法,提高了FPGA与CPU之间的数据交互速率,实现了支持灵活可配置的报文处理流程。
为了达到以上目的,本发明采用的技术方案为:
本方案提供一种基于DMA的数据处理系统,所述系统包括FPGA,以及与所述FPGA进行报文交互的CPU,所述FPGA与所述CPU之间通过基于PCIE协议的DMA处理子系统进行报文交互;
所述FPGA用于对报文进行预处理,并通过PCIE接口将预处理后的报文通过DMA处理子系统存储于CPU的存储单元;所述FPGA还用于通过DMA子系统读取存储单元中的报文;
所述CPU用于根据不同线程处理对应不同的报文。
进一步地,所述对报文进行预处理,其具体为:
对报文进行hash计算,得到报文的hash值,并根据所述hash值去查表,获取报文需写入的队列信息,其中,所述报文的队列信息与CPU的线程号以及DMA的队列号相对应。
再进一步地,所述CPU的存储单元包括:
RX描述符存储区,用于根据对读、写指针的管理,决定是否读取描述符,并通过RX描述符信息写入对应的报文;
TX描述符存储区,用于根据对读、写指针的管理,决定是否读取描述符,并通过TX描述符信息读取对应的报文;
报文存储区,用于存储完整报文。
再进一步地,所述RX描述符存储区和TX描述符存储区均采用连续地址的方式对描述符进行读取;
所述RX描述符存储区和TX描述符存储区中均包括报文的长度pkt_len、报文是否为有效信号val以及对应的报文块开始地址array_addr。
再进一步地,所述DMA处理子系统包括:
队列选择模块,用于利用CPU自由配置队列使能,并将预处理后报文得到的队列写信息写入至配置后对应的队列中,并将报文需要写入的队列信息发送至接收描述符读取模块;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市风云实业有限公司,未经深圳市风云实业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010051355.9/2.html,转载请声明来源钻瓜专利网。