Контрольный регистр

Регистр процессора, который изменяет или управляет общим поведением ЦП.

Регистр управления — это регистр процессора , который изменяет или управляет общим поведением ЦП или другого цифрового устройства. Обычные задачи, выполняемые регистрами управления, включают управление прерываниями , переключение режима адресации , управление страницами и управление сопроцессором .

История

Ранние ЦП не имели выделенных регистров управления и полагались на ограниченный набор внутренних сигналов и флагов. [1] Когда IBM разработала страничную версию [примечание 1] System /360 , они добавили 16 регистров управления [2] [3] в конструкцию того, что стало 360/67 . IBM не предоставляла регистры управления на других моделях S/360, но сделала их стандартной частью [4] System /370 , хотя и с другими назначениями регистров и битов. По мере того, как IBM добавляла новые функции в архитектуру, например, DAS , S/370-XA , S/370-ESA , ESA/390 , они добавляли дополнительные поля в регистры управления. С z/Architecture IBM удвоила размер регистра управления до 64 бит.

Регистры управления в IBM 360/67

В 360/67 регистры CR0 и CR2 используются для трансляции адресов, регистры CR 4-6 содержат различные флаги, включая маски прерываний и расширенный режим управления [3] , а регистры CR 8-14 [5] содержат настройки переключателей на блоке конфигурации 2167.

М67 CR0

Регистр управления 0 содержит адрес таблицы сегментов для динамической трансляции адресов.

М67 CR2

Регистр управления 2 — это регистр адреса исключения перемещения.

М67 CR4

CR4 — это расширенный регистр маски для каналов 0-31. Каждый бит — это маска канала 1/0 для соответствующего канала.

М67 CR5

CR5 зарезервирован для расширенного регистра маски для каналов 32–63. Каждый бит — это маска канала 1/0 для соответствующего канала.

М67 CR6

CR6 содержит два флага режима и расширения битов маски PSW.

Флаги и маски CR6
ПолеКусочекОписание
00Расширение маски проверки машины для контроллера канала o
11Расширение маски проверки машины для контроллера канала 1
2-3Зарезервировано для контроллеров каналов 2-3
4-7Неназначенный
88Расширенный режим управления
99Бит управления конфигурацией
10-23Неназначенный
24-31Внешняя маскировка прерываний
24Таймер
25Клавиша прерывания
26Предупреждение о неисправности - ЦП 1 (внешняя сигнатура 2)
27Предупреждение о неисправности - ЦП 2 (внешняя сигнатура 3)
28Зарезервировано (Внеш. сиг. 4)
29Зарезервировано (Внеш. сиг. 5)
30Внешнее прерывание - ЦП 1, 2 (внеш. сиг. 6)
31Зарезервировано (Внеш. сиг. 7)

М67 CR8

Регистр управления 8 содержит назначения блоков памяти процессора 1–4 центральным процессорам (ЦП) и контроллерам каналов (КК).

Назначение процессора 1-4 запоминающего устройства
КусочекОписание
0Блок памяти процессора 1 к ЦП 1
1Блок памяти процессора 1 к ЦП 2
2-3Зарезервировано для ЦП 3-4
4Блок памяти процессора 1 — CC 0
5Блок памяти процессора 1 для CC 1
6-7Зарезервировано для CC 3-4
8Блок памяти процессора 2 к ЦП 1
9Блок памяти процессора 2 к ЦП 2
10-11Зарезервировано для ЦП 3-4
12Блок памяти процессора 2 для CC 0
13Процессорный блок памяти 2 для CC 1
14-15Зарезервировано для CC 3-4
16Блок памяти процессора 3 к ЦП 1
17Блок памяти процессора 3 к ЦП 2
18-19Зарезервировано для ЦП 3-4
20Блок памяти процессора 3 в CC 0
21Блок памяти процессора 3 в CC 1
22-23Зарезервировано для CC 3-4
24Блок памяти процессора 4 к ЦП 1
25Блок памяти процессора 4 к ЦП 2
26-27Зарезервировано для ЦП 3-4
28Блок памяти процессора 4 в CC 0
29Блок памяти процессора 4 в CC 1
30-31Зарезервировано для CC 3-4

М67 CR9

Регистр управления 9 содержит назначения блоков памяти процессора 5–8 центральным процессорам (ЦП) и контроллерам каналов (КК).

Назначение процессора 1-4 запоминающего устройства
КусочекОписание
0Блок памяти процессора 5 к ЦП 1
1Блок памяти процессора 5 к ЦП 2
2-3Зарезервировано для ЦП 3-4
4Блок памяти процессора 5 в CC 0
5Блок памяти процессора 5 в CC 1
6-7Зарезервировано для CC 3-4
8Блок памяти процессора 6 для ЦП 66
9Блок памяти процессора 6 для ЦП 2
10-11Зарезервировано для ЦП 3-4
12Блок памяти процессора 6 в CC 0
13Блок памяти процессора 6 для CC 1
14-15Зарезервировано для CC 3-4
16Блок памяти процессора 7 к ЦП 1
17Блок памяти процессора 7 к ЦП 2
18-19Зарезервировано для ЦП 3-4
20Блок памяти процессора 7 в CC 0
21Блок памяти процессора 7 в CC 1
22-23Зарезервировано для CC 3-4
24Блок памяти процессора 8 к ЦП 1
25Блок памяти процессора 8 для ЦП 2
26-27Зарезервировано для ЦП 3-4
28Блок памяти процессора 8 в CC 0
29Блок памяти процессора 8 в CC 1
30-31Зарезервировано для CC 3-4

М67 CR10

Регистр управления 10 содержит коды назначения адресов памяти процессора.

Коды назначения битов 11-14 адреса памяти процессора
КусочекНачальный адресный код для
0-3Блок памяти процессора 1
4-7Блок памяти процессора 2
8-11Процессорный блок памяти 3
12-15Процессорный блок памяти 4
16-19Процессорный блок памяти 5
20-23Процессорный блок памяти 6
24-27Блок памяти процессора 7
28-31Блок памяти процессора 8

М67 CR11

Регистр управления 11 содержит назначения контроллера канала (CC).

Разделение контроллера каналов CR11 (CC)
КусочекОписание
0CC 0 доступен на CPU 1
1CC 0 доступен на CPU 2
2-3Зарезервировано для ЦП 3-4
4CC 1 доступен на CPU 1
5CC 1 доступен на CPU 2
6-7Зарезервировано для ЦП 3-4
8-15Неназначенный
16CPU 1 только для CC 0
17CPU 1 только для CC 1
18-19Зарезервировано для CC 2-3
20CPU 2 только для CC 0
21CPU 2 только CC 1
22-23Зарезервировано для CC 2-3
24-31Неназначенный

М67 CR12

CR12 содержит разделение блока управления вводом/выводом.

Блок управления вводом-выводом CR12 1-16 Разделение
КусочекБлок управления вводом/выводомИнтерфейс
011
12
221
32
431
52
641
72
851
92
1061
112
1271
132
1481
152
1691
172
18101
192
20111
212
22121
232
24131
252
26141
272
28151
292
30161
312

М67 CR13

CR13 содержит разделение блока управления вводом/выводом.

CR13 I/O Control Unit 17-32 Разделение
КусочекБлок управления вводом/выводомИнтерфейс
0171
12
2181
32
4191
52
6201
72
8211
92
10221
112
12231
132
14241
152
16251
172
18261
192
20271
212
22281
232
24291
252
26301
272
28311
292
30321
312

М67 CR14

CR14 содержит индикаторы.

Индикаторы CR14
КусочекИндикатор
0-27Неназначенный
222167 Включение питания
23Неназначенный
24Прямое управление, ЦП 1
25Прямое управление, ЦП 2
26-27Неназначенный
28Префикс, ЦП 1
29Префикс, ЦП 2
30-31Неназначенный

Регистры управления в IBM S/390

Регистры управления ESA/390 [6] на IBM S/390 являются эволюционным усовершенствованием регистров управления на более ранних процессорах ESA/370 , [7] S/370-XA [8] и S/370 [9] . Подробности о том, какие поля зависят от конкретных функций, см. в разделе Принципы работы. [10]

Регистры управления ESA/390
CRбитыПоле
01SSM-подавление
02Управление синхронизацией часов TOD
03Управление защитой низкого адреса
04Контроль за вывозом нефти
05Вторичное управление пространством
06Контроль переопределения защиты от выборки
07Управление переопределением защиты хранения
08-12Формат перевода
013AFP-регистр управления
014Контроль векторов
015Управление адресным пространством и функцией
016Маска подкласса оповещения о неисправности
017Маска подкласса аварийного сигнала
018Маска подкласса внешнего вызова
019Маска подкласса проверки синхронизации часов TOD
020Маска подкласса компаратора часов
021Маска подкласса CPU-таймера
022Маска подкласса сервисного сигнала
024Установить на 1
025Маска подкласса клавиши прерывания
026Установить на 1
027Маска подкласса ETR
028Программа-вызов-быстрый
029Криптоконтроль
10Первичный контроль событий переключения пространства
11-19Первичное происхождение таблицы сегментов
122Первичный подпространственно-групповой контроль
123Первичный контроль частного пространства
124Первичное хранилище-изменение-контроль событий
125-31Длина первичной сегментной таблицы
21-25Dispatchable-unit-control-table происхождение
30-15Маска PSW-ключа
316-31Вторичный ASN
40-15Индекс авторизации
416-31Первичный ASN
50Подсистемно-связной контроль
51-24Происхождение таблицы связей
525-31Длина соединительного стола
51-25Когда управление функцией адресного пространства равно единице,
Первичная-ASN-вторая-таблица-запись
60-7Маска подкласса прерывания ввода-вывода
71-19Вторичное происхождение таблицы сегментов
722Вторичный подпространственно-групповой контроль
723Вторичный контроль частного пространства
724Вторичное хранилище-управление событиями-изменениями
725-31Длина вторичной сегментной таблицы
80-15Расширенный индекс авторизации
816-31Маски для мониторов
90Маска события успешного ветвления
91Маска события получения инструкций
92Маска события изменения-хранения
93Маска события GR-alteration
94Маска события Store-using-real-address
98Контроль адреса филиала
910Контроль пространства хранения-изменения
916-31Маски общего регистра PER
101-31Начальный адрес PER
111-31PER конечный адрес
120Контроль ветвления-трассировки
121-29Адрес трассировки
1230ASN-контроль трассировки
1231Явный контроль трассировки
130Home space-switch-event control
131-19Начало сегмента-таблицы
1323Контроль частного пространства дома
1324Домашнее хранение-изменение-контроль событий
1325-31Длина сегмента домашней таблицы
140Установить на 1
141Установить на 1
142Расширенный контроль области сохранения
143Маска подкласса Channel-report-pending
144Маска подкласса восстановления
145Маска подкласса деградации
146Маска подкласса внешнего повреждения
147Маска подкласса предупреждения
1410TOD-clock-control-override control
1412ASN-контроль перевода
1413-31ASN-первая-таблица происхождение
151-28Адрес входа в стек связей

Регистры управления в IBM z/Architecture

Регистры управления z/Architecture [11] являются эволюционным усовершенствованием регистров управления более раннего ESA/390 на процессорах IBM S/390 . Подробности о том, какие поля зависят от конкретных функций, см. в Principles of Operation. [12] Поскольку z/Architecture расширяет регистры управления с 32 бит до 64, нумерация бит отличается от нумерации в ESA/390.

z/Регистры управления режимом архитектуры
CRбитыПоле
08Контроль выполнения транзакций
09Переопределение фильтрации прерываний программы транзакционного выполнения
010Контроль знака тактового компаратора
013Контроль счетчика криптографии
014Процессор-активность-инструментарий-управление расширением
015Измерение-счетчик-извлечение-разрешение контроля
030Маска подкласса Warning-track
032TRACE TOD-контроль часов
033SSM-подавление
034Управление синхронизацией часов TOD
035Управление защитой низкого адреса
036Контроль за вывозом нефти
037Вторичное управление пространством
038Контроль переопределения защиты от выборки
039Управление переопределением защиты хранения
040Расширенный контроль включения DAT
043Инструкция-исполнение-защита-включение управления
044Контроль повторного использования ASN и LX
045AFP-регистр управления
046Управление векторным включением
048Маска подкласса оповещения о неисправности
048Маска подкласса оповещения о неисправности
049Маска подкласса аварийного сигнала
050Маска подкласса внешнего вызова
052Маска подкласса компаратора часов
053Маска подкласса CPU-таймера
054Маска подкласса сервисного сигнала
056Инициализировано до 1
057Маска подкласса клавиши прерывания
058Маска подкласса оповещения об измерении
059Маска подкласса оповещения о времени
061Криптоконтроль
10-51Первичный элемент управления адресным пространством (ASCE)
Первичное происхождение таблицы регионов
Первичное происхождение таблицы сегментов
Первичное происхождение маркера реального пространства
154Первичный подпространственно-групповой контроль
155Первичный контроль частного пространства
156Первичное хранилище-событие-изменение
157Первичный контроль событий переключения пространства
158Первичный контроль в реальном пространстве
160-61Первичный контроль типа обозначения
162-63Длина первичной таблицы
233-57Dispatchable-unit-control-table происхождение
259Контроль обеспечения работы охраняемого склада
261Область диагностики транзакций
262-63Диагностический контроль транзакций
30-31Вторичный номер экземпляра ASN-второй-таблицы-записи
332-47Маска PSW-ключа
348-63Вторичный ASN
40-31Первичный номер экземпляра записи второй таблицы ASN
432-47Индекс авторизации
448-63Первичный ASN
533-57Первичный-ASN-второй-табличный-запись-происхождение
632-39Маска подкласса прерывания ввода-вывода
70-51Вторичный элемент управления адресным пространством (ASCE)
Вторичное происхождение таблицы регионов
Вторичное происхождение таблицы сегментов
Вторичное происхождение маркера реального пространства
754Вторичный подпространственно-групповой контроль
755Вторичный контроль частного пространства
756Вторичное хранилище-управление событиями-изменениями
758Вторичное управление в реальном пространстве
760-61Вторичное обозначение типа контроля
762-63Длина вторичного стола
816-31Маски с улучшенным контролем
832-47Расширенный индекс авторизации
848-63Маски для мониторов
932Маска события успешного ветвления
933Маска события получения инструкций
934Маска события изменения-хранения
935Маска события изменения ключа хранения
936Маска события Store-using-real-address
937Маска события обнаружения нулевого адреса
938Маска события завершения транзакции
939Маска события «Инструкция-выборка-аннулирование»
940Контроль адреса филиала
941PER-событие-контроль подавления
943Контроль пространства хранения-изменения
100-63Начальный адрес PER
110-63PER конечный адрес
120Контроль ветвления-трассировки
121Управление режимом-трассировкой
122-61Адрес трассировки
1262ASN-контроль трассировки
1263Явный контроль трассировки
130-51Элемент управления домашним адресным пространством (ASCE)
Домашняя таблица регионов-источник
Домашняя таблица сегментов-источник
Домашняя марка реального пространства-источник
1355Контроль частного пространства дома
1356Домашнее хранилище-переделка-событие
1357Home space-switch-event control
1358Вторичное управление в реальном пространстве
1360-61Контроль типа обозначения дома
1362-63Длина домашнего стола
1432Установить на 1
1433Установить на 1
1434Расширенное управление областью сохранения (режим совместимости с ESA/390)

только)

1435Маска подкласса Channel-report-pending
1436Маска подкласса восстановления
1437Маска подкласса деградации
1438Маска подкласса внешнего повреждения
1439Маска подкласса предупреждения
1442TOD-clock-control-override control
1444ASN-контроль перевода
1445-63ASN-первая-таблица происхождение
150-60Адрес входа в стек связей

Регистры управления в Intelx86ряд

CR0

Регистр CR0 имеет длину 32 бита на процессорах 386 и выше. На процессорах x64 в длинном режиме он (и другие регистры управления) имеет длину 64 бита. CR0 имеет различные флаги управления, которые изменяют базовую работу процессора. Регистр CR0 является 32-битной версией старого регистра Machine Status Word (MSW). Регистр MSW был расширен до регистра управления с появлением процессора i386.

КусочекИмяПолное имяОписание
0ЧПВключить защищенный режимЕсли 1, система находится в защищенном режиме , в противном случае система находится в реальном режиме.
1МПСопроцессор монитораУправляет взаимодействием инструкций WAIT/FWAIT с флагом TS в CR0
2ЭМЭмуляцияЕсли установлено, то модуль обработки операций с плавающей точкой x87 отсутствует, если сброшено, то присутствует FPU x87
3ТСЗадача переключенаПозволяет сохранять контекст задачи x87 при переключении задачи только после использования инструкции x87
4ETТип расширенияНа 386-м это позволяло указать, был ли внешний математический сопроцессор 80287 или 80387.
5СВЧисловая ошибкаВключить внутренние сообщения об ошибках с плавающей точкой x87 , если установлено, в противном случае включает обнаружение ошибок x87 в стиле ПК
16ВПЗащита от записиЕсли установлено, ЦП не может записывать на страницы, доступные только для чтения, если уровень привилегий равен 0.
18ЯВЛЯЮСЬМаска выравниванияПроверка выравнивания включена, если установлен AM, установлен флаг AC (в регистре EFLAGS ) и уровень привилегий равен 3
29СЗНе-писать черезГлобально включает/отключает кэширование сквозной записи
30компакт-дискОтключить кэшГлобально включает/отключает кэш-память
31ПГПейджингЕсли 1, включить подкачку и использовать регистр § CR3, в противном случае отключить подкачку.

CR1

Зарезервировано, ЦП выдаст исключение # UD при попытке доступа к нему.

CR2

Содержит значение, называемое Page Fault Linear Address (PFLA). При возникновении ошибки страницы адрес, к которому программа пыталась получить доступ, сохраняется в регистре CR2.

CR3

Типичное использование CR3 при трансляции адресов со  страницами размером 4 КиБ

Используется, когда включена виртуальная адресация , следовательно, когда бит PG установлен в CR0. CR3 позволяет процессору преобразовывать линейные адреса в физические адреса, находя каталог страниц и таблицы страниц для текущей задачи. Обычно верхние 20 бит CR3 становятся базовым регистром каталога страниц (PDBR), который хранит физический адрес первого каталога страниц. Если бит PCIDE в CR4 установлен, нижние 12 бит используются для идентификатора контекста процесса (PCID). [13]

CR4

Используется в защищенном режиме для управления такими операциями, как поддержка virtual-8086, включение точек останова ввода-вывода, расширение размера страницы и исключения машинной проверки .

КусочекИмяПолное имяОписание
0ВМЭРасширения виртуального режима 8086Если установлено, включает поддержку флага виртуального прерывания (VIF) в режиме virtual-8086.
1ПВИВиртуальные прерывания защищенного режимаЕсли установлено, включает поддержку флага виртуального прерывания (VIF) в защищенном режиме.
2ТСДОтключить отметку времениЕсли установлено, инструкция RDTSC может быть выполнена только в кольце 0 , в противном случае RDTSC может использоваться на любом уровне привилегий.
3ДЕОтладка расширенийЕсли установлено, включает прерывания на основе отладочного регистра при доступе к пространству ввода-вывода .
4ПСЕРасширение размера страницыЕсли установлено, включает 32-битный режим подкачки для использования огромных страниц размером 4 МиБ в дополнение к страницам размером 4 КиБ.

Если PAE включен или процессор находится в длинном режиме x86-64, этот бит игнорируется. [14]

5ПАЕРасширение физического адресаЕсли установлено, изменяет макет таблицы страниц для преобразования 32-битных виртуальных адресов в расширенные 36-битные физические адреса.
6МСЕИсключение проверки машиныЕсли установлено, разрешает прерывания проверки машины.
7ПГЕСтраница Глобально ВключенаЕсли установлено, трансляции адресов (записи PDE или PTE) могут совместно использоваться между адресными пространствами.
8ПСЕВключение счетчика мониторинга производительностиЕсли установлено, RDPMC может быть запущен на любом уровне привилегий, в противном случае RDPMC может использоваться только в кольце 0.
9OSFXSRПоддержка операционной системой инструкций FXSAVE и FXRSTORЕсли установлено, включаются инструкции потокового SIMD-расширения (SSE) и быстрое сохранение и восстановление FPU.
10OSXMMEXCPTПоддержка операционной системой немаскированных исключений SIMD с плавающей точкойЕсли установлено, включает немаскированные исключения SSE.
11УМИППредотвращение инструкций пользовательского режимаЕсли установлено, инструкции SGDT, SIDT, SLDT, SMSW и STR не могут быть выполнены, если CPL > 0. [13]
12ЛА5757-битные линейные адресаЕсли установлено, включает 5-уровневый пейджинг. [15] [16] : 2–18 
13VMXEВключить расширения виртуальной машинысм. виртуализацию Intel VT-x x86 .
14SMXEВключить расширения безопасного режимасм. Технология доверенного выполнения (TXT)
15[а](Сдержанный)
16ФСГСБАСЕВключить FSGSBASEЕсли установлено, включает инструкции RDFSBASE, RDGSBASE, WRFSBASE и WRGSBASE.
17PCIDEВключить PCIDЕсли установлено, включаются идентификаторы контекста процесса (PCID).
18OSXСОХРАНИТЬXSAVE и расширенные состояния процессора включены
19КЛВключить функцию Key LockerЕсли установлено, включает инструкции AES Key Locker.
20СМЭП [19]Включение защиты выполнения режима супервизораЕсли установлено, выполнение кода в более высоком кольце генерирует ошибку .
21СМАПРежим супервизора, предотвращение доступа , включитьЕсли установлено, доступ к данным в более высоком кольце генерирует ошибку . [20]
22ПКЕВключить ключ защитыСм. Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32.
23среднеевропейское времяТехнология обеспечения контроля потокаЕсли установлено, включает технологию принудительного управления потоком. [16] : 2–19 
24ПКСВключить ключи защиты для страниц режима супервизораЕсли установлено, каждый линейный адрес режима супервизора связан с ключом защиты при использовании 4-уровневого или 5-уровневого пейджинга. [16] : 2–19 
25УИНТРВключить прерывания пользователяЕсли установлено, включает межпроцессорные прерывания пользовательского режима и связанные с ними инструкции и структуры данных.
63-26(Сдержанный)
  1. ^ В ранних черновиках спецификации Intel SGX бит 15 CR4 назывался «CR4.SEE» и описывался как бит включения инструкций анклава SGX. [17] В более поздних версиях этой спецификации ссылки на этот бит были удалены. [18]

CR5–7

Зарезервировано, тот же регистр, что и CR1.

Дополнительные регистры управления в Intelx86-64ряд

ЭФЕР

Extended Feature Enable Register (EFER) — это регистр, специфичный для модели , добавленный в процессор AMD K6 , чтобы разрешить включение инструкции SYSCALL / SYSRET, а позже — для входа и выхода из длинного режима . Этот регистр становится архитектурным в AMD64 и был принят Intel как IA32_EFER. Его номер MSR — 0xC0000080.

КусочекЦель
0SCE (расширения системных вызовов)
1DPE (только AMD K6: включение предварительной выборки данных)
2SEWBED (только AMD K6: спекулятивное отключение EWBE#)
3GEWBED (только AMD K6: отключение глобального EWBE#)
4L2D (только AMD K6: отключение кэша L2)
5-7Зарезервировано, читается как ноль
8LME (включение длительного режима)
9Сдержанный
10LMA (длительный активный режим)
11NXE ( разрешение без выполнения )
12SVME ( включение безопасной виртуальной машины )
13LMSLE (Включение ограничения сегмента длинного режима)
14FFXSR (быстрый FXSAVE/FXRSTOR)
15TCE (Расширение кэша переводов)
16Сдержанный
17MCOMMIT (включение инструкции MCOMMIT)
18INTWB (включение прерываемого WBINVD/WBNOINVD)
19Сдержанный
20UAIE (включение игнорирования верхнего адреса)
21AIBRSE (автоматическое включение IBRS)
22–63Сдержанный

CR8

CR8 — это новый регистр, доступный в 64-битном режиме с использованием префикса REX. CR8 используется для приоритизации внешних прерываний и называется регистром приоритета задачи (TPR). [14]

Архитектура AMD64 позволяет программному обеспечению определять до 15 внешних классов приоритета прерываний. Классы приоритета нумеруются от 1 до 15, причем класс приоритета 1 является самым низким, а класс приоритета 15 — самым высоким. CR8 использует четыре младших бита для указания приоритета задачи , а оставшиеся 60 бит зарезервированы и должны быть записаны нулями.

Системное программное обеспечение может использовать регистр TPR для временной блокировки прерываний с низким приоритетом от прерывания высокоприоритетной задачи. Это достигается путем загрузки TPR со значением, соответствующим прерыванию с наивысшим приоритетом, которое должно быть заблокировано. Например, загрузка TPR со значением 9 (1001b) блокирует все прерывания с классом приоритета 9 или ниже, в то же время позволяя распознавать все прерывания с классом приоритета 10 или выше. Загрузка TPR со значением 0 включает все внешние прерывания. Загрузка TPR со значением 15 (1111b) отключает все внешние прерывания.

При сбросе TPR сбрасывается до 0.

XCR0 и XSS

XCR0, или Extended Control Register 0, — это регистр управления, который используется для переключения сохранения или загрузки регистров, связанных с определенными функциями ЦП, с использованием инструкций XSAVE/XRSTOR. Он также используется с некоторыми функциями для включения или выключения способности процессора выполнять соответствующие инструкции. Его можно изменить с помощью привилегированной инструкции XSETBV, прочитанной с помощью непривилегированной инструкции XGETBV. [21]

КусочекИмяВключенная функцияЦель
0X87x87 FPUСостояние x87 FPU/MMX должно быть «1»
1СШЭСШЭMXCSR и 16 регистров XMM
2AVXAVX16 верхних половин регистров YMM [a]
3БНДРЕГМПХЧетыре регистра БНД
4БНДЦСРРегистры BNDCFGU и BNDSTATUS
5ОПМАСКАAVX-512Восемь регистров k-маски
6ZMM_Hi25616 верхних половин регистров ZMM [b]
7Привет16_ЗММ16 «старших» регистров ZMM (ZMM16 — ZMM31)
8ПТТрассировка процессора
9ПКРУКлючи защитыРегистр ПКРУ
10ПАСИД
11CET_UIntel CETПользовательский теневой стек
12CET_SТеневой стек руководителя
13HDCАппаратная цикличность
14УИНТРПользователь прерывает
15ЛБРПоследние записи отделения
16HWPАппаратные P-состояния
17XTILECFGIntel AMX64-байтовый регистр TILECFG
18XTILEDATAВосемь 1024-байтовых регистров TILE
19 [с]АПХIntel APX16 «высоких» георадаров (R16 – R31)
20–63Сдержанный
  1. ^ Нижние 128 бит всех регистров YMM хранятся в состоянии SSE.
  2. ^ Нижние 256 бит регистров ZMM от ZMM0 до ZMM15 хранятся в состояниях SSE и AVX.
  3. ^ Несмотря на то, что Intel APX указан через бит 19 XCR0, на самом деле он записан через XSAVE (в несжатой форме) в неиспользуемом пространстве размером 128 байт, оставшемся после Intel MPX.

Также есть IA32_XSS MSR, который расположен по адресу DA0h. IA32_XSS MSR управляет битами XCR0, которые считаются состоянием «супервизора» и должны быть невидимы для обычных программ. Он работает с привилегированными инструкциями XSAVES и XRSTORS, добавляя состояние супервизора к данным, с которыми они работают. Проще говоря, если бы состояние X87 было включено в XCR0, а состояние PT было включено в IA32_XSS, инструкция XSAVE сохраняла бы только состояние X87, в то время как привилегированная XSAVES сохраняла бы как состояния X87, так и состояния PT. Поскольку это MSR, к нему можно получить доступ с помощью инструкций RDMSR и WRMSR.

КусочекЦель
0–7Зарезервировано; должно быть 0.
8PT (Позволяет сохранять и загружать девять MSR трассировки процессора.)
10Состояние идентификатора адресного пространства процессора (PASID)
11Технология обеспечения соблюдения потока управления (CET) Состояние пользователя
12Состояние супервизора технологии обеспечения потока управления (CET)
13HDC (Позволяет сохранять и загружать IA32_PM_CTL1 MSR.)
14Состояние пользовательских прерываний (UINTR)
15Состояние последней записи ветви (LBR)
16HWP (позволяет сохранять/загружать IA32_HWP_REQUEST MSR)
17–63Зарезервировано; должно быть 0.

Смотрите также

Примечания

  1. ^ IBM никогда не поставляла 360/64 или 360/66, только 360/67.

Ссылки

Руководства IBM
M67предварительный
System/360 Model 67 — Система разделения времени — Предварительное техническое резюме (PDF) . Systems Reference Library (Первое издание). IBM . C20-1647-0 . Получено 8 мая 2023 г. .
М67
IBM System/360 Model 67 — Функциональные характеристики (PDF) . Systems Reference Library (Третье изд.). IBM . Февраль 1972 г. A27-2719-0 . Получено 8 мая 2023 г. .
С/370
IBM System/370 — Принципы работы (PDF) (Одиннадцатое изд.). IBM . Сентябрь 1987 г. GA22-7000-10 . Получено 8 мая 2023 г.
S/370-XA
IBM System/370 Extended Architecture Principles of Operation (PDF) (Второе издание). IBM . Январь 1987 г. SA22-7085-1 . Получено 8 мая 2023 г.
S/370-ESA
IBM Enterprise Systems Architecture/370 Principles of Operation (PDF) (Первое издание). IBM . Август 1988 г. SA22-7200-0 . Получено 8 мая 2023 г.
S/390-ESA
IBM Enterprise Systems Architecture/390 Principles of Operation (PDF) (Девятое изд.). IBM . Июнь 2003 г. SA22-7201-08 . Получено 8 мая 2023 г.
z/Архитектура
z/Architecture - Principles of Operation (PDF) (четырнадцатое изд.). IBM . Май 2022 г. SA22-7832-13 . Получено 8 мая 2023 г. .
  1. ^ "lab4.pdf" (PDF) . Uppsala University . 17 марта 2024 г. Архивировано (PDF) из оригинала 17 января 2021 г. . Получено 16 марта 2024 г. .
  2. ^ M67prelim, стр. 25-26, Регистры управления.
  3. ^ ab M67, стр. 16, Таблица 4. Регистры управления.
  4. S/370, стр. 4-8-4-11, Регистры управления.
  5. M67, стр. 31–35, Назначение битов регистра управления для обнаружения.
  6. ^ S/390-ESA.
  7. ^ S/370-ESA.
  8. S/370-XA.
  9. С/370.
  10. S/390-ESA, стр. 4-6-4-10, Регистры управления.
  11. ^ z/Архитектура.
  12. ^ z/Architecture, стр. 4-9–4-12, Регистры управления.
  13. ^ ab Intel Corporation (2016). "4.10.1 Идентификаторы контекста процесса (PCID)". Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32 (PDF) . Том 3A: Руководство по системному программированию, часть 1.
  14. ^ ab "Руководство программиста по архитектуре AMD64, том 2: системное программирование" (PDF) . AMD . Сентябрь 2012 г. стр. 127 и 130 . Получено 04.08.2017 .
  15. ^ "5-уровневый пейджинг и 5-уровневый EPT" (PDF) . Intel . Май 2017. стр. 16 . Получено 2018-01-23 .
  16. ^ abc "Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32" (PDF) . Корпорация Intel®. 2021-06-28 . Получено 2021-09-21 .
  17. ^ Intel, Справочник по программированию расширений Software Guard, ссылка № 329298-001, сентябрь 2013 г. — главы 1.7 и 6.5.2 описывают CR4.SEE.
  18. ^ Intel, Справочник по программированию расширений Software Guard, ссылка № 329298-002, октябрь 2014 г. — не упоминает CR4.SEE.
  19. ^ Фишер, Стивен (2011-09-21). "Защита выполнения в режиме супервизора" (PDF) . Конференция NSA Trusted Computing 2011 . National Conference Services, Inc. Архивировано из оригинала (PDF) 2016-08-03 . Получено 2017-08-04 .
  20. ^ Anvin, H. Peter (2012-09-21). "x86: Supervisor Mode Access Prevention". LWN.net . Получено 2017-08-04 .
  21. ^ "Глава 13, Управление состоянием с помощью набора функций Xsave" (PDF) . Руководство разработчика программного обеспечения для архитектур Intel(R) 64 и IA-32, том 1: Базовая архитектура . Корпорация Intel (2019) . Получено 23 марта 2019 г. .
  • Руководство разработчика архитектур Intel 64 и IA-32: Том 3A
  • Руководства для разработчиков программного обеспечения для архитектур Intel 64 и IA-32
  • Технические документы: AMD64
  • Мир Уайетта: Взлом Pentium III (1999-05-28)
Получено с "https://en.wikipedia.org/w/index.php?title=Control_register&oldid=1268423710"