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# 47584

Zynq-7000 AP SoC, APU – PLD 指令可能在禁用数据缓存中分配

描述

无论处理器配置设置情况如何,包括数据缓存启用 (Data Cache Enable) 位是什么值,PLD 指令会预取和分配任何标记为 Write-Back 的数据(Write-Allocate 或 Non-Write-Allocate,Shared 或 Non-Shared)。这会产生数据一致性问题。如果数据缓存启用后就不会发生这个问题。

解决方法需要软件在无文档记录的控制寄存器中设置一个位。设置该位会让所有 PLD 指令被视为 NOP。

解决方案

影响:

很小。意料之外的存储器可缓存性混叠问题出现,可能导致数据一致性问题,如需了解更多详情,敬请参见影响详情。

解决方法::

如欲了解有关写入无文档记录控制寄存器的详情,敬请参见以下解决方法详情部分。

受影响的配置:

所有系统

受影响的器件修订版本:
全部,无计划修复。参见(Xilinx 答复 47916)——Zynq-7000 AP SoC 芯片修订差异。

 

影响详情

此问题预计不会产生任何严重影响。 数据缓存应在启动过程早期启用,较晚阶段也不会禁用。所以只会影响启动代码,但这种代码经过了良好控制,预计数据缓存不启用时不会包含任何 PLD 指令。

解决方法详情

如果系统受到此问题的影响,可采用软件解决方法,包括在无文档记录控制寄存器的设置位[20],位于 CP15 c15 0 c0 1。

该位应使用以下 Read-Modify-Write 代码序列进行编写:

  • MRC p15,0,r0,c15,c0,1
  • ORR r0,r0,#0x00100000
  • MCR p15,0,r0,c15,c0,1

设置该位使得所有 PLD 指令都被作为 NOP,从而会让通常使用 PLD 的代码序列,如 memcpy() 程序可能会受到一定性能影响。因此,如果采用这种解决方法,Xilinx 强烈建议限制其使用范围仅在数据缓存禁用的时间段内。

链接问答记录

主要问答记录

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