我有一个基于双核ARM A9的处理器,我需要使用它进行一些非常特殊的纳秒级计时。我计划使用NOP汇编指令通过确定系统时钟每个周期经过的纳秒数来实现这一目标。
我想知道在处理双核ARM处理器时调用NOP时是否应该考虑一些特殊的考虑,因为我只需要处理单核ATMEL和ARM处理器。处理器会尝试自动在两个内核之间分配NOP吗?我应该为系统时钟速度(667MHz)的两倍进行时序计算,以解决两个内核的问题吗?我没有看到其他可能会妨碍我的其他特殊注意事项吗?
显然,如果您运行的不是非多线程程序,则无法在两个CPU上都运行该程序。它总是在一个CPU上运行(尽管您不知道哪个CPU)。
使用NOP计算时序确实不是一个好主意,因为您无法控制指令的发出和执行方式,尤其是因为Cortex-A9具有多个执行单元。
尽管我认为这不是一个非常可靠的解决方案,但您至少应使用时序为1个周期的一系列相关指令:
ADD r0, r0, r0
ADD r0, r0, r0
...
这将有助于每个周期有一条指令,这比NOP操作要好,但这仍然是一个近似值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句