- 31
- 0
- 约3.32千字
- 约 42页
- 2017-05-26 发布于河南
- 举报
13计算机系统结构2-2
2.3 流水线的结构相关和数据相关;1 流水线的结构相关;表2.1 不同类型指令中各流水段的操作; 假定流水线中有五条指令I1,I2,I3,I4,I5.
非流水机器中,指令顺序执行,资源不会冲突。
流水线执行时,系统资源可能发生冲突。
LOAD中 ME : 访问主存 IF:(主存中)取指令 ;解决存储器争用冲突的办法;2 流水线的数据相关?;指令在流水线中执行时,可能改变指令读/写操作数顺序;数据相关及其避免方法;定向技术解决数据相关的ALU方案;采用定向技术解决数据相关 ;3?采用联锁硬件解决数据相关
定向传送技术来不及用时,可通过流水线联锁硬件,使某些指令或流水段暂停流动一或多个周期,再用定向传送技术。又称为空闲周期。 ? ?
; 4 软件法(静态指令调度):优化编译法,通过指令重新排尽可能消除数据相关。
如
ADD ? R1,R2,R3 ;
SUB R4,R1,R5 ;
改为
ADD ? R1,R2,R3 ;
………
SUB R4,R1,R5 ;
使两条“相关”指令“分开” ;【例】假设某指令序列中20%的指令是LOAD指令,且紧跟LOAD指令之后的半数指令使用到LOAD指令载入的结果。如果这种数据相关将产生一个时钟周期的延迟,问理想流水线(没有任何延迟,CPI为1)的指令执行速度要比这种真实流水线快多少?
解:假定问理想流水线(没延迟)的CPI为1。 LOAD指令之后的半数指令需要暂停,CPI为2。又知LOAD指令占全部指令的20%,所以真实流水线的实际CPI为
??
;2.4 流水线控制相关 ;流水线控制相关;条件转移指令对流水线的影响;转移指令对性能的影响;转移指令对性能的影响;【例】据统计,在一些典型程序中,转移指令所占的比例为20%,转移成功的概率 为q=60%。假设有一条8个流水段的指令流水线,问:由于条件转移指令的影响,流水线的最大吞吐率下降多少?
解:已知 p=0.20, q=0.60? k=8
根据
则;静态分支技术
静态转移预测技术(猜测法)
提前形成条件码,生成转移目标地址
延迟转移
改进循环程序
硬件上计算两个PC值(转移成功或失败)。
动态分支预测技术
“转移历史表”BHT。
“转移目标缓冲栈”(BTB)
转移目标指令缓冲栈BTIB。
;1 静态转移预测技术:
条件转移指令出现时,对条件转移方向进行预测(或转移成功或不成功)。按预测方向设置指令缓冲栈并预取指令。
程序执行过程中,静态预测转移的方向变。
静态转移预测可用硬件,也可软件实现。
可以在转移的两个方向上都采取预取指令。
;遇条件转移时,用“猜测法”选择一个分支方向。
选择“转移不成功”方向。控制逻辑简单。
“猜测”不正确,已执行多个流水段将浪费。;
2 提前形成条件码,生成转移目标地址
条件转移指令BRANCH通常要在ME形成条件转移地址。多数情况下,可以提前判别转移是否发生或形成条件转移代码。
一些运算型条件转移指令,在实际运算前(ID)或运算中间(EX)就能产生条件码。不必等运算结束。
把计算转移目标地址操作移到ID段完成.
??;3 延迟转移:
遇转移指令时,依靠编译器把一条或几条与转移结果无关的指令调度到转移指令后面(调度槽),以延长转移指令的可执行时间,这些调度指令完成后,转移指令的目的地址已计算出来。
调度到转移指令后的无关指令须遵循有效和有用的原则。
延迟转移要求流水线段数不能太多,段数越多,调度到转移指令后的 “无关指令”也要愈多。
没有合适指令调度时,无关指令可以是空操作。 ;“延迟转移”下的调度模式 ;“延迟转移”下的流水线时空图 ; 4 改进循环程序:
循环操作是程序中广泛使用的一种条件转移。条件转移是否结束,取决于循环操作是否达到规定次数。
?一般转移不成功时,转移指令对流水线的影响较小。因此,对给定的程序,转移成功的概率越高,则对流水线的影响越大。
编译器在对源程序进行编译时,通过提高循环程序中转移不成功的概率。???
;i0 转移(概率大) ; 5 硬件上设置两个指令缓冲栈;动态分支预测技术?
从转移指令近期转移是否成功的记录,预测下一次转移的方向。称为动态分支预测技术.
一、如何记录转移历史信息
根据记录的转移历史信息,预测转移方向。?记录转移历史信息的方法通常有三种:
把最近几次转移或不转移的信息记录在一个“转移历史表”BHT。
把最近几次转移或不转移的信息记录在一个“转移目标缓冲栈”(BTB)。
第三种是存放在一个转移目标指令缓冲栈BTIB。;1 使用BHT的转移预测
BH
原创力文档

文档评论(0)