




已阅读5页,还剩62页未读, 继续免费阅读
(计算机系统结构专业论文)网络处理器中包处理引擎硬件线程与上下文切换的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 传统的网络设备大多采用基于g p p 或a s i c 的嵌入式处理器。随着网络流量 的迅速增长和网络业务的多样化它们在性能或灵活性上已难以满足应用需要。 为此,一种并行可编程的网络处理器( n p ,n e t w o r kp r o c e s s o t ) 被引入到路由 器( 交换机) 的处理层面。它基于a s i p 技术并对网络处理程序进行了优化,同 时具有软件的灵活性和硬件的高性能。目前,网络应用系统的设汁越来越多地 采用高速,灵活的网络处理器。 网络处理器是典型的多r i s c 内核的并行实时处理结构,担负着数据包的处 理和网络带宽管理等实时任务。在系统结构t 网络处理器一般由一个通用处 理器和多个并行或流水的数据包处理引擎( p e ,p r o c e s s i n ge n g in e ) 绢成,每个 处理引擎内部支持多个线程,且采用了流水线技术来提高处理能力。这样,线 程切换时流水线的清除与重载将占用一定的系统周期,影响系统性能。如何消 除或者减少这部分的开销,值得我们研究。同时,如何配置p e 数目、p e 线程数 目,使网络处理器的设计在系统性能和芯片复杂度以及利用率之间做一个比较 好的均衡也是值得研究的一个f o 题。此外,线程间的调度和使用策略对系统公 平性和利用率起着很重要的作用,而目前的设计都采用了简单的被动线程调度 的方式,这种方式的处理器利用率受外部负载的影响较大,这也是目前网络处 理器研究中的一大热点。 本文的主要工作和特色如下: 1 研究了网络处理器中上下文切换时因流水线造成的影响,提出了在流水 线上增加辅助寄存器的方法,有效降低上下文切换时的影响: 2 研究了报文处理模型,提出了一个具有一般意义的报文处理时间模型 并用c 语言实现了一个多p e 结构网络处理器的模拟器: 3 研究了网络处理器中p e 数目与系统的吞吐率协处理器利用率、p e 利 用率之间的约束关系;给出了微引擎中线程数目与系统的吞吐率、线程利用率、 p e 线程利用率之问的约束关系: 4 提出了主动线程调度的思想,并设计实现了一种主动线程调度策略。 关键词:网络处理器,超流水,硬件多线程,主动线程调度 a b s t r a c t m o s to ft h et r a d i t i o n a ln e t w o r kd e v i c e sa d o p tt h ee m b e d e dp r o c e s s o rb a s e do n g p po ra s i ca l o n gw i t hi n c r e a s i n gr e q u i r e m e n t so fn e t w o r kr a t e sa n ds o p h i s t i c a t e d n e t w o r k i n gs e r v i c e s ,t h e yc a n ts a t i s f yt h en e e do f t h ea p p l i c a t i o ni nt h ep e r f o n n a n c e o rt h ef l e x i b i l i t ya sas o l u t i o n ,o n ek i n do fp a r a l l e lp r o g r a m m a b l en e t w o r kp r o c e s s o r ( n 只n e t w o r kp r o c e s s o r ) ,w h i c hi sd e v e l o p e db a s e do na s i p , a n di se s p e c i a l l y o p t i m i z e df o rt h en e t w o r ka p p l i c a t i o n ,p r o v i d i n gw i t hh i g hp e r f o r m a n c ea n dg r a t e f l e x i b i l i t y t o d a y , t h en e t w o r ka p p l i c a t i o ns y s t e md e s i g nm o r ea n dm o r eu s e sh i g h s p e e d ,t h en i m b l en e t w o r kp r o c e s s o r n e t w o r kp r o c e s s o rg e n e r a l l yc o n s i s t so fm u l t i p l ep a r a l l e lr e a l t i m ep r o c e s s i n g r i s e s ,c a l l e dp r o c e s s i n ge n g i n e s ( p e s ) ,e a c ho fw h i c hs u p p o r t sm u l t i p l et h r e a d sp e s a r er e s p o n s i b l ef o rp a c k e tp r o c e s s i n g ,n e t w o r k i n gb a n d w i d t hm a n a g i n g ,a n ds oo n t h u s ,t h el i n er e g u l a t i o nc u tf a s h i o nw a t e rl i n ee l i m i n a t i o na n dt h eh e a v yl o a dw i l l t a k et h ec e r t a i ns y s t e m c y c l e ,w i l la f f e c t t h e p e r f o r m a n c eo fs y s t e mh o wt o e l i m i n a t e so rr e d u c e st h i sp a r to fe x p e n s e s ,i sw o r t hu ss t u d y i n g a tt h es a m et i m e , h o wd i s p o s e st h ep en u m b e gt h ep el i n er e g u l a t i o nn u m b e r , c a u s e st h en e t w o r k p r o c e s s o rt h ed e s i g nm a k e saq u e s t i o nb e t w e e nt h es y s t e mp e r f o r m a n c ea n dt h ec h i p o r d e ro fc o m p l e x i t ya sw e l la st h eu s ef a c t o rw h i c haq u i t eg o o db a l a n c ea l s oi sw o r t h s t u d y i n gi na d d i t i o n ,t h el i n er e g u l a t i o nd i s p a t c ha n dt h eu s es t r a t e g ya r ep l a y i n gt h e v e r yv i t a lr o l et ot h es y s t e mf a i r n e s sa n dt h eu s ef a c t o r , b u tt h ep r e s e n td e s i g nh a sa l l u s e ds i m p l yb yt h eg e n e r a t r i xr e g u l a t i o nd i s p a t c hw a y ,t h i sw a yp r o c e s s o ru s ef a c t o r i sb e e nb i gt h ee x t e r n a ll o a di n f l u e n c e ,t h i sa l s oi si nap r e s e n tn e t w o r kp r o c e s s o r r e s e a r c hb i gh o ts p o t t h em a i nw o r ka n dr e s u l t so f t h i sp a p e ri n c l u d e : 1 w er e s e a r c h e dt h ei n f l u e n c eo ft h ep i p e l i n ew h i l en pi s s w i t c h i n g c o n t e x t a n d ,w ep r o p o s et h em e t h o do fi n c r e a s i n gt h er e g i s t e ro ft h e p i p e l i n e ,w h i c hc o u l de f f e c t i v e l yr e d u c e st h ei n f l u e n c eo f c o n t e x ts w i t c h ; 2 b a s e do nt h ea b s t r a c t i n go ft h ep a c k e tp r o c e s s i n gm o d e l ,w cp r o p o s ea 垒堕竺1 4 p a c k e tp r o c e s s i n gt i m em o d e lw h i c hi so fg e n e r a ls i g n i f i c a n c e ;as i m p l e m u l t i p es t r u c t u r en e t w o r kp r o c e s s o rs i m u l a t o ri sr e a l i z e du s i n gt h ec l a n g u a g e ; s t u d yt h er e s t r a i n tr e l a t i o n sb e t w e e nt h en u m b e r so fp ei nn p , t h r o u g h o u t o fs y s t e m ,u t i l i t yo fc o p r o c e s s or ,u t i l i t yo fp ea n ds oo n ;g i v et h er e s t r a i n t r e l a t i o n sb e t w e e nt h en u m b e r so ft h r e a di n p e ,t h r o u g h o u t o f s y s t e m ,u t i l i t yo ft h r e a d ,u t i l i t yo fp ea n ds oo n ; p r o p o s e da c t i v et h r e a d ss c h e d u l i n ga n dd e s i g nas i m p l ea c t i v et h r e a d s s c h e d u l i n ga l g o r i t h mi sc a r r i e do u t k e yw o r d s :n p , s u p e rp i p e l i n e ,h a r d w a r e - m u l t i t h r e a d ,a c t i v et h r e a d ss c h e d u l i n g i i i 第l 章绪论 1 1 课冠背景 第1 章绪论 随着网络传输速度的不断提高,上网用户数目的飞速增长,i n t e r a c t 主千网 络数据流量呈指数级飞速增长,主干路由器的处理速度己经由o c 12 增加到了 o c 一4 8 ,并且即将达到o c 1 9 2 ,特别是大量的多媒体和高清电视应用的出现, 促使增长速度进一步加快。同时,复杂的q o s 控制,知d i f f s e r r ”,r e d i3 i 以及 新的网络协泌和服务已经成为研究热点,这给位于各网络节点的网络设备的性 能提出了更高的要求,早期基于通用处理器加软件实现方式的网络设各逐渐成 为网络发展的性能瓶颈,不能满足网络发展的需要。为了解决这矛盾,a s i c 技术开始在网络设备中应用,目前仍是高性能网络设备的主流技术。它通过把 计算机逻辑固化到硬件中来实现对网络流量的高速处理,大大提高了网络设备 的性能,咀适应网络带宽不断增长的趋势。然而,a s l c 最大的缺点是缺乏灵活 性。计算机逻辑一旦固化到硬件中,就无法或者很难修改升级,以增加新功能 或者提高性能,资源重用率很低。同时,a s i c 的设计成本及研发费用非常高, 一般是软件实现的数十倍。另外,a s i c 开发的周期太长,又不是可编程的,当 路由器或交换机要增加新的功能,就必须经历一个设计和制造的周期,难以适 应当今越来越短的产品开发周期。同时,网络的发展,对网络设备也提出了更 高的智能化要求。例如服务质量( q o s ) 、通信安全( s e c u r i t y ) 等服务都需要分 组分类( c l a s s i f i c a t i o n ) 和深层数据处理( 处理o s i 模型的第4 层到第7 层) 。 这些服务既要求处理的高速度,又要求实现的灵活性hj 。因此,刚络设备要能灵 活地满足各种不同服务和应用的要求,这点a s i c 技术难以满足。针对这种情 况,各大处理器厂商都纷纷推出了网络处理器,它通过良好的体系结构设计和 专门针对网络处理优化的部件,为上层提供了一个可编程控制的环境,实现了 硬件加速和软件可扩展性的折衷,在具备高速处理能力的同时,又不乏高度的 灵活性。它的特点在于:网络处理器是为优化包处理而设计的,它将包以其到 达的速度( 即线速) 送到下一个节点,作为一种处理器,如果需要新的功能或新的 标准,网络处理器可通过编程来实现,而不用对硬件作修改。为提供极i 苛的数 第1 章绪论 据包处理速度,网络处理器提供了多个微引擎同步运行每个微引擎又具有硬 件的多线程,在数据包的层次上给予多级流水线支持,即同时刻可以对数据 流进行并行、连续的处理。 按照网络处理协会( n p f o r u m ) p j 的定义,网络处理器是用于实现报文处理、 协议分析、路由、语音数据集成、防火墙和q o s 等通信工作的可编程硬件。可 见,网络处理器是一种专用的、可编程的硬件设各,它结合r i s c 处理器的低成 本、灵活性以及定制硅片a s i c 的速度和可扩展性。网络处理器正成为构建网络 系统的基本组件。 作为新一代网络设备的核心,网络处理器投术和产品在短短的几年里得到 了快速的发展,其应用市场也在不断扩大。据统计,今天的网络处理器市场大 约是5 亿7 亿美元,但市场号家们相信,随着越来越多的网络设备厂商采用这 一技术,这一市场将在今后几年呈指数级增长j 。 目前,网络处理器产品市场全部由国外产品所占领,国内在这方面几乎是 空白。这说明在网络技术上,我国和国际水r 还存在相当大的差距。而这种情 况对我们构建具有自主知识产权的高性能路由器极为不利。因此,网络处理器 的关键技术的研究工作有非常重要的意义。 1 2研究内容及主要工作 由于到达网络节点设各的报文之间的相关性小,网络处理器一般都设置了多 个p e ( p r o c e s s i n 8e l e m e n t ,处理单元) ,每个p e 独立处理一个报文,这样可咀同 时处理多个报文。报文处理过程中,有一些公共的操作,如访问存储器、查找 路由表等,需要访问共享资源,网络处理器一般设置了多个协处理器来完成这 些工作。为了隐藏访问共享资源的延迟,p e 上通常设置了多个线程,当个线 程在访问共享资源时,线程释放对处理器的摔制权,让下一个准备就绪的线程 运行,从而提高p e 与协处理器之间的并行性。 本课题主要针对网络处理器中的关键部件一一包处理引擎涉及的关键问题 进行了研究。这些关键问题丰要是引入多线程技术和流水线技术后,线程切换 时由于需要清除和重载流水线而对系统性能产生的影响,p e 数目和硬件线程数 目的设置与和系统微引擎性能的关系以及p e 内线程的调度策略等。 第1 章绪论 1 3研究成果 与本文相关联的主要研究成果有: 建立了一个具有一般意义的网络处理器报文并行处理的时间模型; 实现了一个简单的多p e 结构的网络处理器的模拟器; 提出了在流水线上增加辅助寄存器的方法,以减少上下文切换时的开销; 给出了系统性能与p e 数目、线程数目、协处理器处理时间等因素之间的约 束关系: 提出了主动线程调度的思想,并设计了一种主动线程调度算法。 1 4论文的组织 本文各个章节的组织如下: 第一章介绍课题背景、课题内容以及论文的组织结构。 第二章介绍网络处理器的并行体系结构。包括网络处理器的基本处理技术和 主流网络处理器所采用的并行技术。 第三章研究了网络处理器中上下文切换时因流水线造成的影响,并提出了在 流水线上增加辅助寄存器的办法,以减少上下文切换时的开销。 第四章对p e 数目对系统性能的影响、p e 内线程数目对系统性能的影响以及 线程调度的策略进行了研究。找出了p e 数目、线程数目、协处理器处理器能力、 p e 处理能力与系统性能之间的约束关系:提出了主动线程调度的思想,并设计 了一种主动线程调度算法。 最后是结束语和致谢。 3 第2 章网络处理器并行体系结构 第2 章网络处理器并行体系结构 由于报文处理具有内在的并行性,网络处理器采用了多种并行技术来加速报 文的处理。本文对网络处理器的并行体系结构进行了深入研究,将网络处理器 采用的并行技术分为三个层次上的并行,分别是p e 内部的并行,p e 之间的并 行,p e 与协处理器之间的并行。 2 1网络处理器概述 网络处理器( n e t w o r kp r o c e s s o r ,以下简称n p ) 是一利t 可编程器件,是一利- 专用处理器,主要应用于通信领域的各种任务,比如包处理、协i 义分析、路由 查找、声音数据的汇聚、防火墙、q o s 等。n p 器件内部通常由若干个微码处 理器和若干硬件协处理器组成,从而实现了业务灵活性和高性能的有机结合。 网络处理器由两类硬件功能单元组成,即网络处理器单元和专用的智能协处理 器加速器。网络处理器运行的软件是经过优化的,支持系统级应用和网络专 有功能。网络处理器单元是网络处理器核心,它提供高速、大容量智能处理数 据包功能,包括数据解析、分类和转发等等,因此网络处理器单元常常被称为 数据包处理引擎。不同的协处理器则实现帧分段重组、加速查表、队列缓 冲区管理、顺序管理、存储器控制和多播支持等功能。下面分别介绍其实现的 功能、技术原理、技术特点及应用。 2 1 1 网络处理器实现的功能 网络处理器实现的功能有: 1 协议识别和分类:根据数据包的协议类型、端口号、目的地址、以及其 它特定于协议的信息对数据包进行识别。 2 拆装和重组:数据包的拆分,处理,以及为转发而重组。 3 排队和接入控制:识别出数据包之后,将这些数据包送往相应的队列中 以进行下一步处理,如优先处理,流量整形等。f 刊时,可根据某些安全 接入策略进行数据包过滤,确定是继续转发,还是丢弃。 4 流量整形和流量工程: 某些协议或应用要求对流量进行整形以使之在进 4 第2 章网络处理器并行体系结构 入输出线或输出光纤时满足时延和时延抖动的要求。 5 q o s ( q u a l i t yo fs e r v i c e ) 干nc o s ( c l a s so fs e r v i c e ) :除了对数据包进行流量整 形外,数据包还可以被打上标签送往下一网络节点进行更加有效的处理。 6 修正数据包:编辑数据包并添加额外的信息。 7 差错检测:正确检测来自数据链路层的有差错的数据包并能采取有效的 处理措施。 2 1 2网络处理器的技术原理 网络处理器的基本结构如图2 1 所示。其主要部分说明如下。 图2 1 网络处理器的基本结构图 1 片内处理器。网络处理器内部一般又包含多个片内处理器,构成多处理 器系统。这些片内处理器可按任务分工大致分为核,心和转发引擎两种类 型。前者用于系统维护和管理以及复杂数据处理,后者用于快速数据处 理,提供分类、调度等服务功能。另外,转发引擎可以包含多个硬件线 程,每个线程都有一套专门的硬件来存放程序运行的卜下文,可获得线 程切换的零开销。 5 第2 章网络处理器并行体系结构 2 高速1 1 0 接口单元。网络处理器有丰富的i 0 接口单元,包括物理链路接 口、交换接口、存储器接口以及与其他外部处理单元的接口等。 3 内部高速总线。以上多组处理器和i 0 接口单元通过内部高速总线( 般为多总线结构) 连接在一起,组成优化的数据通路结构,从而提供很 强的硬件并行处理能力。 4 存储器。存储器一般包含多种不同性能的存储结构,以适应不同的应用 目的。例如f l a s h 用于存放硬件启动引导程序;s r a m 存放路由表、队 列结构等各种查询表格;s d r a m 作为缓冲区存放分组数据。 5 专用指令集。片内转发引擎一般具有专用的精简指令集,这些指令经过 针对网络数据处理的优化,例如数据读写、状态判断、堆栈操作、哈希 查找等。 6 专用组件( 协处理器) 。要求高速处理( 线速) 的通用功能模块可以由硬件 来实现,作为专用组件,例如路由查找和数据加密等,以提高系统性能。 2 1 3网络处理器的技术特点 形成网络处理器竞争优势的技术特点1 7j 主要有如r 几点。 1 可编程性。网络处理器的本质在于其可编程性,从而改变a s i c 灵活性差 的缺点。这是通过提供界面友好而且功能强大的编程、调试和性能评价 等软件环境来实现的。 2 并行处理。网络处理器可实现不同级别的并行处理:通过流水线实现指 令级的并行,通过硬件线程实现线程级的并行,通过片内多处理器结构 实现处理器级的并行。 3 高速数据处理。网络处理器需要具有线速处理的能力,以避免节点设备 成为瓶颈。其硬件结构为此提供了保证。 4 深层数据处理。也叫智能处理( i n t e l l i g e n tp r o c e s s i n g ) 。根据不同的服务 要求,可对分组( 帧) 进行不同深度的处理。例如路由查找只需处理第3 层( i p 头部) ,分类需要处理到第4 层( t c p u d p 协议) ,而安全则需要 处理到应用层( 分组携带的有效载荷) 。 5 模块化设计。网络处理器体系结构的模块化也包含不同的层次:硬件层 面和软件层面的模块化。通过模块化设计,力图在保持高性能的基础卜 6 第2 章网络处理器并行体系结构 获得很好的可扩展性和灵活性,并能使设备厂商容易研发不同性能和不 同特性的设备。 6 可扩展性。网络处理器的可扩展性同样包含硬件可扩展性和服务可扩展 性。前者指网络处理器除了可以用来研制小型设备,还可以通过交换机 构的连接研制大型设备。后者是指可以在对原有软件结构做很小改动的 基础上加入新的服务和功能。 2 1 4网络处理器的应用 网络处理器通常应用 8 】在以下几个方面: 1 w a n m a n 边缘路由器; 2 多业务接入平台:支持i p 、a t m 和m p l s ; 3 企业网骨干交换机; 4 d s l a m 和其他宽度应用设备,如3 g 无线基站、c m t s : 5 v p n 网管路由器: 6 防火墙和安全路由器; 7 i p 吉比特太比特路由器; 8 i p v 6 路由器。 2 2网络处理器的基本处理技术 随着d w d m 9 j 等光纤技术在主干网络中的广泛应用,每1 2 个月光纤链路的 容量就增大一倍,而按照摩尔定律,以集成电路技术为基础的处理器速度是每 1 8 个月增长一倍,因此在网络上以微电子处理器核心的i p 路由器已经成为网络 中的一大瓶颈。与此同时,大量新网络协议和网络服务的出现又进步增加了 网络处理的复杂度。文献【1 0 】将网络处理分为3 个层次:底层、i p 层和应用层。 底层( 1 0 wo rm i c r ol e v e l ) ,比如以太网中的c r c 校验和表查找( t a b l el o o k u p ) 等: i p 层( i pl e v e l ) ,如i p 路由、n a t 等:应用层( a pp 1 c a t i o nl e v e l ) ,如m d 5 ,s s l , u r l 交换等。为了弥补处理能力和链路带宽爆炸之间的差距,并兼顾处理所需 要的足够高的可编程性和灵活性,要求网络处理器本身必须具备如“f 特性: ( 1 ) 拥有网络分组并行处理能力; 第2 章网络处理器并行体系结构 ( 2 ) 具有高效的处理速度,能够达到分组的实时处理; ( 3 ) 拥有一定数目的网络专用协处理器: ( 4 ) 具有高度的可编程性和可扩展性; ( 5 ) 能够快速投向市场,尽量减小再开发周期。 为了迎合这些要求,网络处理器将网络处理任务划分到控制层和数据层两个 层面,控制层面专门负责非实时性的管理和策略控制等,数据层面承载高速易 变的数据实时处理。总体上,网络处理器主要采用以下硬件处理技术: ( 1 ) 两种处理机制 网络处理器内部一般都是多内核( m u l t i c o r e ) 的结构j 。这些内核一般可以分 为两种:一种是具有一般运算能力和指令存储能力的处理单元p e ;另一种是能 够完成特定处理任务的功能模块,如c r c 校验单元等。在现有的商业网络处理 器中,这两种单元一般采用以下两种组织机制: 流水线技术:每个内核被设计成具有特定处理功能的模块,这些模块以流水 线方式组织在一起完成分组的处理。采用这种结构的网络处理器有c i s c o 公司 的p x f 系列处理器和m o t o r o l a 公司的c 5d c p 等。 并行处理:每个处理单元p e 都可以完成相似的任务,多个处理单元彼此问 可并行执行。采用这种结构的网络处理器有i n t e l 公司的i x p 系列和i b m 公司的 p o w e r n p 系列等。 ( 2 ) 优化的内存管理和d m a 单元 在一般的多处理器系统中,内存操作往往是系统开销的一大瓶颈。而一般的 网络处理器设备通常要对分组进行存储和复制等处理,需要执行大量的存储器 操作。网络处理器为了优化这一操作往往引入经过优化的存储器接口和一些 d m a 单元,以提高存储器的操作效率。比如,在i n t e l 公司的i x p 2 4 0 0 中,提 供了s r a m 的空闲堆栈以及相应的处理指令。 ( 3 ) 优化的运算逻辑单元a l u 不同于一般的处理器,网络处理器提供了一些用于网络处理的专用指令【12 l , 比如位( 字) 扩展、压缩指令。同时,大部分网络处理器采用了r 1 s c 技术,可以 做到任何a l u 运算能在一个时钟周期内完成。 ( 4 ) 网络专用的协处理器( c o p r o c e s s o r ) 现在大部分网络处理器为些特定的网络操作提供专用的硬件协处理i l 引,比 如专用的路由表查找引擎、硬件分类引擎、缓冲和队列管理引擎。这些仂、处理 8 第2 章网络处理器并行体系结构 器有些集成在网络处理器片内,有些则安排在片外。 ( 5 ) 硬件多线程技术 为了进一步提高处理器的利用率,网络处理器通常引入了零切换开销的硬件 多线程技术。比如i n t e l 公司i x p 2 4 0 0 的每一个微引擎中拥有8 个线程,每个线 程拥有独立的程序计数器p c ;i b m 公司的p o w e r n p 中也有类似的结构。 2 3网络处理器中的并行处理技术 为了尽可能地提高报文处理速度,网络处理器采用了多种并行技术。按照并 行的粒度大小,可以分为p e 内部的并行、p e 与p e 之间的并行和p e 与协处理 器之间的并行。其中,p e 内部的并行又包括指令级并行和线程级并行两种。 微引擎内部并行 指令级并行 线程级并行 微引擎间并行 并行组织微引擎 串行组织微引擎 微引擎与协处理器的并行 同步方式 异步方式 2 3 1微引擎内部的并行 微引擎内部的并行包括指令级并行和线程级并行。 指令级的并行属于传统计算机体系结构技术范畴,凡是在通用处理器上的并 行技术均可用于网络处理器,如超标量、超流水、超长指令字等等。例如c i s c o 的p x f t m 】处理器就采用了双发射的v l i w 结构,每个节拍可以执行两条指令, 通过使用先进的编译技术可以获得线程内的指令级并行。而c l e a r w a t e r 的网络处 理器则采用了多发射的超标量结构,可以在执行时自动获得指令级并行而不需 要编译器的支持。 线程级并行主要通过同时多线程技术( s i m u l t a n e o u sm u l t i t h r e a d i n g ,简写 9 第2 章网络处理器并行体系结构 s m t ) e 1 5 来实现。c l e a r w a t e r 公司的网络处理器c n p 8 1 0 s p 就采用了这种技术 1 6 1 。 它可以有8 个线程同步执行,每个周期从两个线程取指令,相应的p c s 提供给 双端口i c a c h e ,每个端口提供8 条指令,所以最大可以取1 6 条指令。每个线程 有各自的寄存器文件,线程间没有共享的寄存器,它们之间的通讯通过存储器 进行。但s m t 的这种方式,在目前主要的n p 生产厂商中并没有被采用。而且, 从另一个角度来看,p e 内部的线程级并行性并没有太大的好处,因为在p e 之 间,线程级并行是一件非常自然的事情,完全可以把一个复杂的支持i 司时多线 程的p e 分解呈多个简单的只支持单线程的p e 。这里,需要解释一下i 司时多线 程的概念。同时多线程是指在处理器内部同时有多个线程处于执行态,基于前 面提到的原因,多数网络处理器在p e 内部并没有采用同时多线程,只是给每个 线程提供一组独立的上下文寄存器和存储空间,而计算资源只有一组,各个线 程分时共享计算资源。当一个线程处于执行状态时,其它线程处于等待状态。 由于同一时刻p e 内部只有一个线程处于执行状态,多线程并不能加快单个报文 的处理速度,它的作用主要是隐藏访问存储器和协处理器时的延迟。此外,p e 内部采用指令级并行还会带来线程切换开销增大的问题。以i x p 2 4 0 0 为例,其 p e 拥有五级流水,那么在进行线程切换时需要保存流水线各段的状态,这个开 销就可能大于一个结构简单的p e 。 多线程可以实现多个线程的并行执行。当一个线程暂停时,另一个线程继 续执行,这样可以更有效的利用处理器资源,节省芯片的面积。随着处理器频 率提高,访存延迟在执行时间中所占的比例日益增大,使用多线程机制,可以 有效的隐藏访问延迟,显著增加系统的吞吐量。同时考虑到n p 被用于处理数据 包( 信元) ,包之间的相关性很少,有天然的并行性可供挖掘。可以在并行组织 的网络处理器的微引擎内实现多线程以提高并行性。 网络处理器的编程模型主要有:s i n g l e s t a g e 、s i n g l e i m a g e 微引擎的每个 线程完成个包的处理过程,所有线程都是相同的;这和m u l t i s t a g e 模式不同, m u l t i s t a g e 的微引擎采用上面提到过的p i p e l i n e 方式组织,一个数据包的处理要 通过多个核,每个核完成处理过程的一个阶段:另外还有一种足s i n g l e 。s t a g e 、 m u l t i i m a g e 微引擎中的线程可能完成不同的功能。 微引擎给每个线程提供一组独立的寄存器上下文和存储空间,线程的执行 代码是一样的。通过持续进行的轮询操作,旦调度器发现。个包等待传输, 它发信号给一个空闲线程进行传输操作。这个微引擎线程就开始一个完整的包 1 0 第2 章网络处理器并行体系结构 传输过程,直到完成转发操作。当个线程访存或等待协处理器执行结果时, 处理器快速切换到一个新的线程上下文( 假如所有线程上下文都堵塞例外) 。微 引擎除了一般情况下每个线程需要独立的p c ,独立的页表等等之外,给每个线 程提供一组独立的上下文寄存器和存储空间。线程的切换仅仅是在寄存器上下 文上的切换,切换时不需要保存现场到存储器,达到所谓的线程切换“零开销”, 可以有效的隐藏延迟。但是,目前没有在并行组织的网络处理器微引擎中发现 使用超标量等技术,应该就是因为考虑到要保存线程执行状态,需要增加寄存 器数量,增加了开销;也正是这个原因,流水线深度也不宜过深。 但这种实现多线程也存在问题,主要是微引擎内的多个线程执行相同的操 作,会使用相同的执行单元,可能会产生资源冲突,所以微引擎内的多个线程 不能同时执行。例如i b m 公司的p o w e r n p 1 7j 中的每个可编程处理器核( c l p s ) 支持2 个线程,但任一时刻只能执行2 个线程中1 个线程的指令:a m c c 的第5 代n p 核通过分时复用【l8 1 ,同时执行6 个不同线程的指令。 仅仅采用串行组织的网络处理器,并未见支持多线程的描述。可能的原因是, 假如微引擎支持多线程,每个线程处理不同的包,则线程之间可能因为共享的 资源而发生冲突,使单个数据包的传输速度变慢,甚至使流水线停i 顷。反不如 微引擎采用较简单的设计,只有单线程,通过增加微引擎之间的流水线数目来 提高处理能力。 2 3 2微引擎与微引擎之间的并行 微引擎与微引擎之间的并行是目前大多数网络处理器采用的并行方式之一。 p e 有两种配置方式:并行和串行。并行配置的p e 采用的是资源重复的并行思 想,而串行配置的p e 则采用的是时间重叠的并行思想。每一种配置方式都有两 种实现方法:专用任务处理单元和基于r i s c 的处理单元。 在并行组织中,利用资源重复的并行思想,由若干个功能相同的微引擎组成, 如图2 2 。而微引擎内可支持多线程,各线程间共享执行单元,利用线程切换来 隐藏延时,每个线程可以独立完成一个数据包的存储转发的过程,所以又称为 r t c ( r u n t o c o m p l e t i o n ) 处理方式1 1 9 1 。并行组织采用层次型的共享存储器,它 的好处是负载容易平衡,可以对报文处理的仝过程进行优化,具有更多的可编 程性与灵活性。然而,缺点也是很明显的,它针对某些处理的优化比较困难, 第2 章网络处理器并行体系结构 处理某些必须串行处理的任务时效率较低。并行组织的产品有a m c c 公司的n p 系列网络处理器【1 8 】,i b m 公司的p o w e r n p t 7 】网络处理器。 c o m p l e t i o nu n i t p r o c e s s o rl - - - - - -p r o c e s s o r i n s t r u c t i o nm e m o 叫 d i s p a t c h e r 图2 2 并行配置的n p 的多处理器结构 在串行组织中,利用时间重叠的并行思想,处理过程被分为几个部分,每 个部分由一个专用的微引擎来处理,所以又被称为流水线处理方式,如图2 3 。 二黪蛹巅i 1 :i p r o i c e ? s s | | : o r 1 : r l n s t m j 鲫 4 毫国。蠹, 1 p r o c e s s o r - 。 l i n s t r u c t i o n m e m o r y m e m o r y p r o c e s s o r i i n s t r u c t i o n m e m o r y 图2 3 串行配置的n p 的多处理器结构 这样,在流水线上可以有多个包同时处理。在网络处理器内可以有多条这样的 流水线,它们之间也是并行处理的。串行组织一般不采用多线程技术,每个处 理单元拥有自己的存储器,它的好处是可以针对某些处理专门对p e 进行优化, 适合任务明确的串行数据流,缺点是负载不易平衡,处理的速度取决于处理速 度最慢的一个阶段,且灵活性差。c i s c o 公司的p x f 就是这种结构的产品【l4 l 。 因为任务划分是流水线结构的瓶颈,所以必须有效解决以下问题: l 、必须把任务分布到流水线中的每一段,而有的任务可能不适合分割; 12 第2 章网络处理器并行体系结构 2 、即使程序是适合分割的,代码也不可能总是被理想地分配到每个处理 器上,这导致在某些处理器上可能会有空闲的处理器周期,从向浪费了资源; 3 、传递包的上下文,从流水线的一级到下一级,耍花费处理器周期,必须 实现上下文的快速传递,减少由此产生的延迟; 4 、灵活性是n p 的一大优点,但在这种模型下,对代码的每个微小改动, 为了保证性能,都会要求程序员对程序重新分配。 目前主流的并行处理方向是两种方案的结合。比如i n t e l 公司的i x p 2 8 0 0 e 2 0 】 和m o t o r o l a 公司的c 5d c p 2 1 l 使用了可编程的微引擎,可以根据需要以并行或 串行方式进行组织。 2 3 3 微引擎与协处理器之间的并行 微引擎和协处理器之间的并行可以有同步和异步两种方式。在同步方式下, 微引擎和协处理器是串行工作的,只有从协处理器得到执行结果之后,微引擎 才执行下一条指令,例如等待查找路由表的结果。通常微引擎上有多个线程, 当微引擎需要协处理器的执行结果,而协处理器又不能立即返回时( 这往往是 一个长延迟) ,微引擎立刻进行线程切换,切换到另一个可执行的线程。 在异步方式下,微引擎和协处理器可以同时执行对同一个包的处理。例如协 处理器在计算校验和时,微引擎可以做提取i p 地址的工作。现在的网络处理器 可以提供更多的服务,其中有些是可以并行处理的。 2 4系统设计所面临的问题 网络处理器所处理的是o s i 协议从第2 层到第7 层的任务,包括从简单的 i p 路由一直到复杂的加密和压缩程序,因此它具有独特的系统处理特性。为了 获得这一特性,t i l m a nw o l f 和j o n a t h a ns t u r n e r 在文献【2 2 】中使用了8 种不同层 次的应用程序进行了实际的运行测试,得到了以下的系统处理复杂度的数据( 见 表2 1 ) ,其中复杂度使用“r i s c 指令字节”( 处理每字节数据需要的r i s c 指 令数) 来描述。 表2 1 不同应用的处理复杂度 l 应用 复杂度j 第2 章网络处理器并行体系结构 d t r ( 查找路由表)2 1 d r r ( 包调度) 4 1 f r a g ( i p 分段) 7 7 t c p ( 流量监视) 10 j p e g ( 图像压缩) 8 1 c a s t ( 数据加密) 1 0 4 z i p ( 数据压缩) 2 2 6 r e e d ( 冗余编码) 6 0 3 同时文中还宏观地总结了系统所处理任务的3 个重要特性: ( 1 ) 短任务:大部分任务需要l 1 0 0 个r i s c 指令字节; ( 2 ) 大量的任务数目:一般每秒要处理大于l0 0 00 0 0 个分组; ( 3 ) 高异构的应用:任务彼此间的差异非常大,比如i p 路由和m p e g 编码。 这里,我们根据t i l m a nw o l f 等人的数据,分析一下常用分组处理的基本特 点。如果以路由查找( r t r ) 币f l 数据加密( c a s t ) 为f o 简单估算一下这两种任务对处 理器的要求,则假设系统吞吐量为1 2 g b s ( 其余的数据见表2 1 ) ,r t r 所需要 的运算量为1 2 8 * 2 1 = 3 1 5m i p s ,c a s t 需要的运算量为1 2 8 * 1 0 4 = 156 0 0 m i p s 。 而现在网络处理器中单个处理元的处理能力仅为15 0 0 m i p s 左右,例如i b m 的 n p 2 g 为1 5 9 6 m p i s 、i n t e l 的i x p l 2 0 0 为1 3 9 6 m i p s 。可见系统负载处理的开销 是相当庞大的,并且处理的层次越高,开销越大。 从上面的分析可以看出,由于处理负载的开销大大超过了现有网络处理器内 部单个处理元的处理能力,因此在系统的处理策略上广泛使用了并行处理机制。 具体来讲,并行处理的核心就是要充分利用处理任务问的彼此独立性,将不同 的任务同时交给不同的处理器来处理。从网络处理器所面向的处理任务来看, 不同的处理层面并行性特点也不尽相同。对于控制层而和管理层而的任务一般 是实时性较差的管理及控制操作,例如路由表的维护和端口状态轮询等,对于 数据层面,则是实时性较强的分组处理等操作,各自的系统并行性特点见表2 2 。 表2 - 2 网络处理器的系统并行性特征 性能要求 数据并行性典型应用 数据层面局同 包路由 控制层面同低a t mv c 切换 1 4 第2 章网络处理器爿:行体系结构 l 管理层面i 低l 低 s n m p 处理 因此,可以认为网络处理器系统的并行性要求集中体现在数据层面,为了迎 合这一要求,一般采用以下3 个层次的并行处理技术【2 j : ( 1 ) 分组级并行p l p ( p a c k e tl e v e lp a r a l l e l i s m ) 大部分网络应用都是基于分组级( p a c k e tl e v e l ) 的,不同的分组一般经过类似 的处理,分组间一般是独立的,这样分组可以由不同的处理器并行服务。然而 这种处理也存在一定的局限性,即当属于同一个流( f l o w ) 的分组经过不同服务员 并行处理后
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 航海船舶能源管理方案
- 货物运输合同签订中的知识产权保护与侵权责任
- 风险投资机构股权转让及项目孵化合作协议
- 商业空间租赁合同转让与经营许可三方协议
- 音乐培训机构兼职教师聘用及教学成果转化协议
- 离婚纠纷调解协议履行及子女监护权争议解决执行书
- 2025年耳鼻喉科影像学诊断试题答案及解析
- 离婚财产分割协议范本:婚前婚后财产权益保障
- 生态园区物业充电桩场地租赁合同范本
- 基于子女抚养与财产分配的离婚协议起草模板
- 2025水发集团有限公司招聘216人考试模拟试题及答案解析
- 智慧加油站物联网综合管控平台建设综合解决方案
- 2025年甘肃省公职人员考试时事政治考试试题(附含答案)
- 花岗岩铺设方案
- 2025年护理疼痛试题及答案
- 桥梁工程监理工作实施方案
- 年产5万吨氧化铁新材料(磁性材料及锂电材料)项目报告书
- 服装辅料基础知识培训
- 江苏南京2020-2023年中考满分作文53篇
- 2025-2026学年青岛版(五四制)(2024)小学科学三年级上册(全册)教学设计(附目录P230)
- 2025年电梯安全培训试题附答案
评论
0/150
提交评论