stringtranslate.com

микрокод Intel

Микрокод Intel — это микрокод , работающий внутри процессоров x86 , производимых Intel . Начиная с микроархитектуры P6 , представленной в середине 1990-х годов, программы микрокода могут быть исправлены операционной системой или прошивкой BIOS для обхода ошибок, обнаруженных в процессоре после выпуска. [1] Изначально Intel разрабатывала обновления микрокода для отладки процессора в рамках своей инициативы Design for Testing (DFT). [2]

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

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

Микрокод Pre-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 в микрокод тремя различными способами:

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

Обновление объекта

В середине 1990-х годов средство для поставки нового микрокода изначально называлось Pentium Pro BIOS Update Feature . [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 

Отладка

Специальный микрокод, предназначенный для отладки, может быть загружен для включения Extended Execution Trace, который затем выводит дополнительную информацию через выводы Breakpoint Monitor. [25] На Pentium 4 загрузка специального микрокода может предоставить доступ к режиму Microcode Extended Execution Trace. [25] При использовании порта JTAG Test Access Port (TAP) пара регистров Breakpoint Control позволяет выполнять остановку по адресам микрокода. [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 работает в течение 220 тактов для проверки различных массивов, включая ПЗУ микрокода, после чего управление передается микрокоду для дальнейшего самотестирования регистров и вычислительных блоков. [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 to USB-A 3.0 с возможностями отладки, без D+, D− и Vcc [35] ), использовался для чтения с порта локального теста прямого доступа (LDAT) процессора Intel Goldmont , и были считаны загруженные массивы микрокода и исправлений. [36] Эти массивы доступны только после того, как процессор переведен в определенный режим, и состоят из пяти массивов, доступ к которым осуществляется через смещение 0x6a0: [37]

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

Ссылки

  1. ^ abcdefghijklmno Гвеннап, Линли (15 сентября 1997 г.). «Микрокод P6 можно исправить» (PDF) . Отчет о микропроцессорах . Архивировано из оригинала (PDF) 21 декабря 2009 г. . Получено 23 января 2018 г. Компания Intel реализовала возможность исправления микрокода в своих процессорах P6 , включая Pentium Pro и Pentium II … позволяет изменять микрокод после изготовления процессора, исправляя ошибки, обнаруженные после его проектирования. … изначально предполагалось, что эта функция будет использоваться только для отладки, но после решения проблемы с ошибкой FDIV в Pentium … Intel решила сделать ее пригодной для использования в полевых условиях. … Микросхема P6 содержит полный набор микрокода во внутреннем ПЗУ … BIOS записывает адрес памяти в специальный регистр ЦП, чтобы запустить последовательность загрузки … Процессоры P6 содержат небольшую SRAM , которая содержит до 60 микроинструкций. Код исправления загружается в эту SRAM … также содержит набор регистров «соответствия», которые вызывают ловушку при обнаружении определенного адреса микрокода. (Это похоже на возможность « точки останова инструкции », используемую для отладки ассемблерного кода .) Эта ловушка, обработка которой занимает один цикл, направляет выполнение микрокода в ОЗУ исправления. … загруженный микрокод состоит из двух сегментов. … первый — это процедура инициализации, которая запускается немедленно … также инициализирует регистры соответствия, если необходимо. … второй сегмент содержит один или несколько патчей, которые остаются в ОЗУ исправления во время нормальной работы и доступны через ловушку регистра соответствия. … исходный микрокод хранится в ПЗУ, … регистры соответствия позволяют изменять работу микрокода. Таким образом, инструкция x86 , которая работает неправильно, может быть исправлена, если она реализована в микрокоде. … создается патч для замены раздела исходного микрокода, выполняя правильную операцию, а затем возвращаясь назад. … количество регистров соответствия, … более одного. … одиночная ошибка, … может потребовать нескольких исправлений, а некоторые ошибки слишком сложны для исправления … механизм может позволить исправить несколько ошибок, … функции процессора P6 могут быть отключены с помощью специального регистра … 2048-байтовый блок данных. Блок содержит 48-байтовый заголовок, который включает код даты, идентификатор ЦП (который включает уровень степпинга) целевого процессора и контрольная сумма — и 2000 байт данных, которые должны быть загружены процессором. … контрольная сумма … не используется ЦП. … 2000 байт данных зашифрованы таким образом, что, по утверждению Intel, их будет крайне сложно взломать. Байты делятся на блоки различной длины, каждый из которых кодируется по-разному. … обычно намного меньше 2000 байт, остальные данные представляют собой случайный шум, призванный сбить с толку любого, кто попытается взломать шифрование. … Intel не опубликовала никакой информации о формате своего микрокода, … намеренно разработан таким образом, чтобы его было трудно понять. Только небольшое количество сотрудников Intel знают форматы микрокода P6.
  2. ^ abc Yeoh Eng Hong; Lim Seong Leong; Wong Yik Choong; Lock Choon Hou; Mahmud Adnan (20 апреля 1998 г.). Chao, Lin (ред.). "Обзор передовых методов анализа сбоев для микропроцессоров Pentium и Pentium Pro" (PDF) . Intel Technology Journal (Q2). Микропроцессор Pentium Pro ... Функция микропатчинга DFT . ... состоит из двух ключевых элементов: ОЗУ микрокода и нескольких пар регистров соответствия и назначения. ... Указатель инструкции микрокода (UIP) совпадает с содержимым регистра соответствия, UIP будет перезагружен новым адресом из регистра назначения. ... UIP для подпрограммы сброса можно установить в регистре соответствия ... тем самым полностью обходя подпрограмму сброса.
  3. ^ Трамбулл, Патрисия В. (1994-10-07). Intel Corporation против 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". Intel . Архивировано из оригинала 1996-12-20.
  5. ^ Кубятович, Джон (3 мая 2004 г.). "Динамическое планирование в P6 (Pentium Pro, II, III)" (PDF) . Проектирование с низким энергопотреблением, усовершенствованные процессоры Intel . CS152 Архитектура и проектирование компьютеров (лекция 25). Сложные инструкции 80x86 выполняются обычной микропрограммой ( 8K x 72 бит), которая выдает длинные последовательности микроопераций
  6. ^ ab Gwennap, Linley (16 февраля 1995 г.). "Intel's P6 Uses Decoupled Superscalar Design" (PDF) . Microprocessor Report . Vol. 9, no. 2. MicroDesign Resources. pp. 1–7. S2CID  14414612. Архивировано из оригинала (PDF) 8 октября 2018 г. P6 uops имеют фиксированную длину 118 бит, используя обычную структуру для кодирования операции, два источника и назначение. Поля источника и назначения достаточно широки, чтобы содержать 32-битный операнд.
  7. ^ ab Asanovic, Krste (2002). "P6 uops" (PDF) . Эволюция микропроцессоров: от 4004 до Pentium Pro (Spring): 14 . Получено 23 января 2018 г. . Каждый uop имеет фиксированный формат около 118 бит … – код операции, два источника и назначение … – поля источников и назначения имеют ширину 32 бита для хранения немедленного или операнда
  8. ^ Colwell, Robert P.; Steck, Randy L.; Intel Corporation (1995-04-12). "0,6 мкм BiCMOS-процессор с динамическим выполнением" (PDF) . стр. 7 . Получено 2020-05-27 . Микрооперации являются атомарной единицей работы в процессоре P6 и состоят из кода операции, двух исходных и одного целевого операнда. Эти микрооперации имеют фиксированную длину и являются более общими, чем микрокод процессора Pentium(R), поскольку их необходимо планировать.
  9. ^ 16.6.1. Простые коды ошибок (PDF) . Архитектура проверки машины (отчет). Руководство разработчика семейства Pentium® Pro. Том 3: Руководство для разработчиков операционных систем. 3 января 1996 г. стр. 401. Архивировано из оригинала 6 сентября 2001 г. Получено 1 октября 2018 г. уникальные коды указывают на глобальную информацию об ошибке … Ошибка четности ПЗУ микрокода{{cite report}}: CS1 maint: неподходящий URL ( ссылка )
  10. ^ ab Ronen, Ronny; Intel Labs (18 января 2005 г.). Микрооперации (Uops) (PDF) . Процессор Pentium II/III «Компилятор на кристалле» (отчет). Хайфа: Тель-Авивский университет . стр. 26, 31, 32, 43, 44, 46. Архивировано из оригинала (PDF) 16 апреля 2007 г. Получено 23 января 2018 г. Каждый « CISC » inst разбит на один или несколько uops … Каноническое представление src / dest (3 src , 2 dest ) … например, становится ID : Преобразование инструкций в uops . Буферы до 6 uopsAlloc & RAT … возможность обработки до 3 uops за такт … Резервирование станции (RS) … Пул всех «еще не выполненных» uops (до 20) … По порядку Изъятие: … Изъятие до 3 uops за такт … OOO Cluster … Выбирается до 5 готовых к ресурсам uops и отправляется за тактpop eaxesp1<-esp0+4, eax1<-[esp0]
  11. ^ Папворт, Дэвид Б.; Корпорация Intel (апрель 1996 г.). «Настройка микроархитектуры Pentium Pro» (PDF) . IEEE Micro . стр. 14. ISSN  0272-1732. Архивировано из оригинала (PDF) 8 октября 2018 г. . Получено 8 октября 2018 г. . Степпинг B0 включает несколько ошибок микрокода и исправления путей скорости для проблем, обнаруженных на кремнии A-step
  12. ^ ab Kagan, Michael; Gochman, Simcha; Orenstien, Doron; Lin, Derrick (1997). "MMX Microarchitecture of Pentium Processors With MMX Technology and Pentium II Microprocessors" (PDF) . Intel Technology Journal (Q3): 6, 7. Микроархитектура процессора Pentium II похожа на микропроцессор Pentium Pro … модифицирована для преобразования новых инструкций MMX в uops, специфичные для процессора Pentium Pro (для реализации новой функциональности были добавлены новые uops Single Instruction Multiple Data [SIMD]). … Была создана помощь с микрокодом для исправления проблемы и повторного выполнения операции. Помощь — это невидимое для пользователя событие, которое очищает машину и позволяет микрокоду обрабатывать редкие, но сложные для обработки проблемы. Поскольку все инструкции MMX обнуляют TOS , помощь должна записать TOS в ноль и перезапустить операцию. … Недопустимые коды операций, которые являются дырами в инструкциях в карте кодов операций MMX, определены для генерации вызова помощи с одним uop. Этот вызов помощи инструктирует ROB очистить машину и вызывает поток микрокода помощи, чтобы заставить процессор обрабатывать ошибки недопустимых кодов операций.
  13. ^ abcd Хинтон, Гленн; Сейджер, Дэйв; Аптон, Майк; Боггс, Даррелл; Кармин, Дуг; Кайкер, Алан; Руссель, Патрис (2001). Чао, Лин (ред.). «Микроархитектура процессора Pentium 4» (PDF) . Журнал технологий Intel . № Q1. Байты инструкций IA-32 затем декодируются в базовые операции, называемые микрооперациями (uops) … расширенная форма кэша инструкций уровня 1 (L1), называемая кэшем трассировки выполнения … между логикой декодирования инструкций и ядром выполнения … для хранения уже декодированных … uops. … инструкции декодируются один раз … затем используются повторно оттуда … имеет емкость для хранения до 12 тыс. uops … аналогичная частота попаданий для обычного кэша инструкций объемом от 8 до 16 тыс. байт. … упаковывает мопы в группы по шесть мопов на линию трассировки … микрокод ROM … для сложных инструкций IA-32, таких как перемещение строки, а также для обработки сбоев и прерываний … Кэш трассировки переходит в микрокод ROM, который затем выдает мопы … После того, как микрокод ROM заканчивает упорядочивание мопов … передняя часть машины возобновляет выборку мопов из кэша трассировки. … глубокая буферизация процессора Pentium 4 (126 мопов и 48 загрузок в процессе)
  14. ^ Фог, Агнер (2020-05-25). «Микроархитектура процессоров Intel, AMD и VIA» (PDF) (Руководство по оптимизации для программистов ассемблера и производителей компиляторов). Технический университет Дании. стр. 49. … Если μop имеет непосредственный 32-битный операнд за пределами интервала ±2 15, так что он не может быть представлен как 16-битное знаковое целое число, то он будет использовать две записи кэша трассировки, если только он не сможет занять место в памяти у соседнего μop. … μop, которому требуется дополнительное место в памяти, может занять 16 бит дополнительного места в памяти у соседнего μop, которому не нужно собственное пространство данных.
  15. ^ Бентли, Боб; Грей, Рэнд (2001). Чао, Лин (ред.). «Проверка процессора Intel® Pentium® 4» (PDF) . Журнал Intel Technology Journal (Q1): 29–26. Обсуждение ошибок
  16. ^ ab De Gelas, Johan (1 мая 2006 г.). «Intel Core против архитектуры AMD K8». AnandTech . стр. 3 . Получено 23 января 2018 г. Архитектура ядра оснащена четырьмя декодерами x86, 3 простыми декодерами и 1 сложным декодером … для преобразования инструкций x86 переменной длины длиной от 1 до 15 байт в … инструкции типа RISC фиксированной длины (называемые микрооперациями). … общие инструкции x86 преобразуются в одну микрооперацию … сложный декодер отвечает за инструкции, которые производят до 4 микроопераций. … действительно длинные и сложные инструкции x86 обрабатываются секвенсором микрокода. … слияние макроопераций … инструкция сравнения x86 ( ) слита с переходом ( ).CMPJNE TARG
  17. ^ Ким, Донкеун; Ши-вэй Ляо, Стив; Ван, Перри Х.; дель Кувильо, Хуан; Тянь, Синьминь; Цзоу, Сян; Ван, Хун; Йенг, Дональд; Гиркар, Милинд; Шен, Джон П. (11 января 2004 г.). "Физические эксперименты с предварительной выборкой вспомогательных потоков на процессорах Intel Hyper-Threaded" (PDF) . стр. 4, 5 . Получено 24 января 2018 г. . Кэш трассировки L1: 12 тыс. микроопераций, 8-канальная ассоциативная, 6 микроопераций на строку … Общий: кэш трассировки, … Декодирование инструкций IA-32 , ПЗУ микрокода, логика прекращения работы Uop , … Разделенный: очередь Uop
  18. ^ abc 8: Функция обновления BIOS процессора Pentium Pro (PDF) (Отчет). 2.0. Intel. 12 января 1996 г. стр. 45. Получено 3 ноября 2020 г. Процедура аутентификации основана на расшифровке, предоставляемой процессором для проверки обновления из потенциально враждебных источников.
  19. ^ Стиллер, Андреас; Пол, Матиас Р. (12 мая 1996 г.). «Процессоргефлюстер». c't – магазин компьютерной техники . Тенденции и новости / aktuell - Prozessoren (на немецком языке). Том. 1996, нет. 6. Верлаг Хайнц Хайзе ГмбХ & Ко КГ . п. 20. ISSN  0724-8679. Архивировано из оригинала 28 августа 2017 г. Проверено 28 августа 2017 г.
  20. ^ Мюллер, Скотт; Закер, Крейг (сентябрь 1998 г.). Минатель, Джим; Байус, Джилл; Каген, Рик (ред.). Модернизация и ремонт ПК (PDF) (ред. к десятой годовщине). Que Publishing . стр. 79. ISBN 0-7897-1636-4. Получено 1 октября 2018 г. . Степпинги процессора (ревизии) и версии обновления микрокода, поддерживаемые файлом базы данных обновлений PEP6.PDB … Используя утилиту обновления процессора (CHECKUP3.EXE), … можно легко проверить … правильность обновления микрокода
  21. ^ abcde Чен, Даминг Доминик; Ан, Гейл-Джун (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. Addison-Wesley Professional. стр. 435. ISBN 9780201309737.
  23. ^ Вулф, Александр (30 июня 1997 г.). «Intel готовит план по устранению ошибок в микропроцессорах Pentium». EE Times . № 960. Архивировано из оригинала 13 ноября 1999 г. Получено 3 октября 2018 г. – через Techweb . малоизвестное прозвище «Функция обновления BIOS». … «Каждое обновление BIOS предназначено для определенного степпинга [процессора]», … блок данных напрямую сопоставляется с самим микрокодом — … после расшифровки.
  24. ^ Вулф, Александр (30 июня 1997 г.). «В функции Intel по устранению ошибок обнаружена дыра». EE Times . Санта-Клара. Архивировано из оригинала 09.03.2003. Аджай Малхортра, технический менеджер по маркетингу, работающий в группе микропроцессоров Intel. «Зашифрован не только блок данных, содержащий исправление микрокода, но и после того, как процессор проверит заголовок обновления BIOS, в процессоре должно быть выполнено два уровня шифрования, прежде чем он успешно загрузит обновление». … строго охраняемый секрет. «Нет никакой документации», — сказал Фрэнк Биннс, архитектор в группе микропроцессоров Intel. «Нельзя получить «Красную книгу» Intel с этими записями. На самом деле это в головах менее 10 человек во всей Intel».
  25. ^ abc "Подробности режима Intel Probe". Hardice . Получено 23 января 2018 г. . выдает пакет через BPM при выполнении специальных инструкций … Чтобы включить расширенную трассировку выполнения, необходимо применить специальные исправления микрокода … Только для Pentium 4 существует второй тип … называемый расширенной трассировкой выполнения микрокода … Шина регистра управления, в свою очередь, обеспечивает доступ к внутренним массивам и функциям процессора, таким как доступ к LLC и микрокоду/ виртуальному ППЗУ Fuse . … который находится на корпусе ЦП, но не находится внутри кремниевого кристалла ЦП. Этот ППЗУ также содержит микрокод, который ЦП загружает во время холодной загрузки. … точка останова на 48-битном адресе микрокода … доступ к которому осуществляется с помощью команд TAP BRKPTCTLA и BRKPTCTLB .
  26. ^ ab Elkins, David S. (зима 1990 г.). "NEC против Intel: руководство по использованию процедур "чистой комнаты" в качестве доказательств". Computer/Law Journal . 10 (4): 453. Использование компанией NEC своих процедур "чистой комнаты " в качестве доказательств в суде… Судья Грей определил микрокод… в рамках определения "компьютерной программы" в Законе об авторском праве… Микрокод Intel защищен авторским правом. … Микрокод Intel не содержал требуемого уведомления об авторских правах. … авторские права были утрачены. … У Intel не осталось никаких оснований для иска о копировании
  27. ^ Хинкли, Роберт С. (январь 1987 г.). «NEC против Intel: будет ли оборудование втянуто в черную дыру редакторов авторских прав». Журнал права высоких технологий Санта-Клары . 3 (1). Приложение: Форматы микрокода; Формат 8086/8088 ; Формат V20 /V30
  28. ^ Леонг, Кэти Чин (28 марта 1988 г.). «Intel witness renants story». Computerworld . Vol. 22, no. 13. San Jose. pp. 83, 84. ISSN  0010-4841 . Получено 2 октября 2018 г.
  29. ^ "Intel386 DX Microprocessor 32-BIT CHMOS Microprocessor with Integrated Memory Management" (PDF) . Декабрь 1995 г. Архивировано из оригинала 3 сентября 2004 г. самотестирование проверяет функционирование всего ПЗУ управления … Регистр EAX будет содержать сигнатуру 00000000h, указывающую на то, что Intel386 DX прошел самотестирование микрокода и основного содержимого PLA{{cite web}}: CS1 maint: неподходящий URL ( ссылка )
  30. ^ "5.1 Исчерпывающий тест Intel 80386" (PDF) . Встроенный самотест (BIST) для встраиваемых систем . Тестирование встраиваемых систем. IIT Kharagpur : 21. 7 октября 2006 г. . Получено 6 октября 2018 г. . Для ПЗУ шаблоны генерируются счетчиком микропрограмм, который является частью обычной логики.
  31. ^ ab Gelsinger, Patrick ; lyengar, Sundar; Krauskopf, Joseph; Nadir, James; Intel (1999). Computer Aided Design and Built In Self Test on the i486™ CPU (PDF) . Международная конференция IEEE по проектированию компьютеров 1989 года: СБИС в компьютерах и процессорах. IEEE. С. 200–201.
  32. ^ ab "Суд постановил против AMD вызвать некоторую озабоченность". InfoWorld . 17 октября 1994 г. стр. 5 . Получено 24 января 2018 г. В решении федерального окружного суда в Сан-Хосе, Калифорния, говорится, что AMD не имеет права использовать код внутрисхемной эмуляции (ICE) Intel в микропроцессорах AMD. Этот код присутствует во всех процессорах AMD 486, но используется только в маломощных процессорах 486-DXL и 486-DXLV. … AMD начала перерабатывать всю свою линейку 486, чтобы устранить этот код.
  33. ^ Wu, David M.; Lin, Mike; Reddy, Madhukar; Jaber, Talal; Sabbavarapu, Anil; Thatcher, Larry; Intel Corporation (2004). "Оптимизированная стратегия DFT и генерации тестовых шаблонов для высокопроизводительного микропроцессора 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 г.). "chip-red-pill/crbus_scripts". GitHub . Получено 26 мая 2020 г. .
  35. ^ Positive Research (21.07.2020), ptresearch/IntelTXE-PoC , получено 25.07.2020
  36. ^ Ермолов, Марк [@_markel___] (2020-05-19). «Используя функцию DFT локального теста прямого доступа (LDAT) процессора Intel Atom, мы выгрузили ПЗУ микрокода секвенсора. Кроме того, мы извлекли то, что, по нашему мнению, является IROM (непосредственные данные для микроопераций), и даже смогли изменить ОЗУ MS Patch и регистры Match/Patch» ( Твит ) – через Twitter .
  37. ^ Bosch, Peter (2020-05-22). "Intel LDAT notes" . Получено 2020-05-26 . PDAT CR: 0x6A0; Array Select: 0‒4

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

Внешние ссылки