回顾路由器的发展历史,使用过的微处理器一共有四种: 通用CPU、嵌入式CPU、ASIC芯片以及网络处理器(NP)。
从处理器的报文转发能力上看,通用CPU<嵌入式CPU<网络处理器<ASIC,而从四到七层业务处理能力上来看,
ASIC<嵌入式CPU<网络处理器<通用CPU。

1、通用CPU
通用CPU一般指X86系列CPU,主要提供厂家是Intel和AMD。通用CPU的主频一般都很高,适合于图像处理、
科学运算、数据库处理等对运算尤其是浮点运算性能要求很高的上层复杂业务。通用CPU具有良好的编程灵活性、
极佳的复杂业务适应能力和简单易用的开发环境。不过通用CPU毕竟不是网络处理器,
虽然早期的路由器曾经采用过奔腾通用CPU,但终因其功耗大、对加密等复杂应用无硬件加速、
网络专用总线类型匮乏、指令系统复杂且效率低、更新换代频繁等劣势而被各网络设备厂家抛弃,
现在只能在网络设备的控制系统,如主控板上偶尔看到它们的身影。

2、嵌入式CPU
目前嵌入式CPU使用非常广泛,从ARM、MIPS到PPC架构,都有大量的选择。
嵌入式CPU是第一代至第三代路由器的主要处理器平台。一般来说,嵌入式CPU的主频不是特别高,
从几百M到1个G不等,功耗相对通用CPU要低很多,但对系统架构进行了专门优化设计,
在数据包转发性能上较通用CPU要高很多。另外,嵌入式CPU一般也可以完成一定性能的L3-L4层应用业务的处理,
甚至也可以完成对L4-L7层业务的处理。但由于受限于编程环境,以及缺少专门的硬件加速部件,
会出现随着业务复杂性的增加和叠加业务的增多,性能急剧下降的问题。
因此,嵌入式CPU通常使用在中低端路由器上。

3、专用ASIC芯片
专用ASIC芯片是为了满足网络带宽需求爆炸式增长而出现的高性能处理器。
它将IP转发、MAC转发以硬件的方式固化下来,轻松达到几十个G的包转发性能,
这是通用CPU和嵌入式CPU根本无法企及的。因此,
专用ASIC芯片在二、三层以太网交换机以及某些强调转发性能的高端路由器上得到了广泛应用。
但有些尴尬的是,在得到了高转发性能的同时,对复杂业务的处理能力却没有改观,
甚至仍需借用其他设备。以GRE隧道业务为例,目前普通的以太网交换机不能单独提供,
必须搭配路由器或者×××网关。至于IPSec加密、语音等复杂的网络应用,ASIC更是无能为力。
并且由于ASIC芯片均为固化设计,很多时候为了支持新业务只能等待新型号的ASIC推出,周期漫长,
不利于保护投资。

4、网络处理器
为了满足高性能业务的需求,设备商在高端路由器中引入了网络处理器(NP)。可以认为,
NP是一种可编程的ASIC。NP在报文转发性能上比ASIC稍弱,但是由于可编程,
它可以完成ASIC不能胜任的L3-L4层复杂业务,如NAT、GRE隧道等功能,
且业务性能相对传统的嵌入式CPU也有了质的提升。但是NP采用微码进行开发,提供新功能的周期相对较长。
另外NP的代码空间有限,无法支持很丰富的业务类型,并且受硬件架构所限,
隧道加密、多业务的灵活叠加等仍然很难实现。

由上面的分析可以看出,传统的微处理器各有特色。在应用日趋复杂的大型骨干网络中,
上述处理器很难在性能和复杂业务适应性方面实现很好的平衡,
因而采用上述处理器为处理核心的网络设备也会面临越来越严峻的挑战。
因此,在网络应用蓬勃发展的今天,众所期待的理想处理器可以概括为:具备高转发性能、易编程、
良好L4-L7层业务应用灵活性的网络微处理器。而多核处理器,正是朝着这一方向迈进的新一代网络处理器,
它的出现,给网络设备的复杂业务高性能处理带来了无限的可能性