CN101160856A - 一种网络处理器 - Google Patents

一种网络处理器 Download PDF

Info

Publication number
CN101160856A
CN101160856A CNA2006800121851A CN200680012185A CN101160856A CN 101160856 A CN101160856 A CN 101160856A CN A2006800121851 A CNA2006800121851 A CN A2006800121851A CN 200680012185 A CN200680012185 A CN 200680012185A CN 101160856 A CN101160856 A CN 101160856A
Authority
CN
China
Prior art keywords
streamline
forwarding
processing unit
integrated circuit
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
Application number
CNA2006800121851A
Other languages
English (en)
Other versions
CN101160856B (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
Publication of CN101160856A publication Critical patent/CN101160856A/zh
Application granted granted Critical
Publication of CN101160856B publication Critical patent/CN101160856B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/60Router architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1515Non-blocking multistage, e.g. Clos
    • H04L49/1546Non-blocking multistage, e.g. Clos using pipelined operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3063Pipelined 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根据保存的路由转发表进行独立地路由转发。另外由于总线技术 也得到了较大的发展, 所以通过总线, 业务板之间的数据转发完全独立 于主控板, 实现了并行高速处理, 使得转发设备的处理性能成倍提高。 典型的第三代转发设备例如: 华为 E16/08系统列路由器 。
第四代转发技术: 把转发过程的所有细节全部采用硬件方式来实 现。 图 4A为第四代转发设备的结构示意图。 参见图 4A, 采用大规模可 编程逻辑器件( FPGA )转发引擎或更高级的可编程专用集成电路( ASIC ) 转发引擎代替第三代转发设备中各业务板中的 CPU, 解决了 CPU转发 性能低下、 端口密度和速度低的问题; 另外用交换矩阵代替第三代转发 设备中的交换总线, 交换矩阵采用纵横 ( CrossBar )技术或共享内存技 术。 典型的第四代转发设备例如早期的千兆交换路由器(GSR, Gigabit Switch Router ), 该路由器的性能可达到千兆比特。
图 4B为第四代转发设备中 FPGA/AISC转发引擎的示意图。参见图 4B, FPGA/AISC转发引擎 40中集成了转发业务流程 41 , 转发业务流程 41一般通过一条或多条硬件流水线来,一条硬件流水线可能包括多个步 骤(Step ), 例如步橡 1、 步骤 2 步驟 n, 每个步骤都通过对应 的可编程器件实现; 另外, FPGA/AISC转发引擎 40中还包括特殊硬件 部件 42, 例如: 用于访问外存的硬件接口部件、 对 4艮文进行初步链路层 识别的部件、 接三态内容寻址存储器(TCAM ) 的接口处理部件、 内部 集成的介质访问地址(MAC )部件等等。 由于第四代转发技术中全部通 过硬件实现转发业务流程, 因此其性能高, 且开发出来后, 性能稳定, 可靠性高。
但是, 第四代转发技术存在以下缺点:
开发周期长。根据业界数据统计,对于开发同样一个业务特性, ASIC 转发引擎的开发周期至少为用软件实现该业务特性的开发周期的三倍。
不灵活, 无法增加新特性。 由于全部用硬件实现转发业务, 所以一 旦要增加新的业务特性, 需要重新设计 FPGA/AISC芯片, 用户需要重 新更换硬件, 不利于保护用户投资。 由于转发设备目前主要在 IP领域使 用, 而 IP技术日新月异, 发展 4艮快, 所以这个矛盾非常突出。
开发成本高。 一次的开发投片费用高达上百万美元, 如果因为增加 业务特性而频繁更新 FPGA/AISC芯片, 成本较大。
为了解决第四代转发技术的 ASIC芯片开发周期长,无法满足 IP领 域曰新月异发展需求的技术问题, 又出现了第五代转发技术。
第五代转发技术:采用了可编程的、专为 IP网络设计的网络处理器。 图 5A为第五代转发设备的结构示意图。 参见图 5A, 从技术上, 第五代 转发设备在硬件体系结构上继承了笫 ^代转发设备的成果, 也包括转发 处理引擎和交换矩阵, 但是在关键的 IP业务流程处理上采用了可编程 的、 专为 IP网络设计的网络处理器(NP, Network Processor )作为转发 处理引擎。 典型的第五代转发设备例如: 华为 NE 80/40系列产品等。
P是一种可编程器件, 它特定地应用于通信领域的各种任务, 比 如包处理、 协议分析、 路由查找、 声音 /数据的汇聚、 防火墙、 QOS; 目 前的 NP—般指综合业务的网络处理器, 即完成各种转发功能的网络处 理器。
图 5B为第五代转发设备中 NP作为转发引擎的结构示意图。 参见 图 5B, NP 50通常由若干微处理器(ME, MicroEngine ) 51、 硬件协处 理器 52、 特殊硬件部件 53.、 以及内嵌 CPU 54组成。 多个微处理器 51 并行处理, 通过软件来实现转发控制处理流程; 对于一些复杂的标准的 操作, 例如内存操作、 路由表查找算法、 服务质量(QoS ) 的拥塞控制 算法、 流量调度算法等操作采用硬件协处理器来提高处理性能。 这样可 以实现业务灵活性和高性能的有机结合。 特殊硬件部件 53 为硬件加速 器, 可根据实际选择使用。 例如, 该部件可以为在数据包进入 P时根 据端口配置的类型对数据包进行初步分析的部件、 产生序列号并保证转 发顺序的部件、 加快外存访问的部件、 以及进行内存自动管理的硬件部 件等。 内嵌 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实现功能扩展的情况下, 需要修改管脚功能, 重 新调试升级, 多数情况下其他的特 ^^更件部件也需要改动, 为系统可靠 性代理 4艮大的隐患; 用 AISC芯片实现功能扩展的情况下, 无法对新的 功能进行添加只能重新设计, 更新芯片。 在开发时间上, 按照业界的经 验数字, 软件开发时间一般为 6个月, 而用 FPGA实现的时间为 18个 月, 用 ASIC实现的时间更长, 通常需要 2〜3年的时间, 随着网络处理 器使用 C语言编程的推进, 开发周期变的将会更短。 因此, 相对第四代 转发技术, NP具有更灵活的功能扩展能力。
3 , 可靠性高。 由于大部分 NP系统都使用一个或者两个芯片实现, 芯片出厂前都经过了严格的测试和各种抗干扰和破坏性试验, 从而使 NP系统的可靠性大大提高。因此 NP特别适合用于开发电信級数据通信 产品。
但是, 目前的 NP也有如下缺点:
1、 随着业务的增加, NP的性能会有下降。 因为转发功能都是通过 软件实现, 所以每增加一个新功能特性, 必然需要在软件主流程中增加 若干判断语句, 将特殊报文按照分支流程处理, 从而会导致主业务性能 下降。 尤其在新业务功能特性增加较多时, 这个矛盾就更明显。
2、 指令空间问题。 由于 NP的指令读速度要求很高, 所以指令都存 储在片内实现。 由于集成度有限制, 所以指令空间不可能做到很大, 一 般在几万条指令级别。 随着业务的增加, 由于所有业务功能都使用软件 实现, 指令需求数量巨大, 因此片内指令空间满足不了这些指令数量需 求。 发明内容
有鉴于此, 本发明的主要目的在于提供一种网络处理器, 综合现有 ASIC转发引擎和现有网络处理器的优点, 既具有较高的灵活性和可靠 性, 又在 k务增加时对性能没有影响, 指令空间需求低。 为了实现上述目的, 本发明的技术方案为:
一种网络处理器, 该网络处理器包括:
可编程专用集成电路 ASIC模块, 具备了一条或一条以上用于对报 文进行主转发处理的主转发硬件流水线;
微引擎模块, 具备一个或一个以上可编程的微引擎, 所述微引擎用 于通过软件对报文进行辅转发处理;
所述主转发硬件流水线中的指定步骤之间进一步通过判断部件连 接, 该判断部件与所述微引擎模块中的指定微引擎对应连接, 用于判断 经本判断部件之前的主转发硬件流水线步驟处理过的报文是否需要进 行辅转发处理, 如果是, 则通知对应的微引擎对报文进行辅转发处理, 否则, 通知本判断部件之后的主转发硬件流水线步骤对该艮文进行主转 发处理。
优选的, 所述的主转发硬件流水线中包括:
用于进行链路层处理的集成电路流水线;
或用于进行桥接转发处理的集成电路流水线;
或用于进行 IPV4转发处理的集成电路流水线;
或用于进行 IPV6转发处理的集成电路流水线;
或用于进行多协议标签交换转发处理的集成电路流水线; 或用于进行多播转发处理的集成电路流水线;
或以上所述集成电路流水线的任意组合。
优选的, 所述用于进行链路层处理的集成电路流水线包括: 用于进行以太网链路层处理的集成电路流水线;
或用于进行点到点协议链路层处理的集成电路流水线;
或用于进行高层数据链路控制协议链路层处理的集成电路流水线; 或以上所述三种集成电路流水线的任意组合。 优选的, 该网絡处理器进一步包括端口配置模块, 与所述主转发硬 件流水线和所述微引擎模块连接, 用于存放端口跳转配置信息, 并根据 该跳转配置信息将进入端口的报文跳转到所述的主转发硬件流水线处 理或者跳转到所述的微引擎模块处理。
优选的, 所述判断部件中存储有辅转发处理的触发条件, 该判断部 件通过判断所述经本判断部件之前的主转发硬件流水线步骤处理过的 报文结果或报文的内容是否符合其存储的触发条件来判定所转发报文 是否需要进行辅转发处理。
优选的, 所述微引擎模块中进一步包括协处理器, 与微引擎连接, 用于协助所述微引擎进行辅转发处理。
优选的, 该网络处理器进一步包括与主转发硬件流水线和 引擎连 接的、 用于协助所述主转发硬件流水线和微引擎进行转发处理的硬件加 速器。
优选的, 所述微引擎进一步与所述主转发硬件流水线中的指定环节 连接、 或与网络处理器的出接口连接, 所述微引擎的处理结果返回给与 其相连的所述主转发硬件流水线的指定环节处理, 或者直接输出到网络 处理器的出接口。
优选的, 所述判断部件包括:
中间处理结果寄存器, 用于存储所述本判断部件之前的主转发硬件 流水线步骤对所转发报文进行处理的中间结果;
报文协议域提取寄存器, '用于提取并存储所转发报文特定协议域中 的内容;
触发条件配置器, 用于存储辅转发处理的触发条件;
比较部件, 用于比较判断所迷中间处埋结构寄存器或报文协议域提 取寄存器中的内容是否符合所述触发条件配置器中的对应触发条件, 符 合则通知包处理结果转移部件进行处理 , 不符合则通知所述本判断部件 之后的主转发硬件流水线步骤进行处理;
包处理结果转移部件, 用于接收到比较部件的通知即将所述中间结 果和报文的存储描述符拷贝到微引擎指定的寄存器由微引擎进行处理。
优选的, 所述触发条件配置器中触发条件的匹配方式为: 全匹配方 式、 三态掩码匹配方式、 或范围匹配方式。
本发明具有以下有益效果:
1、 由于本发明所述的网络处理器的基本转发功能采用 ASIC模块的 硬件流水线来实现, 所以基本业务转发的性能不会随着新业务的增加而 下降, 保证了基本业务转发的可靠性, 解决了现有 NP新增加业务功能 就会影响性能的问题。
2、由于本发明所述的 NF中,很大一部分转发处理功能都通过 ASIC 模块的硬件流水线来实现, ME 中编程实现的仅仅是新出现的一些转发 功能, 或者一些硬件流水线实现 ^较困难而且性能要求不高的应用特性 功能, 所以本发明的 NP ^ ME中代码指令空间的压力就大大减小了。
3、对于扩展的转发功能,可以在执行主流程时跳转到 ME中进行处 理, 而 ME为可编程器件, 因此可以随时通过软件升级来实现新的扩展 功能, 解决了现有第四代转发技术中 ASIC的不灵活问题, 同时由于软 件开发周期短, 也解决了 ASIC更改芯片周期长的弊端, 并进一步降 4氐 了由于对 ASIC芯片硬件进行更新而造成的成本浪费。
4、本发明所述的网络处理器是一个集中了现有 AISC转发技术和现 有 P转发技术优点的系统结构, 代表了未来转发引擎发展的方向。 附图简要说明
图 1为第一代转发设备的结构示意图; 图 2为第二代转发设备的结构示意图;
图 3为第三代转发设备的业务板结构示意图;
图 4A为笫四代转发设备的结构示意图;
图 4B为第四代转发设备中 AISC转发引擎的结构示意图;
图 5A为第五代转发设备的结构示意图;
图 5B为笫五代转发设备中 P转发引擎的结构示意图;
图 6为本发明所述 NP的结构示意图;
图 7为本发明所述 NP中判断部件的结构示意图;
图 8为本发明所述 NP的一个具体的部件线路关系图。 实施本发明的方式
下面结合具体实施方式和附图对本发明进行说明。
本发明的核心思路是, 将目前巳经成熟的主转发流程通过集成电路 进行固化, 类似于传统的 ASIC转发引擎; 同时在固化的流程中, 留出 若干判断点,允许在这些判断点,将需要特殊处理的报文跳转到微引擎, 微引擎中编写具有特殊辅转发处理功能的微码, 由微码完成丰富业务的 处理。
图 6为本发明所述 NP的结构示意图。 参见图 6, 本发明的 NP 60 主要包括 ASIC模块 61和微引擎模块 62。 其中 AISC模块 61的实现方 式类似于现有第四代转发技术中的 ASIC转发引擎技术, 该 ASIC模块 61中包括一条或一条以上主转发硬件流水线,本图 6中以包括一条主转 发硬件流水线为例进行说明, 每条主转发硬件流水线中包括多个步骤 ( Step ), 例如步骤 1 ~步骤 n。 对于网络中比较成熟的转发流程, 将这 些成熟的转发流程用现有的集成电路流水线来实现,并固化在所述 ASIC 模块的硬件主转发硬件流水线中。 所述比较成熟的转发流程例如链路层 处理流程、 桥接转发流程、 IPV4转发流程、 IPV6转发流程、 多协议标 签交换(MPLS )转发流程、 多播转发流程等; 其中的链路层处理流程 例如以太网链路层处理流程、 点到点协议 (PPP , Point— to— Point Protocol )链路层处理流程、 高层数据链路控制协议(HDLC, High Level Data Link Control )链路层处理流程等。 实现上述这些转发处理流程的集 成电路流水线分别独立设置在所述主转发硬件流水线中, 也可任意组合 集成在所述主转发硬件流水线中。 所述主转发流水线输出的结果发送给 接口硬件部件 64, 通过该接口硬件部件 64将艮文转发出 P 60。
所述微引擎模块 62中集成了若干个微引擎(ME ) 65 , 这些 ME 65 具有现有网络处理器中 ME的所有特性。 ME 65属于可编程器件, 对于 转发业务流程中新增的业务特性功能、 以及一些硬件流水线实现起来比 较困难而且性能要求不高的应用特性功能可以通过对这些 ME65进行灵 活编程来实现; 所述硬件流水线实现起来比较困难而且性能要求不高的 应用特性功能例如: 隧道功能、 分段功能、 重组功能、 需要在流程之间 环回重用的流程等。 与主转发硬件流水线相区别, ME所执行上述转发 功能称为辅转发处理功能。
微引擎模块 62中还包括协处理器组 66, 与特定的 ME连接, 用于 协助 ME进行处理, 提高 ME的处理性能, 例如对报文进行初步识别的 硬件部件, 具体可参照现有网络处理器中 ME和协处理器之间的协助处 理技术。
为了能够执行 ME 65中的辅转发处理, ASIC模块 61的硬件流水线 中, 在一些关键步骤的中间, 例如在步骤 1和步骤 2之间, 插入判断部 件 67, 并通过总线或其他数据线与微引擎模块 62连接, 该判断部件 67 中存有 ME 65中特定功能的触发条件,用于对前步骤的处理结果或正在 处理的报文的某一部分内容进行判断, 例如, 所判断的前面步骤的处理 结果可以是查表后的结果、 对转发报文处理的判断和处理结果、 流量监 管结果等; 所判断的报文内容可以是: 报文内容中需要用于转发处理的 报文头的重要域、 根据查表内容需要修改的报文域值等。 对于不同的内 容, 其存储的触发条件也不同, 由具体的业务流程决定; 此处判断前述 内容是否符合所存储的触发条件, 如杲符合, 则通知与该判断部件连接 的 ME对该才艮文进行辅转发处理, 否则通知所述主转发硬件流水线的下 一个步骤对报文进行处理。 这样对于一些特殊报文或者需要进行特殊转 发的 4艮文, 就可以由 ME中的软件来完成。
图 7为所述判断部件 67的结构示意图。 参见图 7, 4艮设该判断部件 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发送出 P 60。 所述 PCT还可以存放端口类型, 例如以太网端口或者 POS端口等; 还可以存放一些端口的属性信息, 比如端口是否允许接收 MPLS报文, 端口是否可以接收组播报文等信息, 以对接收的报文进行筛选。
另夕卜,本发明所述的 NP 60中还进一步包括特殊硬件部件 68以及内 嵌 CPU 96。 特殊硬件部件 68用于协助所述主转发硬件流水线和微引擎 进行转发处理, 因此又称硬件加速器, 该硬件加速器可根据实际选择使 用。 例如, 该硬件加速器可以为在数据包进入 NP时根据端口配置的类 型对数据包进行初步分析的部件、 产生序列号并保证转发顺序的部件、 加快外存访问的部件、 以及进行内存自动管理的硬件部件等。 内嵌 CPU69用于做 NP和其它外围 CPU通信的中间部件, 也可以处理一些 NP管理功能或者链路层协议处理功能,还可以处理一些 NP微引擎软件 诊断调试功能等。
图 6中对于 ASIC模块 61中礎件流水线部分只给出了一奈硬件流水 线, 在实际的实现中也可以采用多条硬件流水线, 比如 IPV4转发流程 采用一条硬件流水线, IPV6转发流程采用一条硬件流水线等。在每个硬 件流水线的关键步骤之间都可以增加本发明所述的判断部件, 使得发送 需要特别处理的报文到 MB 65 中进行处理, 具体的实现方式与上述一 个硬件流水线的处理方式相同。 ' 图 8为本发明所述 的一个具体的部件线路关系图。参见图 8,在 该 NP中, 通过内部总线将主转发硬件流水线中的各个步骤、 微引擎处 理模块中的各个 ME、 以及内嵌 CPU、 存储器接口部件组、 外部通信总 线接口部件以及特殊硬件部件连接起来, 以实现这些部件间的通信; 流 水线中的判断部件直接与为引擎模块相连或直接与微引擎相连以进行 通信。
由于本发明所迷的 NP中,很大一部分转发处理功能通过 ASIC模块 的硬件流水线来实现, ME中编程实现的仅仅是新出现的一些转发功能, 或者一些硬件流水线实现比较困难而且性能要求不高的应用特性功能, 所以本发明的 NP对 ME中代码指令空间的压力就大大减小了。
由于主要的基本转发采用 ASIC模块的硬件流水线来实现, 所以基 本业务转发的性能不会随着业务的增加而下降, 解决了现有 NP增加业 务功能就会影响性能的问题。
同时, 对于扩展的转发功能, 可以在执行主流程时跳转到 ME中进 行处理, 而 ME为可编程器件, 因此可以随时通过软件升级来实现新的 扩展功能, 解决了现有第四代转发技术中 ASIC的不灵活问题, 同时由 于软件开发周期短, 也解决了 ASIC更改芯片周期长的弊端, 同时降低 了由于对 ASIC芯片进行更新而造成的成本浪费。
以上所述, 仅为本发明较佳的具体实施方式, 但本发明的保护范围 并不局限于此, 任何熟悉该技术的人在本发明所揭露的技术范围内, 可 轻易想到的变化或替换, 都应涵盖在本发明的保护范围之内。

Claims (10)

  1. 权利要求书
    1、 一种网络处理器, 其特征在于, 该网絡处理器包括:
    可编程专用集成电路 ASIC模块, 具备了一条或一条以上用于对报 文进行主转发处理的主转发硬件流水线;
    微引擎模块, 具备一个或一个以上可编程的微引擎, 所述微引擎用 于通过软件对报文进行辅转发处理;
    所述主转发硬件流水线中的指定步骤之间进一步通过判断部件连 接, 该判断部件与所述微引擎模块中的指定微引擎对应连接, 用于判断 经本判断部件之前的主转发硬件流水线步骤处理过的报文是否需要进 行辅转发处理, 如果是, 则通知对应的 £引擎对报文进行辅转发处理, 否则, 通知本判断部件之后的主转发硬件流水线步骤对该报文进行主转 发处理。
  2. 2、 根据权利要求 1 所述的网络处理器, 其特征在于, 所述的主转 发硬件流水线中包括:
    用于进行链路层处理的集成电路流水线;
    或用于进行桥接转发处理的集成电路流水线;
    或用于进行 IPV4转发处理的集成电路流水线;
    或用于进行 IPV6转发处理的集成电路流水线;
    或用于进行多协议标签交换转发处理的集成电路流水线; 或用于进行多播转发处理的集成电路流水线;
    或以上所述集成电路流水线的任意组合。
  3. 3、 根据权利要求 2所述的网络处理器, 其特征在于, 所述用于进 行链路层处理的集成电路流水线包括:
    用于进行以太网链路层处理的集成电路流水线; 或用于进行点到点协议链路层处理的集成电路流水线; 或用于进行高层数据链路控制协议链路层处理的集成电路流水线; 或以上所述三种集成电路流水线的任意组合。
  4. 4、 根据权利要求 1 所述的网络处理器, 其特征在于, 该网络处理 器进一步包括端口配置模块, 与所述主转发硬件流水线和所述微引擎模 块连接, 用于存放端口跳转配置信息, 并根据该跳转配置信息将进入端 口的报文跳转到所述的主转发硬件流水线处理或者跳转到所述的微引 擎模块处理。
  5. 5、 根据权利要求 1 所述的网络处理器, 其特征在于, 所述判断部 件中存储有辅转发处理的触发条件, 该判断部件通过判断所述经本判断 部件之前的主转发硬件流水线步骤处理过的报文结果或报文的内容是 否符合其存储的触发条件来判定所转发报文是否需要进行辅转发处理。
  6. 6、 根据权利要求 1 所述的网络处理器, 其特征在于, 所述微引擎 模块中进一步包括协处理器, 与微引擎连接, 用于协助所述微引擎进行 辅转发处理。
  7. 7、 根据权利要求 1 所述的网络处理器, 其特征在于, 该网络处理 器进一步包括与主转发硬件流水线和微引擎连接的、 用于协助所述主转 发硬件流水线和微弓 I擎进行转发处理的硬件加速器。
  8. 8、 根据权利要求 1 所述的网络处理器, 其特征在于, 所述微引擎 进一步与所述主转发硬件流水线中的指定环节连接、 或与网络处理器的 出接口连接, 所述微引擎的处理结果返回给与其相连的所述主转发硬件 流水线的指定环节处理, 或者直接输出到网络处理器的出接口。
  9. 9、 根据权利要求 1 所述的网络处理器, 其特征在于, 所述判断部 件包括:
    中间处理结果寄存器, 用于存储所述本判断部件之前的主转发硬件 流水线步骤对所转发 4艮文进行处理的中间结果;
    报文协议域提取寄存器, 用于提取并存储所转发报文特定协议域中 的内容;
    触发条件配置器, 用于存储辅转发处理的触发条件;
    比较部件, 用于比较判断所述中间处理结构寄存器或报文协议域提 取寄存器中的内容是否符合所述触发条件配置器中的对应触发条件, 符 合则通知包处理结果转移部件进行处理, 不符合则通知所述本判断部件 之后的主转发硬件流水线步骤进行处理;
    包处理结果转移部件, 用于接收到比较部件的通知即将所述中间结 果和报文的存储描述符拷贝到微引擎指定的寄存器由微引擎进行处理。
  10. 10、 根据权利要求 9所述的网络处理器, 其特征在于, 所述触发条 件配置器中触发条件的匹配方式为: 全匹配方式、 三态掩码匹配方式、 或范围匹配方式。
CN2006800121851A 2005-06-25 2006-05-24 一种网络处理器 Active CN101160856B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN200510078792.5 2005-06-25
CN2005100787925A CN100407701C (zh) 2005-06-25 2005-06-25 一种网络处理器
PCT/CN2006/001088 WO2007000092A1 (fr) 2005-06-25 2006-05-24 Processeur de reseau

Publications (2)

Publication Number Publication Date
CN101160856A true CN101160856A (zh) 2008-04-09
CN101160856B CN101160856B (zh) 2010-05-19

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 Before (1)

Application Number Title Priority Date Filing Date
CN2005100787925A Active CN100407701C (zh) 2005-06-25 2005-06-25 一种网络处理器

Country Status (4)

Country Link
US (1) US7583673B2 (zh)
EP (1) EP1821469B1 (zh)
CN (2) CN100407701C (zh)
WO (1) WO2007000092A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
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 华为技术有限公司 一种接纳控制方法、系统及设备
WO2012027878A1 (zh) * 2010-08-30 2012-03-08 华为技术有限公司 网络处理器的指令处理方法和网络处理器
CN102216909A (zh) * 2011-05-27 2011-10-12 华为技术有限公司 一种网络处理器和网络处理器所存程序的诊断方法
US9063841B1 (en) 2011-08-01 2015-06-23 Marvell Israel (M.L.S.L.) Ltd. External memory management in a network device
CN102546399B (zh) * 2011-12-16 2014-09-17 广东电网公司茂名供电局 一种智能变电站过程层报文线性处理方法
CN103955445B (zh) * 2014-04-30 2017-04-05 华为技术有限公司 一种数据处理方法、处理器及数据处理设备
CN103986660B (zh) * 2014-05-30 2018-01-23 华为技术有限公司 加载微码的装置以及加载微码的方法
CN105808469B (zh) * 2016-03-21 2018-12-25 北京小米移动软件有限公司 数据处理方法、装置、终端及智能设备
CN106802827A (zh) * 2016-12-06 2017-06-06 中国电子科技集团公司第三十二研究所 用于网络处理器中引擎分配的实现方法
CN108809854B (zh) * 2017-12-27 2021-09-21 北京时代民芯科技有限公司 一种用于大流量网络处理的可重构芯片架构
CN111884948B (zh) * 2020-07-09 2022-08-12 烽火通信科技股份有限公司 一种流水线调度方法与装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
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 패킷 처리 장치 및 방법

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
CN1885822A (zh) 2006-12-27
EP1821469B1 (en) 2016-03-23
EP1821469A1 (en) 2007-08-22

Similar Documents

Publication Publication Date Title
CN101160856A (zh) 一种网络处理器
US11038993B2 (en) Flexible processing of network packets
KR100466083B1 (ko) 인터페이스 디바이스를 포함하는 장치 및 데이터 플로우 핸들링 방법
KR100506323B1 (ko) 네트워크 프로세서를 사용하는 네트워크 스위치 및 그의방법
KR100468800B1 (ko) 네트워크 프로세서
CN103004158B (zh) 具有可编程内核的网络设备
KR100481258B1 (ko) 네트워크 프로세서 프로세싱 콤플렉스 및 방법
KR100498824B1 (ko) Vlsi 네트워크 프로세서 및 방법
US20030135691A1 (en) Input data selection for content addressable memory
CN106161254B (zh) 一种多目的数据传输网路路由装置、方法、芯片、路由器
US11258726B2 (en) Low latency packet switch architecture
CN103685041B (zh) 一种基于比特粒度可编程的路由器及路由方法
CN116156027B (zh) 一种支持rmt的动作执行引擎及其执行方法
CN106802827A (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