КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Воспринятие прерывания
Ожидание Распространение запроса Стадии обработки прерывания Процесс обработки запроса от внешнего устройства системой прерываний можно разбить на 3 этапа: а) распространение запроса б) ожидание в) воспринятие прерывания
1) Внешнее устройство (ВУ) через интерфейс (И) передает сигналы на свой контроллер ВУ (КВУ). КВУ в один из внешних регистров (ВР) прописывает N вектора прерывания. Все программы обработки прерываний программируются как динамически вызываемые программы.
2) КВУ активизирует соответствующую INTi линию, переводя ее из 0 в1, сообщая этим КП о наличии запроса.
3) КВУ выполняет следующее: а) для каждого сигнала с линии INTi проверяет запрещена или разрешена обработка б) если имеется несколько сигналов INTi от разных контроллеров, КП определяет - от какого контроллера запрос должен быть обработан в первую очередь. В некоторых ЭВМ алгоритм определения приоритетного запроса сложен и может программироваться. В простейшем случае (IBM PC) контроллер считает более приоритетными прерывания, полученные по линиям прерываний с меньшим номером. в) выбрав КВУ, КП считывает из соответствующего ВР этого КВУ номер программы обработки прерывания и записывает его в регистр RN. г) завершив подготовку, КП активизирует сигнал INT и сообщает ЦП о наличии запроса на обработку.
Процессор никак не реагирует на сигнал INT, пока не закончит выполнение той команды, что уже начал. Только в конце выполнения команды - процессор проверяет наличие сигнала INT. Как долго приходиться ждать? В большинстве процессоров не долго - не более нескольких десятков тактов работы ЭВМ. Но имеются процессоры, в системе команд которых присутствуют команды обработки структурированных данных. Тогда стадия ожидания может затянуться, а это значит снижение реактивности ЭВМ.
Как показано в рисунке 3.6.2 в конце цикла выполнения команды происходит проверка наличия сигнала INT. Рассмотрим подробнее дальнейшее выполнение:
Микрооперация n: проверка наличия сигнала INT (если 1 – обработка продолжается, 0 - нет). Эта та самая "стандартная микрооперация что была упомянута в разделе [3.6.2]. Там мы писали: если процессор обнаружил наличие сигнала INT – переходим к выполнению действий по обработке прерывания. И не стали детально разбираться что же это за "действия по обработке прерывания", теперь – рассмотрим эти действия:
Микрооперация 1: проверка флага IF (флага прерывания) регистра RF. (если 0 – прерывание не обрабатывается, 1 – продолжение обработки)
Микрооперация 2: сигнал INTA переводится в 1, этим процессор сообщает КП о том, что прерывание воспринято, и КП необходимо начать загрузку в процессор номера вектора прерывания N программы обработки прерывания.
Микрооперации 3,4 – сохранение в системном стеке регистра RF.
Микрооперации 5,6 – загрузка в системный стек адреса возврата.
Обратим внимание: адрес возврата не вычисляется, в отличии от алгоритмов CALL и INT, по той причине, что он уже вычислен при выполнении последней выполненной команды.(см.3.10.3 и 3.11.2)
Микрооперация 7 – загрузка в PC адреса программы обработки прерывания. см.[3.14.3]
Микрооперация 8 – сигнал INTA переводится в 0. Этим процессор сообщает КП, что воспринятие этого прерывания закончено и КП - может начинать подготовку следующих сигналов прерывания.
Выводы: мы видим - алгоритм очень похож на алгоритм динамического вызова подпрограммы. Это – по сути, и есть динамический вызов подпрограммы. Процессор - получив сигнал прерывания и номер вектора прерывания от контроллера внешнего устройства - осуществил переход к выполнению динамически вызываемой "программы обработки прерывания".
Дата добавления: 2014-01-04; Просмотров: 342; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |