ZHCZ052C March 2023 – October 2025 AM62A1-Q1 , AM62A3 , AM62A3-Q1 , AM62A7 , AM62A7-Q1
C7x:执行两条连续的 VPUT/MVC 指令后,SE/SA/HWAOPEN 接收到损坏的模板
在 C7604 CPU 上,编程信息通过 SEOPEN 发送到流引擎,通过 SAOPEN 发送到流地址生成器,并通过 HWAOPEN 指令发送到 MMA。该编程信息来源于 CPU 中的 CUCR 寄存器,这些寄存器通过 MVC 和 VPUT 系列指令进行填充与更新。如果在三个 CPU 周期序列中,前两个周期更新了某个 CUCR 寄存器,第三个周期该寄存器被 SEOPEN、SAOPEN 或 HWAOPEN 指令使用,则写入这些 CUCR 寄存器的数据可能会错误地转发至上述指令。
例如,以下序列会导致 SAOPEN 指令执行时出现转发错误,进而破坏 SA0 的编程配置:
MVC .C2 VB0, CUCR0
VPUTD .C2 B1, 0, CUCR0
SAOPEN .C2 CUCR1:CUCR0, 0
避免以下三个执行包序列即可规避该问题:前两个执行包包含向同一 CUCR 写入数据的 MVC/VPUT 指令,第三个执行包包含从同一 CUCR 读取数据的 SE/SA/HWAOPEN 指令。编译器在编译 C7504 代码时,会自动纳入该问题的权变措施。