微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Aarch64 什么是延迟转发?

如何解决Aarch64 什么是延迟转发?

"Arm Neoverse E1 Core Software Optimization Guide" 中提到了“延迟转发”(以及他们针对其他一些 cpu 型号的优化指南):

指导组 说明 执行延迟 执行吞吐量 注意事项
乘法累加(32 位) MADD,MSUB 3 (2) 1 2
乘法累加(64 位) MADD,MSUB 5 (4) 1/3 2

(2) 乘法累加流水线支持从类似的 μOP 中延迟转发累加操作数,允许典型的乘法累加 μOP 序列每 N 个周期发出一个(累积延迟 N 显示在括号中)。

术语“延迟转发”是什么意思?哪些指令序列会受到延迟转发(反例也有帮助)?

解决方法

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。