ZHDZ012G December 2020 – June 2026 DRA829J , DRA829J-Q1 , DRA829V , DRA829V-Q1 , TDA4VM , TDA4VM-Q1
C71x:MMA HWARCV 与触发 uTLB 未命中的加载或存储并行时寄存器会损坏
在某些情况下执行 HWARCV 指令时,C71x 可能会发生数据损坏。故障现象表现为:来自 HWARCV 数据的 64 字节数据中每第 8 个字节就会损坏一个任意结果(从向量的最低有效字节开始,每第 8 个字节出现一次)。除非之前在 .S2 单元上执行过浮点指令,否则损坏的字节显示的值可能全部为零。导致此问题发生的条件涉及三种需要解决的情况:与 HWARCV 指令并行的某些指令是否必须花额外的时间;确定该指令的执行是否将导致异常;以及在此 HWARCV 指令之后的执行数据包中,.S2 单元,是否没有将结果写入 64 字节寄存器中的指令。
将编译器开关 --silicon_errata_i2117 添加到 C71x 编译器的命令行时,该编译器会自动确保所有 HWARCV .S2 指令后,.S2 单元上都有一条指令写入 64 字节向量寄存器。此操作可确保不满足触发此问题所需的条件之一。如果没有可执行的有用工作,该编译器会插入一条可写入未使用寄存器的虚拟指令,实际上是一条 NOP 指令。