Характеристики системы прерываний.
1. общее число запросов прерывания; 2. число запросов внешних прерываний; 3. время реакции - время межу появлением запроса прерывания и началом выполнения прерывающей;
Особенности:
• Т.к. время реакции в общем случае зависит от приоритета запроса, то оно определяется для запроса с самым высоким приоритетом;
• Время реакции может включать в себя t3 при аппаратной реализации запоминания состояния прерываемой программы;
• Если реакция на прерывание возможна только между выполнением отдельных команд программы, то на время реакции оказывает влияние время выполнения команд;
• Применение МП выдвигает соответствующие требования на время реакции. Особенно высокие требования для систем, работающих в реальном режиме времени, когда обработка события должна происходить очень быстро. Для снижения времени реакции используют: возможность прерывания после каждого такта команды запоминание только части информации о прерванной программе; наличие ортогональных состояний МП.
4. затраты времени на переключение программ
5. глубина прерывания - максимальное число программ, которые могут прерывать друг друга.
Если после перехода к программе обработке прерывания и до ее окончания обработка запросов больше не возможна, то глубина равна 1
Если запрос прерывания окажется не обслуженным до прихода следующего запроса от того же источника, то наступает насыщение системы прерываний и запрос будет потерян. Для избегания этого необходимо согласовывать быстродействие МП с частотой запросов прерываний.
6. число уровней прерываний
Т.к. ЭВМ может иметь большое число источников прерываний, а их полная реализация в процессоре зачастую невозможна, все запросы делятся на классы (уровни).
Совокупность запросов прерывания, которые инициируют одну и туже программу обработки прерываний образуют уровень прерываний. На этом принципе основан способ увеличения числа возможных источников запросов прерываний.
Организация обработки прерываний.Поскольку прерывание схоже с вызовом подпрограмм, то и организация перехода также похожа на переход к подпрограммам. Для организации перехода к программе обслуживания прерывания необходимо иметь информацию о том, где находится эта программа, т.е. необходим ее адрес. Эта информация содержится в векторе прерывания. Вектор прерывания содержит всю необходимую информацию для организации перехода к программе обслуживания прерывания. Вектор прерываний ставится в соответствие каждому уровню прерывания.
Для организации возврата в основную программу после окончания программы обработки прерывания состояние МП (PC, PSW) сохраняется в специальном регистре или стеке.
Способы формирования векторов прерывания.
1) Если имеется один запрос прерывания, то в МП вводится дополнительный регистр, в котором хранится адрес первой команды программы обработки прерываний. При переходе к этой программе, процессор загружает адрес из этого регистра в счетчик команд (рисунок).
2) Если имеется несколько запросов прерывания и несколько программ их обслуживания, то необходимо иметь средства хранения нескольких адресов программ обработки прерывания и функцию определения от какого устройства поступил запрос. a) Функцию определения адреса берет на себя процессор: МП имеет количество входов запроса прерывания INT равное количеству источников прерывания, и с каждым из этих входов (жестко) связывается определенный адрес подпрограммы обработки прерывания
b) Функцию определения адреса берет на себя специальный контроллер прерываний (специальная схема), который сообщает МП прямо или косвенно адрес программы обработки прерывания. Передача информации обычно происходит по шине данных.
Для задания адресов контролер соответствующим образом программируется. Процессор в этом случае имеет один вход запроса прерывания. "+" большое количество векторов прерывания
"-" медленно, так как необходимы циклы для чтения адреса программы обработки прерывания.
Способы передачи процессору адреса программы обработки прерывания. 1. Передача процессору команды целиком: CALL addr, RSTn (используется в МП к580ВМ80 (8080)). Процессор в цикле подтверждения прерывания читает и выполняет команду из контролера прерываний 2. Передача не адреса программы обработки прерывания, а номера вектора прерывания. При этом сами адреса программ хранятся в МП (обычно в памяти) и называются таблицей векторов прерываний. При этом устанавливается однозначная связь между номером вектора и его месторасположением в таблице. Принятый микропроцессором номер вектора от контролера выбирает вектор прерывания в таблице, откуда МП берет адрес программы обработки.
Обработка приоритетов запросов прерываний. При наличии в системе нескольких запросов прерываний появляется необходимость устанавливать им приоритеты, так как при одновременном наличии нескольких запросов необходимо выбирать для обработки один из них. Различают:— абсолютный приоритет,— относительный приоритет. Запрос, имеющий абсолютный приоритет, прерывает текущую программу, а относительный приоритет является кандидатом на обслуживание по окончании текущей программы. Часто приоритет определяется порядком соединения линий запросов прерываний к входам системы прерываний. Больший приоритет имеет запрос, который подключен к входу с меньшим номером.
Способы аппаратной реализации приоритетного обслуживания прерываний.
1. с циклическим опросом источников прерывания После сигнала сброса счетчик начинает считать импульсы, поступающие через элемент 1. При помощи дешифратора по содержимому счетчика проверяется наличие запроса прерывания, номер которого совпадает с кодом счетчика. Если на входе нет запроса, то продолжается счет импульсов, иначе (IRQ = 1), триггер устанавливается, вырабатывая запрос прерываний, и блокирует прохождение импульсов на счетчик. Таким образом, содержимое счетчика содержит код номера запроса прерывания.
2. цепочечная однотактная схема определения запроса: Опрос инициируется сигналом "приоритет" = 1. Если запросов нет, то сигнал проходит через все элементы, а на входе шифратора все 0. При наличии запроса прерываний (например, IRQ2) сигнал "приоритет" дальше не проходит (на анализ IRQ3 не подается) и на соответствующем входе шифратора появляется "1", которая формирует ОЗП, а шифратор формирует код номера запроса. Программно управляемый приоритет прерывающих программ. Часто необходимо иметь возможность изменения приоритета запросов прерываний, т.е. приоритет должен быть программно-управляемым. В ЭВМ широко применяют 2 способа реализации программного управления приоритетами:- порог прерывания, - маска прерывания.