Материалы

Источники прерываний: внешние и внутренние события. Радиальная схема прерывания

Рейтинг:   / 0
ПлохоОтлично 

Источники прерываний: внешние и внутренние события

До сих пор речь шла о событиях, внешних по отношению к
вычислительному ядру (процессор + память).

В ходе выполнения программы могут произойти внутренние события, которые заранее трудно предсказуемы, например:

•арифметическое переполнение;

•деление на нуль;

•появление в программе недопустимой команды (из-за ошибки программиста, из-за сбоя, из-за того, что программа разрабатывалась для "старших" моделей семействапроцессоров и использует команды, отсутствующие в младшей модели);

•обращение к несуществующему адресу памяти;

• и многие другие подобные.

Такие внутренние события, делающие нормальное продолжение основного алгоритма невозможным, принято называть прерываниями по внутренним причинам, исключительными ситуациями или исключениями (exceptions).

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

Радиальная схема и управление прерываниями. Контроллер прерываний

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

 

ПКП выполняет несколько функций:

1) преобразовывает радиальную схему подключения периферийных устрой в векторную;
2) обеспечивает обмен сигналами с процессором для идентификации источника прерываний;
3) позволяет управлять приоритетами отдельных запросов;
4) дает возможность программно разрешать/запрещать прерывания отдельно для каждого источника, а также выбирать фрагмент входного сигнала, инициирующий запрос (уровень или фронт, активная полярность).

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

Яндекс.Метрика