Остановка 7F, 0x00000008 (двойной сбой) возникает из-за одноразрядной ошибки в регистре ESP

В этой статье представлено решение для 0x0000007F STOP, 0x00000008 сообщение об ошибке на компьютере из-за определенной ошибки процессора. Это сообщение об ошибке может отображаться при возникновении одноразрядной ошибки в регистре ESP процессора, работающего на компьютере.

Применяется к: Windows Server 2012 R2
Исходный номер базы знаний: 842465

Симптомы

На компьютере под управлением одного или нескольких процессоров Intel Xeon или под управлением других процессоров Windows может отобразить сообщение об ошибке остановки, аналогичное следующему примеру:

STOP 0x0000007F (0x00000008, 0x00000000, 0x00000000, 0x00000000) UNEXPECTED_KERNEL_MODE_TRAP

При возникновении этой проблемы выполняются следующие условия:

  • Первым параметром stop-ошибки является "0x0000008". (Эта ошибка является исключением двойной ошибки.)
  • Из-за однобитовой ошибки в верхней половине регистра ESP значение в регистре ESP выходит за пределы диапазона стека текущего потока.

Причина

Эта проблема возникает, если один или несколько процессоров на компьютере:

  • Требовать обновления микрокода, которое не применяется базовой системой ввода-вывода компьютера (BIOS).

  • Повреждены или повреждены.

  • Работают за пределами указанных диапазонов температуры, мощности или других условий.

Разрешение

Чтобы устранить эту проблему, используйте один из следующих методов устранения неполадок.

Способ 1. Определите, запущен ли процессор в рабочей редакции обновления микрокода

Обновление микрокода исправляет ошибки или ошибки в внутренне реализованной логике процессора. Обновления микрокодов не могут постоянно храниться в самом процессоре и должны загружаться в процессор при каждом запуске компьютера. Обновления микрокодов могут применяться BIOS компьютера или драйвером Update.sys.

Чтобы определить редакцию обновления микрокода, которая в настоящее время применяется к процессору Intel, установленному на вашем компьютере, выполните следующие действия.

  1. Скачайте программу Intel Processor Identification Utility.

  2. Установите и запустите программу Intel Processor Identification Utility на компьютере с симптомами.

  3. Запишите следующие сведения о ЦП для каждого процессора:

    • Семейство ЦП
    • Модель ЦП
    • Пошаговое выполнение ЦП
    • Редакция ЦП

    Значения семейства ЦП, модели ЦП и пошагового выполнения ЦП определяют конкретный тип процессора. Значение редакции ЦП определяет редакцию примененного обновления микрокода.

  4. Обратитесь к производителю компьютера, чтобы определить, является ли редакция обновления микрокода наиболее актуальной версией, доступной для конкретного процессора. Если редакция не является самой актуальной, попросите производителя компьютера запросить обновленную версию BIOS, которая будет применять самую последнюю версию обновления микрокода.

Симптомы, описанные в этой статье, чаще всего наблюдаются на процессорах Intel Xeon с семейством ЦП, моделью ЦП и значениями шаговых шагов ЦП 15, 2 и 9 соответственно и установленными на системных платах, использующих наборы микросхем ServerWorks. (Шестнадцатеричные значения семейства ЦП, модели ЦП и шага ЦП: F, 2 и 9 соответственно.) Для правильной работы этих процессоров требуется значение редакции 0x18 или более поздней версии. (0x18 эквивалентно десятичному значению 24.)

Значение редакции 0 означает, что BIOS компьютера не имеет правильного обновления микрокода для процессоров, установленных на компьютере. Необходимо обновить BIOS, указав редакцию обновления микрокода, которая поддерживает процессоры, которые вы используете.

Корпорация Intel рекомендует применить последние редакции обновлений микрокода, чтобы избежать известных проблем.

Способ 2. Определите, поврежден ли процессор или неисправен

Если для процессоров, установленных на затронутых компьютерах, применена редакция обновления производственного микрокода, а описанные в этой статье симптомы не возникают на всех компьютерах с одной и той же моделью, процессоры могут быть неисправными.

Чтобы определить, поврежден или неисправен ли процессор, переместите его на компьютер без каких-либо симптомов.

Предупреждение

Если вы меняете процессоры, следуйте инструкциям, предоставленным производителем компьютера, или обратитесь к квалифицированным техническим специалистам по оборудованию, чтобы изменить процессоры.

Если симптомы продолжают возникать на исходном компьютере с заменяющим процессором, но не на другом компьютере с исходным процессором, проблема, вероятно, не вызвана повреждением или дефектным процессором.

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

Если на компьютере с симптомами, описанными в этой статье, больше одного процессора, переместите все процессоры на другой компьютер. Если результаты показывают, что один или несколько из этих процессоров могут быть неисправными, переместите процессоры по одному, чтобы определить процессор или процессоры, которые могут быть неисправными.

Способ 3. Определение того, работает ли процессор за пределами заданного диапазона условий среды

Чрезмерная температура в помещении, плохая вентиляция или накопление пыли могут привести к тому, что электронные компоненты, такие как процессоры, будут вести себя неправильно. Неисправные вентиляторы или заблокированные воздушные проходы могут вызвать проблемы с вентиляцией. Если внутренние или воздушные проходы компьютера пыльные, или если компьютер проявляет симптомы, когда он установлен только в определенном месте, перегрев системы может быть фактором. Убедитесь, что компоненты чисты, вентиляторы работают правильно, а воздушные проходы не затруднили. Кроме того, убедитесь, что помещение, где находится компьютер, надлежащим образом проветривалось. Температура помещения должна находиться в рабочем диапазоне, заданном производителем компьютера.

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

Дополнительная информация

Дополнительные сведения об ошибках stop 0x0000007F см. в разделе 0x0000007F Stop error на компьютере под управлением Windows.

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

Чтобы определить, является ли stop-ошибка результатом однобитовой ошибки в регистре ESP, выполните следующие действия.

  1. Установите средства отладки (Майкрософт) для Windows.

  2. Запустите средство WinDbg, выберите Файл, открыть аварийный дамп , чтобы найти файл дампа памяти, содержащий сведения об ошибке, а затем нажмите кнопку ОК.

  3. Выполните команду , !analyze -v чтобы получить автоматический анализ файла дампа.

  4. Проверьте выходные данные команды, !analyze -v чтобы узнать, отображается ли в выходных данных условие двойной ошибки. Если существует условие двойной ошибки, выполните .tss 28 команду, чтобы отобразить состояние системы во время двойной ошибки. Как правило, это значение относительно близко к значению регистра EBP.

  5. Выполните команду , !thread чтобы просмотреть диапазон стека текущего потока. Исключение двойной ошибки обычно возникает, когда значение регистра ESP выходит за диапазон адресов, зарезервированных для стека для текущего потока.

    При выполнении этого конкретного потока значение регистра ESP всегда должно находиться между базовым значением стека (f5d2a000) и значением Limit (f5d27000). Как правило, значение регистра ESP относительно близко к текущему значению (f5d29c9c). (Текущее значение также находится между базовым значением стека и значением Limit.)

    Вы также можете проверка значения диапазона стека, выполнив !pcr команду .

    Значение NtTib.StackLimit представляет нижний предел диапазона стека. Значение NtTib.StackBase представляет последнее значение ESP. Это NtTib.StackBase значение можно сравнить с текущим значением регистра ESP, чтобы определить, есть ли однобитовая ошибка в текущем значении регистра ESP.

  6. Выполните команду , .formats esp ^ ebp чтобы отобразить различия в значениях между регистрами ESP и EBP. Значение указателя стека в регистре EBP будет близко к значению указателя стека в регистре ESP, за исключением однобитовой ошибки. Эта команда часто показывает один бит высокого порядка, содержащий ошибку, особенно если ошибка отображается в двоичном формате.

    Если игнорировать нижние, наименее значимые цифры, то однобитовая разница между регистрами ESP и EBP составляет 00000000 00001000 0000000 0000000 0000000 00000000 в двоичном формате. Разница составляет 00080000 в шестнадцатеричном формате.

    Эта однобитовая ошибка приводит к тому, что регистр ESP содержит неверное значение. Неправильное значение вызывает исключение двойной ошибки, проверка ошибок и сбой системы.

Чтобы получить дополнительные сведения о конкретном оборудовании, выполните следующие действия.

  1. Используйте команду , !cpuinfo чтобы получить сведения о версии ЦП.

    Хотя значение Update Signature не всегда может быть точно указано при анализе файла аварийного дампа, поле Update Signature обычно указывает редакцию обновления микрокода, применяемую к ЦП.

  2. !pcitree Используйте команду , чтобы найти идентификаторы поставщиков и устройств (идентификаторы VenDev) для существующих устройств Интерфейса периферийного подключения (PCI).

    Для каждого указанного устройства PCI первым 8-значным шестнадцатеричным значением (DWORD) в каждой строке является идентификатор VenDev. Идентификатор поставщика фактически является вторыми 4 цифрами этого значения. Например, первое указанное устройство имеет идентификатор VenDev 0x00141166. Идентификатор устройства 0x0014, а идентификатор поставщика — 0x1166. Идентификатор поставщика для ServerWorks 0x1166. Таким образом, эти выходные данные исходят от процессора, установленного на системной плате, использующего наборы микросхем ServerWorks.

В этой статье упомянуты программные продукты независимых производителей. Корпорация Майкрософт не дает никаких гарантий, подразумеваемых и прочих, относительно производительности и надежности этих продуктов.