Регистр управления — это регистр процессора , который изменяет или управляет общим поведением ЦП или другого цифрового устройства. Обычные задачи, выполняемые регистрами управления, включают управление прерываниями , переключение режима адресации , управление страницами и управление сопроцессором .
Этот раздел нуждается в расширении : даты для IBM, Intel и других поставщиков. Вы можете помочь, дополнив его. ( Май 2023 ) |
Ранние ЦП не имели выделенных регистров управления и полагались на ограниченный набор внутренних сигналов и флагов. [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 бит.
В 360/67 регистры CR0 и CR2 используются для трансляции адресов, регистры CR 4-6 содержат различные флаги, включая маски прерываний и расширенный режим управления [3] , а регистры CR 8-14 [5] содержат настройки переключателей на блоке конфигурации 2167.
Регистр управления 0 содержит адрес таблицы сегментов для динамической трансляции адресов.
Регистр управления 2 — это регистр адреса исключения перемещения.
CR4 — это расширенный регистр маски для каналов 0-31. Каждый бит — это маска канала 1/0 для соответствующего канала.
CR5 зарезервирован для расширенного регистра маски для каналов 32–63. Каждый бит — это маска канала 1/0 для соответствующего канала.
CR6 содержит два флага режима и расширения битов маски PSW.
Поле | Кусочек | Описание |
---|---|---|
0 | 0 | Расширение маски проверки машины для контроллера канала o |
1 | 1 | Расширение маски проверки машины для контроллера канала 1 |
2-3 | Зарезервировано для контроллеров каналов 2-3 | |
4-7 | Неназначенный | |
8 | 8 | Расширенный режим управления |
9 | 9 | Бит управления конфигурацией |
10-23 | Неназначенный | |
24-31 | Внешняя маскировка прерываний | |
24 | Таймер | |
25 | Клавиша прерывания | |
26 | Предупреждение о неисправности - ЦП 1 (внешняя сигнатура 2) | |
27 | Предупреждение о неисправности - ЦП 2 (внешняя сигнатура 3) | |
28 | Зарезервировано (Внеш. сиг. 4) | |
29 | Зарезервировано (Внеш. сиг. 5) | |
30 | Внешнее прерывание - ЦП 1, 2 (внеш. сиг. 6) | |
31 | Зарезервировано (Внеш. сиг. 7) |
Регистр управления 8 содержит назначения блоков памяти процессора 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 |
Регистр управления 9 содержит назначения блоков памяти процессора 5–8 центральным процессорам (ЦП) и контроллерам каналов (КК).
Кусочек | Описание |
---|---|
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 |
Регистр управления 10 содержит коды назначения адресов памяти процессора.
Кусочек | Начальный адресный код для |
---|---|
0-3 | Блок памяти процессора 1 |
4-7 | Блок памяти процессора 2 |
8-11 | Процессорный блок памяти 3 |
12-15 | Процессорный блок памяти 4 |
16-19 | Процессорный блок памяти 5 |
20-23 | Процессорный блок памяти 6 |
24-27 | Блок памяти процессора 7 |
28-31 | Блок памяти процессора 8 |
Регистр управления 11 содержит назначения контроллера канала (CC).
Кусочек | Описание |
---|---|
0 | CC 0 доступен на CPU 1 |
1 | CC 0 доступен на CPU 2 |
2-3 | Зарезервировано для ЦП 3-4 |
4 | CC 1 доступен на CPU 1 |
5 | CC 1 доступен на CPU 2 |
6-7 | Зарезервировано для ЦП 3-4 |
8-15 | Неназначенный |
16 | CPU 1 только для CC 0 |
17 | CPU 1 только для CC 1 |
18-19 | Зарезервировано для CC 2-3 |
20 | CPU 2 только для CC 0 |
21 | CPU 2 только CC 1 |
22-23 | Зарезервировано для CC 2-3 |
24-31 | Неназначенный |
CR12 содержит разделение блока управления вводом/выводом.
Кусочек | Блок управления вводом/выводом | Интерфейс |
---|---|---|
0 | 1 | 1 |
1 | 2 | |
2 | 2 | 1 |
3 | 2 | |
4 | 3 | 1 |
5 | 2 | |
6 | 4 | 1 |
7 | 2 | |
8 | 5 | 1 |
9 | 2 | |
10 | 6 | 1 |
11 | 2 | |
12 | 7 | 1 |
13 | 2 | |
14 | 8 | 1 |
15 | 2 | |
16 | 9 | 1 |
17 | 2 | |
18 | 10 | 1 |
19 | 2 | |
20 | 11 | 1 |
21 | 2 | |
22 | 12 | 1 |
23 | 2 | |
24 | 13 | 1 |
25 | 2 | |
26 | 14 | 1 |
27 | 2 | |
28 | 15 | 1 |
29 | 2 | |
30 | 16 | 1 |
31 | 2 |
CR13 содержит разделение блока управления вводом/выводом.
Кусочек | Блок управления вводом/выводом | Интерфейс |
---|---|---|
0 | 17 | 1 |
1 | 2 | |
2 | 18 | 1 |
3 | 2 | |
4 | 19 | 1 |
5 | 2 | |
6 | 20 | 1 |
7 | 2 | |
8 | 21 | 1 |
9 | 2 | |
10 | 22 | 1 |
11 | 2 | |
12 | 23 | 1 |
13 | 2 | |
14 | 24 | 1 |
15 | 2 | |
16 | 25 | 1 |
17 | 2 | |
18 | 26 | 1 |
19 | 2 | |
20 | 27 | 1 |
21 | 2 | |
22 | 28 | 1 |
23 | 2 | |
24 | 29 | 1 |
25 | 2 | |
26 | 30 | 1 |
27 | 2 | |
28 | 31 | 1 |
29 | 2 | |
30 | 32 | 1 |
31 | 2 |
CR14 содержит индикаторы.
Кусочек | Индикатор |
---|---|
0-27 | Неназначенный |
22 | 2167 Включение питания |
23 | Неназначенный |
24 | Прямое управление, ЦП 1 |
25 | Прямое управление, ЦП 2 |
26-27 | Неназначенный |
28 | Префикс, ЦП 1 |
29 | Префикс, ЦП 2 |
30-31 | Неназначенный |
Регистры управления ESA/390 [6] на IBM S/390 являются эволюционным усовершенствованием регистров управления на более ранних процессорах ESA/370 , [7] S/370-XA [8] и S/370 [9] . Подробности о том, какие поля зависят от конкретных функций, см. в разделе Принципы работы. [10]
CR | биты | Поле |
---|---|---|
0 | 1 | SSM-подавление |
0 | 2 | Управление синхронизацией часов TOD |
0 | 3 | Управление защитой низкого адреса |
0 | 4 | Контроль за вывозом нефти |
0 | 5 | Вторичное управление пространством |
0 | 6 | Контроль переопределения защиты от выборки |
0 | 7 | Управление переопределением защиты хранения |
0 | 8-12 | Формат перевода |
0 | 13 | AFP-регистр управления |
0 | 14 | Контроль векторов |
0 | 15 | Управление адресным пространством и функцией |
0 | 16 | Маска подкласса оповещения о неисправности |
0 | 17 | Маска подкласса аварийного сигнала |
0 | 18 | Маска подкласса внешнего вызова |
0 | 19 | Маска подкласса проверки синхронизации часов TOD |
0 | 20 | Маска подкласса компаратора часов |
0 | 21 | Маска подкласса CPU-таймера |
0 | 22 | Маска подкласса сервисного сигнала |
0 | 24 | Установить на 1 |
0 | 25 | Маска подкласса клавиши прерывания |
0 | 26 | Установить на 1 |
0 | 27 | Маска подкласса ETR |
0 | 28 | Программа-вызов-быстрый |
0 | 29 | Криптоконтроль |
1 | 0 | Первичный контроль событий переключения пространства |
1 | 1-19 | Первичное происхождение таблицы сегментов |
1 | 22 | Первичный подпространственно-групповой контроль |
1 | 23 | Первичный контроль частного пространства |
1 | 24 | Первичное хранилище-изменение-контроль событий |
1 | 25-31 | Длина первичной сегментной таблицы |
2 | 1-25 | Dispatchable-unit-control-table происхождение |
3 | 0-15 | Маска PSW-ключа |
3 | 16-31 | Вторичный ASN |
4 | 0-15 | Индекс авторизации |
4 | 16-31 | Первичный ASN |
5 | 0 | Подсистемно-связной контроль |
5 | 1-24 | Происхождение таблицы связей |
5 | 25-31 | Длина соединительного стола |
5 | 1-25 | Когда управление функцией адресного пространства равно единице, Первичная-ASN-вторая-таблица-запись |
6 | 0-7 | Маска подкласса прерывания ввода-вывода |
7 | 1-19 | Вторичное происхождение таблицы сегментов |
7 | 22 | Вторичный подпространственно-групповой контроль |
7 | 23 | Вторичный контроль частного пространства |
7 | 24 | Вторичное хранилище-управление событиями-изменениями |
7 | 25-31 | Длина вторичной сегментной таблицы |
8 | 0-15 | Расширенный индекс авторизации |
8 | 16-31 | Маски для мониторов |
9 | 0 | Маска события успешного ветвления |
9 | 1 | Маска события получения инструкций |
9 | 2 | Маска события изменения-хранения |
9 | 3 | Маска события GR-alteration |
9 | 4 | Маска события Store-using-real-address |
9 | 8 | Контроль адреса филиала |
9 | 10 | Контроль пространства хранения-изменения |
9 | 16-31 | Маски общего регистра PER |
10 | 1-31 | Начальный адрес PER |
11 | 1-31 | PER конечный адрес |
12 | 0 | Контроль ветвления-трассировки |
12 | 1-29 | Адрес трассировки |
12 | 30 | ASN-контроль трассировки |
12 | 31 | Явный контроль трассировки |
13 | 0 | Home space-switch-event control |
13 | 1-19 | Начало сегмента-таблицы |
13 | 23 | Контроль частного пространства дома |
13 | 24 | Домашнее хранение-изменение-контроль событий |
13 | 25-31 | Длина сегмента домашней таблицы |
14 | 0 | Установить на 1 |
14 | 1 | Установить на 1 |
14 | 2 | Расширенный контроль области сохранения |
14 | 3 | Маска подкласса Channel-report-pending |
14 | 4 | Маска подкласса восстановления |
14 | 5 | Маска подкласса деградации |
14 | 6 | Маска подкласса внешнего повреждения |
14 | 7 | Маска подкласса предупреждения |
14 | 10 | TOD-clock-control-override control |
14 | 12 | ASN-контроль перевода |
14 | 13-31 | ASN-первая-таблица происхождение |
15 | 1-28 | Адрес входа в стек связей |
Регистры управления z/Architecture [11] являются эволюционным усовершенствованием регистров управления более раннего ESA/390 на процессорах IBM S/390 . Подробности о том, какие поля зависят от конкретных функций, см. в Principles of Operation. [12] Поскольку z/Architecture расширяет регистры управления с 32 бит до 64, нумерация бит отличается от нумерации в ESA/390.
CR | биты | Поле |
---|---|---|
0 | 8 | Контроль выполнения транзакций |
0 | 9 | Переопределение фильтрации прерываний программы транзакционного выполнения |
0 | 10 | Контроль знака тактового компаратора |
0 | 13 | Контроль счетчика криптографии |
0 | 14 | Процессор-активность-инструментарий-управление расширением |
0 | 15 | Измерение-счетчик-извлечение-разрешение контроля |
0 | 30 | Маска подкласса Warning-track |
0 | 32 | TRACE TOD-контроль часов |
0 | 33 | SSM-подавление |
0 | 34 | Управление синхронизацией часов TOD |
0 | 35 | Управление защитой низкого адреса |
0 | 36 | Контроль за вывозом нефти |
0 | 37 | Вторичное управление пространством |
0 | 38 | Контроль переопределения защиты от выборки |
0 | 39 | Управление переопределением защиты хранения |
0 | 40 | Расширенный контроль включения DAT |
0 | 43 | Инструкция-исполнение-защита-включение управления |
0 | 44 | Контроль повторного использования ASN и LX |
0 | 45 | AFP-регистр управления |
0 | 46 | Управление векторным включением |
0 | 48 | Маска подкласса оповещения о неисправности |
0 | 48 | Маска подкласса оповещения о неисправности |
0 | 49 | Маска подкласса аварийного сигнала |
0 | 50 | Маска подкласса внешнего вызова |
0 | 52 | Маска подкласса компаратора часов |
0 | 53 | Маска подкласса CPU-таймера |
0 | 54 | Маска подкласса сервисного сигнала |
0 | 56 | Инициализировано до 1 |
0 | 57 | Маска подкласса клавиши прерывания |
0 | 58 | Маска подкласса оповещения об измерении |
0 | 59 | Маска подкласса оповещения о времени |
0 | 61 | Криптоконтроль |
1 | 0-51 | Первичный элемент управления адресным пространством (ASCE) Первичное происхождение таблицы регионов Первичное происхождение таблицы сегментов Первичное происхождение маркера реального пространства |
1 | 54 | Первичный подпространственно-групповой контроль |
1 | 55 | Первичный контроль частного пространства |
1 | 56 | Первичное хранилище-событие-изменение |
1 | 57 | Первичный контроль событий переключения пространства |
1 | 58 | Первичный контроль в реальном пространстве |
1 | 60-61 | Первичный контроль типа обозначения |
1 | 62-63 | Длина первичной таблицы |
2 | 33-57 | Dispatchable-unit-control-table происхождение |
2 | 59 | Контроль обеспечения работы охраняемого склада |
2 | 61 | Область диагностики транзакций |
2 | 62-63 | Диагностический контроль транзакций |
3 | 0-31 | Вторичный номер экземпляра ASN-второй-таблицы-записи |
3 | 32-47 | Маска PSW-ключа |
3 | 48-63 | Вторичный ASN |
4 | 0-31 | Первичный номер экземпляра записи второй таблицы ASN |
4 | 32-47 | Индекс авторизации |
4 | 48-63 | Первичный ASN |
5 | 33-57 | Первичный-ASN-второй-табличный-запись-происхождение |
6 | 32-39 | Маска подкласса прерывания ввода-вывода |
7 | 0-51 | Вторичный элемент управления адресным пространством (ASCE) Вторичное происхождение таблицы регионов Вторичное происхождение таблицы сегментов Вторичное происхождение маркера реального пространства |
7 | 54 | Вторичный подпространственно-групповой контроль |
7 | 55 | Вторичный контроль частного пространства |
7 | 56 | Вторичное хранилище-управление событиями-изменениями |
7 | 58 | Вторичное управление в реальном пространстве |
7 | 60-61 | Вторичное обозначение типа контроля |
7 | 62-63 | Длина вторичного стола |
8 | 16-31 | Маски с улучшенным контролем |
8 | 32-47 | Расширенный индекс авторизации |
8 | 48-63 | Маски для мониторов |
9 | 32 | Маска события успешного ветвления |
9 | 33 | Маска события получения инструкций |
9 | 34 | Маска события изменения-хранения |
9 | 35 | Маска события изменения ключа хранения |
9 | 36 | Маска события Store-using-real-address |
9 | 37 | Маска события обнаружения нулевого адреса |
9 | 38 | Маска события завершения транзакции |
9 | 39 | Маска события «Инструкция-выборка-аннулирование» |
9 | 40 | Контроль адреса филиала |
9 | 41 | PER-событие-контроль подавления |
9 | 43 | Контроль пространства хранения-изменения |
10 | 0-63 | Начальный адрес PER |
11 | 0-63 | PER конечный адрес |
12 | 0 | Контроль ветвления-трассировки |
12 | 1 | Управление режимом-трассировкой |
12 | 2-61 | Адрес трассировки |
12 | 62 | ASN-контроль трассировки |
12 | 63 | Явный контроль трассировки |
13 | 0-51 | Элемент управления домашним адресным пространством (ASCE) Домашняя таблица регионов-источник Домашняя таблица сегментов-источник Домашняя марка реального пространства-источник |
13 | 55 | Контроль частного пространства дома |
13 | 56 | Домашнее хранилище-переделка-событие |
13 | 57 | Home space-switch-event control |
13 | 58 | Вторичное управление в реальном пространстве |
13 | 60-61 | Контроль типа обозначения дома |
13 | 62-63 | Длина домашнего стола |
14 | 32 | Установить на 1 |
14 | 33 | Установить на 1 |
14 | 34 | Расширенное управление областью сохранения (режим совместимости с ESA/390) только) |
14 | 35 | Маска подкласса Channel-report-pending |
14 | 36 | Маска подкласса восстановления |
14 | 37 | Маска подкласса деградации |
14 | 38 | Маска подкласса внешнего повреждения |
14 | 39 | Маска подкласса предупреждения |
14 | 42 | TOD-clock-control-override control |
14 | 44 | ASN-контроль перевода |
14 | 45-63 | ASN-первая-таблица происхождение |
15 | 0-60 | Адрес входа в стек связей |
Регистр 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 |
4 | ET | Тип расширения | На 386-м это позволяло указать, был ли внешний математический сопроцессор 80287 или 80387. |
5 | СВ | Числовая ошибка | Включить внутренние сообщения об ошибках с плавающей точкой x87 , если установлено, в противном случае включает обнаружение ошибок x87 в стиле ПК |
16 | ВП | Защита от записи | Если установлено, ЦП не может записывать на страницы, доступные только для чтения, если уровень привилегий равен 0. |
18 | ЯВЛЯЮСЬ | Маска выравнивания | Проверка выравнивания включена, если установлен AM, установлен флаг AC (в регистре EFLAGS ) и уровень привилегий равен 3 |
29 | СЗ | Не-писать через | Глобально включает/отключает кэширование сквозной записи |
30 | компакт-диск | Отключить кэш | Глобально включает/отключает кэш-память |
31 | ПГ | Пейджинг | Если 1, включить подкачку и использовать регистр § CR3, в противном случае отключить подкачку. |
Зарезервировано, ЦП выдаст исключение # UD при попытке доступа к нему.
Содержит значение, называемое Page Fault Linear Address (PFLA). При возникновении ошибки страницы адрес, к которому программа пыталась получить доступ, сохраняется в регистре CR2.
Используется, когда включена виртуальная адресация , следовательно, когда бит PG установлен в CR0. CR3 позволяет процессору преобразовывать линейные адреса в физические адреса, находя каталог страниц и таблицы страниц для текущей задачи. Обычно верхние 20 бит CR3 становятся базовым регистром каталога страниц (PDBR), который хранит физический адрес первого каталога страниц. Если бит PCIDE в CR4 установлен, нижние 12 бит используются для идентификатора контекста процесса (PCID). [13]
Используется в защищенном режиме для управления такими операциями, как поддержка 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. |
9 | OSFXSR | Поддержка операционной системой инструкций FXSAVE и FXRSTOR | Если установлено, включаются инструкции потокового SIMD-расширения (SSE) и быстрое сохранение и восстановление FPU. |
10 | OSXMMEXCPT | Поддержка операционной системой немаскированных исключений SIMD с плавающей точкой | Если установлено, включает немаскированные исключения SSE. |
11 | УМИП | Предотвращение инструкций пользовательского режима | Если установлено, инструкции SGDT, SIDT, SLDT, SMSW и STR не могут быть выполнены, если CPL > 0. [13] |
12 | ЛА57 | 57-битные линейные адреса | Если установлено, включает 5-уровневый пейджинг. [15] [16] : 2–18 |
13 | VMXE | Включить расширения виртуальной машины | см. виртуализацию Intel VT-x x86 . |
14 | SMXE | Включить расширения безопасного режима | см. Технология доверенного выполнения (TXT) |
15 | [а] | (Сдержанный) | — |
16 | ФСГСБАСЕ | Включить FSGSBASE | Если установлено, включает инструкции RDFSBASE, RDGSBASE, WRFSBASE и WRGSBASE. |
17 | PCIDE | Включить PCID | Если установлено, включаются идентификаторы контекста процесса (PCID). |
18 | OSXСОХРАНИТЬ | 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 | — | (Сдержанный) | — |
Зарезервировано, тот же регистр, что и CR1.
Extended Feature Enable Register (EFER) — это регистр, специфичный для модели , добавленный в процессор AMD K6 , чтобы разрешить включение инструкции SYSCALL / SYSRET, а позже — для входа и выхода из длинного режима . Этот регистр становится архитектурным в AMD64 и был принят Intel как IA32_EFER. Его номер MSR — 0xC0000080.
Кусочек | Цель |
---|---|
0 | SCE (расширения системных вызовов) |
1 | DPE (только AMD K6: включение предварительной выборки данных) |
2 | SEWBED (только AMD K6: спекулятивное отключение EWBE#) |
3 | GEWBED (только AMD K6: отключение глобального EWBE#) |
4 | L2D (только AMD K6: отключение кэша L2) |
5-7 | Зарезервировано, читается как ноль |
8 | LME (включение длительного режима) |
9 | Сдержанный |
10 | LMA (длительный активный режим) |
11 | NXE ( разрешение без выполнения ) |
12 | SVME ( включение безопасной виртуальной машины ) |
13 | LMSLE (Включение ограничения сегмента длинного режима) |
14 | FFXSR (быстрый FXSAVE/FXRSTOR) |
15 | TCE (Расширение кэша переводов) |
16 | Сдержанный |
17 | MCOMMIT (включение инструкции MCOMMIT) |
18 | INTWB (включение прерываемого WBINVD/WBNOINVD) |
19 | Сдержанный |
20 | UAIE (включение игнорирования верхнего адреса) |
21 | AIBRSE (автоматическое включение IBRS) |
22–63 | Сдержанный |
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, или Extended Control Register 0, — это регистр управления, который используется для переключения сохранения или загрузки регистров, связанных с определенными функциями ЦП, с использованием инструкций XSAVE/XRSTOR. Он также используется с некоторыми функциями для включения или выключения способности процессора выполнять соответствующие инструкции. Его можно изменить с помощью привилегированной инструкции XSETBV, прочитанной с помощью непривилегированной инструкции XGETBV. [21]
Кусочек | Имя | Включенная функция | Цель |
---|---|---|---|
0 | X87 | x87 FPU | Состояние x87 FPU/MMX должно быть «1» |
1 | СШЭ | СШЭ | MXCSR и 16 регистров XMM |
2 | AVX | AVX | 16 верхних половин регистров YMM [a] |
3 | БНДРЕГ | МПХ | Четыре регистра БНД |
4 | БНДЦСР | Регистры BNDCFGU и BNDSTATUS | |
5 | ОПМАСКА | AVX-512 | Восемь регистров k-маски |
6 | ZMM_Hi256 | 16 верхних половин регистров ZMM [b] | |
7 | Привет16_ЗММ | 16 «старших» регистров ZMM (ZMM16 — ZMM31) | |
8 | ПТ | Трассировка процессора | |
9 | ПКРУ | Ключи защиты | Регистр ПКРУ |
10 | ПАСИД | ||
11 | CET_U | Intel CET | Пользовательский теневой стек |
12 | CET_S | Теневой стек руководителя | |
13 | HDC | Аппаратная цикличность | |
14 | УИНТР | Пользователь прерывает | |
15 | ЛБР | Последние записи отделения | |
16 | HWP | Аппаратные P-состояния | |
17 | XTILECFG | Intel AMX | 64-байтовый регистр TILECFG |
18 | XTILEDATA | Восемь 1024-байтовых регистров TILE | |
19 [с] | АПХ | Intel APX | 16 «высоких» георадаров (R16 – R31) |
20–63 | Сдержанный |
Также есть 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. |
8 | PT (Позволяет сохранять и загружать девять MSR трассировки процессора.) |
10 | Состояние идентификатора адресного пространства процессора (PASID) |
11 | Технология обеспечения соблюдения потока управления (CET) Состояние пользователя |
12 | Состояние супервизора технологии обеспечения потока управления (CET) |
13 | HDC (Позволяет сохранять и загружать IA32_PM_CTL1 MSR.) |
14 | Состояние пользовательских прерываний (UINTR) |
15 | Состояние последней записи ветви (LBR) |
16 | HWP (позволяет сохранять/загружать IA32_HWP_REQUEST MSR) |
17–63 | Зарезервировано; должно быть 0. |