(计算机应用技术专业论文)ixa架构网络处理器上软件应用开发研究——基于ixp2400的ipv4包转发模块实现.pdf_第1页
(计算机应用技术专业论文)ixa架构网络处理器上软件应用开发研究——基于ixp2400的ipv4包转发模块实现.pdf_第2页
(计算机应用技术专业论文)ixa架构网络处理器上软件应用开发研究——基于ixp2400的ipv4包转发模块实现.pdf_第3页
(计算机应用技术专业论文)ixa架构网络处理器上软件应用开发研究——基于ixp2400的ipv4包转发模块实现.pdf_第4页
(计算机应用技术专业论文)ixa架构网络处理器上软件应用开发研究——基于ixp2400的ipv4包转发模块实现.pdf_第5页
已阅读5页,还剩68页未读 继续免费阅读

(计算机应用技术专业论文)ixa架构网络处理器上软件应用开发研究——基于ixp2400的ipv4包转发模块实现.pdf.pdf 免费下载

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

文档简介

摘要 摘要 由于网络处理器被认为是推动下一代网络向灵活性和高性能发展的核心技 术,因此各个芯片公司都推出了自已的网络处理器产品。作为业内芯片生产巨头 的i n t e l 公司相继推出了多个系列的网络处理器产品,通过与大学建立合作研究计 划支持其网络处理器的应用开发研究。本课题正是基于此项计划来进行的。 课题的研究对象i x p 2 4 0 0 网络处理器是i n t e l 公司第二代网络处理器家族中的 一款中端产品,由于这一系列产品具有相似的硬件结构和软件开发模式,只是应 用开发领域有所不同而己,因此基于i x p 2 4 0 0 的开发也为将来向高端和低端两类 网络设备开发垫定基础。 网络处理器的应用开发属于嵌入式开发的一种,甚至它的开发门坎要比一般 的嵌入式开发更高,特别是针对微引擎汇编级代码的开发,一方面要了解各种复 杂的协议包格式和数据结构,另一方面也要了解低层的复杂的硬件数据通路,因 此对开发人员的网络知识背景、硬件和软件编程水平要求较高。 本课题正是针对基于i x p 2 4 0 0 的软件开发应用展开研究的。通过分析i x p 2 4 0 0 网络处理器的硬件体系结构以及软件可移植架构的软件开发模型,并通过设计、 实现一个较为简单的应用例子,从而探索了一条在网络处理器上进行开发的实现 模式。 本文首先通过i x p 2 4 0 0 网络处理器的硬件体系结构以及软件可移植架构的软 件开发模型的分析给出在其上进行软件开发的关键性技术,然后通过给出的一个 自行设计、实现的i p v 4 包转发模块例子,说明了如何在1 x p 2 4 0 0 处理器上进行开 发。本文也是对本人阶段性开发工作的总结。 本文在探索网络处理器应用软件开发、实现模式上,给程序开发者一个有价 值的参考和引导。 关键词:互联网交换架构,网络处理器,微引擎 a b s l 鼢( 了 a b s t r a c t t h en e t w o r kp r o c e s s o ri sb e i n gr e g a r d e da st h ec o r et e c h n o l o g yo na c c e l e r a t i n g t h ed e v e l o p m e n to fa g i l i t ya n dh i g hp e r f o r m a n c eo fn e t w o r k ,s om a n yc o m p a n y i s s u e da l lk i n d so fn e t w o r kp r o c e s s o rp r o d u c t i o n a sb e i n gt h em a g n a t eo ft h ei n d u s t r y , i n t e lc o r ps u p p o r t e dt h ed e v e l o p m e n ta n dr e s e a r c ho nt h en e t w o r kp r o c e s s o rs o f t w a r e a p p l i c a t i o nb ym a k i n gc o l l a b o r a t ep l a nw i t hm a n yc o l l e g e s a n dt h i sp r o j e c ti sb a s e do n t h i sp l a n t h er e s e a r c ho b j e c ti st h ei x p 2 4 0 0 ,a n di t i st h es e c o n dg e n e r a t i o nn e t w o r k p r o c e s s o ri ni n t e lp r o d u c tf a m i l y i nt h i sf a m i l y , t h e ya r ec o m m o nh a r d w a r es t r u c t u r e a n ds o f t w a r ed e v e l o p m e n tm o d e l ,a n dt h eo n l yd i f f e r e n c eb e t w e e nt h e m i st h e a p p l i c a t i o na r e a s ot h ed e v e l o p m e n to ni x p 2 4 0 0i sa l s ot h eb a s e dd e v e l o p m e n t f o rt h e h i g h a r e aa n dl o wa r e an e t w o r kd e v i c e d e v e l o p m e n t t h e n e t w o r kp r o c e s s o r d e v e l o p m e n tb e l o n g s t ot h ee m b e d d e dd e v e l o p m e n t b e i n gi t sc o m p l e xp r o t o c o l f o r m a t ,d a t as t r u c t u r e ,i tr e q u i r e dt h ed e v e l o p m e n tp r o g r a m m e rh a v i n gg o o dn e t w o r k k n o w l e d g e ,h i g hl e v e lp r o g r a m m i n gt e c h n o l o g yo nh a r d w a r ea n d s o f t w a r e t h ep r o j e c tf o c u so nt h es o f t w a r ed e v e l o p m e n ta p p l i c a t i o nb a s e do ni x p 2 4 0 0 b y a n a l y z i n g t h eh a r d w a r ea r c h i t e c t u r ea n dt h es o f t w a r e d e v e l o p m e n t m o v a b l e m o d e l ,g i v i n ga ne x a m p l eo fi p v 4p a c k e tf o r w a r d i n g ,w et r yt og i v e av a l u a b l e r e f e r e n c ea n dd i r e c t o rf o rn e t w o r ka p p l i c a t i o nd e v e l o p m e n tp r o g r a m m e ri no r d e rt of i n d am o d e lo nn pd e v e l o p m e n t f i r s t ,t h ea r t i c l ei n t r o d u c e dt h ei x p 2 4 0 0h a r d w a r e a r c h i t e c t u r ea n da n a l y z e dt h eh a r d w a r ea c c e l e r a t i n gt e c h n o l o g yf e a t u r ei ni t t h e n , l a b o r e da n a l y z i n gt h em o v a b l es o f t w a r ed e v e l o p m e n tm o d e la n ds t r a t e g y ,a l s og a v ea n e x a m p l eo ft h ea n a l y z i n ga n di m p l e m e n to ft h ei p v 4p a c k a g ef o r w a r d i n ga n dk e y t e c h n o l o g y a tl a s t ,g i v e a nd e t a i l e dd e s c r i b i n ga b o u tt h en e t w o r ka p p l i c a t i o n d e v e l o p m e n to ni x p 2 4 0 0a p p l y i n go nt h eb a s e dn e t w o r ks e r v i c e k e y w o r d :i x a ( 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 e ) n p ( n e t w o r kp r o c e s s o r ) m e ( m i c r oe n g i n e ) i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名: 日期移柙2 年易月口日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:导师签名: 日期:3 , - 2 朗1 = i 蝉 i 嗡协,、 第一章绪论 1 1 课题背景及意义 第一章绪论 1 1 1 网络处理器应用背景 1 网络处理器产生技术需求 以网络设备核心部件更新为标志,网络设备体系结构发展经历了三个阶段: f 1 、以g p p 为核心的网络设备体系结构 在网络发展早期,网络传输速率低,服务少,研究集中在服务框架构建和网 络协议实现。设备以g p p 为核心,在通用操作系统基础上,以软件方式实现各种 网络服务。目前许多边缘设备:如防火墙、v p n 设备、v o i p 设备,还在采用这种 通用处理器+ 通用操作系统+ 专用网络服务软件的体系结构。其优点是灵活性好, 缺点是性能处理差。这种结构为支持各种复杂运算,采用通用体系结构和指令集, 其通用性导致网络性能处理差。 ( 2 1 以a s i c r i s c 为核心的网络设备体系结构 随着网络带宽的增长速度远大于通用计算机处理的增长速度,网络瓶颈变成 基于g p p 的节点设备。采用基于a s i c 和r i s c ( r e d u c e di n s t r u c ts e tc o m p u t e ) :为核心 的体系结构成为主流,尤其是骨干设备的设计。为获取高性能,通常由r i s c 负责 非实时管理,a s i c 负责高速数据处理。这种结构缺点是开发周期长,缺乏灵活性。 a s i c 不具备可编程性,一旦将计算逻辑固化到硬件,很难修改。设计制造复杂 a s i c 需要花费1 8 个月到两年时间,设备制造商必须准确预测未来的市场需求和 技术趋势。 ( 3 ) 以n p 为核心的网络设备体系结构 在新信息技术、用户需求、市场竞争三驾马车牵引下,未来网络需求出现新 特点,主要集中在以下三方面:( 1 ) 高性能压力依旧存在:按照摩尔定律,电处理 电子科技大学硕士学位论文 器处理速度每1 8 个月增加一倍;但随着d w d m 等光纤技术在主干网络的广泛应 用,每1 2 个月光纤链路容量就增加一倍。因此以电处理器为核心的路由器仍然是 网络发展瓶颈。在低廉光处理技术出现之前,需要充分挖掘现有电处理技术。( 2 ) 灵活性要求更为迫切:i n t e m e t 的爆炸性增长,数据通信市场的瞬息万变,使得服 务提供商和设备提供商面临流量增加、用户增多的严峻挑战,面临根据用户复杂 多变要求,快速提供、部署不同服务的市场挑战。服务提供商希望设备提供商提 供保护已有巨额投资的平滑升级解决方案。面对这些挑战,只有采用灵活性好, 开发成本低,周期短,可持续性网络开发技术,才能在未来市场占据先机。( 3 ) 高 层细化处理更为关键:网络应用范围不断扩大、新型业务不断涌现,导致新协议 不断出现,对服务质量和安全性能的要求越来越高。核心问题在于:设备能够在 网络2 7 层上对高速数据流进行细化分组分类处理,而不仅是在网络2 3 层上 进行数据流的简单存储转发处理。数据分组处理涉及层次越多,系统资源负荷开 销就越大。 在高速数据流高层细化处理背景下,n p 技术为下一代网络的核心技术。其特 点是:n p 针对数据分组处理,采用优化体系结构、专用指令集、硬件单元,满足 高速数据分组线速处理要求;具有软件编程能力,能够迅速实现新的标准、服务、 应用,满足网络业务复杂多样化需求,灵活性好;设备具有软件升级能力,满足 用户设备硬件投资保护需求。此外为缩短设备提供商的产品研制周期,n p 厂商通 常会提供配套硬件评估板和规范软件应用范例。 2 网络处理器概念 网络处理器是面向网络应用领域的应用特定指令处理器,是面向数据分组处理 的、具有体系结构特征和或特定电路的、软件可编程器件。通过灵活的软件体系 提供硬件级的处理性能是p 口的关键特性。 在以g p p 和a s i c 瓜s i c 为核心的设备体系结构阶段,对2 3 层数据处理采 用“存储一转发”数据分组处理模式。随着网络发展,需要对2 7 层的数据分组 采用“存储一处理一转发”数据分组处理模式才能实现复杂的q o s 、安全控制、 负载均衡等功能模块。n p 的出现,标志着设备对数据分组的处理能力从低层粗放 2 第一章绪论 式处理过渡到高层细化处理。 3 网络应用处理基本操作 在对a t m 、v l a n 、m p l s 、i p v 4 、i p v 6 、i p s e c 、u d p 、t c p 、n a t 、w e b 交 换、q o s 协议等多种协议和应用的分析基础上,归纳出对单个数据分组处理的六 种基本操作:( 1 ) 模式匹配:对分组字段的比特进行匹配。输入为需要匹配值和分 组字段值,输出为某个确定逻辑值。( 2 ) 检索:根据某个关键字查找数据。通常与 模式匹配联合使用,用于查找表中的某个特定数据项。数据结构和算法取决于关 键字的大小和需要搜索的类型( 一对一或一对多) 。( 3 ) 计算:对不同协议,数据分组 的计算处理差异很大。如:i p s e c 中需要对整个分组进行加密、解密、鉴别等计 算;而多数协议都要求进行c r c 效验计算。f 4 ) 数据处理:对分组报头的修改便视 为数据处理。如:数据分组的分割、重组;i p v 4 中的1 t r l 字段每跳减一修改。( 5 ) 队列管理:对进出的协议数据单元进行存储和出入管理。负责实现数据报文在分 组分割重组的存储操作,以及与q o s 相关的流量整形和流量工程策略。( 6 1 控制 处理:通常涉及不需要线速执行的管理任务,如:异常处理、表更新、统计数据 汇总等。 通过继承a s i c 和r i s c 分层处理合理思想,n p 将网络处理任务划分为控制 面和数据面两个层次:控制面负责非实时性的管理和策略控制任务,数据面负责 承载高速多变的数据分组处理。目前n p 主要任务是进行数据分组的线速分析、处 理及转发,通过上述六种基本操作组合,实现以下功能:协议识别分类、数据包 拆分重组、排队,接入控制、流量整形流量工程、数据包修正、差错检测。随着 s o c 技术发展,n p 将集成更多设备级功能。 可见,网络处理器在未来网络服务的开发与设计中具有广泛的应用前景。当 然,网络处理器并不是万能的,更不会完全取代r i s c 和a s i c 在某些网络设备开 发中的地位。但它的确已经成为了大多数网络设备开发的首选,并且这一趋势将 越来越明显。 1 1 2i n t e i 公司的互联网交换架构( i x a ) 互联网交换架构0 n t e l n e te 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 网络处理器体 3 电子科技大学硕士学位论文 系结构。它定义了网络处理器的硬件抽象、应用程序接口( a p l l 和互连机制。 互联网交换处理器i x p ( i n t e l n e te x c h a n g ep r o c e s s o r , i x p ) 指的是实现i x a 体系 结构的网络处理器。一个i x p 的设计首先要符合i x a 的体系结构,在此基础上可 以定义每种型号的细节,如板载功能部件的数目和类型、处理器的并行程度、存 储器的最大容量和内部数据带宽。 目前全球技术正在趋于计算与通信的融合,作为芯片生产厂家的领头人的 i n t e l 公司未来的研发重点正是基于这种融合的趋势。为了把全球领先的嵌入式微 处理器技术的i x a ,e i a 和x s c a l e 架构和技术带给中国一流的学府,i n t e l 公司启 动了全球研发战略的一部分,即i n t e l 大学计划,该计划旨在推动新技术进入校园、 和大学联合开发最新课程、研发技术和产品,并最终加速实现新技术为企业和社 会应用。第一批实施的英特尔互联网交换架构( i x a ) 学术计划的国内五所高校分 别是清华大学,北京邮电大学,上海交通大学,北京大学及电子科技大学。 1 1 3目前国内网络处理器应用开发情况及本课题的意义 就目前国内外展开的研究或应用项目来看,与网络处理器相关的研究工作有 几个方面:一方面是针对网络处理器本身的硬件设计所进行的研究工作,它主要 侧重于网络处理器的体系结构的改进、系统整体性能的提升来展开相关工作与研 究;另一方面是面向网络处理器的相关应用的研究,通过利用网络处理器灵活性 和高性能特点来构建网络服务及应用。本论文主要从后者入手,以i n t e li x p 2 4 0 0 网络处理器为例,结合目前实验室所开展的对i n t e li x a 系列网络处理器的研究工 作,目的是了解如何使用基于i x as d k 架构设计微引擎和核心组件,以及之间 的通讯协作关系。希望能起到抛砖引玉之功效。给在此架构平台上进行开发的工 作人员一个参考。 与此同时,围绕网络处理器展开的相关研究工作快速发展。特别是i n t e l 公司 专门投资支持全球1 0 0 所大学进行网络处理器及相关技术应用的研究,通过与大 学合作的方式来支持其全球战略研发项目。在第一批实施的英特尔互联网交换架 构( i x a ) 学术计划的国内五所高校( 清华大学,北京邮电大学,上海交通大学, 北京大学及电子科技大学) 分别在i x a 架构的学术研究和教学方面取得了实质性 4 第一章绪论 的进展。清华大学基于i x a 架构对互联网的队列管理进行研究,这将有助于管理 未来不断增加的网络流量;北京邮电大学面向设备提供商及运营商开设了i x a 架 构的课程,取得了良好的效果。此外,他们还基于i x a 架构开发套件中的i x p l 2 0 0 处理器及应用程序接口,开发出了网络性能评估卡;在电子科技大学的i x a 架构 研究实验室里,研究人员己利用i x a 2 4 0 0 处理器开发出一整套防火墙系统。并准 备在基于1 x a 2 4 0 0 处理器上进一步做一些与i p v 6 相关的试验性基础研究与开发。 1 2 论文的研究内容与主要贡献 本课题是针对基于i x p 2 4 0 0 的软件开发应用展开研究的。通过分析i x p 2 4 0 0 网络处理器的硬件体系结构以及软件可移植架构的软件开发模型,并给出一个在 其上实现的i p v 4 包转发模块的分析与实现例子,探索了一条网络处理器开发的实 现模式,给在此上进行网络应用程序开发者一个有价值的参考和引导。 本文首先介绍了i x p 2 4 0 0 硬件体系结构,并分析了其硬件体系结构中的一些 硬件加速技术特色。然后,详尽地分析了此架构上可移植软件开发模型及开发策 略,并给应用开发中的关键技术。接着,通过给出一个最基础的网络服务例子, 给出了在i x p 2 4 0 0 上进行网络程序开发的详细过程描述。最后,采用一种数据包 处理流程性能分析的方法,对整个设计进行了量化分析,并以仿真测试结果验证 其设计的正确性。 1 3 论文的主要内容与结构安排 本文的正文部分共分为六章,现将其内容概述如下: 第一章介绍了本文所研究内容的课题背景和国内外相关内容的研究现状,并 总结了研究内容、主要贡献之处。 第二章对h a t e li x p 2 4 0 0 网络处理器硬件体系的结构作了详尽的分析,并总结 了该网络处理器如何从硬件上提高网络处理速度方面的特性。 第三章详细地分析i x p 2 4 0 0 的软件开发可移植架构特点,并对其中的关键技 术进行分析与说明。 电子科技大学硕士学位论文 第四章结合n t e li x p 2 4 0 0 的软件开发模型,给出了l p v 4 数据包转发的一个应 用软件设计与开发。 第五章对现有研究工作做了总结,并对进一步的研究工作提出了自己的想法 和见解。 6 第二章i n t e li x a 2 4 0 0 硬件体系结构 第二章i n t e li x a 2 4 0 0 硬件体系结构 2 1ln t elix p 2 4 0 0 网络处理器的硬件体系结构描述 i x p 2 4 0 0 是 n t e l 的第二代n p 家族中的一员,在图2 - 1 中清晰地描述了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 c r o e n g i n e ,微引擎) 的r i s c 处理引擎。下面就i x p 2 4 0 0 体系结 构中的各个硬件部分进行简要说明。由于微引擎( m e ) 上的编程是重点,所以我 们还要在在2 2 节中详细介绍一下微弓1 擎的内部结构。 2 1 1x s c a l e 处理器 图2 - 1i x p 2 4 0 0 硬件体系结构框图 x s c a l e 核是一个通用r i s c 结构的3 2 位a r m 系列处理器的一种,可运行在 6 0 0 4 0 0 m h z ,包含有3 2 k b 指令和3 2 k b 数据的高速缓存。通常用于系统控制层, 电子科技大学硕士学位论文 主要用于:对系统初始化、提供系统的时钟、建立并管理路由表、处理复杂算法、 提供一个对应于各寄存器、存储器和外部存储器的地址映射表等。x s c a l e 核在系 统启动时,从b o o t r o m 开始执行引导程序,对整个系统进行初始化。可通过共享 存储器的数据结构,与微引擎实现高效通信。 2 1 2 微引擎 i x p 2 4 0 0 有8 个相互独立的3 2 位可编程微引擎,分为相同的两组( c l u s t e r ) ,每 组4 个。每组微引擎都有独立的命令总线和数据总线,因而每个微引擎可与其它3 个微引擎( 而不是7 个) 共享这些总线。这样,微引擎和系统其它资源间具有更大的 通信能力。( 有关微引擎的内部结构,2 2 将作详细介绍) 2 1 3d r a m 单元与s r a m 单元 d r a m 单元是一个连接标准d d rd r a m 的存储控制器,工作时钟可为 1 0 0 1 5 0 m h z ,峰值带宽高达1 9 2 g b p s ,可支持最多2 g b 的d r a m 。它可被x s c a l e 处理器、微引擎以及p c i 总线上的设备访问,并传送成块的数据。 除此外,i x p 2 4 0 0 还有两个彼此独立的标准q d rs r a m 控制器,工作时钟为 2 0 0 m h z ,可分别提供1 2 8 g b p s 的读写带宽,总共可支持3 2 m b 的s r a m 。可被 x s c a l e 和微引擎访问,能够在s r a m 和微引擎之间成块传送数据。除标准的读写 操作外,s r a m 控制器还提供了以下的硬件功能: 读修改写的原子操作,包括递增,减、加减、位设置清零、对换等; q 数组结构,可消除存取s r a m 的等待时间,因而加快了队列的操作。 所有存储控制器是同时运行的,并且相互独立。d r a m 控制器的最大特点是 能提供极高的突发带宽,而s r a m 则是显著的低延迟。因而,d r a m 主要用来存 放那些较少访问但量大的数据,如口包中的数据,用作数据的缓冲区;s r a m 主 要用来存放那些需要经常快速访问的数据,如包描述符、队列描述符、计数器等。 一个合理的应用程序应充分利用两种内存的特性,避免出现访存瓶颈。 第二章i n t e li x a 2 4 0 0 硬件体系结构 2 1 4m s f 接口 m s f 接口是l 2 层帧处理单元和或交换结构的接口,i x p 2 4 0 0 用于连接物理 层设备和或交换结构。m s f 由独立的接收和发送接口组成,每个接口可单独配置 为u t o p i a 、s p i 3 或c s i x 协议。在相关协议下,这些接口还能配置为1 6 位和 或8 位通道的组合,实现不同物理设备的连接。 m s f 接口是双向端口,包括接收缓冲区( r b u f ) 和发送缓冲区( t b u 0 。从接口接 收的包被缓存到r b u f 中,而要发送的包则存放到t b u f 中。r b u f 和t b u f 都是8 k b 的r a m ,可编程将其分为如6 4 b 、1 2 8 b 或2 5 6 b 的存储子块,称之为单元。x s c a l e 和微引擎都可以访问这些单元,并能适应微引擎高速处理数据的需要。 2 1 5p o i 控制器 p c i 控制器是一个标准的6 4 位w l 总线接口。通常用作控制层或外设的接口, 用于连接主机c p u 或p c i 外设,允许外设对i x p 2 4 0 0 的片外r a m 存取数据。p c i 单元也可以作为p c i 总线的主控制器,允许x s c a l e 或微引擎访问p c i 外部目标, 从而增加了应用系统设计的灵活性和可扩展性。另外,p c 单元中还有d m a 通道, 可编程实现d r a m 与外部目标问的大批量数据传输。 2 l6h a s h 单元 用软件执行高质量的h a s h 运算是相当耗时的,因而p 2 4 0 0 中采用了h a s h 硬件单元作为加速部件,实现高速的h a s h 运算。x s c a l e 和微引擎都能用来对4 8 , 6 4 或1 2 8 位的数据作h a s h 运算。h a s h 单元在长关键字的表查找中十分有用,例 如i p v 6 采用1 2 8 位的地址,利用h a s h 单元,可极大减少计算的复杂性。 2 1 7s c r a t c h 单元 s c r a t c h 是一个片内1 6 k b 的通用存储器,可被x s c a l e 和微引擎访问。其容量 远小于片外存储器,但时延比s r a m 低,前者可运行在3 0 0 m h z ,而后者仅有 9 电子科技大学硕士学位论文 2 0 0 m h z 。s c r a t c h 也提供了s r a m 中的原子操作和环形缓冲区操作,通常用于存 放各种常需要快速查找的数据或与x s c a l e 共享的数据等。 2 1 8c a p 单元 包含一系列片内控制与状态寄存器,其中一些用来提供各种控制或状态,另 一些用于微引擎内部或微引擎与x s c a l e 核的通信。 2 1 9x s c ai e 外围设备 包括有中断控制器、4 个可编程3 2 位计时器、串行r a r t 端1 3 、8 个通用的 片外低速外设1 0 接口、闪存r o m 等。 2 1 1 0 总线结构 i x p 2 4 0 0 中的总线所组成的结构,将其中的所有功能单元互连起来,并且采用 了双向总线,实现基于微引擎的分布式存储机制。微引擎有输入和输出传输寄存 器,并连到对应的数据总线上,实现与各种共享资源的连接。另外,还有多条命 令总线,控制微引擎操作、访问系统资源。通常,总线结构以微引擎工作频率的 一半运行,因而在i x p 2 4 0 0 中,总线以3 0 0 2 0 0 h m z 工作。 此外,i x p 2 4 0 0 中还有许多c s r ,用于相关的控制等。包括中断控制器、3 2 位的计时器、u a r t 、g p i o 以及片外低速外设与f l a s hr o m 的接口等。 2 2 微引擎 微引擎是处理数据的主要场所,也是编程的主要对象,因而对其作详细的介 绍。其简化的内部结构如图2 - 2 所示,图中只表明信息的逻辑流。 l o 第二章i n t e ll x a 2 4 0 0 硬件体系结构 图2 - 2 微引擎内部结构框图 每个微引擎都具有相同的结构,都包含有自身的控制存储器、寄存器组和c s r 等。微引擎没有固定的功能,都是由编程确定的。其主要特征如下述。 2 2 1 控制存储器 控制存储器是存放微引擎所执行代码的场所,可存放4 k 条4 0 位的指令。控 制存储器是由外设( 如x s c a l e 处理器) 通过相关的c s r 进行初始化。一个微引擎中 的所有线程可以处理相同的任务,也可以处理不同的任务,这样在控制存储器中 就要存放处理不同任务的微代码。对基于网络处理器的设备进行升级或添加新功 能,就是要修改这其中的微代码。 1 1 电子科技大学硕士学位论文 2 2 2 硬件线程 在每个m e 中有8 个硬件线程( c o n t e x t 或t h r e a d ) ,它们都有自己独立的寄存 器资源、程序计数器和私有的本地寄存器等硬件资源,这样可以有效地提高线程 切换的效率( 有时线程切换的开销甚至可以忽略不计) 。这种线程间的快速切换可 以使线程在等待 o 操作( 通常是外部存储器的访问) 的完成或某个信号到来的时 候,将系统资源迅速地转让给其它线程来使用,有效地隐藏了由于访问存储器而 产生的时延,即所谓的m e m o r yl a t e n c y ,从而在宏观上实现并行处理的效果( 图 2 3 ) 。 p a c k e t n p a c k e tn + l p a c k e tn * 2 p a c k e tn + 3 p a c k e tn + 4 p a c k e tn + 5 p a c k e tn + 6 p a c k e tn + 7 t h r e a d 0 t h r e a d t h r e a d 2 t 1 1 r e a d3 t h r e a d 4 t h r e a d5 t h r e a d 6 t h r e a d 7 图2 - 3m e 多线程机制实现数据包的并行处理 每个微引擎中的8 个硬件线程彼此间都是独立的,并有独占的数据通路寄存 器组、程序计数器和特定于线程的局部寄存器组。当发生现场切换时,没有寄存 器内容需要保存,消除了共享存储中存在的数据交换问题,因而能够实现无等待 的现场切换。这些线程可以执行相同的代码,也可以执行不同的代码,这取决于 线程的程序指针所指控制存储器中的代码是否相同。 每个线程总是处于4 个状态之一。这些状态包括: 非活动状态:即不可运行。实际应用中,可能不需要使用所有8 个线程,通 过相应的寄存器配置,将不用的线程保持在“非活动”状态; 执行状态:线程控制微引擎使用权,其程序计数器正在读取指令来执行。当 需要等待某事件发生时,进入“等待”状态。任何时候,只能有一个线程处于该 状态,其余的线程则可处于其它任何状态; 型 ; 第二章i n t e li x a 2 4 0 0 硬件体系结构 就绪状态:线程具备除微引擎控制权外的所有条件,一旦获得微引擎的控制 权,便可进入“执行”状态。微引擎按轮回算法,从所有就绪线程中选择下一个 进入“执行”状态; 等待状态:线程在等待外部事件或信号的发生,如完成i o 操作等。当等待 的事件发生后,线程不能由该状态直接进入“执行”态,而是先进入“就绪”态。 2 2 3 数据通路寄存器 为满足微引擎a l u 快速存取数据的要求,每个微引擎提供了大量的3 2 位数 据通路寄存器,并可分为4 种类型: 2 5 6 个通用寄存器f g p r ) ,在物理和逻辑上都分为a 和b 两组,一个时钟周 期内可同时取出两个操作数,由程序控制进行独占的读写操作。在指令中,g p r 可以向a l u 提供操作数,也可以接收a l u 的输出结果; ) 5 1 2 个传输寄存器( x f e r ) 被分为独立的s r a m 和d r a m 传输寄存器,每 一种又进一步分为读和写两部分。这四部分传输寄存器分别连接到dp u l l p u s h 和 sp u l l p u s h 数据总线上,数据可以在这4 条总线上并行传输,具有很高的并行传 输能力。微引擎只能通过这些寄存器与其他的功能单元进行数据传输,而且只能 将数据写入写寄存器和从读寄存器中读数据; ) 1 2 8 个下一邻居寄存器0 q n r ) ,这是i n t e l 第二代微引擎的新特征,是向下一 相邻微引擎提供数据的高效传输通路,即微引擎问的通信机制。在指令中用作源, 向a l u 提供操作数;也可以作目的,但结果写入下一微引擎或本微引擎的n n r 。 另外,n n r 也可配置为环形缓冲区,代替可编程的寄存器; 6 4 0 个3 2 位字的局部存储器( i m l ,也是i n t e l 第二代微引擎的新特征,是微 引擎中的可寻址存储器,由程序控制进行独占的读写操作。每个线程都有两个l m 地址寄存器,访问l m 的指定位置时,必须通过l m 地址寄存器进行。l m 可作为 源向a l u 提供操作数,也可作为目的接收结果。通常用于存放相关的数据,以减 少访问片外r a m 的次数。 上述寄存器中,前三种都平均分配给每个线程使用,而l m 则是由所有线程 电子科技大学硕士学位论文 共享的。 2 2 4 微引擎指令 微引擎的指令集与许多r i s c 微处理器的相似,但有些指令是专为网络处理任 务而优化设计的,所有这些指令都能在一个微引擎时钟周期内完成。指令的特点 如下述: 计算指令能取一个或两个操作数,然后执行一个指定的操作,并可选择性地 回写其结果。指令的源、目的操作数可以来自g p r 、x f e r 、n n r 和l m 。可执行 的操作包括:移位、加减、逻辑运算、乘法、字节对齐和查找第一位( f f b ) 等。另 外,还可执行c a m ( 有关内容见3 2 5 1 操作,提高a l u 中查找数据的速度; 在一条逻辑运算指令中,能同时对其中的一个操作数执行移位操作。这种指 令常用在将两个操作数合并到一个寄存器中的情况; i o 指令用于读写网络处理器中的各种存储单元,如r b u f t b u f 、d r a m 、 s r a m 等。在i o 单元中,也有更高级的操作可用,如环形缓冲区操作、读一修改一 写原子操作和链队列操作等; 提供了专用指令用于在寄存器中插入字节,这对修改包头信息十分有用; 所提供的转移指令,能根据字节比较结果或位的设置清除,实现指令转移。 这对测试包头中的值或者状态标志十分有效。但这些指令不包括根据数值结果进 行操作的转移指令,如大于、小于等; 为减少因指令转移而浪费的时钟周期数,提供了相关的指令放在转移指令的 延迟时间片中,这样能继续执行数条已解码的指令; 为了加速乘法运算,采用了硬件支持的整数乘法,这样每条指令周期能消去 8 位操作数。因而对于较小的数值,如8 位或1 6 位的数,编译器能插入足够的周 期完成乘法; 对于c r c 运算,也提供了硬件支持的多个标准,每隔一个时钟周期就能完 成对3 2 位数的c r c 运算,并且可与a l u 并行操作。 1 4 第二章i n t e li x a 2 4 0 0 硬件体系结构 2 2 5 内容可寻址存储器( c a m ) i x p 2 4 0 0 中,c a m 有1 6 个入口,每个入口都可存储一个3 2 位的值。一个源 操作数可以与1 6 个入口的值并行比较。若查找结果为“不成功”,表明查找值不 在c a m 中;若结果为“成功”,则表明查找值在c a m 中。 c a m 常用于加速多路比较操作,也可用作高速缓存的标记存储器。这种情况 下,匹配的入口数值可用于索引与该值相关的数据,数据通常是存放在s r a m 或 l m 中。利用c a m ,可有效实现数据共享,减少访问s r a m 的次数,从而大大提 高了线程执行的速度,同时减少了存储带宽的消耗。 2 2 6 事件信号 微引擎还具有硬件支持的事件信号。线程可利用信号指明一些外部事件的发 生,当线程等待某一事件时,便进入“等待”状态。事件信号可以使一个线程从 “等待”状态转换到“就绪”状态,或者程序可以根据事件信号的状态进行测试 和转移。常用的事件包括i o 操作的完成和等待其它线程的信号。每个线程都有 1 5 个可用的事件信号,编译器能分配和调度这些信号。这些信号能支持许多事件 和独立的并行处理任务。如,一个线程可以起动一个i ,o 从r b u f 中读取包数据, 启动另一个f o 从空闲缓冲区表中分配一个缓冲区,再启动第三个f o 从任务表中 读取下一个任务。使用事件信号,可让这些i 0 操作并行执行,从而减轻了微引擎 的负担,使硬件得到简化,并增加了编程的灵活性。 2 2 7 寻址方式 对微引擎中的寄存器,可以采用不同的寻址方式。相对寻址方式的主要特征 是允许8 个不同的线程共享相同的微代码,但维护独立的数据寄存器,以避免一 个线程覆盖另一个线程的数据寄存器。绝对寻址则允许一个微引擎的不同线程可 以对任何一个g p r 进行读写,从而允许线程共享这些数据,如全局变量、传递的 参数等,以实现线程在内部的直接通信。索引寻址则允许线程共享x f e r 或n n r 电子科技大学硕士学位论文 中的数据,寄存器的位置只能从相关的索引寄存器( 如用于x f e r 的t _ i n d e x ,用 于n n r 的n np u t 和n n _ g e t ) r 取得。对g p r 可采用相对寻址和绝对寻址,这取 决于具体的指令。对x f e r 和n n r 可用相对寻址和索引寻址两种方式。而对l m 则只能用索引寻址方式。 2 2 8 特殊的硬件单元 在m e 中还有一些为优化性能而设计或引入的硬件单元,它们为m e 对数据 包的处理提供了很好的辅助作用,比较典型的主要有: c r c 单元:执行1 6 位或3 2 位的c r c 计算,为a t m ,e t h e r n e t 等二层协议提 供误码检测。 伪随机数产生器:产生伪随机数以用于拥塞控制等算法。 2 3l x p 2 4 0 0 的主要特性 从以上对i x p 2 4 0 0 的内部各单元的介绍,可以看出以其为代表的i n t e l 第二代 网络处理器具有以下硬件系统特性: ( 1 ) 采用多内核并行处理体系结构:将一个x s c a l e 微处理器和8 个独立的多线程 微引擎有机结合起来,构成并行处理资源,这些处理器可以共享所有系统资源, 如s r a m 、p c i 、s c r a t c h 等。采用多内核并行处理器结构。片内处理器按任务分为 核心处理器和数据分组协处理器。核心处理器通常负责非实时的管理任务;数据 分组处理器进行实时、线速数据分组处理。 ( 2 ) 采用硬件多线程技术:每个微引擎有8 个( 0 7 ) 线程,当一个线程在等待读取 数据时,可以进入“等待”状态,并允许同个微引擎内的其他线程运行。一个 微引擎上可运行8 个线程,因此8 个微引擎可同时处理6 4 个任务,从而有效地利 用微引擎的计算资源,避免因访问片外r a m 的时延而使流水线处于等待的状态。 这些线程是以硬件方式实现的,运行由软件控制,因而更具灵活性。同时,硬件 多线程技术使得每个线程都有一套专门的硬件来存放上下文( c o n t e x t ) ,可获得线程 切换的零开销。 1 6 第二章l n 试1 x a 2 4 0 0 硬件体系结构 ( 3 1 优化内存管理和分级存储器组织:网络处理器需要进行大量的数据分组的接 收、存储、复制、转发,内存操作成为系统开销的一大瓶颈。为解决这个问题, 通常需要采用一些内存优化管理技术,对数据进行分类存储。i x p 2 4 0 0 中有3 种内 存资源可由各处理器共享使用,它们是:s r a m ,d 黜蝴和s c r a t c h 。这些内存在 延迟、空间和带宽方面各有不同,其操作也是独立的。可以根据应用的特点使用 其中的每一种。比如,d r a m 具有很高的带宽,适合用作包缓冲区;s r a m 具有 较低的延迟,适合用来存储各种查找表。s c r a t c h 作为i x p 2 4 0 0 的内部存储器,其 容量很小,但具有非常低的延迟,通常用于线程间的通信,存放共享的信号量、 参数等。x s c a l e 和微引擎可分布访问这三种存储资源,因而能实现更高的并行访 存操作,减少访存瓶颈的发生。 此外,s r a m 和d r a m 控制器中都创建了许多硬件队列和优化逻辑,从而允 许6 4 个微引擎线程和x s c a l e 对内存单元进行有效的读写,并允许按优先级执行读 写请求。为减少对存储器的访问次数,微引擎中还引入了1 6 入口的c a m 硬件查 找机制,结合局部存储器实现了对访存时延的隐藏。这些有效的内存优化机制都 是通过硬件实现的,但必须由程序员在指令级上进行控制。 ( 4 ) 在总线结构上,除控制总线外,还采用4 类不同的数据总线,即dp u l l 、dp u s h

温馨提示

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

评论

0/150

提交评论