Аппаратные средства системы прерываний

Введение

Недостатки механизма опроса

1) Снижение производительности и реактивности

 

2) Из-за ошибки в программе yelding может не наступать, это означает, что ошибочная программа может нарушить работу ЭВМ.

 

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

 

3.16 Ввод/вывод. Механизм прерываний.

1) Задача та же, что и при механизме опросов, но решается таким образом., что:

- процессор не отвлекается на проведении опросов

- внешние устройства не ожидают опросов, и имеют хороший шанс что их запрос – будет обработан сразу.

 

 

2) Решить задачу таким образом невозможно, не используя дополнительные аппаратные средства. Эти средства в современных ЭВМ поддерживаются и называются "системой прерываний".

 

Вот теперь мы знаем достаточно много чтоб заняться изучением вопроса, подробное рассмотрение которого мы в своё время – опустили.Смотрим первый рисунок "архитектура Гарварда" и разделы [1.10], [3.6.2]

 

Восстановим часть рисунка "Архитектура Гарварда" имеющую отношение к системе прерываний:

 

INT1 …. INTZ – линии прерываний. Единичный сигнал, выставленный на линию – контроллером означает: контроллер требует от процессора приостановить выполнение текущей программы "текущего контекста" и перейти к выполнению определённой "программы обработки внешнего события" или другими словами к выполнению "программы обработки прерывания".

Z – число линий прерывания.

INT – линия генерального запроса на прерывание.

INTA – линия ответа на прерывание (1 на линии означает, что процессор - начал обработку прерывания)

КП – контроллер прерывания;

RN, RFI – регистры контроллера прерывания;

RN – регистр номера линии прерывания;

RFI – регистр флагов прерывания, каждый флаг этого регистра - соответствует линии прерывания:

RFn       RF1

 

RFI можно переписывать; записывая 1 в RFi, мы разрешаем обработку прерываний, поступающих с i-той линии прерываний, 0 – запрещаем.