多核ARM A9上的NOP

时间:2016-04-05 18:10:55

标签: assembly arm multicore timing

我有一个双核ARM A9处理器,我需要做一些非常特别的纳秒时序。我计划使用NOP汇编指令来确定每个系统时钟周期通过的纳秒数。

我想知道在处理双核ARM处理器时,在调用NOP时是否应该采取任何特殊注意事项,因为我只需要处理单核ATMEL和ARM处理器。处理器是否会尝试自动在两个核心上分配NOP?我应该将系统时钟速度(667MHz)的两倍进行时序计算以计算两个内核吗?是否有其他特殊考虑因素我没有看到可能妨碍我的方式?

1 个答案:

答案 0 :(得分:2)

显然,如果运行一个非多线程的程序,则无法在两个CPU上运行它。它总是在一个CPU上运行(虽然你不知道是哪一个)。

使用NOP计算时序确实不是一个好主意,因为你无法控制如何发出和执行指令,特别是因为Cortex-A9有几个执行单元。

虽然我不认为这是一个非常可靠的解决方案,但您至少应该使用一系列具有1个周期时间的相关指令:

ADD r0, r0, r0
ADD r0, r0, r0
...

这将有助于每个周期使用一条指令,优于NOP操作,但这仍然是一个近似值。