Intel MCE CMCI (一) 概述

来源:互联网 发布:php培训出来的 编辑:程序博客网 时间:2024/06/06 14:17
Corrected machine-check error interrupt (CMCI) 是MCA的增强特性。在原来的芯片里面,都是使用一种叫做threshold-based error reporting的机制来处理corrected error. 但是threshold-based error reporting需要系统软件周期性的轮询检测硬件的corrected MC errors,造成CPU的浪费。 CMCI 提供了一种机制,当corrected error发生侧次数到达阀值的时候,就会发送一个信号给本地的CPU来通知系统软件。当然,系统软件可以通过IA32_MCi_CTL2 MSRs来控制该特性的开关

默认的情况下,CMCI是被禁止的。 在IA32_MCG_CAP[10] = 1的情况下,系统软件需要使能每一个bank的IA32_MCi MSR的CMCI位来让芯片通过中断报告 hardware corrected errors

系统软件可以通过 IA32_MCi_CTL2 MSR来分别开关每个bank的CMCI特性,并且可以对 IA32_MCi_CTL2 MSR中的阀值数进行设置。 CR4.MCE的值和 IA32_MCi_CTL MSR的值不会影响到CMCI特性

可以通过向IA32_MCi_CTL2[14:0]中写入希望的阀值的方法,来探知某个bank中是否已经设置了阀值。如果可以写入并保存,则该bank支持设置阀值(同时CMCI也一定是支持的)。如果写入后,IA32_MCi_CTL2[14:0]都是0,那么就不支持设置阀值。同样,软件向MCi_CTL2[30]写入1,来判断是否可以发送CMCI新号。如果写入后,MCi_CTL2[30]=0,那么该BANK就不支持CMCI,如果MCi_CTL2[30]=1,那么CMCI就是支持并使能的。



相关文章

MACHINE-CHECK 相关的MSR(三) - Error-Reporting Register Banks  

0 0