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

[复制链接]
1659|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

粉丝
快速回复 在线客服 返回列表 返回顶部