CN103955445A - 一种数据处理方法、处理器及数据处理设备 - Google Patents

一种数据处理方法、处理器及数据处理设备 Download PDF

Info

Publication number
CN103955445A
CN103955445A CN201410182569.4A CN201410182569A CN103955445A CN 103955445 A CN103955445 A CN 103955445A CN 201410182569 A CN201410182569 A CN 201410182569A CN 103955445 A CN103955445 A CN 103955445A
Authority
CN
China
Prior art keywords
treatment circuit
data
treatment
circuit
moderator
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
Application number
CN201410182569.4A
Other languages
English (en)
Other versions
CN103955445B (zh
Inventor
李楠
王临春
陈洪飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410182569.4A priority Critical patent/CN103955445B/zh
Publication of CN103955445A publication Critical patent/CN103955445A/zh
Priority to EP15785616.2A priority patent/EP3128437A4/en
Priority to PCT/CN2015/075783 priority patent/WO2015165323A1/zh
Priority to US15/337,872 priority patent/US10025752B2/en
Application granted granted Critical
Publication of CN103955445B publication Critical patent/CN103955445B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/82Architectures of general purpose stored program computers data or demand driven
    • G06F15/825Dataflow computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3868Bypass control, i.e. possibility to transfer an operand unchanged to the output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • G06F9/3828Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage with global bypass, e.g. between pipelines, between clusters

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Advance Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Bus Control (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本申请公开了一种数据处理方法、处理器及数据处理设备。该方法包括:仲裁器向第一处理电路发送数据D(a,1);第一处理电路通过对数据D(a,1)处理得到数据D(1,2),第一处理电路是m个处理电路中的一个处理电路;第一处理电路向第二处理电路发送数据D(1,2);第二处理电路至第m处理电路分别对接收到的数据进行处理;仲裁器接收第m处理电路发送的数据D(m,a),仲裁器及m个处理电路是处理器中的部件,处理器还包括第m+1处理电路,第一处理电路至第m+1处理电路中的每个处理电路能够接收仲裁器发送的第一待处理数据,并对第一待处理数据进行处理。上述方案有助于提高数据处理的效率。

Description

一种数据处理方法、处理器及数据处理设备
技术领域
本申请涉及通信技术领域,特别涉及一种数据处理方法、处理器及数据处理设备。
背景技术
现有技术中,网络处理器可以采用流水线架构。Marvell公司的HX300系列网络处理器采用了可编程流水线架构。这种架构可以看作是类似汽车生产过程中的流水线。HX300系列网络处理器包括多个核(英文:core)。多个core被分成N组,不同的组之间以流水线的方式被耦合。流水线上每个core只完成部分功能,多个core通过配合完成所有功能。例如第一个core执行包头解析,第二core执行多协议标记交换(英文:multiprotocol label switching,简称:MPLS)协议,第三个core执行查找访问控制列表(英文:access control list,简称:ACL)。这样,每个core只执行部分功能。每个core对应一段微码。对多个core对应的多段微码进行整合以得到完整的微码。在处理器核之间可以包含多个引擎访问点(Engine Access Point;EAP)单元,用来完成查表操作。如图1所示。上述技术方案中,处理器对数据进行处理的效率较低。
发明内容
本申请实施例提供数据处理方法及处理器,有助于提高处理器对数据进行处理的效率。
第一方面,提供了一种数据处理方法,包括:
仲裁器向第一处理电路发送数据D(a,1);所述第一处理电路通过对所述数据D(a,1)进行处理得到数据D(1,2),所述第一处理电路是m个处理电路中的一个处理电路,所述m个处理电路包括所述第一处理电路至第m处理电路;所述第一处理电路向第二处理电路发送所述数据D(1,2);所述第二处理电路至所述第m处理电路分别对接收到的数据进行处理,其中,第i处理电路通过对第i-1处理电路提供的数据D(i-1,i)进行处理得到数据D(i,i+1)并且所述第i处理电路向第i+1处理电路发送所述数据D(i,i+1);所述仲裁器接收所述第m处理电路发送的数据D(m,a),m为大于1的整数,所述仲裁器以及所述第一处理电路至所述第m处理电路是处理器中的部件,所述处理器还包括第m+1处理电路,所述第一处理电路至所述第m+1处理电路中的每个处理电路能够接收所述仲裁器发送的第一待处理数据,并且对所述第一待处理数据进行处理。
结合第一方面,在第一方面的第一种可能的实现方式中,所述方法还包括:
第x处理电路向所述第m+1处理电路发送数据D(x,m+1),所述数据D(x,m+1)等于数据D(x,x+1),所述数据D(x,x+1)为所述第x处理电路对第x-1处理电路提供的数据D(x-1,x)进行处理得到的,所述第x处理电路是所述第一处理电路至第m-1处理电路中的一个处理电路。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,在所述第x处理电路向所述第m+1处理电路发送数据D(x,m+1)之后,所述方法还包括:所述第m+1处理电路通过对所述数据D(x,m+1)进行处理得到数据D(m+1,y);所述第m+1处理电路向第y处理电路发送所述数据D(m+1,y),所述第y处理电路为第x+2处理电路至所述第m处理电路中的一个处理电路或者所述仲裁器。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述方法还包括:所述第y处理电路接收所述数据D(m+1,y),所述第y处理电路为所述第x+2处理电路至所述第m处理电路中的一个处理电路;所述第y处理电路通过对所述数据D(m+1,y)以及数据D(y-1,y)进行整合得到整合后的数据;其中,所述数据D(y-1,y)为第y-1处理电路提供的数据;所述第y处理电路通过对所述整合后的数据进行处理得到第D(y,y+1)数据;所述第y处理电路向第y+1处理电路或者所述仲裁器发送所述数据D(y,y+1)
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述第y处理电路通过对所述数据D(m+1,y)以及数据D(y-1,y)进行整合得到整合后的数据,具体包括:
所述第y处理电路仅保留所述数据D(m+1,y)和所述数据D(y-1,y)中的一个;或
所述第y处理电路将所述数据D(m+1,y)和所述数据D(y-1,y)按域对齐,在每个域,选择所述数据D(m+1,y)或所述数据D(y-1,y)在所述每个域的数据,形成所述整合后的数据。
结合第一方面或第一方面的第一种可能的实现方式至第一方面的第四种可能的实现方式中的任意一种,在第一方面的第五种可能的实现方式中,所述第一处理电路至所述第m处理电路中的每两个处理电路第p处理电路和第q处理电路,第p处理电路的输出端与第q处理电路的输入端之间存在连接,第q处理电路的输出端与第p处理电路的输入端之间不存在连接,p小于q。
第二方面,提供了一种处理器,包括:
仲裁器;m个处理电路,包括第一处理电路至第m处理电路,所述m个处理电路分别与所述仲裁器耦合;m为大于1的整数;第m+1个处理电路,与所述仲裁器耦合,所述第一处理电路至所述第m+1处理电路中的每个处理电路能够接收所述仲裁器发送的第一待处理数据,并且对所述第一待处理数据进行处理;其中,所述仲裁器用于向所述第一处理电路发送数据D(a,1);所述第一处理电路用于对所述数据D(a,1)进行处理得到数据D(1,2),并向第二处理电路发送所述数据D(1,2);所述第二处理电路至所述第m处理电路分别用于对接收到的数据进行处理,其中,第i处理电路用于对第i-1处理电路提供的数据D(i-1,i)进行处理得到数据D(i,i+1)并且所述第i处理电路,并向第i+1处理电路发送所述数据D(i,i+1);所述仲裁器还用于接收所述第m处理电路发送的数据D(m,a)
结合第二方面,在第二方面的第一种可能的实现方式中,
第x处理电路用于向所述第m+1处理电路发送数据D(x,m+1),所述数据D(x,m+1)等于数据D(x,x+1),所述数据D(x,x+1)为所述第x处理电路对第x-1处理电路提供的数据D(x-1,x)进行处理得到的,所述第x处理电路是所述第一处理电路至第m-1处理电路中的一个处理电路。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述第m+1处理电路用于对所述数据D(x,m+1)进行处理得到数据D(m+1,y);并向第y处理电路发送所述数据D(m+1,y),所述第y处理电路为第x+2处理电路至所述第m处理电路中的一个处理电路或者所述仲裁器。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,当所述第y处理电路为所述第x+2处理电路至所述第m处理电路中的一个处理电路时;所述第y处理电路还用于:接收所述数据D(m+1,y),对所述数据D(m+1,y)以及数据D(y-1,y)进行整合得到整合后的数据;其中,所述数据D(y-1,y)为第y-1处理电路提供的数据;并对所述整合后的数据进行处理得到第D(y,y+1)数据;向第y+1处理电路或者所述仲裁器发送所述数据D(y,y+1)
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述第y处理电路具体用于:仅保留所述数据D(m+1,y)和所述数据D(y-1, y)中的一个;或
将所述数据D(m+1,y)和所述数据D(y-1,y)按域对齐,在每个域,选择所述数据D(m+1,y)或所述数据D(y-1,y)在所述每个域的数据,形成所述整合后的数据。
结合第二方面或第二方面的第一种可能的实现方式至第二方面的第四种可能的实现方式中的任意一种,在第二方面的第五种可能的实现方式中,所述第一处理电路至所述第m处理电路中的每两个处理电路第p处理电路和第q处理电路,第p处理电路的输出端与第q处理电路的输入端之间存在连接,第q处理电路的输出端与第p处理电路的输入端之间不存在连接,p小于q。
第三方面,提供了一种数据处理设备,包括:
接收器,用于接收第一数据;
第二方面或第二方面的第一种可能的实现方式至第二方面的第五种可能的实现方式中任意一种所述的处理器,用于通过对所述第一数据进行处理得到第二数据;
发送器,用于发送所述第二数据。
本申请有益效果如下:
在本申请实施例中,仲裁器向第一处理电路发送数据D(a,1)。第一处理电路通过对数据D(a,1)进行处理得到数据D(1,2)。第一处理电路是m个处理电路中的一个处理电路。m个处理电路包括第一处理电路至第m处理电路。第一处理电路向第二处理电路发送数据D(1,2)。第二处理电路至第m处理电路分别对接收到的数据进行处理。其中,第i处理电路通过对第i-1处理电路提供的数据D(i-1,i)进行处理得到数据D(i,i+1)并且第i处理电路向第i+1处理电路发送数据D(i,i+1)。仲裁器接收第m处理电路发送的数据D(m,a)。m为大于1的整数。仲裁器以及第一处理电路至第m处理电路是处理器中的部件。处理器还包括第m+1处理电路。第一处理电路至第m+1处理电路中的每个处理电路能够接收仲裁器发送的第一待处理数据,并且对第一待处理数据进行处理。因此,当包含m+1个处理电路的处理器中的m个处理电路能够完成对数据的处理时,数据的处理过程只需要包括m级流水线。也就是说,m个处理电路分别对接收到的数据进行处理后,第m个处理电路将处理后的数据输出至仲裁器。现有技术中,包含m+1个处理电路的处理器对数据进行处理时,数据的处理过程需要包括m+1级流水线。也就是说,现有技术中,m+1个处理电路分别对接收到的数据进行处理后,第m+1个处理电路将处理后的数据输出至仲裁器。因此,本申请实施例中的数据处理方法可以降低数据处理的时延,提高数据处理的效率。
附图说明
图1为现有技术中采用流水线架构的网络处理器的结构示意图;
图2为本申请实施例提供的处理器的结构示意图;
图3a-图3b为本申请实施例中的流水线的结构示意图;
图4a-图4b为本申请实施例中的整合数据的示意图;
图5为本申请实施例中的处理电路的一个具体示例的结构图;
图6为本申请实施例中的环回处理的示意图;
图7为本申请实施例中的数据处理方法的流程图。
具体实施方式
本申请实施例提供一种一种数据处理方法及处理器,用以解决现有技术中存在的流水线固定而导致数据处理的时延较大的问题。
本申请实施例中的技术方案为解决上述的技术问题,总体思路如下:
在本申请实施例中,仲裁器向第一处理电路发送数据D(a,1)。第一处理电路通过对数据D(a,1)进行处理得到数据D(1,2)。第一处理电路是m个处理电路中的一个处理电路。m个处理电路包括第一处理电路至第m处理电路。第一处理电路向第二处理电路发送数据D(1,2)。第二处理电路至第m处理电路分别对接收到的数据进行处理。其中,第i处理电路通过对第i-1处理电路提供的数据D(i-1,i)进行处理得到数据D(i,i+1)并且第i处理电路向第i+1处理电路发送数据D(i,i+1)。仲裁器接收第m处理电路发送的数据D(m,a)。m为大于1的整数。仲裁器以及第一处理电路至第m处理电路是处理器中的部件。处理器还包括第m+1处理电路。第一处理电路至第m+1处理电路中的每个处理电路能够接收仲裁器发送的第一待处理数据。并且对第一待处理数据进行处理。因此,当包含m+1个处理电路的处理器中的m个处理电路能够完成对数据的处理时,数据的处理过程只需要包括m级流水线。也就是说,m个处理电路分别对接收到的数据进行处理后,第m个处理电路将处理后的数据输出至仲裁器。现有技术中,包含m+1个处理电路的处理器对数据进行处理时,数据的处理过程需要包括m+1级流水线。也就是说,现有技术中,m+1个处理电路分别对接收到的数据进行处理后,第m+1个处理电路将处理后的数据输出至仲裁器。因此,本申请实施例中的数据处理方法可以降低数据处理的时延,提高数据处理的效率。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图2为一个处理器的结构示意图。该处理器具体例如是网络处理器,也可以是中央处理器(英文:central processing unit,简称:CPU)。该处理器包括:仲裁器、m个处理电路以及第m+1个处理电路。m个处理电路包括第一处理电路至第m处理电路。m个处理电路分别与该仲裁器耦合。m为大于1的整数。第m+1个处理电路与该仲裁器耦合。第一处理电路至第m+1处理电路中的每个处理电路能够接收仲裁器发送的第一待处理数据,并且对第一待处理数据进行处理。
需要说明的是,“第一待处理数据”用于泛指待处理数据。本申请并不限定第一处理电路至第m+1处理电路中的每个处理电路能够接收到的数据必须相同。
需要说明的是,如无相反的说明,本申请中的数据D(x1,x2)是指x1向x2提供的数据。当x1或者x2等于a时,x1或者x2是指仲裁器(英文:arbiter,简称:a)。当x1或者x2等于某个数字或者用于表示数字的符号时,x1或者x2是指该数字或者该符号对应的处理电路。例如,当x1或者x2等于1时,x1或者x2是指第一处理电路。当x1或者x2等于m时,x1或者x2是指第m处理电路。
需要指出的是,本申请中的数据D(m,m+1)不是指第m处理电路向第m+1处理电路提供的数据,而是指第m处理电路向仲裁器提供的数据。也就是说,数据D(m,m+1)是指数据D(m,a)
其中,当仲裁器获得数据时,例如获得数据D(a,1),仲裁器用于向第一处理电路发送数据D(a,1);第一处理电路用于对数据D(a,1)进行处理得到数据D(1,2),并向第二处理电路发送数据D(1,2);第二处理电路至第m处理电路分别用于对接收到的数据进行处理。其中,第i处理电路用于对第i-1处理电路提供的数据D(i-1, i)进行处理得到数据D(i,i+1),并向第i+1处理电路发送数据D(i,i+1)。仲裁器还用于接收第m处理电路发送的数据D(m,a)。也就是说,i的取值范围是2至m中的所有正整数。例如,当m等于3时,i的取值范围是2和3。当m等于2时,i的取值为2。
第二处理电路至第m处理电路分别用于对接收到的数据进行处理具体包括:第二处理电路对第一处理电路提供的数据D(1,2)进行处理得到D(2,3)。第二处理电路至第m处理电路分别用于对接收到的数据进行处理具体包括:第m处理电路对第m-1处理电路提供的数据D(m-1,m)进行处理得到D(m,m+1)。根据上文,数据D(m,m+1)是指第m处理电路向仲裁器提供的数据。也就是说,数据D(m,m+1)是指数据D(m,a)。另外,当m等于2时,第二处理电路对第一处理电路提供的数据D(1,2)进行处理得到D(2,3)的操作与第m处理电路对第m-1处理电路提供的数据D(m-1,m)进行处理得到D(m,m+1)的操作是同一个操作。
以下举一个具体的例子来说明,请同时参考图2和图3a。假设处理器共有8级处理电路。如图3a所示,从左至右的级数分别为第一级至第八级。假设m取值为5,m个处理电路中的第一处理电路至第m处理电路分别对应第一级处理电路101、第三级处理电路102、第四级处理电路103、第五级处理电路104和第七级处理电路105,在本实施例中,第m+1处理电路例如为第2级处理电路,当然,也可以是第六级处理电路,也可以是第八级处理电路。
按照现有技术中的方法,尽管数据D(a,1)只需要5个处理电路的处理,但数据D(a,1)依然会被输入到第一级处理电路101中,然后按照处理电路的级数由小到大遍历第一级处理电路101、第二级处理电路106至第八级处理电路,才会输出到仲裁器。然而按照本申请实施例中的处理器的结构,数据D(a,1)只要经第一级处理电路101、第三级处理电路102、第四级处理电路103、第五级处理电路104和第七级处理电路105这5个处理电路处理,即可从第七级处理105电路输出至仲裁器。而不需要经过第m+1处理电路。即第二级处理电路106的处理。类似的,也不需要经过第六级处理电路的处理。换言之,可以跳过不需要经过的处理电路。进一步,因为从第m处理电路就可以将处理结果输出,所以也不需要再经过剩余的第八级处理电路的处理。即可以提前从处理电路组成的流水线上跳出。因此,本申请实施例中的处理器的结构可以降低数据处理的时延,提高数据处理的效率。
可选的,第一处理电路至第m处理电路分别根据第一代码至第m代码对接收的数据进行处理。其中,数据D(i,i+1)中包含第i+1代码的标识,第i处理电路为第一处理电路至第m-1处理电路。因此,通过第i+1代码的标识能够确定下一个处理电路为第i+1处理电路。换言之,当前处理电路能够确定下一个处理电路具体为哪级处理电路。举例来说,当前处理电路可以根据代码进行查表,查表后,输出一个stage ID,可以根据stage ID、stage ID与处理电路之间的映射关系,可以确定下一个处理电路。
可选的,对于本实施例中的第一处理电路具体为哪级处理电路,可以由仲裁器确定。在前述实施例中是以第一处理电路为第一级处理电路101为例进行说明的。但在实际运用中,第一处理电路也可能是第三级处理电路102。
可选地,图2所示处理器还可以包括可编程报文解析器。
举例来说,仲裁器可以根据如图2中所示的可编程报文解析器提供的stageID来确定第一处理电路,stage ID可以是第一处理电路对应的代码的标识。而解析器可以根据入端口确定stage ID。
可选的,第一处理电路至第m-1处理电路中的任一处理电路,记为第x处理电路,用于向第m+1处理电路发送数据D(x,m+1),数据D(x,m+1)等于数据D(x,x+1),数据D(x,x+1)为第x处理电路对第x-1处理电路提供的数据D(x-1,x)进行处理得到的。换言之,第x处理电路进行处理得到的数据D(x,x+1)被复制成两份,分别发送给第m-1处理电路和第x+1处理电路,其中发送给第x+1处理电路由前述描述第一处理电路至第m处理电路的处理方式可以得到。即,本申请实施例中的处理器的结构,支持并行处理的方式对数据进行处理,该结构通常应用于并行查找以降低时延的场景。需要说明的是,这里的数据D(x,m+1)的下标中,x表示该数据为第x处理电路提供的数据,m+1表示第m+1处理电路。
举例来说,假设第x处理电路为第一处理电路,第m+1电路为第二级处理电路106,如图3b所示,即第一级处理电路101,那么第一处理电路就可以对数据D(1,2)进行复制从而得到数据D(1,m+1),并分别将数据D(1,2)以及D(1,m+1)发送给第二级处理电路106和第三级处理电路102。
再假设,第x处理电路为第m-1处理电路,如图3b中所示的第五级处理电路104,第m+1处理电路为第八级处理电路,那么第五级处理电路104就可以对数据D(m-1,m)进行复制从而得到数据D(m-1,m+1),并分别发送给第七级处理电路105和第八级处理电路。
进一步,当第m+1接收到数据D(x,m+1)时,第m+1处理电路用于对数据D(x, m+1)进行处理得到数据D(m+1,y);并向第y处理电路发送数据D(m+1,y),第y处理电路为第x+2处理电路至第m处理电路中的一个处理电路或者仲裁器。
继续沿用前述所举的实例,在第一个例子中,第x处理电路为第一处理电路,那么第y处理电路就可以是第三处理电路至第m电路中的一个处理电路,如图3b中所示,第y处理电路为第三处理电路,即第四级处理电路103。在图3b所示的实施例中,并行处理只经过了一个处理电路,即第二处理电路,换言之,只有第二处理电路和第m+1处理电路并行处理,在第三处理电路处就汇聚了,但是在实际运用中,并行处理可以经过多个处理电路,例如可以是通过第二处理电路、第三处理电路、第四处理电路直至第m-1处理电路和第m+1处理电路并行处理,在第m处理电路处汇聚,此时第y处理电路为第m处理电路。
在前述第二个例子中,第x处理电路为第m-1处理电路,如图3b中所示的第五级处理电路104,第m+1处理电路为第八级处理电路,所以第m+1处理电路将数据D(m+1,y)发送给仲裁器,此时,第y处理电路即为仲裁器。
可选的,当第y处理电路为第x+2处理电路至第m处理电路中的一个处理电路时,第y处理电路还用于:接收数据D(m+1,y),对数据D(m+1,y)以及数据D(y-1, y)进行整合得到整合后的数据。其中,数据D(y-1,y)为第y-1处理电路提供的数据。第y处理电路还用于对整合后的数据进行处理得到第D(y,y+1)数据,以及向第y+1处理电路或者仲裁器发送数据D(y,y+1)。其中,当第y处理电路为第m处理电路时,第y处理电路向仲裁器发送数据D(y,y+1)
因为数据D(m+1,y)和数据D(y-1,y)达到第y处理电路的时间可能不一致,所以将二者进行整合,便于第y处理电路对这两个数据的处理。
在实际运用中,对两者进行整合的方式可以有多种。具体来说,第y处理电路具体用于:仅保留数据D(m+1,y)和数据D(y-1,y)中的一个。
可替换地,第y处理电路具体用于:将数据D(m+1,y)和数据D(y-1,y)按域对齐,在每个域,选择数据D(m+1,y)或数据D(y-1,y)在每个域的数据,形成整合后的数据。
具体来说,将数据D(m+1,y)和数据D(y-1,y)按域对齐可以是:数据D(m+1,y)和数据D(y-1,y)都包括多个域。将数据D(m+1,y)和数据D(y-1,y)中的相同的域对齐。例如,数据D(m+1,y)和数据D(y-1,y)都可以包括目的网际协议(英文:internet protocol,简称:IP)地址域以及目的媒体访问控制(英文:media access control,简称:MAC)协议地址域。其中,目的IP地址域用于承载目的IP地址。目的MAC地址域用于承载目的MAC地址。
对于将数据D(m+1,y)和数据D(y-1,y)按域对齐,在每个域,选择数据D(m+1,y)或数据D(y-1,y)在每个域的数据,形成整合后的数据的方式,请参考图4a和图4b所示,为两种不同的实现方式。
在图4a的方式中,将数据D(m+1,y)和数据D(y-1,y)按域对齐,例如每个数据有4个域,在每个域上,可以指定一个独占的输入源,例如在图4a所示的方式中,在整合后的数据的域1上,保留数据D(m+1,y)的域1上的数据AB,在整合后的数据的域2上,保留数据D(y-1,y)的域2上的数据34,在整合后的数据的域3上,保留数据D(y-1,y)的域3上的数据56,在整合后的数据的域4上,保留数据D(m+1, y)的域4上的数据,其中,黑色表示无效数据。举例来说,无效数据可以是未赋值数据或处理电路将对应域无效化的域数据。
在图4b的方式中,与图4a中的方式类似。不同的是,在每个域上,按照数据D(m+1,y)和数据D(y-1,y)的优先级来确定保留哪个数据。在图4b中,在域1和域3上,数据D(m+1,y)的优先级大于数据D(y-1,y)的优先级。在域2和域4上,数据D(m+1,y)的优先级小于数据D(y-1,y)的优先级。
举例来说,数据D(m+1,y)和数据D(y-1,y)可以携带用于指示各自的每个域的优先级的信息。整合后的数据中每个域的值等于优先级高的对应的域的值。
例如,数据D(m+1,y)携带的目的IP地址域的优先级的信息指示数据D(m+1,y)的目的IP地址域的优先级为高。数据D(y-1,y)携带的目的IP地址域的优先级的信息指示数据D(y-1,y)的目的IP地址域的优先级为低。数据D(m+1,y)携带的目的MAC地址域的优先级的信息指示数据D(m+1,y)的目的MAC地址域的优先级为低。数据D(y-1,y)携带的目的MAC地址域的优先级的信息指示数据D(y-1,y)的目的MAC地址域的优先级为高。因此,整合后的数据中目的IP地址域的值等于数据D(m+1,y)中目的IP地址域的值。整合后的数据中目的MAC地址域的值等于数据D(y-1,y)中目的MAC地址域的值。
结合以上各实施例,第一处理电路至第m处理电路中的每两个处理电路第p处理电路和第q处理电路,第p处理电路的输出端与第q处理电路的输入端之间存在连接,第q处理电路的输出端与第p处理电路的输入端之间不存在连接,p小于q。如图5所示。换言之,处理器的N级处理电路之间,第j级处理电路的输出端与第j+1级至第N级处理电路的输入之间存在连接,而不与第1级至第j-1级处理电路的输入端之间不存在连接。
接下来将举一个具体的例子说明本申请实施例中的处理器的一种可能的实现结构,假设处理器共有m+1级处理电路,m个处理电路分别对应至第一级处理电路至第m级处理电路,第m+1处理电路对应到第m+1级处理电路。每个处理电路包括:重组缓存器、调度器和处理单元。例如:请参考图5所示,第一级处理电路包括:重组缓存器1、调度器1和第一处理单元(图中未示出)。仲裁器的输出端可以连接到所有的处理电路的输入端;第一处理单元的输出端可以连接到第二处理电路至第m+1级处理电路的输入端。
每级处理电路接收到数据之后,可以先存储在重组缓存器中,前述数据的整合可以由重组缓存器来执行。当重组缓存器中存储的数据来自多个不同的输入源时,调度器具体可以根据预定的规则对多个输入源的输入数据进行选择调度至处理单元,例如:多个输入源的输入数据中将哪个数据先调度至处理单元进行处理。
举例来说,预定的规则可以是基于数据或流水线级数的优先级进行严格优先级调度规则,也可以是轮询的调度规则。
可选的,处理单元主要完成协议无关转发的具体处理动作,处理单元可以包括查表单元和动作单元,实现查表和执行转发动作的功能。动作单元的具体实现方法,既可以使用一个或多个处理器核并行处理输入数据,这种方式可以进行相对复杂的处理操作;也可以使用多个算数逻辑单元的串并组合进行处理,这种实现方式相对简单。
进一步,本实施例中的处理器还可以解决传统流水线复杂处理环回性能减半的问题,方法是将环回的指令均匀部署在多个处理电路上,实现类似于负载均衡的效果,提高整条流水线的吞吐能力,所以当输出至仲裁器的数据D(a,1)不是最终的处理结果时,就表示需要环回,所以仲裁器具体还用于将需要环回的数据D(a,1)对应的流量均匀分配至m个处理电路上继续处理,此时,m个处理电路形成多段相互独立的处理流水线,这多段相互独立的处理流水线并行处理数据D(a,1)
举例来说,请参考图6所示,假设流水线共有九级处理电路,而转发业务需要10级处理电路才能完成处理工作。使用传统流水线的环回方式,即数据遍历两遍九级处理电路,会将整条业务的吞吐率降为流水线吞吐率的50%。可以将处理切成两段,前一段占用8个处理电路,映射到第1至8级处理电路上,负责流水线吞吐率80%的数据的处理;而后一段占用2个,利用逐包负载分担的方式,例如仲裁器接收到第一个处理结果时,就分配给第1级处理电路进行处理,当接收到第二个处理结果时,就分配给第3级处理电路进行处理,依此类推,就等效于将80%的流量均匀分布在四段短的流水线上,每段流水线处理20%的流量。这样,总计可以实现流水线吞吐速率80%的数据处理,其性能明显优于传统流水线架构的50%。
可选的,处理器还包括:报文编辑器,仲裁器将处理结果输出给报文编辑器,报文编辑器用于对输入的数据D(a,1)根据报文转发的需求进行相应的编辑操作,例如插入、替换或删除某层协议头或字段,计算校验和等。
在实际运用中,本申请实施例中的处理器可以应用于交换机、路由器或者其他需要进行流水线处理的数据处理设备。该数据处理设备包括:接收器,用于接收第一数据。如前述各实施例中描述的处理器,用于通过对第一数据进行处理得到第二数据。发送器,用于发送第二数据。
基于同一发明构思,本申请实施例还提供一种数据处理方法。所述方法的执行主体可以是处理器。图7为所述方法的流程示意图。图2、图3a和/或者图3b所示的处理器可以用于执行图7所示的方法。图7所示的方法涉及到的术语的含义以及具体实现,可以参考图2、图3a和/或者图3b以及实施例的相关描述。请参考图7所示,该方法包括以下内容:
401:仲裁器向第一处理电路发送数据D(a,1)
402:第一处理电路通过对数据D(a,1)进行处理得到数据D(1,2)
403:第一处理电路向第二处理电路发送数据D(1,2)
404:第二处理电路至第m处理电路分别对接收到的数据进行处理,其中,第i处理电路通过对第i-1处理电路提供的数据D(i-1,i)进行处理得到数据D(i,i+1)并且第i处理电路向第i+1处理电路发送数据D(i,i+1)
405:仲裁器接收第m处理电路发送的数据D(m,a)
可选的,第x处理电路向第m+1处理电路发送数据D(x,m+1),数据D(x,m+1)等于数据D(x,x+1),数据D(x,x+1)为第x处理电路对第x-1处理电路提供的数据D(x-1,x)进行处理得到的,第x处理电路是第一处理电路至第m-1处理电路中的一个处理电路。
进一步,在第x处理电路向第m+1处理电路发送数据D(x,m+1)之后,该方法还包括:第m+1处理电路通过对数据D(x,m+1)进行处理得到数据D(m+1,y);第m+1处理电路向第y处理电路发送数据D(m+1,y),第y处理电路为第x+2处理电路至第m处理电路中的一个处理电路或者仲裁器。
进一步,该方法还包括:第y处理电路接收数据D(m+1,y),第y处理电路为第x+2处理电路至第m处理电路中的一个处理电路;第y处理电路通过对数据D(m+1,y)以及数据D(y-1,y)进行整合得到整合后的数据;其中,数据D(y-1,y)为第y-1处理电路提供的数据;第y处理电路通过对整合后的数据进行处理得到第D(y,y+1)数据;第y处理电路向第y+1处理电路或者仲裁器发送数据D(y,y+1)
进一步,第y处理电路通过对数据D(m+1,y)以及数据D(y-1,y)进行整合得到整合后的数据,具体包括:第y处理电路仅保留数据D(m+1,y)和数据D(y-1,y)中的一个;或,第y处理电路将数据D(m+1,y)和数据D(y-1,y)按域对齐,在每个域,选择数据D(m+1,y)或数据D(y-1,y)在每个域的数据,形成整合后的数据。
结合以上各实施例,第一处理电路至第m处理电路中的每两个处理电路第p处理电路和第q处理电路,第p处理电路的输出端与第q处理电路的输入端之间存在连接,第q处理电路的输出端与第p处理电路的输入端之间不存在连接,p小于q。
其中,本实施例中的数据处理方法的具体实施方式,在前述描述处理器及其各个元件的工作过程时已做了详细描述,在此基础上,本领域技术人员可以清楚的知道本实施例中数据处理方法的实施方法,所以为了说明书的简洁,在此不再详述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (13)

1.一种数据处理方法,其特征在于,包括:
仲裁器向第一处理电路发送数据D(a,1)
所述第一处理电路通过对所述数据D(a,1)进行处理得到数据D(1,2),所述第一处理电路是m个处理电路中的一个处理电路,所述m个处理电路包括所述第一处理电路至第m处理电路;
所述第一处理电路向第二处理电路发送所述数据D(1,2)
所述第二处理电路至所述第m处理电路分别对接收到的数据进行处理,其中,第i处理电路通过对第i-1处理电路提供的数据D(i-1,i)进行处理得到数据D(i, i+1)并且所述第i处理电路向第i+1处理电路发送所述数据D(i,i+1)
所述仲裁器接收所述第m处理电路发送的数据D(m,a),m为大于1的整数,所述仲裁器以及所述第一处理电路至所述第m处理电路是处理器中的部件,所述处理器还包括第m+1处理电路,所述第一处理电路至所述第m+1处理电路中的每个处理电路能够接收所述仲裁器发送的第一待处理数据,并且对所述第一待处理数据进行处理。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
第x处理电路向所述第m+1处理电路发送数据D(x,m+1),所述数据D(x,m+1)等于数据D(x,x+1),所述数据D(x,x+1)为所述第x处理电路对第x-1处理电路提供的数据D(x-1,x)进行处理得到的,所述第x处理电路是所述第一处理电路至第m-1处理电路中的一个处理电路。
3.如权利要求2所述的方法,其特征在于,在所述第x处理电路向所述第m+1处理电路发送数据D(x,m+1)之后,所述方法还包括:
所述第m+1处理电路通过对所述数据D(x,m+1)进行处理得到数据D(m+1,y)
所述第m+1处理电路向第y处理电路发送所述数据D(m+1,y),所述第y处理电路为第x+2处理电路至所述第m处理电路中的一个处理电路或者所述仲裁器。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
所述第y处理电路接收所述数据D(m+1,y),所述第y处理电路为所述第x+2处理电路至所述第m处理电路中的一个处理电路;
所述第y处理电路通过对所述数据D(m+1,y)以及数据D(y-1,y)进行整合得到整合后的数据;其中,所述数据D(y-1,y)为第y-1处理电路提供的数据;
所述第y处理电路通过对所述整合后的数据进行处理得到第D(y,y+1)数据;
所述第y处理电路向第y+1处理电路或者所述仲裁器发送所述数据D(y,y+1)
5.如权利要求4所述的方法,其特征在于,所述第y处理电路通过对所述数据D(m+1,y)以及数据D(y-1,y)进行整合得到整合后的数据,具体包括:
所述第y处理电路仅保留所述数据D(m+1,y)和所述数据D(y-1,y)中的一个;或
所述第y处理电路将所述数据D(m+1,y)和所述数据D(y-1,y)按域对齐,在每个域,选择所述数据D(m+1,y)或所述数据D(y-1,y)在所述每个域的数据,形成所述整合后的数据。
6.如权利要求1-5任一项所述的方法,其特征在于,所述第一处理电路至所述第m处理电路中的每两个处理电路第p处理电路和第q处理电路,第p处理电路的输出端与第q处理电路的输入端之间存在连接,第q处理电路的输出端与第p处理电路的输入端之间不存在连接,p小于q。
7.一种处理器,其特征在于,包括:
仲裁器;
m个处理电路,包括第一处理电路至第m处理电路,所述m个处理电路分别与所述仲裁器耦合;m为大于1的整数;
第m+1个处理电路,与所述仲裁器耦合,所述第一处理电路至所述第m+1处理电路中的每个处理电路能够接收所述仲裁器发送的第一待处理数据,并且对所述第一待处理数据进行处理;
其中,所述仲裁器用于向所述第一处理电路发送数据D(a,1);所述第一处理电路用于对所述数据D(a,1)进行处理得到数据D(1,2),并向第二处理电路发送所述数据D(1,2);所述第二处理电路至所述第m处理电路分别用于对接收到的数据进行处理,其中,第i处理电路用于对第i-1处理电路提供的数据D(i-1,i)进行处理得到数据D(i,i+1)并且所述第i处理电路,并向第i+1处理电路发送所述数据D(i,i+1);所述仲裁器还用于接收所述第m处理电路发送的数据D(m,a)
8.如权利要求7所述的处理器,其特征在于,
第x处理电路用于向所述第m+1处理电路发送数据D(x,m+1),所述数据D(x,m+1)等于数据D(x,x+1),所述数据D(x,x+1)为所述第x处理电路对第x-1处理电路提供的数据D(x-1,x)进行处理得到的,所述第x处理电路是所述第一处理电路至第m-1处理电路中的一个处理电路。
9.如权利要求8所述的处理器,其特征在于,
所述第m+1处理电路用于对所述数据D(x,m+1)进行处理得到数据D(m+1,y);并向第y处理电路发送所述数据D(m+1,y),所述第y处理电路为第x+2处理电路至所述第m处理电路中的一个处理电路或者所述仲裁器。
10.如权利要求9所述的处理器,其特征在于,当所述第y处理电路为所述第x+2处理电路至所述第m处理电路中的一个处理电路时;所述第y处理电路还用于:接收所述数据D(m+1,y),对所述数据D(m+1,y)以及数据D(y-1,y)进行整合得到整合后的数据;其中,所述数据D(y-1,y)为第y-1处理电路提供的数据;并对所述整合后的数据进行处理得到第D(y,y+1)数据;向第y+1处理电路或者所述仲裁器发送所述数据D(y,y+1)
11.如权利要求10所述的处理器,其特征在于,所述第y处理电路具体用于:仅保留所述数据D(m+1,y)和所述数据D(y-1,y)中的一个;或
将所述数据D(m+1,y)和所述数据D(y-1,y)按域对齐,在每个域,选择所述数据D(m+1,y)或所述数据D(y-1,y)在所述每个域的数据,形成所述整合后的数据。
12.如权利要求7-11任一项所述的处理器,其特征在于,所述第一处理电路至所述第m处理电路中的每两个处理电路第p处理电路和第q处理电路,第p处理电路的输出端与第q处理电路的输入端之间存在连接,第q处理电路的输出端与第p处理电路的输入端之间不存在连接,p小于q。
13.一种数据处理设备,其特征在于,包括:
接收器,用于接收第一数据;
如权利要求7-12任一项所述的处理器,用于通过对所述第一数据进行处理得到第二数据;
发送器,用于发送所述第二数据。
CN201410182569.4A 2014-04-30 2014-04-30 一种数据处理方法、处理器及数据处理设备 Active CN103955445B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201410182569.4A CN103955445B (zh) 2014-04-30 2014-04-30 一种数据处理方法、处理器及数据处理设备
EP15785616.2A EP3128437A4 (en) 2014-04-30 2015-04-02 Data processing method, processor, and data processing device
PCT/CN2015/075783 WO2015165323A1 (zh) 2014-04-30 2015-04-02 一种数据处理方法、处理器及数据处理设备
US15/337,872 US10025752B2 (en) 2014-04-30 2016-10-28 Data processing method, processor, and data processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410182569.4A CN103955445B (zh) 2014-04-30 2014-04-30 一种数据处理方法、处理器及数据处理设备

Publications (2)

Publication Number Publication Date
CN103955445A true CN103955445A (zh) 2014-07-30
CN103955445B CN103955445B (zh) 2017-04-05

Family

ID=51332720

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410182569.4A Active CN103955445B (zh) 2014-04-30 2014-04-30 一种数据处理方法、处理器及数据处理设备

Country Status (4)

Country Link
US (1) US10025752B2 (zh)
EP (1) EP3128437A4 (zh)
CN (1) CN103955445B (zh)
WO (1) WO2015165323A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015165323A1 (zh) * 2014-04-30 2015-11-05 华为技术有限公司 一种数据处理方法、处理器及数据处理设备
CN114363273A (zh) * 2020-09-30 2022-04-15 华为技术有限公司 处理报文的方法和芯片
CN114363258A (zh) * 2022-03-17 2022-04-15 中国人民解放军国防科技大学 一种报文处理装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5852742A (en) * 1997-06-17 1998-12-22 Hewlett-Packard Company Configurable data processing pipeline
CN1466347A (zh) * 2002-06-15 2004-01-07 华为技术有限公司 高速数据链路控制协议接收处理模块及其数据处理方法
CN1643499A (zh) * 1999-12-28 2005-07-20 英特尔公司 在多线程网络处理器中的线程信令
CN1885822A (zh) * 2005-06-25 2006-12-27 华为技术有限公司 一种网络处理器

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5050095A (en) * 1988-05-31 1991-09-17 Honeywell Inc. Neural network auto-associative memory with two rules for varying the weights
US7742416B2 (en) * 2006-11-30 2010-06-22 Cisco Technology, Inc. Control of preemption-based beat-down effect
US8122455B2 (en) * 2007-06-26 2012-02-21 Intel Corporation Balancing of load in a network processor
CN101477512B (zh) * 2009-01-16 2011-03-23 中国科学院计算技术研究所 一种处理器系统及其访存方法
US8255644B2 (en) * 2009-05-18 2012-08-28 Lsi Corporation Network communications processor architecture with memory load balancing
US8571021B2 (en) * 2009-06-10 2013-10-29 Microchip Technology Incorporated Packet based data transmission with reduced data size
CN102122275A (zh) 2010-01-08 2011-07-13 上海芯豪微电子有限公司 一种可配置处理器
US8442056B2 (en) * 2011-06-28 2013-05-14 Marvell International Ltd. Scheduling packets in a packet-processing pipeline
CN102306139A (zh) * 2011-08-23 2012-01-04 北京科技大学 用于ofdm无线通信系统的异构多核数字信号处理器
EP2798467A4 (en) * 2011-12-30 2016-04-27 Intel Corp CONFIGURABLE CORE WITH RESTRICTED COMMAND SET
CN103955445B (zh) * 2014-04-30 2017-04-05 华为技术有限公司 一种数据处理方法、处理器及数据处理设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5852742A (en) * 1997-06-17 1998-12-22 Hewlett-Packard Company Configurable data processing pipeline
CN1643499A (zh) * 1999-12-28 2005-07-20 英特尔公司 在多线程网络处理器中的线程信令
CN1466347A (zh) * 2002-06-15 2004-01-07 华为技术有限公司 高速数据链路控制协议接收处理模块及其数据处理方法
CN1885822A (zh) * 2005-06-25 2006-12-27 华为技术有限公司 一种网络处理器

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015165323A1 (zh) * 2014-04-30 2015-11-05 华为技术有限公司 一种数据处理方法、处理器及数据处理设备
US10025752B2 (en) 2014-04-30 2018-07-17 Huawei Technologies Co., Ltd. Data processing method, processor, and data processing device
CN114363273A (zh) * 2020-09-30 2022-04-15 华为技术有限公司 处理报文的方法和芯片
CN114363258A (zh) * 2022-03-17 2022-04-15 中国人民解放军国防科技大学 一种报文处理装置

Also Published As

Publication number Publication date
US10025752B2 (en) 2018-07-17
US20170046306A1 (en) 2017-02-16
CN103955445B (zh) 2017-04-05
EP3128437A4 (en) 2017-05-31
WO2015165323A1 (zh) 2015-11-05
EP3128437A1 (en) 2017-02-08

Similar Documents

Publication Publication Date Title
US8274980B2 (en) Ethernet link aggregation
WO2015106729A1 (zh) 一种负载均衡方法、装置和系统、计算机存储介质
CN102546424B (zh) 报文保序方法及装置
CN102801635B (zh) 在多核处理器系统中使用的报文保序方法
US20170237689A1 (en) Two-Stage Port-Channel Resolution in a Multistage Fabric Switch
US9716592B1 (en) Traffic distribution over multiple paths in a network while maintaining flow affinity
US20160134513A1 (en) Concerted Multi-Destination Forwarding in a Joint TRILL Fabric and VXLAN/IP Fabric Data Center
US20130258838A1 (en) Minimal data loss load balancing on link aggregation groups
CN105474168B (zh) 网络装置执行的数据处理方法和相关设备
US9135833B2 (en) Process for selecting compressed key bits for collision resolution in hash lookup table
US10715424B2 (en) Network traffic management with queues affinitized to one or more cores
CN104394083A (zh) 转发表项处理的方法、报文转发的方法及其装置和系统
CN105763472A (zh) 一种跨板转发的方法和装置
US9479438B2 (en) Link aggregation based on virtual interfaces of VLANs
US20140006757A1 (en) Method for Thread Reduction in a Multi-Thread Packet Processor
CN103955445A (zh) 一种数据处理方法、处理器及数据处理设备
CN105635000A (zh) 一种报文存储转发方法和电路及设备
CN107786447A (zh) 一种基于fpga的报文转发方法及设备
CN104394075B (zh) 一种报文传输的方法和设备
CN103281205B (zh) 一种配置端口隔离信息的方法和网络设备
US10177935B2 (en) Data transfer system, data transfer server, data transfer method, and program recording medium
WO2016188032A1 (zh) 利用流表转发数据的方法及系统
CN110636003A (zh) 报文转发方法、装置、系统和计算机可读存储介质
US9007910B2 (en) Load balancing across a link aggregation group
CN104468385A (zh) 一种转发表项处理方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant