打印

如何计算k段流水线执行n条指令的执行时间?

[复制链接]
1418|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一坨代码|  楼主 | 2017-4-12 09:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
      高端的处理器里通常都带指令预取和多级流水线结构,昨天突然被问到在这种情况下怎么去计算多条语句的执行时间。想了半天也迷糊,今天一早醒来,突然想起来,其实CPU执行一条指令包含了取指令和执行指令2个步骤,执行指令的时间是固定的,而取指令不同,其实所谓的指令预取和流水线结构,是为了减少取值时间的,尤其在高速的CPU中,CPU读写RAM虽然比读写外部存储器快,但依然赶不上CPU的指令执行速度。因此,在这种带流水线的结构中,执行时间最快应该就是在一条指令执行完后,下一条指令也准备好,CPU不用花时间等待取指令。

相关帖子

沙发
一坨代码|  楼主 | 2017-4-12 09:44 | 只看该作者
计算k段流水线执行n条指令的执行时间,有必要区分两种情况:
如果流水线中的各段执行时间均为t,那么执行n条指令的时间就是执行第一条指令的时间kt,加上其余n-1条指令各执行一段的时间(n-1)t。
如果流水线中的各段执行时间不等,且最长段的执行时间为tmax,那么执行n条指令的时间就是执行第一条指令的时间T,加上其余n-1条指令各执行最长段的时间(n-1) tmax。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

52

主题

109

帖子

2

粉丝