文章目录
  • 一、流水线技术
  • 1、指令并行执行
  • 2、流水线技术推演
  • 二、流水线执行时间计算
  • 1、流水线执行时间示例
  • 2、流水线周期概念
  • 3、流水线执行时间计算公式
  • 4、流水线执行时间计算公式 - 理论公式
  • 5、流水线执行时间计算公式 - 实践公式
  • 6、流水线时间计算示例




在软考中 , 涉及到 流水线技术 的相关题型 :

  • 流水线执行时间计算
  • 流水线吞吐率计算
  • 流水线加速比计算





一、流水线技术




1、指令并行执行



流水线技术 是一种重要的 " 并行处理技术 " , 其借鉴了 工业流水线制造 的思想 , 通过 在 程序执行时 多条指令 重叠进行操作 , 提高了计算机的 处理效率 和 指令的平均执行速度 ;



2、流水线技术推演



计算机 指令 执行时 , 主要进行下面三个步骤 :

  • 首先 , 进行 取指 操作 ;
  • 然后 , 进行 分析 操作 ;
  • 最后 , 执行 指令 ;

这三个步骤 , 涉及到多个部件 , 流水线技术 指的是 同时执行 多条指令 的 不同部分 , 达到 各个部件 的 使用率 增加 , 指令的平均执行速度增加 ;

假设 取指 , 分析 , 执行 三个指令操作 各自需要 1 ms , 那么每条指令 需要 3 ms 才能执行完毕 , 如果是串行执行 , 执行 3 条指令 , 需要花费 9 ms 才能执行完毕 ;

【系统架构设计师】计算机组成与体系结构 ⑭ ( 流水线技术 | 指令并行执行 | 流水线执行时间计算 | 理论公式 / 实践公式 | 流水线建立时间 | 流水线周期 )_计算机组成与体系结构


将上述执行过程 绘制成 时空图 , 如下图所示 :

下图中 , 取指操作 , 每次取指完毕后 , 需要休息 2 ms , 等待第个指令的取值步骤执行 ;

同理 , 指令分析 和 指令执行 操作 , 每次也要休息 2 ms , 才能执行下一个指令的对应步骤 ;

这样所有的部件 , 只有 1/3 的时间处于工作状态 , 剩余时间都处于等待状态 ;

【系统架构设计师】计算机组成与体系结构 ⑭ ( 流水线技术 | 指令并行执行 | 流水线执行时间计算 | 理论公式 / 实践公式 | 流水线建立时间 | 流水线周期 )_指令并行执行_02

将上述 时空图 中的空白部分 取消 , 后面的 指令操作 进行前移 , 就可以解决 指令执行过程中 各个部件 利用率低的问题 ;

【系统架构设计师】计算机组成与体系结构 ⑭ ( 流水线技术 | 指令并行执行 | 流水线执行时间计算 | 理论公式 / 实践公式 | 流水线建立时间 | 流水线周期 )_指令并行执行_03



整个推演过程如下 :

【系统架构设计师】计算机组成与体系结构 ⑭ ( 流水线技术 | 指令并行执行 | 流水线执行时间计算 | 理论公式 / 实践公式 | 流水线建立时间 | 流水线周期 )_指令并行执行_04






二、流水线执行时间计算




1、流水线执行时间示例



将流水线 从 3 条指令 , 扩展到 n 条指令 ;

第一条指令执行需要花费 3 ms 执行完毕 , 第二条指令到第 n 条指令 , 每条指令只需要花费 1 ms 就可以执行完毕 ;



将 n 条指令的执行时间可以分为两个部分 :

  • 第一条指令执行时间 , 又称为 " 流水线建立时间 " ;
  • 之后 剩余的指令执行时间 , n - 1 条指令 , 每条指令只需要花费 1 ms 就可以执行完成 , 这个 1ms 又称为 " 流水线周期 " ;

【系统架构设计师】计算机组成与体系结构 ⑭ ( 流水线技术 | 指令并行执行 | 流水线执行时间计算 | 理论公式 / 实践公式 | 流水线建立时间 | 流水线周期 )_计算机组成与体系结构_05



2、流水线周期概念



一条指令执行需要经过 取指 / 分析 / 执行 三个步骤 , 流水线周期 是 上述三个步骤中最长的一段时间 , 如 : 取指 1 ms , 分析 2 ms , 执行 3 ms , 则 流水线周期是 3 ms ;

指令完整的执行时间是 【系统架构设计师】计算机组成与体系结构 ⑭ ( 流水线技术 | 指令并行执行 | 流水线执行时间计算 | 理论公式 / 实践公式 | 流水线建立时间 | 流水线周期 )_指令并行执行_06

如果要串行执行 10 条指令 , 则需要花费 【系统架构设计师】计算机组成与体系结构 ⑭ ( 流水线技术 | 指令并行执行 | 流水线执行时间计算 | 理论公式 / 实践公式 | 流水线建立时间 | 流水线周期 )_软考_07



3、流水线执行时间计算公式



流水线执行时间计算公式 1 :

【系统架构设计师】计算机组成与体系结构 ⑭ ( 流水线技术 | 指令并行执行 | 流水线执行时间计算 | 理论公式 / 实践公式 | 流水线建立时间 | 流水线周期 )_系统架构设计师_08

  • 流水线建立时间 : 第一条指令执行时间 是 所有指令步骤 ( 取指 / 分析 / 执行 ) 的执行时间总和 ;
  • 除第一条指令之外的剩余指令执行时间 : 流水线周期 是 所有 指令步骤 ( 取指 / 分析 / 执行 ) 中 , 耗费最长的时间 ;


4、流水线执行时间计算公式 - 理论公式



流水线执行时间计算公式 2 - 理论公式 :

【系统架构设计师】计算机组成与体系结构 ⑭ ( 流水线技术 | 指令并行执行 | 流水线执行时间计算 | 理论公式 / 实践公式 | 流水线建立时间 | 流水线周期 )_软考_09

  • k 是指令执行的步骤数
  • 【系统架构设计师】计算机组成与体系结构 ⑭ ( 流水线技术 | 指令并行执行 | 流水线执行时间计算 | 理论公式 / 实践公式 | 流水线建立时间 | 流水线周期 )_计算机组成与体系结构_10 指的是 每个 指令步骤 所需的时间 ;
  • 【系统架构设计师】计算机组成与体系结构 ⑭ ( 流水线技术 | 指令并行执行 | 流水线执行时间计算 | 理论公式 / 实践公式 | 流水线建立时间 | 流水线周期 )_流水线技术_11 是 指令 执行需要的 完整时间 ;
  • t 是指令的 流水线周期
  • 【系统架构设计师】计算机组成与体系结构 ⑭ ( 流水线技术 | 指令并行执行 | 流水线执行时间计算 | 理论公式 / 实践公式 | 流水线建立时间 | 流水线周期 )_系统架构设计师_12 是 第一条指令执行所需的时间 , 又称为 " 流水线建立时间 " ;
  • 【系统架构设计师】计算机组成与体系结构 ⑭ ( 流水线技术 | 指令并行执行 | 流水线执行时间计算 | 理论公式 / 实践公式 | 流水线建立时间 | 流水线周期 )_软考_13 是 除第一条指令之外 , 剩余 【系统架构设计师】计算机组成与体系结构 ⑭ ( 流水线技术 | 指令并行执行 | 流水线执行时间计算 | 理论公式 / 实践公式 | 流水线建立时间 | 流水线周期 )_计算机组成与体系结构_14 条指令执行的时间 , 【系统架构设计师】计算机组成与体系结构 ⑭ ( 流水线技术 | 指令并行执行 | 流水线执行时间计算 | 理论公式 / 实践公式 | 流水线建立时间 | 流水线周期 )_流水线技术_15

理论公式 时空图 如下所示 :

【系统架构设计师】计算机组成与体系结构 ⑭ ( 流水线技术 | 指令并行执行 | 流水线执行时间计算 | 理论公式 / 实践公式 | 流水线建立时间 | 流水线周期 )_软考_16



默认情况下 , 使用 理论公式 , 如果无法计算出答案 , 则使用 实践公式 ( 使用率较低 ) ;



5、流水线执行时间计算公式 - 实践公式



流水线执行时间计算公式 3 - 实践公式 :

【系统架构设计师】计算机组成与体系结构 ⑭ ( 流水线技术 | 指令并行执行 | 流水线执行时间计算 | 理论公式 / 实践公式 | 流水线建立时间 | 流水线周期 )_流水线技术_17

  • 该公式中 , 默认为 指令执行的 每个步骤 耗时都是相同的 , 时间为 【系统架构设计师】计算机组成与体系结构 ⑭ ( 流水线技术 | 指令并行执行 | 流水线执行时间计算 | 理论公式 / 实践公式 | 流水线建立时间 | 流水线周期 )_流水线技术_18
  • 这个时间 【系统架构设计师】计算机组成与体系结构 ⑭ ( 流水线技术 | 指令并行执行 | 流水线执行时间计算 | 理论公式 / 实践公式 | 流水线建立时间 | 流水线周期 )_指令并行执行_19
  • 【系统架构设计师】计算机组成与体系结构 ⑭ ( 流水线技术 | 指令并行执行 | 流水线执行时间计算 | 理论公式 / 实践公式 | 流水线建立时间 | 流水线周期 )_流水线技术_20
  • 【系统架构设计师】计算机组成与体系结构 ⑭ ( 流水线技术 | 指令并行执行 | 流水线执行时间计算 | 理论公式 / 实践公式 | 流水线建立时间 | 流水线周期 )_指令并行执行_21
  • 【系统架构设计师】计算机组成与体系结构 ⑭ ( 流水线技术 | 指令并行执行 | 流水线执行时间计算 | 理论公式 / 实践公式 | 流水线建立时间 | 流水线周期 )_软考_13


实践公式 时空图 如下所示 :

【系统架构设计师】计算机组成与体系结构 ⑭ ( 流水线技术 | 指令并行执行 | 流水线执行时间计算 | 理论公式 / 实践公式 | 流水线建立时间 | 流水线周期 )_流水线技术_23



默认情况下 , 使用 理论公式 , 如果无法计算出答案 , 则使用 实践公式 ( 使用率较低 ) ;



6、流水线时间计算示例



一条指令执行需要经过 取指 / 分析 / 执行 三个步骤 , 流水线周期 是 上述三个步骤中最长的一段时间 , 如 : 取指 1 ms , 分析 2 ms , 执行 3 ms , 则 流水线周期是 3 ms ;

指令完整的执行时间是 【系统架构设计师】计算机组成与体系结构 ⑭ ( 流水线技术 | 指令并行执行 | 流水线执行时间计算 | 理论公式 / 实践公式 | 流水线建立时间 | 流水线周期 )_指令并行执行_06



如果要串行执行 10 条指令 , 则需要花费 【系统架构设计师】计算机组成与体系结构 ⑭ ( 流水线技术 | 指令并行执行 | 流水线执行时间计算 | 理论公式 / 实践公式 | 流水线建立时间 | 流水线周期 )_系统架构设计师_25



如果按照流水线方式执行 , 则执行 10 条指令所需的时间为 :

【系统架构设计师】计算机组成与体系结构 ⑭ ( 流水线技术 | 指令并行执行 | 流水线执行时间计算 | 理论公式 / 实践公式 | 流水线建立时间 | 流水线周期 )_软考_26