Введение
В этой статье делюсь личным опытом решения изматывающей проблемы с зависаниями ПК на базе процессора AMD Ryzen 5000 (архитектура Zen 3). Компьютер часами стабильно работал в тяжелых играх и проходил любые стресс-тесты, но намертво вис или перезагружался в режиме легкой нагрузки — в браузере, на рабочем столе или спустя 10 минут после закрытия игры.
Ниже подробно описаны симптомы, процесс поиска виновника в журналах Windows и точечное решение в BIOS через Curve Optimizer, которое на 100% решило проблему без замены процессора и потери производительности.
Что будет сделано:
- Диагностика аппаратного сбоя
WHEA-Logger (Event ID 18)и расчет номера сбоящего ядра поAPIC ID; - Точечная аппаратная стабилизация питания проблемного ядра через
Curve Optimizer (Positive); - Защита от обесточивания фаз VRM в простое через
Typical Current Idleи сброс общих вольтажей вAuto; - Краткий обзор сопутствующих причин нестабильности шины памяти и софтовых багов Windows.
1. Описание проблемы и симптомы
С этой проблемой я столкнулся в повседневной работе. Самое коварное в ней — абсолютная стабильность под максимальной нагрузкой, из-за чего стандартные методики тестирования ПК оказываются бесполезными.
1.1. Как проявляется сбой и тестовая конфигурация
Симптомы проявлялись исключительно по одному сценарию:
- Сценарий: зависание происходит только в простое или при минимальной активности (серфинг в интернете, чтение статей, просмотр видео, либо когда отошел от ПК на 10–15 минут после завершения игры).
- В играх и стресс-тестах: 0 вылетов и 0 ошибок. Cinebench, Prime95 и тяжелые игровые сессии проходили идеально.
- Характер сбоя: экран намертво застывает на последнем кадре (курсор мыши и клавиатура не реагируют, звук зависает), либо происходит мгновенный ребут без появления синего экрана (BSOD).
Конфигурация системы:
- Процессор: AMD Ryzen 7 5800X (8 ядер / 16 потоков, архитектура Zen 3)
- Материнская плата: ASUS TUF GAMING B550-PRO
- Оперативная память: 32 GB DDR4-3600 G.Skill (DOCP/XMP активен, шина Infinity Fabric FCLK = 1800 МГц)
- Видеокарта: NVIDIA GeForce RTX 4070 Ti
- Накопители: Samsung NVMe SSD
После принудительной перезагрузки кнопкой в журнале Windows фиксировалось событие Kernel-Power (Event ID 41) с параметром BugcheckCode: 0. Это прямо указывает на внезапное отключение или зависание на аппаратном уровне, при котором ОС даже не успела сформировать аварийный дамп.
1.2. Диагностика в журнале Windows (WHEA 18)
Главная улика нашлась в системном журнале аппаратных ошибок:
- Нажмите
Win + R, введитеeventvwr.mscи нажмитеEnter. - Перейдите: Журналы Windows → Система.
- Нажмите Фильтр текущего журнала…, в поле кодов событий укажите
18(или источникWHEA-Logger) и нажмите ОК.
В списке обнаружились регулярные критические события:
Журнал: System
Источник: Microsoft-Windows-WHEA-Logger
Код события: 18
Уровень: Ошибка
Описание: Произошла неустранимая аппаратная ошибка.
Сообщивший компонент: Ядро процессора
Источник ошибки: Machine Check Exception
Тип ошибки: Cache Hierarchy Error (ошибка кэша L2/L3)
MCABank: 5
Перейдя на вкладку Подробности (Details) в режим XML, я нашел ключевой параметр:
<EventData>
<Data Name="ErrorSource">3</Data>
<Data Name="ApicId">15</Data>
<Data Name="MCABank">5</Data>
</EventData>
Параметр ApicId привязан к логическим потокам. В процессорах Ryzen на каждое физическое ядро приходится по 2 потока. Чтобы узнать номер проблемного ядра в BIOS, делим APIC ID на 2 с округлением вниз:
Номер ядра = floor(APIC ID / 2)
Для значения APIC ID: 15:
15 / 2 = 7.5 -> Core 7
При анализе предыдущих зависаний за несколько недель выяснилось, что сбоил всегда один и тот же номер: APIC ID 15 (физическое ядро 7).
Почему сбой происходит именно в простое:
В играх процессор равномерно загружен, и материнская плата подает стабильные 1.30–1.45 В. В простое автоматика Precision Boost сбрасывает вольтаж до ~0.8–0.9 В для экономии энергии. Механизм Windows CPPC назначает удачные ядра приоритетными (Preferred Cores — в данном случае ядра 5 и 7). Когда пользователь открывает браузер, фоновая задача направляется на ядро 7, процессор пытается моментально разогнать его до пиковых 4.85 ГГц, но напряжение кэша L2 на переходном процессе проседает ниже критического порога. Срабатывает аппаратное прерывание MCE, и ПК виснет.
2. Решение, которое помогло
Попытки решить проблему общим повышением напряжения процессора (VDDCR CPU Voltage Offset) лишь привели к лишнему нагреву процессора в играх и сбросу частот буста. Реальное и на 100% рабочее решение заключается в точечной калибровке именно сбоящего ядра через BIOS.
2.1. Точечный Curve Optimizer (Positive 15)
Вместо глобального вольтажа мы аппаратно корректируем кривую V/F конкретного полупроводникового кристалла через микроконтроллер SMU:
- Перезагрузите ПК и зайдите в UEFI BIOS (клавиша
DelилиF2). - Перейдите в расширенный режим (Advanced Mode).
- Откройте раздел: Ai Tweaker → Precision Boost Overdrive (на некоторых платах: Advanced → AMD Overclocking → Precision Boost Overdrive).
- Выставите параметры:
- Precision Boost Overdrive:
Advanced - Curve Optimizer:
Per Core
- Precision Boost Overdrive:
- В открывшемся списке ядер найдите проблемное ядро Core 7:
- Core 7 Curve Optimizer Sign: выберите Positive (добавление напряжения, знак «+»).
- Core 7 Curve Optimizer Magnitude: введите 15.
- Все остальные ядра (Core 0 – Core 6) оставьте со смещением 0 (Auto).
Значение Positive 15 аппаратно добавляет около 45–50 мВ именно на кривую питания Core 7. Это защищает его кэш L2 от просадки при резком переходе из режима ожидания в легкую нагрузку.
2.2. Настройка Typical Current Idle и сброс вольтажей
Чтобы завершить стабилизацию и вернуть процессор в штатный температурный режим:
- Защита от просадки тока материнской платы:
В BIOS перейдите: Advanced → AMD CBS → CPU Common Options.
Параметр Power Supply Idle Control переключите сAuto/Low Current IdleнаTypical Current Idle. Это запрещает плате чрезмерно обесточивать фазы VRM при минимальном токе в простое. - Сброс глобальных напряжений:
В разделеAi Tweakerпараметры VDDCR CPU Voltage и VDDCR SOC Voltage верните в режим Auto (уберите ручные оффсеты и фиксированные вольтажи). Теперь процессор не греется от лишнего общего вольтажа, а компенсация подается строго на проблемное ядро.
При сохранении настроек по F10 диалоговое окно подтверждения (Save & reset) покажет список применённых параметров:
Curve Optimizer [Auto]->[Per Core]
Core 7 Curve Optimizer Magnitude [0]->[15]
VDDCR CPU Voltage [Offset mode]->[Auto]
VDDCR SOC Voltage [Manual]->[Auto]
Результат настройки
3. Другие возможные причины сбоя
Если точечной настройки ядра оказалось недостаточно, либо характер ошибок немного отличается, обратите внимание на следующие сопутствующие факторы (краткая выжимка):
3.1. Нестабильность шины памяти (SOC Voltage)
При включенном XMP/DOCP на частотах 3600 МГц и выше шина Infinity Fabric работает на частоте 1800 МГц (FCLK).
- На некоторых материнских платах автоматический вольтаж контроллера памяти в простое проседает ниже 1.00 В.
- Это вызывает сопутствующую ошибку
WHEA 18с типом Bus/Interconnect Error. - Решение: зафиксировать в BIOS параметр
VDDCR SOC Voltageна безопасном стабильном значении 1.10V (Manual).
3.2. C-States, гибернация и баг MPO
Несколько дополнительных настроек, которые помогают исключить софтовые и платформенные конфликты:
- Глубокие энергосостояния C-States: если просадки напряжения продолжаются, в
AMD CBS / CPU Common Optionsможно временно отключить параметрGlobal C-state Control→Disabled. - Быстрый запуск Windows: функция Fast Startup использует гибернацию и часто приводит к некорректной инициализации драйверов после сна. Отключается в командной строке от администратора:
powercfg /h off. - Баг Multi-Plane Overlay (MPO): на видеокартах NVIDIA серии RTX 40xx механизм MPO в Windows может вызывать застывание картинки при аппаратном ускорении браузеров Chromium. Лечится отключением MPO через реестр Windows (
OverlayTestMode = 5) либо отключением аппаратного ускорения в браузере.
Шпаргалка соответствия APIC ID и ядер
Таблица для быстрого определения номера физического ядра в BIOS по значению APIC ID из системного журнала Windows:
| Физическое ядро в BIOS | Логические потоки в ОС | APIC ID в журнале событий Windows |
|---|---|---|
| Core 0 | CPU 0 / CPU 1 | 0, 1 |
| Core 1 | CPU 2 / CPU 3 | 2, 3 |
| Core 2 | CPU 4 / CPU 5 | 4, 5 |
| Core 3 | CPU 6 / CPU 7 | 6, 7 |
| Core 4 | CPU 8 / CPU 9 | 8, 9 |
| Core 5 | CPU 10 / CPU 11 | 10, 11 |
| Core 6 | CPU 12 / CPU 13 | 12, 13 |
| Core 7 | CPU 14 / CPU 15 | 14, 15 |
Для 6-ядерных CPU (Ryzen 5 5600X) нумерация идет до Core 5 (APIC ID 10–11). Для 12- и 16-ядерных моделей формула деления на 2 с округлением вниз работает абсолютно так же.
