数据处理的方法、网卡和服务器技术

技术编号:25553538 阅读:36 留言:0更新日期:2020-09-08 18:54
本申请公开了一种数据处理的方法、网卡和服务器,该方法包括:网卡接收到第i个PCIe报文之后,将第j段指令存储至第一存储区域的第j个存储单元。当第一SQE的n段指令全部存储至第一存储区域时,网卡根据第一存储区域中n个存储单元的指令获取第一SQE,以及第一SQE归属的队列对QP的标识和第一SQE在QP的位置标识;并根据第一SQE归属的QP的标识和第一SQE在QP的位置标识执行数据处理,由此解决传统的SQE保序处理过程中所造成的处理效率低、时延高的问题。

【技术实现步骤摘要】
数据处理的方法、网卡和服务器
本申请涉及计算机
,尤其涉及数据处理的方法、网卡和服务器。
技术介绍
在远程直接数据存取(remotedirectmemoryaccess,RDMA)技术中,发送端服务器的网卡(networkinterfacecard,NIC)可以先从缓存中获取发送队列条目(sentrequestentry,SQE),再根据SQE从内存中获取SQE对应的数据,向接收端服务器发送所述数据。在发送端服务器的网卡获取SQE之前,发送端服务器的处理器先将SQE划分为多个分段,并将所述SQE的所有分段存储到缓存中。若SQE的长度大于预设阈值,处理器可以采用门铃机制通知网卡处理SQE。例如,网卡采用直接内存存取技术(directmemoryaccess,DMA)从缓存中获取SQE的所有分段。若SQE的长度小于或等于预设阈值,处理器将存储到缓存中的SQE的所有分段发送给网卡时,可能出现乱序。为了解决乱序问题,传统技术中处理器划分多个分段过程中,按照分块顺序,每获取一个分段指令下发到处理器内部的缓存,再通过高速通用串行总线(PeripheralComponentInterconnectexpress,PCIe)报文将该分段指令发送给网卡,然后,处理器给缓存发送一个PCIeBarrier指令,清空缓存中已发送给网卡的该分段指令。以此类推,处理器按顺序再向缓存下发下一个分段指令。从而,通过PCIeBarrier的函数,保证SQE的分段指令之间的顺序。上述方法虽然克服了SQE的所有分段之间的乱序问题,但是又会造成PCIe带宽的浪费。而且,上述处理过程中,处理器需要等待前一个分段指令成功发送给网卡,才会通过Barrier函数清理缓存,整个数据传输过程是串行的,降低了处理器和网卡之间数据传输的速率,进而增加了整个数据处理过程处理时延,影响了系统的数据处理的效率。
技术实现思路
本申请提供的数据处理的方法、网卡及服务器,解决了传统的SQE保序处理过程中技术方法所造成的系统数据处理效率低,时延高的问题。第一方面,本申请提供了一种数据处理方法,该方法可应用于网卡,或者该方法可应用于支持网卡实现该方法的通信装置,例如该通信装置包括芯片系统,该方法可以包括:接收到第i个PCIe报文之后,将第i个PCIe报文包括的第j段指令存储至第一存储区域的第j个存储单元。其中,第一SQE按照预置大小划分为n段,n为整数,n大于或等于1。第i个PCIe报文还包括第一地址段,第一地址段用于指示第j段指令在第一SQE中分段位置。i为整数,i∈[1,n],j为整数,j∈[1,n]。第一存储区域为网卡中用于存储第一SQE的存储区域,第一存储区域包括m个存储单元,每个存储单元用于存储第一SQE的一段指令,m为整数,n≤m。该技术方案,是将第一SQE的多个分段指令的保序操作完全卸载至发送端服务器的网卡内部完成,发送端服务器的处理器不需要进行第一SQE的多个分段指令的保序操作,可以一次性下发第一SQE的多个分段指令。有效地提高了PCIe带宽的利用率,并提高了处理器的运行速度,降低了数据处理过程的时延,提升了整个通信系统的数据传输效率。进一步的,当第一SQE的n段指令全部存储至第一存储区域时,可以根据第一存储区域中n个存储单元的指令获取第一SQE,以及第一SQE归属的队列对QP的标识和第一SQE在QP的位置标识,并根据第一SQE归属的QP的标识和第一SQE在QP的位置标识执行数据处理。在一种可能的实现方式中,当i=1时,在所述网卡将所述第j段指令存储至第一存储区域的第j个存储单元之前,该方法还可以包括:判断第一地址段是否是第一存储区域所在的存储空间的地址范围内的地址;若第一地址段是第一存储区域所在的存储空间的地址范围内的地址,确定第j段指令为blueframe的数据,将第1个PCIe报文包括的第j段指令存储至第一存储区域的第j个存储单元;若第一地址段不是第一存储区域所在的存储空间的地址范围内的地址,确定第j段指令不是blueframe的数据,根据非blueframe的方法获取第一SQE。在一种可能的实现方式中,该方法还可以包括:当j=1时,在所述网卡将所述第j段指令存储至第一存储区域的第j个存储单元之前,获取第1段指令包括的第一SQE的总长度,比较第一SQE的总长度和预设阈值;若第一SQE的总长度小于或等于预设阈值,确定第一SQE的第1段指令为blueframe的数据,将第1个PCIe报文包括的第1段指令存储至第一存储区域的第1个存储单元;若第一SQE的总长度大于预设阈值,确定第一SQE的第1段指令不是blueframe的数据,根据非blueframe的方法获取第一SQE。在一种可能的实现方式中,在将第j段指令存储至第一存储区域的第j个存储单元之后,该方法还可以包括:判断第一SQE是否接收完成;若第一SQE接收完成,生成结束符,若第一SQE未接收完成,继续接收。例如,接收第i+1个PCIe报文,将第i+1个PCIe报文包括的第k段指令存储至第一存储区域的第k个存储单元。第i+1个PCIe报文还包括第二地址段,第二地址段用于指示第k段指令在第一SQE中分段位置,第k段指令为接收到的第一SQE中的分段指令之外的其他分段指令中的任意一个分段指令,k为整数。可选地,判断第一SQE是否接收完成,包括:判断累计值是否等于第一SQE的总长度,若累计值等于第一SQE的总长度,确定第一SQE接收完成,若累计值不等于第一SQE的总长度,确定第一SQE未接收完成。累计值用于指示已接收到的第一SQE的分段指令的长度,累计值的初始值可以为0。在一种可能的实现方式中,网卡根据第一SQE归属的QP的标识和第一SQE在QP的位置标识执行数据处理,包括:根据第一SQE归属的QP的标识和第一SQE在QP的位置标识确定存储第一SQE的第一存储区域,然后,从第一存储区域的起始地址开始,依次读取第一SQE的n个分段指令,并根据第一SQE的n个分段指令获取并发送第一SQE对应的数据。在一种可能的实现方式中,若第一SQE的总长度小于或等于预设阈值,该方法还可以包括:获取第1段指令包括的第一SQE归属的QP的标识和第一SQE在QP的位置标识,建立第一SQE归属的QP的标识、第一SQE在QP的位置标识和第一存储区域的标识间的对应关系,以便于当第一SQE的n段指令全部存储至第一存储区域时,根据第一SQE归属的QP的标识、第一SQE在QP的位置标识和第一存储区域的标识间的对应关系获取第一SQE。在一种可能的实现方式中,当i=1时,即接收到第1个PCIe报文之后,该方法还可以包括:为第一SQE分配第一存储区域。上述第一方面或上述第一方面的任一种可能的实现方式的执行主体可以是发送端服务器的网卡。其中,发送端服务器是指用于发送数据的服务器。对于一个服务器来说,当该服务器用于发送数据时,该服务器被称为是发送端服务器,当该服务器用于接收数据时,该服务器被称为是接收端服务器。第二方面,本申请提供了一种数据处理装置,所述装置包括用于执行第一本文档来自技高网
...

【技术保护点】
1.一种数据处理的方法,其特征在于,包括:/n网卡接收第i个外围部件互连标准PCIe报文,所述第i个PCIe报文包括第一发送队列条目SQE的第j段指令和第一地址段,所述第一地址段用于指示所述第j段指令在所述第一SQE中分段位置,其中,i为整数,i∈[1,n],j为整数,j∈[1,n],所述第一SQE按照预置大小划分为n段,n为整数,n大于或等于1;/n所述网卡将所述第j段指令存储至第一存储区域的第j个存储单元,其中,所述第一存储区域为所述网卡中用于存储所述第一SQE的存储区域,所述第一存储区域包括m个存储单元,每个存储单元用于存储所述第一SQE的一段指令,m为整数,n≤m;/n当所述第一SQE的n段指令全部存储至所述第一存储区域时,所述网卡根据所述第一存储区域中n个存储单元的指令获取所述第一SQE,以及所述第一SQE归属的队列对QP的标识和所述第一SQE在所述QP的位置标识;/n所述网卡根据所述第一SQE归属的QP的标识和所述第一SQE在所述QP的位置标识执行数据处理。/n

【技术特征摘要】
1.一种数据处理的方法,其特征在于,包括:
网卡接收第i个外围部件互连标准PCIe报文,所述第i个PCIe报文包括第一发送队列条目SQE的第j段指令和第一地址段,所述第一地址段用于指示所述第j段指令在所述第一SQE中分段位置,其中,i为整数,i∈[1,n],j为整数,j∈[1,n],所述第一SQE按照预置大小划分为n段,n为整数,n大于或等于1;
所述网卡将所述第j段指令存储至第一存储区域的第j个存储单元,其中,所述第一存储区域为所述网卡中用于存储所述第一SQE的存储区域,所述第一存储区域包括m个存储单元,每个存储单元用于存储所述第一SQE的一段指令,m为整数,n≤m;
当所述第一SQE的n段指令全部存储至所述第一存储区域时,所述网卡根据所述第一存储区域中n个存储单元的指令获取所述第一SQE,以及所述第一SQE归属的队列对QP的标识和所述第一SQE在所述QP的位置标识;
所述网卡根据所述第一SQE归属的QP的标识和所述第一SQE在所述QP的位置标识执行数据处理。


2.根据权利要求1所述的方法,其特征在于,当i=1时,在所述网卡将所述第j段指令存储至第一存储区域的第j个存储单元之前,所述方法还包括:
所述网卡判断所述第一地址段是否是所述第一存储区域所在的存储空间的地址范围内的地址;
若所述第一地址段是所述第一存储区域所在的存储空间的地址范围内的地址,所述网卡确定所述第j段指令为blueframe的数据;
若所述第一地址段不是所述第一存储区域所在的存储空间的地址范围内的地址,所述网卡确定所述第j段指令不是blueframe的数据。


3.根据权利要求1所述的方法,其特征在于,当j=1时,在所述网卡接收第i个外围部件互连标准PCIe报文之后,所述方法还包括:
所述网卡获取所述第一SQE的总长度,第1段指令包括所述第一SQE的总长度;
所述网卡比较所述第一SQE的总长度和预设阈值;
若所述第一SQE的总长度小于或等于所述预设阈值,所述网卡确定所述第一SQE的第1段指令为blueframe的数据;
若所述第一SQE的总长度大于所述预设阈值,所述网卡确定所述第一SQE的第1段指令不是blueframe的数据。


4.根据权利要求3所述的方法,其特征在于,在所述网卡将所述第j段指令存储至第一存储区域的第j个存储单元之后,所述方法还包括:
所述网卡判断所述第一SQE是否接收完成;
若所述第一SQE接收完成,生成结束符。


5.根据权利要求3-4中任一项所述的方法,其特征在于,若所述第一SQE的总长度小于或等于所述预设阈值,所述方法还包括:
所述网卡获取所述第一SQE归属的QP的标识和所述第一SQE在所述QP的位置标识,所述第1段指令包括所述第一SQE归属的QP的标识和所述第一SQE在所述QP的位置标识;
所述网卡建立所述第一SQE归属的QP的标识、所述第一SQE在所述QP的位置标识和所述第一存储区域的标识间的对应关系。


6.根据权利要求5所述的方法,其特征在于,所述网卡根据所述第一SQE归属的QP的标识和所述第一SQE在所述QP的位置标识执行数据处理,包括:
所述网卡根据所述第一SQE归属的QP的标识和所述第一SQE在所述QP的位置标识确定存储所述第一SQE的第一存储区域;
从所述第一存储区域的起始地址开始,依次读取所述第一SQE的n个分段指令;
根据所述第一SQE的n个分段指令获取并发送所述第一SQE对应的数据。


7.根据权利要求6所述的方法,其特征在于,所述网卡根据所述第一SQE归属的QP的标识和所述第一SQE在所述QP的位置标识确定存储所述第一SQE的第一存储区域,包括:
根据所述第一SQE归属的QP的标识、所述第一SQE在所述QP的位置标识和所述第一存储区域的标识间的对应关系确定存储所述第一SQE的第一存储区域。


8.根据权利要求1-7中任一项所述的方法,其特征在于,当i=1时,在所述网卡将所述第j段指令存储至第一存储区域的第j个存储单元之前,所述方法还包括:<...

【专利技术属性】
技术研发人员:陈天翔林伟彬侯新宇
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1