A excepción de la máquina-check ( MCE ) es un tipo de hardware de ordenador de error que se produce cuando un ordenador 's unidad de procesamiento central detecta un error de hardware en el propio procesador, la memoria, los E / S de los dispositivos, o en el bus del sistema; en algunas arquitecturas [a] , un MCE solo ocurre por un error irrecuperable. En arquitecturas x86 , una excepción de verificación de máquina no es causada por software. Sin embargo, en otras arquitecturas como PowerPC, ciertos errores de software, como los accesos no válidos a la memoria, pueden provocar excepciones en la verificación de la máquina. El error generalmente ocurre debido a fallas de componentes o al sobrecalentamiento o overclocking de componentes de hardware. La mayoría de las excepciones de verificación de máquinas detienen el sistema operativo y requieren un reinicio antes de que los usuarios puedan continuar con el funcionamiento normal. [ dudoso ] Diagnosticar la falla a menudo puede ser difícil porque se captura muy poca información sobre la causa del problema durante el error.
Las versiones modernas de Microsoft Windows en procesadores IA-32 y x86-64 manejan excepciones de verificación de máquinas a través de la Arquitectura de errores de hardware de Windows . Cuando WHEA detecta una excepción de comprobación de máquina incorregible, muestra el error en una pantalla azul de la muerte , con los siguientes parámetros (que varían, pero el primer parámetro es siempre 0x0 para una excepción de comprobación de máquina): [1]
*** DETENER: 0x00000124 (0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000)
Las versiones anteriores de Windows manejan excepciones similares a través de la arquitectura Machine Check . En este caso, la pantalla azul de la muerte mostrará un error similar al siguiente: [2]
DETENER: 0x0000009C (0x00000030, 0x00000002, 0x00000001, 0x80003CBA)
En Linux , un proceso (como klogd
[3] ) escribe un mensaje en el registro del kernel y / o la pantalla de la consola (generalmente solo en la consola cuando el error no es recuperable y la máquina falla como resultado):
CPU 0: Excepción de comprobación de máquina: 0000000000000004Banco 2: f200200000000863Pánico en el kernel: contexto de CPU corrupto
Tipos de problemas
La mayoría de estos errores se relacionan específicamente con la familia de procesadores Pentium . Pueden ocurrir errores similares en otros procesadores y causarán problemas similares.
Algunos de los principales problemas de hardware que causan los MCE incluyen:
- Errores del bus del sistema : (error de comunicación entre el procesador y la placa base ).
- Errores de memoria : la verificación de paridad detecta cuando se ha producido un error de memoria. El código de corrección de errores (ECC) puede corregir errores de memoria limitada para que el procesamiento pueda continuar.
- Errores de caché de CPU en el procesador.
Posibles Causas
Las comprobaciones de la máquina son un problema de hardware, no de software. A menudo son el resultado de overclocking o sobrecalentamiento. En algunos casos, la CPU se apagará una vez que pase un límite térmico para evitar daños permanentes. Pero también pueden deberse a errores de bus introducidos por otros componentes defectuosos, como la memoria o los dispositivos de E / S. Las posibles causas incluyen:
- Refrigeración deficiente de la CPU debido a un disipador de calor de la CPU y ventiladores (o filtros) de la carcasa que están obstruidos con polvo o se han soltado.
- Overclocking más allá de la frecuencia de reloj más alta a la que la CPU sigue siendo confiable.
- Placa base defectuosa.
- Procesador defectuoso.
- Falta de memoria.
- Controladores de E / S defectuosos, ya sea en la placa base o en tarjetas separadas.
- Dispositivos de E / S defectuosos.
- Fuente de alimentación inadecuada o defectuosa.
Los problemas de enfriamiento suelen ser obvios al inspeccionarlos. Se puede identificar una placa base o un procesador con fallas intercambiándolos por partes que funcionen. La memoria se puede verificar arrancando con una herramienta de diagnóstico, como memtest86 . Los controladores y dispositivos de E / S defectuosos no esenciales se pueden identificar desenchufándolos si es posible o desactivándolos para ver si el problema desaparece. Si las fallas generalmente solo ocurren bastante pronto después de que se inicia el sistema operativo o no se inician en absoluto o no durante días, puede sugerir un problema de suministro de energía. Con un problema de suministro de energía, la falla a menudo ocurre cuando la demanda de energía alcanza su punto máximo cuando el sistema operativo inicia cualquier dispositivo externo para su uso.
Decodificación de MCE
Para procesadores IA-32 e Intel 64, consulte el Capítulo 15 del Manual del desarrollador de software de arquitecturas Intel 64 e IA-32 [4] (Arquitectura de comprobación de máquinas), o el artículo de Microsoft KB sobre excepciones de Windows. [5]
Programas para decodificar Intel y AMD MCE
- mcat: un programa de línea de comandos de Windows de AMD para decodificar los MCE de los procesadores AMD K8 , Familia 0x10 y 0x11 .
- mcelog [6] Un demonio de Linux de Andi Kleen para manejar MCE para procesadores x86 modernos. mcelog también puede decodificar controles de máquina.
- parsemce [7] un programa Linux de Dave Jones para decodificar MCE de procesadores AMD K7 .
- mced [8] un programa Linux de Tim Hockin para recopilar MCE del kernel y alertar a las aplicaciones interesadas. Tenga en cuenta que no intenta interpretar los datos del MCE, simplemente alerta a otros programas.
Ver también
Notas
- ^ En otras arquitecturas, puede ocurrir un MCE para registrar, por ejemplo, una memoria corregida por ECC.
Referencias
- ^ "Comprobación de error 0x124: WHEA_UNCORRECTABLE_ERROR" . MSDN . 2016-09-29 . Consultado el 13 de julio de 2017 .
- ^ "Comprobación de errores 0x9C: MACHINE_CHECK_EXCPETION" . Soporte de Microsoft . 2018-03-31 . Consultado el 31 de marzo de 2018 .
- ^ Steve Lord, Greg Wettstein. "klogd (8) - página de manual de Linux" . Consultado el 13 de julio de 2017 .
klogd es un demonio del sistema que intercepta y registra los mensajes del kernel de Linux.
- ^ "Arquitectura de comprobación de máquinas" . Manual del desarrollador de software de arquitecturas Intel® 64 e IA-32 Volumen 3B: Guía de programación del sistema, Parte 2 . Intel Corporation. Noviembre de 2018.
- ^ "Detenga el mensaje de error en Windows XP que puede recibir:" 0x0000009C (0x00000004, 0x00000000, 0xb2000000, 0x00020151) " " . MSDN . 2015-12-07 . Consultado el 13 de julio de 2017 .
- ^ "mcelog: manejo avanzado de errores de hardware para x86 Linux" . 2015-04-20 . Consultado el 13 de julio de 2017 .
- ^ "parsemce: analizador del controlador de excepciones de comprobación de la máquina Linux" . 2003-07-22 . Consultado el 13 de julio de 2017 .
- ^ mcedaemon en GitHub
enlaces externos
- mcelog: manejo avanzado de errores de hardware para x86 Linux
- parsemce: analizador del controlador de excepciones de verificación de la máquina Linux