Jump to content

Альтернативный набор команд

Альтернативный набор инструкций (AIS) — это вторая 32-битная архитектура набора команд, встречающаяся в некоторых процессорах x86, созданных VIA Technologies . На этих процессорах VIA C3 доступ ко второму скрытому режиму процессора осуществляется путем выполнения инструкции x86. JMPAI ( 0F 3F). [1] Если режим AIS включен, процессор выполнит команду JMP EAX. [2] и начать выполнение инструкций AIS по адресу регистра EAX . Использование AIS обеспечивает собственный доступ к Centaur Technology, , разработанному ядру RISC внутри процессора. [3]

Формат инструкции

[ редактировать ]
Сопоставление регистров между AIS и x86
номер АИС имя x86
Р0 ЕАХ
Р1 ЭКХ
Р2 ЭДКС
Р3 ЕВХ
Р4 ESP
Р5 ЭБП
Р6 КАК
Р7 БЫЛ
Р8–Р15

Производитель описывает альтернативный набор инструкций как «расширенный набор инструкций для целых чисел, MMX , с плавающей запятой и 3DNow!, а также дополнительные регистры и некоторые более мощные формы команд». [2] Каждая инструкция AIS имеет префикс 3-байтовой последовательности. 0x8D8400 за которым следует 32-битная инструкция; эта форма префикса для инструкций AIS делает их похожими на адрес эффективной нагрузки x86 ( LEA) инструкции.В 2018 году исследователь Кристофер Домас сообщил, что префикс 0x620405 (х86 BOUND) тоже сработало.

Предложение, сделанное в 2002 году о добавлении поддержки AIS в Netwide Assembler (NASM), было частично отклонено в 2005 году на том основании, что NASM — это ассемблер x86, а AIS — это отдельный набор команд. [4] Ассемблер доступен в исследовании Домаса за 2018 год. [5]

В 2007 году в патенте некоторые инструкции микрокода были названы load и store в/из основной оперативной памяти и loadPRAM и storePRAM в/из частной оперативной памяти внутри процессора. [6] Группа проверки Centaur Technologies в статье 2014 года о VIA Nano включила несколько коротких списков микроинструкций, в том числе ADDIG, JLINK, JMP_ALL, MVIG, NLOOPE, STORE_PRAM, плюс микрооперации XADD и XSUB. Было показано, что микрооперации имеют формат, включающий поля opcode, exec unit, src width, src1, src2, dest width, dest, write flags? и end routine?. [7]

Справочник по программированию 2002 года для набора альтернативных инструкций. [8] и сопровождающее приложение [1] были добавлены в архив Bitsavers в мае 2021 года.

Доступность

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

В режиме x86 доступность альтернативного набора инструкций можно определить, выполнив CPUID с установленным в регистре EAX значением. 0xc0000001 а затем проверяем регистр EDX. EDX Если бит 0 установлен в 1, то поддерживается AIS. EDX Если бит 1 также установлен в 1, то AIS включен. [9] Если AIS поддерживается ЦП, то его состояние можно проверить и изменить через регистры, специфичные для модели , путем проверки и установки регистра управления функциями (FCR, регистр 0x1107). Если бит 0 (" ALTINST") установлено в 1, то AIS включен. [9]

Ядро Microsoft Windows NT KiGetFeatureBits() Функция инициализации заранее отключает режим альтернативных инструкций при загрузке. [10] Если х86 JMPAI Инструкция перехода выполняется, когда режим AIS отключен, тогда процессор генерирует исключение недействительной инструкции. [11] Установка бита включения AIS требует привилегированного доступа и должна устанавливаться с использованием последовательности чтения-изменения-записи . [11]

Повышение привилегий

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

В 2018 году Кристофер Домас обнаружил, что некоторые процессоры Samuel 2 поставляются с включенным по умолчанию альтернативным набором инструкций и что, выполняя инструкции AIS из пользовательского пространства , можно получить повышение привилегий с Ring 3 до Ring 0. [5] Домас частично перепроектировал набор инструкций AIS, используя автоматический фаззинг для кластера из семи тонких клиентов . [12] Домас использовал термины «глубоко встроенное ядро» (DEC) плюс «глубоко встроенный набор команд» (DEIS) для набора команд RISC, «инструкция запуска» для JMPAI, «инструкция моста» для оболочки префикса x86, «регистр глобальной конфигурации» для регистра управления функциями (FCR) и документировал повышение привилегий под названием « Rosenbridge ». [5]

См. также

[ редактировать ]
  • NEC V20/V30 , x86-совместимый процессор, реализующий аналогичную схему для входа и выхода в режим альтернативного набора команд для поддержки инструкций Intel 8080 .
  1. ^ Перейти обратно: а б VIA, Замечания по применению альтернативного набора команд процессора VIA C3 , версия 0.24, 2002 г. По состоянию на 26 апреля 2023 г.
  2. ^ Перейти обратно: а б Альтернативный набор инструкций (PDF) . ВИА Эдем (Репортаж). Техническое описание процессора встроенной системной платформы. Ноябрь 2002. с. 70–71 . Проверено 10 августа 2018 г.
  3. ^ Стиллер, Андреас (22 января 2003 г.). « Процессор VIA седьмого поколения». Heise Online (на немецком языке). Хайнц Хайзе . Проверено 12 августа 2018 г. Как... RISC-подобное ядро ​​Nehemiah также можно запрограммировать самостоятельно (AIS: альтернативный набор инструкций). Здесь также еще неизвестно, смогут ли изобретательные программисты использовать это для того или иного драйвера, чтобы добиться большей производительности.
  4. ^ «#21 добавить поддержку AIS Centaur» . Сетевой ассемблер . 18 декабря 2002 г. Проверено 12 августа 2018 г. - через Sourceforge.
  5. ^ Перейти обратно: а б с Домас, Кристофер. «Розенбридж: Аппаратные бэкдоры в процессорах x86» . Гитхаб . Проверено 10 августа 2018 г.
  6. ^ патент США 20080256336 , Генри Г. Гленн ; Эдди, Колин и Хукер, Родни Э. и др., «Микропроцессор с собственным микрокодовым ОЗУ», опубликовано 16 октября 2008 г., выпущено 2 ноября 2010 г.  
  7. ^ Дэвис, Джаред; Слободова, Анна; Сордз, Сол (20 апреля 2016 г.). «Верификация микрокода — еще одна часть головоломки проверки микропроцессора» (PDF) . Проверено 14 августа 2018 г.
  8. ^ VIA, Справочник по программированию альтернативного набора команд процессора VIA C3 , версия 0.25, ноябрь 2002 г. По состоянию на 26 апреля 2023 г.
  9. ^ Перейти обратно: а б Расширенные функции инструкций CPUID Centaur (PDF) . Техническое описание процессора встроенной системной платформы VIA Eden-N (отчет). 22 октября 2004 г. п. 20, 74 . Проверено 10 августа 2018 г.
  10. ^ Майкрософт. "kernlini.c" . Исходный код ядра Microsoft Windows NT . Проверено 14 августа 2018 г. KiGetFeatureBits() … // Отключаем бит 0, который управляет функцией Cyrix ALTINST.
  11. ^ Перейти обратно: а б Альтернативное выполнение инструкций (PDF) . Техническое описание процессора VIA C3 Samuel 2 (отчет). Октябрь 2004 г. с. 60.
  12. ^ Вагенсейл, Пол (9 августа 2018 г.). «Хакер обнаружил скрытый «режим Бога» на старых процессорах x86» . Аппаратное обеспечение Тома . Проверено 10 августа 2018 г.

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

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 72457a961872d0f7797f7a30ad7ad03e__1682488260
URL1:https://arc.ask3.ru/arc/aa/72/3e/72457a961872d0f7797f7a30ad7ad03e.html
Заголовок, (Title) документа по адресу, URL1:
Alternate Instruction Set - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)