描述
ISB指令作为Cortex-A9微体系结构中的分支实现。这意味着当ISB发生时,事件0x0C(PC的软件更改)和0x0D(立即分支)被断言,这不符合ARM v7架构。因此,使用性能监视器计数器时,事件计数0x0C和0x0D不准确。
要获得PC(0x0C)和立即分支(0x0D)的软件更改的精确计数,请单独使用事件0x90计算ISB指令,并从事件0x0C和0x0D结果中减去此ISB计数。
解
影响: |
次要。使用性能监视器计数器时,事件计数0x0C和0x0D不是100%精确。有关详细信息,请参阅影响细节 |
解决方法: |
软件可以单独使用事件0x90计算ISB指令,并从事件0x0C和0x0D中获得的结果中减去此ISB计数,以获得PC(0x0C)和立即分支(0x0D)的软件更改的精确计数。 |
受影响的配置: |
使用一个或两个ARM处理器的系统。 |
受影响的器件版本: | 全部,没有计划修复。请参阅(Xilinx答复47916) – Zynq-7000设计咨询主答复记录 |
影响细节
使用性能监视器计数器时,事件计数0x0C和0x0D不是100%精确,因为除了对PC(对于0x0C)和立即分支(0x0D)的实际软件更改外,还计算ISB。
该问题还导致相应的PMUEVENT位在执行ISB时切换。
PMUEVENT [13]涉及事件0x0C
PMUEVENT [14]涉及事件0x0D
没有回复内容