Ski*_*ask 3 performance pipeline mips cpu-architecture
我们可以同时使用NOPs数据转发和停顿周期来解决数据和负载使用风险。但是,如果我们有多个数据危险,那么使用 解决所有这些危险会变得非常低效NOPs,因为它们会增加程序的运行时间。相比之下,如果我们有负载使用风险,我们可以使用数据转发和停顿周期来解决风险,并提供更有效的结果。我的问题是,与停顿周期相结合的数据转发如何成为处理数据危险的更有效方法NOPs?因为当我们添加一个停顿周期时,程序必须等待一个时钟周期以允许数据转发(MEMto EX)。因此时钟周期计数将增加 1。
数据转发克服了一些危险,认识到由先前指令计算的必要值比它出现在寄存器中时更早可用。因此,数据转发始终是对停顿和 NOP 的胜利。
当然,有时需要停转,就像您描述的负载使用危险的情况一样。在小的情况下,停顿与 NOP 具有相同的效果,但是:
没有 NOP 的代码大小更小。代码大小对指令缓存有巨大影响——这会影响性能,因此代码大小不可忽视。
此外,从架构寿命的角度来看,虽然我们可能知道某些微架构设计所需的 NOP 数量,但这很可能会在未来的微架构中发生变化,因此插入旧程序的 NOP 不再起作用在较新的硬件上正确。因此,我们得出结论,让硬件停顿比插入 NOP 更好。
例如,故障机器可能会在内部重新排列指令以覆盖 MEM->EX 危险(NOP 只会妨碍)。
| 归档时间: | 
 | 
| 查看次数: | 130 次 | 
| 最近记录: |