Как обновляется BIOS? Это микропрограммирование или микрокодирование? Если нет, то что происходит?

3 ответа3

1

На современной платформе Intel BIOS хранится в микросхеме флэш-памяти SPI (последовательный периферийный интерфейс) NOR, прикрепленной к PCH. Точный метод обновления варьируется от поставщика BIOS к поставщику, но я использовал для поддержки BIOS на основе AMI UEFI для своей компании. Средство обновления прошивки (AmiFlash) может быть запущено из Windows, оболочки UEFI или из самозагружающейся среды DOS и просто перезаписывает содержимое этой флэш-памяти SPI.

В прошлом на платформах Intel использовалось устройство хранения на базе FWH (Firmware Hub), которое находилось на шине LPC (Low Pin Count).

Обновления микрокода часто поставляются как часть обновления BIOS и применяются в виде двоичных двоичных объектов в каждом цикле питания - фактический процессор не изменяется ни в каком виде, ни в форме, ни в форме.

Я думаю, что AMD очень похожа - они, вероятно, также перешли на обычную память SPI.

Если вы возьмете цикл питания или другое прерывание в середине обновления, вы будете блокировать свою платформу. Некоторые материнские платы имеют две вспышки SPI, что позволяет использовать подход с переключением банков A/B.

0

Как BIOS на самом деле обновляется? Это микропрограммированием / микрокодированием? Нет, тогда что происходит?

В старые времена, прежде чем BIOS был сохранен на флэш-памяти EEPROM/NOR/NAND, вам приходилось физически заменять BIOS ROM новым чипом. Или, если чип был EEPROM, вы можете удалить чип, запрограммировать его в программаторе EEPROM и вернуть обратно. Почти всегда для этой цели ПЗУ было вставлено в розетку.

Обновляемые BIOS размещаются во флэш-памяти для поверхностного монтажа или, возможно, в EEPROM в старых системах. Соединение (которое, как говорит @Krunal Desai, SPI) с остальной системой осуществляется через чипсет. Все устройства с микропрограммным обеспечением BIOS имеют подключение к ЦПУ, позволяющее BIOS считывать и выполнять код из памяти, а также другой интерфейс для программирования.

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

Если вы раньше сталкивались с термином "микрокод" по отношению к BIOS, это совершенно другое.

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

Intel и AMD позволяют обновлять микрокод процессоров в случае возникновения ошибок или ошибок в производстве процессоров. Это произошло недавно с чипом Intel, который представил "транзакционную память" или инструкции TSX, которые не работали должным образом. Обычно он работает так, что, пока BIOS инициализирует систему, он будет применять самое последнее обновление микрокода к ЦПУ. Если выходит другое обновление микрокода, поставщик оборудования может выпустить другое обновление BIOS, имеющее самый последний микрокод. Операционные системы также могут устанавливать новейшие микрокоды самостоятельно.

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

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

-1

Обновления прошивки - это, по сути, перепрошивка фрагмента памяти на чип флэш-памяти или устройство EEPROM на материнской плате. Код bios очень важен, так как это стартовый код для запуска и запуска компьютера под конкретную ОС (windows, Linux и т.д.). Кроме того, BIOS выполняет многие другие функции, критические назначения ввода / вывода, выбор загрузочного диска и т.д.

В операционной системе есть приложение, которое обрабатывает фактическое обновление кода BIOS, вы можете загрузить новый код (в шестнадцатеричном формате) с веб-страницы или, возможно, через флэш-накопитель USB, а производитель материнской платы предоставит программа, которая взаимодействует с аппаратным обеспечением и «выталкивает» новый BIOS на материнскую плату.

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

Я написал и поддерживал код обновления для встроенных «черных ящиков», используемых в коммерческих перевозках, медицинских устройствах и мультимедийных устройствах; mp3-плееры, приставки и т. д.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .