ZHDZ012G December 2020 – June 2026 DRA829J , DRA829J-Q1 , DRA829V , DRA829V-Q1 , TDA4VM , TDA4VM-Q1
MSMC:将高速缓存大小调整为 0 会刷新标记,而不是更新标记
对于之前在 MSMC 的 L3$ (DDR) 中缓存了脏数据的行,将 MSMC L3$ 大小从非零更改为零、然后再改回非零时,会发生数据损坏(MSMC 返回全 0)。MSMC 复位释放后直接进行的 0->N 配置不受该问题的影响。
MSMC 内部高速缓存调整大小事务始终标记为非分配性缺失。标记仅使用分配性缺失和命中的新值进行更新。这会导致高速缓存调整大小操作,使标记保持不变,同时将底层数据清零。
当更改 L3 高速缓存大小但数据被置为零时,所有现有标签都保留在 MSMC 中,因此后续读取这些先前缓存的行时,数据将返回全 0。
在 L3 高速缓存的大小从 N 调整为 0 之后,重置 MSMC,然后再将 L3 的大小从 0 调整为 X。此权变措施会保留数据,因为 L3 高速缓存大小 N -> 0 转换会强制数据进入 DDR,从而允许 DDR(在自刷新模式下)包含有效数据。