Исключение проверки машины

Тип ошибки оборудования компьютера

Исключение проверки машины ( MCE ) — это тип компьютерной ошибки , которая возникает при обнаружении проблемы с аппаратным обеспечением компьютера . В большинстве персональных компьютеров массового рынка MCE указывает на неисправное или неправильно настроенное оборудование.

Природа и причины MCE могут различаться в зависимости от архитектуры и поколения системы. В некоторых конструкциях MCE всегда является неустранимой ошибкой, которая останавливает машину, требуя перезагрузки . В других архитектурах некоторые MCE могут быть нефатальными, например, для однобитовых ошибок, исправленных памятью ECC . В некоторых архитектурах, таких как PowerPC , определенные программные ошибки могут вызывать MCE, такие как недопустимый доступ к памяти. В других архитектурах, таких как x86 , MCE обычно возникают только из-за оборудования.

Отчетность

Операционные системы для мэйнфреймов IBM

Операционная система IBM System/360 ( OS/360 ) записывает ошибки ввода/вывода в набор данных SYS1.LOGREC. С тех пор IBM ввела термин набор данных записи ошибок ( ERDS ) для последующих версий, которые позволяют установке выбирать имя, и для операционных систем, не являющихся производными от OS/360. [1]

ОС/360

В OS/360 установка может выбрать несколько уровней поддержки для обработки машинных проверок. Самый сложный, Machine Check Handler (MCH), записывает данные об ошибках в SYS1.LOGREC и пытается восстановить. Установка может распечатать эти данные с помощью служебной программы Environmental Record Editing and Printing Program (EREP) или автономной версии SEREP. MCH может обрабатывать сбои памяти в обновляемых разделах управления ядром, считывая новую копию из SYS1.ASRLIB, и может обрабатывать ошибки памяти в переходных областях SVC, считывая новую копию модуля SVC из SYS1.SVCLIB.

z/ОС

В z/OS установка может использовать ERDS или определить поток журнала z/OS System Logger [2] для хранения данных об ошибках. Как и в OS/360, установка использует EREP для печати этих данных; SEREP больше не доступен. MCH больше не является опциональным и обрабатывает гораздо больше режимов сбоев, чем OS/360 MCH.

Майкрософт Виндоус

На платформах Microsoft Windows в случае неустранимой ошибки MCE система генерирует BugCheck — также называемую STOP-ошибкой или синим экраном смерти .

Более поздние версии Windows используют архитектуру аппаратных ошибок Windows (WHEA) и генерируют код STOP 0x124, WHEA_UNCORRECTABLE_ERROR. Четыре параметра (в скобках) будут различаться, но первый всегда 0x0 для MCE. [3] Пример:

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

В более старых версиях Windows используется архитектура проверки машины с кодом STOP 0x9C, MACHINE_CHECK_EXCEPTION. [4] Пример:

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

Линукс

В Linux ядро ​​записывает сообщения о MCE в журнал сообщений ядра и системную консоль . Если MCE не являются фатальными, они также обычно копируются в системный журнал и/или журнал systemd . Для некоторых систем ECC и другие исправимые ошибки могут сообщаться через средства MCE. [5]

Пример:

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

Типы проблем

К основным проблемам с оборудованием, вызывающим MCE, относятся:

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

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

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

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

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

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

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

  • rasdaemon [8] — это инструмент ведения журнала RAS ( надежность, доступность и удобство обслуживания ) для Linux . Он регистрирует ошибки памяти, используя события трассировки EDAC. EDAC — это подсистема ядра Linux, которая обрабатывает обнаружение ошибок ECC от контроллеров памяти для большинства чипсетов на архитектурах i386 и x86_64. Также существуют драйверы EDAC для других архитектур, таких как arm. Рекомендуется использовать rasdaemon для сбора информации MCE в системах Linux, поскольку mcelog устарел с 2017 года. [9] [10] [11] [12]
  • mcelog [13] — это демон Linux от Энди Клина для обработки MCE для процессоров x86. mcelog также может декодировать машинные проверки. mcelog считается функционально устаревшим с 2017 года. [11] [12] Заменой mcelog для систем Linux является rasdaemon. [9] [10]
  • parsemce [14] — это программа Linux, разработанная Дэйвом Джонсом для декодирования MCE из процессоров AMD K7 .
  • mced [15] (mcedaemon) — это программа Linux от Тима Хокина для сбора MCE из ядра и оповещения заинтересованных приложений. Обратите внимание, что она не пытается интерпретировать данные MCE, а просто оповещает другие программы.
  • mcat — это программа командной строки Windows от AMD для декодирования MCE процессоров AMD K8 , семейства 0x10 и 0x11 .

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

Ссылки

  1. ^ "Глава 1. Знакомство с EREP" (PDF) . Программа редактирования и печати экологических записей (EREP) 3.5 — Руководство пользователя (PDF) . IBM . 30 сентября 2021 г. стр. 1. GC35-0151-50 . Получено 20 февраля 2023 г. .
  2. ^ Руководство системного программиста по z/OS System Logger (PDF) (Второе издание). IBM . Июль 2007 г. SG24-6898-01 . Получено 20 февраля 2023 г. {{cite book}}: |work=проигнорировано ( помощь )
  3. ^ "Проверка ошибки 0x124: WHEA_UNCORRECTABLE_ERROR". Microsoft. 2022-11-03 . Получено 2022-12-11 .
  4. ^ "Проверка ошибок 0x9C: MACHINE_CHECK_EXCEPTION". Microsoft. 2021-12-14 . Получено 2022-12-11 .
  5. ^ "mcelog не работает с семейством процессоров AMD 16 и выше на SLES11 SP3". SuSE. 2022-09-27 . Получено 2022-12-11 .
  6. ^ "Архитектура проверки машины". Руководство разработчика программного обеспечения для архитектур Intel® 64 и IA-32, том 3B: Руководство по системному программированию, часть 2. Корпорация Intel . Ноябрь 2018 г.
  7. ^ "Сообщение об ошибке Stop в Windows XP, которое вы можете получить: "0x0000009C (0x00000004, 0x00000000, 0xb2000000, 0x00020151)"". MSDN . 2015-12-07 . Получено 2017-07-13 .
  8. ^ Мауро Карвальо Шехаб (mchehab) (2023-02-20). "rasdaemon — это инструмент ведения журнала RAS (надежность, доступность и удобство обслуживания)". github.com . Получено 2023-02-20 .
  9. ^ ab "Исключение машинной проверки". wiki.archlinux.org . 2021-05-08 . Получено 2023-02-21 .
  10. ^ ab "ECC RAM". wiki.gentoo.org . 2022-12-30 . Получено 2023-02-21 .
  11. ^ ab "x86/mce: Вынести за скобки и признать устаревшим драйвер /dev/mcelog". git.kernel.org . 2017-03-28 . Получено 2023-02-21 .
  12. ^ ab "x86/mce: Вынести за скобки и признать устаревшим драйвер /dev/mcelog". github.com/torvalds/linux/ . 2017-03-28 . Получено 2023-02-21 .
  13. ^ "mcelog: Расширенная обработка аппаратных ошибок для x86 Linux". 2015-04-20 . Получено 2017-07-13 .
  14. ^ "parsemce: Анализатор обработчика исключений проверки Linux Machine". 2003-07-22 . Получено 2017-07-13 .
  15. ^ mcedaemon на GitHub
  • mcelog: Расширенная обработка аппаратных ошибок для x86 Linux
  • parsemce: анализатор обработчика исключений проверки машины Linux.
Взято с "https://en.wikipedia.org/w/index.php?title=Machine-check_exception&oldid=1233749758"