并行
在学习流水线之前,必须掌握 并行 的概念:两个或两个以上的事件在 同一时刻发生
计算机指令在执行步骤
一条计算机指令在执行时,可以分为以下三个步骤:
- 取指:根据控制器的要求,从存储器中取出某条指令送到指令寄存器。
- 分析:对指令进行译码,和取操作数操作。
- 执行:把操作结果写到通用寄存器中。
指令串行的缺点
如果 取指、分析、执行 分别需要 1 个单位的时间来执行,当 3条指令 串行 时,则需要 9 个单位的时间,如下:
提示: t表示时间单位,1t 表示 1个单位时间
| 1t | 2t | 3t | 4t | 5t | 6t | 7t | 8t | 9t | |
|---|---|---|---|---|---|---|---|---|---|
| 取指 | 1取指 | 2取指 | 3取指 | ||||||
| 分析 | 1分析 | 2分析 | 3分析 | ||||||
| 执行 | 1执行 | 2执行 | 3执行 |
缺点:
- 有大量的空闲时间,如:当
执行 指令1时,取指和分析都在空闲 - 串行时,耗时长
流水线
流水线的概念,就是在程序执行时,多条指令 并行 ,可以提高 各部件的利用率
使用流水线 的优点
如果使用了流水线,则只需要 5 个单位的时间
- 第一条指令的
取指、分析、执行,总共还是需要3个时间单位 - 当
分析 指令1时,会 并行 执行取 指令2 - 当
执行 指令1时,会 并行 执行分析 指令2、取 指令3
如下:
| 1t | 2t | 3t | 4t | 5t | |
|---|---|---|---|---|---|
| 取指 | 1取指 | 2取指 | 3取指 | ||
| 分析 | 1分析 | 2分析 | 3分析 | ||
| 执行 | 1执行 | 2执行 | 3执行 |
结论:
- 多条指令并行
- 提高 各部件的利用率
- 提升 系统的吞吐率
流水线周期
指的是流水线执行过程中 最长的时间。
比如一条指令取指 3 纳秒,分析 4 纳秒,执行 1 纳秒,那么这条指令的流水线周期为 4 纳秒。
流水线时间计算公式
取指时间 + 分析时间 + 执行时间 + ( n - 1 ) * 流水线周期
解释:
取指时间 + 分析时间 + 执行时间是 第1条指令的时间,因为第1条指令 没有并行n - 1:是不包括第1条指令,指后面的指令
流水线的最大吞吐量(率)
解释:
- k:一般是3,表示取指、分析、执行3个阶段
- n:条数
- tmax:流水线周期
当 n 趋向无穷大时,k、-1 都不影响结果,忽略。最后 n 再约去,所以就是 1 / tmax
指令条数 / 流水线的执行时间
