RAS---->MCA–>Overview
TIP:
名词解释:
MCA:Machine Check Architecture
MSR:Model Specific Register
MCE:Machine Check Error
#MC:Machine Check Exception
CMCI:Corrected Machine Check Error Interrupt
一 前情提要:
RAS可以粗暴的理解为要实现的目的。
实现这个目的的方法之一就是采用(MCA)机制,而这个机制需要通过一定数量的MSR(寄存器)来实现。这两个寄存器分成两部分,一部分用来进行设置,一部分描述硬件错误。
ERROR:
CPU检测MCE时,会对error进行处理。
Error分两种,可纠正的MCE和不可纠正的MCE。处理方法有所不同。
不可纠正的MCE:触发#MC,通常软件会注册相关的函数来处理#MC,在这个函数中会通过读取MSR来收集MCE的错误信息,然后重启系统。当然由于发生的MCE可能是非常致命的,CPU直接重启了,没有办法完成MCE处理函数;甚至有可能在MCE处理函数中又触发了不可纠正的MCE,也会导致系统直接重启。
可纠正的MCE:当可纠正的MCE数量超过一定的阈值时,会触发CMCI(Corrected Machine Check Error Interrupt),此时软件可以捕捉到该中断并进行相应的处理。CMCI是在MCA之后才加入的,算是对MCA的一个增强,在此之前软件只能通过轮询可纠正MCE相关的MSR才能实现相关的操作。
至此,总算是理清MCA MSR MCE CMCI 之间的关系了