从pcie加速子卡到主机的数据传输方法及装置的制造方法
【技术领域】
[0001]本发明涉及通讯领域,尤其是一种从PCIE加速子卡到主机的数据传输方法及装置。
【背景技术】
[0002]PCIE-1365加速子卡板载众核芯片TILE_Gx8036,是一款高性能的网络和计算平台,旨在释放嵌入式系统和服务器的性能和吞吐量。
[0003]其中,PCIE(PeripheralComponent Interconnect1n Express)是一种周边元件扩展接口。
[0004]板载多核芯片TILE-Gx8036是Tilera公司第三代64位处理器,有36个类MIPS核。Tilera公司创造性地设计了核之间的iMeshTM互联架构,提供了非常高的核间通信数据带宽,降低了核间通信延时,而且通过共享的Cache消除了核间互联的性能瓶颈,并降低了芯片功耗。
[0005]所述PCIE-1365加速子卡板是一种多核PCIE加速子卡,所述PCIE-1365加速子卡板拥有4个可配置为千兆或万兆的以太网光口(SFP/SFP+)及Crypto硬加速引擎,具有40Gbps网络数据I/O能力。可以支持12路1080P高清视频处理,支持3000路语音编解码处理。
[0006]所述PCIe-1365加速子卡板可安装于台式主机或机架式服务器,通过PCIE插槽供电;也可以配置为独立模式,不使用PCIE接口,通过6针电源接口供电进行独立操作。
[0007]数据从所述PCIE加速子卡传输到主机上,由于使用的是RingBuf (环形缓冲)机制,因此经过所述PCIE加速子卡的处理核处理后的数据均以数据包的格式存储在所述PCIE加速子卡的缓存上,而每个数据包的大小只有14字节-MTU个字节。所述MTU (MaximumTransmiss1n Unit)为以太网最大传输单元,为1500字节,而所述PCIE加速子卡的传输通道的带宽为固定的4096个字节,从而导致了所述PCIE加速子卡的传输通道的浪费,限制了所述PCIE加速子卡的数据传输性能。
【发明内容】
[0008]本发明的目的在于提供一种从PCIE加速子卡到主机的数据传输方法及装置,以解决PCIE加速子卡的传输通道的利用率低,以及所述PCIE加速子卡的数据传输性能低的冋题。
[0009]为了达到上述目的,本发明提供了一种从PCIE加速子卡到主机的数据传输方法,包括以下步骤:
[0010]数据经过PCIE加速子卡处理核的处理产生一个数据包;
[0011 ] 查看所述PCIE加速子卡上是否存储有一第一数据包组(如果所述PCIE加速子卡的缓存上没有存储所述第一数据包组,将所述数据包记录为一第二数据包组,并进行下一个数据包处理;如果所述PCIE加速子卡的缓存上存储有所述第一数据包组,计算所述数据包与所述第一数据包组的长度和;
[0012]将所述数据包与所述第一数据包组的长度和与所述PCIE加速子卡的传输通道带宽进行比较,如果所述数据包与所述第一数据包组的长度和大于所述PCIE加速子卡的传输通道带宽,则将所述第一数据包组传输到所述PCIE加速子卡的传输核,通过所述传输核将所述第一数据包组传输到主机上,同时将所述数据包记录为一第二数据包组,并进行下一个数据包处理;如果所述数据包与所述第一数据包组的长度和小于等于所述PCIE加速子卡的传输通道带宽,则将所述数据包并入到所述第一数据包组中,并进行下一个数据包处理。
[0013]优选的,在上述的从PCIE加速子卡到主机的数据传输方法中,所述第一数据包组和所述第二数据包组均包括数据包组头以及至少一个数据包。
[0014]优选的,在上述的从PCIE加速子卡到主机的数据传输方法中,所述数据包组头包括:所述第一数据包组或所述第二数据包组中包含的数据包的个数、所述第一数据包组或所述第二数据包组中包含的每个数据包的长度、以及所述第一数据组包或所述第二数据包组的长度。
[0015]优选的,在上述的从PCIE加速子卡到主机的数据传输方法中,将所述数据包记录为一第二数据包组的步骤包括:
[0016]所述第二数据包组中数据包的个数设置为I ;
[0017]所述第二数据包组的长度为所述数据包的长度与所述第二数据包组的数据包组头头的长度之和。
[0018]优选的,在上述的从PCIE加速子卡到主机的数据传输方法中,将所述数据包并入到所述第一数据包组中的步骤包括:
[0019]修改所述第一数据包组中数据包的个数;
[0020]修改所述第一数据包组的长度;
[0021]将所述数据包中的数据复制到所述第一数据包组中;
[0022]释放所述数据包所占用的所述PCIE加速子卡的缓存。
[0023]优选的,在上述的从PCIE加速子卡到主机的数据传输方法中,所述数据包的大小为14字节-以太网最大传输单元。
[0024]优选的,在上述的从PCIE加速子卡到主机的数据传输方法中,所述以太网最大传输单元为1500字节。
[0025]优选的,在上述的从PCIE加速子卡到主机的数据传输方法中,所述PCIE加速子卡的传输通道带宽为4096字节。
[0026]优选的,在上述的从PCIE加速子卡到主机的数据传输方法中,所述PCIE加速子卡通过PCIE接口与所述主机连接。
[0027]优选的,在上述的从PCIE加速子卡到主机的数据传输方法中,所述PCIE加速子卡基于操作系统进行,对所述PCIE加速子卡进行编程调试。
[0028]本发明还提供了一种从PCIE加速子卡到主机的数据传输装置,包括:
[0029]—控制处理模块;
[0030]一第一存储模块,用于存储经过PCIE加速子卡处理核处理后产生的一数据包;
[0031]一第二存储模块,用于存储一数据包组。
[0032]在本发明提供的从PCIE加速子卡到主机的数据传输方法及装置中,引入数据包组机制,使得所述数据包组的长度尽可能的接近所述PCIE加速子卡的传输通道带宽,使得所述PCIE加速子卡的传输通道能够得到充分利用,提高了所述PCIE加速子卡的传输效率,减少了所述PCIE加速子卡的缓存中存数的数据包的个数,提高了系统的稳定性。同时减少了所述PCIE加速子卡的转发核的转发数据包的数目,提高了所述PCIE加速子卡的转发核的转发能力。
【附图说明】
[0033]图1为本发明实施例中从PCIE加速子卡到主机的数据传输装置的结构图;
[0034]图2为本发明实施例中从PCIE加速子卡到主机的数据传输方法的流程图;
[0035]图中:101-控制处理模块;102_第一存储模块;102_第二存储模块。
【具体实施方式】
[0036]下面将结合示意图对本发明的【具体实施方式】进行更详细的描述。根据下列描述和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
[0037]本发明提供了一种从PCIE加速子卡到主机的数据传输方法及装置,其中,如图1所示,所述从PCIE加速子卡到主机的数据传输装置包括:一控制处理模块101 第一存储模块102,用于存储经过PCIE加速子卡处理核处理后产生的一数据包;一第二存储模块103,用于存储一数据包组。
[0038]具体的,其实现方法,即本发明所提供的从PCIE加速子卡到主机的数据传输方法,如图2所示,包括以下步骤:
[0039]S1:数据经过PCIE加速子卡处理核的处理产生一个数据包。
[0040]所述数据包存储在所述第一存储模块102上。
[0041]所述数据包的大小为14字节-以太网最大传输单元,所述以太网最大传输单元为1500字节。
[0042]S2:查看所述PCIE加速子卡上是否存储有一第一数据包组(如果所述PCIE加速子卡的缓存上没有存储所述第一数据包组,将所述数据包记录为一第二数据包组,并进行下一个数据包处理;如果所述PCIE加速子卡的缓存上存储有所述第一数据包组,计算所述数据包与所述第一数据包组的长度和。
[0043]所述控制处理模块101查看所述PCIE加速子卡的缓存上是否存储有一第一数据包组,即所述控制处理模块101查看所述第二存储模块102上是否存数一第一数据包组。
[0044]具体的,所述第一数据包组包括:数据包组头以及至少一个数据包。其中,所述数据包组头中包含对所述第一数据包组的描述,具体包括:所述第一数据包组中包含的数据包的个数、所述第一数据包组中包含的每个数据包的长度以及所述第一数据组包的长度。
[0045]所述第二数据包组包括:数据包组头以及至少一个数据包。其中,所述数据包组头中包含对所述第二数据包组的描述,具体包括:所述第二数据包组中包含的数据包的个数、所述第二数据包组中包含的每个数据包的长度以及所述第二数据组包的长度。
[0046]如果所述PCIE加速子卡的缓存上没有存储所述第一数据包组,也就是说所述第二存储模块102上为空,没有存储所述第一数据包组,则将所述数据包记录为一第二数据包组,并进行下一个数据包处理。
[0047]此时,所形成的所述
第二数据包组中所包含的数据包的个数为I个,所述第二数据包组的长度为所述数据包的长度与所述第二数据包组的数据包组头的长度之和。对于所述PCIE加速子卡的处理核所产生的所述下一个数据包来说,所述第二数据包组即为所述下一个数据包的处理过程中的第一数据包组。
[0048]如果所述PCIE加速子卡的缓存上存储有所述第一数据包组,即所述第二存储模块102上非空,存储的有所述第一数据包组,则所述控制处理模块101计算所述数据包与所述第一数据包组的长度之和,然后将二者之和与所述PCIE加速子卡的传输通道的带宽进行比较,以确定所述数据包是否要并入到所述第一数据包组中。
[0049]具体的,所述PCIE加速子卡的传输通道带宽为4096字节。
[0050]S3:将所述数据包与所述第一数据包组的长度和与所述PCIE加速子卡的传输通道带宽进行比较,如果所述数据包与所述第一数据包组的长度和大于所述PCIE加速子卡的传输通道带宽,则将所述第一数据包组传输到所述PCIE加速子卡的传输核,通过所述传输核将所述第一数据包组传输到主机上,同时将所述数据包记录为一第二数据包组,并进行下一个数据包处理;如果所述数据包与所述第一数据包组的长度和小于等于所述PCIE加速子卡的传输通道带宽,则将所述数据包并入到所述第一数据包组中,并进行下一个数据包处理。
[0051]具体的,如果所述数据包与所述第一数据包组的长度和大于所述PCIE加速子卡的传输通道带宽,即,如果所述数据包与所述第一数据包组的长度和大于4096字节,则将所述第一数据包组直接通过所述PCIE加速子卡的所述传输核传输到主机上,再将所述数据包记录为一第二数据包组,再进行下一个数据包处理。此时,所述第二数据包组中所包含的数据包的个数为I个,所述第二数据包组的长度为所述数据包的长度与所述第二数据包组的数据包组头的长度之和。
[0052]因为所述数据包的长度一般为14字节-1500字节,远小于所述PCIE加速子卡的传输通道带宽,4096字节,因此,在所述第二数据包组中只包含一个数据包时,所述第二数据包组的长度也远小于4096字节,即所述PCIE加速子卡的传输通道带宽,因此,对于所述下一个数据包来说,所述第二数据包组即为所述下一个数据包的处理过程中的第一数据包组。
[0053]如果所述数据包与所述第一数据包组的长度之和小于等于4096字节,则将所述数据包并入到所述第一数据包组中,再进行下一个数据包处理。
[0054]只有当所述第一数据包组的长度接近所述PCIE加速子卡的传输通道带宽时,才会通过所述PCIE加速子卡的传输核传输到所述主机上,从而降低了所述传输核的转发数据包的个数,提高了所述PCIE加速子卡的数据转发能力,也提高了所述PCIE加速子卡的传输效率。
[0055]进一步的,所述主机检测所收取的数据包存在波动,而导致速率下降时,所述PCIE加速子卡的转发核需要将所述数据包缓存起来,但是所述PCIE加速子卡缓存的数据包个数是有限的,当所述PCIE加速子卡缓存的数据包个数超过限制的个数时,则所述数据包会丢失。但当引入数据包组的方式时,所述PCIE加速子卡缓存的数据包组个数上限不变,由于所述数据包组中包含多个所述数据包,所以缓存的所述数据包个数增加,提高了所述PCIE加速子卡数据包转发的稳定性。
[0056]其中,将所述数据包并入到所述第一数据包组中的步骤包括:
[0057]修改所述第一数据包组中数据包的个数,即在原所述第一数据包组中数据包的个数的基础上加I。
[0058]修改所述第一数据包组的长度,将所述第一数据包组的长度修改为原所述第一数据包组的长度与所述数据包的长度之和。
[0059]将所述数据包中的数据复制到所述第一数据包组中,即将所述数据包中的数据复制到所述第一数据包组的尾部,使得所述数据包中的数据紧挨着原所述第一数据包组中最后一个数据包中的数据进行存储。
[0060]释放所述数据包所占用的所述PCIE加速子卡的缓存。
[0061]当主机收到所述PCIE加速子卡发送的第一数据包组后,根据所述第一数据包组中包含的数据包的个数以及每个数据包的长度,解析出所述第一数据包组中包含的每个数据包。
[0062]综上,在本发明实施例提供的从PCIE加速子卡到主机的数据传输方法及装置中,引入数据包组机制,使得所述数据包组的长度尽可能的接近所述PCIE加速子卡的传输通道带宽,使得所述PCIE加速子卡的传输通道能够得到充分利用,提高了所述PCIE加速子卡的传输效率,减少了所述PCIE加速子卡的缓存中存数的数据包的个数,提高了系统的稳定性。同时减少了所述PCIE加速子卡的转发核的转发数据包的数目,提高了所述PCIE加速子卡的转发核的转发能力。
[0063]上述仅为本发明的优选实施例而已,并不对本发明起到任何限制作用。任何所属技术领域的技术人员,在不脱离本发明的技术方案的范围内,对本发明揭露的技术方案和技术内容做任何形式的等同替换或修改等变动,均属未脱离本发明的技术方案的内容,仍属于本发明的保护范围之内。
【主权项】
1.一种从PCIE加速子卡到主机的数据传输方法,其特征在于,包括以下步骤: 数据经过PCIE加速子卡处理核的处理产生一个数据包; 查看所述PCIE加速子卡上是否存储有一第一数据包组,如果所述PCIE加速子卡的缓存上没有存储所述第一数据包组,将所述数据包记录为一第二数据包组,并进行下一个数据包处理;如果所述PCIE加速子卡的缓存上存储有所述第一数据包组,计算所述数据包与所述第一数据包组的长度和; 将所述数据包与所述第一数据包组的长度和与所述PCIE加速子卡的传输通道带宽进行比较,如果所述数据包与所述第一数据包组的长度和大于所述PCIE加速子卡的传输通道带宽,则将所述第一数据包组传输到所述PCIE加速子卡的传输核,通过所述传输核将所述第一数据包组传输到主机上,同时将所述数据包记录为一第二数据包组,并进行下一个数据包处理;如果所述数据包与所述第一数据包组的长度和小于等于所述PCIE加速子卡的传输通道带宽,则将所述数据包并入到所述第一数据包组中,并进行下一个数据包处理。2.如权利要求1所述的从PCIE加速子卡到主机的数据传输方法,其特征在于,所述第一数据包组和所述第二数据包组均包括数据包组头以及至少一个数据包。3.如权利要求2所述的从PCIE加速子卡到主机的数据传输方法,其特征在于,所述数据包组头包括:所述第一数据包组或所述第二数据包组中包含的数据包的个数、所述第一数据包组或所述第二数据包组中包含的每个数据包的长度、以及所述第一数据组包或所述第二数据包组的长度。4.如权利要求3所述的从PCIE加速子卡到主机的数据传输方法,其特征在于,将所述数据包记录为一第二数据包组的步骤包括: 所述第二数据包组中数据包的个数设置为I ; 所述第二数据包组的长度为所述数据包的长度与所述第二数据包组的数据包组头的长度之和。5.如权利要求3所述的从PCIE加速子卡到主机的数据传输方法,其特征在于,将所述数据包并入到所述第一数据包组中的步骤包括: 修改所述第一数据包组中数据包的个数; 修改所述第一数据包组的长度; 将所述数据包中的数据复制到所述第一数据包组中; 释放所述数据包所占用的所述PCIE加速子卡的缓存。6.如权利要求1所述的从PCIE加速子卡到主机的数据传输方法,其特征在于,所述数据包的大小为14字节-以太网最大传输单元。7.如权利要求6所述的从PCIE加速子卡到主机的数据传输方法,其特征在于,所述以太网最大传输单元为1500字节。8.如权利要求1所述的从PCIE加速子卡到主机的数据传输方法,其特征在于,所述PCIE加速子卡的传输通道带宽为4096字节。9.如权利要求1所述的从PCIE加速子卡到主机的数据传输方法,其特征在于,所述PCIE加速子卡通过PCIE接口与所述主机连接。10.如权利要求1所述的从PCIE加速子卡到主机的数据传输方法,其特征在于,所述PCIE加速子卡基于操作系统进行,对所述PCIE加速子卡进行编程调试。11.一种从PCIE加速子卡到主机的数据传输装置,其特征在于,包括:一控制处理模块;一第一存储模块,用于存储经过PCIE加速子卡处理核处理后产生的一数据包;一第二存储模块,用于存储一数据包组。
【专利摘要】本发明提供了一种从PCIE加速子卡到主机的数据传输方法及装置,其中,从PCIE加速子卡到主机的数据传输装置包括:一控制处理模块;一第一存储模块,用于存储经过PCIE加速子卡处理核处理后产生的一数据包;一第二存储模块,用于存储一数据包组。引入数据包组机制,使得所述数据包组的长度尽可能的接近所述PCIE加速子卡的传输通道带宽,使得所述PCIE加速子卡的传输通道能够得到充分利用,提高了所述PCIE加速子卡的传输效率,减少了所述PCIE加速子卡的缓存中存数的数据包的个数,提高了系统的稳定性。同时减少了所述PCIE加速子卡的转发核的转发数据包的数目,提高了所述PCIE加速子卡的转发核的转发能力。
【IPC分类】H04L12/861, H04L12/931
【公开号】CN104901904
【申请号】CN201510198967
【发明人】陶勇
【申请人】上海昭赫信息技术有限公司
【公开日】2015年9月9日
【申请日】2015年4月22日