ZHCZ054A December 2024 – October 2025 AWR2544
块一致性操作期间可能出现 L2 缓存损坏问题
AWR2544
在块一致性操作过程中发现了潜在的 L2 缓存损坏问题。在一组特定的情况下,L1D 或 L2 的块一致性操作可能导致 L2 缓存损坏。当同一 L2 组中连续发生以下四个操作时,会引发该问题:
L1D 写缺失
因块一致性操作导致的受害者写回
对某个地址的写分配
对某个地址的读分配或写分配
此问题适用于下面列出的所有块一致性操作:
L1D 写回
L1D 失效
L1D 写回并失效
L2 写回
L2 失效
L2 写回并失效
此权变措施要求内存系统在块一致性操作期间保持空闲。因此,程序必须等待块一致性操作完成后才能继续执行。这适用于 L1D 和 L2 内存的块一致性操作。要发出块一致性操作,请按照以下顺序操作。
禁用中断。
将起始地址写入相应的 BAR 寄存器。
将字计数写入相应的 WC 寄存器。
通过以下任一方式等待操作完成:
发出 MFENCE 指令(首选)。
轮询 WC 寄存器,直到字计字段读数为 0。
执行 16 个 NOP。
恢复中断。
有关缓存控制寄存器(BAR 和 WC)的更多信息,请参阅《TMS320C66x DSP CorePac 用户指南》(SPRUGW0)。MFENCE 指令是 C66x DSP 的新增指令。该指令会使 DSP 暂停,直至所有未完成的内存操作执行完毕。有关 MFENCE 指令的更多信息,请参阅《C66x DSP 和指令集参考指南》(SPRUGH7)。