基于网络处理器的核心路由器设计技术研究
发布时间:2008/5/29 0:00:00 访问次数:283
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中的每个微引擎就是一个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)并且编译生成最终的
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中的每个微引擎就是一个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)并且编译生成最终的
上一篇:手机病毒及其解决对策