1、流水线的工作原理
典型的流水线设计是将原本一个时钟周期完成的较大的组合逻辑通过合理的切割后分由多个时钟周期来完成,这样一来该部分逻辑运行的时钟频率就会有明显的提升,尤其是当为关键路径时,采用流水线设计后整个系统的性能会得到提升。
原因在于缩短了关键路径的长度。(结合Tsu和Thold那个计算公式来理解,减少了关键路径就减少了Tdelay的大小。)
2、经典的五级流水线
图片来源于:https://www.rvmcu.com/campus.html中的大学计划中的课程资源PPT
经典的五级流水线就是由取值、译码、执行、写回、访存这五个步骤构成的。
3、流水线深度是否越深越好?
流水线的不同深度都有优缺点,需要根据不同的应用场景进行合理的选择。如果追求性能,级数可以多一点;如果追求面积和功耗,那么级数可以少一点。
流水线加深的正面意义:流水线的级数越多,意味着流水线被切割得越细,每一级流水线内容容纳的硬件逻辑便越少。在两级寄出器之间的硬件逻辑越少,则意味着能够运行到更高的主频(可参考时钟最高时钟频率的计算)。因此现代处理器流水线深度极深主要是由于处理器追求高频的指标所驱使的。主频越高,也意味着流水线的吞吐率越高,从而性能越高,这是流水线深度加深的正面意义。(eg:高端的Cortex-A系列由于有十几级的流水线,所以能够运行到高达2GHZ的主频,Intel的x86处理器甚至采用几十级的流水线深度将主频推到3-4GHz的高度)
流水线的负面意义:(1)由于每一级流水线都由寄存器组成,更多的流水线级数要消耗更多的寄存器,以及更多的面积开销。