1

我正在阅读 Elsevier 的这本书“ARM System Developers Guide”,我遇到了这个问题:

ARM 指令集与纯 RISC 定义的不同之处在于使 ARM 指令集适用于嵌入式应用程序的几个方面:

某些指令的可变周期执行——并非每条 ARM 指令都在单个周期中执行。例如,加载-存储-多条指令的执行周期数取决于被传输的寄存器数量。传输可以发生在顺序内存地址上,这提高了性能,因为顺序内存访问通常比随机访问快。代码密度也得到了提高,因为多个寄存器传输是函数开始和结束时的常见操作。

你们可以指出哪些其他ARM指令需要可变周期来执行?

4

1 回答 1

2

周期时间取决于微架构,因此您需要查看特定实现的技术参考手册 (TRM)。例如对于Cortex-A9,它被描述为非常复杂。

Cortex-A9 处理器的复杂性使其无法手动计算精确的时序信息。一条指令的时序通常受到其他并发指令、内存系统活动和指令流之外的其他事件的影响。

然而,在同一份文档中,有数据处理、加载和存储、乘法以及有关分支和序列化指令的一些信息的精确时间安排。

例如,从同一个文档中,您可以看到是否shifting涉及AND指令可能需要 1-2 个周期,具体取决于移位源,这可能是嵌入指令中的常量或从寄存器中读取。

此外,在关于 load-store-multiple 的书注旁边,可能会因所涉及的寄存器数量而异,如果地址是否对齐,它们也会有所不同。

于 2012-10-27T08:06:36.750 回答