Jump to content

Микрокод Intel

(Перенаправлено с микрокода 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. ^ Jump up to: а б с д и ж г час я дж к л м н тот Гвеннап, Линли (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. ^ Jump up to: а б с Йео Энг Хонг; Лим Сон Леонг; Вонг Йик Чунг; Лок Чун Хоу; Махмуд Аднан (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. ^ Jump up to: а б Гвеннап, Линли (16 февраля 1995 г.). «Intel P6 использует несвязанную суперскалярную конструкцию» (PDF) . Отчет микропроцессора . Том. 9, нет. 2. Ресурсы по микродизайну. стр. 1–7. S2CID   14414612 . Архивировано из оригинала (PDF) 8 октября 2018 года. Операции P6 имеют фиксированную длину 118 бит и используют регулярную структуру для кодирования операции, двух источников и пункта назначения. Поля источника и назначения достаточно широки, чтобы содержать 32-битный операнд.
  7. ^ Jump up to: а б Асанович, Крсте (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. ^ Jump up to: а б Ронен, Ронни; 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. ^ Jump up to: а б Каган, Майкл; Гохман, Симха; Оренстьен, Дорон; Лин, Деррик (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 команду очистить машину и вызывает поток вспомогательного микрокода, заставляющий процессор обрабатывать недопустимые ошибки кода операции.
  13. ^ Jump up to: а б с д Хинтон, Гленн; Сагер, Дэйв; Аптон, Майк; Боггс, Даррелл; Кармин, Дуг; Кайкер, Алан; Руссель, Патрис (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. ^ Jump up to: а б Де Гелас, Йохан (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. ^ Jump up to: а б с 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. ^ Jump up to: а б с д и Чен, Даминг Доминик; Ан, Гейл-Джун (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. ^ Jump up to: а б с «Подробности о режиме Intel Probe» . Хардис . Проверено 23 января 2018 г. излучать пакет через BPM при выполнении специальных инструкций... Чтобы включить расширенную трассировку выполнения, необходимо применять специальные исправления микрокода... Только для Pentium 4 существует второй тип... называемый расширенной трассировкой выполнения микрокода... Шина регистров управления, в свою очередь, обеспечивает доступ к внутренним массивам и функциям процессора, таким как доступ к LLC и микрокоду / Virtual Fuse PROM. … который находится на корпусе ЦП, но не внутри кремниевого кристалла ЦП. Это PROM также содержит микрокод, который ЦП загружает во время холодной загрузки. … точка останова на 48-битном адресе микрокода … доступ к которой осуществляется с помощью TAP команд BRKPTCTLA и BRKPTTCTLB .
  26. ^ Jump up to: а б Элкинс, Дэвид С. (зима 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. ^ Jump up to: а б Гелсингер, Патрик ; лиенгар, Сундар; Краускопф, Йозеф; Надир, Джеймс; Интел (1999). Компьютерное проектирование и встроенная функция самотестирования процессора i486™ (PDF) . 1989 Международная конференция IEEE по компьютерному дизайну: СБИС в компьютерах и процессорах. IEEE. стр. 200–201.
  32. ^ Jump up to: а б «Решение суда против 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), загружаются в блок. Регистры Куопа, действительные биты которых не подтверждены».
  • Патент США 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… микрооперация считается готовой, когда ее исходные поля заполнены соответствующими данными… блок декодирования команд содержит один или несколько программируемых трансляторов (XLAT) логические массивы (PLA), которые декодируют каждую инструкцию в одну или несколько микроопераций… Инструкции 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
Номер скриншота №: ab64d1388cc410d50c6f108f0cefcb39__1715787000
URL1:https://arc.ask3.ru/arc/aa/ab/39/ab64d1388cc410d50c6f108f0cefcb39.html
Заголовок, (Title) документа по адресу, URL1:
Intel microcode - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)