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 хранится физический адрес каталога страниц.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.