多核多线程与NP的区别

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、网络处理器NP的困境
网络处理器NP是更加接近ASIC的处理器:期望能够达到接近ASIC的性能,同时又提供灵活的编程能力。

在不是十分复杂的网络应用中,网络处理器是比较适合的。

但是如果应用复杂的话,由于受限于一定的微码空间和不够灵活的业务处理流程,网络处理器就显得比较被动了。

使用网络处理器设计整个系统,会从一定程度上降低整个系统对于修改或
者升级业务需求方面的响应速度,固定大小的微码空间也限制了应用的丰富性;不同的网络处理器对业务应用的适应性也存在各种各样的限制,对于真正的灵活业务应用,网络处理器还是缺乏必需的灵活变通的能力。

2 传统单核处理器发展的瓶颈
图2 单核处理器发展的瓶颈
处理性能高低与处理器、内存以及I/O外设访问的速度也是密切相关的。

从图中可以看出,在性能提升方面,处理器主频,内存访问速度以及I/O访问速度的发展十分不平衡。

处理器的主频每两年就要翻一番,而内存访问的速度要每六年才能提高一倍,而I/O访问的速度要提高一倍的话需要八年的时间。

所以处理器与I/O的发展不均衡已经对整机性能提升产生了很大的瓶颈,单纯依靠提高处理器主频来提升整个系统的性能已经不可行,因为大部分时间,CPU 都在等待内存或者I/O访问的返回才能继续下一步的工作。

而高主频处理器的设计对生产制造工艺要求非常高,生产难度大,成品率也较低,因此造成生产的成本居高不下。

3 希望:多核处理器
从用户角度看,他们需要的是一种编程简单,针对市场需求升级容易,而且能提供强大吞吐量的处理器产品。

因此,符合上述特征的新一代处理器产品及解决方案便成为市场争相追逐的焦点。

图3 微处理器的竞争布局
从上图可以看到,对于网络设备而言,采用的微处理器有以下几类:
1. 嵌入式CPU
2. 通用CPU
3. ASIC芯片
4. 网络处理器(NP)
从处理器的报文转发能力上看:
通用CPU < 嵌入式CPU < 网络处理器 < ASIC
而从四到七层业务处理能力上看:
ASIC < 嵌入式CPU < 网络处理器 < 通用CPU
l 通用CPU
通用CPU一般指x86系列,主要厂家是Intel和AMD。

通用CPU不是通信处理器,但是近来随着网络业务发展越来越灵活,通用CPU也越来越多地用于网络产品的系统设计中。

它的主频一般都很高,到2~3G左右,超流水线设计,具有很高的系统运算性能,但是对于数据网络的数据包处理并没有做专门的优化设计,整体报文性能显得不是很高。

通用处理器具有最好的编程灵活性、最好的L4-L7层业务适应能力、最简单的应用开发环境和最广泛的人才基础,因此,
我们看到基于通用处理器设计的系统方案越来越多。

通用处理器面临的最主要问题是:侧重运算能力,数据报文吞吐性能不够理想;同时,应对复杂的L4-L7层业务,缺乏必要的硬件加速手段,尽管可以实现业务,但总体性能偏低,难以满足用户对业务时延、吞吐量等指标的苛刻需求。

l 嵌入式CPU
嵌入式CPU目前使用非常广泛,从ARM、MIPS到PPC,都有大量的芯片可供选择。

嵌入式CPU是第一代、第二代、第三代路由器设备采用的主要平台。

一般来说,嵌入式CPU的主频不是特别高,从几百兆到1个G左右,但它在系统架构上针对数据包处理进行了专门优化设计,在数据包转发性能上较通用CPU要高很多。

另外,嵌入式CPU一般来说也可以完成L3-L4层应用业务类型的处理,甚至也可以完成对L4-L7层业务的处理,但由于受限于编程环境以及缺少专门的硬件加速部件,同样会出现随着业务复杂性的增加,性能急剧下降的问题。

另外从业务的灵活丰富性上来说,距离通用CPU仍有较大差距。

l 专用ASIC芯片
专用ASIC芯片的出现是为了满足目前网络带宽需求爆炸式增长应运而生的。

它将IP转发、MAC转发以硬件的方式固化下来,轻易达到几十个G的包转发性能,这是传统嵌入式CPU以及通用CPU根本无法企及的。

因此,专用ASIC芯片在二、三层以太网交换机中得到了充分的应用。

但有些尴尬的是,用户通过ASIC得到了高性能的带宽,业务处理能力却没有改观,甚至仍需借用其他设备才能获得业务能力。

举个例子,局域网用户以NAT方式共享带宽上网,目前普通的以太网交换机都必须搭配一台路由器或者网关设备才能满足要求。

至于加密、语音等复杂网络应用,ASIC更是无能为力。

而程序固化,导致新业务只能等待新款ASIC推出。

l 网络处理器
为了满足用户对高性能业务的需求,网络处理器诞生了。

可以这么说,网络处理器NP是一种可编程的ASIC。

报文转发性能上网络处理器比ASIC稍弱,但是由于NP的可编程,可以在L3-L4层的业务处理上完成ASIC所不能完成的业务。

如NAT、GRE隧道、L2TP隧道功能,性能上同样也是相当强劲。

但NP采用微码进行开发,新功能提供周期普遍较长。

另外受微码空间所限,业务支持类型无法做得很丰富,并且受硬件架构影响,复杂业务仍然难以在NP上实现,如隧道加密、多种业务的相互叠加等等。

由上面的分析可以看出,各种处理器各有优缺点。

在网络应用蓬勃发展的今天,市场所期待的理想处理器或者说网络处理引擎是什么样的呢?
概括起来应该是:高性能、易编程、良好的L4-L7层业务应用灵活性。

多核处理器(多核CPU)就是朝着理想处理器方向努力应运而生的。

多核处理器的出现为网络复杂业务的高性能处理带来了可能性,
多核处理器是在目前芯片功耗限制下,能找到的最好的提升芯片性能的方法。

简单说来,多核处理器,是在同一个硅晶片上集成了多个独立物理核心(所谓核心,就是指处理器内部负责计算、接受/存储命令、处理数据的执行中心,可以理解成一个单核CPU),每个核心都具有独立的逻辑结构,包括缓存、执行单元、指令级单元和总线接口等逻辑单元,通过高速总线、内存共享进行通信。

在实际工作中,每个核心可以在相对节能的方式下运行,牺牲单个核心的运算速度,但多颗核心协同处理任务,以达到性能倍增的目的。

4 多核处理器的优势
表1 处理器特性对比
通过上面的表格分析,我们可以总结出多核处理器的几大优势:
编程,特性开发周期短
多核处理器与单核处理器都是采用高级语言编程,都可以运行操作系统,指令空间没有限制,可以借助操作系统管理系统软硬件资源,为编程带来极大的简化,也方便了既有代码的继承和移植,因此在可编程和易用性方面是最好的。

而网络处理器不能运行操作系统,只能采用厂家提供的独家开发环境,采用汇编语言(个别厂家也可以使用C语言编程,但性能和效率会大打折扣)进行编程,也存在指令编码空间限制,在可编程和易用性方面存在不足。

反映到产品设计和应用上,就是对新业务响应和适应能力要比CPU处理器平台慢。

同时网络处理器各家特定的业务处理流程和系统架构限制较多,更加导致了网络处理器难以灵活响应多样化的L4-L7业务的发展需要。

强劲的数据转发性能
多核处理器和网络处理器一样,都支持优化的包转发指令和高效率的内存子系统,从而可以大大加速数据报文的转发处理,此外在包重组、转发、缓存调度等方面进行了特别的优化,同时具有大容量的L2级缓存系统,因此在报文转
发和处理方面具备高性能。

而单核处理器在数据报文的优化处理方面明显不足,因此性能表现上一般难以尽如人意,不能适应当前用户对网络设备转发性能日益增长的需求。

内置复杂业务硬件加速
多核处理器通常在系统架构设计阶段就非常注重复杂业务的硬件加速,特别是目前市场需求迫切的深层内容解析和加密业务,多核处理器通常都有强大的硬件引擎辅助处理,将宝贵的处理器资源从单调且繁重的加解密运算、报文校验、流量解析分类等工作中节省出来,用于简单业务的高速并行处理。

相关文档
最新文档