2414877_zh-CN

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

2414877_zh-CN

2414877_zh-CN

E6500 / E5500 中断路径、RFI 与 RFCI 以及其他系列指令

你好,

RFI 和其他系列指令用于从不同类型的中断/异常中返回。
我想知道,在 E5500 和 E6500 处理器上,只要 SRR0 和 SRR1 恢复到正确的值(可能最初是从 CSRR0、CRSRR1 或 MCSRR0、MCSRR1 等读取),是否可以始终使用 RFI,或者这样做是否会破坏处理器的某些内部机制。


顺祝商祺!

阿莱克西·托雷斯

QorIQ T1 设备QorIQ T2 设备Re: E6500 / E5500 Interrupt Path, RFI vs RFCI and other family instructions

感谢您的快速回复。这证实了我们一直以来的想法。

Re: E6500 / E5500 Interrupt Path, RFI vs RFCI and other family instructions

在 E5500 和 E6500 上,即使 SRR0/SRR1 寄存器已手动预加载了从 CSRR0/CSRR1 或 MCSRR0/MCSRR1 复制的值,也不建议普遍用“RFI”代替其他中断返回指令(“RFCI”、“RFMCI”等)。


  1. 每条返回指令都会从特定的保存/恢复寄存器对恢复 MSR。使用 `RFI` 总是从 SRR1 恢复,但恢复的 MSR 位(以及被屏蔽或强制的位)可能因指令而异。除了寄存器值之外,`RFCI` 或 `RFMCI` 在硬件层面上可能会以不同的方式处理某些位。

  1. `RFCI` 和 `RFMCI` 还会清除 `CSSR`/`MCSR` 状态,并更新内部处理器对中断级别的跟踪(例如,MSR 中的 `CE`/`ME` 使能位)。简单地使用 `RFI` 并手动复制值可能无法正确地重新启用或清除关键/机器检查中断状态,从而可能导致处理器处于不一致的内部状态。

  1. Power Architecture Embedded Environment (EREF) 规范明确定义了从每个异常类返回时必须使用哪个指令。偏离此行为超出了架构定义的行为范围,可能会在这些核心上产生不可预测的结果。

建议的做法是仅对标准/非关键返回使用 rfi,而对相关的中断类使用 rfci、rfdi、rfgi 或 rfmci。

标记 (1)
无评分
版本历史
最后更新:
星期二
更新人: