1.流水线概念
以指令执行为例
指令执行分为三步:
读取指令------分析指令-------执行指令
在此过程中,同一时间内只有一个模块在工作,其余模块都在等待,一个指令完成后再进行下一个
流水线过程中,同一时间内每个模块都在工作,不停读取下一个,然后持续交付分析,不断执行
因此在流水线过程中,同一时间内对多条指令重叠执行操作,同时对各条指令的不同部分进行操作,提高各个模块的利用率和执行速度 。
2.流水线周期及流水线执行时间计算
k为执行这项指令需要几部分;
t1,t2......tk为执行这k部分分别需要的时间;
n为执行多少条指令;
t(max)为执行指令这k部分需要的最长的一段时间,也称作流水线周期
理论公式:(t1+t2+t3+...tk)+(n-1)*t(max)
实践公式:(k+(n-1))*t(max)
例题:
若指令流水线把一条指令分为读取指令、分析指令、执行指令3部分,且3部分的时间分别是读取指令2s,分析指令2s,执行指令1s。那么流水线的周期是多少?100条指令全部执行完需要多少时间?
流水线周期为(也就是t(max)):2s
100条指令全部执行完需要多少时间:
按照理论公式:
(2s+2s+1s)+(100-1)*2s=203
按照实践公式:
(3+(100-1))*2s=204
注:若有考察两种公式不确定选哪个就看选项给了哪个
3.流水线的吞吐率计算
单位时间内流水线所完成的任务数量称为流水线的吞吐率
流水线吞吐率
指令条数 100
TP= ————————————————————— 以上题为例 TP= ————————————————
流水线的执行时间 203(或204)
流水线最大吞吐率(理想状态下)
1 1
TPmax= ———————————————— 以上题为例 TPmax= ——————————
函数周期(tmax) 2s
4.流水线的加速比计算
流水线的加速比
不使用流水线执行时间
S= ——————————————————————
使用流水线执行时间
以上题为例,不使用流水线的时间为(2s+2s+1s)*100=500
使用流水线的时间为 203(或204)
500
S= ——————
203
5、流水线的效率计算
流水线的效率是指流水线的设备利用率
例:
每个任务分为四部分,耗时分别为1t,1t,1t,3t,流水线连续执行四个这样的任务
下图中阴影1代表数据1执行的四个部分,S代表执行任务四个步骤所占用的空间,表示执行任务每个步骤所消耗的时间。
流水线的效率
n个任务占用的时空区
E = ——————————————————————————
k个流水段的总的时空区
n个任务所占用的时空区为:(1t+1t+1t+3t)*4=24t
k个流水段的总的时空区为:15t*4=60t
24t
S= ———————
60t
注:可理解为图表中阴影总面积与全部面积之比