计组-流水线吞吐率、加速比、效率计算
吞吐率:指流水线在单位时间内处理的任务的数量
例如,某港口的年吞吐率是多少万吨,就是一年内进出港口的货物的数量情况
而流水线吞吐率计算公式就是:将流水线当中执行到的指令条数,去除以流水线的执行时间(执行完指令条数的总时间)
得到的是单位时间里可以执行的指令条数
例如计算上图的流水线吞吐率,就是
1除以dt是一种理想情况,就是忽略流水线建立时间,比平常执行所多消耗的时间,上题中就是5ns比2ns多消耗的3ns
在流水线建立完成后,每一个流水线的周期就会完成一条指令的运行
即一个周期运行处一个指令
所以这个的意思就是一条指令所消耗的时间就是一个流水线周期dt
还是这个例题,可以算出不使用流水线时,共100条指令,每条指令都取指2,分析2,执行1,共5ns,所以100*5==500ns,之前算出使用流水线是5+(100-1)*2==203
所以加速比就是500/203
从上面的除法关系可以看到加速比是数值越高越好,即加速比可以说明使用流水线后产生的效果的好坏程度
效率就是在上图的时空图中,有多少的时间片是属于有效利用的情况,即阴影部分,有多少的时间片是没有去有效利用的,即空白部分,二者的比例分布情况
,
如上示意图,把要完成的任务分成4个部分S1,S2,S3,S4,S1到S3用的时间都是dt,S4用的时间是3dt,这时流水线的周期就要取最大的3dt,即每隔一个周期3dt出一个产品
可以看到虽然使用了流水线技术,但还有很多时间片是浪费了的(上图红色)
所以把阴影的带颜色的时间块数量求出来,再把整个时空图的时间块数量求出来,用阴影/全部==效率
阴影区的计算是一条指令的全部执行时间是1+1+1+3==6dt,总共有4条指令(横轴阴影),所以4*6==24dt
总时间区则是横轴共有15个dt的时间点,在每个时间点上有4个步骤同时执行,即4个时间片,所以是如图,横轴15,竖轴4,15*4==60dt
效率E==24%60==0.4
计算流水线的效率是为了设计更好更高效的流水线,这个题中的流水线的效率就不高,是因为S4这一步骤非常耗时,即流水线周期很长
而效率最高的流水线是每一个工作步骤的时长是相等的情况
如下图,一个执行完立刻执行下一个,紧密连接没有空余空间,浪费的只有刚开始建立流水线时和最后完成时的时间,中间执行过程是密集的