Базовая регистровая архитектура процессоров семейства Х86, страница 5

VIP (VirtualInterruptPending) – ожидание виртуального прерывания, а также:

VIF (VirtualInterruptFlag) – флаг виртуального прерывания, позволяют каждой прикладной программе, в многозадачном режиме, иметь виртуальную версию флага IF.

                              2. Системные регистры.

К системным регистрам относятся те внутренние регистры процессора, которые предназначены для использования системными программистами. Эти регистры помогают реализовать мощные системные возможности процессоров семейства Х86 при работе в защищенном (P) режиме. Отсюда ясно, что процессоры младших моделей – 8086/8088 и 80186 системных регистров не имеют. Их включение начинается с модели 80286, когда впервые был введен защищенный режим работы, хотя регистров отладки и тестирования не было и в нем. С дальнейшим развитием процессоров семейства Х86, их состав и число используемых в них битов только  возрастало.

В общем случае системные регистры микропроцессоров семейства Х86 можно разделить на три группы (см. рис.II.3):

1) регистры управления памятью (регистры P – режима). Эти регистры присутствуют во всех процессорах, начиная с 80286 и кончая последними моделями микроархитектур Intel Core 2, Penryn и Nehalem.

2) регистры общего управления, которые  также  присутствуют во всех моделях семейства Х86;

3) регистры отладки, которые введены начиная с модели 80386;

                               Регистры управления памятью

Регистры управления памятью определяют местонахождение структур данных, управляющих сегментацией памяти. Функции этих регистров остались практически неизменными во всех моделях, начиная с 80286 до последних моделей Intel Core 2, Penryn, Nehalem. По структуре, правда, регистры управления памятью модели 80286 несколько отличаются от регистров всех остальных моделей, поскольку в дескрипторах МП 80286 размещен 24 разрядный базовый адрес сегмента, а в дескрипторах других моделей – 32 разрядный.

К регистрам управления памятью относятся следующие регистры.

GDTR (Global Descriptor Table Register) – регистр глобальной

             дескрипторной таблицы.

IDTR (Interrupt Descriptor Table Register) – регистр дескрипторной

            таблицы прерываний.

LDTR (Local Descriptor Table Register) – регистр локальной

             дескрипторной таблицы.

TR (TaskRegister) – регистр задачи.

Регистр GDTR служит для хранения базового (начального) адреса сегмента глобальной дескрипторной таблицы в адресном пространстве оперативной памяти и ее размера. Этот сегмент включает в себя  дескрипторы всех сегментов кода, данных, а также  системных сегментов, за исключением дескрипторов шлюзов, используемых при прерываниях.

    Регистр IDTR служит для хранения базового адреса и размера дескрипторной таблицы прерываний, в которой содержаться все дескрипторы шлюзов, связанных с системой прерываний процессора.

Регистр LDTR служит для хранения селектора, по которому определяется местонахождение в адресном пространстве и размер локальной дескрипторной таблицы, содержащей дескрипторы сегментов, используемые при выполнении  одной какой либо задачи.

В регистре TR хранится селектор, по которому определяется местонахождение сегмента состояния (TSS) текущей задачи (процесса).

Загружаются регистры управления памятью соответственно командами: LGDT, LIDT, LLDT, LTR

           При этом, сами дескрипторы как сегмента локальной дескрипторной таблицы (LDT), так и сегмента состояния задачи (TSS), располагаются в глобальной дескрипторной таблице.

                            Регистры общего управления

Регистры общего управления включают в себя:

- в процессоре 80286, только один 16  разрядный регистр, который называется регистром слова состояния машины MSW (Machine Status Word). Он включает в себя 7 управляющих битов: бит 0 – PE (Protect Enable), бит 1 – MP (Mathematic Present), бит 2 – EM (Emulation), бит 3 – TS (Task Switched), бит 4 – ET (Extension Type), бит 5 – NE (Numeric Error) и бит 15 – WP (Write Protect). В дальнейших моделях МП этого семейства, MSW вместе с перечисленными битами входит как младшие два байта в регистр общего управления CR0 (т.е. регистр MSW входит как составная часть регистра CR0, реализуя принцип преемственности моделей семейства);

- в процессорах 80386 и 80486 уже присутствуют четыре управляющих регистра общего управления: CR0, CR1, CR2, CR3. При этом в регистре CR0 для управления используются дополнительно: бит 18 – AM (Alignment Mask), бит 29 – NW (Not Write-through), бит 30 – CD (Cache Disable) и бит 31 – PG (Paging). Кроме того, в регистре CR3 как управляющие используются биты 3 – PWT (Page Write – Through) и 4 – PCD (Page Cache Disable);

1.  Регистры управления памятью (Memory Control Register)

          Рис.II.3 Системные регистры процессоров семейства Х86.

- в процессорах Pentium добавлен еще один управляющий регистр общего управления – CR4 и в нем задействованы еще 6 управляющих битов. Бит 0 – VME (Virtual 8086 Mode Extension), бит 1 – PVI (Protected-Mode Virtual Interrupt), бит 2 – TSD (Time Stamp Disable), бит 3 – DE (Debugging Extensions), бит 4 – PSE (Page Size Extensions) и бит 6 – MCE (Machine-Check Enable).

Регистр CR1 – зарезервирован. В регистре CR2 фиксируется линейный адрес страничного нарушения, например, в случае отсутствии в оперативной памяти страницы, к которой произведено обращение. А в старших двух байтах регистра CR3 хранится физический адрес каталога страниц.