某计算机系统采用5级流水线结构执行指令,设每条指令的执行由取指令(2Δt )、分析指令(1Δt )、取操作数(3Δt)、运算(1Δt)和写回结果(2Δt)组成, 并分别用5个子部件完成,该流水线的最大吞吐率为(1/3Δt) 。若连续向流水线输入 10 条指令,则该流水线的加速比为(5:2)。
流水线是通过将指令执行拆分为多个分段并行处理来提升运算效率的技术,核心知识点如下:一是流水线周期,由各执行分段中耗时最长的分段时间决定,这是流水线重复运行的最小时间单位;二是最大吞吐率,指流水线处于饱和状态时单位时间内可完成的最多指令数量,计算公式为1除以流水线周期;三是多指令流水线执行时间,执行n条指令的总耗时等于单条指令走完所有分段的总时间,加上(n-1)倍的流水线周期,因为第一条指令需完成全段流程,后续每经过一个流水线周期即可完成一条指令;四是加速比,用于衡量流水线的效率提升幅度,计算方式为顺序执行n条指令的总时间(单条指令总耗时乘以n)除以流水线执行n条指令的总时间。此外需注意,理想状态下若各分段执行时间相同,加速比等于流水线的分段数;实际中因各分段时间存在差异,加速比会低于理想值,且输入的指令数量越多,流水线越接近饱和,实际吞吐率就越接近最大吞吐率。
本题考察的是流水线的三大计算公式:流水线执行时间、加速比、吞吐率。
1. 最大吞吐率计算
每一级的执行时间分别是:取指令 2Δt、分析指令 1Δt、取操作数 3Δt、运算 1Δt、写回结果 2Δt
流水线周期 取决于耗时最长的一级,即取操作数(3Δt)。
最大吞吐率 = 1 / 流水线周期 = 1 / 3Δt
所以小题1选 B。
2. 加速比计算
不使用流水线的执行时间(顺序执行10条指令):
每条指令耗时 = 2Δt + 1Δt + 3Δt + 1Δt + 2Δt = 9Δt
总时间 = 10 × 9Δt = 90Δt
使用流水线的执行时间(n条指令公式):
T = 第一条指令的总时间 + (n - 1) × 流水线周期
= 9Δt + (10 - 1) × 3Δt
= 9Δt + 27Δt
= 36Δt
加速比 = 90Δt / 36Δt = 5 : 2
所以小题2选 C。
