assembly - 数据处理指令有延迟吗? - 解读ARM Cortex A9时序手册

标签 assembly arm timing

我需要帮助来解释有关时序的 ARM Cortex A9 手册。

ARM A9 Cycle timings

在“数据处理指令周期计时”点下给出了单位周期时间 - 当我查找 Multiplication instructions 时,周期和延迟给定 - 这是否强加了例如ADD指令没有额外的延迟吗?

最佳答案

这与每个执行单元的流水线深度有关。 该图显示了乱序处理器的管道(Cortex A-15、Cortex A9 也是乱序处理器,但管道较短)。 Integer执行单元只有一个周期,因此它们的执行没有额外的延迟。然而乘法执行单元有 4 个周期。这并不意味着总是需要 4 个周期,但根据所使用的寄存器的值和数量,可能需要 4 个、更少或更多的周期。

pipeline

在表中,您可以看到延迟和吞吐量的更多详细信息,例如 SDIV 1 每 20 到 1 每 4 个周期

Divide and Multiply Instructions

该表取自Cortex-A57 Software Optimization Guide 管道图像取自此处:Berkeley Design Technology, Inc

关于assembly - 数据处理指令有延迟吗? - 解读ARM Cortex A9时序手册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45888587/

相关文章:

performance - 了解带环对具有两个长依赖性链的循环的影响,以增加长度

pointers - 在汇编中通过引用传递

c++ - 反汇编器 GLOBAL 关键字

jQuery fadeIn() fadeOut() 计时问题

javascript setinterval 不会以低间隔同步触发

c++ - 不使用裸函数时如何获取所有局部变量的大小

c - ARM 汇编器中的可变大小 int 矩阵

stack - 谁来选择ARM堆栈方向?

linux - 什么时候在内核中创建 kallsyms?

cudaEvent 和 gettimeofday 报告的时间截然不同