(王有志 译自《iCD》)
因特网革命不断改变着公共通信网的面貌,各种网络的系统设计也在随之演变。网络OEM一直面临着困难的抉择:根据性能要求,数据转发功能须以硬件来实现;而多种多样的新业务却要求灵活性,这只有软件才能提供。每遇新产品(甚至新线路卡),开发厂商对软硬件的基本搭配不得不重新加以审视。在各产品系列之间及各代产品之间,由于软件无法再次利用,导致了上市周期延长,开发费用增高,产品寿命缩短。
网络处理器已成为一种新兴技术,可为可编程软件系统带来硬件水平的性能。这可使网络OEM转而通过软件提供各类高级服务,并使其产品获得差异化。
按优化软件体系结构设计的各种网络处理器,会成为主导产品,它们支持宽带宽要求,提供从2至7层的可编程性。除此之外,这类编程模型和开发环境将使产品开发更加快速有效,软件可以跨系列或隔代重用。
重要的是要先界定网络系统设计中软件的含义。随着网络基础设施的扩大与融合趋势的加速,网络产品日益复杂,它们不仅要以线速交换并选定路由,而且要处理大批新型业务如QoS和多协议标记转换(MPLS)。此外,各种不同接口类型的数量不减反增,范围从广域网中的Sub-T1至OC-192以及局域网中的10/100Mb至10Gb以太网。
以软件实现上述功能和各种组合,体系结构要极为灵活,能通过编程达到网络应用的多样化和个性化。在某一层上,必须成为可编程的功能类型包括:
·媒体访问控制 实现各种低层协议,而且须共存并相互作用。协议对数据在信道中如何表示加以定义,并制定出访问信道的规则。奇怪的是,由于各种不同协议的发展,这既属于网络设备中标准化程度最高的领域,又是最具多样性的领域。各协议特别涵盖了各种以太网;SONET/SDH(既支持数据分组,又支持OC-3、OC-12、OC-48等标准速率的ATM单元);现有公共话音体系结构的传统T/E载波接口;以及一系列新涌现的光纤接口。
·数据句法分析 对含有地址、协议信息等的分组报头或单元报头进行句法分析。网络系统所具有的灵活性,能以实时和限制性逐包方式访问检查ISO模型中各层的各种信息。此外,高级业务要求对包与单元信息加以标记和封装,提出更高的处理要求。
·分类 根据在ISO模型2,3,4及更高层上规定的一组标准,对包与单元加以标识。在对数据完成句法分析之后,须立即分类以确定下一步操作。这些包括筛选与转发决策等基本功能,以及基于特定的端到端业务流的高级QoS及计费功能。这类要求的变化异常迅速。
·数据变换 协议内或协议间的数据需经修正或变换。低层传输协议的变化只有通过协议的组合和业务的多样性才能适应。变换的要求可以很多,从特定协议(如IP)内的地址变换,到完全的协议封装或转换(如在IP与ATM之间)。
·业务量管理 基于分类的结果和所建立的规则,按已定义的QoS参数对通过设备的数据业务量进行排队、控制和调度。在下一代网络中,这些功能对实现话音、视频和数据的汇聚将起到关键作用。
·数据存储与缓冲 在包与单元信息的处理过程中,对集中式的负荷存储加以管理。在转发决策一经作出之后,既将包与单元负荷传至相应的传出接口,交由网络传递。
总之,采用优化软件的网络处理器,就能通过各种各样的编程机制来支持所有网络功能。
开发目标集中在软件之后,则必须使网络处理器的编程相对容易。网络OEM开发软件时应采用所熟悉的高级语言,而不是以汇编或其他低级语言直接编写。C/C++语言本身有很多优点:有符合行业标准的编程工具,熟练的程序员乐于使用,现成程序已积累了数百万行。对实时通信系统,C/C++是到目前为止最为常用的软件语言;用它对网络处理器编程,实现其大部分功能,无疑是明智之举。
除采用熟悉的编程语言之外,通过应用程序接口(API)实现与硬件在一定程度上的分离也很重要。标准的API会把物理接口管理、数据转发、查表、缓冲管理、排队操作等最常见的网络活动分离开。对网络OEM,采用标准的API能保证处理器间有较高的兼容性。实际上,网络处理器厂商在相关产品系列(如主机和网络处理器)中采用、推广API,会得到最大的收益。
对习惯使用汇编代码发掘CPU性能到极致的程序人员,在转发代码中采用API,会觉得不习惯。但是,如将网络处理器设计得具有必要的计算功能,那么API就使应用系统的编码容易得多。例如,具有3000MIPS的网络处理器,对API带来的开销会游刃有余。
网络处理器要以软件实现复杂的转发功能,其处理器的体系结构必须是(最好的单个集成芯片)多个专用的、可独立编程的,这样既有所需的计算能力,又能避开传统的对称多处理器设计带来的限制。关键在于要采用RISC(精简指令集计算机),它利用简单编程模型为数据转发提供所需的灵活性。
网络处理器所用的RISC芯核不单是一种通用CPU,它需经专门优化以支持转发数据处理。这种RISC芯核应面向高层服务所需的通信任务,如交换与转发的最终决策、调度、以及统计数据采集。能进行此类处理的特征如下:
·标准指令集,避免专用指令集带来的各种问题。不过,此指令集的执行要对网络应用系统优化。
·存储体系结构对执行实时网络任务加以优化,包括实现对极短等待时间内容的交换(启用若干任务的多路复用)和数据的显示(在接收和传输数据时提供各包与单元的连续查看)。
·专用内部指令和数据存储器,必要时在RISC芯核间共享指令存储器。
·与传入、传出微机紧密耦合,这些微机具有报头提取、成帧、CRC计算等功能。
·可升级性,以支持宽带宽和高性能处理要求。例如,为使串行带宽升级,RISC可与并行群集器组合在一起,以适应较宽的数据流如OC-48c;为使处理能力升级后适应特定的应用系统,可将若干RISC芯核加以链接,对单数据流进行流水线式处理。这种处理能力可用于独立的数据速率。
既然RISC可集中用于以高级语言所实现的任务,那么有效的网络处理器结构通过微编程引擎能将时间紧迫的“比特级”任务从RISC芯核中移去。
在网络处理器的线路与结构接口处,来自不同媒体的包与单元合并在一起,甚长指令字(VLIW)微机可有效地进行数据句法分析并保持其线路速度。VLIW微机还可控制可编程外部引线逻辑电路,虚拟实现任一第一层接口,这在大多数情况下替代了外部MAC和成帧器。
RISC芯核和VLIW微机一般须与集成协处理器级联工作,它们通常处理所有网络应用,如排队/解队、查表、缓冲管理,而且处理效率很高,因为他们都是针对特定任务专门设计的。
网络处理器与软件开发环境同样重要。各种工具开发、测度和调整软件的快慢,直接关系到产品的上市时间。
网络处理器厂商针对某些功能大多会提供一些转发软件实例。这些应用系统(以及软件合伙人的已有产品)的范围、质量,关系到项目计划的成败。这些应用系统至少要能涵盖网络处理器所支持的功能范围 。据一般预计,OEM在各市场细分中都会增加一批定制的应用系统,以使产品与众不同,所以,在基准应用系统中就留有足够的可发展空间。
此外,网络处理器厂商必须提供大量的VLIW微代码,供最常用的接口和协议使用,这样,网络OEM就可容易地构建各自的系统。
仿真程序、编译程序、调试程序、性能分析程序等软件工具,是软件开发环境的主要组成部分。将这些工具在整个仿真与硬件开发环境中无缝集成,对缩短上市时间十分重要,但却经常受到忽视。
网络处理器厂商多半会提供某种仿真环境,以便能在硬件集成之前,先行开发转发代码,确定性能特征。网络处理器仿真的速度和精度是关键的鉴别指标。完全以软件实现的模型,可达到硬件模型(如Verilog /VHDL模型)一样的精度,但速度要快几个数量级,允许更大的仿真带宽。此外,支持全系统(包括多个网络处理器样品、主处理器、结构处理器、外部分类器等等)的仿真环境,使网络OEM在开发初期即能对整套系统软件进行测试和调整。
通常,多数厂商还提供一种硬件开发系统,它在“实际”网络处理器上具有执行软件的能力。这虽不能替代良好的仿真器(仿真器比硬件接收指令的能力更强),但在样机未建成前,都是开始最后集成的无价之宝,一个系统如能组装得极为接近目标系统的配置(物理接口类型,主处理器实际集成等),那将是极大的成功。
平面控制功能一般由传统的嵌入式CPU支持。这种处理器可直接与网络处理器进行硬件集成,但软件集成却颇费心思。因此,关键在于应有一种软硬件开发环境,它由主处理器(包括引导实时操作系统的驱动器),主级(host-level)API以及若干完全集成的应用系统所组成。
通过软件来实现网络功能和独有特征,优点很清楚:产品开发快,功能逐步增加,知识产权代代重用,充分利用基础技术的优势。关键在于选择网络处理器,它对软件要最大限度地加以优化。■
摘自《电子产品世界》
|