文章目录
- 一、流水线技术
- 1、指令并行执行
- 2、流水线技术推演
- 二、流水线执行时间计算
- 1、流水线执行时间示例
- 2、流水线周期概念
- 3、流水线执行时间计算公式
- 4、流水线执行时间计算公式 - 理论公式
- 5、流水线执行时间计算公式 - 实践公式
- 6、流水线时间计算示例
在软考中 , 涉及到 流水线技术 的相关题型 :
- 流水线执行时间计算
- 流水线吞吐率计算
- 流水线加速比计算
一、流水线技术
1、指令并行执行
流水线技术 是一种重要的 " 并行处理技术 " , 其借鉴了 工业流水线制造 的思想 , 通过 在 程序执行时 多条指令 重叠进行操作 , 提高了计算机的 处理效率 和 指令的平均执行速度 ;
2、流水线技术推演
计算机 指令 执行时 , 主要进行下面三个步骤 :
- 首先 , 进行 取指 操作 ;
- 然后 , 进行 分析 操作 ;
- 最后 , 执行 指令 ;
这三个步骤 , 涉及到多个部件 , 流水线技术 指的是 同时执行 多条指令 的 不同部分 , 达到 各个部件 的 使用率 增加 , 指令的平均执行速度增加 ;
假设 取指 , 分析 , 执行 三个指令操作 各自需要 1 ms , 那么每条指令 需要 3 ms 才能执行完毕 , 如果是串行执行 , 执行 3 条指令 , 需要花费 9 ms 才能执行完毕 ;
将上述执行过程 绘制成 时空图 , 如下图所示 :
下图中 , 取指操作 , 每次取指完毕后 , 需要休息 2 ms , 等待第个指令的取值步骤执行 ;
同理 , 指令分析 和 指令执行 操作 , 每次也要休息 2 ms , 才能执行下一个指令的对应步骤 ;
这样所有的部件 , 只有 1/3 的时间处于工作状态 , 剩余时间都处于等待状态 ;
将上述 时空图 中的空白部分 取消 , 后面的 指令操作 进行前移 , 就可以解决 指令执行过程中 各个部件 利用率低的问题 ;
整个推演过程如下 :
二、流水线执行时间计算
1、流水线执行时间示例
将流水线 从 3 条指令 , 扩展到 n 条指令 ;
第一条指令执行需要花费 3 ms 执行完毕 , 第二条指令到第 n 条指令 , 每条指令只需要花费 1 ms 就可以执行完毕 ;
将 n 条指令的执行时间可以分为两个部分 :
- 第一条指令执行时间 , 又称为 " 流水线建立时间 " ;
- 之后 剩余的指令执行时间 , n - 1 条指令 , 每条指令只需要花费 1 ms 就可以执行完成 , 这个 1ms 又称为 " 流水线周期 " ;
2、流水线周期概念
一条指令执行需要经过 取指 / 分析 / 执行 三个步骤 , 流水线周期 是 上述三个步骤中最长的一段时间 , 如 : 取指 1 ms , 分析 2 ms , 执行 3 ms , 则 流水线周期是 3 ms ;
指令完整的执行时间是
如果要串行执行 10 条指令 , 则需要花费
3、流水线执行时间计算公式
流水线执行时间计算公式 1 :
- 流水线建立时间 : 第一条指令执行时间 是 所有指令步骤 ( 取指 / 分析 / 执行 ) 的执行时间总和 ;
- 除第一条指令之外的剩余指令执行时间 : 流水线周期 是 所有 指令步骤 ( 取指 / 分析 / 执行 ) 中 , 耗费最长的时间 ;
4、流水线执行时间计算公式 - 理论公式
流水线执行时间计算公式 2 - 理论公式 :
- k 是指令执行的步骤数
- 指的是 每个 指令步骤 所需的时间 ;
- 是 指令 执行需要的 完整时间 ;
- t 是指令的 流水线周期
- 是 第一条指令执行所需的时间 , 又称为 " 流水线建立时间 " ;
- 是 除第一条指令之外 , 剩余 条指令执行的时间 ,
理论公式 时空图 如下所示 :
默认情况下 , 使用 理论公式 , 如果无法计算出答案 , 则使用 实践公式 ( 使用率较低 ) ;
5、流水线执行时间计算公式 - 实践公式
流水线执行时间计算公式 3 - 实践公式 :
- 该公式中 , 默认为 指令执行的 每个步骤 耗时都是相同的 , 时间为
- 这个时间
实践公式 时空图 如下所示 :
默认情况下 , 使用 理论公式 , 如果无法计算出答案 , 则使用 实践公式 ( 使用率较低 ) ;
6、流水线时间计算示例
一条指令执行需要经过 取指 / 分析 / 执行 三个步骤 , 流水线周期 是 上述三个步骤中最长的一段时间 , 如 : 取指 1 ms , 分析 2 ms , 执行 3 ms , 则 流水线周期是 3 ms ;
指令完整的执行时间是
如果要串行执行 10 条指令 , 则需要花费
如果按照流水线方式执行 , 则执行 10 条指令所需的时间为 :