|
知识路径: > 计算机系统综合知识 > 计算机组成与体系结构 > 各种计算机体系结构的特点与应用(SMP、MPP等) > 各种体系结构 > 流水线技术 >
|
考试要求:掌握
相关知识点:3个
|
|
|
|
流水线的关键在于“重叠执行”,因此如果这个条件不能够满足,流水线就会被破坏。这种破坏主要来自3种情况:
|
|
|
(1)转移指令。因为前面的转移指令还没有完成,流水线无法确定下一条指令的地址,因此也就无法向流水线中添加这条指令。从这里的分析可以看出:无条件跳转指令是不会影响流水线的。
|
|
|
全局性相关就是指转移指令(尤其是条件转移指令)与它后面的指令之间存在关联,使之不能同时解释,执行转移指令时,可能会改动指令缓冲器中预取到的指令内容,从而会造成流水线吞吐率和效率下降,比局部性相关的影响要严重得多,所以称为全局性相关。解决全局性相关有3种方法:猜测转移分支、加快和提前形成条件码、加快短循环程序的处理。
|
|
|
(2)共享资源访问的冲突。也就是后一条指令需要使用的数据,与前一条指令发生的冲突,或者相邻的指令使用了相同的寄存器,这也会使得流水线失败。为了避免冲突,就需要把相互有关的指令进行阻塞,这样就会引起流水线效率的下降。一般来说,指令流水线级数越多,越容易导致数据相关,阻塞流水线。当然,也可以在编译系统上进行设置,当发现相邻的语句存在资源共享冲突的时候,在两者之间插入其他语句,将两条指令进入流水线的时间拉开,以避免错误。
|
|
|
局部性相关处理由于流水机器同时解释多条指令,这些指令可能有对同一主存单元或同一寄存器“先写后读”的要求,这时就出现了相关,这种相关包括指令相关、访存操作数相关以及通用寄存器组相关等,它只影响相关的两条或几条指令,而且至多影响流水线的某些段推后工作,并不会改动指令缓冲器中预取到的指令内容,影响是局部的,所以称为局部性相关。解决局部性相关有两种方法:一种是推后法,即推后对相关单元的读,直至写入完成,另一种是通路法,即设置相关专用通路,使得不必先把运算结果写入相关存储单元,再从这里读出后才能使用,而是经过相关专用通路直接使用运算结果,这样可以加快速度。
|
|
|
(3)响应中断。当有中断请求时,流水线也会停止。流水线响应中断有两种方式:一种是立即停止现有的流水线,称为精确断点法,这种方法能够立即响应中断,缩短了中断响应时间,但是增加了中央处理器的硬件复杂度。还有一种是在中断时,在流水线内的指令继续执行,停止流水线的入口,当所有流水线内的指令全部执行后,再执行中断处理程序。这种方式中断响应时间较长,被称为不精确断点法,优点是实现控制简单。
|
|
|