Аппаратные средства системы прерываний
Введение
Недостатки механизма опроса
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 – запрещаем.