8
- проверки готовности ПУ к обмену;
- реализации непосредственно операций ВВ.
Первая фаза обмена в большинстве случаев реализуется путем циклического
вызова содержимого регистра состояния ППУ в аккумулятор, сравнения его с неко-
торой маской и анализа полученного результата, т.е. происходит реализация цикла
ожидания готовности ПУ. На реализацию цикла ожидания затрачивается время, ино-
гда весьма значительное. Это является существенным недостатком такого вида об-
мена, поскольку в период ожидания процессор не может выполнять полезной рабо-
ты, т.е. фактически простаивает.
8.3. ВВ ПО ПРЕРЫВАНИЯМ
Для сокращения непроизводительных потерь времени процессора за счет цик-
лов ожидания при программном обмене, т.е. когда процессор не может заниматься
ничем, кроме программы ВВ, используют обмен по прерыванию.
При готовности к обмену ПУ посылает в процессор запрос на обслуживание –
сигнал INT (запрос прерывания). Этот сигнал появляется в произвольные моменты
времени, а следовательно, и в произвольной точке текущей программы. Поскольку
заранее неизвестно, в какой точке программы и какие ПУ инициируют прерывания,
непосредственно в программе команды ВВ использовать нельзя.
Общие вопросы организации системы прерываний в ЭВМ рассмотрены ранее
в гл. 6. Некоторые вопросы, связанные с обслуживанием прерываний, рассмотрены
при изучении команд RST и RET. Между тем использование конкретного процессора
вносит свои особенности в последовательность операций по обслуживанию преры-
вания. Для микроЭВМ, построенной на базе МП комплекта КР580, эта последова-
тельность выглядит следующим образом:
1. Контроллер ПУ или адаптер промежуточного интерфейса генерирует сигнал
запроса прерывания, который подается на вход INT процессора непосредст-
венно (если ПУ одно) или через контроллер прерываний (если ПУ много) в виде
общего сигнала прерывания.
2. При наличии нескольких ПУ в контроллере прерывания осуществляется
идентификация прерывающего устройства (т.е. выясняется, откуда поступил
сигнал INT, и его приоритет).
3. Процессор завершает текущую команду и, если прерывание разрешено,
формирует сигнал INTA (подтверждение прерывания), который выдается во
внешнюю цепь (в частности, в системный контроллер), а также сбрасывает
внутренний триггер разрешения прерываний, состояние которого идентифици-
руется сигналом INTE.
4. Содержимое PC (счетчик команд) автоматически запоминается в стеке.
5. Происходит переход к подпрограмме обслуживания данного ПУ (обработчи-
ку), при этом выполняются следующие операции:
- запоминание состояния прерванной программы, которое должно быть
предусмотрено пользователем, т.е. составителем подпрограммы (это сло-
во состояния процессора PSW ≡ (A) (РгП), а также содержимое РОН, ис-
пользуемых в подпрограмме обслуживания прерывания); обычно для за-
поминания используют стек. В ряде современных процессоров PSW авто-
матически сохраняется в стеке, как и содержимое счетчика PC;
- выполнение собственно программы обслуживания процесса ВВ;
- восстановление состояния прерванной программы (т.е. извлечение и
загрузка в соответствующие регистры PSW и содержимого РОН из стека).
6. Возобновляется выполнение прерванной программы по команде RET, яв-
ляющейся обязательной последней командой обработчика.