Поскольку терминология, что именно то"микрокода и" и если его можно уточнить, чем она отличается от прошивки?
Этот вопрос не дубликат этот вопрос](https://security.stackexchange.com/questions/176997/capability-of-microcode-hacking) (насколько я могу сказать) что я've также просил об изменении микрокода. Здесь я'м строго желая знать, как правильно использовать эти термины.
У меня есть некоторые ответы, но я'м не особо доволен. Я'вэ занимается много ответов и я нахожу много ответов все равно неудовлетворительный. Итак, позвольте мне представить Вам двух моих кадров,
Происхождение прошивки слово является средней точкой между аппаратными средствами и программным обеспечением программного обеспечения, установленного на оборудовании. Это относится к программное обеспечение, которое хранится в энергонезависимой памяти устройства. Примеры EEPROM и флэш-память встроена в аппаратные устройства, когда они используются для хранения кода, который выполняется самим устройством.
Это'ы становятся все более распространенными в некоторых видах оборудования для его на "прошивки", чтобы быть сохранены в драйвер программное обеспечение и загрузить на устройство, когда он'ы загрузке/инициализации, а не оставлять его постоянно на устройстве. Это's не большое дело в наше время, например, чтобы хранить несколько сотен килобайт прошивки код в драйвер загружается на хост-ОС, и отправить это к устройством, как это'ы инициализации драйвера.
Это по-прежнему часто упоминается как "прошивки" и даже в зависимости от определения прошивки вы принимаете, вы технически не могут рассмотреть его микропрограмму, так как она не является резидентом на оборудовании (если вы отсоедините оборудование и поставить его в другой системе, он выиграл'т сохранить эту версию, что "прошивки") смотрите.
Микрокод является подмножеством этого последнего типа от"прошивки " и;. Микрокод-это не универсальный термин для всех "прошивки", что загружается на устройство при загрузке. Вместо этого, он'ы, характерные для ЦП, где микрокода в основном формирует слоя между выше стандартных инструкций процессора уровня и низкоуровневых операций для конкретного процессора. Он загружается в процессор при загрузке, в BIOS, но могут быть заменены позже на этапе загрузки ОС, а также.
Обновление микрокода может позволить ЦП'низкий уровень поведения должен быть изменен, чтобы обойти некоторые все еще могут быть обнаружены ошибки, без необходимости замены аппаратных средств процессора. Микрокод, как правило, содержит наиболее эффективного отображения от высокого к низкому уровню инструкции, насколько это возможно для обеспечения наилучшего быстродействия и энергоэффективности, так что иногда, когда изменение микрокода необходимо исправить некоторые ошибки, это может привести к снижению производительности.
Отметим, что кризис (уязвимость, затрагивающую только чипы Intel) не могут быть отремонтированы только обновления микрокода и требует изменений в базовой функциональности ОС, которая в дальнейшем может привести к снижению производительности. Угрозы (уязвимость, затрагивающую процессоров Intel, AMD и ARM чипах) можно обойти только обновления микрокода.
Для ответа на некоторые конкретные вопросы после вашего редактирования:
Обратите внимание, что я обсуждаю выше это'т хранящейся на ЦП, пока он'ы, но загруженной в него каждый раз при загрузке в каком-то смысле это вовсе'т работу, как традиционных прошивки. Однако, много оборудования это сейчас, и это еще называется "прошивки" так называют это прошивкой является приемлемым.
Термин "и микрокода" это обычно используется только для основного процессора, а не видеокарты или другого оборудования, даже если эти другие устройства могут иметь код загружается их одинаково.
https://wiki.debian.org/Microcode
<Н3>микрокода процессора</Н3>
процессор микрокод сродни встроенного процессора. Ядро способно обновить процессор'с прошивки без необходимости обновлять через обновление BIOS. Обновление микрокода хранится в энергозависимой памяти, поэтому в BIOS/UEFI или ядра обновления микрокода во время каждой загрузки.
процессоры от Intel и AMD, возможно, потребуется обновление микрокода для их корректной работы. Эти обновления исправить ошибки/опечатки, которые могут вызывать что-либо из-за неправильной обработки, код и повреждение данных, и зависания системы.
в BIOS (или UEFI) обновление микрокода процессора во время загрузки, однако большую часть времени, либо материнская плата поставщик выиграл'т вопрос часто в BIOS/UEFI для обновления, или пользователь выиграл't установить такие обновления. По этим причинам, система процессора, скорее всего, будет запущена с устаревшим микрокодом на огромное количество систем.
Примеры:
https://www.win-raid.com/t3355f47-Intel-AMD-amp-VIA-CPU-Microcode-Repositories.html
Ну, Интел "и обновления микрокода" и в том, что "прошивки" и обновления в том смысле, что они обновляют гораздо больше, чем просто устройство перевод микрокода процессора.
Это единый пакет обновлений процессор у нас называют "обновления микрокода" и для Intel также обновить другие на кристалле микроконтроллера (например, ГРП и управление питанием ядра), а также несколько таблиц параметров для различных на-подсистемы процессора. Они довольно сложные.
Эта информация доступна на нескольких патенты, связанные с микрокода и обновления микрокода.
Я думаю, что термин "и микрокода и" относится в первую очередь к тому, что код делает (он выполняет низкоуровневые инструкции, используя даже ниже уровня инструкции), при этом срок, на "прошивки" и относится в первую очередь к тому, как он хранится и управляется (меньше легко обновлять программное обеспечение, легко обновляются, чем аппаратные). В этом смысле она'ы, а как различие между собой "Приложения" и "в баночку файл" - эта же программа может быть одновременно, но вы смотрите на это с двух разных точек зрения.
Кстати, идея микрокода восходит к Морисом Уилксом в 1951 году, за несколько десятилетий до компьютерные процессоры были встроены в кремнии.
[Примечание: этот ответ специально предназначенные для решения последних изменить и не добавить несколько звуковых ответов, которые уже опубликованы.] Так что, повторю: микрокод (по крайней мере в первом приближении) - особый вид прошивку.
"и микрокода" это в данном контексте-это просто маркетинговый над "и процессор, прошивка.&и" Ну, это's не маркетинг. Маркетинг бы назвал это XBoost про(ТМ) или что-то. Скорее, это'ы инженерный термин; если вы процессоры дизайн, различие между микрокода и процессор'ы другие прошивки (и прошивки типичные для других устройств) - это важно для вас. Если нет, вероятно, это'т. Если вы дизайн материнских плат или пишите операционной системы, вы, вероятно, использовать и"обновление микрокода" и как сокращение для более громоздким и менее знакомые "и процессор обновить прошивку на". Большинство ЦП обновления прошивки в первую очередь влияют на микрокода, поэтому он's достаточно близко к то же самое. Вы, наверное, знаете разницу, но вы не'т необходимости уход об этом. Конечный пользователь не'т нужно знать или заботиться о разнице, а в идеальном мире бы никогда не слышать слово "по микрокода" и все. Я'м предполагаю, что это дошло до вашего внимания в прессе последних спекулятивных уязвимостей исполнения, хотя возможно, вы также слышали это раньше, в контексте, который сделал его более очевидным, что вы ничего'т нуждаются в уходе. Эти уязвимости были обнародованы раньше, чем планировалось, что может в результате освещения в прессе менее куратором, чем это могло бы быть. От конечного пользователя's точки зрения, необходимо установить обновления BIOS, обновлениями операционной системы, а в некоторых случаях обновления приложения; вы должны не заботиться о который, если любое из них включают новый микрокод.
Поэтому, даже понимая, что вы, вероятно, Дон'т нужно знать или заботиться, вы все еще может быть интересен из чистого любопытства: как вы собираетесь отличать микрокода от другой прошивки? Ну, первое, что нужно признать, что нет'т всегда один жесткий и быстрое определение, это больше Bleggs и Рубес положения. Тем не менее, есть некоторые вещи, которые мы можем сказать о микрокода:
- Микрокод обычно выполняется внутри процессора, а не от процессора. Что'ы на высоком уровне.
- Архитектура микрокода, как правило, выглядит совсем не к архитектуре обычных кода, включая обычные прошивки. Это, вероятно, будет весьма параллельно, и быть реализованы гораздо ближе к оборудованию. Несколько из существующих ответов (в том числе свой ответ) это обсуждать, хотя следует отметить, что детали могут отличаться в зависимости от конструкции процессора.
- Хотя скобяными часто предназначен для работы только прошивки, предоставляемой производителем, это не особо редкость для сторонних прошивок используется - хотя это, вероятно, приведет к аннулированию гарантии! Сторонних микрокода гораздо реже, хотя я считаю, что в древние времена (я'м говорить о том, когда был процессор размером с хлебницу) несколько конечных пользователей будет модифицировать микрокод в процессорах. До сих пор, как я'м курсе, это'т возможно в своего рода процессоры, используемые в ПК.
Микрокод обычно переводится или содействует проведению публичных набор инструкций архитектуры, т. е. она работает машинный код, что операционная система конструктора и программисты применения. Подробнее об этом в следующем разделе.
и"против выполнения данных" и много ответов использовать эту парадигму В смешения разных способов, я боюсь, но я'МР-адрес мой собственный комментарий. В этом разделе также служит расширению на последний пункт. Цель здесь состоит в том, чтобы попытаться отличить работу, что процессор делает (достигается за счет сочетания аппаратных средств и микропрограммы), и задание, типичное устройство делает (достигается за счет сочетания аппаратных средств и микропрограммы). Я'м собирается выбрать жесткий диск SATA. Диск SATA следуя указаниям компьютера, которые по аналогии с "чтение данных из quot 5,123 сектора&; и "напишите эти данные в очень 1,321 сектора&;. Диск'с прошивка отвечает за оборудование, чтобы это произошло, и это обычно довольно обычный код работает на встроенном процессоре какой-то. Диск'Инструкции поступают последовательно, если они не могут быть обработаны в порядке их поступления. Эти инструкции вовсе'т программы, они отправлено программа работает на основной процессор. В частности, нет потока управления, т. е., не инструкция сказать, что диск SATA, которые инструкции, чтобы запустить следующий. Процессор отвечает за компьютер. Как только он закончил инициализировать выполняется инструкциям (на"код") смотрите, предоставленной материнской плате (BIOS, другая типа прошивки), которые направляют его запустить машинный код, предоставляемый операционной системой, которая направляет его для запуска машинного кода обеспечивается применением поставщики. Сам процессор загружает машинный код из EEPROM (в случае BIOS) или оперативной памяти (в случае с операционной системой и приложениями). В частности, машинный код имеет потока управления: машинный код процессора говорит, что машинный код для выполнения следующего. Можно перебрать тот же машинный код повторно, вы можете запускать различные фрагменты кода в зависимости от данных код работает на инструкции в устройство, язык интерфейса SATA и как код может делать ограниченный набор простых задач, но машинный код можете делать ничего**. (См. также полнота по Тьюрингу.) Мы могли бы переписать, что финал выше пункт а: микрокод обычно реализует Тьюринг-полного языка; обычную прошивку обычно не'т.
что это значит-сказать: "Инструкции по оборудованию интерпретируются" с микрокода. Правда, но, наверное, путаете; важным моментом является различие между машинный код, который имеет поток управления и является тьюринг полный, и инструкции, указанные на устройстве интерфейса, такие как SATA, который не'т и это'т.
кто-то "микрокода и" применить к код, который работает на звуковых картах Нет, звуковых карт получают инструкции, а не код, так как диски SATA. Инструкции могут быть, как и quot играть Шарп;; или "интерпретировать эти данные как сигнал и воспроизвести ее". Еще очень простой. > и видеокарт (видеочипов)? Старомодный видеокарты (без видеокарты) такие же, как и SATA-дисков. В инструкции как-то "установить этот пиксель этого цвета" или "написать в этой позиции, что". ... Графических процессоров являются сложными и посидеть где-нибудь между двумя мирами, я'вэ пытался описать выше. Это, вероятно, простой думать о них как специализированные компьютерные сидит внутри основной компьютер, который имеет свои собственные процессоры. Это's садится, что устройства, такие как SATA-диски также имеют встроенные процессоры, но разница в том, что встроенный процессор в SATA диск работает только код диска производителя, а также графические процессоры для запуска кода операционной системы и/или приложения. На самом деле это целый отдельный вопрос.
ТЛ;ДР: микрокод-это особый вид прошивки, которая позволяет аппаратно реализовать Тьюринг-полного набора команд.
я микрокода " и; был оригинальный термин, а ссылался на инструкции, которые используются, чтобы реализовать интерпретатор для процессора'ы с "публичных" и набор команд.
Но с течением времени, со многими вариациями в схемах реализации, различия, такие как было, есть более расплывчато. Сначала был горизонтальный против вертикального микрокода, затем различные схемы для написания и"микрокода и" (для реализации, скажем, в инструкции ввода/вывода) в "Главное" процессор с набором инструкций. То есть необходимо различать код, который легко загружается через обычные программы "бегать" по операции, код против (для BIOS, например), который был сохранен в ROM или других защищенных и относительно неизменное хранение. Таким образом, срок на "прошивки", было придумано для обозначения этих инструкций, которые были как-то более стойкое (и менее доступно для изменения Пользователем) в хранилище.
Но все переродилось и закручивается множество раз, так как эти первого были проведены различия, а не условия только определяемые с точностью в пределах данного процессора и ОС.
Прошивки, как правило, относится к коду для устройств, содержащих процессор не сам процессор например, прошивки для телефона.
Микрокод является переводом слоя между сложными наборы инструкций (например, 486, 686, АМД-64 и т. д.).а нижняя инструкцией уровня, что производители чипов кремния. Так что количество команд в наборе команд процессора не реализованы в кремнии, но перевел через микрокод на несколько инструкций, которые реализованы в кремнии.
Микрокод ("и контролировать магазин на") данные находятся в энергозависимой или энергонезависимой памяти, обычно довольно небольшой, но очень широкая память, чьи данные выходные сигналы подключаются к контроль сигнала входы параллельных аппаратных функциональных блоков, выборочный контроль логики и т. д. Микрокода памяти'ы адресных входов обеспечивается государственная машина, которая шагов через слово памяти (на"микропрограмма инструкция и"), чтобы эффективно последовательность управляющих сигналов из одного или нескольких аппаратных блоков. На этот раз-мультиплексов оборудования и позволяет сложные операции будут осуществляться значительно меньше случайной логики.
В современных микропроцессорах может существовать иерархия микрокода/последовательность подразделения, необходимые для абстрактного физического кремния микроархитектуры к более общей структуры семьи с общим и"код" и интерфейс. Например, там может быть несколько слоев микрокода/секвенирование для реализации декодеров инструкции и устройства с плавающей точкой.
Прошивки в традиционном смысле-это любое программное обеспечение/данные, хранящиеся в энергонезависимой памяти, которая, как ожидается, будет редко или никогда не меняется. Это прямо контрастирует программного обеспечения, хранящихся в вернее написан и выполнен из системной памяти, которая постоянно меняется. Микрокода конкретно относится к данным, представляющим микропрограммной последовательности контроль аппаратных средств.
Микрокод может быть реализовано в прошивки/прошивки могут содержать микрокод, но они не одинаковы.
Я'отвечу на это сам, используя только использовать-в контексте этого этот PDF.
"и, как правило, патч микрокода загружен ЦП на материнской плате прошивка (например, BIOS или UEFI) или операционной системы в начале процесса загрузки&.и"
и GT; ПИН играет центральную роль в блоке управления и формирует управляющие сигналы на основе содержания инструкции зарегистрироваться.
*Макрос-инструкция одна инструкция отправлен пин для расшифровки, может возвращать любое количество облаков микро-инструкции.
Микро-инструкция один предварительно на "управления" и все государство и инструкции для выполнения за один такт. Направлено процессора для генерации сигналы управления.
Так что в этом контексте, вы'd обновление микрокода прошивки. Вы отправляете макро-инструкции на платформах ПИН решить макро-инструкции в том, что "микро-инструкцию" и для исполнения на процессоре, который превращает их в сигналы управления.
Микрокода данных, но обновления микрокода осуществляется через прошивки. И не странно, потому что вы'вновь говорю о том, что, по существу, сводится к внутренней таблицы подстановки, он'ы, конечно, и сама прошивки в том, что она'ы, по существу, сохраняется на чипе и используется при выполнении потока чипа. Я думаю, что вы могли бы сделать аргумент, что генерал миди, скобяными PostScript и управляющих сигналов на простые терминалы также толковать в том же смысле, в оборудовании, и что то исполняет распоряжения и, в конечном счете, создает то"сигналы управления и" в какой-то интерпретации процесса.
Кажется, у нас есть специальные названия для этих процессов и компонентов процессор: с "ПИН" на процессор, и название для определенных входных данных, таблицы ПИН работает, который держит всех "микрокоманд и": в "микрокода." и информацию о том, что процесс является частной собственностью и закрыт. Я предполагаю, что он'ы, аналогичные других технологий из модемов (с ATDTБЫЛ и как на модемных), к Midi-карты, но мы не'т называть конкретные таблицы подстановки "и микрокода", и вместо того, чтобы использовать общий термин-то "прошивки" и на процесс прошивки и все данные, хранящиеся на кристалле.
Прошивки исполняемый код помещается в ПЗУ или другой энергонезависимой памяти.
Первоначальная и основная цель прошивки-это быть там, когда процессор начинает, так это код для запуска или загрузки любой системы ЦП является частью. В случае с ПК, прошивки также используется для предоставления услуг операционной системы, а также содержит код для встраиваемых контроллеров, которые управляют вентиляторами, мощность, и несколько других вещей, и код для меня/PSP, которая работает в фоновом режиме.
Периферийных устройств, которые принимают прошивки, такие как жесткие диски, USB-устройства и др. имеют встроенного процессора.
Микрокод не исполняемый код, а код, используемый внутри помещения устройства.
Это'ы загружаются в процессор Intel или AMD процессоров с инструкцией WRMSR. Загрузка прошивки в устройство включает в себя программирование ПЗУ или флэш-носитель, или, опираясь на небольшая программа загрузчик, чтобы присутствовать на устройстве, чтобы принять прошивку.
Прошивки и обновления микрокода в аналогичной категории - Вещи, которые вы должны сделать, чтобы получить оборудование рабочих и, возможно, потребуется обновление время от времени - но это очень разные вещи.
Комплекс инструкций, во многих процессорах, непосредственно не встроены в оборудование, но "выполнено" и по меньшей процессора-как объект в основной процессор. Микрокод управления этими операциями. Это восходит по крайней мере к Motorola 68000, который был на "MicroROM" и содержащих микрокод.
Никто кроме процессоров Intel или AMD знаю, что микрокод реально управляет или, как они не выпускают детали. Есть попытки взломать его. Ссылка.
Практически, обновления микрокода в основном используется для отключения инструкции, которые вызывают проблемы на известные модели/степпингами процессоров и новейших процессоров от Intel часто требуют как минимум одно обновление микрокода до их надежного функционирования.
Некоторые точки зрения на то, что микрокод процессора может на самом деле/на самом деле это может быть достигнуто, если вы читали о 6502 ПЛА декодирование ПЗУ - на 6502-это старый 8-битный процессор и его инструкции были секвенированы/управляется внутренней ПЛА. НОАК бы в принципе сказать, что часть чипа были задействованы на каждом этапе каждая команда (6502 инструкции в диапазоне от 2 до 7 циклов). Это далеко, далеко прежде, чем такие вещи, как кэширование, суперскалярная архитектура, предсказание ветвлений и т. д. Не уверен, что если микрокод на современных процессорах будет контролировать что-то подобное ПЛА.
Я'вэ взял курс в основных Иса конструкцией, главным образом в исследования и разработку RISC-процессора смоделировано понятия пом. Здесь's то, что я пришел, чтобы помнить
В моем понимании, основные блоки процессора, такие как регистры, Алу, мультиплексоры и модули памяти требуют определенных сигналов для них, чтобы делать свою работу. Вы бы назвали эти сигналы вашу "утверждение" и сигналы, поскольку они являются сигналы, необходимые для работы этих блоков. Процессоры по сути, представляют собой блок спагетти Алу, модули памяти, регистров и других устройств. Смысл каждого процессора должна отстаивать определенную последовательность управляющих сигналов для выполнения их работы (я имею в виду основные инструкции, такие как Анди, ОРИ, СПМ, Бне, УР и т. д.). У меня были смешанные чувства об этом, когда мне пришлось отстаивать сигналы себя (буквально переживает все МИПС инструкции) во время тестирования и отладки набор инструкций с учебной программой'с такими темпами бы'т научил меня что-нибудь про блоков управления на тот момент.
С другой стороны, язык ассемблера сводится к коды операций и операнды в командном слове (в основном ширина шины данных). С точки зрения архитектуры MIPS, первые 6 битов командного слова ваших инструкций. Только само математическое осмотр, вы не можете себе "утверждать" по-вашему АЛУ, регистров, памяти, мультиплексоры.. в принципе остальное оборудование только 6 бит.
Нет, если у вас... инструкция декодер. Дешифратор команд в основном имеет свой код операции и выдает всю вашу "утверждение" и сигналов, необходимых для работы вашего оборудования. Однако, декодеры инструкция на различия в реализации между архитектурами и в некоторых случаях программируется. Микрокод влияет на программируемых раздел дешифратор команд.
Я пришел к выводу, что прошивки - это общий термин для любой информации, встроенных в оборудование. В некоторых случаях он также будет относиться к микрокода, как его потоков может быть закодирована и хранится в аппаратные средства, такие как EEPROM и флэш-память. Однако в большинстве случаев, это скомпилированный код, АСМ, или даже комплекс на языке Verilog потоков, используемых в ПЛИС. Микрокод мне кажется семантикой, используемой для указания "и утверждение сигналы" в обработчик выбора.
Микрокод является суб-АСМ уровня, процессор-встроенная прошивка.