microcode updation в биосе что такое

Исправление ошибок в CPU

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

Все процессоры Intel с архитектурой P6, а к ним относятся семейства Pentium Pro, Pentium II & III, Celeron, Pentium II & III Xeon и Pentium II Overdrive, обладают таким замечательным свойством, как «reprogrammable microcode». В этих процессорах имеется возможность изменения микрокода, т.е. имеется возможность исправления ошибок в программно-схемотехнической реализации конкретных процессоров семейства P6 и некоторых встроенных ошибок практически на уровне «железа». Ошибки могут появляться на этапе проектирования процессоров, а исправляются они именно с помощью изменения микрокода. Каждое из подсемейств (PII, Celeron, PPro, Xeon) имеет спецификацию. При выпуске каждого нового степпинга процессора (внутри него все приборы являются идентичными в рамках технологических отклонений), Intel публикует для него обновление спецификации, где указываются обнаруженные и исправленные errata (отклонения от спецификации).

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

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

Сами обновления микрокода — это 2-хкилобайтные блоки данных, прошитые в системном BIOS. Такой блок есть для каждого степпинга процессора из семейства P6. Intel поставляет свежие версии микрокода ведущим производителям BIOS. База данных с обновлениями пополняется и изменяется при появлении новых моделей и версий микрокода. Intel рекомендует выполнять обновление версий микрокода с помощью своей утилиты при установке нового процессора на материнскую плату или перепрограммирования флэш-памяти, чтобы быть уверенным, что в BIOS содержится самая свежая версия микрокода. Эта программа определяет используемый процессор (с помощью CPUID) и ищет соответствующее ему обновление в своей базе. Если найдена свежая версия микрокода, утилита локально перепрошивает код в BIOS, не затрагивая остальные участки. Т.о. отпадает необходимость перепрограммирования всего флэша для поддержки нового ЦПУ, как это было ранее. Обновление базы данных Intel периодически выкладывает на своем сайте.

Последняяи из доступных нам баз имеет ревизию 5.01 и содержит следующие версии микрокода:

ProcessorProcessor SteppingMicrocode Update Rev
Pentium III Processor0x6720x04
Pentium III Processor0x6730x02
Pentium III Xeon Processor0x6720x21
Pentium III Xeon Processor0x6730x22
Pentium II Processor0x6330x34
Pentium II Processor0x6340x35
Pentium II Processor0x6500x32
Pentium II Processor0x6510x30
Pentium II Processor0x6520x14
Pentium II Processor0x6530x01
Pentium II Xeon Processor0x6520x29
Pentium II Xeon Processor0x6530x04
Intel Celeron Processor0x6500x32
Intel Celeron Processor0x6510x30
Intel Celeron Processor0x6600x09
Intel Celeron Processor0x6650x02
Pentium II OverDrive Processorx16320x02
Pentium Pro Processor0x6120xC6
Pentium Pro Processor0x6160xC6
Pentium Pro Processor0x6170xC6
Pentium Pro Processor0x6190xD2

Загрузить последнюю версию утилиты, исправляющую микрокод можно прямо отсюда: pupdt501.exe (115 Kb)

Старую базу (PEP15.PDB) можно загрузить отсюда: pupdt461.exe (111 Кб)

После окончания работы утилиты, необходимо выключить питание компьютера. Загрузка обновления в процессор происходит во время выполнения POST при каждом запуске системы. Естественно для работы утилиты необходимо разрешить перезапись флэш-памяти перемычкой или в BIOS Setup. Программа должна запускаться из-под «голого» ДОСа.

Однако для такого идеального варианта необходима поддержка BIOS’ом специального API обновления микрокода процессора, позволяющего утилите обновления с помощью BIOS загрузить новый микрокод. Если используемая версия системного BIOS не поддерживает API, пользователю ничего не остается, кроме как добыть новую версию у производителя материнской платы. Однако бывает, что найти её не так уж просто, если не невозможно. Зачастую, после прекращения производства какой-либо модели системной платы, производитель перестает выпускать и обновления биосов для нее, но при этом новые процессоры могут появиться в продаже, а у пользователя может возникнуть желание установить в свою систему новый CPU.

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

Возникает вопрос, а чем чревато самостоятельное обновление прошивки? Ну, во-первых, сначала нужно удостовериться, что вам это действительно необходимо. Если версия прошивки старая, а новых версий BIOS производитель системной платы не предлагает, но, главное, вы столкнулись с нестабильной работой какого-то приложения, и рассчитываете, что изменение микрокода процессора вам поможет. Только в этом случае имеет смысл самостоятельно изменить прошивку. А насчет того, чем это чревато — по-моему, ничем опасным. Во-первых, не стоит забывать, что загрузка обновления микрокода в процессор применяется во всех BIOS на платах для P6 и уже давно (многие видели в Setup загадочную опцию Microcode Update: Enable/Disable). И ничего! Все работает.

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

Мой личный опыт работы с этой программой пока был ограничен 7 случаями, из которых удалось обновить микрокод только на одной системной плате (Abit LX6 c PII 233). В остальных случаях BIOS уже содержал обновленные версии микрокода. Также не удалось встретить BIOS, не поддерживающий обновление микрокода.

Что касается аналогичной возможности обновления микрокода в процессорах других производителей (AMD, Cyrix), то никакой информации по этому вопросу мне найти не удалось. Но я почти уверен, что в этих CPU имеется аналогичная возможность изменения микрокода.

Источник

Обновление CPU microcode в AMI BIOS, или пример работы с MMTool

Решил вспомнить былое — модификацию БИОС.
В далёком студенческом прошлом это были подмены модуля raid на линейке мат. плат Epox под сокет A утилиткой cbrom, и кое какие манипуляции утилиткой modbin с пунктами меню.

Ныне появилось желание (плавно перетекающее в необходимость апгрейда) добавить поддержку новых CPU AMD поколения K10.5 (что под сокет AМ2+\AM3) для материнской платы BIOSTAR TA770 A2+ (с сокетом AM2+ и на Award BIOS).
Процесс поиска подходящего БИОСа с необмодимым CPU_list в линейке мат. плат Biostar под сокет AM2+ не дал качественных результатов. Т.к. лишь несколько мат. плат под сокете AM2+ (и лишь на чипсетах NForce) оказались снабжены Award БИОСом. А большинство таких мат.плат Biostar снабжены AMI БИОСом. Как раз последняя условность и позволила мне найти пример для «поиграться» с AMI БИОСами данных мат. плат и поделиться скромным опытом в данной статье прежде, чем разбираться с Award БИОСами (о чем я расскажу уже в отдельной статье).

Представляю донора BioStar A740G M2L+ (AMD 740G / SB710) и реципиента BioStar A740G M2+ (AMD 740G / SB700). Мат.плата, что с литерой «L», более свежая и поддерживает процессоры AM3 официально, в отличие от другой, что ограничена лишь поддержкой процессоров AM2+. Напрашиваются на сравнительный анализ БИОСы их.
С оф. сайта загружаем лишь последнее обновление прошивки БИОСа для каждой их этих мат.плат:
— для A740G M2+ последняя бэта A74GM916.BSS за сентябрь 2009г.
— для A740G M2L+ — файл 74GCU511.BSS — за май 2010г.

Далее вооружаемся утилитой MMTOOL(я использовал версии 3.22, 3.23 и 3.26 — различий в работе не обнаружил). Для работы с MMTOOL расширения файлов прошивок БИОС необходимо переименовывать на *.rom.

Теперь запускаем две MMTOOL и в них подгружаем файлы прошивок от двух мат. плат. Обращаем внимание на разные размеры в столбце «Source size» ( да и в «Size in Rom» тоже разумеется) модуля 11 «P6 Micro Code» в каждой из прошивок.

Переходим в раздел CPU PATCH для детального сравнения:

— файл донора 74GCU511.rom — cpu_list содержит 14 строк с поддержкой CPURev.ID + 1 пустая (рис.1).

— бэта-версия реципиента A74GM916.rom — cpu_list содержит 13 строк с поддержкой CPURev.ID + 1 пустая (рис.2).

После анализа списков этих двух БИОСов становится очевидно, что для более новой мат.платы разработчики использовали более свежие патчи для процессоров AMD, где подправлен микрокод двух строк с CPURev.ID 1043 и 1062 (датируются 2009/07/31) и одна строка с CPURev.ID 10A0 добавлена (датируется 2010/02/17).

Способ №1 — модификация отличительных строк.

Производится извлечение этих трёх отличительных строк из донора 74GCU511.rom — действия «Extract a Patch Data» + «Apply» + 1 последнюю пустую строку и сохранение их в отдельные файлы.

Предварительно в в разделе CPU PATCH файла реципиента A74GM916.rom удаляются две строк с номерами CPURev.ID 1043 и 1062 (чей микрокод более старый чем мы будем далее вставлять) и последняя пустая строка — действия «Delete a Patch Data» + «Apply» (рис.3).

После этого поочерёдно вставляется более новый микрокод из четырёх уже ранее полученных файликов-патчей для CPURev.ID 1043, 1062, 10A0 и пустая строка (рис.4).

Обращаем внимание на размеры («Source size» и «Size in Rom») модуля 11 «P6 Micro Code» до и после применения данных изменений в файле реципиента.
После применения эти размеры у реципиента (рис.6) станут идентичны размерам такого же модуля в файле-доноре 74GCU511.rom (рис.5).
Стоит заметить, что несложно понять, как формируется размер модуля (каждая строка, что в разделе CPU PATCH, занимает по 2048 байт).

Сохранять изменения лучше под новым именем файла.
Далее этот файл проверяется, чтобы по новой без ошибок открывался MMTOOL.

Способ №2 — модификация заменой модуля целиком.

Собственно именно он и описан на просторах интернета (например частично здесь).

В MMTOOL подкружаем файл донора 74GCU511.rom, переходим во вкладку «Extract» и ищем строку «P6 Micro Code». Затем выделяем её, в поле «module file» задаем ему имя ncpucode.bin и выполняем Extract module «in uncompressed form».

Теперь в MMTOOL подгружаем файл реципиента A74GM916.rom, переходим во вкладку «Replace» и снова ищем строку «P6 Micro Code». Выделяем её, ждём Browse и выбираем наш донорский модуль ncpucode.bin. Жмём Replase и далее соглашаемся на замену данного модуля.

Снова обращаем внимание на размеры («Source size» и «Size in Rom») модуля 11 «P6 Micro Code» до и после замены данного модуля в файле реципиента.
После применения эти размеры у реципиента (рис.7) станут идентичны размерам такого же модуля в файле-доноре 74GCU511.rom (рис.5).

Если сравнить результаты обоих способов (рис.6 и рис.7), то заметна разница в 10байт в адресе RomLoc модуля «User Defined or Reserved», следующего за обновляемым модулем «P6 Micro Code» — возможно, это особенности работы MMTOOL.

Источник

Модификация UEFI BIOS для «чайников» — обновляем микрокод CPU AMD в MB ASUS SABERTOOTH-990FX R.1.XX

Модификация UEFI BIOS для «чайников» — обновляем микрокод CPU AMD в MB ASUS SABERTOOTH-990FX R.1.XX

Введение

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

Просто в шестнадцатиричном редакторе замените один микрокод на другой.
А по умному так:
1. Открываете в UEFITool
2. Ищите модуль с GUID равным DE3E049C-A218-4891-8658-5FC0FA84C788. Это — AmdProcessorInitPeim
3. Извлекаете его тело.
4. В шестнадцатиричном редакторе в извлеченном теле заменяете один микрокод на другой.
5. Заменяете тело модуля в открытом UEFITool.
6. Сохраняете прошивку в UEFITool.

1. Открываете извлеченный старый микрокод 16-ричном редакторе, например в HxD,
2. Переписываете первые несколько байт.
3. Открываете в HxD извлеченное тело и ищете в нем поиском эти первые несколько байт.
4. Удостоверяетесь, что и последующие байты совпадают. В противном случае, ищете дальше.
5. Открываете извлеченный новый микрокод.
6. Выделяете всё, копируете в буфер.
7. Возвращаетесь к извлеченному телу и вставляете с заменой новый микрокод из буфера.
8. Сохраняете результат.

Главное, чтобы размер не изменился ни на байт!
Речь про размер извлеченного тела AmdProcessorInitPeim

— CPU00600_F12***09-07-2012 и CPU00600_F12***06-03-2013
— CPU00600_F20***11-07-2012 и CPU00600_F12***03-01-2013

Источник

Microcode (Русский)

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

Особенно пользователи процессоров семейства Intel Haswell и Broadwell должны установить эти обновления, чтобы обеспечить стабильность системы. Но, понятное дело, все пользователи должны устанавливать эти обновления.

Contents

Установка

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

Включение раннего обновления микрокода

Микрокод должен быть загружен загрузчиком. Из-за большого разнообразия конфигураций ранней загрузки у пользователей обновления микрокода могут быть не применены автоматически конфигурацией Arch по умолчанию. Многие ядра в AUR пошли по пути официальных ядер Arch в этом вопросе.

Чтобы применить эти обновления, добавьте /boot/amd-ucode.img или /boot/intel-ucode.img в качестве первого initrd в конфигурационном файле загрузчика. Это в дополнение к обычному initrd файлу. Смотрите ниже инструкции для популярных загрузчиков.

Автоматический способ

Утилита grub-mkconfig автоматически определит обновления микрокода и настроит соответственным образом GRUB. После установки пакета микрокода, перегенерируйте настройки GRUB, чтобы включить обновление микрокода при запуске:

Ручной способ

Повторите это для каждой записи в меню.

systemd-boot

Используйте параметры initrd для загрузки микрокода перед исходным ramdisk следующим образом:

EFI boot stub / EFI handover

Добавьте два параметра initrd= :

microcode updation в биосе что такое. Смотреть фото microcode updation в биосе что такое. Смотреть картинку microcode updation в биосе что такое. Картинка про microcode updation в биосе что такое. Фото microcode updation в биосе что такоеThe factual accuracy of this article or section is disputed.microcode updation в биосе что такое. Смотреть фото microcode updation в биосе что такое. Смотреть картинку microcode updation в биосе что такое. Картинка про microcode updation в биосе что такое. Фото microcode updation в биосе что такое

Для ядер, которые были сгенерированы как один файл, содержащий все initrd, cmdline и ядро, сначала сгенерируйте initrd для интеграции, создав новый, следующим образом:

rEFInd

Отредактируйте опции загрузки в /boot/refind_linux.conf также как в примере EFI boot stub выше, например:

Syslinux

Несколько файлов initrd могут быть разделены запятыми в /boot/syslinux/syslinux.cfg :

LILO и потенциально другие старые загрузчики не поддерживают несколько образов initrd. В этом случае необходимо объединить производитель_цп-ucode.img и initramfs-linux.img в один образ.

Теперь отредактируйте /etc/lilo.conf для загрузки нового образа.

И запустите lilo от суперпользователя:

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

Для процессоров Intel ни один пакет не предоставляет файлы обновления микрокода (FS#59841). Чтобы использовать позднюю загрузку, вам необходимо вручную извлечь intel-ucode/ из предоставленного Intel архива.

Включение позднего обновления микрокода

Для ручного обновления микрокода на запущенной системе запустите:

Это позволяет применять обновления микрокода после обновления linux-firmware без перезагрузки системы. Вы можете даже автоматизировать это с помощью хука pacman, например:

Отключение позднего обновления микрокода

Проверим, обновился ли microcode при загрузке

Чтобы убедиться, что микрокод обновился, воспользуемся dmesg:

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

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

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

Каким ЦП нужны обновления микрокода

Пользователи могут проконсультироваться как у Intel, так и у AMD насчёт поддержки конкретной модели процессора, перейдя по следующим ссылкам:

Обнаружение доступного обновления микрокода

Применение ранней загрузки микрокода в кастомных ядрах

Источник

BIOS Update

Другие идентичные по назначению параметры: Microcode updation, CPU update data.

microcode updation в биосе что такое. Смотреть фото microcode updation в биосе что такое. Смотреть картинку microcode updation в биосе что такое. Картинка про microcode updation в биосе что такое. Фото microcode updation в биосе что такое

Опция BIOS Update предназначена для включения режима автоматического исправления ошибок во встроенном программном обеспечении центрального процессора (ЦП) персонального компьютера. Опция может иметь лишь два значения – Enabled (Включено) или Disabled (Выключено). Также опция может носить названия CPU Update Data, Pentium II Microcode или Microcode Updation.

Принцип работы

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

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

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

Для того, чтобы микрокод, объем которого крайне мал и составляет не более 2 кБ, мог быть загружен в ЦП, он должен находиться в BIOS компьютера. Кроме того, сама BIOS должна поддерживать возможность подобной процедуры. В том случае, если текущая версия BIOS компьютера содержит новую версию программ микропроцессора и опция в BIOS включена, то происходит обновление программ микрокода процессора во время загрузки компьютера, при прохождении процедуры проверки оборудования POST.

Стоит ли включать опцию?

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *