CN110011940B - 一种报文处理装置及方法 - Google Patents
一种报文处理装置及方法 Download PDFInfo
- Publication number
- CN110011940B CN110011940B CN201910290870.XA CN201910290870A CN110011940B CN 110011940 B CN110011940 B CN 110011940B CN 201910290870 A CN201910290870 A CN 201910290870A CN 110011940 B CN110011940 B CN 110011940B
- Authority
- CN
- China
- Prior art keywords
- message processing
- message
- editors
- bit
- operand
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
- H04L49/1515—Non-blocking multistage, e.g. Clos
- H04L49/1546—Non-blocking multistage, e.g. Clos using pipelined operation
Abstract
本发明揭示了一种报文处理装置及方法,所述装置包括:至少一报文编辑范围为n字节的编辑模块和至少一个报文处理计算逻辑单元,编辑模块包括若干个编辑器,报文处理计算逻辑单元配置给编辑器选择使用,编辑器中配置包括左操作数、右操作数,左操作数取自报文,报文处理计算逻辑单元中配置逻辑操作,编辑器将左操作数、右操作数根据逻辑操作进行逻辑运算后,将运算得到的数据写回报文。本发明可以使得在不改变传统报文交换处理流水线的情况下,以较低的开销实现较丰富的灵活性。
Description
技术领域
本发明涉及一种报文信息处理技术,尤其是涉及一种报文处理装置及方法。
背景技术
高性能、高带宽的以太网交换芯片的典型特征是每一个时钟周期都必须处理一个报文的交换。在14纳米工艺条件下,最高可以达到1.05GHz的核心频率。这个时候,采用该工艺的报文处理交换芯片的报文处理能力达到1050Mpps(1050000000报文/秒)。64字节的报文处理带宽达到705Gbps(705.6吉比特/秒)。
在这样的设计条件下,每一个报文在流水线上的处理,只能执行一次。因此,对于复杂的报文处理流程,需要多个处理模块并发处理。
鉴于当前数据中心对报文转发平面(又称数据平面,data plane)的灵活性要求越来越高,面向软件可编程的报文转发平面设计思想被提出。但是,可编程的充分灵活性和转发性能是硬币的两面。一般的,为了保证性能,在工程可接受的开销范围内,灵活性会很低。如果让报文处理充分灵活,那么带来的是需要多个时钟周期才能完成报文处理,转发性能就急剧下降了。
发明内容
本发明的目的在于克服现有技术的缺陷,提供一种报文处理装置及方法。
为实现上述目的,本发明提出如下技术方案:一种报文处理装置,包括至少一报文编辑范围为n字节的编辑模块和至少一个报文处理计算逻辑单元,所述编辑模块包括若干个编辑器,所述报文处理计算逻辑单元配置给所述编辑器选择使用,所述编辑器中配置包括左操作数、右操作数,所述左操作数取自报文,所述报文处理计算逻辑单元中配置逻辑操作,所述编辑器将所述左操作数、右操作数根据逻辑操作进行逻辑运算后,将运算得到的数据写回报文,其中,n为大于等于1的自然数。
优选地,所述编辑模块包括:m1个4比特编辑器、m2个8比特编辑器、m3个16比特编辑器和m4个32比特编辑器,其中,m1、m2、m3和m4均为大于1的自然数。
优选地,所述编辑器的数据从报文处理信息上取得,所述数据至少被分类为4比特数据组、8比特数据组、16比特数据组和32比特数据组。
优选地,所述左操作数、右操作数从报文处理信息中获取,或者由编辑器自身配置;所述逻辑操作从报文处理信息中获取,或者由报文处理计算逻辑单元自身配置。
优选地,多个所述编辑模块串联。
优选地,所述编辑器的数据的选择方式为报文头的层加相对偏移量。
本发明还提出了另外一种技术方案:一种报文处理方法,所述方法包括:
S1,编辑器中配置包括左操作数、右操作数,为编辑器配置使用一报文处理计算逻辑单元,报文处理计算逻辑单元中配置逻辑操作;
S2,编辑器将所述左操作数、右操作数根据逻辑操作进行逻辑运算后,将运算得到的数据写回报文。
本发明的有益效果是:本发明可以使得在不改变传统报文交换处理流水线的情况下,以较低的开销实现较丰富的灵活性。
附图说明
图1是本发明装置的原理示意图;
图2是本发明方法的流程示意图;
图3是本发明方法具体实施例的流程示意图。
具体实施方式
下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。
本发明所揭示的一种报文处理装置及方法,分析了以太网数据交换的本质,通过列出部署应用下的权衡,收敛了需要支持灵活性的范围。同时,使用模块化的并行处理流水对报文进行处理,规格化每一个编辑流水处理器,从而确保高带宽芯片设计下的可行性。
结合图1和图2所示,本发明所揭示的一种报文处理装置,包括至少一编辑模块和至少一报文处理计算逻辑单元,其中,编辑模块为本发明定义的编辑区(EDIT_ZONE),这个编辑模块总计具有n字节的编辑范围,如32字节,即256比特,该编辑范围的数据称作段(Segment),或数据段。
编辑模块包括若干个编辑器,具体可包括m1个4比特编辑器、m2个8比特编辑器、m3个16比特编辑器和m4个32比特编辑器,本实施例中,为4个4比特编辑器(Nibble Editor)、4个8比特编辑器(Byte Editor)、4个16比特编辑器(Word Editor)、4个32比特编辑器(Double Word Editor)。
其中,4比特编辑器可以在编辑数据段中,按照4比特为单位选择编辑位置,如在上述32字节编辑数据段中,共64个编辑位置。且4比特编辑器在对数据编辑时可以进行逐比特掩码操作,并且支持逐比特位移。举例说明:定义取出报文数据为a[3:0],待编辑数据x[3:0]的低两个比特,编辑位置期望是报文a[2:1],即将待编辑数据x的低两个比特编辑进取出报文数据的第2位和第3位,则掩码mask[3:0]可以配置为4’b0110,位移shift[1:0]配置为1。则编辑操作是:
编辑后新的数据new_a[3:0]=(a[3:0]&mask[3:0])|((x[3:0]<<shift[1:0])&mask[3:0])。即将取出报文数据a与掩码进行与运算,或者将待编辑数据x左移1位后与掩码进行与运算。
8比特编辑器可以在编辑数据段中,按照8比特为单位选择编辑位置,如在上述32字节编辑数据段中,共32个编辑位置。且与上述4比特编辑器一样,8比特编辑器在对数据编辑时也可以进行逐比特掩码操作,并且支持逐比特位移。
同理,16比特编辑器可以在编辑数据段中,按照16比特为单位选择编辑位置,如在上述32字节编辑数据段中,共16个编辑位置。且与上述4比特和8比特编辑器不同,16比特编辑器支持由低位到高位的16个掩码类型maskType[3:0],每个掩码类型对应一掩码,采用该掩码对待编辑的数据进行mask操作。具体如下表所示:
maskType[3:0] | Mask[15:0] |
0 | 16’b0000_0000_0000_0001 |
1 | 16’b0000_0000_0000_0011 |
2 | 16’b0000_0000_0000_0111 |
… | … |
15 | 16’b1111_1111_1111_1111 |
32比特编辑器不对待编辑数据进行mask操作。
另外,上述Nibble/Byte/Word/Double Word编辑器的数据可以从报文处理信息上取得,也可以由自身配置,对应不同的编辑器,这组信息可以被分类为4比特组(定义为编辑信息组0)、8比特组(定义为编辑信息组1)、16比特组(定义为编辑信息组2)和32比特组(定义为编辑信息组3)。每个组对应一信息容器(FlexEditContainer),每个组的信息设置于该信息容器内。这里的信息包括左操作数、右操作数,这里的左操作数即上述编辑器从报文中取出的待编辑的数据,右操作数为需求的对待编辑的数据进行逻辑运算的数据。左操作数和右操作数实施时可以从报文处理信息中获取,也可以由编辑器自身配置,如配置在表项或者寄存器中。
报文处理计算逻辑单元(又称ALU,全称是Arithmetic Logic Unit,算术逻辑单元),可以支持对待编辑进报文的数据进行预处理,或者对报文编辑使用计算的方式实现。报文处理计算逻辑单元可以有一个或多个,本发明实施例中设置有4个(Alu#0~Alu#3),每个报文处理计算逻辑单元选择分配给上述编辑器使用(Nibble/Byte/Word/Double Word),即每个编辑器可以选择一个报文处理计算逻辑单元。报文处理计算逻辑单元中配置逻辑操作,如逻辑加/减/比较等操作。
编辑器将左操作数、右操作数根据逻辑操作进行逻辑运算后,将运算得到的数据写回报文,完成报文编辑过程。下面以8比特的Byte Editor编辑器为例,举例说明本发明实施例对报文的编辑过程。
在报文转发处理过程中,有8bit的TTL(Time To Live、生存时间)字段,需要在当前报文处理流程中减1(即逻辑操作为减,这里的1即为右操作数),结合图3所示,具体过程如下:
步骤一、将1作为右操作数,配置在8比特Byte编辑器的表项或者寄存器中,最后这个数字会携带在信息容器FlexEditContainer这组总线(bus)上的编辑信息组1中。
步骤二、为Byte编辑器配置选择使用一报文处理计算逻辑单元,如Alu#0。
步骤三、配置Alu#0的待处理左操作数(简称左值)来自报文指定位置,使用dataTypeL设置1来指示;配置Alu#0的待处理右值(即右操作数)来自上述FlexEditContainer的编辑信息组1,从而取得数值1。
这里的dataTypeL配置用于指示左操作数的来源,其中,配置为1表示来自报文位置,配置为0表示来自FlexEditContainer。
步骤四、配置Alu#0的逻辑操作opType[1:0]为减(SUB)操作。
步骤五、配置数据段位置,使得报文中需要被修改的TTL的数据包含在数据段中。
步骤六、配置Byte编辑器编辑TTL在数据段中相对位置,比如2。
这里将Byte编辑器数据回写位置配置为2,也就是配置相对偏移量为2,因为IPv4报文的TTL字段在IP头的第二字节(0是起始的),当然也可根据起始值配置为其他数值。
步骤七、Byte编辑器根据左值dataTypeL得知从报文中取出8比特数据,与待处理右值1进行SUB(减)操作,将运算得到的数据回填到报文的取出位置。
综上,通过上述步骤一~步骤七完成了TTL(逻辑门电路)减一的操作。
其他Nibble Editor/Word Editor/Double Word Editor编辑器的原理同上述Byte Editor编辑器。
通过上述过程,就算是在流片(Tapeout,下线,指的是集成电路IC或印刷电路板PCB设计的最后步骤)前不知道的数据帧(数据报文)格式,都可以在将来通过编辑器中的配置进行正确的处理,处理方式更加的灵活。
优选地,上述编辑区可以有多个,多个编辑区可以串联,如有编辑区1和2两个,编辑区1编辑后的数据可以作为编辑区2的输入数据。
更优选地,在上述步骤三的数据段选择方式中,根据报文解析结果,可以将数据段的选择方式调整为报文头的层(layer)+相对偏移量,比如选择三层((layer3))作为数据段位置的基础,配置相对偏移量取得编辑位置,可以使得报文在有一个/多个VLAN的时候,只需要一套配置即可取得正确的待编辑位置。
更进一步地,为了简化数字逻辑设计,可以要求4组,每组4个共16个编辑器,其有效的编辑数据段互相不得重叠,这样数字逻辑可以使用并行的方式进行处理,减少处理流水线(pipeline)的级数,降低flop开销。
本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。
Claims (8)
1.一种报文处理装置,其特征在于,所述装置包括至少一报文编辑范围为n字节的编辑模块和至少一个报文处理计算逻辑单元,所述编辑模块包括若干个编辑器,所述报文处理计算逻辑单元配置给所述编辑器选择使用,所述编辑器中配置包括左操作数、右操作数,所述左操作数为编辑器从报文中取出的待编辑的数据,所述右操作数为需求的对待编辑的数据进行逻辑运算的数据,所述左操作数、右操作数从报文处理信息中获取,或者由编辑器自身配置,所述报文处理计算逻辑单元中配置逻辑操作,所述编辑器将所述左操作数、右操作数根据逻辑操作进行逻辑运算后,将运算得到的数据写回到报文的取出位置,以完成报文的编辑,其中,n为大于等于1的自然数,所述逻辑运算是通过在指定位置取出待处理的左操作数,并将其与待处理的右操作数进行运算操作。
2.根据权利要求1所述的一种报文处理装置,其特征在于,所述编辑模块包括:m1个4比特编辑器、m2个8比特编辑器、m3个16比特编辑器和m4个32比特编辑器,其中,m1、m2、m3和m4均为大于1的自然数。
3.根据权利要求2所述的一种报文处理装置,其特征在于,所述编辑器的数据从报文处理信息上取得,所述数据至少被分类为4比特数据组、8比特数据组、16比特数据组和32比特数据组。
4.根据权利要求1所述的一种报文处理装置,其特征在于,所述逻辑操作从报文处理信息中获取,或者由报文处理计算逻辑单元自身配置。
5.根据权利要求1所述的一种报文处理装置,其特征在于,多个所述编辑模块串联。
6.一种基于上述权利要求1~5所述的装置的报文处理方法,其特征在于,所述方法包括:
S1,编辑器中配置包括左操作数、右操作数,为编辑器配置使用一报文处理计算逻辑单元,报文处理计算逻辑单元中配置逻辑操作;
S2,编辑器将所述左操作数、右操作数根据逻辑操作进行逻辑运算后,将运算得到的数据写回报文。
7.根据权利要求6所述的一种报文处理方法,其特征在于,所述编辑器的数据从报文处理信息上取得,所述数据至少被分类为4比特数据组、8比特数据组、16比特数据组和32比特数据组。
8.根据权利要求6所述的一种报文处理方法,其特征在于,所述左操作数、右操作数从报文处理信息中获取,或者由编辑器自身配置;所述逻辑操作从报文处理信息中获取,或者由报文处理计算逻辑单元自身配置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910290870.XA CN110011940B (zh) | 2019-04-11 | 2019-04-11 | 一种报文处理装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910290870.XA CN110011940B (zh) | 2019-04-11 | 2019-04-11 | 一种报文处理装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110011940A CN110011940A (zh) | 2019-07-12 |
CN110011940B true CN110011940B (zh) | 2021-06-04 |
Family
ID=67171213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910290870.XA Active CN110011940B (zh) | 2019-04-11 | 2019-04-11 | 一种报文处理装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110011940B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1949736A (zh) * | 2005-10-10 | 2007-04-18 | 华为技术有限公司 | 一种报文编辑电路及方法 |
CN101266592A (zh) * | 2007-03-16 | 2008-09-17 | 松下电器产业株式会社 | 可重新配置的电路及其设置方法和可重新配置的电路系统 |
CN102957613A (zh) * | 2011-08-29 | 2013-03-06 | 盛科网络(苏州)有限公司 | Mpls-tp网络中oam报文和数据报文统一转发路径的方法及装置 |
CN107171846A (zh) * | 2017-05-26 | 2017-09-15 | 南京南瑞集团公司 | 一种时延可测交换机测试系统及测试方法 |
CN108234339A (zh) * | 2017-12-07 | 2018-06-29 | 清华大学 | 可编程数据平面的报文转发方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI483121B (zh) * | 2012-08-14 | 2015-05-01 | Univ Nat Chiao Tung | 整合性儲存空間平台系統及方法 |
-
2019
- 2019-04-11 CN CN201910290870.XA patent/CN110011940B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1949736A (zh) * | 2005-10-10 | 2007-04-18 | 华为技术有限公司 | 一种报文编辑电路及方法 |
CN101266592A (zh) * | 2007-03-16 | 2008-09-17 | 松下电器产业株式会社 | 可重新配置的电路及其设置方法和可重新配置的电路系统 |
CN102957613A (zh) * | 2011-08-29 | 2013-03-06 | 盛科网络(苏州)有限公司 | Mpls-tp网络中oam报文和数据报文统一转发路径的方法及装置 |
CN107171846A (zh) * | 2017-05-26 | 2017-09-15 | 南京南瑞集团公司 | 一种时延可测交换机测试系统及测试方法 |
CN108234339A (zh) * | 2017-12-07 | 2018-06-29 | 清华大学 | 可编程数据平面的报文转发方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110011940A (zh) | 2019-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7685408B2 (en) | Methods and apparatus for extracting bits of a source register based on a mask and right justifying the bits into a target register | |
US20120191767A1 (en) | Circuit which Performs Split Precision, Signed/Unsigned, Fixed and Floating Point, Real and Complex Multiplication | |
US20050144416A1 (en) | Data alignment systems and methods | |
US6665769B2 (en) | Method and apparatus for dynamically masking an N-bit memory array having individually programmable cells | |
JP2983542B2 (ja) | 処理高速化装置 | |
CN110011940B (zh) | 一种报文处理装置及方法 | |
US7774583B1 (en) | Processing bypass register file system and method | |
JPWO2002091386A1 (ja) | 連想メモリとその検索方法およびネットワーク機器およびネットワーク・システム | |
WO2014137033A1 (en) | Apparatus and method for controlling memory in mobile communication system | |
US20070233767A1 (en) | Rotator/shifter arrangement | |
EP1949221B1 (en) | A slave and a master device, a system incorporating the devices and a method of operating the slave device | |
WO1982000907A1 (en) | Cmos static alu | |
CN107340992A (zh) | 一种定点数据筛选电路 | |
JP2002229970A (ja) | Simd積和演算方法、積和演算回路、および、半導体集積回路装置 | |
JPS60158751A (ja) | 時分割多重化された直列ビツトストリ−ムに複数のチヤンネルからメツセ−ジを伝送するための装置 | |
JP3837386B2 (ja) | 情報処理装置 | |
US6622204B1 (en) | Content-addressable memory with cascaded match, read and write logic in a programmable logic device | |
JPH0423048A (ja) | 誤り検出・訂正用集積回路、誤り検出・訂正回路、および、データ処理装置 | |
CN104699463A (zh) | 一种低功耗流水线的实现方法 | |
JPS60117918A (ja) | 一致検出回路 | |
US7243282B2 (en) | Method and apparatus for implementing multiple remote diagnose register chains | |
JPH08274653A (ja) | ダイナミックスレッショルドを用いた最尤ビタビ検出装置 | |
JP2001117865A (ja) | データ転送方法 | |
KR100781842B1 (ko) | 전력 소비를 줄이면서 고속의 컴퓨팅 능력을 제공하는 장치 | |
JP2002354513A (ja) | マルチポート・マルチアドレスメモリ方式時間スイッチ制御システム及び方法 |
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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 215101 unit 13 / 16, 4th floor, building B, No. 5, Xinghan street, Suzhou Industrial Park, Jiangsu Province Patentee after: Suzhou Shengke Communication Co.,Ltd. Address before: Unit 13 / 16, 4th floor, building B, No.5 Xinghan street, Suzhou Industrial Park, 215000 Jiangsu Province Patentee before: CENTEC NETWORKS (SU ZHOU) Co.,Ltd. |