Aarch64 什么是延迟转发?

2024-04-07

中提到了“延迟转发”《Arm Neoverse E1核心软件优化指南》 https://developer.arm.com/documentation/swog466751/a/(以及其他一些 CPU 型号的优化指南):

Instruction Group Instructions Exec Latency Exec Throughput Notes
Multiply accumulate (32-bit) MADD, MSUB 3 (2) 1 2
Multiply accumulate (64-bit) MADD, MSUB 5 (4) 1/3 2

(2) 乘法累加管道支持来自类似 μOP 的累加操作数的后期转发,允许典型的乘法累加 μOP 序列每 N 个周期发出一个(括号中显示的累加延迟 N)。

“延迟转发”一词是什么意思?什么顺序的指令将受到延迟转发(反例也将有所帮助)?


乘加运算的延迟转发意味着加数可以在乘法完成后可用,而不必在乘加运算开始执行时可用。由于乘法本身不依赖于加数的数据,因此它可以继续进行。由于加法的一些工作可以与乘法并行完成(乘积的指数将很早就可用,并且可以与加数的指数一起使用来确定加法之前所需的移位量),因此人们可能希望加数为在整个乘积可用之前可用,但即使在这种情况下,直到比被乘数晚得多才需要加数。

通过延迟加数的转发(可用性),可以减少相关累加的有效延迟。这减少了覆盖延迟所需的累积寄存器(和并行性)的数量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Aarch64 什么是延迟转发? 的相关文章

随机推荐