Научная литература
booksshare.net -> Добавить материал -> Физика -> Александров Е.К. -> "Микропроцессорные системы" -> 108

Микропроцессорные системы - Александров Е.К.

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 102 103 104 105 106 107 < 108 > 109 110 111 112 113 114 .. 528 >> Следующая

исключение типа #GP.
По умолчанию в реальном режиме используются 16-разрядные операнды и
адреса. При использовании префиксов можно обрабатывать 32-разрядные
операнды и формировать 32-разрядные адреса. Однако, если эти адреса
выходят за пределы границ сегмента (64 Кбайт) или адресуемой памяти (1
Мбайт), то реализуется исключение типа #GP.
При осуществлении ряда типов исключений в реальном режиме имеются отличия
от защищенного режима. Исключения типа #TS, #NP, #PF, #АС не реализуются
в реальном режиме. Исключение #GP в реальном режиме осуществляется при
выходе за границу сегмента.
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ
15 О
Рис. 2.55. Формирование физического адреса в реальном режиме
Отметим, что в памяти системы должны быть зарезервированы две области,
необходимые для обеспечения реального режима. Первые 1024 ячейки памяти
(адреса от OOOOh до 03FFh) резервируются в реальном режиме для размещения
векторов прерываний. Последние 16 ячеек памяти (адреса от FFFFFFFOh до
FFFFFFFFh) резервируются для программы инициализации системы. После
включения процессора программа инициализации автоматически вводит его в
реальный режим. Аналогичная процедура выполняется и после поступления
сигнала сброса. Перейти из реального в защищенный режим можно с помощью
команд MOV или LMSW, загружающих в регистр CR0 слово состояния с
установленным битом защиты РЕ = 1. Перед этим в реальном режиме должна
быть проведена загрузка необходимых регистров (GDTR, LDTR, и др.) и
таблиц (GDT, LDT и др.), используемых в защищенном режиме.
Обратное переключение из защищенного в реальный режим выполняется только
командой MOV, загружающей в регистр CR0 слово, которое имеет значение
бита РЕ = 0 (команда LMSW не может устанавливать значение РЕ = 0).
Предварительно необходимо провести некоторые подготовительные процедуры,
обеспечивающие сохранение правильного функционирования процессора при
переходе к реальному режиму: отключить механизм страничной трансляции,
перейдя к использованию линейных адресов, равных физическим; установить
для всех сегментов размер 64 Кбайт и ряд других. После выполнения команды
MOV, устанавливающей в регистре CR0 бит РЕ = 0, следует перейти к
программе, выполняемой в реальном режиме, с помощью команды
межсегментного перехода JMP, которая очищает очередь команд. Затем в
сегментные регистры загружается новое содержимое, обеспечивающее
формирование физических адресов в реальном режиме (см. рис. 2.55).
2.8. РЕАЛИЗАЦИЯ ПРЕРЫВАНИЙ И ИСКЛЮЧЕНИЙ. ОБЕСПЕЧЕНИЕ ТЕСТИРОВАНИЯ И
ОТЛАДКИ
При работе микропроцессорной системы часто возникают ситуации, когда
требуется прервать выполнение текущей программы и перейти к подпрограмме,
обеспечивающей необходимую реакцию системы на создавшиеся обстоятельства.
Такие ситуации называются прерываниями или исключениями в зависимости от
причин, вызывающих их возник-
РЕАЛИЗАЦИЯ ПРЕРЫВАНИЙ И ИСКЛЮЧЕНИЙ. ОБЕСПЕЧЕНИЕ ТЕСТИРОВАНИЯ И ОТЛАДКИ
новение. Специальные виды таких прерываний реализуются при отладке
программ, для чего в состав процессора введены необходимые функциональные
блоки, работа которых контролируется с помощью регистров отладки DR7-0.
Особенно большое значение для современных процессоров и систем,
реализуемых на их основе, имеют тестирование и самотестирование.
Процессоры семейства Р6 содержат ряд средств, которые обеспечивают
выполнение данных процедур.
2.8.1. ВИДЫ ПРЕРЫВАНИЙ И ИСКЛЮЧЕНИЙ,
РЕАЛИЗАЦИЯ ИХ ОБСЛУЖИВАНИЯ
Прерываниями (interuption) являются штатные ситуации, возникающие при
поступлении соответствующих команд (программные прерывания) или внешних
сигналов (аппаратные прерывания). Исключениями (exeption) являются
нештатные ситуации (ошибки), возникающие при работе процессора. При
выявлении таких ошибок соответствующие блоки, контролирующие работу
процессора, вырабатывают внутренние сигналы запроса, обеспечивающие вызов
необходимой подпрограммы обслуживания. Классификация прерываний и
исключений иллюстрируется на рис. 2.56.
Процессор способен обеспечить обслуживание 256 различных типов исключений
и прерываний. Соответствующая обработка информации при возникновении
таких ситуаций выполняется с помощью специальных подпрограмм
обслуживания, начальные адреса (вектора) которых хранятся в таблице,
размещаемой в памяти системы.
Запросы на выполнение аппаратных прерываний поступают от внешних
устройств на входы LINTO/INTR, LINT1/NMI процессора. В мультипроцессорной
системе, когда включен внутренний контроллер локальных прерываний APIC,
сигналы LINT1 -0 на этих входах определяют номер запроса, поступающего от
других устройств (процессоров) системы. В однопроцессорной системе, когда
функционирование контроллера APIC запрещено, эти входы служат
соответственно для подачи маскируемых INTR и немаскируемых NMI запросов
прерывания от различных внешних устройств.
На вход INTR поступают маскируемые запросы прерываний, обслуживание
которых может быть запрещено (замаскировано) путем установки значения
Предыдущая << 1 .. 102 103 104 105 106 107 < 108 > 109 110 111 112 113 114 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed