Zynq-7000 SoC,APU - 禁用MMU的推测性指令提取可能不符合架构要求

描述

CPU通常在启用MMU和分支预测的情况下运行。如果处理器在此条件下运行任何大量时间,则BTAC(分支目标地址高速缓存)将包含分支预测。

如果然后禁用MMU,但是分支预测保持启用,则这些陈旧的BTAC条目可以使处理器对读敏感位置进行推测性指令提取。

这违反了ARM体系结构参考手册中记录的有关推测性提取的ARMv7体系结构规则。

影响:
次要。 CPU主要用于启用MMU。通过下一节中列出的简单解决方法也可以防止该问题。
解决方法:
在禁用MMU之前,通过执行BPIALL(使整个分支预测阵列无效)操作,然后执行DSB,使BTAC中的所有条目无效。
另一种可能的解决方法是在禁用MMU时禁用分支预测,并在重新启用MMU之前保持分支预测禁用。
受影响的配置:
使用CPU的系统。
受影响的器件版本: 所有。没有计划修复。参考 (Xilinx答复47916) - Zynq-7000 SoC芯片版本差异答复记录。

修订记录
2013年3月新。

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-31 13:11:15 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它