软考-软件设计:流水线技术

并行

在学习流水线之前,必须掌握 并行 的概念:两个或两个以上的事件在 同一时刻发生

计算机指令在执行步骤

一条计算机指令在执行时,可以分为以下三个步骤:

  1. 取指:根据控制器的要求,从存储器中取出某条指令送到指令寄存器。
  2. 分析:对指令进行译码,和取操作数操作。
  3. 执行:把操作结果写到通用寄存器中。

指令串行的缺点

如果 取指、分析、执行 分别需要 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

指令条数 / 流水线的执行时间

原文出处:/show_1GWs2WrSUnR.html