流水线的相关计算-软考系统架构设计师(最全的公式计算+图文解析,再也不用担心你的流水线计算问题了!)

一条指令的执行过程可以分解为取指、分析和执行三步,它们的执行时间分布为3△t、2△t、4△t,若按串行方式执行,则10条指令全部执行完需要()△t;若按流水线的方式执行,流水线周期为()△t,则10条指令全部执行完需要()△t,流水线的吞吐率为(),加速比为()流水线的效率为()。

题目分析:

串行执行10条指令(串行执行的过程如上图所示),那么10条指令需要 10 * (3△t + 2△t + 4△t) = 90△t

流水线的周期为指令执行的各个子过程时间最长的一段, 三段的执行时间分布为 3△t、2△t、4△t,流水线的周期为4△t

    

使用流水线技术执行10条指令的时间

 

 理论公式(根据上图理解公式):

    (3△t + 2△t + 4△t) + (10 - 1)* 4△t = 45△t

实践公式(根据上图理解公式):

    实践公式中,流水线的建立时间是 指令执行的段数 * 指令的周期,

    3 * 4△t  + (10 - 1)* 4△t = 48△t

理论公式存在的问题: 实际执行的时候会增加复杂度,CPU设计的时候,如果需要单独处理第一条指令的执行时间,并进行累加,之后再计算剩下指令的执行时间,增加了实现的复杂度。

    而对于实践公式,只需要设计算法(k + n -1)*  Δt就可以。

流水线的吞吐率

    1. 指令条数为 10

    2. 流水线的执行时间为 45△t  

    吞吐率为  10 / 45△t  

流水线的加速比

    1. 不使用流水线的执行时间90△t

    2. 使用流水线的执行时间45△t

    加速比为 90△t  / 45△t = 2

流水线的效率

 

    1. 10个任务占用的时空区:    10 *( 3△t + 2△t + 4△t ) = 90

    2. 10个任务占用的总时空区:

    长度: ( 3△t + 2△t  ) + 4△t  * 10 = 45△t

    宽度: 4

    总时空区 = 45△t * 4 = 180△t

3. 流水线的效率

45△t  / 180△t

最终完整的答案(计算结果一般不需要约分)

一条指令的执行过程可以分解为取指、分析和执行三步,它们的执行时间分布为3△t、2△t、4△t,若按串行方式执行,则10条指令全部执行完需要( 90 )△t;若按流水线的方式执行,流水线周期为( 4 )△t,则10条指令全部执行完需要( 45 )△t,流水线的吞吐率为( 10 / 45△t  ),加速比为( 2 )流水线的效率为( 45△t / 180△t )。

如果不清楚流水线的相关理论和公式的推导,可以查看以下链接的文章

http://www.ylaihui.com/blog/article/9269?rootCategoryId=16

猜你喜欢

转载自blog.csdn.net/asdfjklingok/article/details/118997478