Введение

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

История

Ранний процессор не имел специальных контрольных регистров и полагался на ограниченный набор внутренних сигналов и флагов. Когда IBM разработала версию для пейджирования, IBM никогда не поставляла 360/64 или 360/66, только 360/67. В результате, они добавили 16 контрольных регистров к конструкции, которая стала 360/67. IBM не предоставляла контрольные регистры на других моделях S/360, но сделала их стандартной частью 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 содержит различные флаги, включая маски прерывания и режим расширенного управления, а CR 8 14 содержит настройки переключателя на конфигурационном блоке 2167.

M67 CR0

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

M67 CR2

Контрольный регистр 2 - это адресный регистр исключения перемещения.

M67 CR4

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

M67 CR5

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

M67 CR6

CR6 содержит два флага режима плюс расширения битов маски PSW. + CR6 Флаги и маски Поле Битовое описание 0 0 Машинная проверка маски Расширение для контроллера канала o 1 1 Машинная проверка маски Расширение для контроллера канала 1 2 3 Зарезервировано для контроллеров канала 2 3 4 7 Не назначено 8 8 Расширенный режим управления 9 9 Контроль конфигурации бит 10 23 Не назначено 24 31 Внешнее маскирование прерывания 24 Таймер 25 Ключ прерывания 26 Аварийное предупреждение CPU 1 (Ext. Сиг. 2) 27 Неисправность оповещения CPU 2 (Ext. Сиг. 3) 28 Защищенный (Ext. Сиг. 4) 29 Защищенный (Ext. Сиг. 5) 30 Внешний прерыватель CPU 1, 2 (Ext. Сиг. 6) 31 Защищен (Ext. Сиг. 7)

СР0

Регистр CR0 имеет 32-битовую длину на процессорах 386 и выше. На процессорах x64 в длинном режиме он (и другие контрольные регистры) имеет длину 64 бита. CR0 имеет различные контрольные флаги, которые изменяют основную работу процессора. Регистр CR0 является 32-битной версией старого регистра Machine Status Word (MSW). Регистр MSW был расширен до контрольного реестра с появлением процессора i386. Bit Name Full Name Description 0 PE Protected Mode Enable If 1, система в защищенном режиме, в противном случае система в реальном режиме 1 MP Monitor co processor Контролирует взаимодействие инструкций WAIT/FWAIT с флагом TS в CR0 2 EM Emulation Если установлена, отсутствует блок плавающей точки x87, если установлена, присутствует FPU x87 3 TS Task switched Позволяет сохранять контекст задачи x87 на переключателе задачи только после использования инструкции x87 4 ET Extension Type На 386 можно указать, был ли внешний математический сопроцессор 80287 или 80387 NE 5 Числовая ошибка Enable internal x87 floating point error reporting when set else, enables PC style x87 error detection 16 WP Write protect Когда установлена защита, процессор не может читать страницы только при привилегированном уровне 18 0 AM Alignment mask Check Alignment if enabled AM flag, EFLA (in ACGS), disables privilege level 29 и disables 3 If set globally disable caching through 30d not enabled Paging, write/write through the CD register, enable paging and write/write memory 31d Globally

CR1

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

КР2

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

CR3

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