б) в зависимости от того, какое ПерУ стало источником ЗПр, может быть наложена или не наложена блокировка;
в) как определить, когда прерывание обслужено? нужна специальная команда окончания?
Видимо некоторые операции необходимо рассмотреть подробнее.
Процессы запоминания состояния процессора после восприятия ЗПр и его восстановления называют иногда контекстным переключениями. Их скорость существенно влияет на производительность ЭВМ. Поэтому-то и используются стеки.
<146>
Способы решения проблемы идентификации различаются скоростью реакции процессора и объемом дополнительных аппаратных затрат.
Программный поллинг. Это простейшее, с точки зрения аппаратных затрат, решение, заключающееся в программном опросе флажков (триггеров) готовности ПерУ (сигналов прерываний). Реагируя на прерывание, процессор переходит к подпрограмме, находящейся в фиксированной области памяти с известным начальным адресом. Этот начальный адрес загружается в программный счетчик (СчК) после контекстного переключения.
Рис. 3.3.3.5.
Конкретная реализация поллинга зависит от особенностей системы команд процессора и других особенностей вычислителя. Например, для ускорения программного поллинга сигналы прерываний всех ПерУ подключаются к специальному регистру. Поллинг реализуется посредством ввода в процессор содержимого этого регистра и анализа состояний его отдельных бит (последовательность анализа определяется системой приоритетов).
Недостаток программного полинга – необходимость проверки всех устройств увеличение времени опроса.
<147>
Аппаратный поллинг. (Дейзи – цепь, приоритетная цепочка, гирляндное включение ПерУ и пр.) Он заключается в организации специальной линии распространения сигнала подтверждения прерывания, проходящей через все устройства. Устройство, запросившее прерывание, блокирует (аппаратно!) дальнейшее распространение сигнала. Приоритеты расставляются в соответствии с «географической» близостью к процессору. Затем ПерУ передает в процессор свой адрес с сопровождающим его обычно стробом.
Рис. 3.3.3.6. Схема аппаратного поллинга.
– это стробирующе-синхронизирующий импульс, сопровождающий передачу в процессор адреса идентифицированного устройства.
Рис 3.3.3.7. Внутрипроцессорная схема обработки прерываний (сигналов прерываний INT).
<148>
Векторные прерывания. Если в системе прерывания возникают часто (много внешних устройств, либо каждое из них работает интенсивно и в нескольких режимах), опрос устройств потребует очень много времени. Поэтому в этих случаях выбирают аппаратный поллинг. Формируемый на ШД от идентифицированного внешнего устройства адрес рассматривается как «вектор прерывания», который и используется для обращения к той или иной программе.
«Векторного» в этом адресе лишь то, что он указывает, направляет.
Обычно формирование векторов прерываний возлагается на специальную схему выбора приоритетов (другое название – БПП ).
Контроллеры прерывания. Основные функции:
- аппаратный полинг;
- смена системы приоритетов (круговой простой и по обработке запросов);
Рис. 3.3.3.8.
(возможен и случайный приоритет и многие другие)
- аппаратный запрет прерываний;
- организация многоуровневых прерываний.
Процессорная реализация функций контроллера:
единый алгоритм обработки «нештатных» ситуаций (прерываний, программных прерываний или обращений к подпрограммам, исключений, «ловушек» и т.д.).
<149>
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.