Versal ACAP,APU - 持续逐出与互连反压相结合可能导致写回无分配存储发生停滞

描述
在任何一致的 ACE 系统中,启用 WriteUnique/WriteLineUnique (WU/WLU) 传输事务后,如果在有一项或多项高速缓存逐出事务处于暂挂状态时尝试执行存储,那么写回无分配 (WBNA) 存储可能发生停滞。

ACE 要求 WU/WLU 传输事务不得绕过任何未完成的逐出类型传输事务 (WriteBack/WriteEvict/WriteClean)。

为满足此要求,如果在逐出处于暂挂状态时尝试 WU/WLU 传输事务,则会导致微架构危害并强制回放。

在极为罕见的情况下,如果存在由 L2 高速缓存行填充和关联逐出构成的持久性数据流,并且互连中存在显著反压,这两者相结合并搭配特定时序,就可能导致 WBNA 存储无限停滞。

条件
1. 通过将 L2ACTLR[4] 默认值更改为 1b0 来启用 WriteUnique/WriteLineUnique 传输事务。
2. Cortex-A72 处理器发出写回无分配存储 (OP1) 指令。如果处理器将数据流传输存储降级至写回无分配,则同样满足此条件。
3. 存在暂挂的逐出事务,因 ACE 要求未完成的逐出事务必须完成后才能执行 WriteUnique/WriteLineUnique 存储,从而导致 (OP1) 强制停滞。
4. 因其它核和/或预取导致发生持续性的 L2 高速缓存行填充数据流,从而触发新的逐出。
5. 在互连中存在显著持续性反压,使系统保持处于拥塞,从而使 ACE 写入通道队列近满。
6. 存在特定仲裁和时序条件,并且此类条件与条件 5 相结合导致触发微架构危害,导致条件 3 不断重复。

解决方案

影响:

如满足以上条件,(OP1) 将停滞直至 L2 子系统中的特定时序条件和反压放宽为止。写回无分配存储后的中断和屏障也将延迟,直至存储完成为止。

此错误的条件极为罕见,应该不会对实际系统性能产生显著影响。

此外,如果使用 L2ACTLR[4] 的复位值,并禁用 WriteUnique/WriteLineUnique 传输事务,则可提升大部分系统的性能。

变通方法:

如无需 WriteUnique/WriteLineUnique 传输事务,则可通过设置 L2ACTLR[4] = 1'b1 来将其禁用。

这是复位值。否则,设置 L2ACTLR[7] = 1'b1 即可启用 L2 危害检测超时。这将强制 L2 高速缓存定期重新评估危害,届时将释放停滞。

受影响的配置:

具有 Arm Cortex-A72 (APU) 的所有 Versal 器件。

解决方案:

请参阅此第三方勘误表 (Arm, Inc. 851022)。不对该问题进行修复。

最新文章

最新文章