




已阅读5页,还剩73页未读, 继续免费阅读
(微电子学与固体电子学专业论文)网络数据处理器验证技术.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 网络处理器技术是一项很有发展前景的处理器技术,它将为未来的i n t e m e t 网 络设备提供高性能和高灵活性的解决方案,形成开放的网络系统硬件平台。网络 数据处理器是网络处理器的重要组成部分。它用于网络通信中的分组处理,包含 了多个3 2 位可编程的r i s c 处理器,支持一组r i s c 指令集。对它的研究和验证 有着非常重要的意义和实用价值。 本文先从结构上分析了网络数据处理器的构成,各个模块的功能和作用,以 及各个模块之间的通信方式。紧接着说明了验证的概念,总结了几种验证方法以 及提高验证效率的手段,比较了其优劣性,并提出了本文所使用的验证策略。 文章中采用了基于指令集的验证方法,通过对网络数据处理器自有指令系统 的分析,将指令按照不同的功能和侧重点分为5 大类,分别用来验证不同的模块 和功能点。通过对结果的观察,基本达到了验证的要求,且从前仿到综合完成了 多次验证,确保了其功能正确和性能的完善。从而确定了网络数据处理器设计工 作的正确性,进而为网络处理器的广泛应用提供了保证。 关键字:网络数据处理器验证指令集 a b s t r a c t a b s t r a c t n e t w o r kp r o c e s s o rt e c h n o l o g yi sap r o m i s i n gp r o c e s s o rt e c h n o l o g y , w h i c hw i l lb ea h i g h p e r f o r m a n c ea n dh i g h l yf l e x i b l es o l u t i o nf o r t h ef u t u r ei n t e r n e tn e t w o r ke q u i p m e n t , b e c o m e sao p e nn e t w o r kh a r d w a r ep l a t f o r m n e t w o r kd a t an e t w o r kp r o c e s s o ri sa n i m p o r t a n tp a r to f t h en e t w o r kp r o c e s s o r i ti su s e df o rn e t w o r kc o m m u n i c a t i o no f p a c k e t p r o c e s s i n g ,i tc o n t a i n ss i x3 2 - b i tp r o g r a m m a b l er i s cp r o c e s s o r s ,s u p p o r tf o r3 2 一b i t r i s ci n s t r u c t i o ns e t r e s e a r c ha n dv e r i f yi th a sav e r yi m p o r t a n ts i g n i f i c a n c ea n d p r a c t i c a lv a l u e t h i sa r t i c l ef i r s te x p o u n d e dt h es t r u c t u r eo f n e t w o r kd a t ap r o c e s s o r s ,a n dp o i n t e do u t t h ew a y t h e yc o m m u n i c a t ew i t he a c ho t h e r s u m m i n gu ps e v e r a lv e r i f i c a t i o nm e t h o d s a n dt h ew a y st oi m p r o v et h ee f f i c i e n c yo fv e r i f i c a t i o n ,c o m p a r e st h e i ra d v a n t a g e sa n d d i s a d v a n t a g e s ,a n dm a d eu s eo ft h i sa r t i c l ev e r i f i c a t i o ns t r a t e g y t h i sa r t i c l eu s e dt h e i n s t r u c t i o ns e t b a s e dv e r i f i c a t i o nm e t h o d ,ia n a l y s i s e d i n s t r c t i o ns y s t e mi nn e t w o r kd a t ap r o c e s s o r , a n dd i v i d e di n t of i v ep a r t sb yd i f f e r e n t f u n c t i o n sa n di m p o r t a n c e ,u s ei tt ov e r i f yt h em o d u l e so fn e t w o r kd a t ap r o c e s s o r b yt h e r e s u l t so fo b s e r v a t i o n ,b a s i c a l l yr e a c h e dt h er e q u i r e m e n t so fv e r i f i c a t i o n ,a n dia l s od oi t a f t e rs y n t h e s i sa n dp & r ,t oe n s u r et h a ti t sf i m c t i o n sp r o p e r l ya n di m p r o v ep e r f o r m a n c e g u a r a n t e et h ec o r r e c t n e s so ft h en e t w o r kd a t ap r o c e s s o rd e s i g nw o r k ,t h u st h ee x t e n s i v e a p p l i c a t i o no fn e t w o r kp r o c e s s o r sp r o v i d e ag u a r a n t e e k e y w o r d s :n e t w o r kd a t ap r o c e s s o r , v e r i f i c a t i o n ,i n s t r u c t i o ns e t 西安电子科技大学 学位论文独创性( 或创新性) 声明 秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在导 师指导下进行的研究t 作及取得的研究成果。尽我所知,除了文t l ,特别加以标注 和致谢- i 一所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果; 也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使j f j 过的材 料。与我同t 作的同志对本研究所做的仟何贡献均已在论文一i - 做了明确的说明 并表示了谢意。 申请学位论文与资料若有不实之处,本人承担切的法律责任。 本人签名: 日期 西安电子科技大学 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使朋学位论文的规定,即:研究生 在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保留 送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内容, 可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后结合 学位论文研究课题再攥写的文章一律署名单位为西安电子科技大学。 ( 保密的论文在解密后遵守此规定) 本学位论文属于保密,在一年解密后适厂j 本授权书。 本人签名: 导帅签 日期 日期 lo 第一章引言 第一章引言 1 1 网络处理器概述 因特网的迅速发展和推广使人们对它提出不断增长带宽和复杂服务的需求。 未来的网络不仅需要更大的带宽,还要求它能不断增加新的服务。各个企业和事 业团体不断地更新它们的网络,在他们的网络中增加专门的服务功能以及带宽管 理功能。这种复杂服务功能的例子包括数据包调度以提供i p 上的区分服务质量 ( q o s ) ,在公共网络上提供安全通信,在多个服务器之间平衡传输流量负载,测 量数据流量以确定网络流量模式及网络攻击行为( 入侵检测) ,以及音频视频数据 流的多点传送和交互式视频会议等。总之,这些增值服务要求整个网络基础设施 具有更强的智能,以支持基本的交换和路由。 问题在于:如果现有的因特网有足够的功能支持所有可能的应用,那么,为 什么还要考虑新系统的设计呢? 换句话说,人们为什么对体系结构和基础设施感 兴趣? 其答案就是因特网的扩展和增长:尽管现有的因特网允许任意的应用相互 通信,但其性能不一定是最佳的。而且更进一步的扩展也未必可行为提高性 能和适应网络流量的增加需要改变基础设施和体系结构。例如,如果要i p 电话工 作的很好,就要求低时延,否则用户将会抱怨。但是,低时延只能通过改进底层 的基础设施减少阻塞来实现。 为了能有效的处理这些应用业务,网络就得支持新的协议和利用新的技术。 比如新的网络设备需要支持差分服务【1 】( d i f f e :r e n t i a t e ds e r v i c e s ) 、流量工程t e 、主 动网技术。此外,新设备要能支持各种网络管理功能。这些要求说明,在要求网 络设备有很高的吞吐量的同时,还需要它有一定的灵活性去支持新的协议与应用。 另外,网络设备变化带来的各种解决方案就要尽可能快的面世。这些网络技术的 发展趋势表现在: 更高的带宽:o c 1 9 2 1 2 1 已用于骨干网中,o c 7 6 8 2 】正在发展,o c 一4 8 【2 1 已 推广到接入端; 更强的功能:更复杂、更具深度的分组处理。例如,具有u r l 交换功能 p j 、安全处理功能和记账功能等; 可编程性:增加新功能,适应协议更新。 现在,传统的网络应用都是基于现场可编程门阵列f p g a ( f i e l dp r o g r a m m a b l e g a t ea r r a y s ) 来实现较低层的处理,而通过通用处理器g p p 4 1 ( g e n e r a lp u r p o s e p r o c e s s o r s ) 来实现高层的处理,这两种解决方案中的任意一种都无法满足网络处理 的各种要求。对此人们提出了各种办法,我们来看一下当前出现的这种办法f 4 l : 2 网络数据处理器验证技术 a s i c ( 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 p ( a p p l i c a t i o ns p e c i f i ci n s t r u c t i o np r o c e s s o r ) 专用指令处理器解决方案 这是一种专门为特定应用领域设计的指令集处理器方案; 协处理器( c o p r o c e s s o r ) 方案协处理器实质上也是一种硬件,但是与a s i c 不同的是,他有一定的接口编程能力; f p g a 方案这是一种可在门级进行在配置编程的设备; g p p ( g e n e r a lp u r p o s ep r o c e s s o r ) 方案 这是一种实现通用目的的可完全编 程的处理器解决方案。 灵 活 性 性能 图1 1系统应用范围示意图1 5 1 图1 1 将这些方案类型根据性能与灵活性指标分成几类。正如图中所示,a s i c 是尽可能使用硬件,基本上没有什么灵活性,但却能够提供最优的性能;作为另 一对立面,g p p 具有最大的灵活性,但性能也最低:f p g a 提供的解决办法比较有 效,那就是在缺少a s i p 或协处理器的情况下,他们的综合性能要高于g p p 或a s i c 。 表1 1 系统应用比较5 i 灵活性性能 t t mp o w e r 每部分费用 开发费用 集成费用 ( i nv o l u m e ) a s l c最小最高最长最低 较低 较低 无 a s l p 较人中等较短中等较高较高较高 c 0 p r o c 较小较高较长较低中等中等较低 f p g a中等较低中等最高最高最高最高 g p p 最大最低最短较高最低最高中等 我们在表1 1 中给出了这些系统应用的进一步比较。从这些比较中可以清晰的 看出:a s i p 在绝大多数网络系统应用中都是一种最好的解决办法。一个为网络设 第一章引言 3 计的a s i p ,事实上也就是现在所称的网络处理器n p ( n e t w o r kp r o c e s s o r ) ,充分体 现了硬件与软件的平衡,并满足了前面所提到的网络发展的所有要求,即: 性能通过在硬件中执行关键的可计算核,n p 能在线速度下满足许多 应用的性能要求; 灵活性叫p 的软件系统是其重要的系统组成部分,这样通过校正软件, 可以很灵活的适应协议标准和应用的变化; 更快的t t m ( t i m e t o m a r k e t ) 与设计同功能的硬件系统相比,设计软 件在设计时间与设计售价上都要少很多; 功耗_ n p 可能不被嵌入到能耗敏感的设备中,比如手提设备,因此他 们的功耗更多的需要考虑的是售价的原因,比如说封装。 网络处理器n p 是系统设计从全定制专用集成电路设计转向可编程应用系统 设计中出现的产物。在网络通信应用的很多领域的大量趋势表明,通信系统的设 计在采用a s i c 系统存在很多困难,这主要体现在: 深亚微米d s m ( d e e ps u b m i c r o n ) 效应加剧了电路设计的困难性; 大量的片上设备的指数增长; 片上不同设备单元的增长; 缩短硎的要求。 以上这些因素的组合压力导致系统应用设计更多的朝可编程性解决方案方向 考虑。网络处理器的概念从提出到现在仅两三年的时间就受到如此广泛的注视并 出现爆炸性的增长,充分说明了系统设计可编程性的需求之旺。 在十几个月前,还仅有少数的几家单位在开发网络处理器,其中只有m m c 一家有产品( m m cn e t w o r k s ) 。但是现在,几乎每个月都会有新的网络处理器的 出现。在试图减轻带宽瓶颈的强烈需求下,出现了大量的n p 解决方案。这些方案 在微系统结构、结构复杂性和存储结构、软件支持和物理应用上都有相当程度的 不同。 网络处理器( n e t w o r kp r o c e s s o l n p ) 是为网络应用领域设计的专用指令处理器 a s i p ,a s i p 具有自己的结构特征和专门的电路设计以适用于网路分组处理,同时 他又是一块软件可编程的芯片。具体定义如下。 n p 是具有以下功能的i c : 它具有软件可编程能力; 它是对分组处理流程的优化,以满足线处理要求; 他可以接管很多原来主c p u 完成的控制与管理功能。 虽然网络处理器n p 并不能解决网络应用中遇到的所有问题,但他已解决了绝 大部分我们最关心的难点,并且已在网络发展中占据了相当高的位置。我们的定 义只是概括性的反映了n p 网络处理器可编程性结构方面的特点。无论怎样,网络 4 网络数据处理器验证技术 处理器n p 在不同应用中都具有下面一些应用选择上的共性1 5 j : 网络协处理器; 用于网络特定应用中的通信处理器; 进行路由选择的可编程状态机; 可重配置的交换结构( r e c o n f i g u r a b l ef a b r i c s ) ; 专用于路由计算的g p p 。 图1 2 网络处理器的应用解析空间示意5 1 。 本文描述的网络数据处理器属于网络处理器的一部分,并且侧重于这部分的 验证工作。下面简单介绍一下验证。 1 2 i 验证的概念 1 2 集成电路设计的验证 验证是一个证明设计思路如何实现的过程。测试平刨6 j ( t e s t b e n c h ) 通常指一 段仿真代码,测试平台为设计提供输入信号,并监视设计的输出信号1 7 j 。这个系统 是一个完全封闭的系统:系统没有来自外部的输入信号,也没有输出信号。测试 平台是系统的控制核心瞵j 。验证的任务就是确定产生什么样的输入模式,以及期望 的设计输出。 由于设计越来越复杂,往往达到了数百万门的a s i c ,或者是可复用的知识产 权( i p ) 等等,验证占到了设计工作量的7 0 1 8 1 。验证的工作量巨大,因此通过并 行化、更高层次的抽象和自动化来缩短验证需要的时间就显得非常必要【9 l 。在本文 描述的验证过程中,主要采取了自动化的方法来缩短验证所需的时间。自动化可 以让我们在机器自主地、快速地完成任务的同时做别的事情,得到可预测的结果 i l o l 。自动化需要编写定义好输入和输出的标准进程,但也并不是所有的过程都可 以自动化的。 传统的集成电路( a s i c 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 ) 验证具有以下特 第一章引言 5 占i l ij 、 1 直接验证。在规模较小的情况下可以获得很高的验证效率; 2 模块级验证。由于功能单一,不需要严格的功能覆盖分析,主要的验证评 估来自于代码覆盖; 3 完整的验证平台,包括h d l ,p e r l ,c 等混合语言。通过混合语言的编 程技术可以实现较简单的随机化测试和自动检查功能,复杂的随机化测试 和自动检查功能需要大量的编程工作。 1 2 2 验证的方法 关于验证的方法有很多,迄今的验证方法可分为模拟、仿真和形式验证三种 1 1 2 | 1 、模拟验证1 1 3 j 模拟验证是将激励信号施加于设计,进行计算并观察输出结果,并判断该结 果是否与预期一致。模拟验证是传统的验证方法,而且目前仍然是主流的验证方 法。但它只能证明有错而不能证明无错。因此,模拟一般适用于在验证初期发现 大量和明显的设计错误,而难以胜任复杂和微妙的错误。模拟验证还严重依赖于 测试向量的选取,而合理而充分地选取测试向量,达到高覆盖率是一个十分艰巨 的课题。由于设计者不能预测所有错误的可能模式,所以尚未发现某个最好的覆 盖率度量。即使选定了某个覆盖率度量,验证时间也是一个瓶颈。 2 、仿真验证 从电路的描述抽象出模型,然后将外部激励信号或数据施加到此模式中,通 过观察该模型在外部激励信号作用下的反应来判断该电子系统是否达到了设计目 标。仿真的方法【1 4 】是目前进行设计时常用的方法,根据不同的仿真层次,有不同 的仿真工具。仿真比模拟的验证速度快得多,但同时它的代价昂贵,灵活性差。 3 、形式验证 形式化验证是不同于仿真方法的对逻辑设计结果进行的另一种验证方法1 1 5 1 。 在自上而下的设计过程中,在设计的各个阶段和级别,每一级设计都是以上一级 的设计作为设计目标,得到本级的设计结果的结构描述,这是设计和综合的过程。 它能够完全断定设计的正确性。但由于首先要对原始设计进行模型抽取,这对使 用者有数学技能和经验上的要求。而且,有的工具需要人工引导( 如定理证明) ,有 的工具存在状态空间爆炸问题【怕1 ( 如模型检验) 。 类型: 1 、等价性检验 它是用数学方法验证参考设计与修改设计之间的等价性i l 。利用等价性验证 6 网络数据处理器验证技术 工具可对这两种设计方案进行彻底的检验以保证它们在所有可能的条件下都有一 样的性能。还可利用等价性验证来验证不同的r t l 或门级实施方案的等价性。从 整个数字系统的设计流程看,等价性问题几乎存在于每个上下相邻的设计层次中。 2 、定理证明技术。 运用公理和已经证明的定理证明电路的描述是正确的。 这两种方法各有特点,其中定理证明虽然能够给出设计是否正确的一个确切 的回答,但由于涉及很多数学推理方面的知识,这就要求用户有很强的数学功底, 这也是这种方法不能推广的一个原因。而等价性验证是验证不同阶段的设计是否 相互等价的一个很好的方法。一个s o c 设计是分为多个阶段进行的,那么下一个 阶段的与上一个阶段的等价是设计正确的一个保证。 1 2 3 提高验证效率的方法 l 、模块级( b l o c kl e v e l ) 验h t1 1 8 】是提高验证效率的基础 全芯片的系统级验证对设计有着非常重要的意义,它保证了整体功能的基本 正确,并可进行一定的软硬件协同仿真。但是与传统的a s i c 设计相比,在设计中 更需要进行完整的模块级验证,原因如下: 系统级验证只有在整体设计基本完成之后才能进行,而模块级验证可以和 设计并行,可有效地提高模块的设计质量; 设计工程师对设计模块有比较透彻的了解,可以很快分析和定位设计缺陷 ( b u g ) 。当模块级的b u g 带入到系统级后,b u g 分析和定位的复杂性大大增 加; 高质量的设计模块可以更容易地在其他设计中进行重用; 断言( a s s e r t i o n ) 和形式验 正( m o d e lc h e c k ) 技术可以在没有完备测试激励的 情况下帮助设计工程师发现潜在的模块设计缺陷i l 引。形式验证技术在短期 内还难以应用到超大规模系统验证。 2 、利用断言和形式验证技术可以提高验证的质量 断言技术【2 0 j 可以让设计工程师和验证工程师清晰、简洁地描述设计的属性和 功能,还可以帮助他们在仿真中准确、快速地定位设计缺陷。更重要的是,断言 允许利用形式验证工具在没有测试向量的情况下完备地验证设计模块,发现潜在 设计缺陷,进而大大地提高验证质量。因此,断言技术在设计中得到了越来越广 泛的应用。常用的断言设计语言包括1 2 1 1 :s y s t e mv e r i l o ga s s e r t i o n ( s v a ) ,o p e nv e r a a s s e r t i o n ( o v a ) 等。在s o c 设计中,可将电路模块功能的断言描述加入仿真平台来 实时监测仿真结果。仿真工具可以对所有的断言进行统计得到断言覆盖结果 ( a s s e r t i o nc o v e r a g e ) 。断言库1 2 2 1 ( a s s e r t i o nl i b r a r y ) 的应用为设计工程师使用断言技 第一章引言 7 术提供了极大的便利,它实现了一些常用的设计属性,设计工程师可以直接在设计 中引用。 由于运算资源的限制,纯形式验证工具不能处理较大规模的设计。但内嵌了 仿真引擎和形式验证引擎的混合形式验证可以弥补上述限制,同时还可以在综合 之前就提示设计师潜在的仿真和综合之间的不匹配( m i s m a t c h ) 问题。 3 、f a r m 技术【2 3 1 和覆盖率分析的作用 验证对软件资源( 1 i c e n s e ) 和硬件资源的需求非常大,利用f a r m 技术可以有效 提升资源的利用率。在f a r m 的基础上,工程师可以在同样的时间内进行更多的仿 真,从而进行更充分的模块级验证。而且仿真工具所提供的对来自不同仿真结果 的覆盖率进行合并、分级( a u t o g r a d i n g ) 分析的功能也使工程师有可能建立并行的测 试环境,对模块进行验证。 除了代码覆盖分析以外,功能覆盖在验证中也具有重要的意义。功能覆盖包 括两部分:一是设计的功能覆盖,通常使用断言技术实现;二是测试的功能覆盖, 依赖于验证语言和工具。功能覆盖和传统的代码覆盖一样,也需要进行覆盖率的 合并和分级分析,这样经过大量的并行仿真,可以得到对整个功能覆盖的分析结 果。测试平台可以将功能覆盖率的结果反馈到随机测试激励生成,从而高效率地 达到功能覆盖率的要求。 4 、基于随机测试激励的方法【2 4 j 提升设计的功能验证覆盖率 对于设计,直接验证技术已经很难达到比较完备的功能验证覆盖。这是由于 大规模包含的功能模块比传统的a s i c 多且复杂,同时电路设计越来越平台化,实 质上更接近于应用处理器。但是,基于设计的应用却具有多样性,这样设计者很难 在验证时完备地考虑到所需的功能测试。正是出于这样的考虑,基于约束的随机 测试激励的方法几乎在所有的设计中得到应用。 约束对于高效率的随机测试激励测试环境具有至关重要的意义【2 引。带约束的 随机测试激励能在合法的测试空间内产生各种测试数据,这对验证有很大的益处。 本文的验证方法综合了模拟验证和仿真验证的特点,同时由于条件的限制, 并没有使用断言或随机测试的方法来加速验证速度,而是根据本文需验证模块的 特点采取了基于指令集的验证方法,并在测试平台中加入一些自动化技术来缩短 验证时间。 1 3 论文的内容和结构 本文第一章首先简单分析了一下网络处理器和验证的基本概念以及本文使用 的验证方法,第二章着重归纳数据处理器的体系结构特点,使读者对本文的验证 对象有一个较全面的认识。在第三章中,则侧重于讲解验证平台的架构,第四章 8 网络数据处理器验证技术 具体说明了验证过程以及验证结果,第五章总结本文的成果和不足之处。 1 4 本章小结 在本章中,着重描述了网络处理器出现的背景,网络应用发展的现状以及需 求。然后提到了实现网络处理器的几种方式:g p p 、f p g a 、a s i p 、c o p r o c 、a s i c 。 并比较了这几种实现方式的优缺点。指出了在兼顾了软件与硬件,功能与速度, 灵活性与投片速度地要求下,本文所采取的a s i p 实现方式的优点。 随后阐述了验证的概念,验证的作用以及重要性,归纳了验证方法的几种形 式,其中包括了:模拟验证,仿真验证,形式验证。以及各种方法的功能,特点 和优缺点。同时指出了提高验证效率的几种方法:模块级验证,利用断言和形式 验证技术,f a r m 技术和覆盖率分析,基于随机测试激励的方法。每一种方法的适 用范围,功能特点,以及局限处。在这些特点之后,指出本文采用的自动化验证 方法。 第一二章网络数据处理器的体系结构 9 第二章网络数据处理器的体系结构 x d n p 网络处理器是一种高度集成的网络设备,它提供高性能并行处理能力, 适用于各种网络系统。作为数据控制单元特别适用于需要访问快速存储子系统及 诸如网络m a c 设备的i o 设备等系统应用中,能够实现比特( b i t ) 、字节( b y t e ) 、 字( w o r d ) 和长字( 1 0 n g w o r d ) 级数据的高速处理。 x d n p 集成了类a r m 处理器和6 个独立的3 2 比特的刚s c 网络数据处理器, 加上硬件的多线程支持,可达到较高的总体运行性能。网络数据处理器强大的数 据处理能力能够完成高速a s i c 芯片所实现的任务。在l a n 交换应用中,6 个网 络数据处理器在网络层上能够完成每秒3 0 0 万数据包的处理。类a r m 处理器能够 完成诸如地址学习、创建和维护转发表级网管能复杂任务。 2 1 网络数据处理器的功能特点 6 个3 2 比特多线程的r i s c 网络数据处理器可以独立的实现数据的处理和转 发,用于网络通信中的分组处理。每一个为网络数据处理器拥有4 个独立的程序 计数器( p r o g r a mc o u n t e r ) ,单个时钟周期即可完成a l u 和移位操作。零开销的上 下文切换和硬件信号量机制确保了每一个网络数据处理器都能得到充分利用。指 令集为网络和通信应用的需要特别提供b i t ,b y t e ,w o r d 和l o n g w o r d 的操作,为快 速、高效地转发数据提供了保证。每个网络数据处理器都包含了大量的局部存储 空间和寄存器:为程序运行提供的4 k 字节( 1 0 2 4 3 2 比特) 的高速r a m 控存、 1 2 8 个3 2 比特的通用目的寄存器( g p r ) 和1 2 8 个服务于s r a m 2 6 1 和s d r a m 2 6 】 单元的传输寄存器( t r a n s f e rr e g i s t e r ) 。网络数据处理器以类a r m 核的工作频率 运行。 网络数据处理器包含6 个3 2 比特可编程的r i s c 处理器1 2 引,这些处理器与通 常意义上的微处理器在特性上有所不同,在这里称他们为网络数据处理器,网络 数据处理器支持3 2 比特的r i s c 指令集,特别适合应用于网络通讯。网络数据处 理器的工作频率与x d n p 核的频率相同,每条指令的执行时间为一个时钟周期。 由于具有自己的指令系统,数据处理器的软件是可更新的,使得构成的路由器等 网络系统是可编程,因此使得路由器能够适应未来网络协议的发展和业务应用的 发展。 网络数据处理器有下列特点: 每个网络数据处理器支持4 个线程; 可编程的1 k 字节指令存储区; 1 2 8 个3 2 比特的通用寄存器 l o 网络数据处理器验证技术 1 2 8 个3 2 比特的传输寄存器; 功能强大的逻辑运算单元和移位器。 网络数据处理器采用硬件支持多线程方式,每个网络数据处理器运行4 个独 立的线程。这4 个线程在运行时间上共享一个网络数据处理器,在任意时刻,网 络数据处理器上只能运行其中一个线程,4 个线程之间通过线程切换1 2 w ( s w i t c h c o n t e x t ) 来分配网络数据处理器的运行时间。当其中某个线程不运行时,他的运 行状态可以通过独立的程序指针、信号时间状态及相关的寄存器( 包括g p r 和传 输寄存器) 在硬件中保留下来;当某个线程进入休眠状态( s l e e p ) 时,线程切换 使另一个线程开始运行,线程切换的时间最多为一个时钟周期。 当某个线程进入休眠状态时,线程切换依靠仲裁逻辑判断允许那个线程进入 运行状态。仲裁器根据其他功能单元的信号( s i g n a l ) 或事件( e v e n t ) 作出判断。 2 2 网络数据处理器基本结构 1 、微代码存储 图2 1网络数据处理器架构图 第二章网络数据处理器的体系结构 每个网络数据处理器有独立的微代码程序存储区,4 个线程的代码共享这个存 储区。存储区的空间为1 0 2 4x 3 2 比特,最多支持1 k 条微码指令,在系统初始化 时由类a r m 核将微码程序写入微代码程序存储区。 2 、通用寄存器 每个网络数据处理器支持1 2 8 个3 2 比特的通用寄存器g p r 。g p r 可以用相对 寻址和绝对寻址方式访问。相对寻址在网络数据处理器的4 个线程间分配g p r , 每个线程拥有自己专用的一组g p r ( 最多3 2 个) ,线程不能访问其他线程相对寻 址方式的g p r ;绝对寻址使一个g p r 在网络数据处理器的4 个线程间共享,线程 间可以通过绝对寻址方式的g p r 传递信息。 3 、传输寄存器 网络数据处理器与其他单元交换数据要通过传输寄存器完成。每个网络数据 处理器支持1 2 8 个3 2 比特的传输寄存器。传输寄存器分为3 2 个s r a m 读,3 2 个 s r a m 写,3 2 个s d r a m 读和3 2 个s d r a m 写传输寄存器,每种传输寄存器通 过专用的3 2 比特数据总线连接x d n p 中其他的功能单元。s d r a m 传输寄存器在 s d r a m 和网络数据处理器之间传递数据,s r a m 传输寄存器在s r a m 单元或f b i 单元和网络数据处理器之间传递数据。 传输寄存器的寻址也有相对寻址和绝对寻址两种方式。相对寻址方式在网络 数据处理器的4 个线程间分配传输寄存器,每个线程拥有自己专用的传输寄存器 ( 8 个s r a m 读,8 个s r a m 写,8 个s d r a m 读,8 个s d r a m 写) ;绝对寻址 方式使传输寄存器在网络数据处理器的线程间共享。 4 、逻辑运算单元【3 0 j ( a l u ) 和移位器( s h i r e r ) 网络数据处理器的a l u 和移位器功能强大,可以在一个时钟周期内完成a l u 和移位的操作。a l u 单元有两个输入( a 和b ) ,输入的数据来自s r a m f b i 读传 输寄存器、s d r a m 读传输寄存器、g p r 或者指令中的立即数。a l u 可以实现加 法、减法和逻辑操作,并根据操作结果产生符号( s i g n ) 、零指示( z e r o ) 、进位( c a r r y o u t ) 等条件码。 5 、命令总线仲裁 x d n p 的网络数据处理器通过命令总线向其他功能单元( s r a m ,s d r a m , f b i ,p c i ) 发出命令,6 个网络数据处理器共享命令总线。当网络数据处理器的线 程执行一条命令指令时,命令存放于网络数据处理器中两个条目的命令f i f o 中, 命令总线仲裁器在6 个网络数据处理器间作仲裁,以确定哪个命令f i f o 中的指令 可以送到共享命令总纠引j 上。 6 、本地c s r 每个网络数据处理器有一组控制状态寄存器【3 2 1 ( c s r ) ,类a r m 核通过访问 c s r 可以实现微码的存储,并在调试中获得控制和状态信息。网络数据处理器只 1 2 网络数据处理器验证技术 能访问自己本地的c s r ( u s t o r e a d d r e s s ,u s t o r e d a t a 和a l u - o u t p u t 寄存器除外) ,访问本地c s r 的微码指令为l o c a l c s r - r d 和l o c a l c s r - w r 。 2 3 1 执行流水线 2 3 网络数据处理器的运行状态 网络数据处理器微码指令流水线【3 3 1 包括5 个操作步骤。流水线操作指令在若 干个执行子部件中实现,而每个执行子部件执行的只是整条指令中的某一部分操 作。流水线的若干个执行子部件按照指令执行的先后各自完成自己的操作,整条 指令的流水线操作也就完成了,下表列出了微码流水线的5 个操作步骤。 表2 1 微码流水线操作步骤 流水线阶段描述 p o读取指令 p l 指令译码,源寄存器地址格式 p 2 从源寄存器读取操作数 p 3执行a l u ,移位,比较操作,并产生条件吗 p 4将结果写入目的寄存器 只要流水线有指令执行,每条微码指令都会在一个时钟周期内完成。当某些 指令,例如分支、跳转和进程切换引起程序转移时,流水线上某些指令会被丢弃, 从而降低了网络数据处理器的执行效率。 转移判断指令可能引起流水线中的一条或者多条指令被丢弃。为了减少或者 消除丢弃指令而浪费的指令周期,提高网络数据处理器的执行效率,x d n p 提供 了3 种机制,分别是:延迟分支p 4 。( d e f e r r e db r a n c h e s ) 、提前设置条件码( s e t t i n g c o n d i t i o nc o d e se a r l i e r ) 和分支预测( b r a n c hg u e s s i n g ) 。 2 3 2 执行状态 网络数据处理器有四个执行状态,下图显示了网络数据处理器的执行状态和 状态间的转移。 第二章网络数据处理器的体系结构 1 3 图2 2 网络数据处理器执行状态 1 、复位状态 当系统复位时,所有的网络数据处理器都自动地处于复位状态,类a r m 核和 p c i 模块可以通过修改寄存器x d n p r e s e t 单独复位任意一个网络数据处理器。 当网络数据处理器处于复位状态时,不执行指令,清除命令f i f o ,数据处理器的 状态命令寄存器c s r 中的某些位也被设置为初始值,控制存储器、g p r 和传输寄 存器的内容都不确定。 2 、停止状态 网络数据处理器离开复位状态后,就进入停止状态。网络数据处理器保持复 位时的状态,但是类a r m 可以对本地c s r 和控制存储器和传输寄存器进行读写 操作。由于复位状态禁止了4 个线程的运行( 通过c t x e n a b l e s 寄存器清零) , 因此在停止状态网络数据处理器也不执行任何微码指令。 3 、运行状态 当网络数据处理器不处于复位状态,并且它的一个或者多个进程被使能时( 通 过使能c t x e n a b l e s 寄存器) ,网络数据处理器就进入运行状态。类a r m 核可 以使网络数据处理器从停止状态或者暂停状态进入运行状态。 在类a r m 核使网络数据处理器从停止状态进入运行状态之前,必须先初始化 本地c s r ,并对微码存储区编程。下面列出了网络数据处理器从复位状态进入运 行状态的基本操作: 对微码存储区编程; 置位a c t i v e c t x s t s 寄存器中相应的线程号,激活初始运行的线程( 通 常是线程0 ) ; 置位c t x a r b c n t l 寄存器中下一个线程号,允许下一个线程运行( 通 常是线程1 ) ; 置位c t x e n a b l e s 寄存器,允许需要线程开始运行。 当类a r m 核使网络数据处理器从暂停状态进入运行状态时,网络数据处 理器的本地c s r 、微码存储区、g p r 和传输寄存器都应处于确定的状态, 1 4 网络数据处理器验证技术 通过设置c t x e n a b l e 寄存器使能相应的线程,即可使网络数据处理器 进入运行状态。 4 、暂停状态 当网络数据处理器处于运行状态时,通过c t x e n a b l e 寄存器禁止所有线程 运行,网络数据处理器就进入暂停状态。网络数据处理器中正在执行的线程还会 继续运行,直到执行一条线程切换的指令为止。由于禁止了所有的线程,网络数 据处理器停止运行,所有本地c s r 、微码存储区、g p r 和传输寄存器的状态都保 留下来。当类a r m 核禁止所有线程后,通过查询a c t i v e c t x - s t s 寄存器,可 以确定网络数据处理器何时进行线程切换并且进入暂停状态。 类a r m 核或网络数据处理器自己都可以将网络数据处理器置于暂停状态,但 是网络数据处理器不能将其他网络数据处理器置于暂停状态。网络数据处理器利 用l o c a l c s r - w r 指令来设置c t x e n a b l e s 寄存器,可以使网络数据处理器自身进 入暂停状态。类a r m 核通过使能c t x e n a b l e s 寄存器使网络数据处理器离开 暂停状态。 当网络数据处理器处于暂停状态时,本地c s r 记录了上一个线程,当前线程 和下一个线程。当前激活线程处于暂停状态,上一个线程是指在激活线程前运行 的线程,下一个线程是指激活线程后将运行的线程。a c t i v e a r b c n t l 寄存器 和a c t i v e c t x s t s 寄存器指示了这些线程。 2 3 3 网络数据处理器编程 网络数据处理器有自己的指令系统。它的指令主要对寄存器组中的数据进行 操作。系统初始化时,类a r m 核对微码存储区编程。使用程序下载器( p r o g r a m l o a d e r ) 对微码存储区编程。程序下载器是一个c 功能库,将程序映像从一个目标 文件( 由x d n p 编译器产生) 下载到微码程序区,利用应用共享符号指针修改映 像,并初始化网络数据处理器的寄存器。 如果不采用程序下载器下载微码程序,可以按照下列步骤由类a r m 将微码程 序写入微码存储区: 1 将网络数据处理器至于复位和暂停状态; 2 将微码存储区的地址写入u s t o r e a d d r e s s 寄存器,注意,此时c o n t r o l s t o r ee n a b l e ( c s r ) 比特应置位; 3 将微码指令写入u s t o r e d a r a 本地c s r ; 4 读u s t o r e d a t a 本地c s r ,返回当前微码存储地址中的微码指令; 5 重复步骤( 2 ) 步骤( 3 ) ,实现整个微码编程。 网络数据处理器c t x n s t s 本地c s r 中的c t x p c 字段指示了网络数据处 第一二章网络数据处理器的体系结构 理器每个线程起始执行的地址。当网络数据处理器处于复位状态时,c t x p c 的值 不定,因此在网络数据处理器离开复位状态之前,类a r m 核必须对c t x p c 赋值, 以保证线程从一个确定的地址开始执行微码i j 引。 当网络数据处理器中的线程执行不同的微码程序时,可以用b r = c t x 或b r ! = c t x 启动微码程序的执行。例如下面的代码是微码存储区的前3 条指令,使网络数据 处理器的3 个线程跳转到程序存储区的不同地址,执行不同的微码程序: b r = c t x 0 ,t h r e a d 一0 一s t a r t # 】 b r = c t x 1 ,t h r e a d 一1 一s t a r t # 】 b r ! = c t x 3 ,t h r e a d _ 2 一s t a r t # 】 指令中的c t x 是线程号,取值为o ,l ,2 ,3 ,t h r e a dns t a r t 撑标号是微码跳 转的入口地址。 另一种方法是通过设置c t x n s t s 中c t x p c 的值,也可以使线程从指定 的地址开始执行微码程序。 2 4 本章小结 在本章中,逐步涉及到主要测试的单元网络数据处理器。本章开始阐述 网络数据处理器的功能特点,概述了整体可实现的功能,随后介绍了其模块设置, 包括:微代码存储,通用寄存器,传输寄存器,逻辑运算单元( a l u ) 和移位器 ( s h i f t e r ) ,命令总线仲裁,本地c s r 等。各个模块的结构特点,可实现的功能, 模块之间的通讯方式。 其中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论