前言
流水线的想法源自于传统工厂生产产品的方式,通过这种方式大大提高了生产效率,反应在CPU上就是提高了指令的吞吐率。
上篇文章介绍了单周期处理器,姑且算是揭开了CPU那层神秘的面纱。现在我们来深入了解一下,一个超标量流水线处理器是什么样的。
流水线的设计
我们可以把一条指令的执行周期分为五个单独的过程,取指,译指,执行,访存,回写
。
要实现流水线,就得把每一步的计算结果用寄存器暂时保留下来,以便在下一个时钟周期到来时,将其提供给下一个步骤。下图的绿色长条,正是这些结果保存到寄存器所花的时间。还有一个值得注意的是,要保证流水线的平衡性,每个步骤所花的时间必须保证都在一个时钟周期内(比如,把一个耗时很长的步骤划分为两个小步骤),最好等于一个时钟周期,这样效率才能达到最高的。
总结的来说,流水线的目的,就是在时间上实现并行。
超标量流水线
具有两条或两条以上并行工作的流水线结构称为超标量结构。