软件设计师精讲 流水线技术

来自姬鸿昌的知识库
跳到导航 跳到搜索

https://www.bilibili.com/video/BV13U4y1E7oA/?p=15

流水线-概念

相关参数计算:流水线执行时间计算流水线吞吐率、流水线加速比、流水线效率


流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。

各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。

生成缩略图出错:无法将缩略图保存到目标地点



流水线-流水线计算

生成缩略图出错:无法将缩略图保存到目标地点

一条指令的执行过程可以分解为取指、分析和执行三步,在取指时间 t取指=3∆t、分析时间 t分析=2∆t、执行时间 t执行=4∆t 的情况下,若按串行方式执行,则10条指令全部执行完需要(90)∆t ;

若按流水线的方式执行,流水线周期为(9)∆t ,则10条指令全部执行完需要(45)∆t 。

顺序执行的计算:(3+2+4)×10=90

流水线周期的计算:3+2+4=9

流水线10条指令全部执行完的计算:(3+2+4)+(10-1)×4=9+36=45

如果是选择题,选项中没有按理论公式计算得出的结果,就用实践公式计算:3×4+(10-1)×4=12+36=48


流水线计算理论公式和实践公式对比

生成缩略图出错:无法将缩略图保存到目标地点

流水线-流水线吞吐率计算

流水线的吞吐率(Though Put rate,TP)是指在单位时间内流水线所完成的任务数量或输出的结果数量

计算流水线吞吐率的最基本的公式如下:

生成缩略图出错:无法将缩略图保存到目标地点


流水线最大吞吐率:

生成缩略图出错:无法将缩略图保存到目标地点

一条指令的执行过程可以分解为取指、分析和执行三步,取指时间 t取指=3∆t、分析时间 t分析=2∆t、执行时间 t执行=4∆t。

10条指令的吞吐率?最大吞吐率?

10条指令的吞吐率

(3+2+4)+(10-1)×4=9+36=45∆t

最大吞吐率

流水线最大吞吐率就是流水线周期的倒数:1/4∆t


例题讲解

下列关于流水线方式执行指令的叙述中,不正确的是()。

A、流水线方式可提高单条指令的执行速度 √

B、流水线方式下可同时执行多条指令

C、流水线方式提高了各部件的利用率

D、流水线方式提高了系统的吞吐率


将一条指令的执行过程分解为取指、分析和执行三步,按照流水方式执行,

若取指时间 t取指=4∆t、分析时间 t分析=2∆t、执行时间 t执行=3∆t,

则执行完100条指令,需要的时间为()∆t

A、200

B、300

C、400

D、405 √

(4+2+3)+(100-1)×4=9+99×4=9+396=405

吞吐率:指令总条数/指令的执行时间=100/405∆t