Производится ли обновление BIOS на ноутбуке путем изменения микрокода?
Как обновляется BIOS? Это микропрограммирование или микрокодирование? Если нет, то что происходит?
3 ответа
Как BIOS на самом деле обновляется? Это микропрограммированием / микрокодированием? Нет, тогда что происходит?
В старые времена, прежде чем BIOS был сохранен на флэш-памяти EEPROM / NOR / NAND, вам приходилось физически заменять BIOS ROM на более новый чип. Или, если чип был EEPROM, вы можете удалить чип, запрограммировать его в программаторе EEPROM и вернуть обратно. Почти всегда для этой цели ПЗУ было вставлено в розетку.
Обновляемые BIOS размещаются во флэш-памяти для поверхностного монтажа или, возможно, в EEPROM в старых системах. Соединение (как говорит @Krunal Desai SPI) с остальной частью системы осуществляется через чипсет. Все устройства с микропрограммным обеспечением BIOS имеют подключение к ЦПУ, позволяющее BIOS считывать и выполнять код из памяти, а также другой интерфейс для программирования.
Чтобы обновить BIOS, программа должна связаться с программным интерфейсом флэш-чипа и перезаписать его страницы новыми данными. Что-то, возможно, нужно сделать, чтобы "разблокировать" это в первую очередь. Это операции ввода-вывода в той же общей категории, что и общение с диском или контроллером дисплея, а не операция "микропрограммирования" или "микрокода".
Если вы раньше сталкивались с термином "микрокод" в отношении BIOS, это совершенно другое.
Многие процессоры имеют микрокод, который представляет собой небольшие программы, которые работают внутри процессора. Причина этого заключается в том, что некоторые сложные инструкции процессора проще / дешевле разрабатывать и обрабатывать с помощью микрокода, а не непосредственно на аппаратном уровне. Разработчик программного обеспечения обычно не может изменить микрокод процессора.
Intel и AMD позволяют обновлять микрокод процессоров в случае возникновения ошибок или ошибок в производстве процессоров. Это произошло недавно с чипом Intel, который представил "транзакционную память" или инструкции TSX, которые не работали должным образом. Обычно он работает так, что, пока BIOS инициализирует систему, он будет применять самое последнее обновление микрокода к ЦПУ. Если выходит другое обновление микрокода, поставщик оборудования может выпустить другое обновление BIOS, имеющее самый последний микрокод. Операционные системы также могут устанавливать новейшие микрокоды самостоятельно.
Это все еще не "микропрограммирование", поскольку вы просто применяете здесь "обновление процессора", а не используете отдельные "микроинструкции" в своих собственных программах.
Обновления микрокода теряются при отключении питания и должны применяться каждый раз при загрузке.
На современной платформе 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.
Обновления прошивки - это, по сути, перепрошивка части памяти на чип флэш-памяти или устройство EEPROM на материнской плате. Код bios очень важен, так как это стартовый код для запуска и запуска компьютера под конкретную ОС (windows, Linux и т. Д.). Кроме того, BIOS выполняет многие другие функции, критические назначения ввода / вывода, выбор загрузочного диска и т. Д.
В операционной системе есть приложение, которое обрабатывает фактическое обновление кода BIOS, вы можете загрузить новый код (в шестнадцатеричном формате) с веб-страницы или, возможно, через флэш-накопитель USB, а производитель материнской платы предоставит программа, которая взаимодействует с аппаратным обеспечением и "выталкивает" новый BIOS на материнскую плату.
Многие подпрограммы обновления BIOS материнской платы высокого уровня имеют отказоустойчивый метод обновления, если устройство теряет питание во время обновления. Новый код записывается в пустую область, затем загружается контрольная сумма. Новый код проходит расчет контрольной суммы, чтобы убедиться, что он правильный. Если это правильно, флаг в BIOS указывает на новую область памяти. Затем компьютер перезагружается и используется новый код. Если что-то пойдет не так, флаг все равно будет указывать на старый код, и пользователю сообщается, чтобы повторно применить обновление.
Я написал и поддерживал код обновления для встроенных "черных ящиков", используемых в коммерческих перевозках, медицинских устройствах и мультимедийных устройствах; mp3-плееры, приставки и т. д.