Jump to content

Микрокод Intel

Микрокод Intel — это микрокод , который работает внутри процессоров x86, созданных Intel . Поскольку микроархитектура P6 была представлена ​​в середине 1990-х годов, программы микрокода могут быть исправлены операционной системой или прошивкой BIOS для устранения ошибок, обнаруженных в ЦП после выпуска. [ 1 ] Первоначально компания Intel разработала обновления микрокода для отладки процессоров в рамках своей инициативы «Разработка для тестирования » (DFT). [ 2 ]

После ошибки Pentium FDIV приобрела функция исправления микрокода более широкую цель: обеспечить возможность обновления на месте без необходимости отзыва продукта . [ 1 ]

В микроархитектурах P6 и более поздних версиях инструкции x86 внутренне преобразуются в более простые RISC в стиле микрооперации , специфичные для конкретного процессора и уровня степпинга . [ 1 ]

Микрокод до P6

[ редактировать ]

На процессорах Intel 80486 и AMD Am486 имеется около 5000 строк сборки микрокода, общим объемом около 240 Кбит, хранящихся в ПЗУ микрокода . [ 3 ]

P6 и более поздние микрооперации

[ редактировать ]

Начиная с Pentium Pro, в большинстве процессоров Intel x86 инструкции преобразуются блоком выборки и декодирования инструкций в последовательности микроопераций, специфичных для процессора, которые выполняются непосредственно процессором. Для инструкций, реализованных в микрокоде, микрокод состоит из микроопераций, извлекаемых из встроенной памяти. [ 4 ]

В Pentium Pro каждая микрооперация имеет ширину 72 бита. [ 5 ] : 43  или шириной 118 бит. [ 6 ] : 2  [ 7 ] : 14  Сюда входит код операции, два поля источника и одно поле назначения. [ 8 ] : 7  с возможностью хранения 32-битного немедленного значения. [ 6 ] [ 7 ] : 14  Pentium Pro способен обнаруживать ошибки четности во внутреннем ПЗУ микрокода и сообщать об этом через архитектуру машинной проверки . [ 9 ]

Микрооперации имеют единый формат с тремя исходными входными данными и двумя целевыми выходными данными. [ 10 ] Процессор выполняет переименование регистров для сопоставления этих входных данных с реальным файлом регистров (RRF) до и после их выполнения. [ 10 ] Используется внеочередное выполнение , поэтому микрооперации и инструкции, которые они представляют, могут появляться в разном порядке.

Во время разработки Pentium Pro между степпингами A2 и B0 было включено несколько исправлений микрокода. [ 11 ] Для Pentium II (на базе Pentium Pro P6) были добавлены дополнительные микрооперации для поддержки набора инструкций MMX . [ 12 ] В некоторых случаях были добавлены «вспомогательные микрокоды» для надежной обработки редких нестандартных ситуаций. [ 12 ]

Pentium 4 может одновременно выполнять 126 микроопераций. [ 13 ] : 10  Микрооперации декодируются и сохраняются в кэше трассировки выполнения с 12 000 записей, чтобы избежать повторного декодирования одних и тех же инструкций x86. [ 13 ] : 5  Группы из шести микроопераций упакованы в строку трассировки. [ 13 ] : 5  Микрооперации могут занимать дополнительное пространство для непосредственных данных в одной и той же строке кэша. [ 14 ] : 49  Сложные инструкции, такие как обработка исключений, приводят к переходу в ПЗУ микрокода. [ 13 ] : 6  Во время разработки Pentium 4 на микрокод приходилось 14% ошибок процессора по сравнению с 30% ошибок процессора при разработке Pentium Pro. [ 15 ] : 35 

В микроархитектуру Intel Core, представленную в 2006 году, добавлено « объединение макроопераций » для некоторых распространенных пар инструкций, включая сравнение с последующим переходом. [ 16 ] Декодеры инструкций в Core преобразуют инструкции x86 в микрокод тремя различными способами:

Преобразование инструкций x86 в микрооперации на Core [ 16 ]
инструкции x86 декодеры x86 микрооперации
общий простой декодер × 3 1–3
большинство других комплексный декодер × 1 ≤4
очень сложный секвенсор микрокода много

Intel гиперпоточности В реализации одновременной многопоточности ПЗУ микрокода, кэш трассировки и декодеры инструкций являются общими, но очередь микроопераций не является общей. [ 17 ]

Обновить объект

[ редактировать ]

В середине 1990-х годов возможность предоставления нового микрокода первоначально называлась функцией обновления BIOS Pentium Pro . [ 18 ] [ 19 ] Предполагалось, что приложения пользовательского режима должны вызывать прерывание BIOS для предоставления нового «блока данных обновления BIOS», который BIOS будет частично проверять и сохранять в энергонезависимой памяти BIOS ; это может быть передано установленным процессорам при следующей загрузке. [ 18 ]

Intel распространила программу под названием BUP_UTIL.EXE, переименован CHECKUP3.EXE это можно было бы запустить под DOS . Коллекции нескольких обновлений микрокода были объединены вместе и пронумерованы с расширением .PDB, такой как PEP6.PDB. [ 20 ] : 79 

Интерфейс процессора

[ редактировать ]

Процессор загружается с использованием набора микрокодов, хранящихся внутри процессора и во внутреннем ПЗУ . [ 1 ] Обновление микрокода заполняет отдельную SRAM и набор «регистров соответствия», которые действуют как точки останова в ПЗУ микрокода, позволяя перейти к обновленному списку микроопераций в SRAM. [ 1 ] Сопоставление выполняется между указателем инструкций микрокода (UIP) и всеми регистрами совпадения, при этом любое совпадение приводит к переходу к соответствующему адресу микрокода назначения. [ 2 ] : 3  В исходной архитектуре P6 в SRAM имеется место для 60 микроопераций и нескольких пар регистров соответствия/назначения. [ 1 ] [ 2 ] : 3  требуется один цикл команд процессора. Для перехода от микрокода ПЗУ к исправленному микрокоду, хранящемуся в SRAM, [ 1 ] Регистры совпадений состоят из адреса совпадения микрокода и адреса назначения микрокода. [ 21 ]

Процессор должен находиться в нулевом защитном кольце Кольцо 0 »), чтобы инициировать обновление микрокода. [ 21 ] : 1  Каждый ЦП в симметричной многопроцессорной схеме необходимо обновлять индивидуально. [ 21 ] : 1 

Обновление инициируется помещением его адреса в eax регистрация, настройка ecx = 0x79и выполнение wrmsr (Запишите регистр конкретной модели ). [ 22 ] : 435 

Формат обновления микрокода

[ редактировать ]

Корпорация Intel распространяет обновления микрокода в виде двоичного объекта размером 2048 (2 килобайта) . [ 1 ] Обновление содержит информацию о том, для каких процессоров оно предназначено, чтобы можно было сверить ее с результатом выполнения инструкции CPUID . [ 1 ] Структура представляет собой 48-байтовый заголовок, за которым следуют 2000 байт, предназначенные для непосредственного чтения обновляемым процессором: [ 1 ]

  1. Программа микрокода, исполняемая процессором во время процесса обновления микрокода. [ 1 ] Этот микрокод способен переконфигурировать, включать или отключать компоненты с помощью специального регистра, а также должен обновлять регистры соответствия точек останова. [ 1 ]
  2. До шестидесяти исправленных микроопераций для заполнения в SRAM. [ 1 ]
  3. Заполнение, состоящее из случайных значений, чтобы затруднить понимание формата обновления микрокода. [ 1 ]

Каждый блок кодируется по-разному, и большая часть из 2000 байт не используется в качестве программы конфигурации, а само содержимое микроопераций SRAM намного меньше. [ 1 ] Окончательное определение и проверка того, можно ли применить обновление к процессору, выполняется во время расшифровки через процессор. [ 18 ] Каждое обновление микрокода специфично для конкретной версии ЦП и предназначено для отклонения ЦП с другим уровнем шаговости . Обновления микрокода шифруются, чтобы предотвратить несанкционированный доступ и обеспечить проверку. [ 23 ]

В Pentium используется два уровня шифрования, а точные детали явно не документируются Intel, а известны только менее чем десяти сотрудникам. [ 24 ]

Обновления микрокода для Intel Atom , Nehalem и Sandy Bridge дополнительно содержат дополнительный 520-байтовый заголовок, содержащий 2048-битный модуль RSA с показателем степени 17 десятичных. [ 21 ] : 7, 8 

Наблюдаемые длины блоков данных микрокода Intel (в байтах) [ 21 ] : 16 
Микроархитектура Примеры процессоров Поставляемая длина Функциональная длина Подозрение на кодировку
П6 Пентиум Про 2000 864; 872; 944; 1968 64-битный блочный шифр
Основной PIII… Ядро 2 4048 3096
Нетберст P4 , Пентиум Д , Селерон 2000–7120 2000 + Н*1024 цепной блочный шифр
Атом, Нехалем, Сэнди Бридж Ядро i3/i5/i7 976–16336 976 + Н*1024; 5120 Подпись AES + RSA

Можно загрузить специальный микрокод, предназначенный для отладки, чтобы включить расширенную трассировку выполнения, которая затем выводит дополнительную информацию через контакты монитора точек останова. [ 25 ] На Pentium 4 загрузка специального микрокода может предоставить доступ к режиму расширенной трассировки выполнения микрокода. [ 25 ] При использовании порта тестового доступа JTAG (TAP) пара регистров управления точкой останова позволяет выполнять взлом по адресам микрокода. [ 25 ]

В середине 1980-х годов NEC и Intel вели продолжительное дело в федеральном суде США по поводу авторских прав на микрокод. [ 26 ] NEC выступала в качестве второго поставщика процессоров Intel 8086 со своим NEC μPD8086 и заключила с Intel долгосрочные соглашения о перекрестном лицензировании патентов и авторских прав. В августе 1982 года Intel подала в суд на NEC за нарушение авторских прав на реализацию микрокода. [ 27 ] [ 28 ] NEC одержала победу, продемонстрировав с помощью разработки программного обеспечения в чистых помещениях , что сходство в реализации микрокода на ее процессорах V20 и V30 является результатом ограничений, требуемых архитектурой, а не путем копирования. [ 26 ]

Intel 386 может выполнять встроенное самотестирование микрокода и массивов программируемой логики , при этом значение самотестирования помещается в EAX зарегистрироваться. [ 29 ] Во время BIST счетчик микропрограмм повторно используется для обхода всех ПЗУ, при этом результаты сопоставляются через сеть сигнатурных регистров с несколькими входами (MISR) и регистров сдвига с линейной обратной связью. [ 30 ] При запуске Intel 486 аппаратно управляемый BIST работает в течение 2 20 такты для проверки различных массивов, включая ПЗУ микрокода, после чего управление передается микрокоду для дальнейшего самотестирования регистров и вычислительных блоков. [ 31 ] ПЗУ микрокода Intel 486 содержит 250 000 транзисторов. [ 31 ]

У AMD был долгосрочный контракт на повторное использование микрокода Intel 286, 386 и 486. [ 32 ] В октябре 2004 года суд постановил, что соглашение не распространяется на распространение AMD микрокода внутрисхемной эмуляции (ICE) Intel 486. [ 32 ]

Тестирование прямого доступа

[ редактировать ]

Тестирование с прямым доступом (DAT) включено в процессоры Intel в рамках инициатив «Проектирование для тестирования» (DFT) и «Проектирование для отладки» (DFD), позволяющих полностью протестировать отдельные процессоры перед продажей. [ 33 ]

В мае 2020 года появился скрипт, читающий напрямую с шины регистров управления (CRBUS). [ 34 ] (после использования «Red Unlock» в JTAG USB-A на USB-A 3.0 с возможностями отладки, без D+, D- и Vcc [ 35 ] ) использовался для чтения из порта Local Direct Access Test (LDAT) процессора Intel Goldmont , а также считывались загруженные массивы микрокода и исправлений. [ 36 ] Эти массивы доступны только после перевода ЦП в определенный режим и состоят из пяти массивов, доступ к которым осуществляется через смещение 0x6a0: [ 37 ]

  1. ПЗУ: триады микрокода
  2. ПЗУ: последовательность слов
  3. ОЗУ: последовательность слов (обновляемая)
  4. ОЗУ: пары совпадений/патчей (обновляемые)
  5. ОЗУ: триады микрокода (обновляемые)
  1. ^ Перейти обратно: а б с д и ж г час я дж к л м н тот Гвеннап, Линли (15 сентября 1997 г.). «Микрокод P6 можно исправить» (PDF) . Отчет микропроцессора . Архивировано из оригинала (PDF) 21 декабря 2009 года . Проверено 23 января 2018 г. Intel реализовала возможность исправления микрокода в своих процессорах P6 , включая Pentium Pro и Pentium II … позволяет изменять микрокод после изготовления процессора, исправляя ошибки, обнаруженные после проектирования процессора. … изначально предполагалось, что эту функцию можно будет использовать только для отладки, но после того, как мы разобрались с ошибкой Pentium FDIV … Intel решила сделать ее пригодной для использования в полевых условиях. … Чип P6 содержит полный набор микрокода во внутреннем ПЗУ … BIOS записывает адрес памяти в специальный регистр ЦП для запуска последовательности загрузки… Процессоры P6 содержат небольшую SRAM , вмещающую до 60 микроинструкций. Код исправления загружается в эту SRAM… также содержит набор регистров «совпадения», которые вызывают ловушку при обнаружении определенного адреса микрокода. (Это похоже на «инструкцию « точка останова », используемая для отладки ассемблерного кода .) Эта ловушка, обработка которой занимает один цикл, переносит выполнение микрокода в ОЗУ исправлений. … загруженный микрокод состоит из двух сегментов. … первый – это процедура инициализации, которая запускается немедленно … также инициализирует регистры совпадения, если необходимо… второй сегмент содержит один или несколько патчей, которые остаются в ОЗУ патчей во время нормальной работы и доступны через ловушку регистра совпадения… исходный микрокод хранится в ПЗУ, … регистры совпадения позволяют работать. микрокод, подлежащий изменению. Таким образом, можно исправить неправильно работающую инструкцию x86 , предполагая, что она реализована в микрокоде… создается патч для замены раздела исходного микрокода, выполняющего правильную операцию и затем возвращающегося назад. … количество регистров совпадений, … более одного, … одна ошибка, … может потребоваться несколько исправлений, а некоторые ошибки слишком сложны для исправления… механизм может позволить исправить несколько ошибок, … функции процессора P6 можно отключить с помощью специальный реестр… Блок данных размером 2048 байт. Блок содержит 48-байтовый заголовок, который включает в себя код даты, Идентификатор ЦП (который включает в себя уровень шага ) целевого процессора, контрольную сумму и 2000 байт данных, которые будут загружены процессором. … контрольная сумма … не используется ЦП. … 2000 байт данных зашифрованы таким образом, что, по утверждению Intel, их будет чрезвычайно сложно взломать. Байты разделены на блоки различной длины, каждый из которых кодируется по-разному. …обычно их размер намного меньше 2000 байт, а остальные данные представляют собой случайный шум, призванный сбить с толку любого, кто попытается взломать шифрование. … Intel не опубликовала никакой информации о формате своего микрокода, … он намеренно создан так, чтобы его было трудно понять. Лишь небольшое количество сотрудников Intel знает форматы микрокода P6.
  2. ^ Перейти обратно: а б с Йео Энг Хонг; Лим Сон Леонг; Вонг Йик Чунг; Лок Чун Хоу; Махмуд Аднан (20 апреля 1998 г.). Чао, Линь (ред.). «Обзор расширенных методов анализа отказов микропроцессоров Pentium и Pentium Pro» (PDF) . Журнал технологий Intel (второй квартал). Микропроцессор Pentium Pro... Функция микроисправления DFT . ... состоит из двух ключевых элементов: оперативной памяти микрокода и нескольких пар регистров соответствия и назначения. ... Указатель инструкции микрокода (UIP) соответствует содержимому регистра соответствия, UIP будет перезагружен с новым адресом из регистра назначения. ... UIP для подпрограммы сброса может быть установлен в регистре соответствия... тем самым вообще обходя подпрограмму сброса.
  3. ^ Трамбалл, Патрисия В. (7 октября 1994 г.). Корпорация Intel против Advanced Micro Devices (Факты и юридические заключения по итогам « ICE судебного процесса »). Окружной суд США Северного округа Калифорнии . Сан-Хосе . Проверено 10 мая 2021 г. - через Advanced Micro Devices . Двенадцать контактов связаны со схемой «ICE». … AMD 486DXL и DXLV соединяют три контакта, связанные с « ICE », чтобы реализовать функцию « SMM ». … 250 строк или 12 032 бита микрокода «ICE» в формате 486 . « ICE » составляет около пяти процентов от общего числа 486 микрокодов. … две строки … (используются для установки режима « ICE » « триггер ») … синие строки микрокода связаны с производственным тестированием и не используются для целей, связанных с « ICE ». … Семьдесят пять строк с красной кодировкой были использованы Intel для выполнения « SMM » в своем 486SL , функции этой версии чипа, указанной в технических характеристиках. Около 32 строк с желтым кодом выполняют рутинные операции, которые не являются уникальными для «ICE». Около двух строк по-прежнему посвящено исключительно «ICE».
  4. ^ «Экскурсия по микроархитектуре процессора Pentium Pro» . Интел . Архивировано из оригинала 20 декабря 1996 г.
  5. ^ Кубятович, Джон (3 мая 2004 г.). «Динамическое планирование в P6 (Pentium Pro, II, III)» (PDF) . Низкое энергопотребление, усовершенствованные процессоры Intel . CS152 Компьютерная архитектура и проектирование (лекция 25). Сложные инструкции размером 80x86 выполняются обычной микропрограммой ( 8K x 72 бита), которая выполняет длинные последовательности микроопераций.
  6. ^ Перейти обратно: а б Гвеннап, Линли (16 февраля 1995 г.). «Intel P6 использует несвязанную суперскалярную конструкцию» (PDF) . Отчет микропроцессора . Том. 9, нет. 2. Ресурсы по микродизайну. стр. 1–7. S2CID   14414612 . Архивировано из оригинала (PDF) 8 октября 2018 года. Операции P6 имеют фиксированную длину 118 бит и используют регулярную структуру для кодирования операции, двух источников и пункта назначения. Поля источника и назначения достаточно широки, чтобы содержать 32-битный операнд.
  7. ^ Перейти обратно: а б Асанович, Крсте (2002). «P6 упс» (PDF) . Эволюция микропроцессора: с 4004 по Pentium Pro (весна): 14 . Проверено 23 января 2018 г. Каждый моп имеет фиксированный формат около 118 бит… – код операции, два источника и пункт назначения… – поля источников и назначения имеют ширину 32 бита для хранения непосредственного значения или операнда.
  8. ^ Колвелл, Роберт П.; Стек, Рэнди Л.; Корпорация Intel (12 апреля 1995 г.). «Процессор BiCMOS 0,6 мкм с динамическим выполнением» (PDF) . п. 7 . Проверено 27 мая 2020 г. Микрооперации представляют собой атомарную единицу работы процессора P6 и состоят из кода операции, двух исходных и одного операндов назначения. Эти микрооперации имеют фиксированную длину и являются более общими, чем микрокод процессора Pentium®, поскольку их необходимо планировать.
  9. ^ 16.6.1. Простые коды ошибок (PDF) . Архитектура проверки машины (отчет). Руководство разработчика семейства Pentium® Pro. Том. 3: Руководство для разработчиков операционных систем. 3 января 1996 г. с. 401. Архивировано из оригинала 6 сентября 2001 года . Проверено 1 октября 2018 г. уникальные коды обозначают глобальную информацию об ошибке… Ошибка четности ПЗУ микрокода {{cite report}}: CS1 maint: неподходящий URL ( ссылка )
  10. ^ Перейти обратно: а б Ронен, Ронни; Intel Labs (18 января 2005 г.). Микрооперации (Uops) (PDF) . Процессор Pentium II/III «Компилятор на кристалле» (Отчет). Хайфа: Тель-Авивский университет . стр. 26, 31, 32, 43, 44, 46. Архивировано из оригинала (PDF) 16 апреля 2007 г. . Проверено 23 января 2018 г. Каждый « CISC » inst разбивается на один или несколько мопов … Каноническое представление src / dest (3 src , 2 dest )… например, pop eax становится esp1<-esp0+4, eax1<-[esp0] ID : Преобразование инструкций в операции . Буферы до 6 мопс Alloc и RAT … способны работать до 3 мопс за такт… Станция резервирования (RS)… Пул всех «еще не выполненных» мопсов (до 20)… По порядку Вывод из эксплуатации: … Вывод из эксплуатации до 3 мопа за такт… ООО «Кластер»… До 5 готовых к ресурсам мопов выбираются и отправляются за такт
  11. ^ Папворт, Дэвид Б.; Корпорация Intel (апрель 1996 г.). «Настройка микроархитектуры Pentium Pro» (PDF) . IEEE микро . п. 14. ISSN   0272-1732 . Архивировано из оригинала (PDF) 8 октября 2018 года . Проверено 8 октября 2018 г. Степпинг B0 включает в себя несколько ошибок микрокода и исправления проблем, обнаруженных в микросхеме A-step.
  12. ^ Перейти обратно: а б Каган, Майкл; Гохман, Симха; Оренстьен, Дорон; Лин, Деррик (1997). «Микроархитектура MMX процессоров Pentium с технологией MMX и микропроцессоров Pentium II» (PDF) . Intel Technology Journal (3-й квартал): 6, 7. Микроархитектура процессора Pentium II аналогична микроархитектуре микропроцессора Pentium Pro… модифицирована для преобразования новых инструкций MMX в операции, специфичные для процессора Pentium Pro (новые операции Single Instruction Multiple Data [SIMD] были добавлено для реализации нового функционала). … Для исправления проблемы и повторения операции был создан микрокод. Ассистент — это невидимое для клиента событие, которое очищает машину и позволяет микрокоду решать редкие, но трудно решаемые проблемы. Поскольку все инструкции MMX обнуляют TOS , помощнику необходимо записать TOS в ноль и перезапустить операцию. … Недопустимые коды операций, которые представляют собой пробелы в инструкциях в карте кодов операций инструкций MMX, определены для генерации вспомогательного вызова для одной операции. Этот вспомогательный вызов дает ROB команду очистить машину и вызывает поток вспомогательного микрокода, заставляющий процессор обрабатывать недопустимые ошибки кода операции.
  13. ^ Перейти обратно: а б с д Хинтон, Гленн; Сагер, Дэйв; Аптон, Майк; Боггс, Даррелл; Кармин, Дуг; Кайкер, Алан; Руссель, Патрис (2001). Чао, Линь (ред.). «Микроархитектура процессора Pentium 4» (PDF) . Журнал технологий Intel . Нет. Вопрос 1. Байты инструкций IA-32 затем декодируются в базовые операции, называемые uops (микрооперации)… расширенная форма кэша инструкций уровня 1 (L1), называемая кэшем трассировки выполнения… между логикой декодирования команд и ядром выполнения… для хранения уже расшифровал… упс. … инструкции декодируются один раз… затем используются повторно… имеет емкость до 12 КБ операций в секунду… скорость попадания аналогична обычному кэшу инструкций размером от 8 до 16 КБ. … упаковывает мопы в группы по шесть мопов на строку трассировки… ПЗУ микрокода… для сложных инструкций IA-32, таких как перемещение строки, а также для обработки ошибок и прерываний… Кэш трассировки переходит в ПЗУ микрокода, где затем выдаются мопы… После ПЗУ микрокода завершает секвенирование операций… интерфейс машины возобновляет выборку операций из кэша трассировки. … глубокая буферизация процессора Pentium 4 (126 мопс и 48 нагрузок в полете)
  14. ^ Туман, Агнер (25 мая 2020 г.). «Микроархитектура процессоров Intel, AMD и VIA» (PDF) (Руководство по оптимизации для программистов-сборщиков и производителей компиляторов). Технический университет Дании. п. 49. … Если µop имеет непосредственный 32-битный операнд вне ±2 15 интервал, так что его нельзя представить в виде 16-битного целого числа со знаком, то он будет использовать две записи кэша трассировки, если только он не сможет занять место для хранения у соседнего микроопа. … Микрооператор, нуждающийся в дополнительном пространстве для хранения, может одолжить 16 бит дополнительного пространства для хранения у соседнего микроопа, которому не требуется собственное пространство для данных.
  15. ^ Бентли, Боб; Грей, Рэнд (2001). Чао, Линь (ред.). «Проверка процессора Intel® Pentium® 4» (PDF) . Журнал технологий Intel (1 квартал): 29–26. Обсуждение ошибок
  16. ^ Перейти обратно: а б Де Гелас, Йохан (1 мая 2006 г.). «Intel Core против архитектуры AMD K8» . АнандТех . п. 3 . Проверено 23 января 2018 г. Базовая архитектура оснащена четырьмя декодерами x86, тремя простыми декодерами и одним сложным декодером... для преобразования инструкций x86 переменной длины от 1 до 15 байт в... RISC-подобные инструкции фиксированной длины (так называемые микрооперации). … общие инструкции x86 преобразуются в одну микрооперацию … сложный декодер отвечает за инструкции, которые производят до 4 микроопераций. … действительно длинные и сложные инструкции x86 обрабатываются секвенсором микрокода. … слияние макроопераций … инструкция сравнения x86 ( CMP) сливается со скачком ( JNE TARG).
  17. ^ Ким, Тонгын; Ши-вэй Ляо, Стив; Ван, Перри Х.; дель Кувилло, Хуан; Тянь, Синьминь; Цзоу, Сян; Ван, Хун; Юнг, Дональд; Гиркар, Милинд; Шен, Джон П. (11 января 2004 г.). «Физические эксперименты с предварительной выборкой вспомогательных потоков на гиперпоточных процессорах Intel» (PDF) . стр. 4, 5 . Проверено 24 января 2018 г. Кэш трассировки L1: 12 000 микроопераций, 8-канальный набор ассоциативных операций, 6 микроопераций на строку… Общий: кэш трассировки,… Декодирование инструкций IA-32 , ПЗУ микрокода, Uop ,… Разделенная: очередь Uop логика вывода
  18. ^ Перейти обратно: а б с 8. Функция обновления BIOS процессора Pentium Pro (PDF) (отчет). 2.0. Интел. 12 января 1996 г. с. 45 . Проверено 3 ноября 2020 г. . Процедура аутентификации основана на расшифровке, предоставляемой процессором, для проверки обновления из потенциально враждебных источников.
  19. ^ Стиллер, Андреас; Пол, Матиас Р. (12 мая 1996 г.). «Процессор шепчет» . c't – журнал по компьютерным технологиям . Тенденции и новости / текущие - Процессоры (на немецком языке). Том 1996, № 6. Verlag Heinz Heise GmbH & Co KG . п. 20. ISSN   0724-8679 . Архивировано из оригинала 28 августа 2017 г. Проверено 28 августа 2017 г.
  20. ^ Мюллер, Скотт; Закер, Крейг (сентябрь 1998 г.). Минатель, Джим; Байус, Джилл; Куген, Рик (ред.). Модернизация и ремонт компьютеров (PDF) (изд. К десятому юбилею). Издательство Que . п. 79. ИСБН  0-7897-1636-4 . Проверено 1 октября 2018 г. Степпинг процессора (версии) и версии обновления микрокода, поддерживаемые файлом базы данных обновлений PEP6.PDB… С помощью утилиты обновления процессора (CHECKUP3.EXE)… можно легко проверить… правильность обновления микрокода
  21. ^ Перейти обратно: а б с д и Чен, Даминг Доминик; Ан, Гейл-Джун (11 декабря 2014 г.). «Анализ безопасности микрокода процессора x86» (PDF) . Университет штата Аризона . стр. 1, 5, 7 . Проверено 23 января 2018 г. привилегии супервизора (ноль кольца) необходимы для обновления микрокода процессора… С 1970-х годов производители процессоров декодировали x86… в последовательность… (RISC) микроопераций (uops)… представили записываемую память патчей, чтобы обеспечить механизм обновления для реализации возможности динамической отладки и исправления ошибок процессора, особенно после печально известной ошибки Pentium FDIV 1994 года. … Микроархитектура P6 (Pentium Pro) в 1995,… микроархитектура K7 в 1999 году… с симметричной многопроцессорной обработкой (SMP)… должна выполняться синхронно на каждом логическом процессоре… патчить ОЗУ в дополнение к MROM … до 60 микроинструкций, с патчами, реализуемыми парами регистров соответствия и назначения. … блок размером 520 байт, содержащий 2048-битный модуль RSA, который кажется постоянным в каждом семействе процессоров. За ним следует четырехбайтовый показатель степени RSA с фиксированным значением 11h.
  22. ^ Шенли, Т. (1998). Системная архитектура Pentium Pro и Pentium II . Аддисон-Уэсли Профессионал. п. 435. ИСБН  9780201309737 .
  23. ^ Вулф, Александр (30 июня 1997 г.). «Intel готовится к устранению ошибок в процессорах Pentium» . ЭЭ Таймс . № 960. Архивировано из оригинала 13 ноября 1999 г. Проверено 3 октября 2018 г. - через Techweb . непонятное название «Функция обновления BIOS». … «Каждое обновление BIOS предназначено для определенного шага процессора», … блок данных напрямую —… после расшифровки — отображается в сам микрокод.
  24. ^ Вулф, Александр (30 июня 1997 г.). «Дыра в функции устранения ошибок Intel» . ЭЭ Таймс . Санта-Клара. Архивировано из оригинала 9 марта 2003 г. Аджай Малхортра, менеджер по техническому маркетингу, работающий в группе микропроцессоров Intel. «Мало того, что блок данных, содержащий исправление микрокода, зашифрован, но как только процессор проверит заголовок обновления BIOS, в процессоре должно произойти два уровня шифрования, прежде чем он успешно загрузит обновление». … строго охраняемая тайна. «Документации нет», — сказал Фрэнк Биннс, архитектор группы микропроцессоров Intel. «Это не значит, что вы можете получить «Красную книгу» Intel с записанными этими вещами. На самом деле это в головах менее 10 человек во всей Intel».
  25. ^ Перейти обратно: а б с «Подробности о режиме Intel Probe» . Хардис . Проверено 23 января 2018 г. излучать пакет через BPM при выполнении специальных инструкций... Чтобы включить расширенную трассировку выполнения, необходимо применять специальные исправления микрокода... Только для Pentium 4 существует второй тип... называемый расширенной трассировкой выполнения микрокода... Шина регистров управления, в свою очередь, обеспечивает доступ к внутренним массивам и функциям процессора, таким как доступ к LLC и микрокоду / Virtual Fuse PROM. … который находится на корпусе ЦП, но не внутри кремниевого кристалла ЦП. Это PROM также содержит микрокод, который загружается ЦП во время холодной загрузки. … точка останова на 48-битном адресе микрокода … доступ к которой осуществляется с помощью TAP команд BRKPTCTLA и BRKPTCTLB .
  26. ^ Перейти обратно: а б Элкинс, Дэвид С. (зима 1990 г.). «NEC против Intel: Руководство по использованию процедур «чистой комнаты» в качестве доказательства» . Компьютерный/Юридический журнал . 10 (4): 453. Использование NEC своих процедур «чистой комнаты » в качестве доказательства на суде… Судья Грей определил микрокод… в соответствии с определением «компьютерной программы», данным в Законе об авторских правах… Микрокод Intel защищен авторским правом. … Микрокод Intel не содержал необходимого уведомления об авторских правах. … авторские права были утрачены. … У Intel не осталось оснований для претензий о копировании
  27. ^ Хинкли, Роберт К. (январь 1987 г.). «NEC против Intel: будет ли аппаратное обеспечение затянуто в черную дыру редакторов авторских прав » . Юридический журнал высоких технологий Санта-Клары . 3 (1). Приложение: Форматы микрокода; ; Формат 8086/8088 Формат V20 /V30
  28. ^ Леонг, Кэти Чин (28 марта 1988 г.). «Свидетель разведки отказывается от своей истории» . Компьютерный мир . Том. 22, нет. 13. Сан-Хосе. С. 83, 84. ISSN   0010-4841 . Проверено 2 октября 2018 г.
  29. ^ «Микропроцессор Intel386 DX, 32-битный микропроцессор CHMOS со встроенным управлением памятью» (PDF) . Декабрь 1995 г. Архивировано из оригинала 3 сентября 2004 г. Самотестирование проверяет работу всех управляющих ПЗУ… Регистр EAX будет содержать подпись 00000000h, указывающую, что Intel386 DX прошел самотестирование микрокода и основного PLA. содержимого {{cite web}}: CS1 maint: неподходящий URL ( ссылка )
  30. ^ «5.1 Исчерпывающее испытание Intel 80386» (PDF) . Встроенное самотестирование (BIST) для встраиваемых систем . Тестирование встроенной системы. ИИТ Харагпур : 21. 7 октября 2006 г. Проверено 6 октября 2018 г. Для ПЗУ шаблоны генерируются счетчиком микропрограмм, который является частью нормальной логики.
  31. ^ Перейти обратно: а б Гелсингер, Патрик ; лиенгар, Сундар; Краускопф, Йозеф; Надир, Джеймс; Интел (1999). Компьютерное проектирование и встроенная функция самотестирования процессора i486™ (PDF) . 1989 Международная конференция IEEE по компьютерному дизайну: СБИС в компьютерах и процессорах. IEEE. стр. 200–201.
  32. ^ Перейти обратно: а б «Решение суда против AMD вызывает некоторую обеспокоенность» . Инфомир . 17 октября 1994 г. с. 5 . Проверено 24 января 2018 г. В решении федерального окружного суда Сан-Хосе, штат Калифорния, говорится, что AMD не имеет права использовать код внутрисхемной эмуляции (ICE) Intel в микропроцессорах AMD. Этот код присутствует на всех процессорах AMD 486, но используется только в процессорах 486-DXL и 486-DXLV с низким энергопотреблением. … AMD начала переделывать всю линейку процессоров 486, чтобы устранить этот код.
  33. ^ Ву, Дэвид М.; Лин, Майк; Редди, Мадукар; Джабер, Талал; Саббаварапу, Анил; Тэтчер, Ларри; Корпорация Intel (2004 г.). «Оптимизированная стратегия создания ДПФ и тестовых таблиц для высокопроизводительного микропроцессора Intel» (PDF) . стр. 38, 43, 44. Тестирование прямого доступа (DAT) для доступа к массиву и диагностики, а также программируемый режим тестирования слабой записи (PWWTM) для проверки стабильности ячеек памяти для сокращения времени тестирования. … Стратегия тестирования массива DFT заключается в использовании PBIST (программируемое встроенное самотестирование) для тестирования кэша второго уровня и использовании DAT для тестирования остальных массивов… PBIST доступен через контроллер JTAG TAP. … Режим DAT в PX, как показано на рисунке 4 … PX имеет больше массивов (>110) … тестовое покрытие массива PX составляет 99,3% – самый высокий показатель в семействе Pentium 4
  34. ^ Команда uCode Research (25 мая 2020 г.). «чип-красная-таблетка/crbus_scripts» . Гитхаб . Проверено 26 мая 2020 г.
  35. ^ Positive Research (21 июля 2020 г.), ptresearch/IntelTXE-PoC , получено 25 июля 2020 г.
  36. ^ Ермолов, Марк [@_markel___] (19 мая 2020 г.). «Используя функцию DFT локального теста прямого доступа (LDAT) процессора Intel Atom, мы сбросили ПЗУ секвенатора микрокода. Кроме того, мы извлекли то, что, по нашему мнению, является IROM (немедленно для uops), и даже сумели изменить ОЗУ MS Patch и регистры Match/Patch. « ( Твит ) – через Твиттер .
  37. ^ Босх, Питер (22 мая 2020 г.). «Заметки Intel LDAT» . Проверено 26 мая 2020 г. ПДАТ CR: 0x6A0; Выбор массива: 0–4

Дальнейшее чтение

[ редактировать ]
  • патент США 5404473 , Папворт, Дэвид Б.; Феттерман, Майкл А. и Глю, Эндрю Ф. и др., «Устройство и метод обработки строковых операций в конвейерном процессоре», опубликовано 4 апреля 1995 г., передано Intel   : «Первые Cuops в операции качания REP загружают Счетчик циклов MS с количеством итераций, оставшихся после выполнения развернутых итераций… небольшое количество итераций (например, семь) отправляется в течение времени, необходимого счетчику циклов в MS. быть загружен. Этот развернутый код выполняется условно на основе значения (E)CX… оставшиеся три итерации превращаются в NOPS
  • патент США 5559974 , Боггс, Даррелл Д.; Браун, Гэри Л. и Хэнкок, Майкл М. и др., «Декодер с независимой загрузкой регистров микропсевдонимов и макропсевдонимов, доступных одновременно с помощью одной микрооперации», опубликовано 24 сентября 1996 г., передано Intel.  
  • патент США 5566298 , Боггс, Даррелл Д.; Браун, Гэри Л. и Хэнкок, Майкл М. и др., «Метод восстановления состояния во время помощи и перезапуска в декодере, имеющем механизм псевдонимов», опубликовано 15 октября 1996 г., передано Intel   «… управление возвращается к Micro - Блок последовательности операций (MS) для дальнейшего исправления ошибок. Управляющие микрооперации (Cuops). Чтобы упростить перезапуск, Cuops возникает из макрокоманды, вызывающей ошибку, предоставляемой трансляцией. программируемые логические массивы (XLAT PLA) загружаются в регистры Cuop, при этом их действительные биты не установлены».
  • Патент США 5600806 , Браун, Гэри Л. и Паркер, Дональд Д., «Метод и устройство для выравнивания границы инструкций в макроинструкциях переменной длины с буфером команд», опубликован 4 февраля 1997 г., передан Intel   «ADD, XOR, SUB, AND и OR, которые реализованы с помощью одного общего Cuop. Другая группа инструкций, представленная только одним Cuop, включает ADC и SBB.
  • патент США 5630083 , Карабин Адриана Л.; Браун, Гэри Л. и Паркер, Дональд Д., «Декодер для параллельного декодирования нескольких инструкций», опубликовано 1 марта 2013 г., передано Intel.  
  • патент США 6055656 , Уилсон-младший, Джеймс А.; Миллер, Энтони К. и Родхамель, Майкл В. и др., «Управление доступом к шине регистров через стандартизированный порт тестового доступа», опубликовано 25 апреля 2000 г., передано Intel.  
  • Патент США 20030196096 , Саттон, Джеймс А., «Аутентификация по патчу микрокода», опубликован 16 октября 2003 г.  
  • Патент США 5948097 , Глю, Эндрю и Роджерс, Скотт Дион, «Метод и устройство для изменения уровней привилегий в компьютерной системе без использования шлюза вызова», опубликован 7 сентября 1999 г., передан Intel   «SYSENTER и SYSEXIT представляют собой сборочные системы. инструкции языка, которые могут выполняться на процессоре архитектуры Intel, таком как процессор Pentium Pro… микрооперация считается готовой, когда ее исходные поля заполнены соответствующие данные… блок декодирования команд содержит одну или несколько программируемых логических матриц (PLA) трансляции (XLAT), которые декодируют каждую инструкцию в одну или несколько микроопераций… Инструкции SYSENTER и SYSEXIT декодируются в микрооперации, которые выполняют показанные шаги. на фиг. 5 и 6 соответственно».
  • «Интерфейс обновления микрокода sysctl» ( ucode.c водитель) . ХНУ . Проверено 24 января 2018 г. #define IA32_BIOS_UPDT_TRIG (0x79) /* microcode update trigger MSR */
  • Сиварам, АТ; Фан, Дэниел; Иин, А. (10 октября 2002 г.). «Эффективное тестирование встроенной памяти с помощью APG». Слушания. Международная испытательная конференция . Том. 1. Балтимор, Мэриленд: IEEE. стр. 47–54. дои : 10.1109/TEST.2002.1041744 . ISBN  0-7803-7542-4 . ISSN   1089-3539 . S2CID   19579807 .
  • Босх, Питер (01 октября 2020 г.). «Под капотом процессора: реверс-инжиниринг микрокода P6» . Ютуб . Нидерланды . Проверено 1 ноября 2020 г.
[ редактировать ]
  • uCodeDisasm — дизассемблер микрокода Intel на Python (из CRBUS), имена операций
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 6dd046ebf10999b00a8409e0972885ec__1715787000
URL1:https://arc.ask3.ru/arc/aa/6d/ec/6dd046ebf10999b00a8409e0972885ec.html
Заголовок, (Title) документа по адресу, URL1:
Intel microcode - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)