计算机难以作决定

另一个会导致流水线停滞的原因是计算机需要作决定。大多数情况下,在执行完一条指令
后,处理器都会获取下一个内存地址中的指令继续执行。这时,多数情况下,下一条指令
已经被保存在高速缓存中了。一旦流水线的第一道工序变为可用状态,指令就可以连续地
进入到流水线中。
但是控制转义指令略有不同。跳转指令或跳转子例程指令会将执行地址变为一个新的值。
在执行跳转指令一段时间后,执行地址才会被更新。在这之前是无法从内存中读取“下
一条”指令并将其放入到流水线中的。新的执行地址中的内存字不太可能会存储在高速
缓存中。在更新执行地址和加载新的“下一条”指令到流水线中的过程中,会发生流水
线停滞。
在执行了一个条件分支指令后,执行可能会走向两个方向:下一条指令或者分支目标地址
中的指令。最终会走向哪个方向取决于之前的某些计算的结果。这时,流水线会发生停
滞,直至与这些计算结果相关的全部指令都执行完毕,而且还会继续停滞一段时间,直至
决定一下条指令的地址并取得下一条指令为止。
对性能优化而言,这一项的意义在于计算比做决定更快
posted @   deeplearnMs  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示