01计算机组成原理与体系结构
8-流水线的计算题
2021-07-22 870 5
简介 图文解析计算(非常全)
例题:
一条指令的执行过程可以分解为取指、分析和执行三步,它们的执行时间分布为3△t、2△t、4△t,若按串行方式执行,则10条指令全部执行完需要()△t;若按流水线的方式执行,流水线周期为()△t,则10条指令全部执行完需要()△t,流水线的吞吐率为(),加速比为()流水线的效率为()。
题目分析:
串行执行10条指令(串行执行的过程如上图所示),那么10条指令需要 10 * (3△t + 2△t + 4△t) = 90△t
流水线的周期为指令执行的各个子过程时间最长的一段, 三段的执行时间分布为 3△t、2△t、4△t,流水线的周期为4△t
使用流水线技术执行10条指令的时间
理论公式(根据上图理解公式):
(3△t + 2△t + 4△t) + (10 - 1)* 4△t = 45△t
实践公式(根据上图理解公式):
实践公式中,流水线的建立时间是 指令执行的段数 * 指令的周期,
3 * 4△t + (10 - 1)* 4△t = 48△t
理论公式存在争议: 实际执行的时候会增加复杂度,CPU设计的时候,如果需要单独处理第一条指令的执行时间,并进行累加,之后再计算剩下指令的执行时间,增加了实现的复杂度。
而对于实践公式,只需要设计算法(k + n -1)* Δt就可以。
流水线的吞吐率
1. 指令条数为 10
2. 流水线的执行时间为 45△t
吞吐率为 10 / 45△t
流水线的加速比
1. 不使用流水线的执行时间90△t
2. 使用流水线的执行时间45△t
加速比为 90△t / 45△t = 2
流水线的效率
1. 10个任务占用的时空区: 10 *( 3△t + 2△t + 4△t ) = 90
2. 10个任务占用的总时空区:
长度: ( 3△t + 2△t ) + 4△t * 10 = 45△t
宽度: 4
总时空区 = 45△t * 4 = 180△t
3. 流水线的效率
45△t / 180△t
最终完整的答案(计算结果一般不需要约分)
一条指令的执行过程可以分解为取指、分析和执行三步,它们的执行时间分布为3△t、2△t、4△t,若按串行方式执行,则10条指令全部执行完需要( 90 )△t;若按流水线的方式执行,流水线周期为( 4 )△t,则10条指令全部执行完需要( 45 )△t,流水线的吞吐率为( 10 / 45△t ),加速比为( 2 )流水线的效率为( 45△t / 180△t )。