一种智能网卡快速DMA设计方法、系统、设备及终端技术方案

技术编号:32115907 阅读:35 留言:0更新日期:2022-01-29 19:00
本发明专利技术属于智能网卡技术领域,公开了一种智能网卡快速DMA设计方法、系统、设备及终端,所述智能网卡快速DMA,包括H2CDoorBell寄存器,H2C流控调度,H2C描述符引擎,H2CCMPT引擎,C2HDoorBell寄存器,C2H流控调度,C2H描述符缓存对列,C2H描述符引擎,C2HCMPT引擎,中断处理模块。本发明专利技术的多种描述符的适应场景及处理流程,使网卡的适应场景更加丰富,有效解决传统QDMA短包效率低等问题,为大数量设备提供有效可行的方案;实现方式更定制化,为TOE业务提供较好服务;建立Session和队列的有效关联,为智能网卡间的Session会话提供良好的快速DMA服务。务。务。

【技术实现步骤摘要】
一种智能网卡快速DMA设计方法、系统、设备及终端


[0001]本专利技术属于智能网卡
,尤其涉及一种智能网卡快速DMA设计方法、系统、设备及终端。

技术介绍

[0002]目前,随着5G通信、物联网、云计算、大数据等技术的广泛兴起,数据流量爆炸式增长,虽然CPU的性能也在不断的发展和提高,但仍然成为大数据处理的瓶颈,TOE(TCP Offload Engine)作为最有效的解决方案之一已经成为被研究的热点,但是目前TOE的主要应用场景还仅限于处理大型数据块的服务器,比如:存储备份、检索系统及企业数据库均使用大型数据有效负载,这些特定的场景决定了智能网卡更偏向于定制型网卡,这就意味着普通的DMA不一定能适合智能网卡。
[0003]QDMA作为更高性能、更适合大块数据传输、支持多队列的DMA无疑是最适合智能网卡的,但智能网卡为了适配传统网卡,它支持TOE和Bypass两种模式,相应的提供了这两类描述符,保证完全兼容普通网卡的场景,并且为了提高DMA处理短包的性能,在发送侧的两种模式下又添加了一种专门为协议短帧服务的描述符;这种混合型的描本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种智能网卡快速DMA设计方法,其特征在于,所述智能网卡快速DMA设计方法包括以下步骤:步骤一,通过H2C DoorBell寄存器维护H2C的Doorbell寄存器,为H2C的流控和调度提供相关信息;通过H2C流控调度对H2C的队列按照权重进行调度,根据板上的Credit信息对描述符进行流量控制;步骤二,通过H2C描述符引擎根据调度结果往HOST侧获取描述符,将描述符分类存储,描述符引擎对描述符进行解析并从HOST侧搬取数据传递给TOE_RX;步骤三,通过H2C CMPT引擎根据描述符类型以及TOE_RX侧反馈回来的状态组装成对应的完成报文写回到HOST侧的CMPT队列里;步骤四,通过C2H流控调度对C2H的队列按照权重以及描述符引擎的进行状况进行调度,根据板上的Credit信息对描述符进行流量控制;步骤五,通过C2H DoorBell寄存器维护C2H的Doorbell寄存器,为C2H的流控和调度提供相关信息;步骤六,通过C2H描述符缓存对列对预取下来的描述符根据队列号进行缓存,并且给出相应的状态信息用于下级处理;步骤七,通过C2H描述符引擎根据队列状态以及本地TOE的数据情况从队列中获取并解析描述符,将TOE_TX侧的数据搬移至HOST侧;步骤八,通过C2H CMPT引擎根据本地描述符使用情况组装完成报文,并发送给HOST侧对应的队列里;步骤九,当C2H和H2C的特定CQ完成后以及异常状态发生时,通过中断处理模块组装特定的MSIx报文上传至HOST。2.如权利要求1所述的智能网卡快速DMA设计方法,其特征在于,所述H2C侧的数据处理流程,包括:(1)HOST通过配置H2C侧Doorbell,将描述符信息更新至硬件板卡;(2)流控调度选择相应队列的描述符进行获取;(3)通过Doorbell寄存器给出的相关信息,通过DMA引擎经过长度及4K边界等处理向AXI Slave发送读申请;(4)获取到描述后,首先对描述度进行分类识别,根据描述符中的OPCODE将对应的类型传入不同的描述符引擎;(5)如果是TOE数据描述符,则根据描述符中的地址和长度通过DMA引擎经过长度及4K边界等处理向AXI Slave发送读数据申请,将返回数据传输至TOE,并且判断本次描述符的LAST位是否为1;(6)如果LAST位为0则继续获取同一Session的描述符,直至LAST为1,过程中重复执行步骤(5);(7)如果LAST位为1则等待TOE反馈回的状态,TOE上面相应缓存空间以及执行结果的反馈,根据信息组装完成报文;(8)将组装好的完成报文通过DMA引擎经过长度及4K边界等处理向AXI Slave发送写数据请求,将完成报文写入对应的CMPT队列,同时更新CQ的Doorbell;(9)组装相应向量号的MSIx中断上传;
(10)如果是TOE命令描述符,则描述符中携带的就是本次将要传输的数据,所以直接将信息载荷发送至TOE,等待TOE的反馈状态,TOE上相应命令的缓存空间以及执行结果,根据信息组装完成报文;(11)同样的执行步骤(8)和步骤(9),完成本次描述符的执行;(12)如果是Bypass数据描述符,那本次执行的数据一定是独立的且透传过TOE的,故根据描述符中的地址和长度通过DMA引擎经过长度及4K边界等处理向AXI Slave发送读数据申请,将返回数据传输至TOE;(13)DMA自己组装完成报文,包括本次描述符的执行结果;(14)同样执行步骤(8)和步骤(9),完成本次描述符的执行;(15)如果是Bypass命令描述符,则描述符中携带的是本次想要Bypass给TOE的命令,故直接将信息载荷发送至TOE,并且自己组装完成报文;(16)同样的执行步骤(8)和步骤(9),完成本次描述符的执行。3.如权利要求1所述的智能网卡快速DMA设计方法,其特征在于,所述C2H侧的数据处理流程,包括:(1)HOST通过配置C2H侧Doorbell,将描述符信息更新至硬件板卡;(2)流控调度选择相应队列的描述符进行预取;(3)通过Doorbell寄存器给出的相关信息,通过DMA引擎经过长度及4K边界等处理向AXI Slave发送读申请;(4)将收到的描述符信息按照队列存进相应的缓存,并实时更新缓存信息;(5)如果是TOE数据描述符,则对各个队列的描述度进行提取及预解析;(6)当TOE有数据发送至DMA时,根据对应的预解析的描述符对数据进行搬移,如果没有对应的描述度则主动去申请;(7)由于有多个数据共用一条描述符或者一个数据用多条描述符的情况,所以如果是一个数据占用多条描述符,则对最后一个描述符的空间使用情况进行记录,如果是多条数据共用一个描述符,则对描述符的使用情况进行计时,一旦超时便提前结束本次传输,避免描述符过长时间不会被使用完毕;(8)将数据按照描述符中的信息通过DMA引擎经过长度及4K边界等处理向AXI Slave发送写数据请求,将数据写到对应的地址;(9)根据描述符空间使用情况以及是否超时等信息组装完成报文,将组装好的完成报文通过DMA引擎经过长度及4K边界等处理向AXI Slave发送写数据请求,将完成报文写入对应的CMPT队列,同时更新CQ的Doorbell;(10)组装相应向量号的MSIx中断上传;(11)如果是Bypass数据描述符,则不需要解析描述符;(12)当TOE有Bypass类型数据发送至DMA时,向缓存区中提取相应队列的描述度即可,Bypass类型数据不存在描述符共用或多用的情况,所以完全是数据和描述符是一对一的关系;(13)将数据按照描述符中的信息通过DMA引擎经过长度及4K边界等处理向AXI Slave发送写数据请求,将数据写到对应的地址;(14)根据描述符空间使用情况等信息组装完成报文,将组装好的完成报文通过DMA引
擎经过长度以及4K边界等处理向AXI Slave发送写数据请求,将完成报文写入对应的CMPT队列,同时更新CQ的Doorbell;(15)同样执行步骤(10)完成本次传输。4.一种应用如权利要求1~3任意一项所述的智能网卡快速DMA设计方法设计得到的智能网卡快速DMA,其特征在于,所述智能网卡快速DMA支持混合描述符,在H2C方向包括TOE数据描述符、Bypass数据描述符、直接携带短包协议数据的TOE命令描述符以及Bypass命令描述符四种描述符;在C2H方向包括TOE数据描述符以及Bypass数据描述符两种描述符;C2H和H2C方向均包含各自的完成描述符;整个系统包含八种描述符;在H2C方向每个Session与唯一的队列绑定且嵌在描述符命令中,C2H方向每个S...

【专利技术属性】
技术研发人员:潘伟涛王浩邱智亮殷建飞熊子豪
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:

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

1