我有一个双核ARM基于A9的处理器,我需要做一些非常特殊的纳秒计时。我计划使用NOP程序集指令来实现这一点,方法是确定系统时钟每个周期通过的纳秒数。
我想知道在处理双核ARM处理器时,我在调用NOPs时是否应该考虑到什么特殊的问题,因为我只需要处理单核心ATMEL和ARM处理器。处理器会尝试在两个核之间自动分配NOPs吗?我应该做我的时间计算双倍的系统时钟速度(667兆赫),以说明这两个核心?有没有其他特殊的考虑,我没有看到,这可能会妨碍我的方式?
发布于 2016-04-05 19:46:20
显然,如果您运行的单个程序不是多线程的,那么它就无法在两个CPU上运行。它总是在一个CPU上运行(尽管你不知道哪个CPU)。
使用NOP计算定时确实不是一个好主意,因为您无法控制指令的发出和执行方式,特别是因为Cortex-A9有几个执行单元。
虽然我不认为这是一个非常可靠的解决方案,但您至少应该使用一个周期的依赖指令序列:
ADD r0, r0, r0
ADD r0, r0, r0
...
这将有助于每个周期有一个指令,比NOP操作更好,但这仍然是一个近似。
https://stackoverflow.com/questions/36433921
复制相似问题