Процессоры. Система команд ЭВМ. Устройства управления. Организация внутрипроцессорных систем ввода-вывода информации, страница 17

б) в зависимости от того, какое ПерУ стало источником ЗПр, может быть наложена или не наложена блокировка;

в) как определить, когда прерывание обслужено? нужна специальная команда окончания?

Видимо некоторые операции необходимо рассмотреть подробнее.

Процессы запоминания состояния процессора после восприятия ЗПр и его восстановления называют иногда контекстным переключениями. Их скорость существенно влияет на производительность ЭВМ. Поэтому-то и используются стеки.

<146>

3.3.3.3. Идентификация прерывающего устройства.

Способы решения проблемы идентификации различаются скоростью реакции процессора и объемом дополнительных аппаратных затрат.

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

Рис. 3.3.3.5.

Конкретная реализация поллинга зависит от особенностей системы команд  процессора и других особенностей вычислителя. Например, для ускорения программного поллинга сигналы прерываний всех ПерУ подключаются к специальному регистру. Поллинг реализуется посредством ввода в процессор содержимого этого регистра и анализа состояний его отдельных бит (последовательность анализа определяется системой приоритетов).

Недостаток программного полинга – необходимость проверки всех устройств  увеличение времени опроса.

<147>

Аппаратный поллинг. (Дейзи – цепь, приоритетная цепочка, гирляндное включение ПерУ и пр.) Он заключается в организации специальной линии распространения сигнала подтверждения прерывания, проходящей через все устройства. Устройство, запросившее прерывание, блокирует (аппаратно!) дальнейшее распространение сигнала. Приоритеты расставляются в соответствии с «географической» близостью к процессору. Затем ПерУ передает в процессор свой адрес с сопровождающим его обычно стробом.

Рис. 3.3.3.6. Схема аппаратного поллинга.

– это стробирующе-синхронизирующий импульс, сопровождающий передачу в процессор адреса идентифицированного устройства.

Рис 3.3.3.7. Внутрипроцессорная схема обработки прерываний (сигналов прерываний INT).

<148>

Векторные прерывания. Если в системе прерывания возникают часто (много внешних устройств, либо каждое из них работает интенсивно и в нескольких режимах), опрос устройств потребует очень много времени. Поэтому в этих случаях выбирают аппаратный поллинг. Формируемый на ШД от идентифицированного внешнего устройства адрес рассматривается как «вектор прерывания», который и используется для обращения к той или иной программе.

«Векторного» в этом адресе лишь то, что он указывает, направляет.

            Обычно формирование векторов прерываний возлагается на специальную схему выбора приоритетов (другое название – БПП ).

Контроллеры прерывания. Основные функции:

-  аппаратный полинг;

-  смена системы приоритетов (круговой простой и по обработке запросов);

Рис. 3.3.3.8.

(возможен и случайный приоритет и многие другие)

-  аппаратный запрет прерываний;

-  организация многоуровневых прерываний.

Процессорная реализация функций контроллера:

единый алгоритм обработки «нештатных» ситуаций (прерываний, программных прерываний или обращений к подпрограммам, исключений, «ловушек» и т.д.).

<149>

3.3.4. Организация прямого доступа к памяти.