从Intel Core Duo开始,开始引入了
cache error reporting的增强版本。在早期的Intel芯片中,cache的状态取决于一个cache中发生错误纠正事件的次数。在一个叫做
“threshold-based error status”的规范中指出,cache的状态现在取决于同样的纠正错误在cache中影响到的cache line的数量。影响阀值的因素很多,由Intel给出这个值。如果
IA32_MCG_CAP[11] (MCG_TES_P)为1,那么芯片就支持
threshold-based
error status
支持
enhanced cache error reporting的芯片都包含一个硬件可以用来跟踪某些cache的操作,并可以提供一个标志位来标识这些cache的健康信息。当相同校正事件发生的cacheline数量小于阀值的时候,就会报告为
“green”状态;
当超过了阀值的话,就会报告
“yellow”状态。
“yellow”状态意味着cache尚可正常操作,但是在短期内需要对服务器进行维护保养了
Intel建议我们使用
threshold-base error reporting机制
CPU/system/platform不需要像相应
uncorrected
error那么紧急的相应"yellow"状态告警。一个
uncorrected error意味着系统遇到了一个很严重的问题,然而yellow状态意味着收影响的cacheline超过了阀值,但本事不是一个严重的问题;发生了yellow状态的服务器上的错误已经被纠正了,系统尚可正常运行
对于同一个ECC校正多bit错误产生的
uncorrected error
来说,
green/yellow状态标识符并不一定会比
uncorrected error来的快。这样的错误可能会在yellow到达阈值前先发出
uncorrected error。当然,随着被影响的cacheline的忽略增加,
uncorrected error先发生的记录也就随着增大。