计算机组成原理——指令流水线
1. 综述
为提高CPU利用率,加快执行速度,将指令分为若干个阶段,可并行执行不同指令的不同阶段,从而多个指令可以同时执行。在有效地控制了流水线阻塞的情况下,流水线可大大提高指令执行速度。博客园知识库:CPU流水线的探秘之旅
经典的五级流水线:取址、译码/读寄存器、执行/计算有效地址、访问内存(读或写)、结果写回寄存器。链接:史上最经典的5级流水线
流水线阻塞的情况有三种(baidu知道):
1. 结构相关:指令重叠执行的过程中,硬件资源满足不了指令重叠执行的要求,发生资源冲突,这时将产生结构相关。解决的办法是增加硬件资源,如解决访存冲突就采用指令Cache和数据Cache分离的哈弗结构。
2. 数据相关:当一条指令需要前面某条指令的执行结果,而两者正在并行执行的情况下,将产生数据相关。解决方式:数据重定向,或称为旁路技术。
3. 控制相关:有跳转语句、分支指令,或其他改变IP值的指令,将产生控制相关。解决方法:分支预测技术,投机执行,延迟分支。
若I1和I2数据相关,如I2需要I1的结果,则I2在其译码阶段被阻塞,直到I1全部完成才恢复流动。