基于网络处理器的可编程路由器技术研究
扫描二维码
随时随地手机看文章
摘要:网络处理器是一种可编程处理器,用于高效的处理网络中的数据流。网络处理器具有广泛的用途,基于网络处理器的路由器同使用通用处理器的路由器和使用专用集成电路的路由器相比,既具有快速的特点又具有灵活性的特点。
1 前言
网络处理器是现代综合业务数据网络不断发展更新的产物,是一种基于可编程 ASIC 结 构的新一代SoC 芯片。它是为了适应下一代高速网络特点,即为了能够提供Qos,能够不断 适应新的网络应用,能够发展新的网络管理模式以及能够快速响应市场对新的网络功能的需 求而推出的一种新的芯片产品。网络处理器同时具有GPP 和ASIC 两方面的优点,即具有专用 集成芯片线速转发报文的高速度特性同时又具有通用芯片的可编程性。近来对于网络处理器 的研究非常活跃,国际各知名计算机芯片生产公司也纷纷推出自己的产品和标准。Intel IXA(Intel Internet Exchange Architecture,互联网交换架构) 作为一种网络处理架构, 是Intel 公司网络处理器的技术基础。
在互联网中,路由器具有核心的地位。互联网一直在不断向融合语音、数据等多种业务 的综合开放结构发展。因此,路由器必须提供更高的吞吐量、服务质量保证、可靠性和更多 的网络管理功能。为了适应互联网的发展变化,路由器的结构也一直在发展变化之中。 最初的路由器通常采用单一的通用CPU 来负责分组的处理和转发。这种结构是在单一 CPU 中通过软件来实现分组处理和转发,它的特点是实现简单,可以通过修改软件来提供新 的业务,缺点是单一CPU 处理能力有限,全软件实现也难于实现高速分组转发。因此,在高速 路由器中普遍采用了专用集成电路来负责数据的处理和转发,采用通用CPU 来负责路由器 的管理。
高速的专用集成电路,可以满足日益增长的带宽需求。但是由于专用集成电路的开 发时间长,并且在灵活性方面受到极大的限制,而不断出现的新的业务却期望厂商能够在最短 时间内更新路由器的功能。网络处理器集中了专用集成电路的高速处理能力,同时还具有可 编程,扩展性强的特点,能够很快适应业务的发展变化。因此基于网络处理器的路由器得到了 许多网络设备生产商和研究机构的重视,目前已有一些基于网络处理器的路由器产品问世。
2 网络处理器简介
网络处理器是一个被集成在一个半导体设备上的可编程器件。它主要用于优化网络处 理任务,这些任务是:接收包,处理包和转发包。典型的网络处理器由一个核心处理器和许 多包处理引擎组成。它利用并行分布式和流水线架构,并把高速度、灵活性的良好特性和可 扩充性相结合来提供更好的性能。 网络处理器由两类硬件功能单元组成,即网络处理器单元和专用的智能协处理器/加 速器。网络处理器运行的软件是经过优化的,支持系统级应用和网络专有功能。网络处理器 单元是网络处理器核心,它提供高速、大容量智能处理数据包功能,包括数据解析、分类和转 发等等,因此网络处理器单元常常被称为数据包处理引擎。不同的协处理器则实现包分段/ 重组、加速查表、队列/缓冲区管理、顺序管理、存储器控制和多播支持等功能。
为了保证关键数据包的实时处理, 网络处理器一般将网络处理任务划分为数据层和控 制层两个层面, 控制层面专门负责非实时性的管理和策略控制等,数据层面承载高速易变的 数据实时处理。网络处理器位于数据通路物理接口处理器和背板之间, 它的典型功能包括: 分段和重组、协议识别和分类、排队和存取控制、流量整形和流量工程、服务质量。网络处 理器的主要特征是其可编程特性和ASIC 处理性能的结合。
这一特征引发了通信系统设计的 革新,它使系统设计者摆脱了原先复杂、零散的设计,将注意力放在高层服务上,缩短产品推 向市场的时间,延长产品的生命周期,这也是生产商在激烈竞争中得以生存和发展的关键。表 1 中列出了网络处理器七个关键的特性,它们来源于下一代网络对网络处理器编程能力、性 能和开放性的需求。
表 1:网络处理器的七大特性
总之,网络处理器技术是网络发展的趋向,它不仅可以减少开发商的开发成本,缩短开发 时间,加快产品升级换代的能力,同时也保护用户的利益,减少用户在网络新功能需要的投资 和升级换代的费用,所以无论在技术上还是在经济上都具有重要意义。
3 IXP1200 网络处理器架构 IXP1200 由六个可编程的微引擎和一个协调系统行为的工作在200MHz 的StrongARM 内 核组成。每个微引擎有四个硬件线程,在IXP1200 芯片上一共有24 个线程。除了微引擎, IXP1200 还用一些别的特殊的硬件设备来辅助进行包处理。 微引擎和StrongARM 还共享有 一个可编程的HASH 引擎和专门的队列,IXP1200 网络处理器的架构图如图1 所示。
下面我们将对 IXP1200 中的微引擎和StrongARM 做一个详细的介绍。微引擎有一个特 别适用于处理网络数据的指令集。微引擎除了可以在单个指令里执行位、字节、和长字操作外,还有带有移位和循环移位的算术和逻辑操作。但是微引擎没有整数乘或除、也没有浮点 数操作。微引擎的乘法是通过反复进行加运算来完成的。在微引擎中每个指令占用一个长字 (32 位)的存储空间。每个微引擎有一个独立的可容纳1024 条指令的4KB 的指令存储器。 在微引擎开始运行之前,StrongARM 内核上的代码负责给这个指令存储器装入代码。一旦微 引擎运行时,指令以一个五阶段的流水线来运行,并且当流水线充满时,平均只需用一个周 期去执行一条指令。当指令阻塞在存储器或设备存取操作完成时,或当跳转指令迫使在流水 线中的某些指令退出执行,平均的指令执行时间就会长于一个周期。
在IXP1200 系列处理器上的StrongARM 内核是基于INTEL 的SA-1 内核。这个内核实现 由ARM 公司定义的32 位的ARM V4 架构。StrongARM 内核在计算能力和功耗上是一种折衷的 选择。编程StrongARM 内核和编程嵌入式通用处理器没有太大的差别。
图 1:IXP1200 网络处理器架构
在一个微引擎的线程之间以轮转方式实行非抢占式的硬件线程仲裁交换,而且只有准备 好运行的线程才能够被交换到运行状态。调度器保存有已准备运行的线程号,当有线程准备 放弃微引擎的控制权时,调度器在微引擎中以线程标志号的顺序次序搜寻一个准备运行的线 程。对于有抢占式调度的操作系统,开发者不能控制也不能预测什么时候为了让另一个代码 块运行而中断一个指定的代码块。而在微引擎中,在另一个代码被运行之前,当前代码必须 明确放弃微引擎的控制权。这使得开发者可以控制代码的实际运行情况。因为代码访问存储 器是一个会消耗数十个周期的操作。所以一般情况下,当线程等待存储器或别的硬件操作时, 线程会自动放弃对微引擎的控制权。当线程等待存储器操作完成时,线程可以交换出去并允 许别的线程去运行。这种策略最大化了微引擎正在执行的工作量。非抢占式线程调度使微引 擎能够异步的处理存储器。一个微引擎能明确选择释放微引擎的控制权,它也能选择不释放 控制权,等待一个存储器操作。如,一个微引擎线程发出一个存储器读请求操作,然后又继 续执行其它指令。存储器读请求操作的完成信号然后能被异步的反馈给微引擎线程。异步存 储器读操作是微引擎和大多数通用处理器的一个重要的区分。
4、基于网络处理器的路由器
在网络发展初期,网络传输的速率较低,没有必要用专用的处理器处理分组,用原有的通 用处理器就可以满足分组转发的速率要求,但随着网络速度的提高,通用处理器已经不能适 应网络高速发展的需要。因此,需要想办法提高路由器的性能,利用硬件处理分组的转发是很 自然能想到的方法,所以就出现了基于ASIC 的路由器。基于ASIC 的路由器仍是当前提高网 络设备速率的主流,它的最大缺点是缺乏灵活性,一旦把特性嵌入到硅片上,就很难来增加新 的特性和改善性能。设计和制造一个复杂的ASIC 要花费12 个月到两年的时间,这对路由器 厂商来说,需要在发展周期中提前预测出市场可能最需要的特性和协议。它以失去灵活性和 快速响应市场的能力作为代价来获取速度。随着网络应用领域的迅速扩大,新的特性(虚拟局 域网VLAN、虚拟专用网VPN 等)和用户的新需求(多媒体、视频点播、视频会议等)不断出现 和变化,这样,由于ASIC 固有的不灵活性,导致厂商不能快速地对用户要求的功能做出响应, 使厂商失去了快速响应市场的能力,于是人们在研究一种既能满足性能要求又能满足灵活的 处理器,这就是网络处理器。除此之外,ASIC 还有引脚太多(200~400 个引脚),价格昂贵等缺 点。另外,局域网流量的分布变化促进了网络处理器的发展。由Internet 规模和应用的发展, 以往大部分的通信限于局域网内部,而现在有相当一部分的信息是和局域网外部网络进行交 换的。而且这种趋势还会不断地增加,这使得分组将传输在更复杂的,多种多样的网络体系上, 相应地,安全问题(如加密、授权与鉴定、高级监控和入侵监测等)也成为重点考虑的对象, 为了提供不同服务质量(如IP 广播、高级的服务质量Qos),网络控制也将复杂得多,所有这 些要求路由器变得更加智能,同时要以线速处理7 层网络协议(OSI)的高层内容,以满足用户 要求的不同服务,由于ASIC 是用硬件来实现这些性能的,不能进行编程,所以就不能快速满 足用户的这些新要求,于是,基于网络处理器的路由器应运而生。
从功能分,路由器可分为通用路由器与专用路由器。一般所说的路由器为通用路由器。 专用路由器通常为实现某种特定功能对路由器接口、硬件等作专门优化。例如接入服务器用 作接入拨号用户,增强PSTN 接口以及信令能力;VPN 路由器增强隧道处理能力以及硬件加 密;宽带接入路由器强调宽带接口数量及种类。
目前路由器有以下三种实现方法:基于通用处理器的软件路由器、基于ASIC 的路由器、 基于网络处理器的路由器。第一种路由器的优点是:可灵活的升级系统;易于支持增加的接 口;可以更快的开发新产品并缩短产品的进入市场时间。核心处理器执行所有的路由功能。 缺点是不能升级到高带宽。第二种路由器的优点是:能提供线速性能;ASIC 被用于包或帧 的转发、CPU 被用于控制功能的架构提供了速度和灵活性。确定是缺乏灵活性。而第三种路 由器则综合了前两种路由器的优点:可同时提供性能和灵活性;多个包处理元素(微引擎) 支持了多个线程;通过流水线化和并行处理能获得更高的性能;软件编程会更容易的增加服 务并可带来灵活性。
5、结束语
网络处理器结合了 ASIC 的硬件高速与智能处理器可编程的特点,为下一代网络设备的 开发设计提供了全新的硬件平台。合理利用IXP1200 网络处理器的可编程性、高速数据处 理、并行处理和可扩展性等特性可构建出设计合理、实现简单、性能良好、经济实用的路由器。
来源:星梦居0次