- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 4 章 指令级并行的
4.1 指令级并行;;1.流水线处理机的实际CPI;2.基本程序块;;;;5. 可以从两个方面来解决相关问题:
保持相关,但避免发生冲突。
指令调度
通过代码变换,消除相关。
6.程序顺序:由源程序确定的在完全串行方式下指令的执行顺序。
必须保持程序顺序
7. 控制相关并不是一个必须严格保持的关键属性。;;4.2 流水线的动态调度方法(简述);(1)能处理某些在编译时无法知道的相关情况。
(2)能简化编译程序设计。
(3)使代码有可移植性。
动态调度方法的主要缺点是硬件较为复杂。;集中式动态调度
利用状态记录控制器(或记分牌 ScoreBoard)在程序执行过程中,对流水线中的各个功能部件的工作状态、进入流水线中的各条指令的工作状态、指令所使用的寄存器情况等进行集中的统一记录和调度。
集中式动态调度依靠硬件在程序运行过程中对可能出现的相关情况加以检测,从而保证流水线中的各个功能部件能最大限度地重叠工作。
集中式动态调度常用于解决乱序方式流水线中的相关冲突。;IF ID;记分牌目的;;记分牌的三个主要组成部分;DLX记分牌的四级操作;;;4.2.2 流水的分布式动态调度;例:在流水机IBM 360/91中,采用公共数据总线CDB来实现某些相关专用通路连接,并通过给每个浮点数寄存器FLR设置一个“忙”标志来判别指令间所用的数据是否发生数据相关,只要某些FLR正在使用,就将“忙”位置“1”表示存在数据相关,一旦使用完成,就将“忙”位置成“0”。
以下面的一段程序为例说明Tomasulo算法。
k: LOAD F1, A
k+1: FADD F1, F2
k+2: FMUL F1, F3
k+3: STORE F1, B;Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.;特点:;*基于Tomasulo算法的MIPS基本结构 ;保留站(reservation station)
每个保留站中保存一条已经流出并等待到本功能部件执行的指令(相关信息)。包括:操作码、操作数以及用于检测和解决冲突的信息。
在一条指令流出到保留站的时候,如果该指令的源操作数已经在寄存器中就绪,则将之取到该保留站中。
如果操作数还没有计算出来,则在该保留站中记录将产生这个操作数的保留站的标识。
浮点加法器有3个保留站:ADD1,ADD2,ADD3
浮点乘法器有两个保留站:MULT1,MULT2
每个保留站都有一个标识字段,唯一地标识了该保留站。 ;;;;;;;* Tomasulo指令执行的步骤;;;保留站6个字段:;;*Tomasulo算法举例;当采用Tomasulo算法时,在上述给定的时刻,
保留站、load缓冲器以及寄存器状态表中的内容。
;;;;;4.3 动态硬件预测转移方法(简略);转移目标缓冲器的基本结构和工作原理;记录转移历史信息的三种方法;?方法二,转移目标地址缓冲栈????用一个小容量的高速缓冲栈保存最近执行的k条转移指令的“转移历史表”和转移目标地址。“转移指令地址”字段采用全相联方式访问。当程序中执行到一条转移指令时,把当前指令地址与转移目标缓冲栈中的所有转移指令地址进行比较;如果发现有相等的,则根据同一行中的“转移历史表”所记录的历史信息预测本次转移的方向,同时用转移目标地址预取指令。在实际转移条件形成之后,可以根据某一种规则修改“转移历史表”。
;Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.;方法三,转移目标指令缓冲栈????当转移指令在指令分析部件中译码时,转移不成功方向上的指令已经被预取到先行指令缓冲栈中,或者已经存放在指令Cache中,为了能够在转移成功方向上也预取一部分指令,可以把转移目标地址部分改为存放转移目标地址之后的n条指令。设置转移目标指令缓冲栈的转移预测方法的工作原理,预测转移方向的规则和修改“转移历史表”的方法与方法二相同。
;Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.;4.3.3 基于硬件的前瞻执行;;;;;ROB中的每一项由以下4个字段组成:;5. 采用前瞻执行机
文档评论(0)