Intel MCE UCR ERRORS(二) UCR的报告和记录

IA32_MCi_STATUS MSR 用来报告UCR错误、 corrected错误和 uncorrected errors错误。 IA32_MCi_STATUS 的定义如下所示,通过其中的bit位可以唯一的标明UCR错误。



根据UCR的错误类型,UCR错误可以通过CMCI方式通知,也可以通过MCE( machine check exception)方式发送。

当IA32_MCG_CAP[24] = 1,通过 IA32_MCi_STATUS中的 如下bit来判断是否是一个UCR
  • Valid (bit 63) = 1
  • UC (bit 61) = 1
  • PCC (bit 57) = 0
IA32_MCi_STATUS. ADDRV = 1, IA32_MCi_STATUS. MISCV = 1的时候, IA32_MCi_MISC和  IA32_MCi_ADDR中会含有与该UCR错误相关的更多信息。 IA32_MCi_STATUS中的 MCA error code
域标明了UCR的错误类型。系统软件通过解析 MCA error code域来分析错误类型,然后采用一些相应的错误恢复行为

另外, IA32_MCi_STATUS[56:55]提供了更多的信息来帮助系统软件更加合理的完成错误的处理

S (Signaling) flag, bit 56 - 当设定后,如果该bank被报告了一个UCR,那么随之将会产生一个MCE ( machine check exception),软件负责检查 IA32_MCi_STATUS中的 AR标志位和MCA error code来判断到底采用哪种必要的行为来恢复错误。当 IA32_MCi_STATUS中的S位被清除,该UCR将不会通过MCE来通知,取而代之的是通过 corrected machine check (CMC)的方式报告。当没有设置S位的时候,系统软件什么都不用做。
AR (Action Required) flag, bit 55 -  当设定后,当一个错误被通知后,系统软件必须要采取必要的恢复动作。这个动作必须在其他任务被调度到本处理器前成功完成。当 IA32_MCG_STATUS.RIPV = 0,可以执行另外一个可选的执行流程而不必再重新执行exception前的路程。如果特定的恢复动作不能成功执行的话,系统软件会执行关机动作。当 IA32_MCi_STATUS.AR = 0,系统还是有可能执行恢复动作,但是这不是强制的。当 IA32_MCG_STATUS. RIPV = 1,那么系统可以在执行完恢复动作后安全地重新执行栈顶的EIP指针。

S和AR都被定义为粘贴位,也就是说一旦这种位被设定后,处理器就不会去清理它们。只有系统软件和 good power-on reset可以清除S和AR位。S和AR位只有当系统中报告了UCR错误( MCG_CAP[24] = 1 )的时候才会被设置





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值