Исключение машинной проверки - Machine-check exception

А исключение машинной проверки (MCE) является разновидностью компьютерное железо ошибка это происходит, когда компьютер с центральное процессорное устройство обнаруживает неисправимую аппаратную ошибку в самом процессоре, памяти, Ввод / вывод устройств или на системной шине. На x86 архитектуры, исключение проверки машины не вызвано программным обеспечением. Однако на других архитектурах, таких как PowerPC, определенные программные ошибки, такие как недопустимый доступ к памяти, могут вызывать исключения проверки компьютера. Ошибка обычно возникает из-за отказа компонентов, перегрева или разгона аппаратных компонентов. Большинство исключений проверки машины останавливают операционную систему и требуют перезагрузки, прежде чем пользователи смогут продолжить нормальную работу.[сомнительный ] Диагностика сбоя часто бывает сложной, потому что во время ошибки фиксируется очень мало информации о том, что вызвало проблему.

Современные версии Майкрософт Виндоус на IA-32 и x86-64 процессоры обрабатывают исключения машинной проверки через Архитектура аппаратных ошибок Windows. Когда WHEA обнаруживает исключение проверки машины, он отображает ошибку в Синий экран смерти, со следующими параметрами (которые различаются, но первый параметр всегда 0x0 для исключения машинной проверки):[1]

 *** СТОП: 0x00000124 (0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000) 

Более старые версии Windows обрабатывают аналогичные исключения через Архитектура проверки машины. В этом случае синий экран смерти покажет ошибку, подобную следующей:[2]

 СТОП: 0x0000009C (0x00000030, 0x00000002, 0x00000001, 0x80003CBA) 

На Linux, процесс (например, klogd[3]) записывает сообщение в журнал ядра и / или на экран консоли (обычно только в консоль, когда ошибка не подлежит исправлению и в результате происходит сбой машины):

ЦП 0: исключение проверки компьютера: 0000000000000004Банк 2: f200200000000863 Паника ядра: поврежден контекст ЦП

Типы проблем

Большинство этих ошибок относятся именно к Pentium семейство процессоров. Подобные ошибки могут возникать на других процессорах и вызывать аналогичные проблемы.

Некоторые из основных аппаратных проблем, вызывающих MCE, включают:

Возможные причины

Машинные проверки - это проблема оборудования, а не программного обеспечения. Часто они являются результатом разгон или перегрев. В некоторых случаях ЦП отключается после превышения предела температуры, чтобы избежать необратимого повреждения. Но они также могут быть вызваны ошибками шины, вызванными другими неисправными компонентами, такими как память или устройства ввода-вывода. Возможные причины включают:

  • Плохое охлаждение процессора из-за Радиатор процессора и корпус вентиляторы (или фильтры) забиты пылью или отсоединились.
  • Разгон выше максимальной тактовой частоты, при которой ЦП все еще надежен.
  • Неисправная материнская плата.
  • Неисправный процессор.
  • Сбой памяти.
  • Неисправные контроллеры ввода-вывода на материнской плате или отдельных картах.
  • Неисправные устройства ввода-вывода.
  • Неадекватное или неисправное электропитание.

Проблемы с охлаждением обычно очевидны при осмотре. Неисправную материнскую плату или процессор можно определить, заменив их исправными частями. Память можно проверить, загрузив диагностический инструмент, например memtest86. Несущественные неисправные устройства ввода-вывода и контроллеры можно определить, отключив их, если это возможно, или отключив устройства, чтобы увидеть, исчезнет ли проблема. Если сбои обычно возникают довольно скоро после загрузки ОС или не загружаются совсем или не работают в течение нескольких дней, это может указывать на проблему с источником питания. При проблемах с питанием отказ часто происходит, когда потребление энергии достигает пика, когда ОС запускает любые внешние устройства для использования.

Расшифровка MCE

Как отмечалось ранее, декодирование ошибок MCE может оказаться трудным. Обычно производитель процессора может предоставить информацию о конкретных кодах.

Для процессоров IA-32 и Intel 64 см. Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32.[4] Глава 15 (Архитектура проверки компьютера) или статья базы знаний Майкрософт об исключениях Windows.[5]

Программы для декодирования MCE Intel и AMD

  • mcat: программа командной строки Windows из AMD декодировать MCE из AMD K8, Семья 0x10 и 0x11 процессоры.
  • mcelog[6] А Linux демон от Andi Kleen для обработки MCE для современных процессоров x86. mcelog также может декодировать машинные проверки.
  • parsemce[7] а Linux программа Дэйва Джонса для декодирования MCE из AMD K7 процессоры.
  • mced[8] а Linux программа Тима Хокина для сбора MCE из ядра и оповещения заинтересованных приложений. Обратите внимание, что он не пытается интерпретировать данные MCE, он просто предупреждает другие программы.

Смотрите также

использованная литература

  1. ^ «Проверка ошибки 0x124: WHEA_UNCORRECTABLE_ERROR». MSDN. 2016-09-29. Получено 2017-07-13.
  2. ^ «Проверка ошибки 0x9C: MACHINE_CHECK_EXCPETION». Служба поддержки Microsoft. 2018-03-31. Получено 2018-03-31.
  3. ^ Стив Лорд, Грег Веттштейн. "klogd (8) - страница руководства Linux". Получено 2017-07-13. klogd - это системный демон, который перехватывает и регистрирует сообщения ядра Linux.
  4. ^ «Архитектура машинного контроля». Руководство разработчика программного обеспечения для архитектур Intel® 64 и IA-32, том 3B: Руководство по системному программированию, часть 2. Intel Корпорация. Ноябрь 2018.
  5. ^ «Сообщение об ошибке Stop, которое может появиться в Windows XP:» 0x0000009C (0x00000004, 0x00000000, 0xb2000000, 0x00020151)"". MSDN. 2015-12-07. Получено 2017-07-13.
  6. ^ "mcelog: Расширенная обработка аппаратных ошибок для x86 Linux". 2015-04-20. Получено 2017-07-13.
  7. ^ "parsemce: анализатор обработчика исключений проверки компьютера Linux". 2003-07-22. Получено 2017-07-13.
  8. ^ mcedaemon на GitHub

внешние ссылки