(电路与系统专业论文)网络处理器中流量管理和带宽分配问题研究[电路与系统专业优秀论文].pdf_第1页
(电路与系统专业论文)网络处理器中流量管理和带宽分配问题研究[电路与系统专业优秀论文].pdf_第2页
(电路与系统专业论文)网络处理器中流量管理和带宽分配问题研究[电路与系统专业优秀论文].pdf_第3页
(电路与系统专业论文)网络处理器中流量管理和带宽分配问题研究[电路与系统专业优秀论文].pdf_第4页
(电路与系统专业论文)网络处理器中流量管理和带宽分配问题研究[电路与系统专业优秀论文].pdf_第5页
已阅读5页,还剩58页未读 继续免费阅读

(电路与系统专业论文)网络处理器中流量管理和带宽分配问题研究[电路与系统专业优秀论文].pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 随着网络和通信的发展,推动了i n t e l 和a m d 的p c 处理器的发展,处理能 力同益提高。网络的传输速度每年翻一番,再快的处理器都不愁没地方用。山于 有了光纡,传输媒介的速度已不成问题。但是,信息包( p a c k e t ,在a t m 中称为 信元,即c e l l ) 通过路由器和交换机时,对包处理的最低要求是确定每一个包 的下个目的地,在庞大的路由表中找到它的i p ( i n t e r n e tp r o t o c 0 1 ) 地址,然 后转发出去,而这一切必须在下个包到达之前做完,障碍就出现在这里。 为了应付日益繁忙的信息流,网络的速度在几年前是1 5 5 m b s ( s o n e t 的o c 一3 标准) ,而现在已经到l o g b s ( o c 一1 9 2 ) ,2 3 年内又会提高到4 0 g b s ( o c 一7 6 8 ) 。 当速度比较慢时,通用的处理器完全赶得上数据流,后来,通用处理器不够快了, 设计者就转向a s i c ( 专用集成电路) 。但a s i c 由于开发周期长和不可编程性,使 得网络处理器成为一种必然的选择,广阔的市场前景使得网络处理器厂齑越来越 多,对于网络处理器的性能提出了更高豹要求,而其中最为关键的则是流量控制 和带宽分配问题。 本文从网络层中的揣塞控制理论入手,分析流量带宽控制的不同理论和在 n p 4 g x 中的解决方案,提出了新的b a t 算法,定义系统结构和硬件模块划分,用 v h d l 语言实现r t l 并完成功能验证和综合,作为n p 4 g x 的一个全新的带宽分配 协处理器,计划于2 0 0 5 年3 月流片。 关键字:网络处理器,带宽控制,流量控制,拥塞,n p 4 g x a b s t r a c t d u et ot h en e t w o r ka n dc o m m u n i c a t i o n t h ep r o c e s s o r so fi n t e la 1 1 da m dh a v ei m p r o v e dt h e i r f r e q u e n c ym u c h i nt h er e c e n ty e a r s ,t h et r a n s m i tf r e q u e n c yh a sb e e nd o u b l e de v e r yy e a r , s oi n t e l a n da m dw o n tw o r r ya b o u tt h eu s eo f t h e i rp r o c e s s o r s ,d u et ot h ef i b e r , t h em e d i ac a r r i e ri s n o t t h eb o a l e n e c ko fn e t w o r k h o w e v e r , w h e no o ep a c k e ta r r i v e sa tt h es w i t c ho rl o u t e r , t h eb a s i c r e s p o n s i b i l i t yi st od e t e r m i n ei t sd e s t i n a t i o n t h e r ew i l lb em u c ht i m et os e a r c hi t si pa d d r e s sf r o m t h el a r g er o u t et a b l e ,d e t e r m i n ew h e t h e rt of o r w a r do rd i s c a r di tb e f o r et h en e x tp a c k e ta r r i v e s h e r e ;st h eb o t t l e n e c k i no r d e rt oh a n d l em o r ea n dm o r ep a c k e tf l o w s 。t h ef r e q u e n c yo fn e t w o r kw a s15 5 m b sf s o n e t o c 一3 ) s o m ey e a ra g o ,b u tn o wi t s1 0 g h s ( o c 一1 9 2 ) ,a n di tw i l lc o n t i n u er i s i n gu pt o4 0 g b s ( o c 7 6 8 ) ,w h e nt h ef r e q u e n c yi sn o th i g h ,t h ec o m m o nc p ui sc a p a b l et oh a n d l et h ef l o w s ,s o t h es p e c i f i cn e t w o r kp r o c e s s o ri s l u x u r y b u tn o w , t h ec o m m o nc p ui sn o tc a p a b l ee n o u g ha n d a s i ci sa d o p t e dd i r e c t l y a sw ea l lk n o w , a s i cd oag o o d j o bi na l m o s ta l lt h ep l a c e s ,b u ti th a s t w od i s a d v a n t a g e s ,l o n gd e s i g np e r i o da n dn o tp r o g r a m m a b l e i t st h er e a s o nw h y m a n yd e s i g n c o r p o r a t i o n sh a v ef o c u s e do n t h en e t w o r k p r o c e s s o r t h eb r o a dm a r k e t i n gi sa l u r i n ga l w a y s f l o w c o n t r o la n db a n d w i d t ha l l o c a t i o ni st h ec r i t i c a li s s u eo f d e s i g n i n gn e t w o r k p r o c e s s o r b e g i n n i n g w i t ht h e c o n g e s t i o np r o b l e mi nt h en e t w o r kl a y e r , t h i sp a p e ra n a l y z e st h ed i f f e r e n tf l o w c o n t r o la n db a n d w i d t ht h e , o d e sa n dt h e s p e c i f i cw a y si nn p 4 g x b a s e do nt h en e wb a t a l g o r i t h m ,t h ea u t h o rd e f i n e st h es y s t e ma r c h i t e c t u r ea n dm i c r om o d u l ea r c h i t e c t u r e ,i m p l e m e n t s t h er t lw i t hv h d l l a n g u a g ea n df i n i s h e st h ef u n c t i o ns i m u l a t i o na n ds y n t l s i s b a ti st h en e w c o p r o c e s s o ri nn p 4 g x a n dt h ec h i pw i l lb e t a p e d o u ti nm a r c h2 0 0 5 k e y w o r d s :n e t w o r kp r o c e s s o r , b a n d w i d t h a l l o c a t i o n ,f l o wc o n t r o l ,n p 4 g x 第一章绪论 1 1 网络处理器的出现 网络出现以后,传统的做法是用软件加通用c p u 来完成,如何对网络上的 包进行快速处理成为了网络研究的热门话题。后来在第一代网络系统中,引入了 智能网卡的概念,智能网卡可以处理大部分第二层、第三层的包处理,臀如网卡 可包括允许网卡验证i p 校验和或从i p 数据包酋部中提取字段的附加硬件,网卡 也可以执行像包加密或包压缩这样的功能:板载处理的主要优势在于降低c p u 的负载,网卡只需要处理来自单个接口的包,而不需要处理聚合包速率。这样, 如果一个硬件板载智能网卡,它就不需要像传统的基于软件的系统中的c p u 那 样快地处理包。一般用a s i c 或者嵌入式r i s c 来实现网卡硬件。 第二代网络系统使用含有可以处理许多包处理任务的硬件的智能网卡,扩展 第一代体系结构。将协议处理任务移交给露卡减轻了c p u 的负担。在第二代系 统中,通过引入快速数据通路( f a s td a t ap a t h ) 的概念迸一步提高系统的性能, 快速数据通路允许在不使用c p u 的情况下,包可以从一个接口直接移动到另 个接口。第二代系统的设计既有其先进性,也存在局限性。第二代体系结构的主 要的优势在于它具有比第一代系统处理更多的网络连接的能力。通过减轻c p u 的计算负载,第二代系统可以进行系统的扩展:可以添加网络接口卡,并且为了 适应附加的网络连接可以对交换矩阵进行扩展。第二代系统的缺陷在于使用一个 通用处理器完成某些包处理任务。即便c p u 仅用于处理一部分包,传给c p u 的 包的数量会随着聚合包速率而线性增长。因此,如果系统具有很高的聚合包速率, 中央c p u 就可能会成为系统的瓶颈。 为了进步减轻c p u 的负担,第三代网络处理系统出现了。第三代系统使 用专用的硬件分敞协议处理任务:把适于每个协议处理任务的硬件剥离出来,并 将这种硬件复制到每个网络接口卡中。这样做可以使得协议处理任务从c p u 中 分离出来,并且允许网卡处理异常和商层的协议。a s i c 硬件用来提供包分类, 在交换矩阵中的包转发,控制设施,流量与管理等第三层协议。使用什么样的硬 件来处理离层协议呢? 多数选择嵌入式处理器( 即位于接口上且专用于完成与包 处理相关的处理器) 。控制处理器的软件存储在r o m 中,而且处理器使用一个 常规的r a m 保存包缓冲区及其他数据结构。最后,由通用c p u 处理路由以那 些不依赖于快速数据通路的任务。当网络的数据速率从o c 3 增长至o c 1 2 , o c 一4 8 ,o c 一1 9 2 甚至更高的时候,嵌入式处理器就成为了瓶颈。虽然嵌入式处 理器不能处理来自最高速度的网络的数据包速率,但是a s i c 硬件需要高昂的成 本,且不易实现,需要花费多个月的时间来制遗一个新篇,甚至在一个很小的改 动后也是如此。 这个时候,许多厂商热衷一种可以替代嵌入式处理器和a s i c 硬件的新方法。 尽力保留a s i c 硬件高数据速率的特点,同时减低设计、实现以及修改网络系统 所需的时间和成本。一种称作网络处理器( n e t w o r kp r o c e s s o r ) 的集成电路,构 成这项新技术的基础。由于网络处理器芯片代表两种方法的结合,网络处理器芯 片需要集成两种方法的最佳特性。一方面,作为嵌入式处理器的替代品,网络处 理器必须提供同样的关键优势:相对低的成本,简单的硬件接口,访问存储器的 能力,可编程性。 在另一方面,作为定制硅片的有效替代品,网络处理器必须具备a s i c 硬件 的关键特性:扩展到高数据速率的能力,扩展到离包速率的能力。 下面给出一个网络处理器的定义:网络处理器是一种专用韵、可编程的硬件 设备,它结合r i s c 处理器的低成本、灵活性以及定制硅片的速度和可扩展性。 网络处理器正成为构建网络系统的基本组件。 1 2 本文的写作背景和重点 直到1 9 9 9 年,还很少有人知道一种专门处理包的处理器,即网络处理器。 它同通用的处理器的不同之处在于:网络处理器是为优化包处理而设计的,它将 包以其到达的速度( 即线速) 送到下一个节点;而通用处理器则要处理范围很大的 各种指令。 基于国内对网络处理器的研究还没起步,而笔者有幸参与了基于i b mn p 4 g s 3 的新一代网络处理器n p 4 g x 的设计,所以本文以网络处理器作为切入点,首先 对网络处理器的架构进行了分析,比较各个架构之问的优劣,以期对网络处理器 有一个全面赢接的认识。本文作者重点试图阐述的一个问题是网络处理器中流量 控制和带宽分配问题,这是网络处理器最关心的一个问题。 通常的流量控制指的是特定的发送方和特定的接受方之间的点到点的流量。 如果发送方发送帧的速度超过了接受方能够接收的速度,则发送方该如何处理 呢? 常用的方法有两种。第一种是基于反馈的流控制,接受方绘发送方送回信息, 允许它发送更多的数据,或者至少也要告诉发送方它的情况怎么样。第二种是基 于速率的流控制,它可以限制发送方传输数据的速率,而无需利用接受方的反馈 信息。 当一个子网或者子网的一部分中出现了太多分组的时候,网络的性能开始下 降。这种情况成为拥塞。当主杌传送到子网中的分组数量在予网的容量范围内的 时候,所有这些分组都可以被递交,被递交的分组数量与发送的分组数量成正比。 然而,随着流量的快速递增,路由器不再能够处理所有这些分组,于是它们开始 丢弃分组。拥塞发生有多个因素,如果突然之间在三条或者四条输入线路上开始 有分组流到达,而且这些分组流都需要同样的输出线路,那么。路由器将建立一 个队列。如果路出器没有足够的内存来存放所有这些分组,那么有的分组就会丢 弃。多增加一些内存可能有助于将路由器的性能提升到一定的点上,但是,如果 路由器有无限数量的内存,那么拥塞现象会变得更羞,而不是更好,因为当分组 到达队列前端的时候,这些分组已经超时了,重复分组也已经被发送出去了。所 有这些分组都将被尽职地转发给下一台路由器,从而增加了到达目标机器的整条 路径的负载。本文会比较不同的带宽分配方案,然后提出新的带宽分配算法并用 硬件实现,验证,作为一个网络处理器产品n p 4 g x 的一个新的协处理器。 第二章网络处理器背景 2 。1 网络处理的三大特点 可编程性较低的整体成本来自于灵活性,可快速改变并适应各种应用的 技术缩短产品的开发周期并且可以再利用。为了保持低成本,网络处理器必须像 常规的r i s c 一样灵活。例如需要适应多种网络协议。灵活性的关键在于可编程 性。网络处理器能进行协议处理而不需要构建新的芯片。这点类似于常规的处理 器硬件保持固定,由软件决定网络处理器如何处理数据包。因此,在设计和 实现上,使用网络处理嚣的系统可以比使用a s i c 的系统块很多。同样,使用网 络处理器构建的网络系统可以快速地变动或升级。 指令集由于网络处理器必须达到比常规r i s c 处理器高的速度,仅仅具 有可编程性是不够的,因此,网络处理器设计成功的关键在于选择一个合适的指 令集以及个能够优化协议处理器整体体系结构。从原理上讲,指令集的选择是 比较简单的;除了像算术运算这样的常规操作以外,还需要用于执行包处理功能 的附加指令。但在实际上,选择一个合适的指令集是相当困难的,一方面,速度 常常来自专用性设计者对所要解决的问题越了解,就能优化越多的硬件来解 决问题。另一方面,为特定的协议或操作添加指令又违背通用技术的整体目标。 因为,为了尽可能保持网络处理器的通用性,指令并不仅仅针对某种协议的优化 上。相反,设计者总试图确定多种协议所共有的抽象操作,然后再产生可用于高 效执行这些操作的指令。 可扩展性由于底层的硅片制造工艺限制了网络处理器的最高时钟频率, 单个处理器不可能扩展到处理任意的包速率。因而,网络处理器的体系结构依赖 于两种标准的扩展技术:并行性( p a r a l l e l i s m ) 与流水线( p i p e l i n e ) 。与指令集 的选取一样,并行与流水线的硬件选择也是比较露难的,并且会引起许多问题。 应该把哪些功能部件复制到每块芯片上? 如何控制和使用硬件? 当一个网络处 理器不能满足要求时,每个芯片需要多少份拷贝? 多个网络处理器之间如何进行 互连? 并行与流水线体系结构的何种组合是适当的? 2 2 网络处理器基本架构 2 2 1 处理器层次结构 也许完整的处理器层次结构不会全部用在网络处理器中。相反,一个| j i j 络处 理器芯片包含足够处理某些级别的硬件,而依赖外部的硬件处理其余的级别。例 如,一些网络处理器包含专用帧构建器和传输硬件,进行c r c 计算、信号传输 和帧传输其他方面操作这样低层的i o 操作;另一些网络处理器则需要外部:落片 提供这些功能。同样,许多网络系统包含常规的c p u 用来执行管理功能,包含 监视系统性能,运行路出协议,提供系统管理员用于配置的接口等。 由于单一的网络处理器包含必须协同工作的许多物理处理器,处理器的分层 是网绍处理器中重要的阎题之。网络处理器可以提供一个或多个r s c 处理器 用于处理较高层协议,并且提供总体控制,一个或多个专用协处理器用于特殊包 处理任务的优化,多个o 处理器以线路速度进行入口或出口处理,一个或多个 交换矩阵接口用于处理与交换矩阵之间的交互,以及一个或多个数据传输部件用 于处理i o 设备与内存之间的包传输。 2 2 2 存储器层次结构 由于高速存储器的价格昂贵,屡次结构安排少量存储器以晟高速度运行,而 其余大部分在较低的速度下运行。为了保持分层的存储器的高效率,需要将存取 频率最大的数据放在最高速的存储器中,同时将不常用的数据归入较低速度( 较 低成本) 的存储器中。由于数据可以从一种存储器转移到另一种存储器,选择把 哪些数据放蔑在最高速的存储器中是动态变化的。 2 2 3 内部传输机制 在多数情况下,包驻留在存储器中,内部传输机制用于发送元数据,例如包 的指针或是从包首部提取的信息。然而,在某些体系结构中,一个完整的包在芯 片的各个功能单元之间传送。最终,除了包数据之外,内部传输机制也被用来交 换辅助数据,比如i p 路由衷或者是从到来的包中提取的地址列表。 由于网络处理器芯片包含多个独立的处理器,内部通信对于性能来说是至关 重要的如果内部数据通路很慢,那么网络处理器的整体性能将会很差。为了 保证传输的带宽可以满足所有可能的需要,大部分网络处理器包含多重传输机 制,例如包括: 内部总线最普通的内部传输机制之一要算内部总线。像常规计算机总线 一样,内部总线提供一条附着多个功能部件的数据通路。虽然可能使用一种分布 式的访问机制,但是许多内部总线包含各自的控制硬件,这些硬件对访问作出仲 裁并且保证在给定时间仅有一个单元试图通过总线传输。 硬件f i f o 一作为总线的备选方案,一些网络处理器提供先进先出形式的 传输硬件。f i f o 提供带缓冲的传输,允许发送方与接受方进行异步操作。f i f o 包含固定数量的存储槽( s l o t ) ,这些存储槽可以暂存固定数量的数据。最初,f i f o 中的所有n 个存储槽都是空的。只要f i f o 不是满的,发送方就可以将下一条数 据存在下一个可用的存储槽中;只要f i f o 不是空的,接受方就可以提取下条 数据。因此,在接受方提取任何数据之前,发送方可以在f i f o 中存储n 条信息。 一个f i f o 可以吸收包的突发,这种包突发是由到达的包速度很快或者一个流水 线级处理包的速度要比下一级快引起的。 传输寄存器第三个内部传输机制的可选方案包含组硬件传输寄存器。 就像硬件f i f o 一样,传输寄存器提供带缓冲的传输发送方可以将一个条目 存放在空的传送寄存器中,而接受方可以从包含一个条目的传输寄存器中提取数 据。不同于f i f o ,传输寄存器机制不强加一种顺序的访问模式。相反,该硬件 允许随机存取,就是说可以以任何顺序读取或写入寄存器。 板载共享存储嚣作为第四个可选方案,网络处理器可以包含板载存储器 用于传输数据项。发送方将一条数据放入共事的存储器中,而接受方再从中将数 据取出。虽然共享存储器提供更大的灵活性,但它不像其他机制那样流行,因为 它需要更多的芯片容量,并且需要用附加的接口硬件来达到较高的性能。 2 2 4 外部接口与通信机制 尽管设计者试图尽最大可能为单个芯片加入更多的处理能力,但是网络处理 器必须连接到网络系统中的其他硬件。外部的连接包括: 标准的和专用的总线接口网络处理器需要连接到个或多个外部总线。 这些总线可以是一条计算机工业标准的总线,比如p c i 总线,也可能是专门为网 络处理器设计的专用总线,比如网络处理器论坛规定的l a 一2 总线。在任何情况 下,大多数的网络处理器都包含总线接口硬件,这些硬件处理电气连接的细节并 且提供对芯片上处理器的总线接入。 存贮器接口网络处理器需要访问外部存储器。在大多数情况下,通过总 线连接存储器。然而,网络处理器可以包含附加的硬件优化与存储器的交互( 例 如板载高速缓存) 。这种优化可能导致一种弱排序,使得硬件发出读或写操作的 顺序与程序员指定的顺序不同。在这种情况下,存储器接口必需要提供一种原语, 这种原语使程序员在排序问题至关重要的地方可以进行控制。 直接i o 接口网络处理器可以在总线上连接告诉i 0 设备。例如,网络 处理器可以通过总线与以太网端口相连。然而,网络处理器也可能鸯接与某个设 备相连或者通过某种中介硬件与其他特定设备相连。在任何情况下,网络处理器 芯片上的接1 3 硬件都允许芯片上的处理器访问外部的i 0 设备。例如,网络处理 器可以包含遵从系统包接口3 级或4 级( s y s t e m p a c k e t i n t e r f a c e l e v e l 3o r 4 ,s p i 一3 o rs p i 一4 ) 标准,或者s e r d e s 帧构建器接1 3 ( s e r d e sf r a m e ri n t e r f a c e ,s f i ) 标准 的硬件。直接连接也用于极低速的i 0 ( 例如用于设备管理的串行线路) 。 交换矩阵接口( s w i t c hf a b r i ci n t e r f a c e ) 一些网络处理器被设计成为用 于连接某种特定类型的交换矩阵。在这种情况下,网络处理器包含接口细节的硬 件。作为一种备选方案,网络处理器论坛采用了用于交换矩阵接口的c s i x 标准, 目标是使网络处理器遵从一种独立于底层矩阵的接口标准。 2 2 5 专用硬件 除了作为处理器层次结构中一部分的协处理器之外,网络处理器还可以包含 至少两种类型的专用硬件。第一,网络处理器可以包含提供控制、同步或协调内 部处理器争用共享资源的一个或多个部件。第二,网络处理器可以包含一个或多 个可配置的硬件部件,这些硬件部件用于管理或控制i 0 设备或其他硬件部件。 前面已经提到共享内部总线可以有附加的控制硬件扔调访问所有放享总线的部 件。每种共享的资源,包括外部存储器和总线连接,都需要专用的协调机制。某 些网络处理器通过目i 入各自同步访问一组资源的功能更强的控制部件,把这种协 调思想推广。 第二种形式的专用硬件力求在专用协处理器与完全可编程处理器之间取得 折衷。就像协处理器一样,这种部件必须被调用芯片上的某个处理器使用这 3 个部件来执行个任务。然而,不同于协处理器,它的功能并不是固定的。相反, 这种硬件是可以配置的如果设定配置参数,那么这个部件可以被反复调用。 这种可配置硬件的优势来自速度,当完成配_ ! 莆! 后,这个部件的操作要比可编程的 处理器快。 2 2 6 轮询与通知机制 网络处理器必须处理异步事件,如像以太网端口上包的到达,协议计时器到 期,或者完成通过交换矩阵的传输。为了处理这种异步性,有两种可行的硬件机 制:轮询( p o l l i n g ) 和通知( n o t i f i c a t i o n ) 。网络处理器可以使用其中任意一种机 制,或者提供两种机制而让程序员选择。 轮询机制需要一个活动的元素( 比如一个处理器) 重复检测与事件相关的硬 件。例如,一个i o 接口设备可以配置成当包到来时对某一数据位置1 。处理器 开始先清除这个位,启动这个i 0 设备,并且反复测试这个位。一旦发现它被置 1 ,处理器检索并处理一个包。 轮询的一个替代方案就是通知机制。通知可以用硬件或软件中断实现。处理 器指定某个通知是必需,唐动一个操作,然后进行其他任务的处理。当这个通知 出现时,处理器从正在处理的事务中转向处理这个事件。例如,一个使用中断机 制的i 0 接口设备可以配置成当有包到来时中断处理器。这个中断使得处理器暂 时挂起当前的处理,执行处理到来包的相关代码。高速的系统更倾向于使用轮询 机制而避免使用中断带来的开销。 2 2 7 并行执行支持 并发执行用于在当一次计算蹰等待外部事件( 如包到达) 而阻塞的情况。为 了优化整体的吞吐量,并发系统允许有一系列独立的进程或者执行线程始终保持 在准备执行状态。当一个线程处于阻塞状态( 例如等待i 0 ) 时,处理器切换到 另一个线程继续执行。 典型的网络处理器提供对多级的并发线程的支持。在嵌入式r i s c 处理器中, 并发性通常由操作系统支持。对于没有操作系统的低级的i o 处理器,硬件必须 提供对并发性的支持。这就是说,一个程序员创建多个执行线程,并将它们各自 的信息通知给硬件,然后就由硬件自动在这些线程间进行切换。这样引起两个主 要问题: 9 线程执行是否可以跨越多个处理器? 一一支持全局线程执行的体系结构允 许一个线程从一个处理器迁移到另一个处理器;支持局部线程执行的体系结构的 各个线程均与其相应的处理器相联系,不允许线程在其他处理器上执行。在局部 系统中,一个处理器只能在分配给它执行的线程中切换。全局线程支持提供更好 的灵活性,但是增加处理器间的开销。 线程是否可以抢先? 支持抢先的体系结构允许一个外部事件( 例如一个 包的到来) 迫使处理器在线程问切换。如果不采用抢先方案,则允许一个正在运 行的线程决定何时放弃处理器丽切换到另一个线程。由于抢先可以自动完成线程 问的切换,它的优点是使编程变得更加容易。但是,不使用抢先的系统给予程序 员对处理多的控制。 2 2 8 编程的硬件支持 虽然每个网络处理器包含对编程模式的硬件支持,但是对于这个基本的方 法,目前还没有达成共识。当前流行两种支持编程的硬件形式: 异步事件处理程序这是一种编程形式,它由程序员创建系列处理程序 并将它们与指定的事件相关联。当一个事件发生时,系统调用相应的事件处理程 序。这些事件可以来自硬件( 例如一个包到达一个物理端口) 或软件( 例如一个 低级处理程序确定一个包含m 数据包,并将它传递给一个i p 处理程序) 。 通信线程一个常规的顺序编程模型,其中一个或多个线程独立地执行。 如果线程多于一个,这些线程使用进程阔的通信机制从一个线程到男个之间传 递数据( 例如,一个低级线程确定一个帧包含妒数据包,并将它传递给一个处 理i p 的线程) 。 2 2 9 硬件与软件的调度机制 调度( d i s p a t c h ) 是指对于并行或并发任务的总的控制。当工作开始时,涧 度器将这个工作分配给指定的处理器或线程。一些网络处理器提供对调度器的硬 件支持;另一些网络处理器则允许用软件控制调度。通常,软件调度用于带有操 作系统的处理器,而硬件调度则用于没有操作系统的低层i 0 处理器。 2 2 1 0 隐式或显式的并行性 应用于网络处理器的并行性主要有两种方式,它们的主要区别在于软件构建 0 的方式。使用显式并行性的硬件体系结构将并行性暴露给程序员,并且需要用于 开发并行硬件的软件。也就是说,程序员必须选择如何及何时使用一个功能部件 的拷贝,并且编写代码用于各个拷贝之间的协调。在大多数情况下,各个功能部 件的确切拷贝数字会编写在软件中。 使用隐式并行性的硬件体系结构安全隐藏并行的功能部件拷贝。也就是说, 程序员创建软件就像执行单一的拷贝一样。硬件在需要时通过复带l 程序自动地控 制并行性。 显式并行性的优点表现在可以给程序员更多的控制执行的能力,缺点是要求 程序员理解底层的硬件并编制相应的代码在一段程序被用于拥有或多或少 功能部件拷贝的网络处理器之前,必须要将它重写一遍。隐式并行性的优点在于 可以降低编程的复杂性,并且使软件不依赖于功能部件的确切数目。由于隐式并 行性在硬件部件中自动进行处理,允许程序受使用熟悉的单线程执行方式编制程 序。 2 3 网络处理器产品 从2 0 世纪9 0 年代末到2 l 世纪初的这段时间里,网络处理器从一种猎奇转 变成了一种主流产品。随着它的优势被人们所认识,需求迅速地增长。当一个系 统既需要减少整体成本又需要尽量快地投入市场的时候,网络处理器就成为设计 者的必然选择。面对这种情况,芯片生产商推出了许多产品。到2 0 0 2 年为止, 已经有3 0 多家生产商提供网络处理器产品。 正如前面提到过的,商用网络处理器产品有各式各样的体系结构。一方面, 生产商们试验了各种特性:一些芯片包含有很多专用协处理器,另一些芯片则采 用通用的可编程处理器。另一方面,每家厂商在价格和性能的结合上都做出r 自 己独到的选择:一些厂商生产负责程序较低( 价格也比较低) 、性能一般的芯片, 而另一些厂商则生产更复杂的、性能离的芯片。 2 3 1i n t e li x p 因特网交换体系结构( i n t e m e t e x c h a n g e a r c h i t e c t u r e ,i x a ) 指的是i n t e l 网络 处理器体系结构。i x a 既包括控制平蕊的处理,也包括数据平面的处理( 即快速 通路( f a s t p a t h ) 和慢速通路( s l o w p a t h ) 处理) 。1 x a 定义网络处理的硬件抽象、 应用程序接口( a _ p i ) 和互连机制。 因特网交换处理器( i n t e m e te x c h a n g ep r o c e s s o r , i x p ) 指的是实现i x a 体系 结构的网络处理器。目前,i n t e l 设计出4 款符合i x a 体系结构的i x p 网络处理 器。它们的主要差别在于芯片分装( 4 3 2 或5 2 0 个引脚) 、耗电量以及对c r c 校 验或e c c 校验是否提供硬件支持等特性。 下面主要针对i x p l 2 0 0 展开讨论。 图表1i x p t 2 0 0 应用结椅 * 如图表1 所示,i x p l 2 0 0 有3 种外部连接:一个串行线接口,两个外部i o 总线接口和两个外部存储器总线接口。 串行线路接口,1 2 0 0 包含通用异步收发器( u n i v e r s a la s y n c h r o n o u s t r a n s m i t t e ra n dr e c e i v e r , u a r t ) 硬件,它为传统的串行线路提供接口。将会看 到,串行线路和嵌入式r i s c 处理嚣相连。由于目的是提供控制和管理功能,串 行线路不会像其他i o 接口操作一样快。虽然程序员可以选择串行接口发送数据, 但它并不适合在高速通鼯中应用。 p c i 总线p c i 总线提供两个主要功能。第一,它允许i x p l 2 0 0 同诸如磁 盘这样的i o 设备相连。第二,它允许设计着是用常规c p u 作为通用的控制处 理器。出于p c i 技术的广泛使用,很多i o 设备都遵循这个标准。另外,支持处 理器和p c i 总线连接的苍片也很容易得到。 i x 总线一一虽然p c i 技术很流行,但是它的总吞吐薰仍然限制在大约 2 2 g b p s 。为了实现更高速的处理,i n t e l 提出了一种新的总线技术,称为i n t e l 交换总线( i n t e le x c h a n g eb u s ) 。i x 总线有两个主要用途。第一,i x 总线形成在 i x p l 2 0 0 和高速网络接口( 例如干兆位以太网接口) 传送数据的快速数据通路。 第二,i x 总线提供一种多个 x p l 2 0 0 互连的通信机制,这就使得设计师可以构 建一种网络处理器体系结构,其中有多个i x p l 2 0 0j s 片协同工作。 s d r a m 总线访问外部s d r a m 存储器。在i x p 中,s d r a m 是低成本、 高带宽的存储器,主要存放例如整个帧或包等大块数据。除了6 4 条数据线以外, s d r a m 总线还包括地址线、控制存取操作的控制线和一根时钟信号线。存储器 使用时钟信号线保持i x p l 2 0 0 对钟和存取操作之间的同步。 s r a m 总线用于访问s r a m 的接口和用于访问s d r a m 的接口是完全 分离的。s r a m 总线是共享的,它能供对多个外部硬件部件的访问。除了在包处 理过程中提供高速静态r a m 的访问之外,s r a m 总线还能访问用于引导系统的 r o m 或f l a s h r o m ,以及存储器映像设备接口。我们会看到,在s r a m 总线上 的设备接口主要用于控制而不是数据传送。 i x p l 2 0 0 使用一个5 层的处理器结构,其中有3 层在芯片上实现,另外两层 由外部硬件提供。图表1 0 列出了主要组件。 通用处理器处于i x p l 2 0 0 处理器层次结构中的最高层的通用处理器 ( g p p ) ,并不是i x p l 2 0 0 芯片的一部分。在许多系统中,需要一个外部的通用 处理器执行总体的控制和管理功能:g p p 不是快速通路的组成部分。例如,考虑 每个接口有一个网络处理器的系统。这种情况下,一个网络处理器不需要做全 局的路由决策,这项任务由通用处理器通过和所有瞰络处理器的交互来完成。通 用处理器能从所有网络收集路由信息,然后选择最有最优路径,并反馈给相应的 网络处理器。 嵌入式r i s c 处理器s 仃o n g a r m 是一个采用a r m 体系结构的特定处理 器型号,运行像l i n u x 这样的传统操作系统,作为控制点管理微引擎,而且提供 一个接口用于卸下和配置芯片。另外,s t r o n g a r m 还处理协议栈的更高层以及 引起异常的任何包。因此,这个s t r o n g a r m 处理器不用于常规快速通路的处理。 i o 处理器( 微引擎) d ( p 1 2 0 0 共有6 个包处理器。同嵌入式r i s c 处 理器相比,微引擎是底层设备,仅仅有几条基本指令。微引繁形成快速通路处理 的基础,负责处理i o 设餐和存储器闻的底层传输,以及例如帧的多路分解等基 本包处理任务。与嵌入式r i s c 处理器不同,微引擎不运行一个操作系统。 圈表2l x p l 2 0 0 内部结掏 协处理器和其他功能部件i x p l 2 0 0 有几个附加的协处理器和功能部件, 其中有一些是快速通路的组成部分。例如,芯片包含用于高速计算4 8 位或6 4 位自适应多项式敖列函数的敖列部件( h a s hu n i t ) 。i x p a l 2 0 0 还包括同一个实时 时钟一起工作的支持j t a g 外部连接的4 个计时器,以及4 个通用i o ( g e n e r a l p u r p o s ei o ,g p i o ) 引脚。 物理接1 3 处理器不是i x p l 2 0 0 的部件。因此,需要其他芯片完成网络 中第一层和第二层的处理任务。i n t e l 掇供接口芯片处理p o s p h y 和传统以太网 帧。高速物理接口用总线同i x p l 2 0 0 通信,这意味着网络接口硬件也必须能 用i x 总线接口。 2 。3 2h i f nn p 4 g x i b m 微电子部生产一系列名为p o w e r n p 的网络处理器,而h i f n 公司则在 i b m 的基础上开了新一代网络处理器,这是最复杂和最强大的一种网络处理器, 它是在一个体系结构中包含了大量的嵌入式处理器、协处理器和其他功能部件。 n p 4 g x 可以被应用在从桌上单系统到单独的由6 4 个网络处理器组成的网 络,为了支持应用这个网络处理器,配套的t o o l k i t 也被开发,包括片上系统调 试器,编译器,仿真器,所有的一切都可以帮助系统开发商缩短上市的时间。 黼”即删4 州 酝s 瓣s 啪2 黜 h 曝n l 砷* 3 f “曲目 黼w m 竹4 f i wc i 黼吲啪“ r i 西 轴日却口 f m m e 鼬p r h y o 哪i r 礓 f a w o m ¥t 刊 f a t e r m h 嗍6 口n u h 两耐1 - k m d l i n g 孙帅 m 焖m m n l 计# 酸8 5 p 固表3n p 4 g x 系统槊构 n p 4 ( 是可扩展可配置的: _ 低端系统。由单个n p 4 g x 构成,通过内部的s w i t c hw r a p 接口把数据 帧从i n g r e s s 发送到e g r e s s 。 中端系统。由两个n p 4 g x 构成,通过s w i t c h 接口相连。 _ 高端系统。通过一个p a c k e tr o u t i n gs w i t c h 连接最多6 4 个n p 4 g x ,也 就是说,可寻址2 5 6 个g i g a b i t 以太网端口,或者1 0 2 4 个快速以太网端 口,或者p o s 端口。 基于n p 4 g x 的系统往往采用分布式软件模型,需要有一个独立的c p ( c o n t r o lp o i n t ) 来执行软件。在高端系统中,这个c p 是独立的硬件,如图表3 篡 所示,可以通过以太网接口或者p c i 接口来与第一个n p 4 g x 相连。在小型系统 中,可以用内嵌的p o w e r p c 4 4 0 处理器来代替执行c p 的功能。 图袭4n p 4 g x 体系结构 如图表4 所示,n p 4 g x 有8 个主体模块: 一e p c ( e m b e d d e dp r o c e s s o rc o m p l e x ) :提供所有对帧的处理。 一e m b e d d e dp o w e r p c s u b s y s t e m ;可以完成c p 需要完成的工作。 一i n g r e s se d s ( e n q u e u e r d e q u e u e r s c h e d u l e r ) :支持帧从物理层到s w i t c h f a b r i c 的逻辑。 一e g r e s se d s ( e n q u e u e r d e q u e u e r s c h e d u l e r ) :支持帧从s w i t c hf a b r i c 到物 理层的逻辑。 _ i n g r e s ss w l ( s w i t c hi n t e r f a c e ) :转换帧从i n g r e s se d s 的格式到s w i t c h f a b r i c 或男一个n p 4 g x 。 一e g r e s ss w i ( s w i t c hi n t e r f a c e ) :转换帧从s w i t c hf a b r i c 或一个n p 4 g x 的格式到e g r e s se d s 。 一i n g r e s sp m m ( p h y s i c a lm a c m u l t i p l e x e r ) :从物理层接受数据。 一e g r e s sp m m :发送数据给物理层。 7 3 1 包处理 第三章包处理与流量管理 网络系统中的功能可以分为十大粪:地址查找和包转发,检错和纠错,分片、 分段和重组,帧和协议多路分解,包分类,排队与包丢弃,调度和分时,安全: 认证和保密,流量测量和控制,流量整形。这里简单介绍其中几种与流量带宽相 关的功能。 3 2 排队 基本排队 包处理系统的特点之一是“存储转发”( s t o r e a n d f o r w a r d ) ,因为这些系统 通常将等待处理的包暂存在存储器中。术语排队( q u e u e ) 指的是与存储和选择 包有关的策略、数据结构和算法。 在最简单的情况下,队列从字义上说是一种先进先出( f i f o ) 的数据结构。 也就是说,到达的数据包被插入到队列的一端,然后从另一端移出。用予f i f o 的数据结构必须满足存取包的高效性:当包出现时通知接受方并能处理如空队列 或满队列等极端情况。 当输入使用f i f o 后,网络速度、期望的突发大小以及可用的存储器就决定 了f i f o 的大小。但是,在多个输入f i f o 中,也存在一些变形。举例来说,在 一个有多接口的系统上,有两种可行的方案:为所有接口分配一个通过的f i f o , 或者为每个接口选择一个独立的f i f o 。前者意味着输入设备必须争用共享的 f i f o ,所以需要一种机制来仲裁f i f o 的访问。后者意味着色处理必须从多个 f i f o 中选择一个包,所以需要一种机制来实现这样的选择。 优先级机制 在实现优先级( p r i o r i t ) ,_ ) 的网络系统中,排队会更复杂一些。一种优先级策 略偏向于其中的一些包;优先级可能依赖于包的内容、发送方的标识或者包的大 小。优先级处理通常由多个队列实现每一个进入的包都被景于相应优先级的 队列中。对输出处理作这样的安排:搞优先级的队列得到高等级的服务。 排队规则( q u e u ed i s c i p l i n e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论