【发布时间】:2017-05-25 14:39:07
【问题描述】:
在 ARM 汇编中,ldr、str 或 b 等内存指令各需要 4 个周期。
是不是因为每个内存位置都是4字节长?
【问题讨论】:
-
对 CPU 的依赖很大,一些 ARM 处理器可能在一个周期内可以执行多个 LDR 或 STR 指令。
-
不,它可能不起作用(读取一个字节/周期,因此需要 4 个周期),它可能只是整个操作的直接延迟。
-
ARM 是流水线架构。每个时钟周期使流水线前进一步。综合来看,它可以在 1 个时钟内执行大部分指令,但每条指令的开始到结束时间更长。请参阅 ARM 的此图:infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0222b/…
-
您对“4 个周期”的参考是什么?
-
@ChrisTang:cycles 标签与时钟周期无关。此外,这个问题是关于特定微体系结构的性能,而不是 ISA,所以instruction-set 也不适合。不过,感谢您在问题正文中添加代码格式。我认为 [performance] 和 [cpu-cycles] 标签更适合。
标签: performance assembly arm cpu-architecture cpu-cycles