一种支持多协议DMA引擎的方法、系统及电子设备技术方案

技术编号:35176115 阅读:17 留言:0更新日期:2022-10-12 17:42
本发明专利技术提供了一种支持多协议DMA引擎的方法、系统及电子设备,该系统包括:引擎控制模块、描述符管理模块、数据管理模块、上下文暂存模块、接收解包模块、发送组包模块;多协议至少包括PCIe协议、ETH协议。本方案能够在不显著增加系统复杂性的情况下,将多种协议DMA过程中所需共性资源融合复用,从而降低整个系统中缓存资源消耗,提高DMA引擎的内聚性。提高DMA引擎的内聚性。提高DMA引擎的内聚性。

【技术实现步骤摘要】
一种支持多协议DMA引擎的方法、系统及电子设备


[0001]本专利技术涉及集成电路设计领域,特别涉及处理系统中,针对支持不同协议的DMA引擎相互融合的方法、系统及其相关的电子设备。

技术介绍

[0002]DMA(Direct Memory Access)意为直接地址访问,对应的芯片引擎通过获取本地或对端配置信息,并将其解析校验通过后,直接将本地内存中的用户空间与对端内存用户空间进行数据搬移。此过程无需内核与用户空间的数据拷贝,提高了带宽通量并降低了时延,适用于对CPU负载较为敏感的网络设备中。
[0003]目前传统芯片需要针对不同的协议开发出不同的DMA引擎,如PCIe协议中的DMA引擎,再如针对以太网协议中的IDMA/EDMA引擎。若芯片中需要支持多种不同的数据搬移过程,需要集成多种DMA引擎,对应的芯片物理资源也会消耗较多。单一协议DMA搬移过程完成后,缓存往往闲置,其利用率较为低效;而不同的协议同时进行数据搬移,其有效带宽受限于汇聚内存端口带宽,需要进行流量控制,系统中的总带宽也将产生浪费。
[0004]在处理系统中可能会出现内存中数据需要通过不同的协议传输,针对不同的协议类型需要在芯片中对应设计不同的DMA引擎,而不同的DMA引擎中可能出现部分共性资源如缓存等,这将会导致DMA引擎闲置时出现资源浪费的情况;同时不同的DMA引擎链接于片上互联网络之上,数据传输带宽分配问题也可能导致处理系统整体性能下降。

技术实现思路

[0005]针对现有技术中的不足,本专利技术提出将支持不同协议的DMA引擎相融合的方案,以节约芯片资源并高效分配带宽。具体而言,本专利技术公开了以下技术方案:一方面,本专利技术提供了一种支持多协议DMA引擎的系统,所述系统包括:引擎控制模块、描述符管理模块、数据管理模块、上下文暂存模块、接收解包模块、发送组包模块;所述多协议至少包括PCIe协议、ETH协议;引擎控制模块与描述符管理模块连接并进行数据交互;接收解包模块接收输入的报文,并分别与描述符管理模块、数据管理模块连接,并将数据发送给这两个模块;同时,接收解包模块还与上下文暂存模块连接,并进行数据交互;描述符管理模块与数据管理模块连接,并进行数据交互;描述符管理模块、数据管理模块将处理后数据发送给发送组包模块,发送组包模块形成输出报文;同时,发送组包模块与上下文暂存模块连接,并进行数据交互。
[0006]优选的,所述引擎控制模块接收软件配置数据,并将控制指令下发至描述符管理模块,所述控制指令包括初始信息,所述初始信息包括描述符内存地址。
[0007]优选的,所述描述符管理模块接收引擎控制模块下发的控制指令,并基于控制指令中的描述符内存地址,生成描述符读取请求,发送至发送组包模块;所述描述符包含支持的不同协议类型的数据发送描述符、接收描述符、数据长度、
数据的内存地址字段。
[0008]优选的,所述引擎控制模块监测描述符管理模块的运行、中止、故障状态,以及监测数据管理模块的数据缓存溢出信息;还用于更新描述符管理模块内部寄存器状态。
[0009]优选的,所述数据管理模块用于暂存负载字段,并根据协议报文类型分配存储资源。
[0010]优选的,所述数据管理模块中:对于PCIe的读完成报文,待数据量达到一预设阈值后,启动数据写报文,并获取描述符管理模块中的该报文对应的描述符,再经发送组包模块完成PCIe报文的组包发送,完成DMA过程;对于ETH的发送,先由发送组包模块请求内存中已写入的负载数据,再由数据管理模块完成该负载数据的读完成缓存,将读完成缓存的负载数据交由发送组包模块发送,完成ETH的发送过程;对于ETH的接收报文,先由数据管理模块查询是否有足够的缓存空间,若有足够的缓存空间,则将ETH接收报文缓存至该缓存空间,再请求描述符管理模块中该报文对应的描述符,然后由发送组包模块生成对应的PCIe报文,完成对ETH的接收报文的DMA数据转移过程。
[0011]优选的,对于ETH的接收报文,若没有足够的缓存空间,则ETH的接收报文对应的负载数据补写入缓存,丢弃整个接收包。
[0012]优选的,所述上下文暂存模块用于提供切包的断点位置记录功能,包括记录当前描述符执行时发送的数据负载的介数地址及对应的切包参数,所述切包参数包括最大包长、发送次数、总字节数据量。
[0013]优选的,所述接收解包模块接收到报文时,查询上下文管理模块,基于描述符中的报文指示字段,将报文中的负载数据传递值描述符管理模块或数据管理模块中;以及完成协议正确性检查及流量控制。
[0014]优选的,所述发送组包模块,用于基于描述符管理模块、数据管理模块的数据发送请求,基于不同的协议完成报文的发送;当存在报文切包情况时,将中间信息发送给上下文管理模块,所述中间信息包括切包参数,所述切包参数包括最大包长、发送次数、总字节数据量。
[0015]另一方面,本专利技术还提供了一种支持多协议DMA引擎的方法,该方法应用于如上所述的支持多协议DMA引擎的系统,该方法包括:S1、引擎控制模块接收配置数据,并基于配置数据形成控制指令,下发至描述符管理模块,控制指令包括初始信息,初始信息包括描述符内存地址;S2、包括组包发送过程和组包接收过程;S201、对于组包发送过程:对于PCIe报文,描述符管理模块基于控制指令中的描述符内存地址,生成描述符读取请求,发送至发送组包模块;所述发送组包模块结合内置协议完成报文的发送;对于ETH报文,由发送组包模块请求负载数据,由数据管理模块将负载数据读完成至缓存,再将缓存中的负载数据由发送组包模块进行发送;
S202、对于组包接收过程:对于PCIe报文,由接收解包模块结合描述符,将报文的负载数据发送至描述符管理模块或数据管理模块中;对于ETH报文,先由数据管理模块查询是否有足够的缓存空间,若有足够的缓存空间,则将ETH接收报文缓存至该缓存空间,再请求描述符管理模块中该报文对应的描述符,然后由发送组包模块生成对应的PCIe报文,完成对ETH的接收报文的DMA数据转移过程;S3、完成数据的DMA过程。
[0016]优选的,所述S2中,当报文中的负载数据需要切包时,通过上下文暂存模块提供切包的断点位置记录功能,包括记录当前描述符执行时发送的数据负载的介数地址及对应的切包参数,所述切包参数包括最大包长、发送次数、总字节数据量。
[0017]又一方面,本专利技术还提供了一种支持多协议DMA引擎的电子设备,所述电子设备包括处理器、存储器,所述处理器可调用所述存储器中存储的计算机指令,以执行如上所述的支持多协议DMA引擎的方法;或者,该电子设备可以基于处理器对存储器中的数据的调用,以实现搭载如上所述的支持多协议DMA引擎的系统。
[0018]与现有技术相比,本方案通过动态分派缓存(包括描述符缓存与数据缓存等)的方式将DMA引擎中缓存资源共享复用,避免单协议的DMA引擎若执行完成描述符后,出现缓存闲置的情况,提高了引擎内部缓存资源的利用率。同时,通过将多协议DMA传输过程融合至单一引擎中,使得与DM本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种支持多协议DMA引擎的系统,其特征在于,所述系统包括:引擎控制模块、描述符管理模块、数据管理模块、上下文暂存模块、接收解包模块、发送组包模块;所述多协议至少包括PCIe协议、ETH协议;引擎控制模块与描述符管理模块连接并进行数据交互;接收解包模块接收输入的报文,并分别与描述符管理模块、数据管理模块连接,并将数据发送给这两个模块;同时,接收解包模块还与上下文暂存模块连接,并进行数据交互;描述符管理模块与数据管理模块连接,并进行数据交互;描述符管理模块、数据管理模块将处理后数据发送给发送组包模块,发送组包模块形成输出报文;同时,发送组包模块与上下文暂存模块连接,并进行数据交互。2.根据权利要求1所述的系统,其特征在于,所述引擎控制模块接收配置数据,并将控制指令下发至描述符管理模块,所述控制指令包括初始信息,所述初始信息包括描述符内存地址。3.根据权利要求1所述的系统,其特征在于,所述描述符管理模块接收引擎控制模块下发的控制指令,并基于控制指令中的描述符内存地址,生成描述符读取请求,发送至发送组包模块;所述描述符包含支持的不同协议类型的数据发送描述符、接收描述符、数据长度、数据的内存地址字段。4.根据权利要求1所述的系统,其特征在于,所述数据管理模块用于暂存负载字段,并根据协议报文类型分配存储资源。5.根据权利要求4所述的系统,其特征在于,所述数据管理模块中:对于PCIe的读完成报文,待数据量达到一预设阈值后,启动数据写报文,并获取描述符管理模块中的该报文对应的描述符,再经发送组包模块完成PCIe报文的组包发送,完成DMA过程;对于ETH的发送,先由发送组包模块请求内存中已写入的负载数据,再由数据管理模块完成该负载数据的读完成缓存,将读完成缓存的负载数据交由发送组包模块发送,完成ETH的发送过程;对于ETH的接收报文,先由数据管理模块查询是否有足够的缓存空间,若有足够的缓存空间,则将ETH接收报文缓存至该缓存空间,再请求描述符管理模块中该报文对应的描述符,然后由发送组包模块生成对应的PCIe报文,完成对ETH的接收报文的DMA数据转移过程。6.根据权利要求1所述的系统,其特征在于,所述上下文暂存模块用于提供切包的断...

【专利技术属性】
技术研发人员:朱珂王盼徐庆阳钟丹谭力波陈德沅姜海斌李丹丹
申请(专利权)人:井芯微电子技术天津有限公司
类型:发明
国别省市:

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

1