Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЭВМ и ПУ для студентов / Организация системы прерываний

.docx
Скачиваний:
43
Добавлен:
10.05.2015
Размер:
811.04 Кб
Скачать

Организация системы прерываний

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

Приостановленная программа называется прерываемой, а новая программа - прерывающей.

После выполнения прерывающей программы процессор возвращается к выполнению прерванной начиная с того места, где она была приостановлена.

Все запросы на прерывание можно разделить на внутренние и внешние.

Примеры внутренних причин прерывания:

♦ при попытке деления на ноль,

♦ при переполнении разрядной сетки,

♦ при выходе программы за установленные для нее пределы памяти (области памяти),

♦ всевозможные сбои в аппаратуре, когда приходят сигналы от системы контроля и диагностики.

Примеры внутренних причин прерывания:

♦ запросы от ЭВМ в многомашинных комплексах,

♦ запросы от источников информации, связанных с ЭВМ по каналам связи,

♦ запросы от датчиков, если ЭВМ связана с технологическим оборудованием,

♦ запросы от таймеров в мультипрограммных режимах работы ЭВМ.

Для организации в ЭВМ режимов прерываний процессор оснащен аппаратными и программными средствами, которые в совокупности называются системой или контроллером прерываний.

Запросы на прерывание - события независимые и могут приходить от разных источников и одновременно. Поэтому система прерываний должна уметь обрабатывать эти запросы в определенном порядке.

Основные функции системы прерываний:

□ Запоминание состояния прерываемой программы.

□ Выбор запросов прерываний и переход к прерывающей программе.

□ Возврат к прерванной программе и восстановление состояния всех регистров и т (состояния на момент прерывания).

□ Возможность изменения приоритетов запросов на прерывание.

Процесс взаимодействия прерываемой и прерывающей программ

t p - время реакции системы

t, - время запоминания состояния прерываемой программы

tnn - длительность самой прерывающей программы

tB - время восстановления состояния прерванной программы

Характеристики системы прерываний

I. tp - время реакции системы. Это время между появлением запроса на прерывание и началом выполнения прерывающей программы. Поскольку запросы могут иметь различный приоритет, то время реакции системы определяется для запросов с максимальным приоритетом.

2. Глубина прерывания. Это максимальное количество программ, которые могут прервать друг друга. Если после начала прерывающей программы прием других запросов запрещен (все остальные запросы могут быть замаскированы и не приниматься к исполнению), то глубина прерывания равна единице.

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

Существует несколько допустимых моментов прерываний:

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

Эта информация и будет словом состояния программы. Время реакции системы определяется в основном длительностью цикла исполнения команд.

2 момент - прерывание по уровню. Используется для машин, работающих в реальном масштабе времени, когда нельзя ждать окончания цикла исполнения команды иначе запросы могут быть потеряны. В этом случае допустимы моменты прерывания после каждого такта. Прерывание называется «по уровню», потому что запоминается больше информации, чем при прерывании по слову состояния программ.

Запоминается следующая информация:

> содержимое программного счетчика прерываемой программы

> состояние триггеров-флажков, то есть регистр флагов

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

Информация, подлежащая запоминанию, называется вектором состояния программы (или словом состояния программы).

При переходе к прерывающей программе вектор состояния прерываемой программы запоминается в ОЗУ в определенной ячейке, а из ОЗУ на регистр слова состояния процессора загружается вектор состояния (или вектор прерывания) прерывающей программы.

Все вектора прерываний хранятся в ОЗУ в определенных ячейках памяти.

Взаимодействие векторов

РССП - регистр слова состояния программы Если а - адрес, на котором была прервана программа, то с адреса (α +1) возобновляется работа прерываемой программы.

4. Уровни системы прерываний. Количество запросов на прерывание ЭВМ может достигать порядка сотен. Определенные группы причин прерываний могут вызывать одну и ту же прерывающую программу. Тогда такие запросы объединяются в уровни и каждый уровень (то есть группа запросов) вызывает одну прерывающую программу.

Работа схемы:

Все запросы на прерывание поступают на регистр запросов прерываний и взводят в единицу соответствующие им триггеры. Запросы сгруппированы таким образом, чтобы каждая группа вызывала свою прерывающую программу.

Указанные запросы в регистре запросов прерываний поступают на схему запроса уровней, причем если был хотя бы один запрос от одного уровня, то вырабатывается общий сигнал прерывания, который приостанавливает выполняемую программу, а схема распознавания уровней осуществляет переход к прерывающей программе с наибольшим приоритетом.

РЗП - регистр запросов прерываний

Элементы «ИЛИ» - схема запроса уровней

ОСП - общий сигнал прерываний

Приоритетное обслуживание прерываний

Выделение запроса с максимальным приоритетом может осуществляться программным способом и аппаратным.

Программный способ

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

Достоинство метода - отсутствие дополнительных аппаратных затрат.

Недостатки методабольшое время реакции системы так как программа, обрабатывающая запрос, хранится в ОЗУ и для ее инициализации требуются определенные временные затраты.

Используется способ редко в простых средствах вычислительной техники. С целью уменьшения времени реакции системы в процессор встраиваются схемы, которые позволяют более быстрой перейти к прерывающей программе.

Аппаратный способ

Это более дорогостоящий способ по сравнению с программным. Используется два типа схем:

Схема выделения запроса с наивысшим приоритетом циклическим способом

В состав схемы входит:

> времязадающий элемент - двоичный счетчик, на котором фиксируются двоичные коды уровней запросов начиная с наименьшего,

> дешифратор, который преобразует двоичные коды уровней запросов в унитарный код,

> система схем «И» для выделения запроса с наивысшим приоритетом,

> управляющие элементы триггер управления - схема "&0"

Начало цикла опроса задается сигналом Топр.- При его поступлении устанавливается в ноль триггер управления (то есть на инверсном выходе триггера управления - единица) и по синхроимпульсам от схемы "&0" начинает заполняться двоичный счетчик.

Дешифратор последовательно дешифрирует коды счетчика и по мере заполнения счетчика на выходах дешифратора последовательно устанавливаются высокие уровни. Сигналы с выходов дешифратора поступают на схемы «И» для выделения запроса на прерывание, причем опрос начинается с запроса с наименьшим номером, то есть с максимальным приоритетом.

При срабатывании одной из схем «И» триггер управления устанавливается в единицу, вырабатывается ОСП и блокируется заполнение счетчика. Тогда с выхода счетчика снимается двоичный код уровня запроса на прерывание, который будет соответствовать той прерывающей программе, которая должна быть вызвана процессором. Следующий цикл вновь начинается по сигналу опроса.

В случае данной схемы время реакции системы определяется цикличностью работы счетчика.

Схема параллельного однотактного опроса

В состав схемы входит:

> цепочка схем «И» для анализа уровней,

> шифратор двоичного кода запросов.

Схема предполагает практически одновременный опрос всех запросов от уровней.

Начало опроса задается сигналом опроса. С приходом запроса происходит его анализ на схеме "&1.1". Если запрос с номером «1» отсутствует, схема "&1" открыта и сигнал опроса поступает на второй уровень, то есть анализируется состояние схемы "&2.1" и т.д.

Если запрос выставлен, то он поступает на шифратор, кодируется и принимается к исполнению. При этом вырабатывается общий сигнал прерывания, останавливающий выполняемую программу.

Данная схема позволяет быстро (за один такт) проанализировать все запросы на прерывание, сократив время реакции системы. Задержка с выходом на уровень будет в основном определяться параметрами элементов «И».

Управление приоритетом прерывающих программ

Во всех вышерассмотренных случаях приоритет запроса задавался жестко путем их коммутации в схемах опроса.

Часто в мультипрограммных режимах необходимо иметь возможность изменять приоритеты. Для этого используется маска прерывания и порог прерывания.

Маска прерывания

Это двоичный код, разряды которого поставлены в соответствие уровням прерываний.

Маска загружается в специальный регистр по команде загрузки.

Разряды регистра маски используются следующим образом: если в данном разряде, соответствующем определенному уровню прерывания, записана единица, то прерывание разрешается, если же ноль, то запрещается.

Если в каком-то разряде регистра маски ноль, то говорят, что соответствующий уровень прерывания замаскирован. Даже максимальный приоритет, если он замаскирован, не обслуживается.

Данный способ удобно использовать при отладке программ, когда маскируются все запросы, кроме данной программы.

Порог прерывания

Задается специальной командой путем записи кода порога прерывания на специальный регистр порога прерывания и его код сравнивается с двоичным кодом запроса прерывания.