(通信与信息系统专业论文)基于网络处理器的ipv6路由器设计与实现.pdf_第1页
(通信与信息系统专业论文)基于网络处理器的ipv6路由器设计与实现.pdf_第2页
(通信与信息系统专业论文)基于网络处理器的ipv6路由器设计与实现.pdf_第3页
(通信与信息系统专业论文)基于网络处理器的ipv6路由器设计与实现.pdf_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

基于网络处理器的孵v 6 路由器设计与实现 摘要 随着i n t e m e t 的发展,网络的规模和性能迅速增长,新的应用不断 涌现,宽带化和综合化的趋势不可阻挡。为满足日益复杂的网络处理 需求,解决网络高速发展过程中产生的问题,i p v 6 、网络处理器、q o s 、 b w a 等技术被相继提出并在实践中得到不断发展和完善。 本文以c n g i 项目“有线无线综合宽带接入控制器”为依托,对基 于网络处理器的i p v 6 路由器设计技术进行了探索。文中首先系统地研 究了网络处理器的基本原理与技术并对i x p 2 4 0 0 网络处理器的硬件结 构、系统架构、编程模型等做了较为深入的剖析;在数据层面完成了 i p v 6 路由器系统软件部分特别是路由转发模块的设计并在单网络处 理器平台上得到实现。而后分析t q o s 的基本结构体系,对其主要的 实现技术作了必要的阐述和说明:参照d i f f s e r v 模型并结合i x p 2 4 0 0 的结构特点,在双网络处理器平台上设计并实现了一套较为完整q o s 解决方案。性能分析、软件模拟及实际测试均表明,本文所设计的路 由器能够稳定高效地对i p v 6 报文进行线速路由转发,所实现的q o s 功 能基本达到实际应用要求。 关键字:i p v 6 ,网络处理器,i x p 2 4 0 0 ,q o s ,路由器,微引擎 兰州大学硕士学位论文 基于网络处理器的i p v 6 路由器设计与实现 a b s t r a c t t h ei n t e m e td e v e l o p e df o rm o r et h a n2 0y e a r s t h es c a l ea n dt h e a b i l i t yh a sb e e nk e e p i n go ng r o w i n gr a p i d l y t h en e wa p p l i c a t i o n e m e r g e se v e r y d a ya n dt h et r e n do fb r o a d b a n da n di n t e g r a t i o ns e e m s n o n - i n t e r r u p t i b l e i n o r d e rt o c o p ew i t ht h es p e e do ft h ei n t e m e t d e v e l o p i n ga n ds a t i s f yt h er e q u i r e m e n to fn e t w o r kp r o c e s s i n g ,n e w t e c h n o l o g i e si n c l u d i n gf r o mi p v 6 ,q o st ob w ah a v eb e e nd e s i g n e d , r a t i f i e da n ds t a n d a r d i z e d t h i sa r t i c l eb a s e do nt h e i n t e g r a t e db r o a d b a n da c c e s sc o n t r o l l e r p r o j e c t ,w h i c hi sa s u b s e c t i o nt oc n g i ,e x p l i c i t l yd i s c u s s e dt h ed e s i g no f i p v 6r o u t e rb a s e do nn e t w o r kp r o c e s s o r f i r s t l yt h ea r t i c l ed e s c r i b e dt h e p r i n c i p l eo fn e t w o r kp r o c e s s o ra l s ot h eh a r d w a r es p e c i f i c ,t h es y s t e m s t r u c t u r e ,a n dp r o g r a m m i n gm o d u l eo fi n t e li x p 2 4 0 0 t h ei p v 6r o u t e r s y s t e ms o f t w a r es p e c i a l l yt h er o u t e rf o r w a r d e rm o d u l ew a sr e a l i z e di n d a t ap a t hw i t h i ns i n g l en pp l a t f o r m ;s e c o n d l yt h ea r t i c l e a n a l y z e dt h e b a s i cs t r u c t u r eo fq o sa n dd e s c r i b e dt h et e c h n o l o g i e so f h o wt or e a l i z ei t b a s e do nd i f f s e r vm o d u l ea n di x p 2 4 0 0n pan e wr e s o l u t i o ni nd o u b l e n pp l a t f o r mw a sd e s i g n e d t h e p e r f o r m a n c ea n a l y z i n g ,s o f t w a r e s i m u l a t i o na n db l a c kb o x t e s t i n gs h o wt h a tt h er o u t e rc o u l dp r o c e s si p v 6 p a c k e t si nl i n e a rs p e e de f f i c i e n t l ya n ds t a b l ya n dt h eq o sm o d u l ec o u l d m e e tt h eb a s i cr e q u i r e m e n t k e y w o r d :i p v 6 ,n e t w o r kp r o c e s s o r ,q o s ,r o u t e r ,m i c r o e n g i n e 原创性声明 本人郑重声明:本人所呈交的学位论文,是在导师的指导下 独立进行研究所取得的成果。学位论文中凡引用他人已经发表或 未发表的成果、数据、观点等,均已明确注明出处。除文中已经 注明引用的内容外,不包含任何其他个人或集体已经发表或撰写 过的科研成果。对本文的研究成果做出重要贡献的个人和集体, 均已在文中以明确方式标明。 本声明的法律责任由本人承担。 论文作者签名: 扭l 日期:毕坐 关于学位论文使用授权的声明 本人在导j j i :f t r 导下所完成的论文及相关的职务作品,知识产 权归属兰州大学。本人完全了解兰州大学有关保存、使用学位论 文的规定,同意学校保存或向国家有关部门或机构送交论文的纸 质版和电子版,允许论文被查阅和借阅;本人授权兰州大学可以 将本学位论文的全部或部分内容编入有关数据库进行检索,可以 采用任何复制手段保存和汇编本学位论文。本人离校后发表、使 用学位论文或与该论文直接相关的学术论文或成果时,第一署名 单位仍然为兰州大学。 保密论文在解密后应遵守此规定。 论文作者签名导师签名;孟堑臣盘日期之坐e 。 兰州大学硕士学位论文 基于网络处理器的i p v 6 路由器设计与实现 前言 网络技术的发展日新月异,接入i n t e m e t 的用户数量迅速增加,网络地址不 足的危机日益严重,i p v 4 t 1 】地址将被耗尽。另外,随着网络规模的扩大,路由表 规模的急剧膨胀,可能在i p v 4 地址枯竭之前就会导致网络瘫痪。为了解决m v 4 设计的缺陷,i e t f 提出了一种新的i n t e r a c t 协议i p v 6 【2 】,它有效的解决了诸如地 址枯竭、路由表膨胀、安全性等问题,i p v 6 取代i p v 4 将是网络发展的必然趋势。 另外,随着新的应用( 如v o i p 、视频等) 不断出现,用户要在网络上尽情驰骋, 必须要有足够的资源和带宽,毫无疑问网络将向宽带化方向发展,这就对宽带接 入等技术提出了更高的要求。 为了提高接入网的接入带宽和改善接入网的传输性能,世界上各电信设备制 造厂商已经研究并开发了利用各种传输媒质和先进数字信号处理技术的多种高 速接入技术。总的来看,这些宽带接入技术可以分为有线接入和无线接入。 在宽带有线接入方面,随着a d s l 、c a b l em o d e m 、光纤接入等技术成熟和 大量运用,有线方式目前占据了宽带接入的大多数市场份额。在宽带无线接入方 面,i e e e8 0 2 1 l 技术已经成熟,产品已经实现量产,i e e e8 0 2 1 6 标准也已被正 式批准,w i m a x 市场也正迅速的开启。由于宽带无线接入( b w a ) 具有建网开 通快、维护简单、用户较密时成本低等特点,其已经成为一种新的不可忽视的宽 带接入发展趋势。b w a 技术的推广和大量应用将会带来大量移动终端,就需要 大量i p 地址,这将加快口v 4 技术向i p v 6 的过渡,推动i p v 6 技术的发展。而利 用现有的固网资源,实现有线无线一体化的网络接入也是固网运营商进入移动市 场的最优技术路线。 由中科院声学所作为主承担单位研发的“有线无线综合宽带接入控制器 ( i b a c ) ”是各种有线、无线接入网络接入到核心网的关键设备,支持现有的主 流接入方式和新兴的宽带无线接入,能为多种接入网络的用户提供统一的接入认 证、授权和计费服务( a a a ) ,避免了为采用某种链路层技术的接入网络单独建 立一套a a a 系统,顺应技术的发展,降低运营商的投资和运营成本,i b a c 应 用的网络环境如下图o 1 所示。 i b a c 实际是一款基于i p v 6 的嵌入式实时l i n u x 的路由器。作为路由器,其 前提是实现数据包的路由转发功能,在此基础之上我们才能根据需要添加各种功 能,如v l a n 、a c l 、q o s 等。本人在此项目中主要参与底层软件平台建设,对 网络处理器技术及其软件编程模型等进行了必要的学习和研究,在数据层面上独 立完成了i p v 6 路由转发模块的设计,在此基础之上,对q o s 技术进行了较为系 统的研究,并在网络处理器平台上实现了报文的分类与作色、流量控制、拥塞避 免等q o s 的基本功能。 兰州夫学硕上学位论文 基f 网络处理器的1 p v 6 路由器设计与实现 图0 1i b a c 在网络中的位置 本论文对i p v 6 、网络处理器、q o s 等技术进行了较为深入系统的研究,并 把在项目中所做的工作进行了总结和提炼,详细地介绍了基于l p v 6 的简单网络 路由器设计与实现、q o s 技术在路由器上的设计与实现等内容,并给出了实验与 测试结果。本文主要论述的章节如下: ( 1 ) 网络处理器原理与技术。简要介绍了网络处理器的基本原理与技术,分析 了它的软件开发模式,并对所采用的i x p 2 4 0 0 网络处理器进行了较为详 细的介绍; ( 2 ) q o s 基本原理。介绍了q o s 的定义并对q o s 的服务模型及主要的实现技 术进行了必要的阐述; ( 3 ) 基于i x p 2 4 0 0 的i p v 6 路由器的设计与实现。对1 p v 6 基本技术特别是其报 文格式、地址结构进行了必要的研究,在数据层面介绍了路由器数据包接 受、转发、调度等功能模块的设计与实现,其中对路由转发模块进行了详 细的介绍; ( 4 ) q o s 在i p v 6 路由器上的设计与实现。详细的介绍了在双网络处理器平台 上数据包分类与作色、标记、流量控制、拥塞避免等q o s 功能模块的设 计与实现过程; ( 5 ) 总结与展望。对所做的工作进行了全面总结和评价,并对系统今后进一步 的完善和发展进行了必要的讨论。 2 兰州大学硕士学位论文基于网络处理器的i p v 6 路由嚣设计与实现 l 网络处理器原理与技术 1 1 网络处理器概述 1 1 1 网络处理器的产生 如今的通信网络瓶颈己不再是带宽,因为光纤技术的广泛应用使之得到了 极大扩展。目前,o c - 4 8 ( 2 5 g b p s ) 、o c 1 9 2 ( 1 0 g b p s ) 的链路开始被广泛使用, 而且不久以后,o c 一7 6 8 ( 4 0 g b p s ) 的链路也将投入商用。相对而言,网络节点 的处理速度并没有得到显著改善。随着人们对网络需求的不断增加,许多新的网 络协议和服务,以及复杂的q o s ( q u a l i t yo f s e r v i c e s ) 控制诸如d i f f s e r v t 3 1 ,r e d 等 都需要网络提供更强的处理能力,以处理那些高度智能化的应用,所以目前通信 网络的瓶颈已经转移到网络节点上。 路由器作为网络节点的主要设备,其体系结构设计的革新与网络的发展历程 息息相关。网络链路速度的不断提高使得人们对于路由器的性能( 主要是对数据 包的处理速度) 有了更高的要求,而新服务和新协议的不断涌现又对路由器提出 了灵活性和可编程性的要求。显然,下一代网络所希望提供的服务,直接影响着 可编程路由器的结构设计与开发平台的选择。同样地,开放的、可扩展的、可编 程的路由器的发展程度,也直接决定了下一代网络能够提供怎样的服务。所以, 两者之间的关系是相互影响、相互联系的【4 】。 过去,在路由器中主要采用专用集成电路( a s i c ) 、通用处理器( g p p ) 对 数据包进行处理。尽管用g p p 来处理分组转发可以提供高度的灵活性,但其性 能较差,因为它们本身并不是为数据包的转发而专门设计的。以前,人们通过使 用a s i c 来弥补这种差距,因为它们具有足够的计算能力,能够以线速处理网络 数据。然而,它们的设计周期通常需要1 8 个月( 或更多) ,所以需要很长的时间 才能适应新的网络处理要求,缺乏足够的灵活性。为了解决这个难题,一种被称 为网络处理器( n e t w o r kp r o c e s s o r ,n p ) 的可编程微处理器被引入到路由器的数据 通道的设计中【5 】1 6 】,以满足各种网络处理的需求。它结合硬件与软件的优点,在 处理性能与可编程性之间达到了较好的平衡。 1 1 2 网络处理器的定义与功能定位 网络处理器是一种专用的、可编程的硬件设备,它既有r i s c ( r e d u c e d i n s t r u c t i o ns e tc o m p u t e r s ,精简指令集计算机) 的廉价和灵活性的特点,又具有 a s i c 在处理速度和可扩展性方面的优势,被认为是构建下一代网络的核心组件。 图1 1 简要描述了网络处理器的硬件结构。从图中可以看出,网络处理器主 要包括两个功能模块,即网络处理单元和智能协处理单元。其中,智能协处理单 元是网络处理器的核心,它一般需要嵌入式操作系统的支持,用于对网络处理单 兰州大学硕e 学位论文 基于网络处理器的| p v 6 路由器设计与实现 图1 - 1网络处理器基本结构t 7 l 元和其它硬件单元进行控制。它通过运行操作系统上的路由协议软件包,完成路 由信息的接收、处理和发送,生成并维护路由表等。 网络处理器的高速处理能力主要是通过在一个芯片内集成多个微处理器以 及在一个微处理器内包含多个硬件线程来实现的,当然也采用了其它一些硬件加 速技术;而网络处理器的灵活性则主要是通过智能协处理单元与网络处理单元的 完全可编程能力实现的。 网络处理器在未来网络开发与设计中具有广泛的应用前景。当然,网络处理 器并不是万能的,更不会完全取代r i s c 和a s i c 在某些网络设备开发中的地位。 但它的确已经成为了大多数网络设备开发的首选,并且这一趋势将越来越明显。 1 1 3 网络处理器的特点 网络处理器有几个关键的技术特点,形成了与其它设备竞争的主要优势: l 、可编程性。网络处理器的低成本主要来自于它的灵活性,也就是能够快 速改变并适应各种应用技术,缩短产品的开发周期,并提供可重用性。而它的这 种灵活性正是由可编程性来实现的。与a s i c 不同,用网络处理器来实现的系统, 通过软件的升级就能够迅速地进行系统的升级,并且通常不需要更换硬件。 2 、高速的数据处理能力嘲。网络处理器有为网络处理任务专门优化设计的专 用指令集,里面有许多用于执行数据包处理功能的附加指令,可以使用最少的时 钟周期完成特定的处理任务。除此之外,网络处理器还采用优化的内存管理机制 和d m a 单元、硬件多线程、专用协处理器等经过优化的硬件处理技术来实现高 速的数据处理能力。 3 、可扩展性。可扩展性是未来网络对于网络设备提出的最基本要求,所以, 作为网络设备的开发平台,网络处理器必须具备较好的可扩展性。 就网络处理器本身而言,它具有高度的可扩展性。可以通过使用多线程 技术来提高处理器速度,从而对它进行扩展。也可以增加处理器的数目和类型对 它进行扩展,还可以通过增加存储器的种类、容量、访问带宽等对它进行扩展。 就网络处理器实现的功能而言,它既可以实现简单的小型系统,也可以 通过交换设备( 比如交换板) 的连接,扩展成大型的系统。 值得注意的是,网络处理器的软件可扩展性并不是最好的。由于许多网 络处理器需要程序员用低级语言( 如汇编语言) 来写代码,并且往往直接涉及到 与底层硬件直接相关的知识,所以对软件进行改动或将软件移植到更大规模的系 兰州大学硕士学位论文基于网络处理器的1 1 6 路由器设计与实现 统中,都必须非常谨慎。 4 、高度并行性。由于网络流量的大多数数据包之间并没有相互依赖性,因 此可以被独立地处理,而不需要考虑它们之间的大量通信或同步问题。一般主要 采用数据包级并行口l p ) 、数据包内并行( i p p ) 、指令级并行( i l p ) 等三个层次的 并行处理技术针1 9 1 。 5 、智能处理。对于不同的服务要求,需要对到达的数据包进行不同深度的处 理。例如,分帧,组帧只需进行二层处理,路由查找需要进行三层处理( d 包头) , 分类则需要进行四层处理( t c p ,u d p 协议) 。 1 1 4i n t e i 网络处理器 i n t e l 公司在网络处理器的开发方面走在了同行的前列。该公司开发的网络处 理器产品有i x p l 2 x x 系列第一代网络处理器,以及以d 口2 4 0 0 、p 2 8 0 0 、 i x p 2 8 5 0 为代表的第二代网络处理器。 p 1 2 0 0 是i n t e l 公司推出的第一代网络处理器的典型产品,主要面向o c - 3 到o c 1 2 数据率的网络应用。i x p l 2 0 0 包括6 个完全可编程多线程微引擎和一个 s t r o n ga r m 智能协处理器。但是随着网络技术的发展和应用需求的增加,以 i x p l 2 0 0 为代表的第一代网络处理器在功能上已经不能很好地满足日益复杂的 网络处理功能要求,为更好的适应当前和今后网络宽带化和业务综合化的趋势, i n t e l 公司推出了i x p 2 x x x 第二代网络处理器。相对于i x p l 2 0 0 ,i x p 2 x x x 能 处理o c 1 2 o c 1 9 2 速率的网络数据,很好的适应了网络宽带化的趋势:另外, i x p 2 x x x 充分考虑了网络数据的复杂多样性,采取相应的硬件结构和软件算法 有效地进行网络数据处理,很好地适应了网络业务综合化的趋势。 p 2 ) d o 【是i n t e l 第二代网络处理器的统称,包括i x p 2 4 0 0 、i x p 2 8 0 0 、 d 2 8 5 0 共3 款网络处理器产品。其中,i x p 2 4 0 0 主要是面向0 c 1 2 到o c - 4 8 的网络接入和边缘网的应用,它包括8 个完全可编程多线程微引擎,实现2 5 g b i t s 的包转发速率。d 四2 8 0 0 主要是面向o c - 4 8 到o c 1 9 2 的边缘网和核心网的应用, 它里面有1 6 个完全可编程多线程微引擎【1 0 1 ,实现1 0 g b i t s 的包转发速率。 i x p 2 8 5 0 在i x p 2 8 0 0 的基础之上增加了2 个c r y p t o 单元,用于加、解密,可达到 1 0 g b i t s 的加、解密速度,可用于i p s e e 、v p n 、q o sr o u t e r 等场合。 i n t e l 公司开发的第二代网络处理器在众多的网络处理器产品中是比较有代 表性的,也是比较有优势的,本文将以i n t e l 的第二代网络处理器i x p 2 4 0 0 为基 点介绍网络处理器的原理和技术,并在i x p 2 4 0 0 单n p 平台和双n p 平台上进行 相关的i p v 6 路由器软件设计,实现报文分类、路由查找、队列管理、拥塞控制 等功能。 兰州大学硕士学位论文 基于网络处理器的i p v 6 路由器设计与实现 1 2i n t e ii x p 2 4 0 0 网络处理器 i n t e li x p 2 4 0 0 网络处理器是i n t e l 第二代网络处理器产品之一,使用它可以 开发诸如路由器、宽带访问设备和无线设备等范围广泛的网络设备。它具有标准 接口,提供较好的重用性,能够支持深层的数据包处理。并以高达o c - 4 8 2 5 g b p s 的线速处理性能支持网络增值服务。本节将从硬件结构【1 0 l 、逻辑分层结构、软件 开发工具等方面来介绍i x p 2 4 0 0 。 i 2 1 硬件结构 在图l - 2 中清晰地描述了i x p 2 4 0 0 的总体硬件结构,其中的关键部分是被称 为x s c a l e 核的i n t e lx s c a l e 处理器核和一些被称为m e ( m i e r o e n g i n e ,微引肇) 的r i s c 处理引擎。下面就本文关注的几个重要部分进行说明。 1 2 1 1x s c a l e 核 x s c a l e 核是一个3 2 位的通用r i s c 处理器,时钟频率为6 0 0 m h z ,它被用 于执行一些网络处理器的初始化和管理工作,也可以被用于执行慢通道 ( s l o w p a t h ) 或控制平面( c o n t r o lp l a n e ) 的相关任务。x s e a l e 核拥有独立的3 2 k b 指 令和数据缓存区,以及一个功能强大的存储管理单元。它以一个统一的接口访闳 所有的系统资源,可以有效地通过共享内存中的数据和表与m e 进行通信。 图1 - 2i x p 2 4 0 0 硬件结构图 1 2 1 2 微引擎 在i x p 系列网络处理器中,m e 负责绝大部分的数据包处理任务。它可以访 问所有的共享资源( 例如s r a m ,d r a m ,m s f 等) ,也可以访问相邻m e 之间 的私有接口。i x p 2 4 0 0 共有8 个m e ,它们被分成两个c l u s t e r ,每个c l u s t e r 都含 有4 个m e 。这样做的好处是可增强m e 之间以及m e 与外部资源间的通信能力。 考虑到处理器的处理速度与存储器访问速度之间的差异,单线程机制往往受 到存储访问操作的影响而阻塞。m e 支持软件控制的多线程机制,这样就可以使 多个线程交替执行,从而极大地改善了m e 对系统资源的使用效率。图l 一3 给出 了i x p 微引擎的内部结构,它有几个重要的硬件特征,总结如下。 6 兰州大学硕士学位论文 基于网络处理器的i p v 6 路由器设计与实现 图1 - 3i x p 2 4 0 0 微引擎结构图【1 1 i l 、线程 在每个m e 中有8 个硬件线程,它们都有自己独立的寄存器、程序计数器和 本地寄存器等硬件资源,这样可以有效地提高线程切换的效率。这种线程闯的快 速切换可以使线程在等待i o 操作的完成或某个信号到来的时候,将系统资源迅 速地转让给其它线程来使用,有效地隐藏了由于访问存储器而产生的时延,即所 谓的m e m o r yl a t e n c y ,从而在宏观上实现并行处理的效果( 图1 4 ) 。 i e x m o u t i o n t i m e 4 8 x i p a c k e t n - _ _ 一_ _ _ 1 w d 0 p a c k e tr 1m i n i m 1 h e & dl p a c k e tn +2一thread 2 p a t r e tn +3一thtegd 3 p a c k e t n * 4m i r a t h c e a d 4 p 目c k e tn4ls_thread s “m - 什8 _ t h r e a d 6 fhc嘲n+7一thread 7 吲 图1 - 4m e 多线程机制实现数据包的并行处理 2 、寄存器 每个m e 都含有四种类型的3 2 位寄存器: 7 兰州大学硕士学位论文基于f b 络处理器的i p v 6 路由器设计与实现 1 ) 2 5 6 个通用寄存器( g e n e r a lp u r p o s er e g i s t e r s 。g p r s ) ; 2 ) 51 2 个传输寄存器( t r a n s f e rr e g i s t e r s ,x f e rr e g i s t e r s ) ,其中s r a m 寄 存器和d r a m 寄存器各2 5 6 个; 3 11 2 9 个相邻寄存器( n e x tn e i g h b o rr e g i s t e r s ,n nr e g i s t e r s ) ; 4 ) 6 4 0 个3 2 位字长的本地内存( l o c a lm e m o r y ,l m ) 。 3 、特殊的硬件单元 在m e 中还有一些为优化性能而设计或引入的硬件单元,它们为m e 对数据 包的处理提供了很好的辅助作用,比较典型的主要有: 1 ) c r c 单元:执行1 6 位或3 2 位的c r c 计算; 2 ) 伪随机数产生器:产生伪随机数以用于拥塞控制等算法; 3 ) c a m , 与m e 中的l m 以及s r a mc o n t r o l l e r 中的q a r r a y 等配合使 用,实现对数据结构的高速缓存和快速操作。 1 2 1 3 存储器及其控制器 d r a m 、s r a m 和s c r a t c h p a d 构成了i x p 2 4 0 0 的主要存储资源。其中,d r a m 的存储空间大,访问时延也最大,主要用于大型的数据结构和表的存储;s r a m 的存储空间和访问时延都比前者小,主要用于存储数据包描述符和数据包队列等 数据结构:s c r a t c h p a d 是直接集成在芯片上的,存储空间较小,但访问速度最快, 常被用于存储需要在线程间传递的数据以及同步微引擎间对数据结构的访问等。 在i x p 2 4 0 0 的芯片上集成了d r a m 和s r a m 存储器的控制器,便于芯片对 存储器的控制与管理。 l 、d r a i v l 控制器 d r a m 控制器( d r a mc o n t r o l l e r ) 用于接口d r a m 存储器,并管理和控制其 它硬件单元( 如x s c a l e 核,) 对d r a m 存储器的访问。在i x p 2 4 0 0 中,d r a m c o n t r o l l e r 支持一个d r a m 通道,数据访问宽度为6 4 比特,最大地址空间为2 g b 。 2 、s r a m 控制器 s r a m 控制器( s r a mc o n t r o l l e r ) 用于接口s r a m 存储器,并管理和控制其 它硬件单元对s r a m 存储器的访问。它比d r a m 控制器复杂,且支持许多经过 优化的操作指令。在i x p 2 4 0 0 中,s r a mc o n t r o l l e r 支持二个s r a m 通道。 1 2 1 4s h a c 单元 s h a c 是三个单元的合称,包括s c r a t c h p a dm e m o r y ( 中间结果缓存) ,h a s h u n i t ( 哈希单元) ,c a p ( 控制状态寄存器访问代理) 三个组成部分。 s c r a t c h p a dm e m o r y 是i x p 2 4 0 0 的片内存储资源,特点是,访问速度快,存储 容量比较小,是1 6 k b ,支持对于r i n gb u f f e r 的快速操作。因此,常用于存储需 要在线程间进行传递的数据,用于线程间的通信。 h a s hu n i t 支持哈希运算,产生哈希结果,用于加速路由表的查找等,支持 兰州大学硕士学位论文 基于网络处理器的i p v 6 路由器设计与实现 4 9 b i t 、6 4 b i t 、1 2 8 b i t 的哈希运算。 c a p 控制和管理主控单元对i x p 2 4 0 0 中c s r ( 控制状态寄存器1 的访问。c a p 支持c s r 的r e a d 、w r i t e 、f a s tw r i t e 等操作。通过对相应的c s r 的读写,可以采集 到i x p 2 4 0 0 的工作状态以及对i x p 2 4 0 0 的工作模式进行设置。 1 2 1 5m s f m s f ,全称为m e d i a a n d s w i t c h f a b r i c i n t e r f a c e ( 介质与交换结构接口) 是网 络帧和交换架构的接口,包括接收和传送缓冲器,支持u t o p i a 1 肋,p o s 2 及 s p i 3 接口。在i x p 2 4 0 0 中,m s f 通过u t o p 队,s p i 协议与物理设备接口,通过c s i x 协议与交换结构接口。u t o p i a 、s p i 、c s i x 都是经过标准化的协议,通过这些 标准协议m s f 能够方便的与其他厂家的产品进行接口。 m s f 的介质总线接口分为r e c e i v ei n t e r f a c e 和t r a n s m i ti n t e r f a c e 。由3 2 b i t 数据接受总线、3 2 b i t 数据发送总线、以及相应的协议逻辑单元组成。支持u t o p i a ( l e v e ll ,抛) 、p o s p h y ( 1 e v e l2 3 ) 以及c s i x 等标准工业接口协议。 可将3 2 b f f 的r e c e i v e i n t e r f a c e 和3 2 b i t 的t r a n s m i t i n t e r f a c e 划分为多个通道。 多通道模式可分为s p h y 模式和m p h y 模式,其中,s p h y 模式每个通道( p o a ) 独占指定宽度的接口总线,m p h y 模式所有的通道( p o r t ) 共享一套接口总线。 1 2 1 6p c i 控制器 i x p 2 4 0 0 中采用了符合p c i v 2 2 标准的p c i 控制器来接口c o n t r o lp l a n e p 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 i 规范的设备。在i x p 2 4 0 0 中, p c ic o n t r o l l e r 的接口总线宽度为6 4 b i t ,时钟频率为6 6 m h z 。 1 2 2 网络处理器的软件开发模式 为了使用户能够快速高效地建立基于i x p 2 4 0 0 的网络应用,i n t e l 公司提供了 软件开发包( s d k ) 。i x as d k4 x 版本l l 硼用于开发基于i n t e li x p 2 4 0 0 、i x p 2 8 0 0 、 p 2 8 5 0 网络处理器的系统,它支持v x w o r k s 和m o n t a v i s t al i n u x 操作系统。它 有一个i x a 移植框架和库,用于开发模块化的能够移植的代码,集成第三方的组 件产品,从而减少底层基础软件的开发时间,不同的工程之间共享程序代码组件。 1 2 2 1 软件体系结构1 1 2 l 根据网络应用的实际情况,可以将网络处理器分为三个逻辑平面:数据平面、 控制平面、和管理平面( 如图1 5 所示) 。 尊t 誊 嘤熟蹶鬻鬻辫黥瀚濑黟 。:数据乎面一一, 熬蕊如嘏鑫盏誊霪薹薹荔誉蒜甄蕊盛一 图i - 5 逻辑分层模型 9 孱一 兰州大学硕学位论文基f 网络处理器的i p v 6 路由器设计与实现 l 、数据平面( d a t ap l a n e ) :它主要负责高速地处理和转发数据包,通常是影 响整个系统性能的关键因素,因为所有由网络处理器处理的数据包都必 须经过这里。在i x p 2 4 0 0 网络处理器中,数据平面又可以分为两层: 1 1 快通道( f a s tp a t h ) :也就是m e v 2 微引擎,它以线速处理绝大部分的 数据包。例如,它处理简单的i p v 4 数据包的转发。 2 1 慢通道( s l o wp a t h ) :也就是x s c a l e 核,它主要对一些需要复杂处理 的数据包( 常被称为异常包) 进行处理。例如,在数据包转发时, 它要对那些包头中含有选项的i p 数据包,或需要分段的数据包等进 行处理。 2 、控制平面( c o n t r o lp l a n e ) :主要处理一些协议消息,并负责建立、配置以 及更新那些数据平面需要查找的表和数据等。例如,控制平面需要处理 路由信息协议( r i p ) 的数据包,更新数据平面使用的转发表等。 3 ,管理平面( m a n a g e m e n tp l a n e ) :主要负责整个系统的配置工作,收集和报 告统计数据,以及由于响应用户输入或其它应用程序消息而执行的终止 或启动程序的操作。该层通常以图形化的用户界面( g i j i ) 来实现,获取 并显示从用户那里锝到的信息。 1 2 2 2i x & 可移植性框架 d 渔可移植性框架【1 3 l 是i n t e li x a 的基础部件之一,它通过软件在当前一代的 a 网络处理器与未来的i x a 网络处理器之间的可移植性和代码的重用,能够加 快开发的步伐,降低开发的成本,保护开发的投入,i x a 移植框架包括: 1 ) 优化的数据平面库,用于硬件抽象、协议处理、加密功能和例行程序。 2 ) 微引擎程序和核心组件( c o r ec o m p o n e n t ) 程序设计模型,用于编写模块化 的可重甩的i x p 2 x x x 网络处理器软件。 3 1 一个基于n p f 标准a p i 的库,用于与控制平面协议栈的通信。 i n t e li x a 移植框架提供了虚拟的基础软件设施和a p i ,将微引擎应用程序分 割成独立的功能模块,称为微块( m i c r o b l o c k ) 。微块可以运用在各个微引擎的线 程中,各种微块可以相互连接构成流水线。x s c a l e 核心组件可以采用类似的结构。 这种模式使得代码的移植变得容易,使得构造具有不同微引擎数量和线程数量的 应用程序变得容易,使得第三方厂商的软件集成变得容易。 i x a 移植框架实现层次化的软件架构,i x a 应用的逻辑构成如图1 6 所示。扶 下而上,它包括优化的数据平面库和工具、微块、调度环和微块基础设施库、资 源管理库、核心组件支持库、核心组件控制平面开发库、操作系统服务层和控制 平面协议栈等。 i o 兰州大学硕士学位论文 基于网络处理器的l p v 6 路由器设计与实现 外部处理器 i n t e i x s c a l 核心处 理器 f l 竺兰竺! 二竺!j 图1 - 6i x a 应用的逻辑图 1 , 2 2 3 核心组件【1 4 1 1 1 习 实现核心组件的方法有两种:一种方法是用a 核心组件基础设施( c c d 库,c c i 提供了处理消息和分组的支持:另一种方法是直接使用资源管理器a p i , 这时,组件完全由开发者自己实现,包括分组和消息的处理。后一种方式为开发 者提供了较多的灵活性,它可以将i x a 移植框架与已有的内核应用程序和协议软 件进行集成。 在内核中有一个执行引擎,它是运行在一个或多个核心组件中的执行线程。 这可以是一个l i n u x 的核心线程,也可以是一个v x w o r k s 的任务。系统开发者控 制执行引擎的数量,以及在每个执行引擎中运行哪一个核心组件。核心组件本身 不是一个线程,它包含在某一个执行引擎中分组和消息的处理在执行引擎的上 下文中进行处理。 每个内核组件有多个输入,每个输入与不同的分组消息有关。每个输入与 硬件和软件的队列有关,具有一个全局唯一的i d 。执行引擎代表核心组件为每一 个输入i d 注册一个分组,消息处理器,分组处理器和消息处理器的i d 有相同的取 值范围,i d 在编译时分配。 核心组件的输出是决定数据流的逻辑输出,输出通常代表分组在核心组件中 分类的结果。如果一个运行在一个执行引擎中的核心组件具有多个数据输入路 径,那么当有消息分组在输入端等待时,核心组件或者其他实体需要决定先接 收哪一个输入,这就是一种调度,系统应用的开发者运用调度策略来控制执行引 擎中的不同的队列如何进行调度。 执行引擎调用消息处理函数进行消息的调度,如果调度策略标志显示有多个 输入端具有消息分组等待输入,则调度策略负责进行调度。 兰州大学硕士学位论丈 基于网络处理器的i p v 6 路由器设计与实现 1 2 2 4 微引擎模块i l j 不同微引擎之间通过共享存储器、n n 寄存器等进行元数据的传递。当一个 微引擎上运行多个微块,元数据缓存在本地,如在本地存储器中,或者在通用寄 存器、传输寄存器、环路模式的n n 寄存器中等。 在用微块进行分组处理时,很可能有多个微块同时访问同一个分组的头。为 了解决这个问题i x a 移植框架提供了一个库,它在微引擎中缓存分组头的一部分 内容。如果微块使用这个库,那么对同一个存储区域的反复访问将使得缓存命中。 微块基础设施提供了一组库,使得调度环能够从各个队列设备中读写分组, 包括s r a m 和环形队列、内核队列、n n 寄存器队列等。一组微块采用调度环来 定义分组数据流。一个微块组可以运行在多个微引擎上,但是两个微块组不能共 享同一个微引擎。 微块可以给相应的内核发送分组。调度环处理来自核心组件的分组并将其提 交给相应的微块。微块是一个粗颗粒的实体,完成较大的任务。系统中的微块有 一个全局唯一的名字和一个8 位的i d 。当然,不同的应用系统可以有不同的微块 名称,即使是相同的微块。微块的i d 在编译时分配保持在系统头文件d ls y s t e m h 中,这个文件用于建立数据流绑定。 将应用程序分割成微块的目标是,使得开发者可以在编写程序时不需要关心 哪一个程序是上游的,哪一个程序是下游的。每一个微块可以有多个逻辑输出, 表示分组的下一步是哪一条路径。微块的逻辑输出通过设置调度环变量d ln e x t b l o c k 来指定,为了使得微块更加通用,用符号名称来表示这些输出。 如果微块处理分组出现异常,需要将一个分组送交内核进行处理,参数为微 块i d ,使得内核的资源管理器将分组送交适当的核心组件,这个组件已经注册了 这个微块的异常分组处理。 异常代码,这是一个8 位的数值,微块用于向核心组件表示异常的原因,用 于d ln e x tb i o c k 的值,目前支持两个异常分组的优先级。 在有序执行模式下,分组逐个经过流水线中的每个微块。每个微块检查 d ln e x tb l o c k 并依次进行分组的传递。最后分组到达s i n k 微块。这个微块将分组 放入便笺环或s r a m 的队列中。 便笺环用于在微引擎之间传递分组描述符,为了从内核接收分组,用了一个 专门的便笺环。d ls o u r c e 宏需要轮询这个便笺环以及其他微引擎的环。 如果微块要丢弃一个分组,它设置d ln e x tb l o c k 为i xd r o p ,这个分组仍然 要经过后继的微块。流水线中后继的微块将检测d ln e x tb l o c k 的值,看看它是否 需要处理这个分组。 调度环组织微块,实现它们之间的数据流。调度环还在寄存器中或本地存储 器中缓存公共变量,这些变量可以被微块访问。调度环还提供源和目的微块,己 兰州大学硕士学位论文基于网络处理器的i p v 6 路由器设计与实现 发送和接收内核的分组和其他微块组的分组。它初始化每个微块,然后执行一个 循环,循环中依次调用所有的微块。调度环中的第一个微块是一个系统源块,从 便笺环中取出分组,这些分组可能来自x s c a l e 内核,或者另一个微引擎。每个微 块将设置d ln e x tb l o c k 变量,表示哪一个微块需要处理该分组的下一步操作。 在有序线程模型下,微块的调用顺序是固定的。在无序线程模型下,每个微 块调用之后都要检查d ln e x tb l o c k 值,以决定下面调用哪一个微块。当d 1 s i n k f l 微块接收分组后,它检查n e x tb l o c k 值,如果是e x c e p l l o n 则送给内核处理, 如果是d r

温馨提示

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

评论

0/150

提交评论