UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 55326

Zynq-7000 SoC, APU - 页面一级缓存最后一行的 branch-to-self 指令可能导致服务拒绝。

描述

从一个页面的最后一个 L1 高速缓存行执行分支至自循环,可能会导致处理器内连续的请求流,这可能会阻碍其它处理器所执行的 CP15 广播操作。

解决方案

请注意,由于执行 CP15 广播操作的处理器无法完成该操作,因此它无法进入任何调试模式,也无法采取任何中断措施。如果不能中断执行分支至自循环的处理器(例如,如果它已禁用其中断,或者如果所有中断都已路由至其它处理器),该问题可能会引起系统活锁。

影响: 很小。该问题可能会影响系统性能,最糟糕时,如果不能中断执行分支至自循环的处理器,可能会导致系统活锁。
解决方法::中断由 CPU 生成的连续请求流,可参阅解决方法详细信息。
受影响的配置: 使用 CPU 的系统。
受影响的器件修订版本:全部. 无计划修复. 参考 (Xilinx Answer 47916) - Zynq-7000 SoC 芯片版本差异。
第三方 Errata:Arm Errata 799769


解决方法详情

要解决该问题,您可以中断在执行分支至自循环的处理器中生成的连续请求流。在等待外部事件发生时,软件通常会执行一个分支至自循环,例如多处理器环境中的锁定释放。推荐的解决方法是按照《ARM 架构参考手册》的建议,用包含 WFE 或 WFI 指令的循环替换分支至自循环。其它解决方法(例如在循环中添加 NOP 或将分支至自指令移至除该页最后一个缓存行以外的任何位置)也可避免该问题。

如果无法对执行分支至自循环的软件进行修改,推荐的解决方法是强制执行循环的处理器定期采取中断措施,其可起到看门狗的作用。有几种方法可产生周期性中断,这些方法可能是系统专用的。可能的备选方案是由本地定时器、全局定时器或性能监控单元周期计数器溢值产生的中断。

链接问答记录

主要问答记录

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