Регистр управления
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Регистр управления — это регистр процессора , который изменяет или контролирует общее поведение процессора или другого цифрового устройства. Общие задачи, выполняемые регистрами управления, включают управление прерываниями , переключение режима адресации , управление подкачкой и управление сопроцессором .
История
[ редактировать ]![]() | Этот раздел необходимо расширить , добавив: даты для 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 бит.
Регистры управления в IBM 360/67
[ редактировать ]В 360/67 CR0 и CR2 используются для трансляции адресов, CR 4-6 содержат разные флаги, включая маски прерываний и расширенный режим управления. [3] и CR 8-14 [5] содержат настройки переключателя на блоке конфигурации 2167.
М67 CR0
[ редактировать ]Регистр управления 0 содержит адрес таблицы сегментов для динамической трансляции адресов.
М67 CR2
[ редактировать ]Регистр управления 2 — это регистр адреса исключения перемещения.
M67CR4
[ редактировать ]CR4 — регистр расширенной маски для каналов 0–31. Каждый бит представляет собой маску канала 1/0 для соответствующего канала.
М67 CR5
[ редактировать ]CR5 зарезервирован для регистра расширенной маски для каналов 32–63. Каждый бит представляет собой маску канала 1/0 для соответствующего канала.
М67 CR6
[ редактировать ]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) |
М67 CR8
[ редактировать ]Регистр управления 8 содержит назначения блоков памяти процессора 1–4 центральным процессорам (ЦП) и контроллерам каналов (CC).
Кусочек | Описание |
---|---|
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 |
M67CR9
[ редактировать ]Регистр управления 9 содержит назначения блоков памяти процессора 5–8 центральным процессорам (ЦП) и контроллерам каналов (CC).
Кусочек | Описание |
---|---|
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 содержит коды назначения адреса памяти процессора.
Кусочек | Начальный адресный код для |
---|---|
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).
Кусочек | Описание |
---|---|
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 | ЦП 1 только на CC 0 |
17 | ЦП 1 только на CC 1 |
18-19 | Зарезервировано для CC 2-3 |
20 | ЦП 2 только на CC 0 |
21 | ЦП 2 только на CC 1 |
22-23 | Зарезервировано для CC 2-3 |
24-31 | Неназначенный |
М67 CR12
[ редактировать ]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 |
М67 CR13
[ редактировать ]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 |
М67 CR14
[ редактировать ]CR14 содержит индикаторы.
Кусочек | Индикатор |
---|---|
0-27 | Неназначенный |
22 | 2167 Включение питания |
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] С/370-ХА [8] и С/370 [9] процессоры. Подробную информацию о том, какие поля зависят от конкретных функций, см. в Принципах работы. [10]
ЧР | биты | Поле |
---|---|---|
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 | Маска подкласса таймера ЦП |
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 | Происхождение таблицы управления диспетчерским устройством |
3 | 0-15 | Маска PSW-ключа |
3 | 16-31 | Вторичный АСН |
4 | 0-15 | Индекс авторизации |
4 | 16-31 | Первичный АСН |
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-изменения |
9 | 4 | Маска события магазина с использованием реального адреса |
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 | Управление событиями домашнего пространства |
13 | 1-19 | Начало исходной таблицы сегментов |
13 | 23 | Контроль домашнего частного пространства |
13 | 24 | Контроль событий домашнего хранения-изменения |
13 | 25-31 | Длина домашнего сегмента таблицы |
14 | 0 | Установить на 1 |
14 | 1 | Установить на 1 |
14 | 2 | Расширенное управление областью сохранения |
14 | 3 | Маска подкласса, ожидающего отчета о канале |
14 | 4 | Маска подкласса восстановления |
14 | 5 | Маска подкласса деградации |
14 | 6 | Маска подкласса внешнего повреждения |
14 | 7 | Маска подкласса предупреждения |
14 | 10 | TOD-тактовое управление-переопределение управления |
14 | 12 | ASN-контроль трансляции |
14 | 13-31 | Источник ASN-первая таблица |
15 | 1-28 | Адрес входа в стек связей |
Регистры управления в IBM z/Architecture
[ редактировать ]Регистры управления z/Architecture [11] являются эволюционным усовершенствованием регистров управления более ранней версии ESA/390 на процессорах IBM S/390 . Подробную информацию о том, какие поля зависят от конкретных функций, см. в Принципах работы. [12] Поскольку z/Architecture расширяет регистры управления с 32 бит до 64, нумерация битов отличается от нумерации в ESA/390.
ЧР | биты | Поле |
---|---|---|
0 | 8 | Контроль исполнения транзакций |
0 | 9 | Переопределение фильтрации прерываний программы при выполнении транзакций |
0 | 10 | Контроль знака часов-компаратора |
0 | 13 | Контроль счетчика криптографии |
0 | 14 | Управление расширением процессорной активности |
0 | 15 | Контроль измерения-противоизвлечения-авторизации |
0 | 30 | Маска подкласса предупреждения |
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 | Маска подкласса таймера ЦП |
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 | Происхождение таблицы управления диспетчерским устройством |
2 | 59 | Контроль включения охраняемого хранилища |
2 | 61 | Область диагностики транзакции |
2 | 62-63 | Диагностический контроль транзакций |
3 | 0-31 | Номер экземпляра вторичной записи второй таблицы ASN |
3 | 32-47 | Маска PSW-ключа |
3 | 48-63 | Вторичный АСН |
4 | 0-31 | Первичный номер экземпляра второй записи таблицы ASN |
4 | 32-47 | Индекс авторизации |
4 | 48-63 | Первичный АСН |
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 | Маска события магазина с использованием реального адреса |
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 | Управление событиями домашнего пространства |
13 | 58 | Вторичный контроль реального пространства |
13 | 60-61 | Управление типом обозначения дома |
13 | 62-63 | Длина домашнего стола |
14 | 32 | Установить на 1 |
14 | 33 | Установить на 1 |
14 | 34 | Расширенное управление областью сохранения (режим совместимости с ESA/390). только) |
14 | 35 | Маска подкласса, ожидающего отчета о канале |
14 | 36 | Маска подкласса восстановления |
14 | 37 | Маска подкласса деградации |
14 | 38 | Маска подкласса внешнего повреждения |
14 | 39 | Маска подкласса предупреждения |
14 | 42 | TOD-тактовое управление-переопределение управления |
14 | 44 | ASN-контроль трансляции |
14 | 45-63 | Источник ASN-первая таблица |
15 | 0-60 | Адрес входа в стек связей |
Регистры управления в Intel x86 серии
[ редактировать ]CR0
[ редактировать ]Регистр CR0 имеет длину 32 бита на процессорах 386 и выше. На x64 процессорах в длинном режиме он (и другие управляющие регистры) имеет длину 64 бита. CR0 имеет различные флаги управления, которые изменяют базовую работу процессора. Регистр CR0 — это 32-битная версия старого регистра слова состояния машины (MSW). Регистр MSW был расширен до Регистра управления с появлением процессора i386.
Кусочек | Имя | Полное имя | Описание |
---|---|---|---|
0 | НА | Включить защищенный режим | Если 1, система находится в защищенном режиме , иначе система находится в реальном режиме. |
1 | член парламента | Сопроцессор монитора | Управляет взаимодействием инструкций WAIT/FWAIT с флагом TS в CR0. |
2 | В | Эмуляция | Если установлено, модуль с плавающей запятой x87 отсутствует, если флажок снят, присутствует FPU x87. |
3 | ТС | Задача переключена | Позволяет сохранять контекст задачи x87 при переключении задачи только после использования инструкции x87. |
4 | И | Тип расширения | На 386 это позволяло указать, был ли внешний математический сопроцессор 80287 или 80387. |
5 | NE | Числовая ошибка | Включить внутренний отчет об ошибках с плавающей запятой x87 , если он установлен, в противном случае включается обнаружение ошибок x87 в стиле ПК. |
16 | WP | Защита от записи | Если этот параметр установлен, ЦП не может записывать на страницы, доступные только для чтения, если уровень привилегий равен 0. |
18 | ЯВЛЯЮСЬ | Маска выравнивания | Проверка выравнивания включена, если установлен AM, установлен флаг AC (в регистре EFLAGS ) и уровень привилегий равен 3. |
29 | СЗ | Не писать через | Глобально включает/отключает кэширование со сквозной записью |
30 | компакт-диск | кэш Отключить | Глобально включает/отключает кэш памяти. |
31 | PG | Пейджинг | Если 1, включите пейджинг и используйте регистр § CR3 , иначе отключите пейджинг. |
CR1
[ редактировать ]Зарезервировано, ЦП выдаст исключение #UD при попытке доступа к нему.
CR2
[ редактировать ]Содержит значение, называемое линейным адресом ошибки страницы (PFLA). При возникновении ошибки страницы адрес, к которому программа пыталась получить доступ, сохраняется в регистре CR2.
CR3
[ редактировать ]
Используется, когда виртуальная адресация включена, следовательно, когда бит PG установлен в CR0. CR3 позволяет процессору преобразовывать линейные адреса в физические адреса, определяя каталог страниц и таблицы страниц для текущей задачи. Обычно старшие 20 бит CR3 становятся базовым регистром каталога страниц (PDBR), в котором хранится физический адрес каталога первой страницы. Если бит PCIDE в регистре CR4 установлен, младшие 12 битов используются для идентификатора контекста процесса (PCID). [13]
CR4
[ редактировать ]Используется в защищенном режиме для управления такими операциями, как поддержка virtual-8086, включение точек останова ввода-вывода, увеличение размера страницы и исключения машинной проверки .
Кусочек | Имя | Полное имя | Описание |
---|---|---|---|
0 | УМЭ | Расширения виртуального режима 8086 | Если установлено, включает поддержку флага виртуального прерывания (VIF) в режиме виртуального-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 | ОСFXSR | Поддержка операционной системой инструкций FXSAVE и FXRSTOR. | Если установлено, включает инструкции Streaming SIMD Extensions (SSE) и быстрое сохранение и восстановление FPU. |
10 | ОСXMMEXCPT | Поддержка операционной системой немаскированных исключений 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 | ФСГСБАЗЕ | ФСГСБАСЭ Включить | Если установлено, включает инструкции RDFSBASE, RDGSBASE, WRFSBASE и WRGSBASE. |
17 | ПКИДЕ | PCID включить | Если установлено, включает идентификаторы контекста процесса (PCID). |
18 | OSXSAVE | Включение XSAVE и расширенных состояний процессора | |
19 | в | Ключевой шкафчик включен | Если установлено, включает инструкции 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 | — | (Сдержанный) | — |
CR5–7
[ редактировать ]Зарезервировано, тот же случай, что и CR1.
Дополнительные регистры управления в Intel x86-64 серии
[ редактировать ]ЭФЕР
[ редактировать ]Регистр включения расширенных функций (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
[ редактировать ]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, или расширенный регистр управления 0, — это регистр управления, который используется для переключения хранения или загрузки регистров, связанных с конкретными функциями ЦП, с помощью инструкций XSAVE/XRSTOR. Он также используется с некоторыми функциями для включения или отключения способности процессора выполнять соответствующие инструкции. Его можно изменить с помощью привилегированного чтения XSETBV с помощью непривилегированных инструкций XGETBV. [21]
Кусочек | Имя | Включенная функция | Цель |
---|---|---|---|
0 | х87 | х87 графический процессор | Состояние x87 FPU/MMX, должно быть «1». |
1 | СШЭ | СШЭ | MXCSR и 16 регистров XMM |
2 | AVX | AVX | 16 верхних половин регистров YMM [а] |
3 | БН РЕГ | МПХ | Четыре регистра BND |
4 | БНДЦСР | Регистры BNDCFGU и BNDSTATUS | |
5 | МАСКА | AVX-512 | Восемь регистров k-маски |
6 | ZMM_Hi256 | 16 верхних половин регистров ZMM [б] | |
7 | Привет16_ZMM | 16 «старших» регистров ZMM (от ZMM16 до ZMM31) | |
8 | ПТ | Трассировка процессора | |
9 | ПКРУ | Ключи защиты | реестр ПКРУ |
10 | БОЙФРЕНД | ||
11 | CET_U | Интел СЕТ | Стек теней пользователя |
12 | CET_S | Теневой стек супервизора | |
13 | HDC | Аппаратный рабочий цикл | |
14 | ИНТР | Пользовательские прерывания | |
15 | ЛБР | Записи последнего филиала | |
16 | ЗВП | Аппаратные P-состояния | |
17 | XTILECFG | Интел АМХ | 64-байтовый регистр TILECFG |
18 | XTILEDATA | Восемь регистров TILE по 1024 байта. | |
19 [с] | АПХ | Intel APX | 16 «высоких» георадаров (от R16 до R31) |
20–63 | Сдержанный |
- ^ Младшие 128 бит всех регистров YMM хранятся в состоянии SSE.
- ^ Младшие 256 бит регистров ZMM от ZMM0 до ZMM15 хранятся в состояниях SSE и AVX.
- ^ Несмотря на то, что Intel APX указывается через бит 19 XCR0, на самом деле он записывается через XSAVE (несжатая форма) в неиспользуемое 64-байтовое пространство, оставшееся там, где находился Intel MPX.
Существует также MSR IA32_XSS, который находится по адресу 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. |
См. также
[ редактировать ]- Регистр общего назначения
- Регистр испытаний
- Регистр конкретной модели
- Регистр отладки
- Байт флага
- Регистр состояния
Примечания
[ редактировать ]- ^ IBM никогда не поставляла 360/64 или 360/66, только 360/67.
Ссылки
[ редактировать ]- Руководства IBM
- M67прелим
- System/360 Model 67 — Система разделения времени — Предварительное техническое описание (PDF) . Справочная библиотека по системам (первое изд.). ИБМ . C20-1647-0 . Проверено 8 мая 2023 г.
- М67
- IBM System/360 Model 67 — Функциональные характеристики (PDF) . Справочная библиотека по системам (Третье изд.). ИБМ . Февраль 1972 г. А27-2719-0 . Проверено 8 мая 2023 г.
- С/370
- IBM System/370 - Принципы работы (PDF) (одиннадцатое изд.). ИБМ . Сентябрь 1987 г. GA22-7000-10 . Проверено 8 мая 2023 г.
- С/370-ХА
- Принципы работы IBM System/370 с расширенной архитектурой (PDF) (второе изд.). ИБМ . Январь 1987 г. SA22-7085-1 . Проверено 8 мая 2023 г.
- S/370-ЕСА
- IBM Enterprise Systems Architecture/370 Принципы работы (PDF) (Первое издание). ИБМ . Август 1988 г. SA22-7200-0 . Проверено 8 мая 2023 г.
- S/390-ЕСА
- IBM Enterprise Systems Architecture/390 Принципы работы (PDF) (Девятое изд.). ИБМ . Июнь 2003 г. SA22-7201-08 . Проверено 8 мая 2023 г.
- з/Архитектура
- z/Architecture - Принципы работы (PDF) (Четырнадцатое изд.). ИБМ . Май 2022 г. SA22-7832-13 . Проверено 8 мая 2023 г.
- ^ "lab4.pdf" (PDF) . Уппсальский университет . 17 марта 2024 г. Архивировано (PDF) из оригинала 17 января 2021 г. . Проверено 16 марта 2024 г.
- ^ M67prelim , стр. 25-26 , Регистры управления.
- ^ Jump up to: а б М67 , с. 16 , Таблица 4. Регистры управления.
- ^ S/370 , стр. 4-8-4-11 , Регистры управления.
- ^ M67 , стр. 31-35 , Назначение битов регистра управления для определения.
- ^ S/390-ESA .
- ^ S/370-ESA .
- ^ С/370-ХА .
- ^ С/370 .
- ^ S/390-ESA , стр. 4-6-4-10 , Регистры управления.
- ^ z/Архитектура .
- ^ z/Architecture , стр. 4-9–4-12 , Регистры управления.
- ^ Jump up to: а б Корпорация Intel (2016). «4.10.1 Идентификаторы контекста процесса (PCID)». Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32 (PDF) . Том. 3A: Руководство по системному программированию, часть 1.
- ^ Jump up to: а б «Руководство программиста по архитектуре AMD64, том 2: Системное программирование» (PDF) . АМД . Сентябрь 2012 г., стр. 127 и 130 . Проверено 4 августа 2017 г.
- ^ «5-уровневый пейджинг и 5-уровневый EPT» (PDF) . Интел . Май 2017. с. 16 . Проверено 23 января 2018 г.
- ^ Jump up to: а б с «Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32» (PDF) . Корпорация Intel®. 28 июня 2021 г. Проверено 21 сентября 2021 г.
- ^ Intel, Справочник по программированию расширений Software Guard , ссылка №. 329298-001, сентябрь 2013 г. — в главах 1.7 и 6.5.2 описан CR4.SEE.
- ^ Intel, Справочник по программированию расширений Software Guard , ссылка №. 329298-002, октябрь 2014 г. — CR4.SEE не упоминается.
- ^ Фишер, Стивен (21 сентября 2011 г.). «Защита выполнения в режиме супервизора» (PDF) . Конференция АНБ по надежным вычислениям 2011 . National Conference Services, Inc. Архивировано из оригинала (PDF) 3 августа 2016 г. Проверено 4 августа 2017 г.
- ^ Анвин, Х. Питер (21 сентября 2012 г.). «x86: Предотвращение доступа в режиме супервизора» . LWN.net . Проверено 4 августа 2017 г.
- ^ «Глава 13, Управление состоянием с помощью набора функций Xsave» (PDF) . Руководство разработчика программного обеспечения для архитектур Intel(R) 64 и IA-32, том 1: Базовая архитектура . Корпорация Intel (2019) . Проверено 23 марта 2019 г.
Внешние ссылки
[ редактировать ]