基于网络处理器的核心路由器设计技术研究
时间:09-17
来源:互联网
点击:
Internet骨干网络流量的增长及新业务的出现,要求路由器具有线速和智能的处理能力。基于通用处理器GPP(General Purpose Processor)的解决方案虽然灵活,但在数据处理速度上难以满足要求;基于专用集成电路ASIC(Application Specfic-Integrated Circuit)的解决方案虽然有效地提高了网络处理速度,却降低了灵活性。它们都难以满足下一代互联网的要求。在这种情况下,一种可编程的网络处理器 NP(Network Processor)被应用到路由器设计中,成为一种新兴、有效的统一解决方案。基于网络处理器的路由器具有ASIC高速处理性能和GPP的灵活性,得到了快速的发展。
1 网络处理器硬件架构
IXP2400网络处理器是Intel公司在2002年推出的第二代互联网交换架构IXA网络处理器。它面向中高端应用,可用于实现OC-48的网络路由交换设备。IXP2400的结构充分体现了片上系统SoC (System onChip)的思想。IXP2400结构框图如图l所示,它的内部主要包括8个完全可编程的8线程微引擎ME和1个XSc ale核。此外,还有用于连接外部设备MAC的媒质和交换结构接口MSF单元、连接各种存储器和总线的接口单元等。这些单元通过内部的高速数据总线和控制总线彼此协作。
XScale核是32位的嵌入式精简指令集处理器,时钟频率是600MHz,具有32KB的指令缓存和32KB的数据缓存,它在IXP2400中起控制和管理作用。具体包括:对系统初始化和配置;提供系统时钟;建立并管理路由表;提供一个对应于IXP2400各寄存器、存储器和外部存储器的地址映射表等。它在应用中主要完成加载微码、启动微引擎、完成必要的数据分析、高复杂度的算法、统计、管理等应用任务。
IXP2400中的每个微引擎就是一个32位精简指令集RISC处理器,时钟频率是600MHz,可以由8个并行硬件线程共享。数据包的接收、处理和发送等任务均由微引擎指令存储区中微代码程序的各线程并行执行。网络处理器数据的高速转发正是因为充分利用了硬件的并行性。
IXP2400通过数据线连接着各种存储设备,如SRAM和DRAM等。DRMA主要用于存放需要处理和转发的数据包、路由表等大型数据结构;SRAM主要存放对数据包包头进行处理所需的重要信息和数据包的队列描述等内容,如表、缓冲区描述符。
IXP2400具有丰富的标准高速I/0接口,包括物理链路接口、交换接口、存储器接口、PCI总线接口,能够方便地与其他厂家的设备进行接口、互连;拥有专用硬件加速处理单元;采用专用硬件对特定协议操作进行协处理:如CRC、哈希查找、树查找、字符匹配;针对安全产品,提供加/解密、大数运算等硬件单元。
综上所述,IXP2400拥有网络处理的一般特点,从系统角度看,IXP2400属于一个并行式的多处理器共享总线的计算机系统。
2 网络处理器软件开发平台
Intel提供丁网络处理器开发平台,称为Intd IXA可移植框架(Intel IXA portability framework)。IXP2400软件开发可移植框架层次图如图2所示。
Intel IXA可移植框架中,将数据的处理分为两个层次:数据面(Data Plane,也称为Fast Path)处理和控制面(Control Plane,也称为Slow Path)处理。
数据平面主要运行在微引擎处理之上,充分利用数据包的无关性,采取并行处理方式,用于实现高速转发数据包的处理功能,具有线速执行特点。数据面的数据包处理可分为若干微模块Microblock。各个微模块之间相互独立,可实现数据面层次上的可移植性。
控制平面一般运行在网络处理器核上,处理各种通信协议、更新路由表、管理数据平面任务与状态、完成高层的QoS控制等。这些操作的性能要求低于数据层面,因此通常采用高性能通用处理器硬件平台。为了有效支持网络处理功能,控制平面与数据平面之间存在复杂的信息交互与依赖关系。
IXP2400的软件开发分为内核程序和微代码两部分。XScale内孩的开发通常使用基于嵌入式操作系统集成开发工具,如WindRiver公司提供的基于嵌入式操作系统VxWorks的集成开发工具Tornado或BMR TEC CO提供的基于嵌入式操作系统Montavista Linux的集成开发工具Teja。Teja开发工具给基于网络处理器的嵌入式开发带来极大的方便,它能缩短开发周期,优化生成代码,提高代码性能,而且生成的代码很容易移植到不同的目标系统。使用Teja集成开发工具,能独立于复杂的硬件而将网络应用表达为状态机。状态机逻辑可以被映射到选定的目标网络处理器的分布资源,基于这种逻辑设计和到硬件的逻辑映射,生成优化的目标代码(C、C++和MicroC)并且编译生成最终的映像文件。此外,Teja对于此逻辑和系统设计还能提供模拟测试和调试功能;IXP2400中对微引擎的编程使用Intel公司提供的Developer Workbench开发环境,主要使用微代码来进行编程。Developer Workbench提供了完善的编译、链接、仿真和调试功能。
Intel IXA可移植框架中最重要的组成部分就是在微引擎上和XScale核上开发的代码模块。基于不同硬件开发的代码模块分别为微模块和核心组件(Core component)。每个模块都代表了一个进行包处理的代码单元。这里实际上引入了构件的思想.各种模块以一定的顺序组织在一起,形成一个特定的应用。
1 网络处理器硬件架构
IXP2400网络处理器是Intel公司在2002年推出的第二代互联网交换架构IXA网络处理器。它面向中高端应用,可用于实现OC-48的网络路由交换设备。IXP2400的结构充分体现了片上系统SoC (System onChip)的思想。IXP2400结构框图如图l所示,它的内部主要包括8个完全可编程的8线程微引擎ME和1个XSc ale核。此外,还有用于连接外部设备MAC的媒质和交换结构接口MSF单元、连接各种存储器和总线的接口单元等。这些单元通过内部的高速数据总线和控制总线彼此协作。
XScale核是32位的嵌入式精简指令集处理器,时钟频率是600MHz,具有32KB的指令缓存和32KB的数据缓存,它在IXP2400中起控制和管理作用。具体包括:对系统初始化和配置;提供系统时钟;建立并管理路由表;提供一个对应于IXP2400各寄存器、存储器和外部存储器的地址映射表等。它在应用中主要完成加载微码、启动微引擎、完成必要的数据分析、高复杂度的算法、统计、管理等应用任务。
IXP2400中的每个微引擎就是一个32位精简指令集RISC处理器,时钟频率是600MHz,可以由8个并行硬件线程共享。数据包的接收、处理和发送等任务均由微引擎指令存储区中微代码程序的各线程并行执行。网络处理器数据的高速转发正是因为充分利用了硬件的并行性。
IXP2400通过数据线连接着各种存储设备,如SRAM和DRAM等。DRMA主要用于存放需要处理和转发的数据包、路由表等大型数据结构;SRAM主要存放对数据包包头进行处理所需的重要信息和数据包的队列描述等内容,如表、缓冲区描述符。
IXP2400具有丰富的标准高速I/0接口,包括物理链路接口、交换接口、存储器接口、PCI总线接口,能够方便地与其他厂家的设备进行接口、互连;拥有专用硬件加速处理单元;采用专用硬件对特定协议操作进行协处理:如CRC、哈希查找、树查找、字符匹配;针对安全产品,提供加/解密、大数运算等硬件单元。
综上所述,IXP2400拥有网络处理的一般特点,从系统角度看,IXP2400属于一个并行式的多处理器共享总线的计算机系统。
2 网络处理器软件开发平台
Intel提供丁网络处理器开发平台,称为Intd IXA可移植框架(Intel IXA portability framework)。IXP2400软件开发可移植框架层次图如图2所示。
Intel IXA可移植框架中,将数据的处理分为两个层次:数据面(Data Plane,也称为Fast Path)处理和控制面(Control Plane,也称为Slow Path)处理。
数据平面主要运行在微引擎处理之上,充分利用数据包的无关性,采取并行处理方式,用于实现高速转发数据包的处理功能,具有线速执行特点。数据面的数据包处理可分为若干微模块Microblock。各个微模块之间相互独立,可实现数据面层次上的可移植性。
控制平面一般运行在网络处理器核上,处理各种通信协议、更新路由表、管理数据平面任务与状态、完成高层的QoS控制等。这些操作的性能要求低于数据层面,因此通常采用高性能通用处理器硬件平台。为了有效支持网络处理功能,控制平面与数据平面之间存在复杂的信息交互与依赖关系。
IXP2400的软件开发分为内核程序和微代码两部分。XScale内孩的开发通常使用基于嵌入式操作系统集成开发工具,如WindRiver公司提供的基于嵌入式操作系统VxWorks的集成开发工具Tornado或BMR TEC CO提供的基于嵌入式操作系统Montavista Linux的集成开发工具Teja。Teja开发工具给基于网络处理器的嵌入式开发带来极大的方便,它能缩短开发周期,优化生成代码,提高代码性能,而且生成的代码很容易移植到不同的目标系统。使用Teja集成开发工具,能独立于复杂的硬件而将网络应用表达为状态机。状态机逻辑可以被映射到选定的目标网络处理器的分布资源,基于这种逻辑设计和到硬件的逻辑映射,生成优化的目标代码(C、C++和MicroC)并且编译生成最终的映像文件。此外,Teja对于此逻辑和系统设计还能提供模拟测试和调试功能;IXP2400中对微引擎的编程使用Intel公司提供的Developer Workbench开发环境,主要使用微代码来进行编程。Developer Workbench提供了完善的编译、链接、仿真和调试功能。
Intel IXA可移植框架中最重要的组成部分就是在微引擎上和XScale核上开发的代码模块。基于不同硬件开发的代码模块分别为微模块和核心组件(Core component)。每个模块都代表了一个进行包处理的代码单元。这里实际上引入了构件的思想.各种模块以一定的顺序组织在一起,形成一个特定的应用。
集成电路 SoC 总线 嵌入式 VxWorks Linux 仿真 相关文章:
- 高性能、高集成度的TD-SCDMA模拟基带集成电路的实现和应用(01-09)
- Vitesse芯片组提升高密度40G/100G光学系统性能(02-25)
- 无线设备中CMOS频率源的应用趋势(05-08)
- 光互连技术(12-29)
- 利用串行RapidIO交换机设计模块化无线基础系统(03-12)
- 基于FPGA的USB接口IP核设计(03-13)