Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000544.doc
Скачиваний:
26
Добавлен:
30.04.2022
Размер:
14.75 Mб
Скачать

Функционирование

По снятию сигнала RESET (сброс) процессор начинает выполнение инструкции, находящейся по адресу FFFF0h. Сигнал RESET устанавливает регистры в состояние CS=FFFFh, IP=0, DS=SS=ES=0 и сбрасывает все флаги. Далее следуют обычные инструкции или инструкции передачи управления. Среди инструкций следует выделить две.

Инструкция HALT (останов) переводит процессор в состояние останова, из которого его может вывести только аппаратное прерывание или аппаратный сброс. В этом режиме процессор не управляет шинами. Все тристабильные буферы отключены.

Инструкция WAIT (ждать) заставляет процессор ожидать активного (низкого уровня) сигнала на входе TEST#. До появления активного сигнала процессор также не управляет локальной шиной. В случае аппаратного прерывания после окончания его обслуживания процессор снова вернется в состояние ожидания. Проверка состояния входа TEST# используется для синхронизации с математическим сопроцессором 8087.

6.2. Процессоры 80286

Процессоры 80286 -второе поколения 16-разрядных процессоров, имеющих 24-разрядную шину адреса. Самым существенным отличием является механизм управления адресацией памяти. Он имеет специальные средства для работы в многопользовательских и многозадачных системах. Остановимся на существенных отличиях и дополнениях по сравнению с 8086.

В процессоре за счет улучшения архитектуры сокращено время выполнения команд, повышена тактовая частота и предусмотрено использование высокопроизводительного математического сопроцессора, предназначенного для выполнения операций над числами в формате плавающей запятой.

В процессоре 8086 было 14 регистров (IBM/XT). В процессоре 80286 имеется уже 14+5 видимых регистров, доступных пользователю. Имеется также ряд невидимых регистров. Назначение дополнительных регистров будет объяснено позже. Процессор имеет расширенную систему команд и может работать в двух режимах: режиме реальной адресации (Real Mode) и защищенном режиме (Protected Mode). Процессор после сброса начинает работать в реальном режиме (эмуляции 8086). Переключение в защищенный режим осуществляется одной командой после размещения в реальном режиме специальных таблиц дискрипторов в оперативной памяти. Обратное переключение - только по сигналу сброса.

Реальный режим

В реальном режиме метод генерации физического адреса прост. Содержимое сегментного регистра сдвигается влево на 4 бита и складывается со смещением. В результате получается 20-разрядный адрес Объем адресуемой памяти 1Мбайт. Под управлением операционной системы MS DOS процессор используют в реальном режиме работы.

Защищенный режим

В защищенном режиме содержимое сегментного регистра (называемого селектором) используется для поиска базового адреса в специальной таблице базовых адресов находящейся в оперативной памяти и созданной операционной системой при ее загрузке. Эта таблица называется дескрипторной таблицей или таблицей описания сегментов памяти. В ней кроме базовых адресов начала сегмента (24 разряда) содержится размер сегмента и байт с описанием доступа к нему. Размер записи в дескрипторной таблице 8 байт. В защищенном режиме процессор по селектору, хранящемуся в сегментном регистре, находит соответствующую запись в дескрипторной таблице, считывает значение 24-битового базового адреса сегмента, добавляет адрес-смещение и полученный адрес используется как искомый физический адрес байта или слова. Для того чтобы при каждом формировании адреса не обращаться к дескрипторной таблице за базовым адресом сегмента имеется теневой регистр базового адреса сегмента. При каждом изменении содержимого сегментного регистра процессор из дескрипторной таблицы, хранящейся в ОЗУ, читает в этот теневой регистр информацию о сегменте, в том числе и базовый адрес, который помещает в теневой регистр. Затем при генерации физического адреса используется базовый адрес из теневого регистра.

Теневые регистры (невидимые)

63 56 55 16 15 0 ← разряды

Права доступа

Базовый адрес сегмента

Размер


CS

DS

SS

ES

Видимый GDTR

39 16 15 0 ← разряды

Базовый адрес таблицы

Размер сегмента с таблицей

Для указания места расположения в ОЗУ дескрипторной таблицы имеется видимый (доступный пользователю) регистр глобальной дескрипторной таблицы (GDTR). GDTR имеет 40 разрядов и содержит данные о положении в ОЗУ (базовый адрес) и размере дескрипторной таблицы. Для изменения содержимого GDTR используются команды чтения и записи GDTR.

Кроме глобальной дескрипторной таблицы имеется и локальная дескрипторная таблица. Селектор локальной дескрипторной таблицы содержится в видимом регистре локальной дескрипторной таблицы (LDTR). Селектор (содержимое LDTR) указывает на место (запись) в глобальной дескрипторной таблице (GDT), содержащую информацию о положении локальной дескрипторной таблицы. Эта информация переписывается в теневой регистр локальной дескрипторной таблицы.

Теневой регистр LDTR Видимый регистр LDTR

63 56 55 16 15 0 15 0

Права

доступа

Базовый адрес

сегмента

Размер

Селектор LDTR


Выбор таблицы (глобальной или локальной) при генерации адреса указывается специальным битом выбора таблицы в селекторе сегмента (сегментном регистре). Формат селектора сегмента (сегментного регистра) приведен ниже.

15 3 2 1 0

Индекс (Index)

TI

RTL

Младшие 2 бита указывают уровень привилегий, используемый для защиты памяти. Второй бит указывает тип дескрипторной таблицы. Если TI=0, используется глобальная дескрипторная таблица. Если TI=1, используется локальная таблица. Старшие биты (3-15) содержат индекс, по которому осуществляется поиск записи в соответствующей дескрипторной таблице.

Поиск нужной записи в дескрипторной таблице ведется по индексу, который просто указывает номер 8-байтовой записи с информацией о положении и длине сегмента. Начало записи указывает GDTR. Если используется локальная таблица, то LDTR указывает номер записи в GDT, дающий адрес начала локальной дескрипторной таблицы, из которой по индексу аналогично определяется положение сегмента (адрес его начала).

Для переключения режима работы с обычного (при загрузки ОС) на защищенный используется специальный регистр состояния машины MSW (Machine State Word), содержащий слово состояния. Биты MSW управляют режимом адресации и взаимодействием с сопроцессором. Установка нулевого бита MSW переводит процессор в защищенный режим. Сброс этого флага возможен только по сигналу сброса. Защищенный режим используют ОС XENIX, UNIX, WINDOWS.