数据处理指令是否具有延迟?——解读ARM Cortex A9定时手册

3
我需要帮助理解 ARM Cortex A9 手册中关于时序的内容。
在“数据处理指令周期时间”部分,给出了单元周期时间 - 当我查阅乘法指令时,提供了周期和延迟时间 - 这是否意味着例如 ADD 指令没有额外的延迟时间?(ARM A9 循环时间)(乘法指令)

4
不是ARM方面的专家。可能数据处理单元没有进行流水线化,因此延迟和吞吐量相同,并显示为一个数字(例如,您可以每2个周期将数据传输到寄存器,并且每个“mov”指令需要2个周期)。乘法单元显然是流水线式的,第一个数字(“Cycles”)是吞吐量(例如,您可以每2个周期启动一个“mul”),而第二个数字是延迟(例如,从执行开始后4个周期得到结果-就在您可以开始第三个“mul”的时候)。 - Margaret Bloom
非常感谢您的输入,玛格丽特! - Chris Jung
1个回答

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

pipeline

在这张表格中,您可以看到延迟和吞吐量的更多细节,例如 SDIV 1 每 20 次到每 4 次循环。

Divide and Multiply Instructions

这个表格来自于Cortex-A57软件优化指南Berkeley Design Technology, Inc
流水线图像来自于这里:

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接