AR# 55018

Zynq-7000 SoC、APU — “STREX 通过”寄生事件 0x63 可能会通过 LDREX 指令报告。

描述

在 LDREX 指令执行前,执行的强秩序存储器区域写入,可能会导致在没有执行STREX 指令的情况下发出 STREX 通过事件 (0x63) 信号。

作为写入结果,所报告的 0x63 事件计数可能会大于实际发生的数量。此外,该问题还会影响相关的 PMUEVENT[27] 信号,其将再次报告相同的寄生事件。

解决方案

在以下条件下会出现该问题:

  • 处理器向强秩序存储器区域执行写入指令。
  • 处理器执行 LDREX 指令。
  • 没有执行 DSB 指令,而且在写入指令与 STREX 指令之间没有异常调用或异常返回。

在这些条件下,如果在执行 LDREX 时,强秩序存储器区域的写入指令收到其确认(AXI 上的 BRESP 响应),那么就会出现上述故障。

影响:轻微.该问题的发生会导致 0x63 事件的一个错误计数,或错误的 PMUEVENT 信号发送[27]。
解决方法::在强秩序存储器区域的写入指令和 LDREX 指令之间插入 DMB 或 DSB 指令。
受影响的配置: 使用 CPU 的系统。
受影响的器件修订版本:全部。无计划修复。参考 (Xilinx Answer 47916) - Zynq-7000 SoC 芯片版本差异。

修订历史:
05/16/2013 - 初始版本

链接问答记录

主要问答记录

Answer Number 问答标题 问题版本 已解决问题的版本
47916 Zynq-7000 SoC 器件:芯片修订差异 N/A N/A
AR# 55018
日期 06/13/2018
状态 Active
Type 设计咨询
器件