网络处理器软件开发模型的研究
关键词:网络处理器 软件开发模型 微引擎 微模块 核心组件
引言
随着当今网络规模和性能迅速增长,Internet主干网络流量的指数性增长及新业务接连的出现,这就要求网络设备具有线速和智能的处理能力。网络处理器NP(Network Processor)便是一种新兴、有效的统一解决方案。它适用于各层网络处理,具有ASIC高速处理性能和可编程特性,既能保证系统灵活性,又能完成线速处理数据包所要求的高性能硬件功能。目前,网络处理器已经涌现出了一些成功的应用范例。这些应用主要包括:基于网络处理器的路由交换设备、智能安全设备和入侵检测设备等。比如,北京联想使用IBM的PowerNP构成了电信级的防火墙设备。与此同时,围绕着网络处理器应用展开的相关研究也得到了飞速发展,一些企业和科研机构也给予了足够重视。例如,Intel专门投资支持全球100所大学进行网络处理器及其相关应用的研究。
由于网络处理器特殊的体系结构,它的软件编程模型与传统网络应用/嵌入式应用开发有较大不同,更为复杂。本文将以Intel IXP2400网络处理器为例,对网络处理器软件开发模型进行较为详细地探讨。
1 网络处理器硬件架构
在一般程序设计中,可以不考虑操作系统和编译程序、线程调度的细节、寄存器的数量和容量,而在网络处理器的程序设计中,忽略这些因素就不能编写出优化的程序。在对网络处理器,尤其是微引擎编程之前,需要仔细了解网络处理器的系统结构和硬件平台。下面以Intel的IXP2400为例来说明。
IXP2400网络处理器是Intel在2002年推出的第二代互联网交换架构(IXA)网络处理器。其中,IXP2400是面向中高端应用的网络处理器,可用于实现OC-48的网络路由交换设备。
(凹丫丫范文网fanwen.oyaya.net收集整理)
Intel的IXP2400网络处理器结构允分体现了SoC(System on Chip)的思想。如图1所示,它的内部主要包括8个完全可编程的4线程微引擎(Mev2)和1个XScale核。此外,还有用于连接外部MAC设备的MSF单元、连接各种存储器和总线的接口单元等。这些单元通过内部的高速数据总线和控制总线彼些协作。
XScale核(core)是ARM系列处理器的一种,它在IXP2400中起控制和管理作用。具体包括:对系统初始化;提供系统的时钟;建立并管理路由表;提供一个对应于IXP2400各寄存器、存储器和外部存储器的地址映射表等。XScale核在系统启动时,从BootROM开始执行引导程序,对整个IXP2400系统进行初始化。
IXP2400中的每一个微引擎其它就是一个32位RISC处理器,可以由4个并行硬件线程共享。数据包的接收、处理和发送等任务,均由微引擎中的各线程并行执行微引擎指令存储区中的微代码程序来完成。网络处理器数据的高速转发正是因为充分利用了硬件的并行性,来弥补线速转发中的内存访问的延迟。
IXP2400嵌在开发板的中心,周围通过数据线连接着各种设备,如SRAM,SDRAM等。SDRMA主要用来存放需要处理和转发的数据包等,也作为XScale核的内存;SRAM主要存放对数据包包头进行处理所需的重要信息和数据包的队列描述等内容。通过IXP2400的数据单元是一个64字节的MAC包(MPKT),在每收到一个包的时候,MAC将一个数据分成若干个MPKT,MPKT就是网络处理器处理数据的单位。
综上所述,IXP2400拥有网络处理的一般特点,从系统角度看,IXP2400属于一个并行式的多算是器共享总线的计算机系统。对于网络处理器的程序设计和一般计算机的程序设计有很大不同。
2 网络处理器软件开发模型
网络设备性能和可编程能力最终由运行在网络处理器平台上的软件决定,其中,选择何种编程模式是关键。评价网络处理器编程模式有两个基本准则:一个是编程模式所能涉及的层,即哪些功能能够编程以及编程能达到的层;另一个重要方面就是处理器衬淫的编程模型。由于网络处理器平台服务于软件功能需要,所以编程方法的关键是在不牺牲设备性能的前提下,使用成熟技术和现有软件模式,保证产品的
《网络处理器软件开发模型的研究》