在优化霓虹灯代码方面存在一些疑问

时间:2011-12-16 12:00:01

标签: assembly arm neon optimization cortex-a8

我在汇编中写了一些霓虹灯代码,旨在实现最大程度的优化。虽然数字似乎令人满意,但我有兴趣了解进一步优化它的可能性。然后我遇到了一个在线工具,它有助于计算每条指令的周期。

以下是我的代码的链接:http://pulsar.webshaker.net/ccc/sample-115d4c29

它清楚地标明了我关注的领域,但我无法清楚地理解这些陈述包含间接费用的原因。

代码段在“评论”区域中分为7个部分,以便于引用。

提前致谢。 :)

1 个答案:

答案 0 :(得分:4)

您可以尝试此链接

http://pulsar.webshaker.net/ccc/beta-sample-115d4c29

这使用循环计数器的beta版0.9。 主要区别在于NEON模拟器不再使用2个不同的管道。 由于Cortex A9无法在一个周期内执行2条NEON指令。

我开始尝试使用循环计数器的某些部分。

结果是:

- 对于Cortex A9,循环信息更准确。

- 结果更容易阅读,因为大多数NEON延迟信息都是由于未配对的指令造成的。

由于等待管道而导致的橙色平均延迟

由于寄存器冲突,红色表示延迟。

寄存器附近的数字不是松开的周期数。这是您在本指令之前可以放置的最大指令数。

我希望有所帮助!