CN1885822A - 一种网络处理器 - Google Patents
一种网络处理器 Download PDFInfo
- Publication number
- CN1885822A CN1885822A CNA2005100787925A CN200510078792A CN1885822A CN 1885822 A CN1885822 A CN 1885822A CN A2005100787925 A CNA2005100787925 A CN A2005100787925A CN 200510078792 A CN200510078792 A CN 200510078792A CN 1885822 A CN1885822 A CN 1885822A
- Authority
- CN
- China
- Prior art keywords
- streamline
- forwarding
- processing unit
- micro engine
- message
- 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
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/60—Router architectures
-
- 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
- H04L49/109—Integrated on microchip, e.g. switch-on-chip
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3063—Pipelined operation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种网络处理器,包括:可编程专用集成电路ASIC模块,集成了一条或一条以上用于对报文进行主转发处理的主转发硬件流水线;微引擎模块,集成了一个或一个以上可编程的微引擎,用于通过软件对报文进行辅转发处理;所述主转发硬件流水线中的指定步骤之间进一步通过判断部件连接,该判断部件与所述微引擎模块中的指定微引擎对应连接,用于判断主转发硬件流水线中本判断部件之前的步骤处理过的报文是否需要进行辅转发处理,如果是,则通知对应的微引擎对报文进行辅转发处理,否则,通知主转发硬件流水线中本判断部件之后的步骤对该报文进行主转发处理。本发明既具有较高的灵活性和可靠性,又在业务增加时对性能没有影响,指令空间需求低。
Description
技术领域
本发明涉及现代通信系统中的转发技术,尤其涉及一种适合IP网络中报文转发的网络处理器。
背景技术
在现代通信系统中,信源设备将信息发送给信宿设备的过程中,一般都经过转发设备对信息进行转发。到目前,转发技术的发展主要经历了以下5个阶段。
第一代转发技术:主要采用软件集中式转发和总线交换技术。图1为第一代转发设备的结构示意图。参见图1,转发设备的接口卡与中央处理器(CPU)之间通过内部总线相连;CPU负责所有事务处理,包括路由收集、转发处理、设备管理等;接口卡上的接口收到信息报文后通过内部总线传递给CPU,由CPU完成所有处理后从另一个接口传递出去。这种转发设备,可以通过一台计算机插入若干接口卡组成。典型的第一代转发设备例如:Cisco2500系列路由器、华为Quidway R2500系列路由器等。
第二代转发技术:主要采用高速缓存(Cache)技术。图2为第二代转发设备的结构示意图。参见图2,在第一代转发设备的接口卡上增加Cache,把少数常用的路由信息采用Cache技术保留在业务接口卡上。由于网络用户通常只会访问少数的几个地方,因此大多数报文就可以直接通过业务接口卡上Cache的路由表进行转发,以减少对总线和CPU的需求;对于Cache中不能找到的报文则再送交CPU处理转发。典型的第二代转发设备例如:Cisco4500系列路由器、华为Quidway R3600系列路由器等。
第三代转发技术:采用全分布式结构,即路由与转发相分离的技术。转发设备包括主控板和业务板,主控板负责整个设备的管理以及路由的收集、计算功能,并把计算形成的转发表下发到各业务板。图3为第三代转发设备的业务板结构示意图。参见图3,业务板包括多个转发CPU,各CPU根据保存的路由转发表进行独立地路由转发。另外由于总线技术也得到了较大的发展,所以通过总线,业务板之间的数据转发完全独立于主控板,实现了并行高速处理,使得转发设备的处理性能成倍提高。典型的第三代转发设备例如:华为NE16/08系统列路由器。
第四代转发技术:把转发过程的所有细节全部采用硬件方式来实现。图4A为第四代转发设备的结构示意图。参见图4A,采用大规模可编程逻辑器件(FPGA)转发引擎或更高级的可编程专用集成电路(ASIC)转发引擎代替第三代转发设备中各业务板中的CPU,解决了CPU转发性能低下、端口密度和速度低的问题;另外用交换矩阵代替第三代转发设备中的交换总线,交换矩阵采用纵横(CrossBar)技术或共享内存技术。典型的第四代转发设备例如早期的千兆交换路由器(GSR,Gigabit Switch Router),该路由器的性能可达到千兆比特。
图4B为第四代转发设备中FPGA/AISC转发引擎的示意图。参见图4B,FPGA/AISC转发引擎40中集成了转发业务流程41,转发业务流程41一般通过一条或多条硬件流水线来,一条硬件流水线可能包括多个步骤(Step),例如Step1、Step2、......、Stepn,每个步骤都通过对应的可编程器件实现;另外,FPGA/AISC转发引擎40中还包括特殊硬件部件42,例如:用于访问外存的硬件接口部件、对报文进行初步链路层识别的部件、接三态内容寻址存储器(TCAM)的接口处理部件、内部集成的介质访问地址(MAC)部件等等。由于第四代转发技术中全部通过硬件实现转发业务流程,因此其性能高,且开发出来后,性能稳定,可靠性高。
但是,第四代转发技术存在以下缺点:
开发周期长。根据业界数据统计,对于开发同样一个业务特性,ASIC转发引擎的开发周期至少为用软件实现该业务特性的开发周期的三倍。
不灵活,无法增加新特性。由于全部用硬件实现转发业务,所以一旦要增加新的业务特性,需要重新设计FPGA/AISC芯片,用户需要重新更换硬件,不利于保护用户投资。由于转发设备目前主要在IP领域使用,而IP技术日新月异,发展很快,所以这个矛盾非常突出。
开发成本高。一次的开发投片费用高达上百万美元,如果因为增加业务特性而频繁更新FPGA/AISC芯片,成本较大。
为了解决第四代转发技术的ASIC芯片开发周期长,无法满足IP领域日新月异发展需求的技术问题,又出现了第五代转发技术。
第五代转发技术:采用了可编程的、专为IP网络设计的网络处理器。图5A为第五代转发设备的结构示意图。参见图5A,从技术上,第五代转发设备在硬件体系结构上继承了第四代转发设备的成果,也包括转发处理引擎和交换矩阵,但是在关键的IP业务流程处理上采用了可编程的、专为IP网络设计的网络处理器(Network Processor,NP)作为转发处理引擎。典型的第五代转发设备例如:华为NE 80/40系列产品等。
NP是一种可编程器件,它特定地应用于通信领域的各种任务,比如包处理、协议分析、路由查找、声音/数据的汇聚、防火墙、QOS;目前的NP一般指综合业务的网络处理器,即完成各种转发功能的网络处理器。
图5B为第五代转发设备中NP作为转发引擎的结构示意图。参见图5,NP50通常由若干微处理器(ME,MicroEngine)51、硬件协处理器52、特殊硬件部件53、以及内嵌CPU54组成。多个微处理器51并行处理,通过软件来实现转发控制处理流程;对于一些复杂的标准的操作,例如内存操作、路由表查找算法、服务质量(QoS)的拥塞控制算法、流量调度算法等操作采用硬件协处理器来提高处理性能。这样可以实现业务灵活性和高性能的有机结合。特殊硬件部件53为硬件加速器,可根据实际选择使用。例如,该部件可以为在数据包进入NP时根据端口配置的类型对数据包进行初步分析的部件、产生序列号并保证转发顺序的部件、加快外存访问的部件、以及进行内存自动管理的硬件部件等。内嵌CPU54用于做NP和其它外围CPU通信的中间部件,也可以处理一些NP管理功能或者链路层协议处理功能,还可以处理一些NP微引擎软件诊断调试功能等。
NP主要有以下特点和优点:
1,性能高。由于NP内部一般都集成了几个甚至几十个转发ME和硬件协处理器、以及硬件加速器,转发流程中的许多算法由硬件实现,从而在ME实现复杂的拥塞管理、队列调度、流分类和QOS功能的前提下,还可以利用硬件协处理器达到更高的查找、转发性能,实现所谓的“硬转发”。例如,目前已经投入商用的有支持转发速率2.5G比特/秒(BPS,Bit Per second)的NP、支持10G BPS的NP、支持40G BPS口的NP。
2,可以进行灵活的功能扩展。由于ME可以进行编程,一旦有新的技术或者需求出现,可以很方便的通过软件编程进行实现,系统的功能可以通过软件模块方便的添加删除。所以对于特殊的用户需求,可以进行定制开发,即可以在短时间内通过模块删减开发出能满足不同用户需求的产品。而FPGA实现功能扩展的情况下,需要修改管脚功能,重新调试升级,多数情况下其他的特殊硬件部件也需要改动,为系统可靠性代理很大的隐患;用AISC芯片实现功能扩展的情况下,无法对新的功能进行添加只能重新设计,更新芯片。在开发时间上,按照业界的经验数字,软件开发时间一般为6个月,而用FPGA实现的时间为18个月,用ASIC实现的时间更长,通常需要2~3年的时间,随着网络处理器使用C语言编程的推进,开发周期变的将会更短。因此,相对第四代转发技术,NP具有更灵活的功能扩展能力。
3,可靠性高。由于大部分NP系统都使用一个或者两个芯片实现,芯片出厂前都经过了严格的测试和各种抗干扰和破坏性试验,从而使NP系统的可靠性大大提高。因此NP特别适合用于开发电信级数据通信产品。
但是,目前的NP也有如下缺点:
1、随着业务的增加,NP的性能会有下降。因为转发功能都是通过软件实现,所以每增加一个新功能特性,必然需要在软件主流程中增加若干判断语句,将特殊报文走分支流程处理,从而会导致主业务性能下降。尤其在新业务功能特性增加较多时,这个矛盾就更明显。
2、指令空间问题。由于NP的指令读速度要求很高,所以指令都存储在片内实现。由于集成度有限制,所以指令空间不可能做到很大,一般在几万条指令级别。随着业务的增加,由于所有业务功能都使用软件实现,指令需求数量巨大,因此片内指令空间满足不了这些指令数量需求。
发明内容
有鉴于此,本发明的主要目的在于提供一种网络处理器,综合现有ASIC转发引擎和现有网络处理器的优点,既具有较高的灵活性和可靠性,又在业务增加时对性能没有影响,指令空间需求低。
为了实现上述目的,本发明的技术方案为:
一种网络处理器,该网络处理器包括:
可编程专用集成电路ASIC模块,集成了一条或一条以上用于对报文进行主转发处理的主转发硬件流水线;
微引擎模块,集成了一个或一个以上可编程的微引擎,所述微引擎用于通过软件对报文进行辅转发处理;
所述主转发硬件流水线中的指定步骤之间进一步通过判断部件连接,该判断部件与所述微引擎模块中的指定微引擎对应连接,用于判断主转发硬件流水线中经本判断部件之前的步骤处理过的报文是否需要进行辅转发处理,如果是,则通知对应的微引擎对报文进行辅转发处理,否则,通知主转发硬件流水线中本判断部件之后的步骤对该报文进行主转发处理。
优选地,所述的主转发硬件流水线中包括但不限于:
用于进行链路层处理的集成电路流水线;
或用于进行桥接转发处理的集成电路流水线;
或用于进行IPV4转发处理的集成电路流水线;
或用于进行IPV6转发处理的集成电路流水线;
或用于进行多协议标签交换转发处理的集成电路流水线;
或用于进行多播转发处理的集成电路流水线;
或以上所述集成电路流水线的任意组合。
所述用于进行链路层处理的集成电路流水线包括但不限于:
用于进行以太网链路层处理的集成电路流水线;
或用于进行点到点协议链路层处理的集成电路流水线;
或用于进行高层数据链路控制协议链路层处理的集成电路流水线;
或以上所述三种集成电路流水线的任意组合。
优选地,该网络处理器进一步包括端口配置模块,与所述主转发硬件流水线和所述微引擎模块连接,用于存放端口跳转配置信息,并根据该跳转配置信息将进入端口的报文跳转到所述的主转发硬件流水线处理或者跳转到所述的微引擎模块处理。
优选地,所述判断部件中存储有辅转发处理的触发条件,该判断部件通过判断所述主转发硬件流水线中经本判断部件之前的步骤处理过的报文结果或报文的内容是否符合其存储的触发条件来判定所转发报文是否需要进行辅转发处理。
优选地,所述微引擎模块中进一步包括协处理器,与微引擎连接,用于协助所述微引擎进行辅转发处理。
优选地,该网络处理器进一步包括与主转发硬件流水线和微引擎连接的、用于协助所述主转发硬件流水线和微引擎进行转发处理的硬件加速器。
优选地,所述微引擎进一步与所述主转发硬件流水线中的指定环节连接、或与网络处理器的出接口连接,所述微引擎的处理结果返回给与其相连的所述主转发硬件流水线的指定环节处理,或者直接输出到网络处理器的出接口。
优选地,所述判断部件包括:
中间处理结果寄存器,用于存储所述主转发硬件流水线中本判断部件之前的步骤对所转发报文进行处理的中间结果;
报文协议域提取寄存器,用于提取并存储所转发报文特定协议域中的内容;
触发条件配置器,用于存储辅转发处理的触发条件;
比较部件,用于比较判断所述中间处理结构寄存器或报文协议域提取寄存器中的内容是否符合触发条件配置器中的对应触发条件,符合则通知包处理结果转移部件进行处理,不符合则通知所述主转发硬件流水线中本判断部件之后的步骤进行处理;
包处理结果转移部件,用于接收到比较部件的通知即将所述中间结果和报文的存储描述符拷贝到微引擎指定的寄存器由微引擎进行处理。
所述触发条件配置器中触发条件的匹配方式为:全匹配方式、三态掩码匹配方式、或范围匹配方式。
本发明具有以下有益效果:
1、由于本发明所述的网络处理器主要的基本转发功能采用ASIC模块的硬件流水线来实现,所以基本业务转发的性能不会随着新业务的增加而下降,保证了基本业务转发的可靠性,解决了现有NP新增加业务功能就会影响性能的问题。
2、由于本发明所述的NP中,很大一部分转发处理功能都通过ASIC模块的硬件流水线来实现,ME中编程实现的仅仅是新出现的一些转发功能,或者一些硬件流水线实现比较困难而且性能要求不高的应用特性功能,所以本发明的NP对ME中代码指令空间的压力就大大减小了。
3、对于扩展的转发功能,可以在执行主流程时跳转到ME中进行处理,而ME为可编程器件,因此可以随时通过软件升级来实现新的扩展功能,解决了现有第四代转发技术中ASIC的不灵活问题,同时由于软件开发周期短,也解决了ASIC更改芯片周期长的弊端,并进一步降低了由于对ASIC芯片硬件进行更新而造成的成本浪费。
4、本发明所述的网络处理器是一个集中了现有AISC转发技术和现有NP转发技术优点的系统结构,代表了未来转发引擎发展的方向。
附图说明
图1为第一代转发设备的结构示意图;
图2为第二代转发设备的结构示意图;
图3为第三代转发设备的业务板结构示意图;
图4A为第四代转发设备的结构示意图;
图4B为第四代转发设备中AISC转发引擎的结构示意图;
图5A为第五代转发设备的结构示意图;
图5B为第五代转发设备中NP转发引擎的结构示意图;
图6为本发明所述NP的结构示意图;
图7为本发明所述NP中判断部件的结构示意图;
图8为本发明所述NP的一个具体的部件线路关系图。
具体实施方式
下面结合具体实施方式和附图对本发明进行说明。
本发明的核心思路是,将目前已经成熟的主转发流程通过集成电路进行固化,类似于传统的ASIC转发引擎;同时在固化的流程中,留出若干判断点,允许在这些判断点,将需要特殊处理的报文跳转到微引擎,微引擎中编写具有特殊辅转发处理功能的微码,由微码完成丰富业务的处理。
图6为本发明所述NP的结构示意图。参见图6,本发明的NP 60主要包括ASIC模块61和微引擎模块62。其中AISC模块61的实现方式类似于现有第四代转发技术中的ASIC转发引擎技术,该ASIC模块61中包括一条或一条以上主转发硬件流水线,本图6中以包括一条主转发硬件流水线为例进行说明,每条主转发硬件流水线中包括多个步骤(Step),例如Step~Stepn。对于网络中比较成熟的转发流程,将这些成熟的转发流程用现有的集成电路流水线来实现,并固化在所述ASIC模块的硬件主转发硬件流水线中。所述比较成熟的转发流程例如链路层处理流程、桥接转发流程、IPV4转发流程、IPV6转发流程、多协议标签交换(MPLS)转发流程、多播转发流程等;其中的链路层处理流程例如以太网链路层处理流程、点到点协议(PPP,Point-to-Point Protocol)链路层处理流程、高层数据链路控制协议(HDLC,High Level Data Link Control)链路层处理流程等。实现上述这些转发处理流程的集成电路流水线分别独立设置在所述主转发硬件流水线中,也可任意组呼集成在所述主转发硬件流水线中。所述主转发流水线输出的结果发送给接口硬件部件64,通过该接口硬件部件64将报文转发出NP 60。
所述微引擎模块62中集成了若干个微引擎(ME)65,这些ME 65具有现有网络处理器中ME的所有特性。ME 65属于可编程器件,对于转发业务流程中新增的业务特性功能、以及一些硬件流水线实现起来比较困难而且性能要求不高的应用特性功能可以通过对这些ME65进行灵活编程来实现;所述硬件流水线实现起来比较困难而且性能要求不高的应用特性功能例如:隧道功能、分段功能、重组功能、需要在流程之间来回环回重用的流程等。与主转发硬件流水线相区别,ME所执行上述转发功能称为辅转发处理功能。
微引擎模块62中还包括协处理器组66,与特定的ME连接,用于协助ME进行处理,提高ME的处理性能,例如对报文进行初步识别的硬件部件,具体可参照现有网络处理器中ME和协处理器之间的协助处理技术。
为了能够执行ME 65中的辅转发处理,ASIC模块61的硬件流水线中,在一些关键步骤的中间,例如在Step1和Setp2之间,插入判断部件67,并通过总线或其他数据线与微引擎模块62连接,该判断部件67中存有ME 65中特定功能的触发条件,用于对前步骤的处理结果或正在处理的报文的某一部分内容进行判断,例如,所判断的前面步骤的处理结果可以是查表后的结果、对转发报文处理的判断和处理结果、流量监管结果等;所判断的报文内容可以是:报文内容中需要用于转发处理的报文头的重要域、根据查表内容需要修改的报文域值等。对于不同的内容,其存储的触发条件也不同,由具体的业务流程决定;此处判断前述内容是否符合所存储的触发条件,如果符合,则通知与该判断部件连接的ME对该报文进行辅转发处理,否则通知所述主转发硬件流水线的下一步骤对报文进行处理。这样对于一些特殊报文或者需要进行特殊转发的报文,就可以由ME中的软件来完成。
图7为所述判断部件67的结构示意图。参见图7,假设该判断部件67设置在ASIC流水线中的步骤m与步骤m+1之间,该判断部件67包括:
步骤m处理的中间结果寄存器组71,用于接收步骤m处理后的中间结果,存放该中间结果以及比较部件的比较结果。
报文协议域提取寄存器组72,用于从转发报文头中的特定协议域中提取数据值,并存储该提取出来的值。
触发条件配置器73,也是一个寄存器组,用于配置ME的触发条件,触发条件与上述寄存器组71和寄存器组72中存储的数据相对应,触发条件可由软件配置,其匹配方式可以是三态掩码匹配,也可以是全匹配或范围匹配;该配置器73与上面寄存器组71和寄存器组72大小对应;也可以比上述寄存器组71和寄存器组72小,但是这种情况下需要进一步配置出该配置器73中的各个触发条件与上述寄存器组71和寄存器组72中的哪个位置的值相对应。
比较部件74,用于对寄存器组71或72中的指定位置的数据与触发条件配置器73中对应的触发条件进行比较,判断该数据是否符合触发条件,如果符合,则判定具备了将数据包转移给ME处理的条件,通知下面的包处理结果转移部件75将目前步骤m处理的结果和数据包的存储描述符拷贝到ME指定的寄存器中,从而将数据包转移给ME 65组进行对应处理;如果不符合,则通知步骤m+1对目前步骤m处理的结果进行处理。
包处理结果转移部件75,用于接收到比较部件的通知就将符合上述触发条件的处理结果和数据包的存储描述符拷贝到ME指定的寄存器中,并通知ME对访问该指定寄存器,对其中的数据进行处理。或者,所述ME采用轮询方式访问该指定的寄存器,对该寄存器中的数据进行处理。
ME 65将所述报文处理完毕之后,根据实际业务转发的需要,可以选择将处理结果发送进入硬件流水线的某个环节,例如发送到步骤2,继续执行该步骤2和后续步骤,也可以选择直接从最后的出接口,即接口硬件部件64发送出NP 60。
由于一个NP一般都支持多个端口,因此本发明在NP芯片入口处,增加一个端口配置模块,该端口配置模块为一个由硬件或软件实现的端口配置表(PCT:Port Config Table)63,每个端口设置为PCT的一个单元,其中可存放端口跳转配置信息,用于区别进入NP端口的包是直接跳转到ASIC模块61由硬件流水线处理,还是跳转到微引擎模块62由与该端口对应连接的ME处理,例如对于已有业务的端口可以跳转到硬件流水线处理,对于新增的业务端口则跳转到具有对应的新业务处理功能的ME进行处理。所述ME可以根据业务处理需要与主转发硬件流水线的某个环节连接,或直接与NP的出接口,即接口硬件部件64连接。如果由ME处理,则ME处理后再根据需要跳转到流水线中的某个环节,例如步骤1之前、或步骤1和步骤2之间,由流水线的后续步骤继续进行处理,或者直接跳转到接口硬件部件64发送出NP 60。
所述PCT还可以存放端口类型,例如以太网端口或者POS端口等;还可以存放一些端口的属性信息,比如端口是否允许接收MPLS报文,端口是否可以接收组播报文等信息,以对接收的报文进行筛选。
另外,本发明所述的NP 60中还进一步包括特殊硬件部件68以及内嵌CPU96。特殊硬件部件68用于协助所述主转发硬件流水线和微引擎进行转发处理,因此又称硬件加速器,该硬件加速器可根据实际选择使用。例如,该硬件加速器可以为在数据包进入NP时根据端口配置的类型对数据包进行初步分析的部件、产生序列号并保证转发顺序的部件、加快外存访问的部件、以及进行内存自动管理的硬件部件等。内嵌CPU69用于做NP和其它外围CPU通信的中间部件,也可以处理一些NP管理功能或者链路层协议处理功能,还可以处理一些NP微引擎软件诊断调试功能等。
图6中对于ASIC模块61中硬件流水线部分只给出了一条硬件流水线,在实际的实现中也可以采用多条硬件流水线,比如IPV4转发流程采用一条硬件流水线,IPV6转发流程采用一条硬件流水线等。在每个硬件流水线的关键步骤之间都可以增加本发明所述的判断部件,使得发送需要特别处理的报文到ME65中进行处理,具体的实现方式与上述一个硬件流水线的处理方式相同。
图8为本发明所述NP的一个具体的部件线路关系图。参见图8,在该NP中,通过内部总线将主转发硬件流水线中的各个步骤、微引擎处理模块中的各个ME、以及内嵌CPU、存储器接口部件组、外部通信总线接口部件以及特殊硬件部件连接起来,以实现这些部件间的通信;流水线中的判断部件直接与为引擎模块相连或直接与微引擎相连以进行通信。
由于本发明所述的NP中,很大一部分转发处理功能通过ASIC模块的硬件流水线来实现,ME中编程实现的仅仅是新出现的一些转发功能,或者一些硬件流水线实现比较困难而且性能要求不高的应用特性功能,所以本发明的NP对ME中代码指令空间的压力就大大减小了。
由于主要的基本转发采用ASIC模块的硬件流水线来实现,所以基本业务转发的性能不会随着业务的增加而下降,解决了现有NP增加业务功能就会影响性能的问题。
同时,对于扩展的转发功能,可以在执行主流程时跳转到ME中进行处理,而ME为可编程器件,因此可以随时通过软件升级来实现新的扩展功能,解决了现有第四代转发技术中ASIC的不灵活问题,同时由于软件开发周期短,也解决了ASIC更改芯片周期长的弊端,同时降低了由于对ASIC芯片进行更新而造成的成本浪费。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (10)
1、一种网络处理器,其特征在于,该网络处理器包括:
可编程专用集成电路ASIC模块,集成了一条或一条以上用于对报文进行主转发处理的主转发硬件流水线;
微引擎模块,集成了一个或一个以上可编程的微引擎,所述微引擎用于通过软件对报文进行辅转发处理;
所述主转发硬件流水线中的指定步骤之间进一步通过判断部件连接,该判断部件与所述微引擎模块中的指定微引擎对应连接,用于判断主转发硬件流水线中经本判断部件之前的步骤处理过的报文是否需要进行辅转发处理,如果是,则通知对应的微引擎对报文进行辅转发处理,否则,通知主转发硬件流水线中本判断部件之后的步骤对该报文进行主转发处理。
2、根据权利要求1所述的网络处理器,其特征在于,所述的主转发硬件流水线中包括但不限于:
用于进行链路层处理的集成电路流水线;
或用于进行桥接转发处理的集成电路流水线;
或用于进行IPV4转发处理的集成电路流水线;
或用于进行IPV6转发处理的集成电路流水线;
或用于进行多协议标签交换转发处理的集成电路流水线;
或用于进行多播转发处理的集成电路流水线;
或以上所述集成电路流水线的任意组合。
3、根据权利要求2所述的网络处理器,其特征在于,所述用于进行链路层处理的集成电路流水线包括但不限于:
用于进行以太网链路层处理的集成电路流水线;
或用于进行点到点协议链路层处理的集成电路流水线;
或用于进行高层数据链路控制协议链路层处理的集成电路流水线;
或以上所述三种集成电路流水线的任意组合。
4、根据权利要求1所述的网络处理器,其特征在于,该网络处理器进一步包括端口配置模块,与所述主转发硬件流水线和所述微引擎模块连接,用于存放端口跳转配置信息,并根据该跳转配置信息将进入端口的报文跳转到所述的主转发硬件流水线处理或者跳转到所述的微引擎模块处理。
5、根据权利要求1所述的网络处理器,其特征在于,所述判断部件中存储有辅转发处理的触发条件,该判断部件通过判断所述主转发硬件流水线中经本判断部件之前的步骤处理过的报文结果或报文的内容是否符合其存储的触发条件来判定所转发报文是否需要进行辅转发处理。
6、根据权利要求1所述的网络处理器,其特征在于,所述微引擎模块中进一步包括协处理器,与微引擎连接,用于协助所述微引擎进行辅转发处理。
7、根据权利要求1所述的网络处理器,其特征在于,该网络处理器进一步包括与主转发硬件流水线和微引擎连接的、用于协助所述主转发硬件流水线和微引擎进行转发处理的硬件加速器。
8、根据权利要求1所述的网络处理器,其特征在于,所述微引擎进一步与所述主转发硬件流水线中的指定环节连接、或与网络处理器的出接口连接,所述微引擎的处理结果返回给与其相连的所述主转发硬件流水线的指定环节处理,或者直接输出到网络处理器的出接口。
9、根据权利要求1所述的网络处理器,其特征在于,所述判断部件包括:
中间处理结果寄存器,用于存储所述主转发硬件流水线中本判断部件之前的步骤对所转发报文进行处理的中间结果;
报文协议域提取寄存器,用于提取并存储所转发报文特定协议域中的内容;
触发条件配置器,用于存储辅转发处理的触发条件;
比较部件,用于比较判断所述中间处理结构寄存器或报文协议域提取寄存器中的内容是否符合触发条件配置器中的对应触发条件,符合则通知包处理结果转移部件进行处理,不符合则通知所述主转发硬件流水线中本判断部件之后的步骤进行处理;
包处理结果转移部件,用于接收到比较部件的通知即将所述中间结果和报文的存储描述符拷贝到微引擎指定的寄存器由微引擎进行处理。
10、根据权利要求9所述的网络处理器,其特征在于,所述触发条件配置器中触发条件的匹配方式为:全匹配方式、三态掩码匹配方式、或范围匹配方式。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2005100787925A CN100407701C (zh) | 2005-06-25 | 2005-06-25 | 一种网络处理器 |
PCT/CN2006/001088 WO2007000092A1 (fr) | 2005-06-25 | 2006-05-24 | Processeur de reseau |
CN2006800121851A CN101160856B (zh) | 2005-06-25 | 2006-05-24 | 一种网络处理器 |
EP06741976.2A EP1821469B1 (en) | 2005-06-25 | 2006-05-24 | A network processor |
US11/511,049 US7583673B2 (en) | 2005-06-25 | 2006-08-28 | Network processor for forwarding packets in an IP network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2005100787925A CN100407701C (zh) | 2005-06-25 | 2005-06-25 | 一种网络处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1885822A true CN1885822A (zh) | 2006-12-27 |
CN100407701C CN100407701C (zh) | 2008-07-30 |
Family
ID=37583806
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005100787925A Active CN100407701C (zh) | 2005-06-25 | 2005-06-25 | 一种网络处理器 |
CN2006800121851A Active CN101160856B (zh) | 2005-06-25 | 2006-05-24 | 一种网络处理器 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800121851A Active CN101160856B (zh) | 2005-06-25 | 2006-05-24 | 一种网络处理器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7583673B2 (zh) |
EP (1) | EP1821469B1 (zh) |
CN (2) | CN100407701C (zh) |
WO (1) | WO2007000092A1 (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102216909A (zh) * | 2011-05-27 | 2011-10-12 | 华为技术有限公司 | 一种网络处理器和网络处理器所存程序的诊断方法 |
CN102292705A (zh) * | 2010-08-30 | 2011-12-21 | 华为技术有限公司 | 网络处理器的指令处理方法和网络处理器 |
CN102546399A (zh) * | 2011-12-16 | 2012-07-04 | 广东电网公司茂名供电局 | 一种智能变电站过程层报文线性处理架构及其处理方法 |
CN103955445A (zh) * | 2014-04-30 | 2014-07-30 | 华为技术有限公司 | 一种数据处理方法、处理器及数据处理设备 |
CN103986660A (zh) * | 2014-05-30 | 2014-08-13 | 华为技术有限公司 | 加载微码的装置以及加载微码的方法 |
CN105808469A (zh) * | 2016-03-21 | 2016-07-27 | 北京小米移动软件有限公司 | 数据处理方法、装置、终端及智能设备 |
CN106802827A (zh) * | 2016-12-06 | 2017-06-06 | 中国电子科技集团公司第三十二研究所 | 用于网络处理器中引擎分配的实现方法 |
CN108809854A (zh) * | 2017-12-27 | 2018-11-13 | 北京时代民芯科技有限公司 | 一种用于大流量网络处理的可重构芯片架构 |
CN111884948A (zh) * | 2020-07-09 | 2020-11-03 | 烽火通信科技股份有限公司 | 一种流水线调度方法与装置 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8743907B1 (en) * | 2008-01-28 | 2014-06-03 | Marvell Israel (M.I.S.L.) Ltd. | Apparatus for reassembling a fragmented data unit and transmitting the reassembled data unit |
US20100049952A1 (en) * | 2008-08-25 | 2010-02-25 | Via Technologies, Inc. | Microprocessor that performs store forwarding based on comparison of hashed address bits |
US8239567B1 (en) | 2008-09-09 | 2012-08-07 | Marvell International Ltd. | Filtering superfluous data fragments on a computer network |
CN101442486B (zh) * | 2008-12-24 | 2011-06-08 | 华为技术有限公司 | 一种微引擎的分配方法和装置 |
CN101494607B (zh) | 2009-03-05 | 2011-12-21 | 华为技术有限公司 | 一种接纳控制方法、系统及设备 |
US9063841B1 (en) | 2011-08-01 | 2015-06-23 | Marvell Israel (M.L.S.L.) Ltd. | External memory management in a network device |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6606704B1 (en) * | 1999-08-31 | 2003-08-12 | Intel Corporation | Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode |
US6661794B1 (en) | 1999-12-29 | 2003-12-09 | Intel Corporation | Method and apparatus for gigabit packet assignment for multithreaded packet processing |
US7080238B2 (en) * | 2000-11-07 | 2006-07-18 | Alcatel Internetworking, (Pe), Inc. | Non-blocking, multi-context pipelined processor |
US20030043848A1 (en) * | 2001-08-30 | 2003-03-06 | Sonksen Bradley Stephen | Method and apparatus for data item processing control |
US6934951B2 (en) * | 2002-01-17 | 2005-08-23 | Intel Corporation | Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section |
US6836808B2 (en) * | 2002-02-25 | 2004-12-28 | International Business Machines Corporation | Pipelined packet processing |
US7251219B2 (en) | 2002-07-03 | 2007-07-31 | Intel Corporation | Method and apparatus to communicate flow control information in a duplex network processor system |
US7336606B2 (en) * | 2003-08-14 | 2008-02-26 | Intel Corporation | Circular link list scheduling |
US7376952B2 (en) * | 2003-09-15 | 2008-05-20 | Intel Corporation | Optimizing critical section microblocks by controlling thread execution |
US20050125514A1 (en) * | 2003-11-21 | 2005-06-09 | Intel Corporation, A Delaware Corporation | Dynamic resource allocation systems and methods |
US7391776B2 (en) * | 2003-12-16 | 2008-06-24 | Intel Corporation | Microengine to network processing engine interworking for network processors |
KR100636280B1 (ko) * | 2005-03-22 | 2006-10-19 | 삼성전자주식회사 | 네트워크 프로세서를 사용한 ip 패킷 처리 장치 및 방법 |
-
2005
- 2005-06-25 CN CN2005100787925A patent/CN100407701C/zh active Active
-
2006
- 2006-05-24 EP EP06741976.2A patent/EP1821469B1/en active Active
- 2006-05-24 WO PCT/CN2006/001088 patent/WO2007000092A1/zh not_active Application Discontinuation
- 2006-05-24 CN CN2006800121851A patent/CN101160856B/zh active Active
- 2006-08-28 US US11/511,049 patent/US7583673B2/en active Active
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102292705A (zh) * | 2010-08-30 | 2011-12-21 | 华为技术有限公司 | 网络处理器的指令处理方法和网络处理器 |
WO2012027878A1 (zh) * | 2010-08-30 | 2012-03-08 | 华为技术有限公司 | 网络处理器的指令处理方法和网络处理器 |
CN102292705B (zh) * | 2010-08-30 | 2013-12-18 | 华为技术有限公司 | 网络处理器的指令处理方法和网络处理器 |
CN102216909A (zh) * | 2011-05-27 | 2011-10-12 | 华为技术有限公司 | 一种网络处理器和网络处理器所存程序的诊断方法 |
CN102546399A (zh) * | 2011-12-16 | 2012-07-04 | 广东电网公司茂名供电局 | 一种智能变电站过程层报文线性处理架构及其处理方法 |
CN102546399B (zh) * | 2011-12-16 | 2014-09-17 | 广东电网公司茂名供电局 | 一种智能变电站过程层报文线性处理方法 |
CN103955445A (zh) * | 2014-04-30 | 2014-07-30 | 华为技术有限公司 | 一种数据处理方法、处理器及数据处理设备 |
CN103955445B (zh) * | 2014-04-30 | 2017-04-05 | 华为技术有限公司 | 一种数据处理方法、处理器及数据处理设备 |
US10025752B2 (en) | 2014-04-30 | 2018-07-17 | Huawei Technologies Co., Ltd. | Data processing method, processor, and data processing device |
CN103986660B (zh) * | 2014-05-30 | 2018-01-23 | 华为技术有限公司 | 加载微码的装置以及加载微码的方法 |
CN103986660A (zh) * | 2014-05-30 | 2014-08-13 | 华为技术有限公司 | 加载微码的装置以及加载微码的方法 |
CN105808469B (zh) * | 2016-03-21 | 2018-12-25 | 北京小米移动软件有限公司 | 数据处理方法、装置、终端及智能设备 |
WO2017161788A1 (zh) * | 2016-03-21 | 2017-09-28 | 北京小米移动软件有限公司 | 数据处理方法、装置、终端及智能设备 |
CN105808469A (zh) * | 2016-03-21 | 2016-07-27 | 北京小米移动软件有限公司 | 数据处理方法、装置、终端及智能设备 |
US10318408B2 (en) | 2016-03-21 | 2019-06-11 | Beijing Xiaomi Mobile Software Co., Ltd | Data processing method, data processing device, terminal and smart device |
CN106802827A (zh) * | 2016-12-06 | 2017-06-06 | 中国电子科技集团公司第三十二研究所 | 用于网络处理器中引擎分配的实现方法 |
CN108809854A (zh) * | 2017-12-27 | 2018-11-13 | 北京时代民芯科技有限公司 | 一种用于大流量网络处理的可重构芯片架构 |
CN108809854B (zh) * | 2017-12-27 | 2021-09-21 | 北京时代民芯科技有限公司 | 一种用于大流量网络处理的可重构芯片架构 |
CN111884948A (zh) * | 2020-07-09 | 2020-11-03 | 烽火通信科技股份有限公司 | 一种流水线调度方法与装置 |
CN111884948B (zh) * | 2020-07-09 | 2022-08-12 | 烽火通信科技股份有限公司 | 一种流水线调度方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2007000092A1 (fr) | 2007-01-04 |
CN101160856B (zh) | 2010-05-19 |
EP1821469A4 (en) | 2010-11-24 |
US20070053355A1 (en) | 2007-03-08 |
US7583673B2 (en) | 2009-09-01 |
CN100407701C (zh) | 2008-07-30 |
EP1821469B1 (en) | 2016-03-23 |
CN101160856A (zh) | 2008-04-09 |
EP1821469A1 (en) | 2007-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1885822A (zh) | 一种网络处理器 | |
CN1201532C (zh) | 具有中心调度程序的atm交换机及其调度方法 | |
CN1219384C (zh) | 多播传输的方法及设备 | |
CN1606291A (zh) | 网络处理加速器 | |
CN1770734A (zh) | 网络装置的通信量控制方法 | |
CN1794236A (zh) | 高效的基于cam在分组有效载荷中进行串搜索的技术 | |
CN1423873A (zh) | 有线速度ip信息多点传送的方法和装置 | |
CN101242362B (zh) | 查找键值生成装置及方法 | |
CN110995598B (zh) | 一种变长报文数据处理方法和调度装置 | |
CN100339832C (zh) | 帧和协议分类的方法和系统 | |
CN1433195A (zh) | 多协议标签转换网络系统 | |
CN1214168A (zh) | 有效的输出请求分组交换设备和方法 | |
CN1520112A (zh) | 网络协议卸载引擎 | |
CN1946054A (zh) | 一种高速数据流的传输方法、装置及数据交换设备 | |
CN1561047A (zh) | 基于tcam的分布式并行ip路由查找方法 | |
CN1494003A (zh) | 一种实现接口转换的装置及方法 | |
CN1390331A (zh) | 基于知识产权的大型集成电路设计系统及设计方法 | |
CN1781293A (zh) | 用于修改从源传输到目的地的数据的系统和方法 | |
CN101217486B (zh) | 基于网络处理器的移动互联网数据负载分配方法 | |
CN110324204A (zh) | 一种在fpga中实现的高速正则表达式匹配引擎及方法 | |
CN101335707B (zh) | 一种基于预分配的流控方法和装置 | |
CN104125147B (zh) | 实现下一跳的配置数据分离的方法 | |
CN102308538B (zh) | 报文处理方法及装置 | |
CN101064697A (zh) | 一种实现异步传输模式网络服务质量控制的装置和方法 | |
CN1642146A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |