文章目录
- 指令流水的定义
-
- 1. 顺序执行方式:总耗时T = n×3t = 3nt
-
- 优缺点
- 2. 一次重叠执行方式:总耗时T = 3t + (n-1)×2t = (1+2n)t
-
- 优缺点
- 3. 二次重叠执行方式:总耗时T = 3t + (n-1)×t = (2+n)t
-
- 注意:
- 流水线的表示方法
-
- 1. 指令执行过程图
- 2. 时空图
- 流水线的性能指标
-
- 1. 吞吐率
- 2. 加速比
- 3. 效率:
指令流水的定义
一条指令的执行过程可以分成多个阶段(或过程)。
根据计算机的不同,具体的分法也不同。
- 取指:根据PC内容访问主存储器,取出一条指令送到IR中。
- 分析:对指令操作码进行译码,按照给定的寻址方式和地址字段中的内容形成操作数的有效地址EA,并从有效地址EA中取出操作数。(特点:每个阶段用到的硬件不一样。)
- 执行:根据操作码字段,完成指令规定的功能,即把运算结果写到通用寄存器或主存中。
设取指、分析、执行3个阶段的时间都相等,用t表示 ,按以下几种执行方式分析n条指令的执行时间
1. 顺序执行方式:总耗时T = n×3t = 3nt
传统冯·诺依曼机采用顺序执行方式,又称串行执行方式。
优缺点
优点:控制简单,硬件代价小。
缺点:执行指令的速度较慢,在任何时刻,处理机中只有
一条指令在执行,各功能部件的利用率很低。
2. 一次重叠执行方式:总耗时T = 3t + (n-1)×2t = (1+2n)t
优缺点
优点:程序的执行时间缩短了1/3,各功能部件的利用率明显提高。
缺点:需要付出硬件上较大开销的代价,控制过程也比顺序执行复杂了
3. 二次重叠执行方式:总耗时T = 3t + (n-1)×t = (2+n)t
与顺序执行方式相比,指令的执行时间缩短近2/3。这是一种理想的指令执行方式,在正常情况下,处理机中同时有3条指令在执行。
注意:
也可以把每条指令的执行过程分成4个或5个阶段,分成5个阶段是比较常见的做法。
流水线的表示方法通过指令执行过程图与时空图的方式进行表示
1. 指令执行过程图
主要用于分析指令执行过程以及影响流水线的因素
2. 时空图
空间:不同的阶段所对应的不同的硬件资源
主要用于分析流水线的性能
流水线的性能指标有以下三个标准:
- 吞吐率
- 加速比
- 效率
我们分别来看:
1. 吞吐率
吞吐率是指在单位时间内流水线所完成的任务数量,或是输出结果的数量。
设任务数为n;处理完成n个任务所用的时间为Tk
则计算流水线吞吐率(TP)的最基本的公式为 TP = n/Tk。
理想情况下,流水线的时空图如下:
一条指令的执行分为k个阶段,每个阶段耗时△t ,一般取△t =一个时钟周期
2. 加速比
加速比:完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比。
设T0表示不使用流水线时的执行时间,即顺序执行所用的时间;Tk表示使用流水线时的执行时间
则计算流水线加速比(S)的基本公式为 S = T0/Tk
理想情况下,流水线的时空图如下:
一条指令的执行分为k个阶段,每个阶段耗时△t ,一般取△t =一个时钟周期
3. 效率:
效率:流水线的设备利用率称为流水线的效率。
在时空图上,流水线的效率定义为完成n个任务占用的时空区有效面积与 n个任务所用的时间与k个流水段所围成的时空区总面积之比。
理想情况下,流水线的时空图如下:
一条指令的执行分为k个阶段,每个阶段耗时Dt ,一般取Dt =一个时钟周期