Системная программная модель процессоров Pentium

Прикладная программная модель процессоров Pentium

Старшие модели процессоров Pentium программно совместимы с младшими моделями. Регистры ППМ удобно представить в виде 4 групп 32-разрядных регистров /1/:

1) РОН, которые могут использоваться в формате двойного слова (32 бита), слова (16 бит) и байта (8 бит): EAX (AX, AH, AL), EBX (BX, BH, BL), ECX (CX, CH, CL), EDX (DX, DH, DL).

2) Регистры указатели ESP (SP), EBP (BP) и индексные регистры ESI (SI), EDI (DI), которые доступны в формате двойного слова и слова.

3) Указатель команд EIP (IP).

4) Регистр флагов FLAGS или PSW.

Функции, выполняемые регистрами, в подавляющем большинстве аналогичны функциям, рассмотренных ранее регистров. Регистр FLAGS помимо уже известных флагов состояния и управления, содержит системные флаги, которые управляют обработкой исключений, вводом-выводом и рядом других функций. Большинство системных флагов предназначено для использования операционной системой.

СПМ включает в себя следующий набор регистров /1/:

1) 6-байтовые регистры GDTR (Global Descriptor Table Register) и IDTR (Interruption Descriptor Table Register) адресов глобальной дескрипторной таблицы (GDT) и дескрипторной таблицы прерываний (IDT).

2) 16-битный регистр LDTR (Local Descriptor Table Register), содержащий селектор сегмента локальной дескрипторной таблицы (LDT), и 16-битный регистр TR (Task Register), содержащий селектор сегмента состояния задачи TSS (Task State Segment).

3) 16-битные сегменты регистры CS, SS, DS, ES, FS, GS, содержащие селекторы дескрипторов текущих сегментов кода, стека и данных.

4) 32-битные регистры управления процессором CR (Control Register): CR0, CR2, CR3, CR4. Они хранят признаки состояния процессора, общие для всех задач.

5) 8-байтовые программно недоступные кэш-регистры для хранения текущих дескрипторов сегментов стека – регистр SSt, кода – регистр CSt, данных – регистры DSt, ESt, FSt, GSt, а также сегментов LDT и TSS.

6) 32-разрядные регистры отладки DR (Debug Register): DR0-DR7, предназначенные для аппаратной отладки программ.

7) 32-разрядные регистры тестирования TR (Test Register): TR1-TR12, используемые для тестирования внутренних устройств процессора.

Начиная с Pentium 286, процессоры Intel могли работать в защищённом режиме, что обеспечивало аппаратную поддержку многозадачности. Защищённый режим работы процессора Pentium сохранил сегментную модель памяти. Однако сегмент в защищённом режиме – это не просто область памяти, это объект, имеющий строго определённый размер и обладающий набором атрибутов, по которым выполняется аппаратная защита памяти со стороны процессора. В соответствии с /5/, каждый сегмент имеет свой дескриптор (описатель сегмента). Дескрипторы сегментов хранятся в специальных системных сегментах – дескрипторных таблицах. Существует 3 типа дескрипторных таблиц: глобальная GDT (одна в системе), локальная LDT (своя для каждой задачи), таблица прерываний IDT. Каждый элемент (дескриптор) таблицы описывает свой сегмент памяти. Сегменты памяти не пересекаются. Размер таблиц находится в диапазоне 8 байт-64 Кбайт. Адреса начала GDT и IDT хранятся в специальных программно доступных регистрах процессора GDTR и IDTR, соответственно. Из 48 байт (длина регистров) 32 байта указывают линейный адрес начала соответствующей таблицы, а остальные 16 байт – её размер (предел). Регистры LDTR и TR содержат селекторы (индексы дескрипторов), с помощью которых из таблицы GDTвыбираются дескрипторы с базовыми адресами LDT и TSS отдельных задач.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: