我在汇编中编写了一些霓虹灯代码,旨在最大限度地优化。尽管这些数字看起来令人满意,但我有兴趣了解进一步优化它的可能性。然后我遇到了一个在线工具,可以帮助计算每条指令的周期。
这是我的代码的链接:http: //pulsar.webshaker.net/ccc/sample-115d4c29
它清楚地标出了我关注的领域,但我无法清楚地理解这些陈述包含间接费用的原因。
代码段在“注释”区域分为 7 个部分,以便于参考。
提前致谢。:)
我在汇编中编写了一些霓虹灯代码,旨在最大限度地优化。尽管这些数字看起来令人满意,但我有兴趣了解进一步优化它的可能性。然后我遇到了一个在线工具,可以帮助计算每条指令的周期。
这是我的代码的链接:http: //pulsar.webshaker.net/ccc/sample-115d4c29
它清楚地标出了我关注的领域,但我无法清楚地理解这些陈述包含间接费用的原因。
代码段在“注释”区域分为 7 个部分,以便于参考。
提前致谢。:)
你可以试试这个链接
http://pulsar.webshaker.net/ccc/beta-sample-115d4c29
这使用循环计数器的 beta 版本 0.9。主要区别在于 NEON 模拟器不再使用 2 个不同的管道。由于 Cortex A9 无法在一个周期内执行 2 条 NEON 指令。
我开始更新循环计数器的某些部分。
结果是:
- Cortex A9 的周期信息更准确。
- 结果更容易阅读,因为大多数 NEON 延迟信息是由于未配对的指令造成的。
橙色平均延迟由于等待管道
红色表示由于寄存器冲突导致的延迟。
寄存器附近指定的数字不是松散周期的数量。这是您可以在此指令之前放置的最大指令数。
我希望有帮助!