Intel MCA 硬件机制概述

Intel引入了  MACHINE-CHECK ARCHITECTURE(MCA) 和 machine-check exception(#MC) 机制用来对服务器硬件进行自检,并在发现硬件错误的时候发出中断或异常。系统软件收到中断或异常后,会对其进行响应,进行相应的修复、告警或其他策略等动作。通过Intel的这个RAS特性,保证在发生crash等错误前,服务器可以有机会做一些容错处理,大大提升了Intel在数据中心高可靠服务器领域的竞争实力。

Intel在Xeon,Atom,P6等中,都开始支持MCA特性。通过MCA,系统可以探测硬件错误,如系统总线错误,ECC错误,奇偶校验错误,cache错误,TLB错误等。MCA机制使用到了一组相关的MSR,通过这些MSR,MCA可以对硬件错误进行检测并记录检测到的错误信息。注意这里有一个bank的概念,可以简单理解为组。如bank1里面有MSR1_STATUS, MSR1_CTL, MSR1_ADDR;bank2里面有MSR2_STATUS, MSR2_CTL, MSR2_ADDR;为了方便书写为banks 含有寄存器 MSRi_STATUS, MSRi_CTL, MSRi_ADDR;其中i=0,i=1。后面讲解MSR的时候,还会进行讲解

处理器在探测到 uncorrected machine-check error(硬件不可自修复)的时候,就会发送 machine-check exception (#MC)。这种exception是abort类型的。MCA的实现通常来讲,是不允许在产生#MC后进行可靠的重启。 machine-check-exception的处理函数,可以通过读取相关的MSR来得到相关的错误信息。从Intel 45nm(最新的已经规划10nm门电路的芯片)的芯片开始,处理器在发现 corrected machine-check error(硬件可自修复的错误)的时候,也会发送一个中断给系统软件来响应这类MC 错误,这种中断被称作CMCI( corrected machine-check  error interrupt )

在支持MCA和CMCI的 Intel 64处理上,还支持一些额外的增强特性,可以让系统软件来恢复一些特性的 uncorrected recoverable machine check 错误(UCR),让服务器得到更大的稳定稳定性

关于特定的芯片兼容性和映射这里就不多讲了,有兴趣的可以参考Intel的SDM


参考文章
Intel UCE和CE,以及register banks的意思

你可能感兴趣的:(硬件知识)