已阅读5页,还剩69页未读, 继续免费阅读
(通信与信息系统专业论文)基于网络处理器的ppu系统控制平面的设计和实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于网络处理器的 p p u 系统控制平面的设计和实现 摘要 随着网络规模和性能的迅速增长发展,在人们对语音、视频等 多媒体业务的需求不断增加的同时,新的业务大量涌现。这就要求 网络设备具有线速和智能的处理能力。通用c p u 对于网络处理任务 尤其是数据接收、处理、转发等方面的处理性能难以满足要求,这 就促使网络设备厂家开发出了基于专用集成电路( a s i c ) 的设备。 虽然提高了设备的性能,但是无法克服专用集成电路缺乏灵活性、 开发周期长的固有缺点。具有高速处理能力又有完全可编程特性的 网络处理器的出现正好适应当今的需求,成为一种新兴、有效的统 一解决方案。 基于网络处理器开发的协议处理单元系统,能够准确快速的对 网络中的数据包进行过滤,将免费包与计费包区分出来,区分处理。 该系统充分利用了网络处理器强大的数据包处理能力,保证高吞吐 率线速工作。 本文介绍作者在研究生期间参与的关于使用网络处理器实现协 议处理单元的研发工作。共分为两个部分,第一部分是介绍网络处 理器架构、功能特点和应用等理论知识;第二部分是项目开发的详 细介绍,其中重点介绍了控制平面的设计与实现。论文的具体结构 安排如下: 第一章介绍网络处理器的相关知识以及英特尔网络处理器的 软、硬件架构和软件开发环境。 第二章介绍协议处理单元系统的定位、功能、应用、总体设计、 以及数据平面设计。 第三章介绍协议处理单元系统控制平面设计,重点介绍控制平 面各模块的设计与实现。 第四章介绍了测试过程、结果分析以及经验和体会。 关键词:网络处理器协议处理单元哈希算法路由s o c k e t t h ed e s i g na n di m p l e m e n t a t i o no f p r o t o c o lp r o c e ss o ru n i tc o n t r o lp l a n e b a s e do nn e t w o r kp r o c e ss0 r a b s t r a c t w i t ht h eg r e a t l yd e v e l o p m e n to fn e t w o r k ss c a l ea n dp e r f o r m a n c e , m u l t i m e d i ab u s i n e s s ,s u c ha ss o u n da n dv i d e o ,i n c r e a s ea n dal o t so f n e wb u s i n e s sc o m eo u t t h i s r e q u i r e s n e t w o r k e q u i p m e n t s w i t h w i r e s p e e da n di n t e l l i g e n tp r o c e s s i n gc a p a b i l i t i e s g e n e r a lc p uc a n t m e e tt h er e q u i r e m e n t so fn e t w o r kp r o c e s s i n gt a s k s ,e s p e c i a l l yi nt h e p r o c e s s i n gp e r f o r m a n c eo fd a t ar e c e i v i n g ,p r o c e s s i n ga n dt r a n s m i t t i n g s on e t w o r ke q u i p m e n tm a n u f a c t u r e r sa r ed r o v et o d e v e l o pn e t w o r k e q u i p m e n t b a s e do na s i c i ti n c r e a s e st h e p e r f o r m a n c e o ft h e e q u i p m e n t ,b u tc o u l dn o to v e r c o m et h ei n h e r e n ts h o r t c o m i n g so fa s i c , s u c ha sl a c ko ff l e x i b i l i t y , l o n gd e v e l o p m e n tc y c l ea n ds oo n t h e e m e r g e n c eo ft h e n e t w o r k p r o c e s s o r sw i t hh i g h s p e e dp r o c e s s i n g c a p a b i l i t i e sa n df u l l yp r o g r a m m a b l ec h a r a c t e r i s t i c sp r e c i s e l ym e e t st h e n e e d s i t san e wa n de f f e c t i v eu n i f i e ds o l u t i o n p r o t o c o lp r o c e s s o ru n i ts y s t e m sb a s e do nt h en e t w o r kp r o c e s s o rc a n q u i c k l y a n da c c u r a t e l yf i l t e rt h ed a t ai nt h en e t w o r kp a c k e t s ,a n d d i s t i n g u i s h b e t w e e nb i l l i n g p a c k e t s a n df r e e p a c k e t s ,d e a l w i t h d i s t i n c t i o n t h i ss y s t e mt a k e sf u l la d v a n t a g eo ft h en e t w o r kp r o c e s s o r s p o w e r f u ld a t ap a c k e tp r o c e s s i n gc a p a c i t y , a n de n s u r e sh i g ht h r o u g h p u t w i r e s p e e dw o r k t h i sa r t i c l ei n t r o d u c e sw h a tt h ea u t h o rh a sd o n ea b o u tt h e d e v e l o p m e n to fp r o t o c o lp r o c e s s o ru n i ts y s t e mb a s e do nn e t w o r k p r o c e s s o rd u r i n gg r a d u a t es t u d e n tp e r i o d i tc a nb ed i v i d e di n t ot w o p a r t s t h ef i r s tp a r ti st h et h e o r e t i co fn e t w o r kp r o c e s s o ra r c h i t e c t u r e , f u n c t i o nf e a t u r e sa n d a p p l i c a t i o n t h e s e c o n d p a r t d e t a i l st h e d e v e l o p m e n to fp r o t o c o lp r o c e s s o ru n i ts y s t e m ,w h i c hf o c u s e so nt h e d e s i g na n di m p l e m e n t a t i o no fc o n t r o lp l a n e t h es t r u c t u r eo ft h ea r t i c l e i sa sb e l o w c h a p t e r1g i v e sb r i e fi n t r o d u c t i o no fn e t w o r kp r o c e s s o rr e l a t e d k n o w l e d g e ,i n t e ln e t w o r kp r o c e s s o rh a r d w a r e ,s o f t w a r ea r c h i t e c t u r ea n d s o f t w a r ed e v e l o p m e n te n v i r o n m e n t c h a p t e r2i n t r o d u c e sp r o t o c o lp r o c e s s o ru n i tp o s i t i o n i n g ,f u n c t i o n , a p p l i c a t i o n ,t h eg e n e r a ld e s i g na n dd a t ap l a n ed e s i g n c h a p t e r3d e t a i l st h ed e s i g na n di m p l e m e n t a t i o no fc o n t r o lp l a n ei n p r o t o c o lp r o c e s s o ru n i t c h a p t e r4d e s c r i b e st h et e s t ,t e s tr e s u l t sa n a l y s i sa n de x p e r i e n c e g a i n sd u r i n gt e s t k e yw o r d s :n e t w o r k p r o c e s s o r , p r o t o c o lp r o c e s s o ru n i t ,h a s h a l g o r i t h m ,r o u t e ,s o c k e t i i i a p i a s i c b s p c c i p i x a l 2 t m l p m m e m s f n p p p u r i s c r t m s b c s p r o x y s r a m t c p u d p 英文缩略语索引 a p p l i c a t i o np r o g r a m m i n gi n t e r f a c e ,应用程序接口 a p p l i c a t i o ns p e c i f i ci n t e g r a t e dc i r c u i t ,专用集成电路 b r o a ds u p p o r tp a c k e t ,板级支持包 c o r ec o m p o n e n t ,x s c a l e 核软件模块 i n t e r n e tp r o t o c o l ,网际协议 i n t e r n e te x c h a n g ea r c h i t e c t u r ,互联网交换架构 l 2t a b l em a n a g e r ,l 2 表管理其 l o n g e s tp r e f i xm a t c h ,最长前缀匹配 m i c r o e n g i n e ,微引擎 m e d i aa n ds w it c hf a b r i ci n t e r f a c e ,媒质和交换结构接口 n e t w o r kp r o c e s s o r ,网络处理器 p r o t o c o lp r o c e s su n it ,协议处理单元 r e d u c e di n s t r u c t i o ns e tc o m p u t e r ,精简指令集计算机 r o u t et a b l em a n a g e r ,路出表管理器 s i n g l eb o a r dc o m p u t e r ,单板计算机 s e r v i c ep r o x y ,服务代理 s t a t i cr a n d o ma c c e s sm e m o r y ,静态随机存储器 t r a n s f e rc o n t r o lp r o t o c o l ,传输控制协议 u s e rd a t a g r a mp r o t o c o l ,用户数据报协议 一- 6 8 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中 不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或 其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所 做的任何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:垒垒日期:翌! 墨:三:堑 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即: 研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权 保留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅 和借阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印 或其它复制手段保存、汇编学位论文。 本学位论文不属于保密范围,适用本授权书。 本人签名: 导师签名:日期:塑! 矿:;:诊 北京邮电人学硕上学位论文 i l - 一 月i j舌 在过去的几十年中,网络设备的研制开发和因特网的发展相互促进。早期的 网络设备,例如网桥和路由器,主要由通用c p u 和专用标准设备组成,功能依赖 于软件设计,因此容易扩展,便于适应网络中出现的新协议和新业务。但是这种 设计的缺点是处理能力低,性能难以满足需求,无法适应网络传输技术的发展和 无法满足附加性能的需求。这种情况促使网络设备厂家开发出了基于专用集成电 路( a s i c ) 的简单且具有固定功能的设备。这种设计方案能有效地提高网络设 备的处理性能和速度,却降低了灵活性。后来又在专用集成电路基础上出现了交 换套片构建方案,这种方案优化了硬件的连接,提高了指令执行的效率,但是仍 没有克服专用集成电路缺乏灵活性、开发周期长的固有缺点。具有高速处理能力 又有完全可编程特性的网络处理器的出现正好适应当今的需求,成为一种新兴、 有效的统一解决方案。网络处理器是一种基于可编程专用集成电路结构的片上系 统( s o c ) 芯片,不仅可以为系统提供类似于专用集成电路的处理速度,也可以 提供类似于通用c p u 的灵活性,专门用于分析、处理和转发网络数据包,特别适 合于高速网络的协议处理。网络处理器应运而生成为了网络设备开发的新的亮 点。 宽带通信网络实验室从网络处理器技术诞生就充分认识到其在下一代网络 中的重要位置,一直在进行着与网络处理器相关的课题研究。并且基于网络处理 器进行了多个项目的研发,取得了很大的成果并积累了许多经验。我作为实验室 的一员有幸参加了基于网络处理器的p p u ( 协议处理单元) 系统项目,并且负责 控制平面的设计与实现。在项目开发期间,我不仅深入了解了网络处理器的硬件、 软件结构,以及基于网络处理器的设备的开发过程,大大提高了个人的技术能力, 而日对于团队合作等方面有了深刻的体会。这些宝贵的收获必将使我终身受益! 北京邮i 乜人学硕十学位论文 第一章网络处理器技术概述 1 1 网络处理器的定义 网络处理器( n e t w o r kp r o c e s s o r ,n p ) 是新一代用来执行数据处理和转发的 高速可编程处理器。与传统的处理器不同,它的设计采用了全新的理念,既有 专用集成电路( a p p l i c a t i o ns p e c i f i ci n t e g r a t e dc i r c u i t ,a s i c ) 的高速处理能力, 又有完全可编程特性,是专门面向网络应用领域,为进行数据包的处理和转发而 优化设计,具有独特结构特征和专门电路设计的可编程器件,特别适于分组处理。 网络处理器将硬件的性能和软件的灵活性有机的结合在一起,可以广泛的应用于 通信的各个领域,比如包处理、协议分析、路由查找、声音数据的汇聚、防火 墙、保证服务质量等。 1 2 网络处理器的组成 网络处理器的构成可以从硬件和软件两个方面来描述,正是这两个方面的 特殊性,尤其是硬件结构方面采取了与传统的处理器不同的策略,才使网络处 理器具有很多优点。图1 1 简要描述了网络处理器的硬件结构。 图1 1 网络处理器的硬件结构 网络处理器主要包括两个功能模块,即网络处理单元和智能协处理单元。 其巾智能协处理单元。般需要嵌入式操作系统的支持,用于对网络处理器和其 他硬件单元进行控制,通过在操作系统之上的路由协议软件对路由信息进行接 收、处理和转发,生成并维护路由表等。网络处理单元是整个网络处理器的核 心部件,负责网络数据的高速处理。网络处理单元采用了硬件多线程结构、分 布式处理机制、优化的网络处理指令集、集成了多种高速缓存单元,这种硬件 结构大大提高了处理速度。多个处理器并行的结构可以提高网络处理器的处理 能力,处理器内部的硬件多线程结构可以降低数据处理时访问存储器所需的平 北京邮电人学硕一i :学位论文 均时间,提高芯片的效率。从灵活性的角度看,智能协处理单元可编程,网络 处理单元一般由多个精简指令集控制器( r i s c ) 芯片组成,而精简指令集控制 器芯片也是可编程的,这些都充分体现了网络处理器的灵活性。网络接口单元 用于连接网络接口设备,是网络处理器收发网络数据的窗口。存储单元接口用 于连接外部存储器,为网络处理器提供高带宽、低时延的网络数据缓冲存储。 从上面的介绍可以看出,网络处理器的高速处理能力主要通过一个芯片内 集成多个微处理器以及一个微处理器包含多个硬件线程实现的,同时也采用了 其它一些硬件加速技术。网络处理器的灵活性则主要是通过智能协处理单元与 网络处理单元的完全可编程能力实现的。 网络处理器的软件主要包括板级支持包( b s p ) 、嵌入式操作系统、路由协 议软件包和微代码四部分,其中前三部分是运行在智能协处理单元上。板级支 持包记录智能协处理单元需要管理的硬件信息以及它们的主要配置信息;嵌入 式操作系统是路由协议或者其他应用程序运行的基础;智能协处理单元通过运 行路由协议软件包可以生成维护路由表;微代码运行在网络处理单元上,用于 对数据进行处理和转发。 1 3 网络处理器的优势 网络处理器的最大特点是内含有多个数据处理微引擎( m i c r o e n g i n e ) ,这些 微引擎具备完全的可编程能力,可以并发进行数据处理工作,在处理二至四层 的分组数据上与通用处理器具相比有非常明显的优势。简单高效的编程开发特 征为网络处理器走向市场奠定了基础,强大的处理能力可以实现高带宽的线速 处理,开放的高度集成的体系结构使得基于网络处理器的网络设备易于扩展。 网络处理器的技术优势主要体现在以下几点: 1 可编程性:网络处理器的本质在于其可编程性,从而改变了专用集成电 路灵活性差的缺点,这是通过提供界面友好而功能强大的编程、调试和性能评 价等软件环境来实现的。 2 并行处理:网络处理器可实现不同级别的并行处理,通过流水线实现指 令级的并行,通过硬件线程实现线程级的并行,通过片内多处理器结构实现处 理器级的并行。 3 高速数据处理:网络处理器需要具有线速处理的能力,以避免节点设备 成为瓶颈,其硬件结构为此提供了保证。 4 深层数据处理:根据不同的服务要求,可对分组进行不同深度的处理。 例如路由查找只需处理第三层( 互联网地址头部) ,分类需要处理到第四层 ( t c p u d p 协议) ,而安全则需要处理到应用层( 分组携带的有效载荷) 。 北京邮电人学硕士学位论义 5 模块化设计:网络处理器体系结构的模块化也包含不同的层次,硬件层 面和软件层面的模块化。通过模块化设计,力图在保持高性能的基础上获得很 好的可扩展性和灵活性,并能使设备厂商容易研发不同性能和不同特性的设备。 6 可扩展性:网络处理器的可扩展性同样包含硬件可扩展性和服务可扩展 性。前者指网络处理器除了可以用来研sj j d , 型设备外,还可以通过交换机构的 连接研制大型设备,后者是指可以在对原有软件结构做很小改动的基础上加入 新的服务和功能。 1 4 英特尔网络处理器概述 英特尔( i n t e l ) 公司在网络处理器的开发方面一直走在前列,该公司开发 的网络处理器产品有i x p l 2 x x x 系列第一代网络处理器,以及以i x p 2 4 0 0 、 i x p 2 8 0 0 、i x p 2 8 5 0 为代表的第二代网络处理器。 i x p l 2 0 0 是英特尔公司推出的第一代网络处理器的典型产品,主要面向 o c 3 到o c 1 2 数据速率的网络应用。随着网络技术的发展和应用需求的增长, 以i x p l 2 0 0 为代表的第一代网络处理器在功能上已经不能很好的满足同益复杂 的网络处理器功能要求( 如i p s e c 、v p n 、q o s 等) ;在性能上,i x p l 2 0 0 只能 满足o c 1 2 网络线速处理要求,对于更高的速度显得力不从心。为了更好的适 应当前和今后网络宽带化和业务综合化的趋势,英特尔公司推出了i x p 2 x x x 第二代网络处理器。相对于第一代网络处理器,i x p 2 x x x 能处理o c 一1 2 到 o c 1 9 2 速率的网络数据,很好的适应了网络宽带化的趋势。另外,i x p 2 x x x 充分考虑了网络数据的复杂多样化,采取相应的硬件结构和软件算法有效的进 行网络数据处理,很好的适应了网络业务综合化的趋势。 为了在第二代网络处理器上实现灵活性、高性能、可扩展性和可移植性, 英特尔公司在i x p 2 x x x 网络处理器产品上使用了英特尔网络体系架构( i n t e l i n t e m e te x c h a n g ea r c h i t e c t u r e ,i n t e li x a ) ,它包括两个方面:1 硬件组成;2 i x a 软件可移植性框架( i x as o f t w a r ep o r t a b i l i t yf r a m e w o r k ) 。下面就以英特尔第二 代网络处理器i x p 2 4 0 0 为例,对其架构和开发环境做一个总体介绍。 1 4 1 硬件组成 i x p 2 4 0 0 网络处理器是面向中档应用,可用于实现o c 4 8 的网络路由交换 设备。 i x p 2 4 0 0 的硬件结构如图1 2 所示。 北京邮i u 大学倾:i :学位论文 图1 - 2i n t e li x p 2 4 0 0 网络处理器硬件结构 由图1 2 可见,i x p 2 4 0 0 由八个精简指令集控制器结构的微引擎( m e ) 、 一个主频为6 0 0 m h z 的x s c a l e 核、媒体与交换集成接口( m e d i aa n ds w i t c hf a b r i c i n t e r f a c e ,m s f ) 、两个独立的3 2 位静态随机存取存储器控制器( s r a m c o n t r o l l e r ) 、一个6 4 位的动态随机存取存储器控制器( d r a mc o n t r o l l e r ) 、s h a c 、 外围元件接口( p c i ) 、系统底盘( c h a s s i s ) 等部分组成。 微引擎:i x p 2 4 0 0 的核心部件,负责网络处理器数据平面的处理,可 以以线速进行数据包处理,因此微引擎又称为数据包的快通道。在 i x p 2 4 0 0 中有8 个微引擎,分为两组:第0 组微引擎( m ec l u s t e r 0 ) 和 第1 组微引擎( m ec l u s t e r l ) 。每个微引擎内部有8 个硬件线程,采用 多线程技术,可以将对存储器的访问时延有效隐藏在指令执行周期的后 面。微引擎能够访问i x p 2 4 0 0 的所有共享资源。 x s c a l e 核:3 2 b i t 的嵌入式精简指令集处理器,时钟频率为6 0 0 m h z ,负 责网络处理器中的控制平面的处理任务,执行系统芯片初始化配置、系 统控制、管理、运行路由协议栈、路由更新等操作。另外还负责对异常 数据包进行处理,网络中异常包的数量远远小于正常包,对其的处理速 度要求不是很高,所以称x s c a l e 核又称为数据包的慢通道。 媒质和交换结构接口:i x p 2 4 0 0 与外部物理层设备、交换结构的接口单 元,进行数据的收发。可以通过接收缓冲对接收数据进行缓冲,利用 发送缓冲对发送数掘进行缓冲,这样可以平滑微引擎的数据处理速度与 网络数据速度之f a j 的差异。网络处理器还可以将接收缓冲和发送缓冲划 分成不同尺寸的单元,与不同协议格式的数据包的尺寸进行匹配,这样 可以简化操作,更快速有效的进行数据包的接收和发送。 s r a m 控制器:用于接口s r a m 存储设备,控制、管理i x p 2 4 0 0 中其 他功能单元对s r a m 存储设备的访问、操作。s r a m 一般用于存储表、 缓冲区描述符、缓冲区连表等数据结构。i x p 2 4 0 0 有两个s r a m 控制 北京邮电大学硕上学位论文 器:s r a m 控制器0 和s r a m 控制器1 ,二者相互独立,可并行工作。 s r a m 控制器有着复杂的硬件功能结构,除了支持一般的数据读写之 外,还支持原子操作、r w m 操作,另外s r a m 控制器还支持对一些数 据结构的自动操作。 d r a m 控制器:用于接口d r a m 存储设备,控制、管理i x p 2 4 0 0 中其 他功能单元对d r a m 存储设备的访问、操作。d r a m 一般用于存储数 据包、路由表等大型的数据结构。 s h a c 单元:包括草稿存储器( s c r a t c hm e m o r y ) 、哈希单元( h a s hu n i t ) 和控制状态寄存器访问代理( c a p ) 3 部分。其中草稿存储器用于微引 擎之间的通信以及重要数据的内部缓存;哈希单元支持4 8 b i t 、6 4 b i t 、 1 2 8 b i t 的哈希运算;控制状态寄存器访问代理中包含了i x p 2 4 0 0 芯片的 控制、状态寄存器,用于芯片工作模式的设定和运行状态的采集。 外围元件接口:用来接口控制平面处理器( c o n t r o lp l a n ep r o c e s s o r ) 、 系统管理处理器( m a n a g e m e n tp r o c e s s o r ) 、其他i x p 设备以及p c i 以太 网接口卡( p c ie t h e r n e tn i c s ) 等符合p c i 规范的设备。 系统底盘:i x p 2 4 0 0 中各功能单元的内部高速通道,由多组单向高速数 据总线、命令总线以及相应的总线仲裁单元组成。系统底盘的分立式多 总线结构和高带宽的数据总线可以充分发挥i x p 2 4 0 0 的并行处理优势, 取得较高的处理性能。 1 4 2 软件架构 i x a 可移植框架由编程模型、应用程序接口( a p i ) 、构架库( l i b ) 3 部分 组成,如图1 3 所示,在i x p 2 4 0 0 中,将数据包的处理分为两个平面:数据平 面和控制平面。将数据平面的处理划分为若干个功能逻辑微块( m i c o r b l o c k ) , 各个微块问相互独立,可以通过分配环路( d i s p a t c hl o o p ) 将多个微块连接起 来,运行在一个微引擎上,实现一个完整数包的处理。与数据平面相对应的控 制平面的处理由x s c a l e 实现,可以将控制平面的处理划分为多个功能逻辑核心 组件( c o r ec o m p o n e n t ) ,核心组件负责对系统进行控制和管理。控制平面通过 控制甲面开发工具( c o n t r o lp l a n ep d k ) 与高层控制甲面软件进行接门,通过 资源管理器接口( r e s o u r c em a n a g e r a p i ) 与数据平面的微块之间通信。 北京邮f u 人学颁f :学位论文 外接的 处理器 控制平面协议栈( c o n t r o lp l a n ep r o t o c o ls t a c k s ) 控制平面开发工具( c o n t r o lp l a n ep d k ) i n t e l x s c a l ec o r e 核心组件( c o r ec o m p o n e n t s ) , 密- 吐i i 而、 0 s s l 】r i ,l n j , 核心组件基础框架库( c o r ec o m p o n e n ti n f r a s t r u c t u r el i b r a r y ) 资源管理库( r e s o u r c em a n a g e rl i b r a r y ) i f i c r o e n g i n e 微块基础框架库( m i c r o b l o c ki n f r a s t u c t u r el i b ) ( 数据面) 数据平面库( d a t ap l a n el i b r a r i e s ) 图1 - 3 可移植框架结构图 下面简要介绍i x a 软件可移植性框架的各个组成部分: 1 微块:是数据平面上的功能模块,可以完成较为完整独立的一个数据包 处理功能,微块可用作数据包处理模块,执行高层协议处理功能,为网络数据 提供高层处理,也可用作驱动模块,执行与底层硬件密切相关的处理功能。 2 分配环路:用来将多个微块连接起来,形成一个微块组,运行在一个微 引擎上,通常不将用作驱动模块的微块放在微块组中,而是将其单独运行在一 个微引擎上,这样可以降低微块组与底层硬件的关联性。 3 微块基础构架库:提供了相应库函数,为分配环路提供软件机制,将某 些需要做特殊处理的数据包提交给核心组件处理。 4 数据平面库:包含常用的底层c 语言函数和微代码宏,其中某些函数 和宏与底层硬件结构密切相关,直接对硬件进行操作。利用这些函数和宏,可 以实现与底层硬件的松耦合,增强软件的可移植性。 5 英特尔x s c a l e 核心组件:负责系统配置、管理、异常数据包的处理等 任务,对异常数据包的处理,核心组件和数据平面的微块对应,一个核心组件 管理一个或者多个微块。 6 资源管理:是x s c a l e 核上的一个软件模块,提供以f 功能的应用程序 接口: 系统硬件的初始化、配置、系统资源管理; 微块之间的通信,以及微块与核心组件之问的通信。 资源管理简化了系统硬件的初始化、配置管理、系统资源共享等操作,软 件的开发过程可以不必关心微块与核心组件的通信细节。 北京邮电人学硕十学位论文 7 操作系统服务库( o s s l ) :为运行在x s c a l e 核上的软件提供操作系统的 抽象层,通过使用操作系统的抽象层,资源管理、c c i 、以及其他运行在x s c a l e 核上的软件可以实现与操作系统的松耦合,提高软件的可移植性。 8 控制平面开发工具:为数据平面与控制平面之问提供通信接口,使二者 之间的通信变得更加方便简单。 可以将i x p 2 4 0 0 体系结构的主要特点归纳为: 并行处理:八个微引擎和一个x s c a l e 构成i x p 2 4 0 0 的计算单元,共享 相同的资源,包括:s d r a m 、s r a m 、p c i 等。微引擎和x s c a l e 均为 精简指令集处理器,并行工作。x s c a l e 负责协调控制平面任务和微引擎 管理。微引擎负责数据平面的高速数据分组处理,通过对八个微引擎分 配不同功能的微码程序,可以实现网络负载的动态静态调配。微码程序 的可重用性为系统软件升级提供了极大方便。 分布式数据存储结构:每个微引擎有自己独立的寄存器,其中有5 1 2 个 传输寄存器。微引擎将数据载入自己的传输寄存器,对传输寄存器集进 行操作,然后通过传输寄存器集写到目的地。数据载入传输寄存器集后, 微引擎可在单指令周期内完成访问。 硬件多线程:每个微引擎有八个硬件线程,每个线程可以执行相同或不 同的微码程序。采用内部线程通信机制实现线程同步,提高系统效率。 微码指令采用五级流水线机制,执行周期为一个时钟周期。 主动内存管理:s d r a m 和s r a m 支持多个读写队列进行优先级排队以 优化带宽。允许x s c a l e 和八个微引擎6 4 个线程同时提交对内存单元的 读写请求。内存单元根据特定的优化指令对读写请求进行硬件优先级排 队,用户可以自定义内存管理优化策略。 多层并发性:通过多个独立数据总线和控制总线,可以实现数据并发移 动:s d r a m 单元和微引擎之间双向同时读写;s r a m 单元和微引擎之 间双向同时读写;s d r a m 单元和外围元件接口单元之问双向同时读写。 块数据移动:每个微引擎分配有很大的寄存器集,单个指令就可以实现 功能单元之问6 4 个字节的数据块移动。块数据移动在充分利用微引擎 计算资源的同时还可以减少微码程序规模。 可扩展性:多个i x p 2 4 0 0 网络处理器可以通过c b u s 接口互连,从而有 效地增加系统处理能力和数据带宽;a t m 、e l t 1 、以太网媒体接入控 制层( e t h e r n e tm a c ) 等数据接口可以通过媒质和交换结构接口接入 i x p 2 4 0 0 ;微引擎的微码程序存储空问具有可扩展性。 北京邮i u 人学倾i j 学位论文 1 4 3 软件开发 i x p 2 4 0 0 网络处理器的软件结构由三个平面组成,分别为:数据平面、控 制平面和管理平面,如图1 - 4 所示。由上面的介绍可知数据平面和控制平面主 要用于数据包的处理,同时控制平面还负责协议处理以及各种表项的更新。管 理平面的功能是完成系统管理、配置、计费等功能。 图1 - 4i x p 2 4 0 0 软件分平面结构 在此软件结构上运行的主要有两种代码,微引擎代码( m ec o d e ) 和核代 码( c o r ec o d e ) 。微引擎代码主要进行数据平面的快通道数据处理,实现高速数 据包转发,通过模块化的微块来实现。语言可以是微引擎汇编语言和微引擎c 语言。微引擎的编程模型有顺序线程模型和无序线程模型两种,顺序线程模型 适合于执行相同的数据包处理流程,要求数据包顺序发送,并要求高性能。主 要的应用实例有数据包的收发模块,队列管理模块和调度模块。无序线程模型 则包含线程池( p o o lo f t h r e a d s ,p o t ) ,每个线程处理单个数据包,这种模型适 合于分组处理复杂程度不同的线程,该线程独立于其他线程的执行时间。主要 应用实例是分组处理模块。核代码主要完成与控制处理器相连,异常数据包处 理慢通道以及微引擎的管理与配置。一般可以用标准c 语言来实现,通过 核心模块来实现。 i x as d k 3 x 是可移植的i x p 2 4 0 0 软件设计提供的一个集成开发坏境。s d k 3 0 软件开发包包括微引擎开发环境、x s c a l e 核开发环境、b u i l d i n gb l o c k 和应 用实例等部分。x s c a l e 核部分可以运行两种操作系统:v x w o r k s 和l i n u x ,相应 的板级支持包已有现成的j :d l ! l 。在b u i l d i n gb l o c k 部分提供了高度模块化的模 块( 微块和核心组件) ,分别为数据平面和控制平面提供了可重用的软件模块。 应用实例中给出了一些参考设计( 4 g ei p v 4 、o c 一4 8p o s 、i p v 4 i p v 6 a t m 、 m p l s ) 供开发者参考。 该软件体系结构主要分为开发工具和应用服务程序两大部分,与三个平面 的功能相对应,微引擎丌发环境应用于数据平面代码开发,x s c a l e 核开发环境 应用于控制平面和管理平面核代码开发。 北京邮电大学硕士学位论文 第二章p p u 系统设计 2 1p p u 系统概述 2 1 1p p u 系统 基于网络处理器的p p u ( p r o t o c o lp r o c e s su n i t ,协议处理单元) 系统是服务 代理( s e r v i c ep r o x y ,s p r o x y ) 产品的一个子系统,与同在一个a t c a 机框中的 交换机、单板计算机( s i n g l eb o a r dc o m p u t e r ,s b c ) 配合构成大容量的服务代 理系统,见图2 1 。服务代理系统位于服务提供商( s e r v i c ep r o v i d e r ,s p ) 与用 户之间,通过网络路由保证用户对服务提供商的所有访问都会经过服务代理系 统,以实现对用户业务的鉴权,认证、计费等管理工作。p p u 系统为其前端设备。 ms p c 图2 - 1 服务代理产品在网络中的定位 2 1 2p p u 系统的功能和应用 基于网络处理器的p p u 系统充分利用网络处理器强大的数据包处理能力为 用户与服务提供商之间的所有的网络数据流实现过滤工作,将免费包与计费包区 北京邮i 【1 人学硕1 :学位论文 分出来,免费包直接转发出去,而计费包转发给s b c 执行进一步的处理,同时为 s b c 实现负荷分担工作。p p u 系统是根据数据包与服务提供商已配置好的规则之 间进行匹配,根据匹配的结果决定数据包的下一步流向。如果规则匹配,则转发 给s b c 进一步处理,e h s b c 完成计费、认证、鉴权等操作,再发给p p u ,由p p u 转发出去;如果规则不匹配,则直接转发出去。 p p u 系统主要功能概括如下: 实现网际协议四层协议的解析。 对于每个到达p p u 的i p 数据包,p p u 者i i 需要提取协议类型( p r o t o c 0 1 ) 、互 联网地址( i p ) 和端口号( p o r t ) 字段与系统内部配置的规则进行匹配, 如果规则匹配成功,则转发给s b c 进行进一步的鉴权、认证、计费处理, 如果不匹配,则直接转发出去。协议解析部分可以同时支持i p v 4 和i p v 6 两个承载协议。 对进入系统的网络数据流,根据配置的四层协议规则实现对网络数据流 的分类转发。 对于匹配成功的计费连接,p p u 需要一直跟踪连接的状态,并将此连接 的所有后续数据包发给同一个s b c 进行处理,直至i j t c p 连接关闭;或者 在s b c 要求p p u 关闭连接时,释放此连接。对于需要进一步处理的计费 数据流,转发给s b c ,l h s b c 完成计费、认证、鉴权等操作。并实现s b c 之问的负荷分担工作。 对于到达的计费请求,按照一定的负荷分担算法确定分发给哪个s b c 处 理。 对于一个计费连接的所有后续数据包,都必须转发给同一个s b c 处理, 保证s b c 业务逻辑正确。能定期收集s b c 上的负荷情况,反馈到负荷调 度算法中,提供给负荷调度算法调整调度策略。 由上可以看出作为服务代理系统一部分的p p u 系统与s b c 等其它设备一起, 实现用户对于服务提供商业务高效的访问与计费控制。 图2 - 2p p u 系统在s p r o x y 系统中的位置 北京邮电人学硕一卜学位论义 2 2 p p u 系统整体设计框架 2 2 1p p u 系统软件体系架构 由上面的介绍可知p p u 系统的主要功能是实现网际协议( i n t e m e tp r o t o c o l , i p ) 四层协议的解析、规则匹配、连接管理、流量统计、同志管理、路由管理和 负载分配等,根据这些功能需求设计的p p u 系统软件体系架构如图2 3 所示。 图2 3p p u 系统软件体系架构 根据基于网络处理器的软件开发的特点,从硬件平台上可分为微引擎组开发 和x s c a l e 核开发两个部分;从任务类型和复杂度上分为两个层面:数据平面和控 制平面,分别与微引擎组和x s c a l e 核对应,系统功能的实现需要数据平面、控制 平面配合实现。两个平面之问的通信接口通过中断与共享内存方式实现。 2 2 2p p u 系统功能模块设计 为了以降低系统的复杂度和耦合性,提高可靠性和扩展性,将p p u 系统划分 为两个平面、多个功能模块进行独立设计和开发。 1 2 北京邮i 【1 人学颀。l :学位论文 数据平面( m e s )
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 东方仓储设施租赁合同协议合同二篇
- 互联网内容合作合同协议
- 公司采购招标规章制度
- 常规屏风采购制度
- 应急救援物资采购制度
- 江西政府采购制度规定
- 医院采购人员工作制度
- 建筑业采购制度范本
- 2026年春七年级下册道德与法治期中测试题(含答案)
- 2025 学唱歌作文课件
- 见证取样送检计划方案
- (新版)多旋翼无人机超视距驾驶员执照参考试题(附答案)
- 2025年包钢(集团)公司招聘笔试参考题库含答案解析
- 【公开课】多姿与多彩(生活色彩)课件高中美术人教版+(2019)+选择性必修1+绘画
- 房产销售人员劳动合同范本专业版
- 《植物生产与环境》考试复习题及答案
- 入股协议合同完整版
- 第2课《让美德照亮幸福人生》第1框《做讲社会公德的好公民》-【中职专用】《职业道德与法治》同步课堂课件
- 2024年南昌市交通投资集团有限公司招聘笔试参考题库附带答案详解
- 2024杭州钱塘新区建设投资集团有限公司招聘笔试参考题库附带答案详解
- 2024新人教版初中英语单词表汇总(七-九年级)中考复习必背
评论
0/150
提交评论