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