Микрокод Intel - Intel Microcode

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

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

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

Микрооперации

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

Микрооперации имеют согласованный формат с тремя исходными входами и двумя выходами назначения.[8] Процессор выполняет зарегистрировать переименование чтобы сопоставить эти входы с реальными зарегистрировать файл (СБР) до и после их исполнения.[8] Внеочередное исполнение используется, поэтому микрооперации и инструкции, которые они представляют, могут не появляться в одном и том же порядке.

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

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

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

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

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

Возможность обновления

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

Intel распространила программу под названием BUP_UTIL.EXE, переименован CHECKUP3.EXE что может быть запущено под ДОС. Коллекции нескольких обновлений микрокода были объединены вместе и пронумерованы с расширением. .PDB, Такие как PEP6.PDB.[17]:79

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

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

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

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

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

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

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

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

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

Обновления микрокода для Intel Atom, Nehalem и Песчаный Мост дополнительно содержать дополнительный 520-байтовый заголовок, содержащий 2048-битный ЮАР модуль с показателем 17 десятичной.[18]:7,8

Наблюдаемая длина блока данных микрокода Intel (в байтах)[18]:16
МикроархитектураПримеры процессоровПоставляемая длинаФункциональная длинаПодозреваемая кодировка
P6Pentium Pro2000864; 872; 944; 196864-битный блочный шифр
ОсновнойPIII… Ядро 240483096
NetburstP4, Pentium D, Celeron2000–71202000 + N * 1024связанный блочный шифр
Атом, Нехалем, Песчаный МостCore i3 / i5 / i7976–16336976 + N * 1024; 5120Подпись AES + RSA

Отладка

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

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

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

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

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

Тестирование прямого доступа (DAT) включено в процессоры Intel как часть дизайн для тестирования (DFT) и Design for Debug (DFD) позволяют полностью тестировать отдельные ЦП перед продажей.[30]

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

  1. ПЗУ: триады микрокода
  2. ROM: Последовательные слова
  3. RAM: Последовательные слова (обновляется)
  4. RAM: пары Match / Patch (обновляется)
  5. RAM: триады микрокода (обновляемая)

Рекомендации

  1. ^ а б c d е ж грамм час я j k л м п о Гвеннап, Линли (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-байтовый заголовок, который включает код даты, ID процессора (который включает ступенчатый уровень ) целевого процессора и контрольную сумму - и 2000 байтов данных, которые должны быть загружены процессором. … Контрольная сумма… не используется ЦП. … 2000 байтов данных зашифрованы способом, который, по утверждению Intel, будет чрезвычайно сложно взломать. Байты делятся на блоки различной длины, каждый из которых кодируется по-разному. … Обычно намного меньше 2000 байт, оставшиеся данные представляют собой случайный шум, предназначенный для того, чтобы сбить с толку любого, кто пытается взломать шифрование. … Intel не публиковала никакой информации о формате своего микрокода,… он специально разработан таким образом, чтобы его было трудно понять. Лишь небольшая часть сотрудников Intel знает форматы микрокода P6.
  2. ^ а б c Йео Энг Хонг; Лим Сеонг Леонг; Вонг Ик Чунг; Лок Чхун Хоу; Махмуд Аднан (20 апреля 1998 г.). Чао, Линь (ред.). «Обзор расширенных методов анализа отказов микропроцессоров Pentium и Pentium Pro» (PDF). Intel Technology Journal (Q2). Микропроцессор Pentium Pro ... Микропатчинг DFT особенность. ... состоит из двух ключевых элементов: ОЗУ исправления микрокода и нескольких пар регистров сопоставления и назначения. ... Указатель инструкции микрокода (UIP) совпадает с содержимым регистра соответствия, UIP будет перезагружен с новым адресом из регистра назначения. ... UIP подпрограмму сброса можно установить в регистре Match ... тем самым полностью обойдя подпрограмму сброса.
  3. ^ Кубятович, Джон (3 мая 2004 г.). «Динамическое планирование в P6 (Pentium Pro, II, III)» (PDF). Дизайн с низким энергопотреблением, передовые процессоры Intel. CS152 Компьютерная архитектура и инженерия (Лекция 25). Сложные инструкции 80x86 выполняются обычной микропрограммой (8K x 72 бита), который выдает длинные последовательности микроопераций
  4. ^ а б Гвеннап, Линли (16 февраля 1995 г.). «Intel P6 использует суперскалярный дизайн с развязкой» (PDF). Отчет микропроцессора. 9 (2). Ресурсы MicroDesign. С. 1–7. S2CID  14414612. Мопы P6 имеют фиксированную длину 118 бит и используют обычную структуру для кодирования операции, двух источников и пункта назначения. Поля источника и назначения достаточно широки, чтобы содержать 32-битный операнд.
  5. ^ а б Асанович, Крсте (2002). "P6 упс" (PDF). Эволюция микропроцессора: от 4004 до Pentium Pro (Весна): 14. Получено 23 января 2018. Каждый uop имеет фиксированный формат около 118 бит… - код операции, два источника и пункт назначения… - поля источников и пункта назначения имеют ширину 32 бита для непосредственного хранения или операнда.
  6. ^ Колвелл, Роберт П .; Steck, Randy L .; Корпорация Intel (12 апреля 1995 г.). "Процессор BiCMOS 0,6 мкм с динамическим исполнением" (PDF): 7. Получено 2020-05-27. Микрооперации представляют собой элементарную единицу работы в процессоре P6 и состоят из кода операции, двух операндов источника и одного операнда назначения. Эти микрооперации имеют фиксированную длину и являются более общими, чем микрокод процессора Pentium (R), поскольку их нужно планировать. Цитировать журнал требует | журнал = (помощь)
  7. ^ 16.6.1. Коды простых ошибок (PDF). Архитектура проверки машины (Отчет). Руководство разработчика семейства Pentium® Pro. 3: Руководство разработчика операционной системы. 3 января 1996 г. с. 401. Архивировано 6 сентября 2001 года.. Получено 1 октября 2018. уникальные коды указывают на глобальную информацию об ошибке… Ошибка четности ПЗУ микрокодаCS1 maint: неподходящий URL (связь)
  8. ^ а б Ронен, Ронни; 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)… Например, поп Eax становится esp1 <-esp0 + 4, eax1 <- [esp0]Я БЫ: Преобразовать инструкции в упс. Буферы до 6 упсРаспределить & КРЫСА … Может работать до 3 упс за часы… Станция резервирования (RS)… Пул всех «еще не выполненных» упс (до 20)… В порядке выхода на пенсию:… Уходит до 3 упс за часы… ООО Кластер… До 5 готовых к ресурсам упс выбираются и отправляются по часам
  9. ^ Папуорт, Дэвид Б .; Корпорация Intel (апрель 1996 г.). «Настройка микроархитектуры Pentium Pro» (PDF). IEEE Micro. п. 14. ISSN  0272-1732. Получено 8 октября 2018. Степпинг B0 включал несколько ошибок микрокода и исправления скоростного пути для проблем, обнаруженных на кристалле A-step.
  10. ^ а б Каган, Михаил; Гохман, Симха; Оренстиен, Дорон; Лин, Деррик (1997). «Микроархитектура MMX процессоров Pentium с технологией MMX и микропроцессоров Pentium II» (PDF). Intel Technology Journal (Q3): 6, 7. Микроархитектура процессора Pentium II аналогична микропроцессору Pentium Pro… модифицирована для преобразования нового MMX инструкции для конкретных процессоров Pentium Pro (для реализации новой функциональности были добавлены новые операторы Single Instruction Multiple Data [SIMD]). … Был создан помощник по микрокоду, чтобы исправить проблему и повторить операцию. Ассист - это невидимое для клиента событие, которое промывает машину и позволяет микрокоду обрабатывать редкие, но трудные для решения проблемы. Поскольку все инструкции MMX обнуляют TOS, помощнику необходимо написать TOS до нуля и перезапустите операцию. … Недопустимые коды операций, которые являются пропусками инструкций в карте кодов операций MMX, определены для генерации однократного вспомогательного вызова. Этот вспомогательный вызов дает команду ROB промыть машину и вызывает поток вспомогательного микрокода, который заставляет процессор обрабатывать недопустимые ошибки кода операции.
  11. ^ а б c d Хинтон, Гленн; Сагер, Дэйв; Аптон, Майк; Боггс, Даррелл; Кармин, Дуг; Кайкер, Алан; Руссель, Патрис (2001). Чао, Линь (ред.). «Микроархитектура процессора Pentium 4» (PDF). Intel Technology Journal (Q1). Затем байты инструкций IA-32 декодируются в базовые операции, называемые uops (микрооперации) ... расширенная форма кеша инструкций уровня 1 (L1), называемая кешем трассировки выполнения ... между логикой декодирования инструкций и ядром выполнения ... для хранения уже расшифровано… упс. … Инструкции декодируются один раз… затем используются повторно оттуда… имеет емкость до 12 Кбайт… такая же частота совпадений, как у обычного кэша инструкций от 8 Кбайт до 16 Кбайт. … Упаковывает мопы в группы по шесть мопов на строку трассировки… ПЗУ микрокода… для сложных инструкций IA-32, таких как перемещение строки, а также для обработки ошибок и прерываний… Кэш трассировки переходит в ПЗУ микрокода, которое затем выдает мопы… После ПЗУ микрокода завершает последовательность операций ... внешний интерфейс машины возобновляет выборку ошибок из кэша трассировки. … Глубокая буферизация процессора Pentium 4 (126 мопов и 48 нагрузок в полете)
  12. ^ Туман, Агнер (25.05.2020). «Микроархитектура процессоров Intel, AMD и VIA» (PDF) (Руководство по оптимизации для программистов на ассемблере и разработчиков компиляторов). Технический университет Дании: 49. … Если у μop есть непосредственный 32-битный операнд за пределами ± 215 интервал, так что он не может быть представлен как 16-битное целое число со знаком, тогда он будет использовать две записи кэша трассировки, если он не сможет занять место для хранения у ближайшего μop. … Микропроцессор, которому требуется дополнительное пространство для хранения, может занять 16 бит дополнительного пространства для хранения у ближайшего микропроцессора, которому не требуется собственное пространство для данных. Цитировать журнал требует | журнал = (помощь)
  13. ^ Бентли, Боб; Грей, Рэнд (2001). Чао, Линь (ред.). «Проверка процессора Intel® Pentium® 4» (PDF). Intel Technology Journal (Q1): 29–26. Обсуждение ошибки
  14. ^ а б Де Гелас, Йохан (1 мая 2006 г.). «Intel Core против архитектуры AMD K8». АнандТех. п. 3. Получено 23 января 2018. Базовая архитектура оснащена четырьмя декодерами x86, 3 простыми декодерами и 1 сложным декодером ... для преобразования 1-15-байтовых инструкций x86 переменной длины в ... инструкции типа RISC фиксированной длины (называемые микрооперациями). … Обычные инструкции x86 переводятся в одну микрооперацию… сложный декодер отвечает за инструкции, которые производят до 4 микроопераций. … Действительно длинные и сложные инструкции x86 обрабатываются секвенсором микрокода. … Слияние макросов… инструкция сравнения x86 (CMP) сливается с прыжком (JNE TARG).
  15. ^ Ким, Донкын; Ши-вэй Ляо, Стив; Ван, Перри Х .; дель Кувильо, Хуан; Тянь, Синьминь; Цзоу, Сян; Ван, Хун; Йунг, Дональд; Гиркар, Милинд; Шен, Джон П. (11 января 2004 г.). «Физические эксперименты с предварительной выборкой вспомогательных потоков на процессорах Intel с поддержкой Hyper-Threading» (PDF): 4, 5. Получено 24 января 2018. Кэш трассировки L1: 12K микроопераций, 8-позиционный ассоциативный набор, 6 микроопераций на строку… Общий: Кэш трассировки,… IA-32 инструкция декодирования, микрокод ПЗУ, Уп логика вывода на пенсию,… Разделено: очередь Uop Цитировать журнал требует | журнал = (помощь)
  16. ^ а б c 8.Функция обновления BIOS процессора Pentium Pro (PDF) (Отчет). 2.0. Intel. 12 января 1996 г. с. 45. Получено 3 ноября 2020. Процедура аутентификации полагается на дешифрование, предоставляемое процессором для проверки обновления из потенциально враждебных источников.
  17. ^ Мюллер, Скотт; Закер, Крейг (сентябрь 1998 г.). Минатель, Джим; Бюс, Джилл; Куген, Рик (ред.). Обновление и ремонт ПК (PDF) (Десятая годовщина изд.). Que Publishing. п. 79. ISBN  0-7897-1636-4. Получено 1 октября 2018. Степпинги процессора (версии) и версии обновления микрокода, поддерживаемые файлом базы данных обновления PEP6.PDB… Используя утилиту обновления процессора (CHECKUP3.EXE),… можно легко проверить… правильность обновления микрокода
  18. ^ а б c d е Чен, Дамин Доминик; Ан, Гейл-Джун (11 декабря 2014 г.). «Анализ безопасности микрокода процессора x86» (PDF). Государственный университет Аризоны: 1, 5, 7. Получено 23 января 2018. привилегии супервизора (нулевое кольцо) требуются для обновления микрокода процессора ... С 1970-х годов производители процессоров декодировали x86 ... в последовательность ... (RISC) микроопераций (uops) ... представили записываемую память исправлений, чтобы обеспечить механизм обновления для реализации возможности динамической отладки и исправление ошибок процессора, особенно после печально известного Ошибка Pentium FDIV 1994 г.… Микроархитектура P6 (Pentium Pro) 1995 г.,… Микроархитектура К7 в 1999 г.… с симметричная многопроцессорная обработка (SMP) ... должно выполняться синхронно на каждом логическом процессоре ... исправлять RAM в дополнение к MROM … До 60 микрокоманд с исправлением, реализуемым парами регистров совпадения и назначения. … Блок размером 520 байт, содержащий 2048-битный модуль RSA, который кажется постоянным в каждом семействе процессоров. За ним следует четырехбайтовая экспонента RSA с фиксированным значением 11h. Цитировать журнал требует | журнал = (помощь)
  19. ^ Шенли, Т. (1998). Загрузчик обновлений BIOS. Системная архитектура Pentium Pro и Pentium II. Эддисон-Уэсли Профессионал. п. 435. ISBN  9780201309737.
  20. ^ Вулф, Александр (30 июня 1997 г.). «Intel готовит план по устранению ошибок в процессорах Pentium». EE Times. № 960. Архивировано с оригинал на 1999-11-13. Получено 3 октября 2018 - через Techweb. непонятное прозвище «Функция обновления BIOS». … «Каждое обновление BIOS адаптируется к конкретному шагу процессора [a]»… блок данных отображается непосредственно -… после расшифровки - на сам микрокод.
  21. ^ Вулф, Александр (30 июня 1997 г.). «Дыра в функции устранения ошибок Intel». EE Times. Санта-Клара. Архивировано из оригинал на 2003-03-09. Аджай Малхортра, технический менеджер по маркетингу, работающий в группе микропроцессоров Intel. «Мало того, что блок данных, содержащий патч микрокода, зашифрован, но как только процессор проверяет заголовок обновления BIOS, в процессоре должно быть два уровня шифрования, прежде чем он успешно загрузит обновление». … Тщательно охраняемый секрет. «Документации нет, - сказал Фрэнк Биннс, архитектор из группы микропроцессоров Intel. «Это не значит, что вы можете получить« Красную книгу »Intel с записью этого материала. На самом деле это в головах менее 10 человек во всем Intel».
  22. ^ а б c «Подробная информация о режиме Intel Probe». Hardice. Получено 23 января 2018. выпустить пакет по BPM когда выполняются специальные инструкции ... Чтобы включить расширенную трассировку выполнения, необходимо применить специальные исправления микрокода ... Только для Pentium 4 существует второй тип ... называемый расширенной трассировкой выполнения микрокода ... Шина регистров управления, в свою очередь, позволяет получить доступ к внутренним массивам и функциям на процессор, например, доступ к ООО и микрокод /Виртуальный предохранитель ВЫПУСКНОЙ ВЕЧЕР. … Который находится на корпусе ЦП, но не внутри кремниевого кристалла ЦП. Этот PROM также содержит микрокод, который ЦП загружает во время холодной загрузки. … Точка останова на 48-битном адресе микрокода… к которой обращается КРАН команды BRKPTCTLA и BRKPTCTLB.
  23. ^ а б Элкинс, Дэвид С. (зима 1990 г.). "NEC против Intel: Руководство по использованию процедур" чистой комнаты "в качестве доказательства". Компьютер / Юридический журнал. 10 (4): 453. NEC использует свои процедуры чистой комнаты в качестве доказательства ... Судья Грей определенный микрокод… в рамках определения «компьютерной программы» в Законе об авторском праве… микрокод Intel охраняется авторским правом. … Микрокод Intel не содержал обязательного уведомления об авторских правах. … Авторские права были утрачены. … Intel осталась без оснований для своих требований о копировании
  24. ^ Хинкли, Роберт С. (январь 1987 г.). "NEC против Intel: оборудование будет втянут в черную дыру редакторов авторских прав'" (Статья 2). Юридический журнал о высоких технологиях Санта-Клары. 3 (1). Приложение: Форматы микрокода; 8086 / Формат 8088; V20 / Формат V30
  25. ^ Леонг, Кэти Чин (28 марта 1988 г.). "Свидетель Intel отрекается от истории". Computerworld: еженедельник управления информационными системами. Vol. 22 нет. 13. Сан-Хосе. С. 83, 84. ISSN  0010-4841. Получено 2 октября 2018.
  26. ^ "Микропроцессор Intel386 DX 32-битный микропроцессор CHMOS с интегрированным управлением памятью" (PDF) (231630–011). Декабрь 1995. Архивировано 3 сентября 2004 года. Самотестирование проверяет работу всего управляющего ПЗУ ... Регистр EAX будет содержать подпись 00000000h, указывающую, что Intel386 DX прошел самотестирование микрокода и основных PLA содержание Цитировать журнал требует | журнал = (помощь)CS1 maint: неподходящий URL (связь)
  27. ^ «5.1 Исчерпывающий тест в Intel 80386» (PDF). Встроенное самотестирование (BIST) для встроенных систем. Тестирование встроенной системы. ИИТ Харагпур: 21. 7 октября 2006 г.. Получено 6 октября 2018. Для ПЗУ шаблоны генерируются счетчиком микропрограмм, который является частью нормальной логики.
  28. ^ а б Гелсингер, Патрик; ленгар, Сундар; Краускопф, Джозеф; Надир, Джеймс; Intel (1999). «Компьютерное проектирование и встроенная система самотестирования на процессоре i486 ™» (PDF). Компьютерный дизайн: СБИС в компьютерах и процессорах. IEEE: 200–201.
  29. ^ а б «Определенное беспокойство вызывает решение суда против AMD». InfoWorld. 17 октября 1994 г. с. 5. Получено 24 января 2018. В решении федерального окружного суда в Сан-Хосе, штат Калифорния, говорится, что AMD не имеет права использовать Intel внутрисхемная эмуляция (ICE) код в микропроцессорах AMD. Этот код присутствует на всех процессорах AMD 486, но используется только в процессорах 486-DXL и 486-DXLV с низким энергопотреблением. … AMD начала переработку всей своей линейки 486-х годов, чтобы исключить код.
  30. ^ Ву, Дэвид М .; Лин, Майк; Редди, Мадукар; Джабер, Талал; Саббаварапу, Анил; Тэтчер, Ларри; Корпорация Intel (2004 г.). «Оптимизированная стратегия генерации ДПФ и тестовых шаблонов для высокопроизводительного микропроцессора Intel» (PDF): 38, 43, 44. Тестирование с прямым доступом (DAT) для доступа к массиву и диагностики и режим программируемого теста на слабую запись (PWWTM) для тестирования стабильности ячеек памяти для сокращения времени тестирования. … Множество DFT Стратегия тестирования заключается в использовании PBIST (Programmable Built-In Self Test) для тестирования кэша второго уровня и использования DAT для тестирования оставшихся массивов… PBIST доступен через контроллер JTAG TAP. … Режим DAT в PX, как показано на рисунке 4… PX имеет больше массивов (> 110)… Покрытие PX тестированием массива составляет 99,3% - самый высокий показатель в семействе Pentium 4 Цитировать журнал требует | журнал = (помощь)
  31. ^ Команда, uCode Research (25 мая 2020 г.). "красная таблетка-чип / crbus_scripts". Получено 26 мая 2020.
  32. ^ Позитивное исследование (21.07.2020), ptresearch / IntelTXE-PoC, получено 2020-07-25
  33. ^ Ермолов, Марк [@_markel___] (19.05.2020). «Используя функцию DFT теста локального прямого доступа (LDAT) в процессоре Intel Atom, мы сбросили ПЗУ микрокода секвенсора. Кроме того, мы извлекли то, что мы думаем, что является IROM (Immediates for uops), и даже смогли изменить MS Patch RAM и регистры Match / Patch. " (Твитнуть) - через Twitter.
  34. ^ Босх, Питер (2020-05-22). «Примечания Intel LDAT». Получено 2020-05-26. PDAT CR: 0x6A0; Выбор массива: 0‒4

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

  • Патент США 5404473, Папуорт, Дэвид Б .; Майкл А. Феттерман и Эндрю Ф. Глю и др., «Аппарат и метод для обработки строковых операций в конвейерном процессоре», опубликовано 4 апреля 1995 г., назначено Intel  "первый Cuops в режиме поворота REP загружает РС Счетчик цикла с количеством итераций, оставшихся после выполнения развернутых итераций. … Небольшое количество итераций (например, семь) отправляется за время, необходимое для загрузки счетчика циклов в MS. Этот развернутый код выполняется условно на основе значения (E) CX… оставшиеся три итерации превращаются в NOPS."
  • Патент США 5559974, Boggs, Darrell D .; Гэри Л. Браун и Майкл М. Хэнкок и др., "Декодер, имеющий независимо загруженные регистры микро-псевдонима и макро-псевдонима, доступные одновременно с помощью одной микрооперации", опубликовано 24 сентября 1996 г., присвоено Intel 
  • Патент США 5566298, Boggs, Darrell D .; Гэри Л. Браун и Майкл М. Хэнкок и др., "Метод восстановления состояния во время помощи и перезапуска в декодере, имеющем механизм псевдонима", опубликовано 1996-10-15, назначено Intel  «… Управление возвращается к блоку Micro-Operation Sequence (MS), чтобы выполнить дальнейшую коррекцию ошибок. Управляющие микрооперации (Cuops). Для упрощения перезапуска Cuops, возникающие из вызывающей ошибку макрокоманды, предоставляемой матрицами программируемой логики преобразования ( XLAT PLA) загружаются в регистры Cuop без подтверждения их действительных битов ".
  • Патент США 5600806, Браун, Гэри Л. и Дональд Д. Паркер, "Метод и устройство для выравнивания границы инструкции в макрокомандах переменной длины с буфером инструкций", опубликовано 04.02.1997, назначено Intel  "ADD, XOR, SUB, AND и OR, которые реализованы с помощью одного универсального Cuop. Другая группа инструкций, представленная только одним Cuop включает АЦП и SBB
  • Патент США 5630083, Carbine, Adrian L .; Гэри Л. Браун и Дональд Д. Паркер, «Декодер для параллельного декодирования нескольких инструкций», опубликовано 01.03.2013, назначено Intel 
  • Патент США 6055656, Wilson, Jr., James A .; Энтони С. Миллер и Майкл В. Родехамел и др., "Управление доступом к шине регистров через стандартизованный тестовый порт доступа", опубликовано 25 апреля 2000 г., опубликовано 25 апреля 2000 г., назначено Intel 
  • Патент США 20030196096, Саттон, Джеймс А., «Аутентификация патча микрокода», опубликовано 16 октября 2003 г. 
  • Патент США 5948097, Глю, Эндрю и Скотт Дион Роджерс, «Метод и устройство для изменения уровней привилегий в компьютерной системе без использования шлюза вызова», опубликовано 7 сентября 1999 г., назначено Intel  «SYSENTER и SYSEXIT - это инструкции на языке ассемблера, которые могут выполняться на процессоре архитектуры Intel, таком как процессор Pentium Pro… микрооперация считается готовой, когда ее исходные поля были заполнены соответствующими данными… блок декодирования инструкций состоит из одного или более преобразованных (XLAT) программируемых логических массивов (PLA), которые декодируют каждую инструкцию в одну или несколько микроопераций ... Инструкции SYSENTER и SYSEXIT декодируются в микрооперации, которые выполняют шаги, показанные на фиг.5 и 6, соответственно . "
  • "Интерфейс средства обновления микрокода sysctl" (ucode.c Водитель). XNU. Получено 24 января 2018. #define IA32_BIOS_UPDT_TRIG (0x79) / * триггер обновления микрокода MSR * /
  • Sivaram, A.T .; Fan, Daniel; Йиин, А. (2002-10-10). Эффективное тестирование встроенной памяти с APG. 1. Балтимор, Мэриленд: IEEE. Дои:10.1109 / ТЕСТ.2002.1041744. ISBN  0-7803-7542-4. ISSN  1089-3539. S2CID  19579807.
  • Босх, Питер (2020-10-01). «Под капотом ЦП: обратная разработка микрокода P6». Нидерланды. Получено 2020-11-01. Цитировать журнал требует | журнал = (помощь)