Исключение проверки машины ( MCE ) — это тип компьютерной ошибки , которая возникает при обнаружении проблемы с аппаратным обеспечением компьютера . В большинстве персональных компьютеров массового рынка MCE указывает на неисправное или неправильно настроенное оборудование.
Природа и причины MCE могут различаться в зависимости от архитектуры и поколения системы. В некоторых конструкциях MCE всегда является неустранимой ошибкой, которая останавливает машину, требуя перезагрузки . В других архитектурах некоторые MCE могут быть нефатальными, например, для однобитовых ошибок, исправленных памятью ECC . В некоторых архитектурах, таких как PowerPC , определенные программные ошибки могут вызывать MCE, такие как недопустимый доступ к памяти. В других архитектурах, таких как x86 , MCE обычно возникают только из-за оборудования.
![]() |
Операционная система IBM System/360 ( OS/360 ) записывает ошибки ввода/вывода в набор данных SYS1.LOGREC. С тех пор IBM ввела термин набор данных записи ошибок ( ERDS ) для последующих версий, которые позволяют установке выбирать имя, и для операционных систем, не являющихся производными от OS/360. [1]
В OS/360 установка может выбрать несколько уровней поддержки для обработки машинных проверок. Самый сложный, Machine Check Handler (MCH), записывает данные об ошибках в SYS1.LOGREC и пытается восстановить. Установка может распечатать эти данные с помощью служебной программы Environmental Record Editing and Printing Program (EREP) или автономной версии SEREP. MCH может обрабатывать сбои памяти в обновляемых разделах управления ядром, считывая новую копию из SYS1.ASRLIB, и может обрабатывать ошибки памяти в переходных областях SVC, считывая новую копию модуля SVC из SYS1.SVCLIB.
В 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 . Несущественные неисправные устройства ввода-вывода и контроллеры можно определить, отключив их, если это возможно, или отключив устройства, чтобы посмотреть, исчезнет ли проблема. Если сбои обычно происходят только довольно скоро после загрузки ОС или не происходят вообще или в течение нескольких дней, это может указывать на проблему с питанием. При проблеме с питанием сбой часто происходит, когда потребление энергии достигает пика, когда ОС запускает какие-либо внешние устройства для использования.
Для процессоров IA-32 и Intel 64 см. Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32 [6], Глава 15 (Архитектура машинной проверки), или Статья базы знаний Microsoft об исключениях Windows. [7]
{{cite book}}
: |work=
проигнорировано ( помощь )