
- •Конспект лекций
- •«Архитектура компьютеров»
- •1 Классификация микропроцессоров
- •1.1 Основные сведения о микропроцессорах
- •1.2.1 Структура памяти мп i8086/88
- •1.2.2 Сегментация памяти и вычисление адресов
- •1.2.3 Структура ввода-вывода
- •1.2.4 Программная модель мп i8086/88
- •1.3 Процессор i80286
- •1.3.1 Регистры процессора i80286.
- •1.3.2 Организация памяти i80286
1.3.1 Регистры процессора i80286.
По набору программно доступных регистров I80286 повторяет процессор I8086/88 (см. рис.1.4), но имеет дополнительные биты в РЕГИСТРЕ ФЛАГОВ (FLAGS) и РЕГИСТР СОСТОЯНИЯ МАШИНЫ (MSW – MACHINE STATE WORD) (рис. 1.7).
Биты 0 – 11 регистра флагов совпадают с флагами МП I8086/88. Дополнительные биты, необходимы для защищенного режима виртуальной адресации:
IOPL – (Input/Output Privilege Level) – уровень привилегий ввода-вывода;
NT – (Nested Task Flag) – флаг вложенной задачи.
Регистр MSW управляет режимом процессора и использует биты:
PE – (Protection Enable) – разрешение защиты. Установка этого флага переводит процессор в защищенный режим. Возврат в реальный режим (сброс флага) возможен только по сигналу RESET.
MP – (Monitor Processor Extension) – мониторинг сопроцессора, позволяет вызывать исключение 7 по каждой команде WAIT.
EM – (Processor Extension Emulated) – эмуляция сопроцессора. Установка этого флага вызывает появление исключения 7 при каждой команде, относящейся к сопроцессору, что позволяет прозрачно осуществлять его программную эмуляцию.
TS – (Task Switch) – переключение задач. При установке этого флага следующая команда, относящаяся к сопроцессору, вызовет исключение 7, что позволяет программно определить, относится ли контекст сопроцессора к текущей задаче.
Сочетание: MP=0, EM=0, TS=0, устанавливаемое по аппаратному сбросу, обеспечивает полную совместимость с I8086/88 (исключение 7 не вырабатывается). Сочетание: MP=1, EM=0 используется при наличии сопроцессора I80287, а MP=0, EM=1 – его программной эмуляции.
1.3.2 Организация памяти i80286
Шина адреса – разрядностью 24 бита – позволяет адресовать 224 = 16 Мбайт физической памяти, но в реальном режиме доступен только 1 Мбайт, начинающийся с младших адресов. С программной точки зрения память также организуется в виде сегментов, но управление сегментацией имеет существенные различия для реального и защищенного режимов.
В РЕАЛЬНОМ РЕЖИМЕ по адресации памяти декларируется полная совместимость с процессором I8086, который своей 20-ти битовой адресной шиной охватывает пространство физической памяти в 1 Мбайт. На самом деле I80286 имеет ошибку, «узаконенную» и в следующих поколениях процессоров. При вычислении физического адреса возможно возникновение переполнения, которое с 20-ти битовой шиной адреса просто игнорируется. Однако у процессора I880286 на выводе А20 в этом случае установится единичное значение, что соответствует адресу из второго Мегабайта физической памяти. Для обеспечения полной программной совместимости с I8086 в схему компьютера (на материнской плате) был введен специальный вентиль GATE A20, принудительно обнуляющий бит А20 системной шины адреса.
В отличии от I8086 процессор I80286 имеет средства контроля за переходом через границу сегмента, работающие и в реальном режиме. При попытке адресации к слову, у которого старший байт выходит за границы сегмента, процессор вырабатывает прерывание – исключение 13 (0Dh) – Segment Overrun Exceotion. При попытке выполнить инструкцию ESCAPE (команды сопроцессора) с операндом памяти, не умещающимся в сегменте, вырабатывается исключение 9 - Procesor Extension Segment Ovrrun Interrupt.
В ЗАЩИЩЕННОМ РЕЖИМЕ работают все режимы адресации, допустимые для I8086 и реального режима I80286. Отличия касаются определения сегментов:
сегментные регистры – CS, DS, SS, ES – хранят не сами базовые адреса сегментов, а СЕЛЕКТОРЫ, по которым из таблицы дескрипторов, хранящейся в ОЗУ, извлекаются ДЕСКРИПТОРЫ СЕГМЕНТОВ;
дескриптор описывает базовый адрес, размер сегмента (1 ÷ 64 Кбайта) и его атрибуты;
базовый адрес сегмента имеет разрядность 24 бита, что и обеспечивает адресацию 16 Мбайт физической памяти.