中提到了“延迟转发”《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(使用前将#替换为@)