Как добавить микрокод процессора в биос

Обновлено: 02.07.2024

В этом документе описываются подробности процесса обновления микрокода (MCU) на современных процессорах Intel. Мы не описываем никаких будущих усовершенствований процесса обновления микрокода — только информацию о последних процессорах. Администраторы Linux* могут найти дополнительную информацию об обновлении микрокода из ОС в статье Загрузка микрокода из ОС.

Точки обновления микрокода

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

Обновление микрокода FIT

Таблица интерфейса встроенного ПО (FIT) — это структура данных, расположенная во флэш-памяти SPI BIOS платформы, которая может содержать указатели на одно или несколько обновлений микрокода. Загрузка обновления микрокода из FIT является предпочтительным способом загрузки обновления микрокода на платформах Intel, поскольку это помогает обеспечить загрузку всех компонентов обновления 1 на самом раннем этапе процесса загрузки. Перед выполнением первой инструкции микропрограммы BIOS в векторе сброса архитектуры Intel® (IA) ЦП обрабатывает FIT, чтобы найти обновление микрокода, подходящее для этого конкретного ЦП. Если подходящее обновление найдено, ЦП загружает обновление до того, как будет получена первая инструкция микропрограммы BIOS. После загрузки обновления из FIT загрузочный процессор (BSP) начинает извлекать и выполнять микропрограмму BIOS из вектора сброса IA, а процессоры приложений (AP) переходят в состояние ожидания SIPI.

На некоторых процессорах обновление микрокода загружается из FIT только на ядро ​​BSP, тогда как на других процессорах оно может загружаться на все ядра.

  • Для продуктов на базе микроархитектур Sandy Bridge и Ivy Bridge обновление микрокода загружается из FIT только на ядро ​​BSP, если включена технология Intel® Trusted Execution (Intel® TXT).
  • Для серверных продуктов на базе микроархитектуры Skylake (включая микроархитектуры Cascade Lake и Cooper Lake, кроме Xeon E3) обновление микрокода загружается из FIT только на ядро ​​BSP.
  • Для продуктов на основе микроархитектур Haswell и Broadwell, клиентских продуктов на основе микроархитектуры Skylake (включая Xeon E3), продуктов семейства Atom, начиная с микроархитектуры Goldmont, и всех более поздних микроархитектур обновление микрокода загружается из FIT на все ядра.

Обновление микрокода загружается из FIT после горячего или холодного аппаратного сброса. Это не происходит в ответ на событие INIT.

По возможности корпорация Intel рекомендует загружать новые обновления микрокода из FIT; например, путем установки обновления BIOS.

Раннее обновление микрокода BIOS

Раннее обновление микрокода BIOS — это когда обновление микрокода загружается BIOS до инициализации памяти.

Раннее обновление микрокода BIOS может быть выполнено путем ранней инициализации BIOS на BSP. BIOS может пропустить это обновление микрокода, если обновление уже было загружено через FIT. BIOS может определить, было ли загружено обновление из FIT, выполнив инструкцию CPUID и прочитав IA32_BIOS_SIGN_ID (MSR 8BH). Если IA32_BIOS_SIGN_ID[63:32] не равен нулю, обновление уже было загружено из FIT, и ранняя точка загрузки обновления микрокода BIOS может быть пропущена.

Корпорация Intel рекомендует загружать обновления на самом раннем этапе последовательности инициализации BIOS, либо через FIT (предпочтительно), либо через раннюю загрузку обновления микрокода BIOS до выполнения кода ссылки на память BIOS и до того, как DRAM станет доступной. Это необходимо для устранения проблем, которые могут повлиять на более поздний код BIOS (например, справочный код памяти BIOS).

Когда обновление микрокода загружается из FIT, оно может быть загружено на все процессоры или только на BSP. Когда обновление загружается во время ранней загрузки BIOS, оно также может быть загружено только в ядро ​​BSP, поскольку ядра процессора приложений (AP) могут быть не активны в этот момент последовательности загрузки. Поэтому как можно скорее после получения межпроцессорного прерывания запуска (SIPI) программное обеспечение BIOS на ядрах AP должно загрузить обновление, если оно еще не было загружено из FIT.

Позднее обновление микрокода BIOS

На более новых процессорах некоторые архитектурные функции, такие как Intel® Software Guard Extensions (Intel® SGX), требуют дополнительного позднего обновления микрокода BIOS. Чтобы включить эти архитектурные функции, необходимо выполнить позднее обновление микрокода BIOS на всех логических процессорах, даже если такое же обновление микрокода уже было загружено из FIT или во время раннего обновления BIOS. В этом случае поздний BIOS должен перезагрузить то же обновление, которое было загружено ранее. Невыполнение позднего обновления микрокода BIOS на всех логических процессорах может помешать использованию этих архитектурных функций.

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

  • DRAM и карта памяти настроены
  • Вызов первого прерывания управления системой (SMI)
  • Перемещение обработчика режима управления системой (SMM)
  • Регистры диапазона зарезервированной памяти процессора (PRMRR) настроены

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

Раннее обновление микрокода ОС

Операционная система (ОС) должна проверить наличие более позднего обновления микрокода (более поздней версии обновления), чем версия, применяемая BIOS. Если это так, ОС должна загрузить это обновление микрокода вскоре после того, как BIOS передаст управление ОС. Эта точка загрузки обновления микрокода называется ранним обновлением микрокода ОС. Это можно сделать с помощью уровня программного обеспечения ранней загрузки, такого как драйвер Unified Extensible Firmware Interface (UEFI), загрузчик, операционная система или любой другой уровень программного обеспечения, предоставляемый операционной системой (например, сценарии раннего запуска). Раннее обновление микрокода ОС должно выполняться на каждом ядре как можно раньше в последовательности загрузки ОС, прежде чем какие-либо флаги функций CPUID или другие значения перечисления будут кэшированы программным обеспечением ОС. Его также необходимо загрузить перед запуском любых приложений пользовательского пространства или виртуальных машин. Это необходимо для того, чтобы обновление было загружено до того, как уязвимый микрокод будет использован, что позволит как можно раньше принять соответствующие меры по устранению потенциальных уязвимостей.

Если BIOS не загружает самое последнее обновление микрокода, корпорация Intel рекомендует загрузить это обновление во время раннего обновления микрокода ОС.

Обновление микрокода во время выполнения

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

Обновление микрокода во время выполнения следует использовать, когда сброс системы будет проблематичным (например, когда сброс системы повлияет на требования к времени безотказной работы сервера). По возможности предпочтительнее загружать обновления микрокода через BIOS или ранние версии ОС.

Рекомендации по обновлению микрокода

Ожидаемое поведение при загрузке обновлений микрокода

Данное обновление микрокода может содержать несколько отдельных компонентов. Например, один компонент используется для добавления MSR IA32_SPEC_CTRL и его основных возможностей, а другой компонент используется для добавления функции MD_CLEAR к инструкции VERW. Дополнительные компоненты также могут использоваться для устранения различных опечаток. Обновления микрокода, как правило, являются кумулятивными. Это означает, что каждое обновление представляет собой надмножество всех предыдущих обновлений для данной сигнатуры процессора (семейства/модели/степпинга ЦП) и идентификатора платформы.

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

Загрузка обновления микрокода, как правило, не удаляет какие-либо существующие возможности, которые могут привести к некорректной работе уже запущенного программного обеспечения. Это относится к базовым функциям ЦП, а также к любым возможностям, добавленным с помощью предыдущих обновлений микрокода. Об исключениях обычно сообщается.

Обновление микрокода обычно очищается горячим сбросом. Однако любое состояние, которое сохраняется после теплого сброса (например, последние записи ветвей или банки машинных проверок) и было изменено обновлением, останется измененным после сброса.

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

Некоторые компоненты обновления микрокода могут быть эффективными только в том случае, если обновление загружено в или до определенной точки загрузки. В частности, некоторые компоненты могут не вступить в силу, если обновление загружается после позднего обновления микрокода BIOS или за пределами FIT. Любые такие требования будут документированы. Если какой-либо компонент неэффективен, это не мешает другим компонентам в том же обновлении быть эффективными.

Некоторые компоненты обновления микрокода могут повлиять на производительность системы. Поскольку точка загрузки обновления микрокода может определять эффективность определенных компонентов, влияние этих компонентов на производительность также может зависеть от точки загрузки. Поэтому одно и то же обновление микрокода может по-разному влиять на производительность в зависимости от того, когда оно загружено.

При загрузке обновления на один логический процессор такое же обновление также загружается на все остальные логические процессоры того же ядра (все гиперпотоки родственного уровня). Для некоторых процессоров загрузка обновления на один логический процессор может также привести к загрузке того же обновления на логические процессоры на других физических ядрах. Это может отличаться в зависимости от разных конфигураций.

Если программа пытается загрузить обновление с той же версией обновления, что и загруженная в данный момент, ЦП может перезагрузить обновление, а может и нет. Программное обеспечение может проверить версию загруженного в данный момент обновления, выполнив инструкцию CPUID и прочитав IA32_BIOS_SIGN_ID (MSR 8BH), чтобы избежать повторной загрузки того же обновления без необходимости.

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

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

Загрузка обновления микрокода не изменит настройки ранее настроенных программно-управляемых состояний (например, значения MSR), даже если эти состояния были созданы ранее загруженным обновлением микрокода.

Процедура обновления микрокода во время выполнения

Чтобы загрузить обновление во время выполнения, программное обеспечение должно синхронизировать все логические процессоры в системе (выполнить рандеву), чтобы загрузить обновление скоординированным образом.

  • Цикл вращения не должен содержать MWAIT или HLT . PAUSE или LFENCE можно использовать для ограничения цикла.
  • Программное обеспечение может загружать микрокод на каждое ядро ​​параллельно.
  • Чтобы повысить производительность, программное обеспечение должно проверять, что микрокод новее, чем тот, который уже загружен, непосредственно перед выполнением записи. Это позволяет избежать избыточных обновлений микрокода, особенно на процессорах, где обновление микрокода также обновляет микрокод на других ядрах.
  • Вы можете увидеть пример процедуры обновления микрокода ниже:

Примечание. Выполнение инструкции CPUID заполнит IA32_BIOS_SIGN_ID (MSR 8BH) текущей версией обновления независимо от конечного значения, указанного в EAX.

Отладка

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

  • Проверьте версию микрокода в оболочке EFI или на экране BIOS.
  • Проверьте, какая версия микрокода включена в образ initramfs.
  • Версия обновления микрокода, которую вы использовали для обновления во время выполнения.
  • Изображение микрокода названо в честь семейства/модели/степпинга. Вы можете найти их в /proc/cpuinfo. Например:
    • Семейство 06, модель 85, шаг 4 (значения в десятичном формате).
    • Соответствующий файл микрокода 06-55-04 находится в /lib/firmware/intel-ucode/ 2 (значения в шестнадцатеричном формате).

    Обратите внимание, что обновить микрокод можно только до более поздней версии. Текущая загруженная версия микрокода отображается в /proc/cpuinfo.

    Примечание. В этом примере 02000065 — это версия микрокода, 09052019 — это дата создания IPU, а 00050654 — семейство/модель/степпинг в формате, возвращаемом инструкцией CPUID.

    Необходимые файлы/программное обеспечение:

    Настройка

    Microcode Extractor (MC Extractor) используется для проверки и извлечения микрокодов ЦП, содержащихся в файле BIOS. Чтобы использовать Microcode Extractor, загрузите исполняемый файл из раздела выпуска под этим заголовком. На момент написания исполняемый файл имеет версию 1.70.0, а связанная база данных — версию 197. База данных обновляется чаще, чем исполняемый файл.Последняя версия базы данных не требуется, так как интересующие процессоры довольно старые.


    Загрузите и извлеките файл rar, исполняемый файл и файл базы данных находятся там.


    Загрузите последнюю версию BIOS, запустите исполняемый файл, чтобы извлечь его содержимое. Файл BIOS для этой конкретной материнской платы называется g41mc2.fb. Нужен только этот файл, остальные 2 файла (autoexec.bat и FLASHSPI.EXE) можно смело удалять.

    Затем загрузите файл CBROM 7z, откройте его и извлеките CBROM 155 и 198. Для этой конкретной материнской платы необходимы эти 2 версии.


    Все необходимые файлы в одной папке для удобства

    Пошаговое руководство

    Перед удалением микрокод можно проверить с помощью MC Extractor. Перетащите файл BIOS напрямую в исполняемый файл MC Extractor для просмотра.


    Нажмите Enter, мы хотели только просмотреть микрокоды.


    Это список микрокодов, содержащихся в файле BIOS. Обратите внимание на первое смещение. После этого нажмите Enter, чтобы закрыть программу.


    Запустите командную строку, просто набрав

    в меню "Пуск".


    Перейдите в каталог, в котором были сохранены эти файлы. В моем случае это D:\BIOS. Тип

    сменить каталог на диск D:, а затем

    чтобы перейти в папку с именем BIOS на диске D:


    Использование CBROM можно показать с помощью аргумента /?


    Файл BIOS также можно проверить с помощью CBROM. Обе версии 155 и 198 отлично подходят для проверки. Для проверки с версией 198

    Под элементом 19 находится элемент с номером (SP) и именем NCPUCODE. Это файл, содержащий микрокоды, перечисленные ниже.


    По какой-то причине CBROM155 не может очистить существующий микрокод, поэтому вместо него используется CBROM198.


    Значения адреса, обведенного красным, должны совпадать с первым смещением, указанным в MC Extractor.

    Запустите CBROM с помощью команды /d еще раз, чтобы проверить содержимое. NCPUCODE больше не существует, и информация о микрокоде больше не имеет длинного списка.


    MC Extractor также показывает, что остается только один микрокод, не содержащийся в NCPUCODE.


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

    Откройте файл BIOS с помощью HxD, нажмите Ctrl+E, откроется окно выбора блока. Для этого конкретного BIOS начальное смещение — C67DF, а конечное — E5FDF. Оба значения доступны в MC Extractor.

    Начальное смещение — это значение первого смещения, конечное смещение — это смещение предпоследней записи (запись 34) плюс размер записи (E4FDF + 1000). Последняя запись не содержится в файле NCPUCODE, который был удален с помощью CBROM, поэтому это не конечное смещение.



    Будут выделены шестнадцатеричные значения блока, убедитесь, что весь выделенный раздел пуст. В зависимости от BIOS пустое значение может быть 00 или FF. Для данного конкретного биоса это FF. Поэтому просто убедитесь, что весь блок состоит только из FF.


    ВАЖНЫЙ ШАГ!

    Измените файл NCPUCODE.BIN так, чтобы он был доступен только для чтения, чтобы CBROM не перезаписывал содержащиеся в нем микрокоды. Щелкните файл правой кнопкой мыши, выберите свойства. На вкладке «Общие» установите флажок «Только для чтения», затем нажмите «Применить» и «ОК».



    Полное объяснение того, почему файл должен быть доступен только для чтения, можно найти здесь. объяснил сам Phoenix48.

    TL;DR, команда /nc_cpucode попытается
    (1) заменить/объединить микрокоды из BIOS в существующий файл,
    (2) заменить NCPUCODE в BIOS модифицированным файлом.
    Сделав файл только для чтения, CBROM не может выполнять (1), но все же может выполнять (2), заменяя тот, что в BIOS, на предполагаемый.

    Убедившись, что файл доступен только для чтения, запустите командную строку и перейдите в папку. Используйте следующую команду, чтобы добавить микрокод в файл BIOS.


    Ошибки быть не должно, потому что микрокодов меньше (72 КБ) по сравнению с оригинальными микрокодами (126 КБ).

    Используйте CBROM и MC Extractor, чтобы проверить правильность вставки микрокодов. Для CBROM используйте команду /d. Кроме того, перетащите готовый файл BIOS в исполняемый файл MC Extractor.



    Измененный файл должен быть готов к прошивке материнской платы.

    НЕ прошивайте, если контрольная сумма не заканчивается на 00. Следующее изображение не является фактическим снимком экрана Gigabyte Q-Flash Utility. Это просто пример скриншота, показывающий контрольную сумму. В этом примере контрольная сумма AC03. В нашем случае это должно быть 00.

    На момент написания этой статьи материнская плата находилась в моем родном городе, и я не могу ее протестировать. Это руководство будет обновлено, когда у меня будет доступ к этому компьютеру.



    У участника форума Win-raid есть хорошо поддерживаемый репозиторий микрокодов от различных процессоров. (ссылка на все другие микрокоды Intel здесь) Для этого конкретного руководства это ссылка на необходимый микрокод. Судя по имени файла, последняя версия этого микрокода — C1 в 2011 году, тогда как предоставленная — BA в 2010 году. Поместите загруженный последний файл в папку «Извлеченные» MC Extractor и удалите старый микрокод (имя файла: cpu006FB_plat01_ver000000BA_2010). -10-03_PRD_08707B60.bin).

    После этого все 16 микрокодов необходимо объединить в один файл NCPUCODE.BIN. Из руководства Phoenix48 это можно сделать с помощью команд CMD copy /b, и все файлы будут объединены в последний файл. Есть 16 микрокодов и у каждого из них очень длинное имя. Вводить каждый из них вручную будет очень утомительно. Однако это можно упростить с помощью Microsoft Excel.

    Запустите Microsoft Excel, перейдите на вкладку «Данные», нажмите «Получить данные» слева, выберите «Из файла», «Из папки».


    Перейдите к папке MC Extractor, перейдите в папку «Extracted», выберите папку «Intel», нажмите «ОК».


    Будут перечислены все микрокоды в папке, нажмите «Загрузить».


    Все микрокоды и их детали будут перечислены на листе.


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

    Не вводите кавычки, если не указано иное. Начните вводить формулу со знака «=». Введите «concat», как только текст будет выделен как таковой, нажмите клавишу Tab, чтобы автоматически завершить формулу.



    Продолжить с функцией «Транспонировать»



    Выберите весь столбец с именами файлов микрокода.


    Закройте скобку для функции транспонирования


    сразу за закрытой скобкой функции транспонирования и закройте скобку функции конкатенации, чтобы функция выглядела так. ПОКА НЕ НАЖИМАЙТЕ ВВОД.


    Нажмите функциональную клавишу 9, также известную как клавиша F9. Ячейка будет заменена значениями этой формулы.


    Поскольку значения выделены, просто скопируйте их. Я лично предпочитаю вставлять его в блокнот, чтобы убедиться, что текст скопирован. Убедитесь, что выбран вариант переноса слов для лучшей читабельности.


    Добавить команду перед именами файлов

    удалите знак + из имени последнего микрокода и добавьте имя файла NCPUCODE.BIN. Между последним именем микрокода и именем выходного файла есть пробел.


    Запустите CMD, перейдите в папку, содержащую все файлы микрокода. Самый простой способ сделать это — просто скопировать каталог, один раз щелкнув адресную строку окна проводника и нажав Ctrl + C.


    Затем вернитесь к cmd, перейдите к d:, затем введите cd, щелкните правой кнопкой мыши и нажмите клавишу ввода.


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

    Говоря только о ЦП, распространяется ли микрокод на исправления из обновления BIOS? От службы поддержки Dell:

    Возможно глупый вопрос, но я прочитал в другом подразделе, и у меня нет настроения обновлять BIOS.

    Спасибо!
    PS: Забыл тег [Вопрос] =/

    РЕДАКТИРОВАТЬ: добавить страницу поддержки Dell.

    Решено


    Безусловно, биос — это биос, а микрокод — для процессора, но я не уверен

    Разумно, но чтение страницы обновления BIOS моего ноутбука:

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

    Именно поэтому иногда поддержка ЦП удаляется в обновлениях BIOS — для микрокода не хватает места, и некоторые из них необходимо удалить, чтобы добавить поддержку новых ЦП.

    Вы также можете заставить ОС загружать новый микрокод в ЦП во время или после загрузки.

    Обновления BIOS и микрокод, как правило, представляют собой разные вещи: обновления BIOS записываются во флэш-память материнской платы и влияют на процесс загрузки, материнскую плату и периферийные устройства, тогда как обновления микрокода применяются операционной системой "на лету" и в большей степени связаны с процессором. сам. Например, когда в Arch я устанавливаю пакет amd-ucode, я получаю не обновление BIOS, а исполняемый файл pre-initramfs. Таким образом, ядро ​​загружает и обеспечивает цикл «сознания», микрокод загружает и сообщает процессору несколько лучших способов запуска ядра, а затем initrd загружает и предоставляет псевдо-файловую систему для использования ядром, пока оно не перемонтирует загрузку. ехать в /.

    Спасибо за ответ!

    Разницу понимаю, не эксперт, но..
    Как я уже писал: "Говорит только процессор", как вы сказали:

    <блочная цитата>

    . в то время как обновления микрокода применяются ОС «на лету» и больше касаются самого ЦП. Например, когда в Arch я устанавливаю пакет amd-ucode, я получаю не обновление BIOS, а исполняемый файл pre-initramfs.

    Мой вопрос касается ЦП, достаточно ли обновленного микрокода (при условии, что и обновление BIOS, и микрокод закрывают одни и те же уязвимости)?

    BIOS – это программное обеспечение, которое запускает компьютер и предоставляет основные службы до тех пор, пока операционная система полностью не возьмет на себя управление. Микрокод — это программа более низкого уровня для ЦП, которая используется для создания инструкций и других операций ЦП из нескольких более простых шагов.

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

    Как правило, обновленный микрокод для различных ЦП, поддерживаемых материнской платой, является частью BIOS. BIOS также содержит код для обновления микрокода в ЦП с использованием правильного микрокода из BIOS.Это лишь одна из многих операций, выполняемых BIOS при запуске.

    Если в BIOS нет последней версии микрокода, операционные системы также могут обновлять микрокод при запуске, если установлен соответствующий пакет микрокода (например, intel-microcode в Ubuntu).

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

    intel-microcode

    Я не рекомендую этот метод, он просто показывает, как теоретически можно обновить микрокод самым простым способом.

    Требования

    Все, что вам нужно, это драйвер обновления микрокода ЦП VMware для Windows и файлы с микрокодами.

      это страница с драйвером VMware (такая же, как на странице с инструкциями выше) последние микрокоды Intel последние микрокоды AMD не последние микрокоды (поскольку у меня процессор Intel, мне нужны микрокоды AMD только ради «install.bat» от Пакет драйверов VMware) – Read & Write Everything (бесплатно/портативный) (бесплатный/портативный) от plutomanac
    • 5 минут времени, чашка кофе и немного удачи

    Не беспокойтесь о слове «Linux» — к счастью, bin-файлы с микрокодами подходят для Linux и Windows. Б

    Оба загруженных пакета с микрокодами ЦП от Intel и AMD являются просто архивными файлами, поддерживаемыми любыми современными приложениями для архивирования. Вам нужно будет вставить файлы «microcode.dat» (Intel), «microcode_amd.bin» и «microcode_amd_fam15h.bin» (AMD) в папку, в которую вы распаковали пакет драйверов VMware.

    Настройка

    Установщик ожидает наличия файлов микрокода, даже если процессор, на котором он работает, в них не нуждается, т. е. файлы Intel и AMD. Запустите install.bat из папки uCode, и файлы микрокода и драйвер будут скопированы в папку Windows\System32\Drivers, драйвер будет выполнен, а микрокод обновлен, если файлы микрокода содержат более новую версию.

    2lizcww

    В случае успеха вы должны увидеть следующий экран.

    В установленном драйвере должен быть обновлен микрокод, и теперь он будет автоматически обновляться при (максимум 2-х) перезагрузках. «uninstall.bat» можно запустить, чтобы удалить его, если он не нужен. Intel может обновлять файл microcode.dat только один раз в 3-6 месяцев, так что же делать, если новое критическое исправление доступно, но не включено в microcode.dat. Ну, мы можем добавить для себя, если он в том же формате ascii, что может означать необходимость конвертировать двоичный патч в патч ascii.

    Имейте в виду, однако, что он считывает версию микрокода только один раз во время запуска, поэтому, например, если он у вас запущен, а затем запустите утилиту VMware, вы не увидите его обновление в HWiNFO, пока вы не закроете HWiNFO и не перезапустите его. Пример, показывающий версию микрокода 0x1A. HWiNFO также может отображать микрокод. 1A (0x1A) Версия микрокода также может отображаться через HWiNFO

    Пример вывода

    Имя журнала: Система
    Источник: cpumcupdate
    Дата: 05.01.2018 16:23:41
    Код события: 42
    Категория задачи: Нет
    Уровень: Информация
    Ключевые слова: Classic
    Пользователь: N/A
    Компьютер: DESKTOP-B4BTHBB
    Описание:
    Никаких процессоров не требуется обновление. Возможно, вашей системе не нужен этот драйвер.
    Xml событий:
    http://schemas.microsoft.com/win/2004/08/events/event">
    .

    Проверьте журнал системных событий, чтобы узнать, был ли загруженный микрокод применен после его установки. Если все было обновлено, вы можете удалить драйвер VMware.

    Слова мудрости

    Если вам нужно что-то спросить после прочтения руководства, просто не делайте этого, это требует просто некоторого опыта и знаний, если вы действительно хотите его прошить, в противном случае попросите вашего OEM-производителя предоставить вам обновление BIOS. Извините, но не рискуйте.

    • Я не несу ответственности за любые повреждения BIOS/Mobo.
    • Обновление микрокода может быть рискованным, и вы должны (как уже упоминалось) делать это только в случае крайней необходимости.
    • Загрузка микрокода программным обеспечением при загрузке должна занимать практически и почти буквально совсем не время, некоторые программы делают это, а это означает, что вам нужно повторно применять процедуру каждый раз, когда вы перезагружаете/выключаете компьютер.
    • Микрокод хранится в энергонезависимой памяти и в любом случае должен загружаться при каждой загрузке. И я могу заверить вас, что Linux загружается значительно быстрее, чем Windows, при этом загружая микрокод процессора с помощью программного механизма. Запись нескольких КБ на ЦП не займет много времени.
    • Проверка HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0 может помочь определить версию и обновить версию, поскольку некоторые инструменты читают ее по-разному, вы можете проверить ее вручную (на всякий случай).

    Открытые вопросы. Почему это обновление микрокода не доставляется через Центр обновления Windows, как это делалось в прошлом?Это возможно.

    Является ли решение новым обновлением микрокода через драйвер? Я сам на него отвечаю, НЕТ! Это обходной путь, пока реальная проблема не будет решена Microsoft. Основная проблема заключается в том, что порядок загрузки может быть перепутан, что означает, что при запуске Windows «старый» код может быть уже загружен, поэтому нет гарантии, что вы сначала загрузите «обновление», что затем делает бессмысленным использовать. Linux справляется с этим немного лучше, так как существует строгий порядок.

    11-1080.3220264690

    Доказательства того, что решение по обновлению драйверов в большинстве случаев не работает.

    Читайте также: