gpt4 book ai didi

cpu - 为什么不推荐使用或过时分支延迟槽?

转载 作者:行者123 更新时间:2023-12-04 22:18:04 24 4
gpt4 key购买 nike

当我阅读 RISC-V 用户级 ISA 手册时,我注意到它说“OpenRISC 具有条件代码和分支延迟槽,这使更高性能的实现变得复杂”。所以RISC-V没有分支延迟槽RISC-V User-Level ISA manual link .此外,Wikipedia据说大多数较新的 RISC 设计都省略了分支延迟槽。为什么大多数较新的 RISC 架构逐渐省略分支延迟槽?

最佳答案

引用 Henessy 和 Patterson(计算机架构与设计,第 5 版)

Fallacy : You can design a flawless architecture.
All architecture design involves trade-offs made in the context of a set of hardware and software technologies. Over time those technologies are likely to change, and decisions that may have been correct at the time they were made look like mistakes. (...) An example in the RISC camp is delayed branch. It was a simple matter to control pipeline hazards with five-stage pipelines, but a challenge for processors with longer pipelines that issue multiple instructions per clock cycle.



实际上,在软件方面,延迟分支只有缺点,因为它使程序更难阅读且效率更低,因为插槽经常被 nops 填充。

在硬件方面,这是一个在八十年代有一定意义的技术决策,当时流水线是 5 或 6 级,无法避免单周期分支惩罚。

但目前,管道要复杂得多。在最近的奔腾微架构上,分支惩罚是 15-25 个周期。因此,一条指令延迟分支是无用的,试图用 15 条指令延迟分支来隐藏这个延迟槽(这会破坏指令集兼容性)将是无稽之谈,而且显然不可能。

我们开发了新技术。分支预测是一项非常成熟的技术。使用当前的分支预测器,错误预测远远低于具有无用 ( nop) 延迟槽的分支数量,因此即使在 6 个周期的计算机上(如 nios-f)也更有效。

因此,延迟分支在硬件和软件方面的效率较低。没有理由保留它们。

关于cpu - 为什么不推荐使用或过时分支延迟槽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54724410/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com