一、流水线的概念
二、流水线工作流程
取指:由取指部件实现,负责内存把指令取到CPU中;
分析:由分析部件进行分析指令;
执行:由执行部件实现,负责将指令进行译码后,执行指令;
三、未使用流水线执行指令
1、执行过程
-
没有使用流水线时,当第一条指令的取指部件进行取指时,分析部件和执行部件是空闲的;
-
当取指部件取指完成后,分析部件开始分析指令,这时取指部件和执行部件是空闲的;
-
当分析部件执行完成后,执行部件开始编译后执行指令,此时取指部件和分析部件又是空闲的;
2、结论
四、使用流水线执行指令
1、执行过程
-
当第一条指令开始执行时,取指部件开始工作,分析部件和执行部件空闲;
-
当第一条指令取指完成后,分析部件开始工作;此时取指部件就空闲出来了,此时就可以去取第二条指令了;
-
当第一条指令分析完成后,执行部件开始工作;此时分析部件就空闲出来了,此时就可以对刚取的第二条指令进行分析了;并且由于此时第二条指令取指完成了,所以此时取指部件又空闲出来了,所以此时可以去取第三条指令了;
2、结论
五、流水线周期
解析:
(1)例如流水线上的工人,三个人合作完成一件物品;第一个人需要2秒,第二个人需要4秒,第三个人需要1秒;
(2)如果此时将完成这件物品的周期定为1秒,那么第一、第二个人就无法完成自己的工作;
(3)只有将周期定为4秒的时候,这三个人才都能完成自己的工作;
(4)所以我们一般将 完成一件物品 执行所需时间最长的阶段的时间,定为周期,例子中的周期是4秒;
六、流水线计算公式
(1)由图可知,执行第一条指令时,需要3个阶段;
(2)执行完第一条指令时,第二条指令zh已经执行完分析阶段了,只需要有一个执行阶段就可完成第二条指令的执行;
(3)当第二条指令执行完成时,第三条指令已经执行完分析阶段了,也只需要一个执行阶段就可以完成第三条指令的执行;
(4)所以执行n条指令时,只需要用单条指令的时间(第一条指令的三个阶段的时间的和)+(n-1)条指令执行所需要的时间;
七、流水线的吞吐率
八、考法1:流水线的相关计算