CN117880395A - 百吉比特速率网络交换芯片的可重构包协议解析器设备 - Google Patents
百吉比特速率网络交换芯片的可重构包协议解析器设备 Download PDFInfo
- Publication number
- CN117880395A CN117880395A CN202410035166.0A CN202410035166A CN117880395A CN 117880395 A CN117880395 A CN 117880395A CN 202410035166 A CN202410035166 A CN 202410035166A CN 117880395 A CN117880395 A CN 117880395A
- Authority
- CN
- China
- Prior art keywords
- packet
- analysis
- module
- data
- parsing
- 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.)
- Pending
Links
- 238000004458 analytical method Methods 0.000 claims abstract description 176
- 239000013598 vector Substances 0.000 claims description 18
- 238000000034 method Methods 0.000 claims description 13
- 238000002864 sequence alignment Methods 0.000 claims description 8
- 238000012546 transfer Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 6
- 239000000284 extract Substances 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000000605 extraction Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 238000010009 beating Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种百吉比特速率网络交换芯片的可重构包协议解析器设备,包括多路并行流水线解析单元,用于响应于解析任务对数据包进行解析得到解析中间结果并输出;重排序模块,用于对所述解析中间结果进行收集汇总,并对其中乱序的解析中间结果进行重排序输出至包头字段提取器;包头字段提取器,用于从解析中间结果提取PHV内容,并将元数据与PHV内容对齐并输出至外部的后级模块。本发明利用多路并行流水线解析单元实现了协议无关的可重构包协议解析,并使用Benes网络对包头字段进行提取,实现了高度灵活的可重构包协议解析能力。采用多路并行乱序处理结构与大位宽字节级Benes网络结构相结合的方式,显著提升包解析器设备的吞吐率性能。
Description
技术领域
本发明属于网络交换机技术领域,具体涉及一种百吉比特速率网络交换芯片的可重构包协议解析器设备。
背景技术
目前的边缘网络设备需要网络交换机提供高于100Gbps的交换速率,而位于企业核心网络中的交换设备需要提供1Tbps以上的交换速率。同时,为了支持更高的数据速率并提供场景广泛的服务,一系列应用于数据交换的新网络协议被提出,传统的针对单一协议识别和处理设计的芯片可能会因为无法处理新的网络协议而被过早淘汰,而高端网络设备成本高昂,由于网络协议更新带来的网络硬件的频繁升级是难以接受的。由于这些原因,网络交换机已经从固定功能和协议相关的网络硬件转向可编程网络硬件。
高线速、可重构的网络数据包协议解析器是高速可重构网络交换专用集成电路芯片(ASIC)的重要组成部分,在新的网络技术潮流下,需要设计一种兼顾灵活性和高性能的包解析器,以满足未来网络通信设备应用场景的迫切需求。
现有可重构网络包协议解析器有两种主流的实现结构:状态机与流水线,实现可重构性的方法主要有两种路线:依赖FPGA的可重构与使用协议无关硬件的可重构。其中,依赖FPGA的可重构性的包解析器需要更新电路结构以支持网络协议的更新,由于电路结构不固定,因此无法在ASIC芯片中实现;使用协议无关硬件实现的包解析器则能够以不修改电路结构为前提,实现对新网络协议的支持。
使用协议无关硬件实现包解析器的基本方法为:使用RAM等存储器对特定的数据包协议解析方法(状态跳转信息、字段提取规则等)进行保存,使用协议无关的包解析电路,根据存储器中的解析方法,对数据包协议进行解析,最后将包头中的关心字段(例如MAC地址、IP地址、TTL字段等)提取到PHV中,供后级电路使用。
文献1(Gibb G,Varghese G,Horowitz M.Design principles for packetparsers[C].Architectures for Networking and Communications Systems.IEEE,2013.)中提出了一种使用有限状态机实现包解析器的方法,将包头协议的跳转对应于状态机的状态跳转,这种包解析器的结构如图1所示。状态机从一个默认状态(例如解析以太网包的状态)开始解析包头,该状态控制包解析器从包头中提取特定字段,将提取出的协议类型字段和包解析器的当前状态作为关键字(Key),通过查表的方式得到解析动作索引。根据解析动作索引,从RAM中读出状态机的次态,以及包头提取器要提取的字段位置。最后,包头字段提取器将指定的字段提取到PHV中,状态机跳转到次态。通过重复上述流程,包解析器最终对包头中的所有协议完成解析,并产生对应的PHV。
文献2(Configurable FPGA packet parser for terabit networks withguaranteed wire-speed throughput[C].Proceedings of the 2018ACM/SIGDAInternational Symposium on Field-Programmable Gate Arrays.2018:249-258)中提出了一种面向FPGA平台的流水线型包解析器。设计者为多种包协议编写专用解析模块的VHDL代码模板,对P4语言进行编译并调用这些VHDL模板,生成解析特定协议的包解析器的VHDL代码,在FPGA上进行综合与实现。
文献3(Zolfaghari H,Rossi D,Cerroni W.Flexible software-defined packetprocessing using low-area hardware[J].IEEE Access,2020)中提出使用流水线结构配合“解析控制字”实现包解析的可重构特性,该方法使用一条多级流水线,这种包解析器结构如图2所示。流水线的每一级都包含报头协议识别单元、包头大小计算单元与字段提取单元,使用解析控制字对内部各个功能单元进行控制。每个数据包都在流水线中进行传递,第一个协议头由流水线的第一级进行解析,第二个协议头由流水线的第二级进行解析,层层递进,以此完成数据包的解析。每级流水线中的字段提取单元都会将包头中的特定字段提取到PHV中。
在上述方法中,对于文献1的包解析器,由于报头协议解析的依赖性,报头协议的识别、组成关键字并查表与状态机跳转的过程是阻塞顺序进行的,这意味着包解析器需要消耗多个时钟周期来解析包头的一层协议,硬件的并行度较低,因此该解析器无法满足高吞吐率需求。
文献2的包解析器依赖于FPGA器件自身的特性以提供包解析的可重构性与高灵活度,对所支持的协议进行修改时,往往需要使用新的比特流对FPGA进行重新配置,这种方案的解析器在架构上没有实现协议无关,使用场景比较有限。
文献3的方案使用流水线结构提高了包解析器的吞吐率,但使用了深度较大的流水线,考虑网络数据包的协议层数与流水线级数相等时的情况,其性能为最佳;若包头的协议层数超过流水线级数,则包解析器不能完成数据包中全部协议的解析,将数据包重新折返进入流水线并继续解析,又会导致吞吐率折半;若数据包在流水线前级就已经完成解析,则较长的流水线后级电路可能处于短暂空闲状态,不能充分利用,这种现象表明传统的流水线结构灵活性不足,吞吐率仍有提升空间。
此外,文献3的流水线结构在性能拓展时,将会在电路面积与功耗方面遇到瓶颈。其原因在于,流水线深度较大,包数据又在整个流水线上传递,流水线上使用了多组字段提取单元,在使用大位宽总线对吞吐率进行进一步扩展时,流水线消耗的寄存器与多路选择器数量会显著增长。
发明内容
为了解决现有技术中存在的上述问题,本发明提供了一种百吉比特速率网络交换芯片的可重构包协议解析器设备。本发明要解决的技术问题通过以下技术方案实现:
本发明提供了一种百吉比特速率网络交换芯片的可重构包协议解析器设备,包括:重排序模块、包头字段提取器和多路并行流水线解析单元;
所述多路并行流水线解析单元,用于响应于解析任务对数据包进行解析得到解析中间结果并输出;
所述重排序模块,用于对所述解析中间结果进行收汇总,并对其中乱序的解析中间结果进行重排序输出至所述包头字段提取器;
所述包头字段提取器,用于从所述解析中间结果提取PHV内容,并将元数据与所述PHV内容对齐并输出至外部的后级模块。
有益效果:
本发明公开了一种可应用于高速网络交换ASIC芯片的可重构包协议解析器设备,该设备采用一种包解析专用的处理器结构实现了协议无关的可重构包协议解析,并使用Benes可重排网络对包头字段进行提取,实现了高度灵活的可重构包协议解析能力。同时,采用多路并行乱序处理结构与大位宽字节级Benes网络结构相结合的方式,显著提升包解析器设备的吞吐率性能。相比较现有的传统方法,在高灵活性与高吞吐率方面能够达到更好的兼顾。以下将结合附图及实施例对本发明做进一步详细说明。
附图说明
图1是现有技术中文献1提出的状态机型解析器结构图;
图2是现有技术中文献3提出的状态机型解析器结构图;
图3是本发明提供的一种百吉比特速率网络交换芯片的可重构包协议解析器设备的示意图;
图4是本发明提供的网络交换ASIC功能结构的示意图;
图5是本发明提供的包解析的实现步骤的示意图;
图6是本发明提供的重排序模块功能结构的示意图;
图7是本发明提供的包头字段提取器功能结构的示意图。
具体实施方式
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
在介绍本发明的方案细节之前,对本发明的整体技术构思和发明点作简单介绍。
本发明使用包解析处理器核响应解析任务,实现基于协议无关硬件的可重构网络数据包协议识别;采用多个包解析处理器核与重排序模块实现对解析任务的并行处理,以提高解析器设备的数据包协议解析识别性能;在包头字段提取电路中引入Benes可重排网络,实现百吉比特速率下可重构的包头字段提取;采用包解析处理器核与Benes可重排网络相结合的方法,使解析器设备同时满足包协议可重构与百吉比特线速需求。
下面详细介绍本发明的技术方案细节。
结合图3-图7,本发明提供了一种百吉比特速率网络交换芯片的可重构包协议解析器设备包括:重排序模块、包头字段提取器和多路并行流水线解析单元;
所述多路并行流水线解析单元,用于响应于解析任务对数据包进行解析得到解析中间结果并输出;
所述重排序模块,用于对所述解析中间结果进行收集汇总,并对其中乱序的解析中间结果进行重排序输出至所述包头字段提取器;
所述包头字段提取器,用于利用所述解析中间结果从包数据提取PHV内容,并将元数据与所述PHV内容对齐并输出至外部的后级模块。
在一种具体的实施方式中,参考图3,本发明的所述多路并行流水线解析单元包括解析任务分发模块、指令存储器、多个并行的包解析处理器核;
所述解析任务分发模块,用于接受解析任务并将所述解析任务分发到每个包解析处理器中;
所述指令存储器,用于存储所述包解析处理器核的指令;
所述包解析处理器核,用于按照对应的指令对数据包执行解析程序,并输出包含解析状态向量和Payload偏移量的解析中间结果至所述重排序模块。
在一种具体的实施方式中,参考图3,本发明的所述包头字段提取器包括哈希匹配Benes网络配置电路、包缓存读控制电路、Benes网络、旁路模块;
所述哈希匹配Benes网络配置电路,用于将所述重排序模块输出的解析中间结果与Benes网络的配置信息进行匹配,得到Benes网络配置信息并输出至Benes网络;
所述包缓存读控制电路,用于读取包数据并将其在时序上与Benes网络配置信息对齐输出至Benes网络;
所述Benes网络,用于按照Benes网络配置信息从包数据中提取字段并组装为PHV;
所述旁路模块,用于将解析中间结果中的包缓存地址、元数据、Payload偏移量进行旁路传递,与Benes网络输出的PHV进行时序对齐并输出至解析器设备的后级模块。
参考图4,图4为本发明的解析器设备面向网络交换ASIC芯片的应用图,在图3中所述多路并行流水线解析单元还包括配置电路,所述指令存储器的输入端连接配置电路,所述配置电路的输入端连接一个控制模块,所述解析任务分发模块输入连接缓存控制模块,所述缓存控制模块的输出还连接包缓存模块,所述控制模块控制所述配置电路,以使所述配置电路对所述多路并行流水线解析单元内的所述指令存储器和哈希匹配Benes网络配置电路作初始化配置。
值得说明的是:多路并行流水线解析单元,内部具有解析任务分发模块、多个包解析处理器核,以及指令存储器。解析任务分发模块用于接受缓存控制模块提交的解析任务,并解析任务分发到包解析处理器中。指令存储器用于存储包解析处理器的指令。包解析处理器核为包含取指、执行、写回、分支的多级流水线型处理器,能够对数据包执行解析程序,并输出包含解析状态向量和Payload偏移量等信息的解析中间结果;包解析处理器的数据总线设计为大位宽总线(如2048bits),以此实现百吉线速下的包头解析功能。
在图4所示的网络交换ASIC功能结构中,图3所示的解析器设备及其外围主要模块如下:
解析器,由协议无关的多个对称的包解析处理器、重排序模块与Benes网络三个主要部件组成,用于识别数据包的各层包头协议,并将包头字段提取至PHV中,供后级MAU进行修改,同时将数据包的Payload偏移位置输出至逆解析器;
包缓存模块,用于暂存待解析数据;
缓存控制模块,用于将来自MAC的数据帧转移至包缓存,并产生解析任务并将其提交至包解析处理器的任务队列;
MAU(匹配动作单元,Match-Action Unit)用于对PHV、元数据执行匹配-动作行为,将修改后的PHV传递给逆解析器;
逆解析器,用于数据包包头的编辑与更新。逆解析器将MAU修改后的PHV重组为包头,并根据解析器提供的Payload偏移位置,将新的包头与数据包的Payload进行组装,生成新的数据包;
队列调度与交叉节点,完成数据包的入队、出队和端口转发动作,最终将数据包输出至MAC-PHY,从交换机端口发送出。
控制模块与配置电路,用于外部控制器(CPU或其它能够进行寄存器读写的控制器)对解析器进行初始化配置。配置内容包括包解析处理器的指令存储器,以及包头字段提取器的哈希匹配模块和Benes配置信息RAM。
参考图3,在一种具体的实施方式中,
所述缓存控制模块,用于将来自MAC的数据包搬移到所述包缓存模块中,以及产生解析任务提交至所述多路并行流水线解析单元中;
所述多路并行流水线解析单元,用于接受并执行解析任务,输出解析中间结果;
所述重排序模块,用于对多个解析中间结果进行收集汇总,并对其中乱序的解析中间结果进行排序,使乱序的解析中间结果恢复至数据包进入所述多路并行流水线解析单元前的顺序;
所述包头字段提取器,用于从排序后的解析中间结果提取包缓存地址和元数据,并利用所述包缓存地址和元数据产生PHV内容;将元数据、包缓存地址、Payload偏移量与PHV内容进行时序对齐,输出至外部的后级模块。
结合图3和图4,PHY-MAC接收外部进入的数据流,将数据包传输至缓存控制模块;缓存控制模块将数据包存储在包缓存中,将解析任务提交至解析器;解析器执行解析任务,对包缓存中的包头进行解析得到PHV,将PHV与元数据传送至MAU,同时将Payload偏移量等信息旁路传递至逆解析器;MAU流水线对PHV和元数据进行更新修改,输出更新后的PHV;逆解析器从包缓存区中取出原数据包的Payload,并将新的PHV转换为包头,组成新的数据包,提交至总线管理;数据包进入队列缓存,经过队列缓存、交叉节点与MAC-PHY后从交换机输出。
参考图5,本发明提供的一种百吉比特速率网络交换芯片的可重构包协议解析器设备的包解析实现步骤从步骤1至步骤5,分别为:
步骤1控制模块通过解析器上的配置电路对解析器进行初始化配置,配置的模块包括解析器内的指令存储器、哈希匹配模块、Benes配置信息RAM。
步骤2缓存控制模块将来自MAC的数据包搬移到包缓存中,产生解析任务并将其提交至包解析处理器。缓存控制模块的功能实现步骤如下:
(2a)将来自MAC的数据包搬移至所述包缓存模块中,并产生包缓存地址;
(2b)对搬移的数据包进行计数,产生数据包计数标记作为恢复解析结果顺序的依据以及同步记录所述数据包的MAC端口号和数据包长度作为包的元数据;
(2c)将包缓存地址、数据包计数标记、元数据以及初始解析指令地址组成为一个解析任务,将该解析任务提交至所述多路并行流水线解析单元。
步骤3多路并行流水线解析单元接受并执行解析任务,输出中间结果。主要步骤如下:
(3a)所述解析任务分发模块,用于接受所述缓存控制模块提交的解析任务,并根据包解析处理器核的空闲情况,使用RR轮询方法从空闲的包解析处理器核中选择优先级最高的一个,将解析任务分发到该包解析处理器核中,并将该包解析处理器核的优先级调为最低;
(3b)所述指令存储器,用于存储所述包解析处理器核的指令;
(3c)接收到解析任务的包解析处理器核,用于根据所述解析任务中的指令地址、包缓存地址,分别从指令存储器、包缓存模块的中取出指令和待解析的数据包;
(3d)执行所述指令对所述数据包进行解析得到数据包的上层协议类型、当前包头大小信息;将多组上层协议类型和当前包头大小信息的数据对拼接记录为一条解析状态向量;
值得说明的是:指令执行完成后,得到数据包的上层协议类型与当前包头大小信息。将其写回寄存器堆。各层包头的上述两种信息通常为多组“上层协议类型-当前包头大小”数据对,将上述多组数据对拼接记录为一条解析状态向量。
(3e)将解析所述数据包时的位置偏移量作为Payload偏移量,并将解析状态向量、Payload偏移量、所述解析任务中包含的包缓存地址、包计数标记、和元数据进行合并,得到解析中间结果并输出。
参考图6,本发明的所述重排序模块包括写控制模块、乒乓RAM和读计数器,所述写控制模块的输入端连接所述多个并行的包解析处理器核的输出端。
步骤4重排序模块对上述的多个包解析处理器输出的解析中间结果进行收集汇总,并对其中乱序的解析中间结果进行排序,使其恢复至数据包进入解析器前的顺序。排序的依据为数据包计数标记。具体步骤包括:
(4a)所述写控制模块,用于接收所有解析中间结果并确定待排序的解析中间结果;将所述待排序的解析中间结果中的包计数标记作为地址,并将该地址的有效位设置为1;将所述待排序的解析中间结果和有效位写入所述乒乓RAM中;
(4b)所述乒乓RAM,用于以数据形式存储所述待排序的解析中间结果和每个地址的有效位;
(4c)所述读计数器,用于从初始值0开始计数,将计数值作为所述乒乓RAM的读地址,循环从所述乒乓RAM中读取当前行直到读出数据的有效位为1,将有效位为1的数据输出,并将输出的行数据的有效位写回为0反馈至所述写控制模块,并将计数值加1使得所述乒乓RAM中的解析中间结果以顺序的方式输出。
示例性的,读计数器开始时会向乒乓RAM的地址0上循环读取解析中间结果及有效位,等待写控制器向地址0中写入有效的解析中间结果。假设此时重排序模块收集到了数据包计数标记为1、0的两个解析中间结果,因此写控制器向乒乓RAM的地址1、0中依次写入解析中间结果,并将地址1、0中存储的有效位写为1。当写控制器向地址1中写入解析中间结果及有效位时,读计数器此时处于等待状态,直到写控制器向地址0中写入解析中间结果及有效位,读计数器从地址0中读出的有效位变为1,之后将地址0中的解析中间结果输出,并通知写控制器对地址0的有效位写回为0,最后将计数器值加1,继续读取地址1中的解析中间结果及有效位。这样读计数器最终能够将乒乓RAM中存储的解析中间结果顺序读出来。
这样读计数器最终能够将乒乓RAM中存储的解析中间结果顺序读出来
本步骤重复(4a)、(4b)与(4c)的过程,重排序模块能够将乱序的解析中间结果进行排序,将其恢复至原来的顺序,并将顺序的解析中间结果输出至包头字段提取器中。
参考图7,本发明的所述包头字段提取器包括哈希匹配Benes网络配置电路、旁路模块、包缓存读控制电路和Benes网络;
其中,所述哈希匹配Benes网络配置电路、旁路模块和包缓存读控制电路的输入端均接入所述重排序模块的输出端,所述哈希匹配Benes网络配置电路的输入端还连接所述配置电路的输出端,所述包缓存读控制电路的输入端还连接包缓存模块的输出端;所述哈希匹配Benes网络配置电路和所述包缓存读控制电路的输出端均连接至所述Benes网络的输入端,所述旁路模块输出包缓存地址、元数据以及Payload偏移量,所述Benes网络输出PHV内容。
步骤5包头字段提取器提取PHV,具体步骤包括:
(5a)所述旁路模块,用于从重排序的解析中间结果(包含解析状态向量、包缓存地址、元数据等信息在内)解析出包缓存地址;
(5b)所述哈希匹配Benes网络配置电路,用于从重排序的解析中间结果中解析出解析状态向量;利用哈希匹配算法对所述解析状态向量与Benes网络配置信息地址进行匹配,如果匹配则将对应的Benes网络配置信息RAM地址向后传递;所述哈希匹配Benes网络配置电路,从所述Benes网络配置信息RAM中取出最终的Benes网络配置信息,并传送至Benes网络;
匹配过程为:对解析状态向量使用哈希函数(如CRC等)进行运算,使用哈希函数运算结果查哈希表,即使用哈希函数运算结果作为哈希表RAM的地址,读出该地址中存储的解析状态向量与Benes网络配置信息RAM地址;将输入的解析状态向量与哈希表中取出的解析状态向量进行比较,若两者完全一致,则将对应的Benes网络配置信息RAM地址向后传递;
(5c)所述包缓存读控制电路,用于使用流水线寄存器对重排序模块输出的包缓存地址以打拍的方式进行时序对齐;根据打拍传递过来的包缓存地址,从包缓存模块中取出包头数据,并将取出的包头数据与最终的Benes网络配置信息在时序上对齐;将最终的Benes网络配置信息与包头数据一同送入Benes网络;
(5d)所述Benes网络,用于对包头数据进行并行的字段提取和重排,产生PHV内容;
(5e)所述Benes网络将解析中间结果中的元数据、包缓存地址、Payload偏移量通过寄存器打拍的方式与PHV内容进行时序对齐,与PHV内容一同输出至外部的后级的MAU模块中。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种百吉比特速率网络交换芯片的可重构包协议解析器设备,其特征在于,包括:重排序模块、包头字段提取器和多路并行流水线解析单元;
所述多路并行流水线解析单元,用于响应于解析任务对数据包进行解析得到解析中间结果并输出;
所述重排序模块,用于对所述解析中间结果进行收集汇总,并对其中乱序的解析中间结果进行重排序输出至所述包头字段提取器;
所述包头字段提取器,用于利用所述解析中间结果从包数据提取PHV内容,并将元数据与所述PHV内容对齐并输出至外部的后级模块。
2.根据权利要求1所述的百吉比特速率网络交换芯片的可重构包协议解析器设备,其特征在于,所述多路并行流水线解析单元包括解析任务分发模块、指令存储器、多个并行的包解析处理器核;
所述解析任务分发模块,用于接受解析任务并将所述解析任务分发到每个包解析处理器中;
所述指令存储器,用于存储所述包解析处理器核的指令;
所述包解析处理器核,用于按照对应的指令对数据包执行解析程序,并输出包含解析状态向量和Payload偏移量的解析中间结果至所述重排序模块。
3.根据权利要求2所述的百吉比特速率网络交换芯片的可重构包协议解析器设备,其特征在于,所述多路并行流水线解析单元还包括配置电路,所述指令存储器的输入端连接配置电路,所述配置电路的输入端连接一个控制模块,所述解析任务分发模块输入连接缓存控制模块,所述缓存控制模块的输出还连接包缓存模块,所述控制模块控制所述配置电路,以使所述配置电路对所述多路并行流水线解析单元内的所述指令存储器和哈希匹配Benes网络配置电路作初始化配置。
4.根据权利要求3所述的百吉比特速率网络交换芯片的可重构包协议解析器设备,其特征在于,
所述缓存控制模块,用于将来自MAC的数据包搬移到所述包缓存模块中,以及产生解析任务提交至所述多路并行流水线解析单元中;
所述多路并行流水线解析单元,用于接受并执行解析任务,输出解析中间结果;
所述重排序模块,用于对多个解析中间结果进行收集汇总,并对其中乱序的解析中间结果进行排序,使乱序的解析中间结果恢复至数据包进入所述多路并行流水线解析单元前的顺序;
所述包头字段提取器,用于从排序后的解析中间结果提取包缓存地址和元数据,并利用所述包缓存地址和元数据产生PHV内容;将元数据、包缓存地址、Payload偏移量与PHV内容进行时序对齐,输出至外部的后级模块。
5.根据权利要求3所述的百吉比特速率网络交换芯片的可重构包协议解析器设备,其特征在于,所述重排序模块包括写控制模块、乒乓RAM和读计数器,所述写控制模块的输入端连接所述多个并行的包解析处理器核的输出端。
6.根据权利要求3所述的百吉比特速率网络交换芯片的可重构包协议解析器设备,其特征在于,所述包头字段提取器包括哈希匹配Benes网络配置电路、旁路模块、包缓存读控制电路、Benes网络和旁路模块;
其中,所述哈希匹配Benes网络配置电路、旁路模块和包缓存读控制电路的输入端均接入所述重排序模块的输出端,所述哈希匹配Benes网络配置电路的输入端还连接所述配置电路的输出端,所述包缓存读控制电路的输入端还连接包缓存模块的输出端;所述哈希匹配Benes网络配置电路和所述包缓存读控制电路的输出端均连接至所述Benes网络的输入端,所述旁路模块输出包缓存地址、元数据以及Payload偏移量,所述Benes网络输出PHV内容。
7.根据权利要求3所述的百吉比特速率网络交换芯片的可重构包协议解析器设备,其特征在于,所述缓存控制模块,具体用于:
(2a)将来自MAC的数据包搬移至所述包缓存模块中,并产生包缓存地址;
(2b)对搬移的数据包进行计数,产生数据包计数标记作为恢复解析结果顺序的依据以及同步记录所述数据包的MAC端口号和数据包长度作为包的元数据;
(2c)将包缓存地址、数据包计数标记、元数据以及初始解析指令地址组成为一个解析任务,将该解析任务提交至所述多路并行流水线解析单元。
8.根据权利要求3所述的百吉比特速率网络交换芯片的可重构包协议解析器设备,其特征在于,
所述解析任务分发模块,用于接受所述缓存控制模块提交的解析任务,并根据包解析处理器核的空闲情况,使用RR轮询方法从空闲的包解析处理器核中选择优先级最高的一个,将解析任务分发到该包解析处理器核中,并将该包解析处理器核的优先级调为最低;
所述指令存储器,用于存储所述包解析处理器核的指令;
接收到解析任务的包解析处理器核,用于根据所述解析任务中的指令地址、包缓存地址,分别从指令存储器、包缓存模块的中取出指令和待解析的数据包;执行所述指令对所述数据包进行解析得到数据包的上层协议类型、当前包头大小信息;将多组上层协议类型和当前包头大小信息的数据对拼接记录为一条解析状态向量;将解析所述数据包时的位置偏移量作为Payload偏移量,并将解析状态向量、Payload偏移量、所述解析任务中包含的包缓存地址、包计数标记、和元数据进行合并,得到解析中间结果并输出。
9.根据权利要求5所述的百吉比特速率网络交换芯片的可重构包协议解析器设备,其特征在于,
所述写控制模块,用于接收所有解析中间结果并确定待排序的解析中间结果;将所述待排序的解析中间结果中的包计数标记作为地址,并将该地址的有效位设置为1;将所述待排序的解析中间结果和有效位写入所述乒乓RAM中;
所述乒乓RAM,用于以数据形式存储所述待排序的解析中间结果和每个地址的有效位;
所述读计数器,用于从初始值0开始计数,将计数值作为所述乒乓RAM的读地址,循环从所述乒乓RAM中读取当前行直到读出数据的有效位为1,将有效位为1的数据输出,并将输出的行数据的有效位写回为0反馈至所述写控制模块,并将计数值加1使得所述乒乓RAM中的解析中间结果以顺序的方式输出。
10.根据权利要求6所述的百吉比特速率网络交换芯片的可重构包协议解析器设备,其特征在于,
所述哈希匹配Benes网络配置电路,用于将所述重排序模块输出的解析中间结果与Benes网络的配置信息进行匹配,得到Benes网络配置信息并输出至Benes网络;
所述包缓存读控制电路,用于读取包数据并将其在时序上与Benes网络配置信息对齐输出至Benes网络;
所述Benes网络,用于按照Benes网络配置信息从包数据中提取字段并组装为PHV;
所述旁路模块,用于将解析中间结果中的包缓存地址、元数据、Payload偏移量进行旁路传递,与Benes网络输出的PHV进行时序对齐并输出至外部的后级模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410035166.0A CN117880395A (zh) | 2024-01-09 | 2024-01-09 | 百吉比特速率网络交换芯片的可重构包协议解析器设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410035166.0A CN117880395A (zh) | 2024-01-09 | 2024-01-09 | 百吉比特速率网络交换芯片的可重构包协议解析器设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117880395A true CN117880395A (zh) | 2024-04-12 |
Family
ID=90586236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410035166.0A Pending CN117880395A (zh) | 2024-01-09 | 2024-01-09 | 百吉比特速率网络交换芯片的可重构包协议解析器设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117880395A (zh) |
-
2024
- 2024-01-09 CN CN202410035166.0A patent/CN117880395A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11038993B2 (en) | Flexible processing of network packets | |
US7418536B2 (en) | Processor having systolic array pipeline for processing data packets | |
US7069372B1 (en) | Processor having systolic array pipeline for processing data packets | |
US8681819B2 (en) | Programmable multifield parser packet | |
JP3872342B2 (ja) | ネットワークのための装置およびスケーラブル・ネットワーク・プロセッサ | |
US7782873B2 (en) | Omni-protocol engine for reconfigurable bit-stream processing in high-speed networks | |
US20140036909A1 (en) | Single instruction processing of network packets | |
US20200314030A1 (en) | Low latency packet switch architecture | |
US9137166B2 (en) | In-order traffic aggregation with reduced buffer usage | |
JP2003508954A (ja) | ネットワーク・スイッチ及びコンポーネント及び操作方法 | |
JP2003508851A (ja) | ネットワーク・プロセッサ、メモリ構成及び方法 | |
JP2004287811A (ja) | データ処理回路 | |
JP2003508951A (ja) | Vlsiネットワーク・プロセッサ及び方法 | |
JP2003508957A (ja) | ネットワーク・プロセッサ処理コンプレックス及び方法 | |
EP1934758B1 (en) | Omni-protocol engine for reconfigurable bit-stream processing in high-speed networks | |
CN101578590A (zh) | 高速网络中用于可重新配置的位流处理的全协议引擎 | |
US8824468B2 (en) | System and method for parsing frames | |
CN117880395A (zh) | 百吉比特速率网络交换芯片的可重构包协议解析器设备 | |
US7751422B2 (en) | Group tag caching of memory contents | |
KR100941569B1 (ko) | 프로세싱 시스템 및 프로세싱 시스템 사용 방법 및 장치 | |
US11949605B2 (en) | Systems for and methods of unified packet recirculation | |
CN114866492B (zh) | 一种信号处理方法、系统和相关装置 | |
Tóthfalusi et al. | Line-rate packet processing in hardware: the evolution towards 400 Gbit/s | |
CN118301105A (zh) | 一种分段总线架构的帧处理模块 | |
CN118075221A (zh) | 数据处理方法、装置、设备、系统及可读存储介质 |
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 |