




已阅读5页,还剩71页未读, 继续免费阅读
(计算机系统结构专业论文)网络处理器内核体系结构研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西北1 :业大学坝i :论文 摘嬖 摘要 如今,被认为是推动下一代网络发展的一项核心技术的网络处理器已丌始 越来越多地受到业界的关注网络处理器的出现被认为是通信半导体工业发展 的一场革命,市场已经接受了n p 贡献给网络设备的价值,国内外的许多公司和 大学也纷纷投入力量展开了相关研究。 本文首先研究了高性能处理器流水线的性能与结构以及对相关和中断的处 理等关键技术,作者作为设计人员参与研究并设计了3 2 位嵌入式微处理器 a r m p 的流水线。接着,在大量考察了多种商用网络处理器召勺结构的基础上, 本文初步分析了网络处理器的硬件结构特点,并对网络处理器中使用的新技术 进行了讨论,在此基础上,本文选取了美国a m c c 公司推出的一款具有交换 架构和3 2 位r i s c 处理内核的网络处理器n p 3 4 0 0 作为主要研究对象,以a r m p 的流水线为基础,设计了r i s c 处理核的流水线。 论文的研究内容是国防“十血”预研项目“专用高性能微处理器”的一部 分。 关键字网络处理器流水线中断相关多线程处理器 两北丁业大学硕卜论文摘蜚 a b s t r a c t n o w a d a y s ,n e t w o r kp r o c e s s o r s ( n p ) a r ec o n s i d e r e da s ak e yt e c h n o l o g yt h a t p r o m o t e st h ed e v e l o p m e n to fn e x tg e n e r a t i o nn e t w o r k ,a n di th a sc a u g h tp e o p l e s a t t e n t i o nm o r ea n dm o r e t h ea p p e a r a n c eo fn e t w o r kp r o c e s s o ri st h o u g h tt ob ea r e v o l u t i o no ft h ec o m m u n i c a t i o ni n d u s t r y t h en m r k e th a sa c c e p t e dt h ec o n t r i b u t i o n t on e t w o r kd e v e l o p m e n to fn p m a n yc o m p a n i e sa n du n i v e r s i t i e sp u tp e o p l ei nt h e r e s e a r c ho f np t h i sp a p e r ,f i r s t ,s t u d i e st h ep e r f o r m a n c ea n da r c h i t e c t u r eo fh i g hp e r f o r m a n c e p r o c e s s o rp i p e l i n e ,a n dt h et e c h a o l o g yt h a tu s e dt od e a lw i t ht h ec o r r e l a t i o na n d i n t e r r u p ti np i p e l i n e t h ea u t h o rt a k e sp a r ti ns t u d ya n dd e s i g no fp i p e l i n eo fa r m p , w h i c hi sa3 2 - b i te m b e dm i c r o p r o c e s s o r s e c o n d l y , t h i sp a p e ra n a l y s e ss e v e r a lk i n d o fn p , b a s e do nt h i sw o r k , a u t h o rs u m m a r i z e st h ec h a r a c t e r i s t i co fn p , a n d i n t r o d u c e st h en e wt e c h n o l o g yt h a tu s e db yn p f i n a l l y , a u t h o rc h o o s e st h en p 3 4 0 0 n e t w o r kp r o c e s s o r w h i c hh a saf a b r i ca n d3 2 一b i tr i s cp r o c e s s o rc o r ea n di st h e p r o d u c to fa m c cc o m p a n y , t ob et h er e f e r e n c ed e s i g n ,b a s e do nt h ep i p e l i n eo f a r m p , s c h e m eo u tt h ep i p e l i n eo fr i s cp r o c e s s o rc o r et h a tc o m p a t i b l ew i t h n p 3 4 0 0 t h ew o r ki nt h i st h e s i si s p a r to fn a t i o n a l0 5 p r o j e c te n t i t l e d “a p p l i c a t i o n s p e c i f i e dh i g hp e r f o r m a n c em i c r o p r o c e s s o f , k e y w o r d :n e t w o r kp r o c e s s o rp i p e l i n ei n t e r r u p t c o r r e l a t i o n m u l t i t h r e a d sp r o c e s s o r i l 西北丁业大学倒i 。论叟第一幸绪论 第一章绪论 本论文的研究对象为网络处理器中的包处理单元。在研究的过程中选取了 美国a m c c 公司推出的一款具有交换架构和3 2 位r i s c 处理内核的网络处理 器n p 3 4 0 0 作为主要研究对象。对n p 3 4 0 0 网络处理器的技术资料进行分析消化, 分析设计了中央控制模块n p c o r e s 的功能、时序、控制和数据通路。在分析研 究n p 3 4 0 0 的同时也初步分析了解了一些比较成功的商用网络处理器的基本结 构。 1 1 课题来源及意义 如今,被认为是推动下一代网络发展的一项核心技术的网络处理器 ( n e t w o r kp r o c e s s o r ,简称n p ) 已开始越来越多地受到业界的关注,采用n p 来处理分组交换信号的厂家,既有一一直处于网络技术公司第一梯队的领先公司, 如c i s c o ,n o r t e l 和l u c e n t 等公司,也有不少后起之秀,如a r r o w p o i n t ,z h o n e 和m a y a n n e t w o r k s 等,市场已经接受了n p 贡献给网络设备的价值,国内外的 许多公司和大学也纷纷投入力量展开了相关研究。网络处理器的出现被认为是 通信半导体工业发展的一场革命,它的出现大大缓解了长期困扰网络设备生产 商的产品开发周期长的问题,也克服了当今局域网和广域网设备固有的灵活性 差的缺陷,它的发展势必对传统的基于a s i c 和m p u 的网络设备造成目 所未有 的冲击。 本课题来源于横向合作项目,属于应用性研究范畴,主要研究对象为 n p 3 4 0 0 网络处理器。n p 3 4 0 0 是美国a m c c 公司推出的一款具有交换架构和 3 2 位r j s c 处理内核的网络处理器,其芯片采用c m o s 工艺制造。n p 3 4 0 0 具 有的特性包括可软件配置、多处理器核、单一编程模型,针对高容量l a n 应用 进行了专门优化。与其他同类处理器相比具有以下优点:多个r i s c 内核、同 时集成网络处理器和交换架构技术与一体、2 6 个物理端口可灵活配置成2 4 个 快速以太口+ 2 个千兆以太口或是2 4 个快速( 百兆) 以太网端口+ 1 个千兆以太网 端1 3 + 1 个1 i g b p s 叠堆端1 2 或是2 4 个快速( 百兆) 以太网端口+ 2 个1 1 g b p s 叠堆端口、简单高效的编程模型支持高层语言开发、4 4 g b p s 的分组转发能力 等。此外,该网络处理器还具有较强的模块性,可以对各个模块进行单独的研 究。 西北t 业人学顺l 论史第一章绪论 1 2 国内外研究现状 在网络发展初期,网络传输的速率比较低,业务量比较少,关于网络的研 究主要集中在完善网络协议和构建服务体系结构上。这个时期的网络设备一般 基于c p u ,即通过在c p u 上运行相关软件来实现各种网络功能。其好处是具 有很高的灵活性,即通过更新软件,可以很方便地完善原有功能或加入新的功 能和服务特性。但其缺点是处理速度慢、吞吐率低。不过这种性能在当时是可 以接受的,因为路由器转发分组的速度完全可以跟上线路的传输速度。然而, 随着各种传输技术的进步,网络带宽的增长速度逐渐超过了c p u 处理能力的增 长速度,而且这种差距有着进一步加大的趋势。这使得带宽不再是网络的瓶颈, 而基于软件的节点设备则逐渐变成了网络的瓶颈。因此,需要想办法提高网络 设备的性能。在这种情况下,网络设备丌始更多地采用a s i c ( a p p l i c a t i o n s 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 仍然是当前网络设 备的主流处理核心技术。它通过把指令或计算逻辑固化到硬件中,可以获得很 高的处理速度,因而能够很好地满足网络设备对性能的要求,适应了网络带宽 不断增长的发展趋势。然而,a s i c 最大的缺点是缺乏灵活性。一旦指令或计算 逻辑固化到硬件中,就很难修改升级、增加新的功能或提高性能,使得资源重 用率很低。另外,设计和制造复杂的a s i c 一般需要花费1 2 1 8 个月的时削, 因此a s i c 的设计者们必须能够对未来很长时间内的市场需求和技术趋势做出 准确的预测。这也使得a s i c 的研发费用一般比较高。除此之外,当前网络的 应用范围在不断扩大( 从商用、教育到家庭和个人) 、新的业务不断涌现( 电子 商务、多媒体应用和视频会议等等) ,网络的发展也不仅仅是带宽的不断提高, 而更多地表现为对“智能化处理”( i n t e l l i g e n tp r o c e s s i n g ) 的要求,例如服务质量 ( 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 ) 和深层 数据处理( 处理到第4 层或第7 层) 。而这些服务功能既要求处理的高速度,又 要求实现的灵活性,因此网络设备需要能够灵活地满足各种服务和应用的不同 需求,这一点却是a s i c 技术也难以满足的。 当前和未来的网络设备处理部件既需要高性能,又需要高灵活性。正是在 c p u 和a s i c 技术都无法满足的这种双重要求下,出现了网络处理器技术。网 络处理器通过良好的体系结构设计和专门针对网络处理优化的部件,为上层提 供了一个可编程控制的环境,可以很好地解决硬件加速和软件可扩展的折衷问 题。 目前已经面市的主流n p 产品在性能上大致能达到:吞吐量在5 g b p s 左右: 所有处理子单元的合计处理能力达到2 0 0 0 m i p s 以上:每秒能转发6 0 0 万个以 上的分组;支持的物理接口包括1 0 1 0 0 m 以太网、千兆以太网、o c 一4 8 、光纤 通道等;支持汇编级的软件丌发甚至c + + 等高层开发语言。网络处理器设计从 两北t 业人学坝l j 论文 黎一书持论 结构上说可以分成三种主要的类型: ( 1 1 基于通用r i s c 处理器的架构 ( 2 1 基于增强r i s c 处理器的架构( 带硬件加速器) ( 3 ) 专门针对网络应用的处理器。 前面两种结构对于建设今天的以太网来说是有效的,然而它们不能提供运行在 吉比特端口上全部7 层处理功能。网络专用处理器优化了指令集和数据通路处 理,克服了r i s c 的众多缺陷。网络专用处理器是从下一代网络产品需求中发 展起来的,它采用了面向任务的内核设计结构,集成了许多小恧快的处理器,每 一个处理器完成单独固定的任务。这些内核处理器使用相同的指令集,如果完 成同一个任务,网络专用处理器只需要基于r j s c 处理器1 l0 的指令条数, 网络专用处理器实际上为网络处理提供了个高速执行平台在可编程、性能 和开放性方面都有很大的突破,根据需要可以有效地实现7 层应用。前两种结 构的处理器只能应用于网络处理的核心部件,而网络专用处理器则可以为构建 网络设备真f 提供完整统的解决方案。 1 3 研究内容与技术路线 n p 3 4 0 0 网络处理器是个复杂的系统我们的研究内容是根据已有的 n p 3 4 0 0 的体系结构、功能和指令集,进行i p 化设计。设计出拥有自己版权的 兼容n p 3 4 0 0 指令集的网络处理器。 在研究过程中,我们将此网络处理器划分成了几个模块,它们是:中央控 制模块n p c o r e s ,分组转换引擎模块p t e ,调度控制模块s c 流量控制模块f c , 策略引擎模块p e ,统计引擎模块s e ,以及分组缓存管理模块p b m 。其中,本 文作者负责对中央控制模块n p c o r e s 的设计和编码。从消化和理解a m c c 公司 发稚的n p 3 4 0 0 的资料开始,广泛借鉴现有的各种微处理器的设计技术,了解、 分析微处理器的基本设计方法。 目前国际上对子集成电路芯片的研制和暧计,都采用一种先进的设计方法 即“t o pd o w n ” 自顶向下的f 向设计技术路线。所谓自顶向下的设计方法,单 从字面上解释,就是从一个抽象的高层次上形成个设计思想,然后实现该思 想也就是从系统整体要求出发,自上而下的逐步将系统实际内容细化。自顶向 下的设计方法相对于传统的自底向上的设计方法来说,具有很多的优点。因为 设计师可以将更多的精力和时蛳花费在从高层次上对系统进行功能定义和设 计,而不比分散精力去关注电路实现的技术细节,具有明显的优越性: a 1 增加设计师的设计生产率 b ) 增加设计的重用性 c 1 错误的早期发觉 因为设计师将更多的精力和时间都花费在从高层次上对系统进行功能定义 西北丁业大学倾 。论义第一章鳍论 和设计、仿真;所以可以在设计的丌始阶段发现更多的设计错误,这会带来以 下几个好处: 1 减少产品丌发周期 2 ,降低开发成本 3 增加设计一次成功通过的可能性 由于自顶向下的设计方法是亟向系统的设计方法,设计者不再用逻辑图冉勺 形式来设计系统,而是采用硬件描述语言对系统进行描述,因此可以提高系统 的设计效率,其关键技术在于系统的仿真、综合和测试。 在课题的研究过程中,本文作者计划采用自顶向下的设计方法,借助先进 的e d a 工具,使用h d l 语言描述设计并完成设计的仿真与验证。 1 4 论文结构安排 第一章绪论。主要讨论了国内外网络处理器发展概况;课题的束源:论文 研究内容和结构安排。 第二章讨论a r m p 处理器流水线的设计为进一步研究网络处理器系统 结构奠定基础。 第三章在讨论几种商用网络处理器的基础上,概括出网络处理器的基本结 构 第四章结合网络应用的特点,对网络处理器的结构及使用的相关处理技术 进行详细的讨论。 第五章以a m c c 公司的r i p 3 4 0 0 网络处理器为参考设计,提出与其指令集 相兼容的网络处理器设计方案。 第六章结束语。 4 两北t 业大学顾 论文第二章a r m p 处理器设汁 第二章a r m p 处理器设计 a r m p 是航空微电子中心面向嵌入式航空应用领域设计的微处理器,该处 理器晶体管数目为3 8 0 万,采用0 2 5 9 i nc m o s 工艺实现,封装形式为q f p 2 4 0 。 作者在对高性能微处理器中的流水线技术进行研究的基础上,参与设计并 实现了适应p o w e r p c6 0 3 e 指令集系统结构的高性能流水线、相关的控制通路。 本章将讨论a r m p 处理器流水线的设计,为进一步研究网络处理器系统结构奠 定基础。 2 1a r m p 系统结构 2 1 1a r m p 的指令集 a r m p 是面向嵌入式航空应用领域设计的嵌入式微处理器。根据考察多种 嵌入式微处理器的指令集,认为: 1 p o w e r p c6 0 3 e 指令集的设置符合【k 曲6 】中对飞控程序的统计结果; 2 p o w e r p c6 0 3 e 指令集指令格式、译码简单同时考虑实现速度优化和空间 优化,可实现r i s c 处理器的高性能和c i s c 处理器的高代码密度,非常适 用于嵌入式应用; 3 p o w e r p c6 0 3 e 指令集通过旋转和移位指令灵活实现位操作,这对嵌入式应 用是非常重要的; 4 p o w e r p c6 0 3 e 指令集提供基于标准核的可扩充指令集系统结构,适于嵌入 式应用的广泛领域。 因此决定选用p o w e r p c6 0 3 e 系列的核心指令集作为a r m p 的指令集。这样, 一方面满足a r m p 指令集的高效、可扩充性、嵌入式应用的要求:另一方面, 可保证a r m p 在二进制级别上与p o w e r p c6 0 3 e 核心指令系统兼容。 a r m p 结构定义的数据类型为: 8 、1 6 、3 2 位整数; 3 2 、6 4 位浮点数; 8 、1 6 、3 2 位无符号数; l o a d s t o r e 指令可存取字节、半字、字、多字、字符串、单双精度浮点 的操作数类型: 2 1 2a r m p 指令类型和指令格式 a r m p 指令有如下几类指令: 堕! ! 二些查兰塑! :堡墨 兰= 童垒垦坚! 竺型塑堡生 整数指令包括算术和逻辑指令 浮点指令一一包括算术指令和影响浮点状态控制寄存器( f p s c r f l o a t i n g p o i n ts t a t u sa n dc o n t r o lr e g i s t e r ) 的指令 装载和存储指令包括整数的和浮点的装载存储指令 分支流程控制指令包括分支指令、条件寄存器逻辑指令和其他影响 指令流程的指令 陷阱指令用于测试一些特定的条件 处理器控制指令用于访存的同步化和c a c h e ,t l b 以及段寄存器的 管理 内存同步指令用于内存的同步化 内存控制指令用于控制c a c h e ,t i ,b 和段寄存器 系统连接指令 外部控制指令用于使用特定的输入输出设备 a r m p 的指令集与p o w e r p c6 0 3 e 完全兼容,其指令格式有以下几类: i 格式 b 格式 d 格式 x 格式 x l 格式 ! ! q ! ! 一 2 02 1 3 03 1 删格式匝互臣 三互二 j 互 困 x 0 格茂 x 0 格式 两北t 业人学嘶! 卜论文 第一茕a r m p 处理器嫂汁 2 1 3 寄存器模型 a r m p 为大多数计算指令定义了寄存器到寄存器的操作。三寄存器指令格 式中的目的寄存器不同于两个源操作数寄存器。l o a d 和s t o r e 指令在寄存器和 存储器之间传递数据。p o w e r p c 处理器有两级优先级管理模式( 主要是操 作系统使用) 和用户模式( 应用软件使用) 。 a r m p 设置了大寄存器堆用于编译优化和寄存器分配。, 想a 4 p 中程序可见 的寄存器有: 3 2 个3 2 位通用寄存器g p r s 用于定点操作 3 2 个3 2 位浮点寄存器f p r s 用于浮点单精度或者双精度操作 条件寄存器c r 浮点状态和控制寄存器f p s c r 机器状态寄存器m s r 段寄存器s r 用户缎特殊寄存器:链接寄存器l r 、计数器c t r 、溢出条件寄存器x e r 管理级特殊寄存器:d s i 中断原因寄存器d s i s r 、数据地址寄存器d a r 、 减量器d e c 、页表格式寄存器s d r i 、机器状态保存恢复寄存器s r r 0 、 s r r i 、影子寄存器s p r g 0 一s p r g 3 、外部访问寄存器e a r 、基准时问寄存器 t b 、处理器版本寄存器p v r 、块地址转换阵列b a t 、数据t l b 失效寄存器 d m i s s 、指令t l b 失效寄存器 m i s s 、保存一级页表和二级页表的入口组 p t e g 的物理地址的h a s h l 和h a s h 2 、备份的页表项中第一个字的i c m p 和d c m p 、所需的物理地址寄存器r p a 、硬件实现寄存器h i d 0 和h i d l 、 指令断点寄存器i a b r 。 2 2a r m p 流水线级数选择 在理想情 况下( 流水线 处理器中可连 续执行的指令 条数k 专。 时) ,流水线处 理器的性能加 速比即为流水 线的级数,因 k 出生型处乙一 b 卜瓦赢忑- 吲 :时钟偏斜 c l o c kc y c l e , = = tp r o p + tc o m b i n a t i o n a l + ts o t u p t = tp r o p + ts e t u 口- b ? 。 此流水线处理器剧2 - 1 流水线中时钟周 c | j 的性能取决于流水线级数的选取。若流水线级数选取得越大,则对于给定的逻 两北t 业大学硕i 论文 第一章a r m p 处理器垃计 辑通路,流水级就分得越细,的组成每一级的逻辑通路就越短,时钟周期就越 快,处理器的性能也就越高。但是,随着流水线级数的增加,由于指令流的断 流所产生的延迟就增加了,这样将会逐渐掩去出于流水级的增加所带来的性能 增益;其次,在每一个流水级中,除了实现操作的逻辑通路具有一定的传输延 迟外,还需要有固定的锁存开销时间,包括:锁存建立、锁存传输和时钟偏斜, 如图2 1 所示。若逻辑通路过分地细化。虽然逻辑通路的传输时间可分摊到各 流水级中,但由于锁存开销时间是固定的,锁存开销时间将会成为决定流水线 时钟周期的主要因素。另外随着流水线级数的增加,流水线中各级所需的锁 存硬件开销也将逐渐增大;同时由于流水线级数的增加,处理器的时钟频率也 将加快,处理器所需的功耗也将逐渐增高。因此存在一个根据所实现处理器的 性能、价格目标选取满足设计日标的最佳流水线级数的问题。 l a r s o n 和d a v i d s o n t “d a ”j 提出了一个求解使所实现的处理器的性能达到最 大的最佳流水线级数的模型,该模型的建立是基于处理器的逻辑通路长度l 、 锁存开销时间f 、连续执行指令数k 。则晟佳流水线长度n 。: 竹m 缸 ( 1 ) 式( 1 ) 中的胛。a x 的意义为:当流水线级数增加时,处理器的性能将随着流水 线级数的增加而逐渐增加:当流水线级数增加为h 。时,处理器的性能达到最 大;此后尽管再继续增加流水线的级数,处理器性能丌始下降。 c l o c k 幽2 - 2 流水线级数划分 对式( 1 1 分析,可以得n - 。个结论:减少f 值,可以获得更长的流水线,获 取更高的性能。,值的减少可通过两种渠道:一方面在实现中采用快速的锁存器 k u s m 8 6 :另一方面在实现中采用合理的时钟分配方案来减少时钟偏斜。 西北_ t 业大学坝卜论殳 第一二常a r m p 处理器改汁 为了保证各流水级中操作的平衡,一个最直接的想法是依照最佳流水线级 数将逻辑通路中的逻辑门进行平均分配来进行流水线的划分。图2 2 示出了在 两个寄存器之问具有l 个逻辑级的一级流水线;若流水线分为两级,则每一级 逻辑有l 2 个逻辑门;以此类推。但是由于处理器中的逻辑结构非常复杂,存 在众多的中间信号和反馈信号,这样划分会增加太多的流水级锁存。因此,通 常在进行流水线的划分时,一般是将所确定的最佳流水线级数作为参考,依据 功能来进行划分。依据功能来进行划分所带来的好处是:流水级之间彼此独立, 中间信号可以减少,减少中间锁存的丌销;但其缺点是很难完全平衡流水线中 各流水级的操作。 k o g g e 提出了将一个功能划分为一个子功能流水线的条件f k o g g 引l : 1 所划分的子功能流水线的功能等价干原功能: 2 在予功能流水线中,前一个子功能流水级的输出是下一个子功能流水级的输 入: 3 在各子功能流水级之阳j 仅存在输入与输出的联系,而无其它任何内部联系: 4 各子功能流水级的功能实现 可由硬件完成; 5 各子功能流水级的执行时间 通常相等。 在对处理器的逻辑通路进 行流水线划分时,应严格遵循上 述5 个条件,其中,要重点平衡 流水线中各流水级的操作,使各 流水级的执行时间基本相等,以 减少流水线处理器中时钟周期 的长度。 a r m p 流水线的设计,是依 照指令执行的过程按功能来进 行划分和定义的,这样,可以使 得流水线中每个流水级完成的 功能明确,各流水级之间的界限 清晰,有利于减少流水线中各级 之间的存贮信息要求;在划分的 过程中,在保证各流水级功能完 整的条件下,平衡各流水级的操 作:同时考虑各级的锁存丌销。 目前,很多单发射微处理器的流水线级数幽2 3a r m p 流水线 两北t 业人学颅i 。论文 籀一搴a r m p 处理 垃汁 多为4 6 级,原因是:其一,多采用了快速的指令、数据或混合c a c h e 以减少 存储器的访问延迟:其二为减少由于转移延迟、例外事件所带来的性能损失。 根据a r m p 指令执行过程分析,本文确定a r m p 采用取指、译码、执行、写 回4 级流水,流水线的组成如图2 3 所示。 在流水线处理器中,每个时钟周期都可以丌始一条新指令的执行,因此它 的存储器系统的性能要求很高,每个时钟周期要能够提供取指和数据访闯的能 力。在a r m p 中设置了一个指令c a c h e 以提供快速的指令访问;同时提供了一个 与存储器接口的输入输出缓冲区。在流水线处理器中,每个时钟周期流水线中 各级功能单元同时执行不同的操作。为了避免结构冲突,各个操作在流水线中 需要的功能单元不同。流水线中的所有功能单元是由所有指令在任流水级的 操作组合所确定的。a p 。m p 中设置一个专门的加4 器,每个时钟周期执行对指令 指针加4 的操作,使其指向流水线下一条指令的地址:并设置了专门的加法器用 于计算转移目标地址,实现转移目标地址的提前计算。 在流水线处理器中,指令的执行是由流水线中各流水级分段完成的,为了 保证指令的j 下常运行指令执行所需的数据通路中的数据信息和控制信息必须 随着流水线中指令的流动而向下推进,这些数据信息和控制信息必须保存在流 水级之间的锁存部件中,称为流水线寄存器,其中,下一级流水级所需要的信 息必须在上级锁存部件中有备份,内容包括指令操作码,寄存器读写地址、 立即数域、偏移量域、a l u 输出,指令指针等。在a r m p 中设置了4 个流水 线寄存器,分别位于l f 和l d 、i d 和r o p 、r o p 和e x e 、e x e 和w b 之间, 各个流水线寄存器随着流水线的向下推进,其信息含量逐渐减少。 2 3 数据相关的解决 对于寄存器型指令之问的数据相关,本文采用直接数据通路的技术解决, 依靠b y p a s s 通路将第n 条指令的结果直接送给第n + 1 条指令执行时使用,而 不必等待第a 条指令将数据写回寄存器。 如果一条指令与l o a d 指令发生数据相关时,需要特殊的处理。在a r m p 中,没有设置数据c a c h e ,因此访闽存姥器操作数肘,出于存储器的长访问时脚 将会引起流水线断流。为了解决这个问题,在a r m p 中设霄了一个输入输出缓 冲区f i f o ,如图2 - 4 所示,f i f o 对存储器的操作是以流水方式进行的,处理 器只需将存储器访问的地址和有关的控制信号交给f i f o ,不等到存储器操作完 成,就可处理下一条指令。这样处理器操作可以和存储器操作并行执行,减少 了因访问存储器操作所带来的性能损失。 在执行s t o r e 指令时,只要输出f i f o 未满,将操作数和存储器地址发给输 出f f f o ,就可认为s t o r e 指令操作结束。 两北t 业人学坝i 论文第二章a r m p 处理器改汁 图2 - 4 输入输出f i f o 结构 在执行l o a d 指令时,可将访问存储器操作数的请求发给输入f i f o ,处理 器可继续执行下面的指令;但事实上,l o a d 指令真币结束是在存储器操作数取 回之后。这样,若l o a d 指令还未取回存储器操作数,而l o a d 指令之后的指令需 要用l o a d 取进来的操作数时,出现了l o a d 相关。对予i o a d 相关,可以采用两 种方案来解决: l 利用软件即通过编译优化来保证l o a d 指令后的指令不使用l o a d 取进来 的存储器操作数。即在1 0 a d 指令与使用1 0 a d 操作数的指令之问插入一 些与这两条指令无关的有用指令;若实在没有这样的有用指令,可插 入n o p 指令;但是由于存储器的访问时间是一个不确定的值,因此确 定插入多少条指令就变得困难了,同时还会有大量的c p u 时间花费在 n o p 指令上。因此只采用软件编译优化技术来解决i o a d 相关不是很理 想。但采用这种方法不需要硬件支持,节省了硬件丌销。 2 停滞流水线矗至l o a d 指令将操作数取回,这样将会引起流水线断流, 浪费大量的c p u 时间;而且设置输入f i f o 的意义就不存在了。 本文中使用的方案是在每个寄存器中都设置一个标记位称为s c o r e b o a r d , 每当译码出一条l o a d 指令时,相应的目标寄存器的s c o r e b o a r d 位置位,l o a d 指 令将操作数的请求发给输入f i f o ,待操作数返回,l o a d 数据写回到寄存器的同 时,将相应的s c o r e b o a r d 位复位:l o a d 指令进入f i f o 后,处理器继续处理下面 的指令,若后续指令中操作数寄存器的s c o r e b o a r d 位没有置位,则指令可继续 执行;否则,流水线停滞,等待l o a d 操作数和相应的s c o r e b o a r d 位复位。这样 可通过编译优化充分利用l o a d 指令与使用l o a d 操作数指令之间的空隙,将存储 器的操作与c p u 的操作并行执行:同时也降低了编译器的负担,使得编译器在 找不到合适指令的条件下,不需插入n o p 指令,增加了代码密度;而且由于存 两北丁业人学倾 论文 第一章a r m p 处理器吐汁 储器访问操作可以和c p u 操作并行执行,弥补了a r m p 中没有采用数据c a c h e 所造成的性能损失。 2 4 控制相关的解决 条件码转移指令在对条件码进行判定的基础上来决定转移是否执行。在 a r m p 中,条件码的设置可以由比较指令来显示设置,也可由一些运算指令来 隐含设置。在执行条件码转移指令时,若前面改变条件码的指令还未写回,则 此时会出现条件码寄存器相关。 常用的解决条件码寄存器相关的方案有两种: 1 ) 利用编译优化技术来填充有用的无关指令到条件码设置指令和条件码 转移指令之间。若没有合适的指令则填充n o p 指令,这样可保证转移 判定的条件码是由条件码设置指令f 确设置的;但由于有些条件码设 置指令是隐含设置的,条件码的设置是指令操作的一个副产品,这给 编译实现带来了一定的困难: 2 ) 当译码到条件码转移指令时,将流水线停滞,待流水线中所有的处于 条件码转移指令之前的指令执行完毕后,执行条件码转移指令,这样 将会浪费大量的c p u 时间。 同样,这两种方案解决条件码寄存器相关的效果不理想。通过进一步的分 析,本文决定采用同前面对l o a d 相关解决方案类似的方法,即设置一个标记位, 当译码到更改条件码的指令时将该标记位置位:在条件码写回的同时,将该 标记位复位;当执行条件码转移指令之前,查看这一标记位,若该标记位没有 景位,则执行条件码转移指令:否则等待该标记位复位。 采用条件码记分牌来解决条件码寄存器相关,一方面可以利用编译优化技 术来填充一些有用的指令到设置条件码指令与条件码转移指令之间,以提高流 水线的执行效率;同时减轻了编译器的负担,在找不到合适的指令填充时,不 需填充n o p 指令,提高了代码密度。 时钟周期 墩指缎 执行级 c y c l e lc v c le 2c y c l e 3c v c l e l c y c l e 5 c y c l e 6 c y c l e 7e y e l e 7 i 指令l指令l指令2指令3指令4指令5 指令6指令6 执行1执行1执行2执行3 执行4执t 7 5执t 7 5 写川1与i u l 2写3葛4麓燃 。_ - 。1 。_ 1 。1 。1 。_ 。 s c o r e c o n j 。、一 c 1 e a r c o n jl 耄勰 互工互 j 二 互e 幽2 - 5 条什码计分牌的殴置 两北1 _ 业大学硕 :论文 第一章a r m p 处理器设计 本文设计中条件码的写回是在写回级,而条件转移在译码级就要判断条件 决定是否转移。因为流水线中可能同时存在多条指令处在不同的阶段,所以在 置条件码记分牌时需要考虑是否前面多条指令都需要改变条件码。这时计分牌 就可能需要多位。分析连续三条指令都需要置计分牌的情况。 对每一条会改变条件码的指令译码出设置条件码记分牌( s e t c o n ) 信号表 示需要写回条件码:而条件码汜分牌( c l e a r c o n ) 信号表示当前有条件码写回。 图2 5 中指令1 指令2 和指令3 这三条连续的指令需要置条件码计分牌, 其中指令l 是需要两拍完成的指令。从图中分析可知,条件码记分牌只要在时 钟沿检测到s c o r e c o n = l ,c l e a r c o n = 0 时增l ;检测到s c o r e c o n = 0 ,c l e a r c o n = 1 时减l 。两者相同时,条件码记分牌的值保持。如果记分牌为“o o ”,则表 示前面变条件码的指令都已经写回; 2 5 取指级设计 取指令阶段,处理器将指令指针( i p ) 中的指令地址送到存储器,同时对i p 加4 产生下一条指令的地址,并将从存储器中取出的指令送入指令寄存器( i r ) 中。 a r m p 支持虚拟地址,控制单元是以逻辑地址发出取指请求,要访问外部 存储器要经过地址转换。a r m p 处理器中包含存储管理单元m m u ,负责将访 存存储器和访i o ( a r m p 中i o 端口和存储器连续编址) 的逻辑地址转化为物 理地址。此外,为提高取指速度,a r m p 中含有2 路组相连、物理地址的指令 c a c h e 。指令c a c h e 共含1 2 8 组,每个c a c h e 块为3 2 字节,所以总容量为8 - k b y t e ( 1 2 8 2 3 2 ) 。从发出取指请求到指令锁存到指令寄存器,需要先将逻辑地址 转换成物理地址,然后用物理地址c a c h e 。如果c a c h e 命中则下一个时钟周期 可以将数据写回到指令寄存器。 2 5 1 建立正确的取指指针 通常情况下,只要表示译码级和之后的执行级、写回级没有产生阻塞的信 号i d f o r 、v a r d 有效,同时指令c a c h e 当前没有正处在繁忙状态,就可以对 f e t c h i p 增4 ,并发出取指请求。但有两种情况需要建立新流水线:第一种是在 机器重启以后,要建立流水线,从取指令丌始逐级向下流动;第二种是在指令 执行过程中,控制流发生变化,如出现转移或者出现中断,这时,需要废除原 有的顺序取指请求,并且需要冲刷原有的流水线,同时,发出新的取指请求, 重建流水线。具体分析影响f e t c h i p 寄存器值的条件有以下几种: 1 机器重启之后,流水线中没有任何指令,需要立即发出取指请求。 2 转移处理器单元( b p u - - b r a n c hp r o c e s s i n gu n i t ) 内部判断出要发生转移 两北下业人学坝i j 沦殳 第一章a r m p 处理 | 设计 程序流程马上要变化,f e t c h l p 加载转移目标地址,发取指请求。 3 上一拍的取指请求引起c a c h e 不命中,使得i f 部件一时无法响应取指请 求:此时流程不会变化,所以保持f e t c h l p 不变。等待i f 可用时,对f e t c h l p 增4 ,再重新发请求。 4 转移指令在等待条件码计分牌:这时不能确定转移方向,并且i r 无法写 入新值,所以保持f e t c h l p 不变。 5 由于执行“从中断返回”指令r f i 或者“系统调用”指令s c ,或者中断服 务的最后一个状态,需要改变原有的程序流。i d 发出w r f e t c h i p 信号,这时需 要根据执行单元计算的目的地址加载f e t c h l p 。 表2 - i 指令指针f e t c h l p 的加载 2 5 2 与m m u 及c a c h e 的接口 因为指令存储管理单元i m m u 将逻辑地址转化为物理地址和访问c a c h e 各 需要一个时钟周期,所以从发出一条取指请求到指令取回至少需要2 拍时延。 这种情况下,不能在当前指令译码时发出下条指令的取指请求。本文采用的方 法是机器启动后,每拍都发请求,根据流水线状况控制不能发请求的时刻( 如 译码阻塞,c a c h e 不命中时) 要相应的停掉取指请求,具体分析如下: 执行复杂指令 在执行复杂指令时,i r 寄存器需要保留的时间超过一拍。这会影响到取指 级的操作。如果此时c a c h e 命中,那么情况如图2 - 6 所示。 假定指令l 是一条需要两拍完成的指令。如图所示,在c y c l e 4 的时钟上跳 沿,尽管i n s t r v a l i d 信号表明已经取回了第二条指令但是当前i d f o r w a r d = 0 , 表明i r 寄存器不能打入新值。根据图示可以知道,i d f o r w a r d 信号同时要控制 流水线上取指指针寄存器f e t c h i p 和取指部件中的物理地址寄存器p a 在此时刻 不能打入新值。 西北f 业人学颂l :论 ) :c =第一二章a r m p 处理器啦计 如果在执行多拍指令的时候出现c a c h e 不命中,那么正常情况下是c a c h e 不 命中的处理时间长。这种情况下,流水线状态如图2 7 所示。 图中的例子是一个需要两拍执行的指令,而假定c a c h em i s s 后经过3 拍能 够取回数据。由图中可以看出,指令译码结束以后,指令寄存器i r 可接收下一 条指令,所以i d f o r w a r d = l 然后等待指令c a c h e 取回指令,直到i n s t r v a l i d = l ,可将新指令写入i r 。 f t , j 钟厂 厂 厂 广 厂 时钟周期 fe tch ip 逻辑地址 寄存器 物理地址寄存 i ns l r v a l i d i df or wa r d cyc le lcyc 1e2cyc le3c vc le 4 c yc le5 】_ 阪指1取指2取指3收指3 取指4 v a1v a2v a3 v a3v a4 p a1p a2p a2p a3 豫 厂 厂一 指令寄存器ir 时钟周划 取指请求 逻辑地: | : 寄存器 = 堕 j ! 丑】卫 五 图2 - 6 执行复杂指令且c a c h eh i t 时的流水线状况 c y cje lc y c 【e 2c y c l e 3c y c le 4c y c l e 5c y c l e 6c y c l e 7 取指l取指2取指3取指3取指3取指3取指4 v a l q a 2v a 3v a 3 v a 3v a 3v a 4 p a lp a 2p a 2p a 2 p a 2p a 3 存器 西北t 业大学顺七论义 第一幸a r m p 处理器设计 件i f u 。具体浣,i n s t r b r a n c h - - - - - b r a n c h | i w r f e t c h i p 。而取指部件( i f u - - i n s t r u c t i o n f e t c hu n i t ) 根掘i n s t r b r a n c h 冲刷相应的睡个请求。 当指令流发生改变时,需要i f u 废除掉当前在取的两绒指令,如2 8 所示。图 中指令i 是一条需要转移的指令那么其后的取指2 和取指3 都是不需要结果 的,对应阴影部分是需要废除的。 c y c l e l c y c l e 2c y c l e 3c y c l e 4c y c l e 5 c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 时间的认识课件
- 秩序岗位服务培训
- 时间和方向课件
- 时间与管理课件讲解
- 2025版电梯维保与应急物资储备服务合同范本
- 二零二五年度市政道路建设项目招投标合同范本
- 二零二五年度矿产资源中介服务合同范例
- 2025版高钙石建筑材料原料购销合作框架协议
- 二零二五年度建筑工程设备租赁及保养合同
- 二零二五年度医疗设备生产与销售及售后服务合同
- 《高中生职业生涯规划指导》课件
- 培训师自我评价
- 中国儿童严重过敏反应诊断与治疗建议
- Excel必知必会第一期
- KW分布式光伏电站技术方案
- 私募基金管理人-廉洁从业管理制度
- 电子制造企业安全风险辨识分级管控清单 (一)
- 西昌社工考试试题及答案
- 设备点检员职业技能题库(中级)
- 网络法律知识
- 航空航天材料与加工技术作业指导书
评论
0/150
提交评论