计算机系统结构第四章.pptxVIP

  • 0
  • 0
  • 约1.05万字
  • 约 10页
  • 2025-05-12 发布于四川
  • 举报

第四章指令级并行4.1 指令级并行的概念4.2 指令的动态调度4.3 动态分支预测技术4.4 多指令流出技术4.5 循环展开和指令调度

(ILP:Instruction-LevelParallelism)几乎所有的处理机都利用流水线来使指令重叠并行执行,以达到提高性能的目的。这种指令之间存在的潜在并行性称为指令级并行。01硬件+软件技术必须要硬件技术和软件技术互相配合,才能够最大限度地挖掘出程序中存在的指令级并行。本章研究:如何通过各种可能的技术,获得更多的指令级并行性。024.1指令级并行的概念

4.1指令级并行的概念流水线处理机的实际CPI理想流水线的CPI加上各类停顿的时钟周期数:CPI流水线=CPI理想+停顿结构冲突+停顿数据冲突+停顿控制冲突理想CPI是衡量流水线最高性能的一个指标。通过减少右边各项,就能减小总的CPI,从而提高IPC。IPC:InstructionsPerCycle(每个时钟周期完成的指令条数)

4.1指令级并行的概念1.循环级并行:使一个循环中的不同循环体并行执行。开发循环体中存在的并行性是指令级并行研究的重点之一最基本的开发循环级并行的技术循环展开(loopunrolling)技术采用向量指令和向量数据表示2.相关与流水线冲突静态指令调度动态指令调度

4.1指令级并行的概念对于正确地执行程序来说,必须保持的最关键的两个属性是:数据流和异常行为。数据流:指数据值从其产生者指令到其消费者指令的实际流动。保持异常行为是指:无论怎么改变指令的执行顺序,都不能改变程序中异常的发生情况。即原来程序中是怎么发生的,改变执行顺序后还是怎么发生。弱化为:指令执行顺序的改变不能导致程序中发生新的异常。

相关1相关是指两条指令之间存在某种依赖关系,是程序固有的一种属性。2相关包括:名相关,数据相关,控制相关。3冲突(HAZARDS,也称为冒险)4冲突是指由于相关的存在,使得指令流中的下一条指令不能在指定的时钟周期执行。5具体一次相关是否会导致实际冲突的发生以及该冲突会带来多长的停顿,则是流水线的属性。流水线冲突包括:结构冲突,数据冲突,控制冲突。6内容回顾:4.2指令的动态调度

4.2指令的动态调度3.冲突的解决1)结构冲突:停顿(流水线气泡)2)数据冲突:定向传送技术定向传送与停顿相结合指令调度(依靠编译器):前提:在乱序流动的流水线中。不足:可能会产生新的WAR或WAW冲突。3)控制冲突:预测分支失败预测分支成功延迟转移技术都是通过编译器来实现静态调度

依靠编译器对代码进行静态调度,以减少相关和冲突。它不是在程序执行的过程中,而是在编译期间进行代码调度和优化。通过把相关的指令拉开距离来减少可能产生的停顿。静态调度在程序的执行过程中,依靠专门硬件对代码进行调度,减少数据相关导致的停顿。动态调度4.2指令的动态调度

动态调度的基本思想4.2指令的动态调度考虑下面一段代码:DIV.D F4,F0,F2SUB.D F10,F4,F6ADD.D F12,F6,F14SUB.D指令与DIV.D指令关于F4相关,导致流水线停顿。ADD.D指令与流水线中的任何指令都没有关系,但也因此受阻。

4.2指令的动态调度一旦一条指令受阻,其后的指令都将停顿。解决办法:允许乱序执行ID在前面的基本流水线中:检测结构冲突检测数据冲突

4.2指令的动态调度为了允许乱序执行,我们将5段流水线的译码阶段再分为两个阶段:流出(Issue,IS):指令译码,检查是否存在结构冲突。(in-orderissue)读操作数(ReadOperands,RO):等待数据冲突消失,然后读操作数。(outoforderexecution)ISRO检测结构冲突检测数据冲突

4.2指令的动态调度有的代码在采用乱序执行后可能会发生WAR冲突和WAW冲突。例如,考虑下面的代码DIV.D F4,F0,F2SUB.D F10,F4,F6ADD.D F6,F8,F14DIV.D F10,F1,F3存在反相关存在输出相关存在数据相关SUB.DF10,F4,F6WAR冲突WAW冲突Tomasulo算法可以通过使用寄存器重命名来消除。

4.2指令的动态调度Tomasulo算法基本思想核心思想:记录和检测指令相关,操作数一旦就绪就立即执行,把发生RAW冲突的可能性减少到最小;通过寄存器换名来消除WAR冲突和WAW冲突。

4.2指令的动态调度IBM360/91首先采用了Tomasu

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档