程序员人生 网站导航

吞吐率问题

栏目:服务器时间:2015-05-05 08:02:53

某指令流水线由5段组成,各段所需要的时间以下图所示。 

――> Δt ――>3Δt――>Δt――> 2Δt――>Δ t――>

连续输入10条指令时的吞吐率为( )。 

A.10/70Δ

B.10/49Δ

C.10/35Δ

D.10/30Δt

分析:

       要解此题,必须首先了解吞吐率的概念。教程上的解释是:吞吐率是指单位时间里流水线处理机流出的结果数。对指令而言,就是单位时间里履行的指令数。如果流水线的子进程所用的时间不1样,则吞吐率p应为最长子进程的倒数,即:

p=1/max{Δt1,Δt2,……,Δtm}

本题说问的是连续输入10条指令时的吞吐率为多少?用以下图示解答此问题。

第1条指令:-( ---)-(--)-

第2条指令:             -( ---)-(--)-

第3条指令:                          -( ---)-(--)-

由于是流水线,所以时间为3Δt的指令不能堆叠,所以每隔3Δt时间开始1条指令,当第1条指令花费8Δt时间后,每隔3Δt完成1条指令,则第10条指令完成的时间是:8Δt+3Δt×9=35Δt。

流水线时间计算公式:1条指令所需时间+(指令条数⑴)×时间最长的指令的1段。即8Δt+3Δt×9=35Δt。

吞吐率:指令条数除以流水线时间。即35Δt。

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐