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

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

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 11 12 13 14 15 16 < 17 > 18 19 20 21 22 23 .. 528 >> Следующая

системы часто возникают ситуации, когда требуется прервать выполнение
текущей программы и перейти к подпрограмме, обеспечивающей необходимую
реакцию системы на создавшиеся обстоятельства. Такие ситуации называются
прерываниями или исключениями в зависимости от причин, вызывающих их
возникновение.
ОБЩАЯ СТРУКТУРА И ПРИНЦИПЫ ФУНКЦИОНИРОВАНИЯ МИКРОПРОЦЕССОРНЫХ СИСТЕМ
Из PC В PC
в) CALL J____________L RETURN б>
РСп
| РС(п-1) |
Т РС(п-2)
i f-
Регистры сдвига
ОЗУ
г РС(п +1)
РСп (Вершина стека)
РС(п -1)
Стек

-SP-1 (CALL)
-SP
-SP+1 (CALL) после (RETURN)
Рис. 1.7. Варианты реализации стека: регистровый стек (а) и стек,
реализуемый в ОЗУ (б)
Прерываниями (interuption) являются ситуации, возникающие при поступлении
соответствующих команд (программные прерывания) или сигналов от внешних
устройств (аппаратные прерывания). Исключениями (exception) являются
нештатные ситуации (ошибки), возникающие при работе процессора. При
выявлении таких ошибок соответствующие блоки, контролирующие работу
процессора, вырабатывают внутренние сигналы запроса, обеспечивающие вызов
необходимой подпрограммы обслуживания. Классификация прерываний и
исключений приведена на рис. 1.8.
Во всех этих ситуациях микропроцессор завершает выполнение очередной
команды и заносит в стек текущее содержимое программного счетчика PC,
которое является адресом возврата к прерванной программе после реализации
подпрограммы обслуживания, и содержимое рел^стра состояний SR. Если
запрос прерывания поступает от внешнего устройства, то процессор
формирует сигнал подтверждения прерывания, который информирует это
устройство, что начато обслуживание данного запроса. Затем в PC
загружается из памяти вектор прерывания Ve - начальный адрес
соответствующей подпрограммы обслуживания. Эти вектора являются входами в
подпрограммы обслуживания и хранятся в таблице векторов прерываний,
которая обычно записывается в ОЗУ. Размер таблицы зависит от числа типов
обслуживаемых прерываний и исключений. В простейших микропроцессорах это
число составляет несколько единиц, а для микропроцессоров семейства
Pentium или MC68000 обеспечивается возможность реализации до 256
различных подпрограмм обслуживания.
Рис. 1.8. Классификация прерываний и исключений
25
ОСНОВЫ МИКРОПРОЦЕССОРНОЙ ТЕХНИКИ
Завершается подпрограмма обслуживания специальной командой возврата из
прерывания IRET, которая выбирает из стека хранившееся содержимое PC и SR
и загружает его обратно в эти регистры, обеспечивая возвращение к
выполнению прерванной программы.
Программные прерывания реализуются при поступлении специальных команд
(INTn, INT3, INTO для микропроцессоров Pentium, TRAPn для
микропроцессоров семейства MC68000 и другие). Эти команды вызывают
переход к выполнению стандартных подпрограмм обслуживания, для размещения
которых выделяются определенные позиции в ОЗУ. Таким образом, при вызове
подпрограмм обслуживания реализуется обращение к фиксированным адресам.
Причинами аппаратных прерываний являются запросы от различных внешних
(периферийных) устройств системы. Эти запросы поступают на внешние выводы
микропроцессора или формируются периферийными устройствами, размещенными
на одном кристалле с процессором. Аппаратные прерывания могут быть
маскируемые или немаскируемые.
Запросы маскируемых прерываний обслуживаются только в том случае, если
соответствующий бит управления I в регистре состояния SR, который
называется маской прерываний, имеет значение 1. В процессорах Pentium это
бит IF в регистре EFLAGS. С помощью специальных команд значение этого
бита может быть установлено в 1 или сброшено в 0. Таким образом, можно
разрешить или запретить обслуживание поступивших аппаратных прерываний
при выполнении определенных программ или их фрагментов. При одновременном
поступлении нескольких запросов обслуживание реализуется в соответствии с
их приоритетом. В ряде микропроцессорных систем для обеспечения
приоритетного обслуживания запросов от многих внешних устройств
включаются специальные микросхемы -контроллеры прерываний. Некоторые типы
микропроцессоров имеют внутренние контроллеры для организации
приоритетных прерываний.
Немаскируемые запросы прерывания обслуживаются в первоочередном порядке и
не могут быть маскированы. Обычно микропроцессор имеет один вход для
подачи немаскируемых запросов, которые формируются при возникновении
каких-либо аварийных ситуаций. Чаще всего этот вход используется для
контроля напряжения питания. Если напряжение питания выходит за
допустимые пределы, то специальный датчик вырабатывает немаскируемый
запрос прерывания, поступающий в микропроцессор. При этом источник
питания должен некоторое время (порядка 10 мс) сохранять необходимый
уровень напряжения питания, в течение которого микропроцессор выполняет
подпрограмму перезаписи на магнитный диск информации, достаточной для
продолжения прерванной программы после восстановления нормального режима
питания.
Предыдущая << 1 .. 11 12 13 14 15 16 < 17 > 18 19 20 21 22 23 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed