Intel处理器中断18 - Machine-Check Exception (#MC)介绍
2015-09-28 09:57
706 查看
概述当处理器探测到机器内部错误或者总线错误的时候,就会发送该中断。当然,一个外部的硬件代理设备探测到总线错误的时候,也会发送该中断。近期的工作是围绕内存错误的,所以发现了内存 错误,就会对处理器发送该中断。machine-check exception 在Pentium以后的芯片上才得以支持,而且对于不同的CPU模型都是不同的,需要参考相关的model-specific。Intel不同处理器家族对于machine-check exception的实现都是不同的,并且Intel不保证在未来的Intel 64 或 IA-32处理器上兼容现在的实现
当外部的硬件代理设备诊断到一个总线错误的时候,就会对处理器特定的引脚发送信号:对于Pentium 4, Intel Xeon, 和P6 family处理器会对INIT# 和 MCERR#管脚发送信号;对于Pentium处理器会对BUSCHK#管脚发送信号。当这些管脚中的任何一个被使能后,相应的错误信息都会被保存到machine-check相关的处理器中,然后产生一个machine-check exception
Exception 错误码相关的错误信息可以通过machine-check相关MSR得到
错误现场指令指针得到错误现场当事运行所运行的指令指针,非常有利于定位和解决问题。Intel提供了相关的方法。对于Pentium 4 和 Intel Xeon处理器,machine-check state 相关寄存器中保存的内容就是导致machine-check exception发生的错误指令和相关信息对于P6 family 处理器MCG_STATUS MSR的EIPV标志位被职位,那么CS和EIP寄存器中的内容就是导致machine-check exceptio发生的错误指令;如果EIPV被清除,那么EIP中的指令信息就和错误没有关系对于Pentium处理器,CS 和 EIP 寄存器中的内容都和错误没有关系
功能开关通过CR4寄存器MCE标志位,可以使能machine-check机制对于Pentium 4, Intel Xeon, P6 family, 和Pentium 处理器,如果开关发生了变化,都会导致产生一个machine-check exception,随之产生一个abort类的exception。对于abort exception,该exception的信息可以通过machine-check相关的MSR得到。注意,一旦该机制被关闭了,运行过程中通常就不能重启该机制
如果machine-check机制没有被使能(CR4寄存器MCE标志位没有置位),一个machine-check exception就会导致处理器进入到shutdown状态
当外部的硬件代理设备诊断到一个总线错误的时候,就会对处理器特定的引脚发送信号:对于Pentium 4, Intel Xeon, 和P6 family处理器会对INIT# 和 MCERR#管脚发送信号;对于Pentium处理器会对BUSCHK#管脚发送信号。当这些管脚中的任何一个被使能后,相应的错误信息都会被保存到machine-check相关的处理器中,然后产生一个machine-check exception
Exception 错误码相关的错误信息可以通过machine-check相关MSR得到
错误现场指令指针得到错误现场当事运行所运行的指令指针,非常有利于定位和解决问题。Intel提供了相关的方法。对于Pentium 4 和 Intel Xeon处理器,machine-check state 相关寄存器中保存的内容就是导致machine-check exception发生的错误指令和相关信息对于P6 family 处理器MCG_STATUS MSR的EIPV标志位被职位,那么CS和EIP寄存器中的内容就是导致machine-check exceptio发生的错误指令;如果EIPV被清除,那么EIP中的指令信息就和错误没有关系对于Pentium处理器,CS 和 EIP 寄存器中的内容都和错误没有关系
功能开关通过CR4寄存器MCE标志位,可以使能machine-check机制对于Pentium 4, Intel Xeon, P6 family, 和Pentium 处理器,如果开关发生了变化,都会导致产生一个machine-check exception,随之产生一个abort类的exception。对于abort exception,该exception的信息可以通过machine-check相关的MSR得到。注意,一旦该机制被关闭了,运行过程中通常就不能重启该机制
如果machine-check机制没有被使能(CR4寄存器MCE标志位没有置位),一个machine-check exception就会导致处理器进入到shutdown状态
相关文章推荐
- X86服务器配置YUM源的方法
- TrustZone初探(一)
- QEMU更换内核后启动错误
- X86分区虚拟化 - 多核初始化启动和GUEST OS初始化启动
- ARM TrustZone技术
- 面向对象设计的基本原则
- 解决C++编译出现的重定义问题:multiple definition of ’XXX‘错误
- Spring Batch Tutorial
- ubuntu 使用ifupdown 进行高级网络设置
- Dynamics AX R2 安装Reporting Services 扩展
- Inclusion–exclusion principle(动态规划)
- 为什么C++中空类和空结构体大小为1?(转载)
- 如何在虚拟机外面换内核
- 如何让CentOS启动输出详细的硬件初始化信息
- QEMU内存管理之生成FlatView内存拓扑模型过程分析(基于QEMU2.0.0)
- 如何查看系统中都注册了哪些MemoryRegion(QEMU2.0.0)
- MemoryRegion模型原理,以及同FlatView模型的关系(QEMU2.0.0)
- QEMU内存管理之FlatView模型(QEMU2.0.0)
- QEMU的AddrRange地址空间对象模型算法总结(QEMU2.0.0)
- QEMU的128位算法集合(基于QEMU2.0.0)