CN115529275A - 一种报文处理***及方法 - Google Patents
一种报文处理***及方法 Download PDFInfo
- Publication number
- CN115529275A CN115529275A CN202211497197.5A CN202211497197A CN115529275A CN 115529275 A CN115529275 A CN 115529275A CN 202211497197 A CN202211497197 A CN 202211497197A CN 115529275 A CN115529275 A CN 115529275A
- Authority
- CN
- China
- Prior art keywords
- message
- dra
- submodule
- module
- sending
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种报文处理***,包括:报文预处理模块、处理器模块和DRA模块;报文预处理模块和处理器模块通过DRA模块连接。该报文处理***通过设置报文预处理模块对网络报文进行预处理,通过设置DRA模块实现了预处理后的网络报文与处理器模块之间直接进行数据交换,可以有效避免现有网络报文从网络端口依次经过内存、Cache、寄存的数据传输时延,从而降低网络报文的传输时延,进而降低时延敏感应用流量的整体传输时延。本发明还公开了一种报文处理方法,该方法与报文处理***具有相同的有益效果。
Description
技术领域
本发明涉及数据通信技术领域,特别是涉及一种报文处理***及方法。
背景技术
随着5G、物联网、云计算的发展和行业数字化进程的深入,新型网络应用不断涌现并得到蓬勃发展,例如虚拟现实、自动驾驶、远程医疗、16K视频等。这些应用不仅带来互联网流量的***式增长,同时对传输时延(latency)提出更高的需求。例如,远程机器人手术需要保证1~10ms的时延保证,高级驾驶辅助***(ADAS, advanced driving assistancesystem)需要100~280μs的低时延以确保快速响应不断变化的道路状况,还有用于游戏和娱乐的增强现实(AR, augmented reality)和虚拟现实(VR, virtual reality)需要高带宽和极低时延的视频传输,以避免视频和音频中的抖动对用户体验的严重影响。
现有基于中央处理器(CPU, central processing unit)与智能网卡的网络设备虽然具有极好的可编程性,但其无法满足极低处理时延的需求。这是因为CPU处理数据报文需要经过一个时延较长且抖动较大的处理流程,包括从网口端口接收数据报文,接着将报文拷贝至CPU可访问的内存,然后通过访存指令加载依次加载到CPU周围的L3-L1 Cache(高速缓存)、CPU可直接访问的寄存器,最后操作寄存器以实现报文处理功能。
报文数据从网络端口到内存或者从内存到网络端口的拷贝过程往往通过直接内存访问(DMA, direct memory access)方式实现。DMA无需CPU参与便可以直接实现网络端口侧报文缓存与内存之间的数据交互,能够大大降低CPU的工作负载,但受限于其传输带宽和交互机制的潜在竞争开销,文献[ Understanding PCIe performance for end hostnetworking, SIGCOMM2018]表明现有商用服务器对最小64字节以太网报文的一次DMA传输的最大时延可达到5.8ms。此外,数据从内存拷贝至CPU可直接操作的寄存器需要多次调用访存(如load)指令实现,其间还存在Cache替换等操作,上述过程均增加了额外的报文处理时延。
因此,提供一种可以大幅降低网络端口到处理器的传输时延,提高处理网络数据效率的报文处理***及方法是本领域技术人员亟待解决的问题。
发明内容
本发明的目的在于提供一种报文处理***及方法,该***结构简单,安全、有效、可靠且操作简便,能有效降低网络端口到处理器的传输时延,进而降低时延敏感应用流量的整体传输时延。
基于以上目的,本发明提供的技术方案如下:
一种报文处理***,包括:报文预处理模块、处理器模块和DRA(直接寄存器访问DRA, direct register access)模块;
所述报文预处理模块和所述处理器模块通过所述DRA模块连接。
优选地,所述报文预处理模块包括:收发子模块、分类子模块、缓存子模块和输出子模块;
所述收发子模块分别与所述分类子模块和所述输出子模块连接,所述收发子模块用于获取网络报文并发送已处理的网络报文;
所述缓存子模块分别与所述分类子模块和所述输出子模块连接,所述缓存子模块用于缓存已分类的网络报文和已处理的网络报文。
优选地,
所述DRA模块包括:DRA接收子模块、DRA从代理子模块、DRA主代理子模块和DRA发送子模块;
所述DRA接收子模块、所述DRA发送子模块和所述DRA从代理子模块均设置在所述报文预处理模块中;
所述DRA主代理子模块设置在所述处理器模块中。
优选地,
所述DRA接收子模块分别与所述DRA从代理子模块和所述缓存子模块连接,所述DRA接收子模块用于接收所述已分类的网络报文,并发送至所述DRA从代理子模块;
所述DRA发送子模块分别与所述DRA从代理子模块和所述缓存子模块连接,所述DRA发送子模块用于接收所述已处理的网络报文,并发送至所述缓存模块。
优选地,
所述DRA从代理子模块与所述DRA主代理子模块连接,
所述DRA从代理子模块,用于将所述已分类的网络报文发送至所述DRA主代理子模块;
所述DRA从代理子模块,还用于将所述已处理的网络报文发送至所述DRA发送子模块。
优选地,所述处理器模块包括:处理器核;
所述DRA主代理子模块与所述处理器核连接,所述DRA主代理子模块用于将所述已分类的网络报文发送至所述处理器核,并由所述处理器核处理完毕后,接收所述已处理的网络报文。
优选地,所述处理器核包括:通用寄存器、DRA扩展报文寄存器和处理单元;
所述处理单元分别与所述通用寄存器和所述DRA扩展报文寄存器连接,所述处理单元用于处理所述通用寄存器和所述DRA扩展报文寄存器中的数据;
所述DRA扩展报文寄存器用于缓存所述已分类的网络报文。
一种报文处理方法,包括如下步骤:
报文预处理模块将网络报文通过DRA模块传输至处理器模块中;
处理器模块处理所述网络报文;
所述处理器模块将已处理的网络报文通过所述DRA模块传输至所述报文预处理模块中;
所述报文预处理模块输出所述已处理的网络报文。
优选地,所述报文预处理模块包括:收发子模块、分类子模块、缓存子模块;所述处理器模块包括:处理器核;
所述报文预处理模块将网络报文通过DRA模块传输至处理器模块中,包括如下步骤:
配置所述分类子模块和所述缓存子模块,初始化所述处理器核;
所述收发子模块获取网络报文;
根据第一预设规则,分类子模块分类所述网络报文,缓存子模块缓存已分类的网络报文;
根据DRA模块,传输所述已分类的网络报文至所述处理器核中。
优选地,所述报文预处理模块还包括:输出子模块;
所述处理器模块将已处理的网络报文通过所述DRA模块传输至所述报文预处理模块中,包括如下步骤:
根据所述DRA模块,传输所述已处理的网络报文至所述缓存子模块中;
根据第二预设规则,输出子模块管理并转发所述已处理的网络报文至所述收发子模块后向所述缓存子模块反馈;
所述收发子模块发送所述已处理的网络报文。
本发明所公开的报文处理***,设置有报文预处理模块、处理器模块和DRA模块,其中,报文预处理模块和处理器模块通过DRA模块连接。工作过程中,网络报文经过报文预处理模块进行预处理;通过DRA模块传输至处理器模块中;处理器模块处理网络报文;通过DRA模块将已处理的网络报文传输至报文预处理模块中;报文预处理模块将已处理的网络报文输出。该报文处理***通过设置报文预处理模块对网络报文进行预处理,通过设置DRA模块实现了预处理后的网络报文与处理器模块之间直接进行数据交换,可以有效避免现有网络报文从网络端口依次经过内存、Cache、寄存器的数据传输时延,从而降低网络报文的传输时延,提高处理网络数据的效率。
本发明还提供了一种报文处理方法,由于该报文传输方法与报文传输***属于相同的技术思路,解决相同的技术问题,因此理应具有与报文处理***相同的有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种报文处理***的结构示意图;
图2为本发明实施例提供的一种报文处理***的具体结构示意图;
图3为本发明实施例提供的一种报文处理方法的流程图;
图4为本发明实施例提供的步骤S1的流程图;
图5为本发明实施例提供的步骤S3和S4的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例采用递进的方式撰写。
本发明实施例提供了一种报文处理***及方法。主要解决现有技术中,网络报文传输需要从网络端口依次经过内存、Cache、寄存器的数据传输时延较长的技术问题。
如图1所示,一种报文处理***,包括:报文预处理模块、处理器模块和DRA模块;
报文预处理模块和处理器模块通过DRA模块连接。
本发明所公开的报文处理***,设置有报文预处理模块、处理器模块和DRA模块,其中,报文预处理模块和处理器模块通过DRA模块连接。工作过程中,网络报文经过报文预处理模块进行预处理;通过DRA模块传输至处理器模块中;处理器模块处理网络报文;通过DRA模块将已处理的网络报文传输至报文预处理模块中;报文预处理模块将已处理的网络报文输出。该报文处理***通过设置报文预处理模块对网络报文进行预处理,通过设置DRA模块实现了预处理后的网络报文与处理器模块之间直接进行数据交换,可以有效避免现有网络报文从网络端口依次经过内存、Cache、寄存器的数据传输时延,从而降低网络报文的传输时延,提高处理网络数据的效率。
如图2所示,优选地,报文预处理模块包括:收发子模块、分类子模块、缓存子模块和输出子模块;
收发子模块分别与分类子模块和输出子模块连接,收发子模块用于获取网络报文并发送已处理的网络报文;
缓存子模块分别与分类子模块和输出子模块连接,缓存子模块用于缓存已分类的网络报文和已处理的网络报文。
实际运用过程中,报文预处理模块设置有收发子模块、分类子模块、缓存子模块和输出子模块;收发子模块分别与分类子模块和输出子模块连接;缓存子模块分别与分类子模块和输出子模块连接。
在本实施例中,收发子模块具体为网络收发接口,其主要实现与外部网络进行数据通信,接收以太网报文,提取五元组信息、接收端口、接收时间戳组合成报文描述符,一并送给报文分类模块;以及与发送管理模块交互,接收待发送报文,剥离报文描述符,根据输出端口发送报文。网络收发接口可以支持多种速率的网口端口,诸如: 100Mbps、1Gbps、10Gbps、25Gbps等各类速率的高速以太网接口。
分类子模块主要接收网络收发接口的报文数据,根据处理器模块下发的配置信息,对已提取的报文字段(描述符)进行匹配查表,可以实现对报文的分类,并标记待处理当前报文的处理器标识(CPU_ID)。报文分类采用通用匹配实现,可支持五元组、接收端口、报文优先级多个字段的带掩码匹配功能。
缓存子模块具体为描述符队列和报文缓存模块,其主要用于缓存报文分类模块的报文描述符和报文,为支持多核并行处理,为每个CPU核维护一个描述符接收队列和一个描述符发送队列,但采用所有CPU共享报文缓存块的方式最大化存储空间利用率,并通过报文描述符中的报文缓存标识区分报文。报文缓存块划分为2KB大小的基本缓存块,可缓存64B-2KB的以太网报文。报文缓存块由发送、接收两部分缓存区组成,发送缓冲区用于存储处理器主动发起的报文,接收缓存用于接收从网络端口接收的数据报文。若将本发明装置用于端***时,需要设置一定大小的发送缓存区,以满足主动发起报文的应用场景需求;若将本发明装置用于网络交换,则可以将缓存区全部设置位接收缓存区,即可满足报文转发的需求。
优选地,
DRA模块包括:DRA接收子模块、DRA从代理子模块、DRA主代理子模块和DRA发送子模块;
DRA接收子模块、DRA发送子模块和DRA从代理子模块均设置在报文预处理模块中;
DRA主代理子模块设置在处理器模块中。
实际运用过程中,DRA模块设置有DRA接收子模块、DRA从代理子模块、DRA主代理子模块和DRA发送子模块;其中,DRARA接收子模块、DRA发送子模块和DRA从代理子模块均设置在报文预处理模块中,而DRA主代理子模块设置在处理器模块中。工作过程中,网络报文通过DRA接收子模块接收;DRA接收子模块将网络报文传输至DRA从代理子模块;DRA从代理子模块将网络报文传输至其对应的DRA主代理子模块;DRA主代理子模块将网络报文传输至处理器模块进行处理,在网络报文处理完成之后,将已处理的网络报文,按原先的传输路线返回至DRA从代理子模块中;DRA从代理子模块将已处理的网络报文传输至报文预处理模块中,由报文预处理模块输出。
优选地,
DRA接收子模块分别与DRA从代理子模块和缓存子模块连接,DRA接收子模块用于接收已分类的网络报文,并发送至DRA从代理子模块;
DRA发送子模块分别与DRA从代理子模块和缓存子模块连接,DRA发送子模块用于接收已处理的网络报文,并发送至缓存模块。
实际运用过程中,DRA接收子模块分别与DRA从代理子模块和缓存子模块连接;DRA发送子模块分别与DRA从代理子模块和缓存子模块连接。
在本实施例中,DRA接收子模块的功能包含两部分,一是读取新报文和相应报文描述符,二是读取报文的下一个512b数据内容。其中,读取新报文和相应报文描述符是指,DRA接收子模块根据处理器模块中的CPU核中的DRA扩展报文寄存器组中的状态寄存器的空闲位,将新接收的报文描述符和报文头部(前512b)数据一并送给报文接收寄存器,等待替换DRA扩展报文寄存器。读取报文的下一个512b数据内容是指,CPU处理完当前512b数据后,需要从报文缓存中读取并处理下一个512b数据。为掩盖网络报文预处理模块读取512b数据的时延,本发明支持预取功能,为图4中x0-x15寄存器设置乒乓报文数据寄存器组,即请求一次512b数据,会自动读取连续的下一个512b数据,分别缓存在乒乓报文数据寄存器组中。同时也支持状态控制寄存器中的使用读请求地址寄存器,读取非连续512b报文数据。
DRA发送子模块的功能也包含两个方面,一是写回报文数据和相应报文描述符,二是仅写回512b报文数据。其中,写回报文数据和相应报文描述符是指根据控制寄存器的写地址请求,将报文数据写回报文缓存模块,同时将报文描述符写回描述符队列,报文描述符中携带有带写入队列的标识,可将描述符写置发送队列,或者将其写入其它CPU对应的接收队列,实现报文的流水处理,而无需拷贝报文。仅写回512b报文数据是指根据控制寄存器的写地址请求,将报文数据写回报文缓存模块。
优选地,
DRA从代理子模块与DRA主代理子模块连接,
DRA从代理子模块,用于将已分类的网络报文发送至DRA主代理子模块;
DRA从代理子模块,还用于将已处理的网络报文并发送至缓存模块。
实际运用过程中,DRA从代理子模块和DRA主代理子模块连接;DRA从代理子模块与DRA主代理子模块进行数据交互,分别将网络报文进行上传下载。
在本实施例中,DRA从代理子模块负责与DRA主代理子模块进行数据交互,采用静态随机存取存储器(SRAM, static random-access memory)访问接口实现描述符队列和报文缓存块的读写控制请求传递,DRA主代理子模块负责将取回的报文数据和报文描述符写入DRA扩展报文寄存器组中。
优选地,处理器模块包括:处理器核;
DRA主代理子模块与处理器核连接,DRA主代理子模块用于将已分类的网络报文发送至处理器核,并由处理器核处理完毕后,接收已处理的网络报文。
实际运用过程中,DRA主代理子模块与处理器核连接,DRA主代理子模块将已分类的网络报文传输至处理器核,由处理器核处理完毕后,DRA主代理子模块接收已处理的网络报文。
优选地,处理器核包括:通用寄存器、DRA扩展报文寄存器和处理单元;
处理单元分别与通用寄存器和DRA扩展报文寄存器连接,处理单元用于处理所述通用寄存器和所述DRA扩展报文寄存器中的数据;
DRA扩展报文寄存器用于缓存已分类的网络报文。
实际运用过程中,处理器核设置有通用寄存器、DRA扩展报文寄存器和处理单元;处理单元分别与通用寄存器和DRA扩展报文寄存器连接;DRA扩展报文寄存器用于缓存已分类的网络报文。
在本实施例中,处理器核(CPU核),包括:DRA主代理子模块、DRA扩展报文寄存器组、通用寄存器组和处理单元。其中,DRA主代理子模块直接与CPU核连接,DRA扩展报文寄存器为新增的一组寄存器,通用寄存器为CPU核内原有的寄存器,DRA扩展报文寄存器和通用寄存器均可被CPU核内的处理单元直接操作使用。本实例一种的DRA扩展报文寄存器的定义如DRA扩展报文寄存器定义表2所示,可分为报文数据寄存器、报文描述符寄存器、临时寄存器和状态控制寄存器。报文数据寄存器包含16个32b位宽的寄存器,可一次缓存512b报文数据;报文描述符寄存器包含4个32b位宽的寄存器,可以缓存128b报文描述符,支持软硬件协同处理,即网络报文预处理模块可将中间处理结果(如TCP CRC校验结果)放在描述符中供软件程序使用;临时寄存器用于存储报文处理中间结果,例如统计接收的报文数,可支持缓存8个32b中间结果,若超出存储空间,可利用如访问DRA扩展报文寄存器的定制指令格式表1所示的定制指令(如DRA_LB、DRA_LH等指令)将临时寄存器的值缓存置内存空间;状态控制寄存器用于实现DRA接收、发送报文数据请求,包含读写请求地址、读写请求、读写状态三类,如状态控制其寄存器表3所示。
表1
表2
表3
如图3所示,一种报文处理方法,包括如下步骤:
S1.报文预处理模块将网络报文通过DRA接收子模块传输至处理器模块中;
S2.处理器模块处理网络报文;
S3.处理器模块将已处理的网络报文通过DRA发送子模块传输至报文预处理模块中;
S4.报文预处理模块输出已处理的网络报文;
其中,DRA模块包括:DRA接收子模块和DRA发送子模块。
步骤S1中,报文预处理模块接收到网络报文后,通过DRA模块传输至处理器模块中;
步骤S2中,处理器模块对网络报文进行处理;
步骤S3中,处理器模块将已处理的网络报文通过DRA模块重新传回至报文预处理模块中;
步骤S4中,报文预处理模块将已处理的网络报文输出。
优选地,报文预处理模块包括:收发子模块、分类子模块、缓存子模块;处理器模块包括:处理器核;
如图4所示,步骤S1,包括如下步骤:
A1.配置分类子模块和缓存子模块,初始化处理器核;
A2.根据收发子模块获取网络报文;
A3.根据第一预设规则,分类子模块分类网络报文,缓存子模块缓存已分类的网络报文;
A4.根据DRA接收子模块,传输已分类的网络报文至处理器核中。
步骤A1中,对分类子模块和缓存子模块进行配置,并初始化处理器核;
步骤A2中,收发子模块获取输入的网络报文;
步骤A3中,根据第一预设规则,分类子模块将网络报文进行分类,缓存子模块对已分类的网络报文进行缓存;
步骤A4中,DRA接收子模块传输已分类的网络报文至处理器核中。
在本实施例中,步骤A1具体为:处理器模块配置报文分类模块、描述队列和报文缓存模块,以及初始化各自CPU核内部的DRA扩展报文寄存器。其中,报文分类子模块的配置内容为基于报文五元组、IP协议优先级字段、接收端口等匹配关键字,和丢弃、上送CPU标识(CPU_ID)匹配结果;描述符队列和报文缓存模块配置内容为分配给发送、接收缓存区的大小;DRA扩展报文寄存器组的初始化为将报文、描述符寄存器置0,将控制状态寄存器的读写地址寄存器置0,将控制寄存器的接收报文位置1,等待接收和处理报文。
步骤A2具体为:网络报文预处理模块通过网络收发接口模块接收到报文后,解析报文,提取五元组等信息,与接收端口、时间戳信息组合成报文描述符,送给报文分类模块。步骤A3具体为:由报文分类子模块按照处理器模块下发的分类规则,区分报文优先级和待处理的CPU标识,送给描述符队列和报文缓存模块。
描述符队列和报文缓存模块根据CPU_ID将报文描述符写入相应的接收描述符队列,并将报文写入接收报文缓存区。报文在写入接收报文缓存区之前,需要申请1个2K的空闲缓存块,然后将缓存块标识填入报文描述符字段,方便后续可根据该地址读写报文内容。
步骤A4具体为:DRA接收模块判断是否各自处理器核对应的描述符接收队列是否缓存有新接收的报文,若存在则继续根据DRA扩展报文寄存器组中的控制寄存器判断是否需要上送报文描述符和报文内容。如报文控制寄存器中待接收报文位为1,则从描述符队列中读取描述符,以及从报文缓存中读取报文数据,一并通过DRA接口上送给CPU核中的报文、描述符寄存器中,并修改对应状态寄存器位置,即将DRA接收新报文状态位置1。
在本实施例中,步骤S2具体为:处理器核根据状态寄存器判断是否已接收新报文数据,即判断接收报文状态位是否为1,若是则开始执行相应的软件处理程序。所设计的DRA扩展报文寄存器包含16个32b位宽的数据寄存器,每次完成当前512b报文数据处理后,将其写回报文缓存,并读当前报文的下一段512b数据。当完成整个报文的处理后,修改报文描述符(如设置输出端口号),并通过设置控制寄存器将报文描述符和报文数据写回描述符队列和报文缓存模块。
DRA扩展报文寄存器组的定义如图4所示,包含16个32b位宽的报文数据寄存器、4个32b位宽的描述符寄存器,8个32b位宽的临时寄存器和4个32b位宽的状态控制寄存器。报文数据寄存器可一次缓存512b报文数据,每次CPU处理完一段512b位宽数据后,利用写地址寄存器和控制寄存器中的写请求位,将修改的512b数据写回报文缓存区;利用读地址寄存器和控制寄存器中的读请求位,请求下一个512b数据。上述读写过程相互独立,即允许同时置高写请求与读请求,DRA主代理106支持并行处理发送和接收(默认送至下文的乒乓寄存器组)数据处理。
为掩盖从报文缓存区读512b数据至数据寄存器的时延,支持预取功能,即设置有一组乒乓DRA扩展报文寄存器(两组数据寄存器),每请求一次512b数据或写回当前512b数据,会自动读取连续的下一个512b数据,并将其缓存在乒乓DRA扩展报文寄存器的一组寄存器中,并利用控制寄存器中的替换请求位切换CPU可直接操作的乒乓寄存器组。
优选地,报文预处理模块还包括:输出子模块;
如图5所示,步骤S3和步骤S4,包括如下步骤:
B1.根据DRA发送子模块,传输已处理的网络报文至缓存子模块中;
B2.根据第二预设规则,输出子模块管理并转发已处理的网络报文至收发子模块后向缓存子模块反馈;
B3.收发子模块输出已处理的网络报文。
步骤B1中,根据DRA发送子模块将已处理的网络报文至缓存子模块中;
步骤B2中,根据第二预设规则,输出子模块管理并转发已处理的网络报文至收发子模块后向缓存子模块反馈;
在本实施例中,输出子模块根据处理器模块下发描述符信息,从缓存子模块中读取已处理(或新下发)网络报文;输出子模块根据处理器模块发下的相应规则对从缓存子模块中读取的网络报文执行相应动作(发送或丢弃);输出子模块将已执行相应动作网络报文的描述符信息提交给缓存子模块,以便于缓存子模块进行空闲资源回收。
步骤B3中,收发子模块输出已处理的网络报文。
在本实施例中,步骤B1具体为:本步骤完成两部分功能,一是DRA发送子模块根据DRA扩展报文寄存器组中的控制状态寄存器中的DRA写回512b报文数据请求位将DRA扩展报文寄存器的数据写回报文缓存区,并将状态寄存器中DRA写回512b报文数据状态位置1;二是DRA发送子模块根据DRA扩展报文寄存器组中的控制状态寄存器中的DRA发送报文请求位将报文描述符写回描述符发送队列,并将状态寄存器中DRA发送报文状态位置1。
控制状态寄存器如图5所示,包含一个DRA发送(写回)数据请求地址寄存器、一个接收(读取)数据请求地址寄存器、一个控制寄存器和一个状态寄存器。其中,发送数据请求地址寄存器,标识待写回数据在报文缓存区中的位置;接收数据请求地址寄存器,标识待读取数据在报文缓存区中的位置;控制寄存器包含DRA替换DRA扩展报文寄存器组内容请求位、DRA接收新报文请求位、DRA发送报文请求位、DRA写回512b报文数据请求位和DRA读取512b报文数据请求位共5个控制位;状态寄存器包含DRA替换DRA扩展报文寄存器组内容状态位、DRA接收新报文状态位、DRA发送报文状态位、DRA写回512b报文数据状态位和DRA读取512b报文数据状态位共5个状态位,与控制寄存器中的控制位一一对应。DRA替换DRA扩展报文寄存器组内容请求位用于切换处理器核中的乒乓DRA扩展报文寄存器组,即每次一组寄存器用于处理器操作,一组寄存器用于预取下一个512b报文数据;DRA接收新报文请求位用于请求报文描述符和报文头部数据;DRA发送报文请求位用于将报文描述符写回描述符发送队列,以发送当前报文;DRA写回512b报文数据请求位用于将修改后的数据写回报文缓存区;DRA读取512b报文数据请求位用于读取当前报文的任意一段512b数据,以支持更加快速灵活的报文数据访问。
在本申请所提供的实施例中,应该理解到,所揭露的方法和***,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个模块或组件可以结合,或可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
另外,在本发明各实施例中的各功能模块可以全部集成在一个处理器中,也可以是各模块分别单独作为一个器件,也可以两个或两个以上模块集成在一个器件中;本发明各实施例中的各功能模块既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令及相关的硬件来完成,前述的程序指令可以存储于计算机可读取存储介质中,该程序指令在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
应当理解,本申请中如若使用了“***”、“装置”、“单元”和/或“模块”,仅是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换该词语。
如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
本申请中如若使用了流程图,则该流程图是用来说明根据本申请的实施例的***所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
以上对本发明所提供的一种报文处理***及方法进行了详细介绍。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (7)
1.一种报文处理***,其特征在于,包括:报文预处理模块、处理器模块和DRA模块;
所述报文预处理模块和所述处理器模块通过所述DRA模块连接;
所述报文预处理模块包括:收发子模块、分类子模块、缓存子模块和输出子模块;
所述收发子模块分别与所述分类子模块和所述输出子模块连接,所述收发子模块用于获取网络报文并发送已处理的网络报文;
所述缓存子模块分别与所述分类子模块和所述输出子模块连接,所述缓存子模块用于缓存已分类的网络报文和已处理的网络报文;
所述DRA模块包括:DRA接收子模块、DRA从代理子模块、DRA主代理子模块和DRA发送子模块;
所述DRA接收子模块、所述DRA发送子模块和所述DRA从代理子模块均设置在所述报文预处理模块中;
所述DRA主代理子模块设置在所述处理器模块中;
所述DRA接收子模块分别与所述DRA从代理子模块和所述缓存子模块连接,所述DRA接收子模块用于接收所述已分类的网络报文,并发送至所述DRA从代理子模块;
所述DRA发送子模块分别与所述DRA从代理子模块和所述缓存子模块连接,所述DRA发送子模块用于接收所述已处理的网络报文,并发送至所述缓存子模块。
2.如权利要求1所述的报文处理***,其特征在于,
所述DRA从代理子模块与所述DRA主代理子模块连接,
所述DRA从代理子模块,用于将所述已分类的网络报文发送至所述DRA主代理子模块;
所述DRA从代理子模块,还用于将所述已处理的网络报文并发送至所述缓存子模块。
3.权利要求2所述的报文处理***,其特征在于,所述处理器模块包括:处理器核;
所述DRA主代理子模块与所述处理器核连接,所述DRA主代理子模块用于将所述已分类的网络报文发送至所述处理器核,并由所述处理器核处理完毕后,接收所述已处理的网络报文。
4.如权利要求3所述的报文处理***,其特征在于,所述处理器核包括:通用寄存器、DRA扩展报文寄存器和处理单元;
所述处理单元分别与所述通用寄存器和所述DRA扩展报文寄存器连接,所述处理单元用于处理所述通用寄存器和所述DRA扩展报文寄存器中的数据;
所述DRA扩展报文寄存器用于缓存所述已分类的网络报文。
5.一种报文处理方法,其特征在于,包括如下步骤:
报文预处理模块将网络报文通过DRA接收子模块传输至处理器模块中;
处理器模块处理所述网络报文;
所述处理器模块将已处理的网络报文通过所述DRA发送子模块传输至所述报文预处理模块中;
所述报文预处理模块输出所述已处理的网络报文;
其中,DRA模块包括:DRA接收子模块和DRA发送子模块。
6.如权利要求5所述的报文处理方法,其特征在于,所述报文预处理模块包括:收发子模块、分类子模块、缓存子模块;所述处理器模块包括:处理器核;
所述报文预处理模块将网络报文通过DRA接收子模块传输至处理器模块中,包括如下步骤:
配置所述分类子模块和所述缓存子模块,初始化所述处理器核;
所述收发子模块获取网络报文;
根据第一预设规则,分类子模块分类所述网络报文,缓存子模块缓存已分类的网络报文;
根据DRA接收子模块,传输所述已分类的网络报文至所述处理器核中。
7.如权利要求6所述的报文处理方法,其特征在于,所述报文预处理模块还包括:输出子模块;
所述处理器模块将已处理的网络报文通过所述DRA发送子模块传输至所述报文预处理模块中,包括如下步骤:
根据所述DRA发送子模块,传输所述已处理的网络报文至所述缓存子模块中;
根据第二预设规则,输出子模块管理并转发所述已处理的网络报文至所述收发子模块后向所述缓存子模块反馈;
所述收发子模块发送所述已处理的网络报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211497197.5A CN115529275B (zh) | 2022-11-28 | 2022-11-28 | 一种报文处理***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211497197.5A CN115529275B (zh) | 2022-11-28 | 2022-11-28 | 一种报文处理***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115529275A true CN115529275A (zh) | 2022-12-27 |
CN115529275B CN115529275B (zh) | 2023-04-07 |
Family
ID=84705203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211497197.5A Active CN115529275B (zh) | 2022-11-28 | 2022-11-28 | 一种报文处理***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115529275B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1165346A (zh) * | 1996-03-28 | 1997-11-19 | 摩托罗拉公司 | 在数据处理***中访问一种可片选择器件的方法和设备 |
CN102006285A (zh) * | 2010-11-02 | 2011-04-06 | 北京天融信科技有限公司 | 一种用于网络安全设备的报文处理方法及装置 |
CN111651377A (zh) * | 2020-06-28 | 2020-09-11 | 中国人民解放军国防科技大学 | 一种用于片内报文处理的弹性共享缓存架构 |
CN113328926A (zh) * | 2020-02-28 | 2021-08-31 | 北京机械设备研究所 | 一种fc-ae-1553和fc-ae-asm的混合网络*** |
CN113904938A (zh) * | 2021-09-28 | 2022-01-07 | 北京大禹智芯科技有限公司 | 一种动态配置PCIe终端设备的***和方法 |
CN114490467A (zh) * | 2022-01-26 | 2022-05-13 | 中国电子科技集团公司第五十四研究所 | 一种多核网络处理器的报文处理dma***及方法 |
-
2022
- 2022-11-28 CN CN202211497197.5A patent/CN115529275B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1165346A (zh) * | 1996-03-28 | 1997-11-19 | 摩托罗拉公司 | 在数据处理***中访问一种可片选择器件的方法和设备 |
CN102006285A (zh) * | 2010-11-02 | 2011-04-06 | 北京天融信科技有限公司 | 一种用于网络安全设备的报文处理方法及装置 |
CN113328926A (zh) * | 2020-02-28 | 2021-08-31 | 北京机械设备研究所 | 一种fc-ae-1553和fc-ae-asm的混合网络*** |
CN111651377A (zh) * | 2020-06-28 | 2020-09-11 | 中国人民解放军国防科技大学 | 一种用于片内报文处理的弹性共享缓存架构 |
CN113904938A (zh) * | 2021-09-28 | 2022-01-07 | 北京大禹智芯科技有限公司 | 一种动态配置PCIe终端设备的***和方法 |
CN114490467A (zh) * | 2022-01-26 | 2022-05-13 | 中国电子科技集团公司第五十四研究所 | 一种多核网络处理器的报文处理dma***及方法 |
Non-Patent Citations (3)
Title |
---|
曾明: "一种应用于网卡芯片的DMA控制器设计", 《中国集成电路》 * |
邢座程等: "基于硬件虚拟接口结构的***域网络设计", 《计算机学报》 * |
郑凯: "基于PCI+Express 2.0的高速网卡中DMA的设计", 《软件》 * |
Also Published As
Publication number | Publication date |
---|---|
CN115529275B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11899596B2 (en) | System and method for facilitating dynamic command management in a network interface controller (NIC) | |
US20140032796A1 (en) | Input/output processing | |
US9864717B2 (en) | Input/output processing | |
CN114546913B (zh) | 一种基于pcie接口的多主机之间数据高速交互的方法和装置 | |
US20120102245A1 (en) | Unified i/o adapter | |
WO2009070326A1 (en) | A system and method for accessing memory | |
CN113986791B (zh) | 一种智能网卡快速dma设计方法、***、设备及终端 | |
EP3563534B1 (en) | Transferring packets between virtual machines via a direct memory access device | |
WO2019153702A1 (zh) | 一种中断处理方法、装置及服务器 | |
CN109117386A (zh) | 一种网络远程读写二级存储的***及方法 | |
CN114385534A (zh) | 一种数据处理的方法及装置 | |
CN115639947A (zh) | 数据写入方法、数据读取方法、装置、设备、***及介质 | |
US20140025859A1 (en) | Input/output processing | |
US9137167B2 (en) | Host ethernet adapter frame forwarding | |
CN117555836A (zh) | 一种数据处理装置、***及电子设备 | |
CN115529275B (zh) | 一种报文处理***及方法 | |
CN116670661A (zh) | 图形处理器的缓存访问方法、图形处理器及电子设备 | |
US11847049B2 (en) | Processing system that increases the memory capacity of a GPGPU | |
CN114186163A (zh) | 一种应用层网络数据缓存方法 | |
CN113778937A (zh) | 用于执行片上网络(NoC)中的事务聚合的***和方法 | |
WO2024103924A1 (zh) | 一种数据读写方法及相关装置 | |
WO2024077999A1 (zh) | 集合通信方法及计算集群 | |
Mahabaleshwarkar et al. | TCP/IP protocol accelaration | |
US20240201881A1 (en) | I/O Request Processing Method, Apparatus, and System, Device, and Storage Medium | |
CN117743252A (zh) | 基于Mailbox的异构Soc子***间通信的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |