【发布时间】:2016-10-19 10:20:43
【问题描述】:
我正在处理 armv7 中的异常返回和模式切换。我遇到了 RFE 和 SRS 说明。我通读了它们并偶然发现了这条线 “在所有情况下,基址寄存器都是早期寄存器,需要一个额外的结果延迟周期才能提供其值。”我觉得这很奇怪,因为我认为任何寄存器都会出现这种情况。
这是我第一次遇到这样的事情,我查看了架构参考手册,我找不到任何关于“早期注册”的描述。我想知道它们是什么以及它们是如何分类的?
【问题讨论】:
-
任何关于周期的事情都是特定管道设计的微架构细节,因此了解您所引用的参考资料以及我们在这里谈论的具体 CPU 的上下文会有所帮助 -如您所见,这超出了架构本身的范围。
-
啊,经过进一步检查,似乎对 ARMv7 的引用具有误导性,因为这来自 ARM11 TRM 之一的时序部分,which already explicitly defines the term...
-
RFE 和 SRS 指令也出现在 armv7 架构手册中。在关于这些指令的文献调查中,我发现了这个“早期注册概念”。上面的链接给出了早期寄存器的一个相当复杂的定义“在 Sh、MAC1 和 ADD 阶段的开始需要指定的寄存器。将一个周期添加到产生该寄存器的指令的结果延迟以进行互锁计算。”可能我需要更多地研究 ARM 中的流水线阶段才能掌握它。
标签: assembly arm cpu-architecture