- 1、本文档共173页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
chap3 微处理器体系结构
* * * (2)控制冲突 一个分支指令是否真的要执行它的分支操作,取决于这个分支指令的执行阶段 后续正在流水线中的指令操作,不会被完全执行。由于取分支新指令阶段需要占用一个额外的时钟周期,每一次分支操作总共会浪费3个时钟周期 分支预测和延迟分支等技术可以减少控制冲突 * (3)结构冲突 当不同的流水线阶段在同一时刻都要读写同一硬件资源时,将会发生结构冲突 可以通过硬件调整或时间分享来减少结构冲突。使用以下三种方法可以减少结构冲突 ① 加入额外的同类型资源(有时会有效)。例如,将引起结构冲突的单一存储器改变为两个各自独立的数据存储器和指令存储器 ② 改变资源的设计,使其能被同时使用。如果译码阶段和回写阶段需要在同一个对外周期访问寄存器堆,则可以使用具备多端口的寄存器堆设计,而使其能同时访问寄存器堆。 ③ 使用轮流暂停一部分流水线的方法,轮流使用资源。 * 3.6 超标量体系结构 超标量处理器是一种使用多条相互独立的指令流水线的处理器。每条流水线由多个段(级)组成,因此每条流水线能同时处理多条指令 一般情况下,超标量处理器一次取多条指令,然后试图找出几条彼此不相关因而能够并行执行的指令 超标量方法的本质是,在不同流水线中不相关地执行指令的能力 * 3.6.1 基本概念 机器能够在一个时钟周期内对多条指令进行并行处理的技术称为超级标量技术 采用流水线技术和功能部件多重化技术是开发指令级并行性的两种重要手段。 降低CPI的方式是在一个时钟周期内向处理部件发送多条指令,使指令的执行速度超过机器的时钟速度,即CPI小于1 * 超标量处理器的一般结构 超标量机器的一个最突出的标志是处理器中有两个或两个以上的功能部件。为使多个功能部件能并行工作,其操作数之间必须没有相关性。 * 超标量机器工作的大致过程 取指令部件从指令cache中取出多条指令,并送至分发部件的指令缓冲器中,这个指令缓冲器有时又称为指令窗口; 每一个机器周期,分发部件都对指令窗口进行扫描,一旦发现可以并行执行的指令,并且与这些指令相应的功能部件是空闲的,则同时将它们送到功能部件去处理 * 3.6.2 超标量处理机的概念性结构 在一个超标量结构中,单一流水线的架构被扩充为拥有多条流水线的架构。 为了实现这一需求,超标量流水线的结构被分成为两个部分: 输入流水线的部分和执行流水线的部分。 输入流水线的部分主要进行取指令和指令译码的操作,通常也会增加一个分配阶段的操作,这个分配阶段决定将会把指令分配到哪一条执行流水线上继续执行 * 超标量处理机一般概念性结构 1.指令读取 (instruction fetching) 2.指令译码 (instruction decoding) 3.指令分派 (instruction dispatching) 4.指令执行 (instruction execution) 5.指令完成、 (instruction completion) 指令退出 (instruction retiring) * 3.6.3 超标量结构的操作 在拥有两条到三条的执行流水线的机器中,通常会采用双输入流水线来保证快速获取指令,从而保持所有的执行流水线处于满载状态。必须增强机器的预取与cache存储器系统,以保证它们也能够配合,高速地提供指令。 在超标量结构中,除了为能快速向执行流水线输送指令而提高了机器的设计复杂度之外,同时也增加了机器的数据流冲突的潜在威胁。 超标量结构中数据流的问题不仅像过去那样只存在于单一流水线内的各阶段之间,也存在于各条不同的流水线之间 * 超标量流水线的各阶段 ① 发射阶段将指令放置到合适的执行流水线。其中,指令类型必须符合该执行流水线的可执行要求。将相关指令放在同一条流水线中,以减少执行流水线之间的数据冲突。 ② 保留阶段将指令暂存,直到可以读取到指令的源数据。源数据可能来自多个源地址。 ③ 由于存在不同类型的指令,需要设计不同结构的执行阶段,其中包括分支指令、存储器访问指令、整数乘法或除法指令以及浮点运算(通常需要8个执行阶段) * 超标量结构机器的例子 * 超标量结构机器的例子 它有两条输入流水线,每一条包含了三个阶段(级) ① 取指令阶段从存储器中获取指令(总的来说,每个时钟周期获取了两条指令); ② 译码阶段将指令译码并确定这条指令所需的数据源 ③ 发射阶段决定由哪一条特定的执行流水线来执行这条指令 三条执行流水线 最左边的执行流水线只含有两个阶段和一个保留站。这条流水线用于执行那些不需要访问存储器的指令。 中间的执行流水线增加了一个存储器阶段,它将处理所有需要访问存储器的指令。也可用于处理不需要访问存储器的指令 最右边的执行流水线有两个执行阶段,用于进行乘法和除法之类的较复杂的算术运
文档评论(0)