Chinaunix首页 | 论坛 | 博客
  • 博客访问: 45312
  • 博文数量: 21
  • 博客积分: 1425
  • 博客等级: 上尉
  • 技术积分: 175
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-11 20:51
文章分类

全部博文(21)

文章存档

2013年(1)

2010年(12)

2009年(8)

我的朋友

分类: 嵌入式

2010-01-23 14:47:33

网络多核处理器硬件的设计都与并行处理相关,包括通常核间并行、核内部并行、核与协处理器的并行。如何组织核间并行以及核与协处理器的并行是网络处理器并行模型研究的重点。在硬件并行的基础上,软件的处理就是要充分利用处理任务间的彼此独立性,将不同的任务同时交给不同的硬件单元来处理。

通常,一个网络应用程序可分为三个逻辑层面:控制层、数据处理层和管理层。从网络处理器所面向的处理任务看,不同的处理层面并行特性也不相同。对于控制层面和管理层面的任务一般是实时性较差的管理及控制操作,例如路由表的维护和端口状态轮询等,对于数据层面则是实时性较强的分组处理操作。

网络处理器的软件并行模型分为以下三个层次

1.分组级并行

大部分网络应用都是基于分组级的,不同的分组一般经过类似的处理,分组间一般是独立的,这样分组可以由不同的处理单元并行处理。然而这种处理也存在一定的局限性,即当属于同一个流的分组经过不同处理单元并行处理后必须有一个分组的重组保序过程。虽然上层的TCP等协议允许分组乱序,但是为了减小在终端分组重组的时间一般还要保证分组的顺序。

2.分组内并行

在对分组内部处理的过程中,有些任务也是彼此独立的,类似于微处理器设计中的线程级并行。

3.指令级并行

在网络处理器内部通过特殊的硬件结构完成处理器的并行执行,比如超标量技术。此外,有些处理器还使用了线程级并行技术。研究表明,在一般非特定的整数科学计算应用中,指令级并行是非常有限的,因此大部分网络处理器没有大量使用指令级并行技术。

分组级并行就是采用多内核的处理器来实现的,利用多个核同时处理多个网络数据包,每个核有自己的指令存储器和片内局部存储器,可以独立地执行指令并缓存频繁使用的局部数据,使得各个核可以全速运行而不需要等待慢速的外存存取操作。

阅读(428) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~