我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:双彩网 > 指令级并行 >

计算机系统结构第4章指令级并行及限制(1指令级并行的限制因素)pp

归档日期:07-02       文本归类:指令级并行      文章编辑:爱尚语录

  下载后只包含 1 个 PPT 格式的文档,里面的视频和音频不保证可以播放,查看文件列表

  几乎所有的处理机都利用流水线来使指令重叠并行执行,以达到提高性能的目的。这种指令之间存在的潜在并行性称为指令级并行。(ILP:Instruction-Level Parallelism)

  在流水线模型机中,如果指令间无相关或者相关可以通过专用数据通路消除,则流水线没有停顿,指令级并行得以充分发挥。但是,不能消除的相关必然会导致流水线的停顿,使流水线的利用率下降。例如,第3章介绍涉及load指令的内部前推技术时只能强制暂停流水线的执行。

  因此如果要避免暂停流水线,一个相关指令的执行必须和被相关的前一条指令的要分开,分开的时钟周期需至少等于被相关的指令的流水线延迟。

  2. 将分别以硬件和软件实现的方式讨论如何打乱指令之间的顺序,既保证执行结果的正确性,又不牺牲性能。

  打乱指令顺序主要有两种方法:一种是在编译阶段静态的发现指令级并行,再重新排序和优化指令(静态调度);一种是在硬件执行指令时动态的发现指令级的并行,再重新排序指令(动态调度)。

  如Intel的Pentium系列采用动态调度;Intel的Itanium(用于科学领域和特殊应用)采用静态调度。在RISC机器中,指令系统支持编译优化,其编译器都会采用静态调度方式,有的也同时采用动态调度。

  (1)读后写:指令i先执行,指令j写的名是指令i读的名。反相关指令间的顺序是必须保证的。

  (2)写后写:指令j和指令i写相同的名。输出相关指令的执行顺序是不能颠倒的。。

  与数据相关比较,名相关的指令间没有数据交换。如果一条指令中的名改变了,并不影响另外一条指令的执行。因此,可以通过改变指令中操作数的名字来消除名相关,这就是换名技术。

  对寄存器操作数进行换名称为寄存器换名。这个过程可以用编译器静态完成,也可以用硬件动态完成。

  当数据相关发生在寄存器之间时,编译器较容易判断,因为寄存器是按统一规则被唯一命名的,不存在二义性。

  而对于存储器中的数据相关性判断要困难得多,如10(R1)与20(R2)表示相同地址。又如程序执行时的有效地址会随着执行变化,20(R4)与20(R4)可能是不同的。因此,存储器数据相关性检测会更复杂,通常用硬件判断。

  (1)与控制相关的语句或指令不能移到分支语句或指令之前执行。例如if…then语句中,then后面的语句不能移到if之前执行。

  (2)与控制无关的语句或指令不能移到该分支语句或指令之后,从而受这个分支控制。例如if…then语句中,if前的语句不能移到then后面部分执行。

  由于三条分支指令的存在,引起控制相关,导致其后的指令不能跨越分支指令进行调度,即不同循环遍次里 内容来自淘豆网转载请标明出处.

本文链接:http://f-taiken.net/zhilingjibingxing/235.html