计算机科学中的流水线技术 - 图文 联系客服

发布时间 : 星期三 文章计算机科学中的流水线技术 - 图文更新完毕开始阅读64505f166c175f0e7cd137e0

k: OP R1, A2 ; R1 = (R1) OP (A2) K+1: OP R1 R2 ; R1 = (R1) OP (R2)

如果发生:

R1(k)?R1(k?1) 称R1数相关。如果发生:

R1(k)?R2(k?1) 称R2数相关。

发生通用寄存器数相关的情况与寄存器本身的结构合所采用的控制时序等也有关系。解决通用寄存器数相关主要有以下几种方法:

1. 如果通用寄存器所使用的触发,但也在通用寄存器算术单元之间建立直接数据路径,即不设置缓冲的注册或锁存器,不是通用寄存器数据的相关性。由于触发器允许在同一节奏之间的循环移位寄存器。在这种情况下,不需要分析周期,在节奏可以完成从通用寄存器的选择分别读取操作等操作,操作数的算术单元完成操作,并将结果写回寄存器。

如果构成通用寄存器的不是D触发器,或者在通用寄存器到运算器之间设有缓冲寄存器或者锁存器,则会发生寄存器数相关。

2.将分析指令推后一个周期执行。此方法跟前面处理主存空间数相关一样,完全可以解决问题。

3.将分析指令推后一个节拍。这种方法跟方法2相似,只是分的更细了。与方法2相比较,此方法在控制上稍嫌复杂,但是在速度上却要快一些。

4.设置“相关专用通路”。

在推动“分析”和“设置专用道”是解决了流水线处理2种基本方法。为减少的速度,成本的硬件设备,基本不增加。后者是增加硬件成本和维修设备,流水线效率。在流水线的设计过程,权衡之间运行速度和价格等因素,选择适当的方法。

4.4 控制相关

相关的数据,控制将产生更大的性能损失。控制程序执行的方向可能造成的相对变化,有时,我们也被称为全球相关。程序的执行可能改变方向的无条件转移指令,一般条件转移,转移,复杂条件,中断子程序调用。这里有一些常用的处理方法。

4.4.1 猜测法

设有条件转移指i,其两个分支分别为i和p,若转移成功时按原来的顺序从i接着往下执行;若转移成功是则转向p执行。流水方式是同时解释多条指令,因此,当指令i进入流水线,后面进i+1还是进p,只有等条件码建立才能知道,而这一般要等这条条件转移指令快流出流水线时才行。如果在此期间让i后的指令都等着,流水线就会“断流”,性能急剧下降。这种时候,绝大多数机器都采用猜测法来解决这一问题。

所以,猜想法选择哪支比较好?如果两家分支概率接近,应保持原来的顺序,继续执行我+ 1,因为这些指令预取指令缓冲区,可以迅速清除从指令缓冲区,进入流水线不等待。如果你选择的成功转让的分支,该命令是不可能在缓冲区的指令,这将需要很长的时间去,实际上停止线。

预测方法,应能保证预测错误恢复分支点原来的网站,通常有三种方式。一个是在指令解码,好操作,转让条件代码之前出现的任何操作;一个是让他做完手术,但不返回结果;另一个是让它和正常情况下,不分青红皂白地解释,只要有可能破坏的原始状态是后备缓冲区储存期,一旦猜错了后备缓冲区的内容恢复分支点。早期前用2种方法。现在,随着价格,体积,设备技术的进步,一般采用第三种方法来确保效率。

为了在猜错时能尽快回复到原分支点,转入另一分支,在沿猜测路径向前流动的同时,还可以由存贮器预取转移成功分支的头几条指令放在转移目标指令缓冲器中。以便在猜错时,不必从访存取p开始,减少了流水线的等待时间。 4.4.2 加快和提前形成条件码

尽快、尽早获得条件码以便提前知道流向哪个分支,是会有利于流水机器简化对转移的处理的。这可以从两方面采取措施。

一是加快质疑教学内部条件代码的形成,从指令执行前结束,形成反应结果的操作条件码。例如,结果是积极的,消极的和无条件的代码可以在手术前形成。amdahl470v / 6英寸按照这个思路,在流水线的操作输入装置设置运气,几乎可以确定其条件指令代码,以便具体操作可操作的结果状态代码的指令发送到分析组件。

另一方面是在一个程序预先形成的条件代码,这是特别适合回收计划在判断是否循环继续,转让的情况。例如,FOR TRAN做周期,执行循环终端语句,总是对循环控制数减1,如果降低的结果for0out的回路,或继续循环身体的一部分,这是通常使用的1和2等于零的条件转移指令的实现。为了使等于零的条件转移指令的条件代码可以形成,可以减少to1of事前指示和不相关的其他指令之前,甚至在推进到循环开始。

4.4.3 采取转移延迟

这是一个软件方法静态指令调度技术。没有额外的硬件,在编译目标教学计划,将转移指令和前面不相关的一个或多个指令交换位置,让成功转移一直延迟到一个或一个以上的指令执行后。这样,可以使转移造成的性能损失降低到0。

4.4.4 加快短循环程序的处理

一个小於长度的指令缓冲区容量可以短期循环程序整个一次性到指令缓冲区,并暂停预取指令执行周期,避免指令预取指令缓冲区循环指令执行被开发,可以减少内存存取重复取号;但因为循环分支概率高,所以退出循环结束的条件转移指令不断猜测循环分支,由于减少了条件分支线断线造成机会。

有些机器也要执行,让预取指令都在正常使用的指令缓冲区,转移到目标指令缓冲区。在检测周期,可以转移到指令缓冲区的内容作为短周期控制程序,消除了第一个周期,再从主内存和短周期中的程序指令操作的开销。有些机器允许的指令缓冲寄存器连接使用,允许更大的循环程序也可以加速处理。

第五章 中断处理与流水线调度

中断处理和非线性流水线及多功能流水线调度问题也是设计指令流水线时非常值得注意的两个大问题,在本章,我们将对这两大问题进行初步的研究。

5.1 中断处理

中断导致线路断开。然而,它的概率比条件的概率要低得多,这也是一个随机事件。因此,机加工中断是如何处理现场的保护和断点恢复,而不是如何缩短线路断开时间。

在执行指令在我中断,应在执行结束指令指示我,我+1已经没有开始执行的地方,但水是在同一时间机器解释多个指令,指示我,我+ + 1?可能已进入流水线和部分解释。一个流,其中的一些指令流的命令我吧。

早期水机,如360/ 91,为简化中断处理,采用不精确断点”方法。无论是否命令我,线路中断,不再允许后续指令尚未进入进入,但已在流水线不断流动的所有指令执行,然后转移到中断处理程序。在这方面,断点当然不会是我,可能