Linux中的mce处理--mce学习笔记

     1.machine check 是什么?

     machine check 是一种用来报告内部错误的一种硬件的方式。它包括 machine check exceptions 和 silent machine check。

     其中,machine check exceptions(MCEs) 是在硬件不能纠正内部错误的时候发生,在这种情况下,通常会中断 CPU 当前正在运行的程序,并且调用一个特殊的异常处理程序。这种情况通常需要软件来进行处理,即 machine check exception handler。

     当硬件能够纠正内部错误的时候,这种情况通常称作 silent machine check。当这种错误发生的时候,硬件会把相应的错误信息登记到特殊的寄存器中。之后,操作系统或者是固件(BIOS)就可以从这写寄存器中读取信息,登记和分析这些错误信息有助于提前预测机器硬件的故障。

    

     2.machine check 很重要

     随着每一代芯片中晶体管数量的增加,以及芯片大小的减小,硬件发生错误的概率也在提高,因此能够处理这种错误变得越来越重要。

     另外,现在将许多计算机集成在一起进行高性能的科学计算也越来越流行。这些集群的计算机中,发生硬件错误的概率将比普通的计算机发生错误的概率要高,因此,为了保证可靠性,处理这些硬件错误也是很重要的。

     产生 machine checks 的原因很多,这些来源包括 CPU, 缓存, 内部总线, 内存等等,当然也有可能是驱动中的软件错误。


     3.x86 machine check architecture 概述

     intel 和 amd 的芯片都属于 x86 架构的。之前在 IBM 的机器中引入了记忆体(parity memory),当内存发生错误的时候,会出发一个NMI。随后的机器丢弃了记忆体,但仍然报告一些硬件的错误。之后,在 intel pentium 中又将基本的 machine check 加入到 CPU 中,并引入了MCA(machine check architecture)。MCA 包括一个标准的异常(18号中断),以及一些标准的寄存器 MSR(在有的地方全称是 model specific register,另外一些称为 machine specific register)。这些寄存器允许软件来检查,是否发生了一个 machine check &

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值