下一代网络设备核心单元——网络处理器应用研究
通过继承ASIC和RISC分层处理合理思想,NP将网络处理任务划分为控制面和数据面两个层次:控制面负责非实时性的管理和策略控制任务,数据面负责承载高速多变的数据分组处理。目前NP主要任务是进行数据分组的线速分析、处理及转发,通过上述六种基本操作组合,实现以下功能:协议识别/分类、数据包拆分/重组、排队/接入控制、流量整形/流量工程、数据包修正、差错检测。随着SOC技术发展,NP将集成更多设备级功能。
4 网络处理器体系结构简介
4.1 Intel公司IXP1200网络处理器介绍
IXP1200系列是Intel公司IXA架构的核心产品,组成如下:1个主频最高可达232MHz的处理核心StrongARM;6个RISC结构的可编程微引擎,每个微引擎又包含4个硬件线程;64位IX Bus;32位的SRAM接口单元,工作频率为核心频率的一半;64位的SDRAM接口单元,工作频率为核心频率的一半;32位PCI总线接口单元,最高66MHz。
主要特点为:
(1)并行处理:六个微引擎和一个StrongARM构成
IXP1200的计算资源,共享相同资源,包括:SDRAM,SRAM,PCI,IX Bus等。微引擎和StrongARM均为RISC处理器,并行工作。StrongARM负责协议控制层面任务和微引擎管理。微引擎负责数据层面的高速数据分组处理,通过对六个微引擎/24个硬件线程分配不同功能的微码程序,可以实现网络负荷的动态/静态调配。微码程序的可重载性为系统软件升级提供了极大方便。
(2)分布式数据存储结构:每个微引擎独立使用256个32位寄存器。其中128个寄存器是传送寄存器集。每个微引擎将数据载入自己的传送寄存器集,对传送寄存器集进行操作,然后通过传送寄存器集写到数据目的地。数据载入传送寄存器集后,微引擎可在单指令周期完成访问。
(3)硬件多线程:每个微引擎有4个编程计算器,支持4个硬件线程。每个线程可以执行相同或不同的微码程序,采用内部线程通信机制实现线程同步,提高系统效率。微码指令采用5级流水线机制,执行周期为1个时钟周期。
(4)主动内存管理:SDRAM和SRAM支持多个读写队列进行优先级排队以优化带宽。允许StrongARM和6个微引擎/24个线程同时提交对内存单元的读写请求,内存单元根据特定优化指令对读写请求硬件优先级排队。用户可自定义内存管理优化策略。
(5)多层并发性:通过多个独立数据总线和控制总线,可以实现数据并发移动:SDRAM单元和微引擎或IX BUS单元之间的双向同时读写;SRAM单元和微引擎或IX BUS单元之间的双向同时读写;SDRAM单元和PCI单元之间读写;IX BUS单元和微引擎之间读写。
(6)块数据移动:每个微引擎分配很大的寄存器集,单个指令就可以实现功能单元之间64个字节的数据块移动,和功能单元与IX BUS之间128个字节的数据块移动。块数据移动在充分利用微引擎计算资源的同时,还可以减小微码程序规模。
(7)可扩展性:多个IXP1200处理器可以通过IX BUS总线互联,从而有效增加处理系统处理能力和数据带宽;ATM、E1/T1、Ethernet MAC等数据接口可以通过IX BUS总线接入IXP1200;微引擎的微码程序存储空间具有可扩展性。
4.2 IBM公司NP4GS3网络处理器介绍
NP4GS3网络处理器是IBM PowerNP网络处理器家族的高端产品,支持2.5Gbps的网络应用,由以下模块组成:(1)EPC:嵌入式处理器组是NP核心部件,包含16个协议处理器,可同时执行32个线程,具有并行处理32个数据分组的能力。为提高性能,采用硬件加速器实现树搜索、帧转发、帧过滤、CRC计算及其他功能。(2)Embedded PowerPC:负责NP非实时管理控制,包括特殊帧处理、配置、盒管理和高层协议处理。同时集成PCI接口,可以满足用户集成其他新器件的需求。(3)Ingress EDS:对来自物理层设备的数据分组进行入队、出队、调度,然后送到交换组织