Обнаружение изменения состояния внешней средыФиксация изменения состояния внешней среды может осуществляться различными схемами: двоичными датчиками, компараторами, схемами формирования состояний и др. Будем полагать, что все эти схемы формируют в конечном итоге логические сигналы запроса на прерывание z, причем для определенности будем считать, что активное состояние этого сигнала передается уровнем логической единицы (Н-уровень). Количество источников запросов в МПС может быть различно, в т. ч. и довольно велико. Дефицит внешних выводов МП в общем случае исключает возможность передачи каждого запроса от ВУ по "собственной" линии интерфейса. Обычно на одну линию запроса подключается несколько источников прерываний (по функции ИЛИ), а иногда и все источники запросов — на единственный вход. Управляющий автомат процессора должен периодически анализировать состояние линии (линий) запросов на прерывания. Каким образом выбирается период проверки? С одной стороны, этот период должен быть коротким, чтобы обеспечить быструю реакцию системы на события. С другой стороны, при переходе на обслуживание прерывания требуется сохранить текущее состояние процессора на момент прерывания, с тем, чтобы, завершив программу-обработчик, продолжить выполнение прерванной программы "с того же места", на котором произошло прерывание. Напомним, что в основе работы процессора лежит командный цикл (см. разд. 2.1), состоящий, в свою очередь, из машинных циклов, каждый из которых длится несколько тактов. Осуществлять прерывание в произвольном такте невозможно, т. к. при этом пришлось бы сохранять в качестве контекста прерванной программы состояние всех элементов памяти процессора. Прерывание по завершению текущего машинного цикла требует сохранение текущего состояния незавершенной команды. Например, при возникновении прерывания в том месте командного цикла, когда из памяти выбраны код команды и первый операнд, а для второго операнда только сформирован исполнительный адрес, следует сохранить: содержимое программного счетчика JFC, код команды, первый операнд и адрес второго операнда. Сохранение этой информации требует как дополнительных аппаратных, так и временных затрат. Очевидно, при возврате к прерванной программе проще начать выполнение текущей команды заново. В этом случае сохранять при прерывании достаточно лишь значение PC. Поэтому в большинстве случаев процессоры анализируют состояние линий запросов в конце каждого командного цикла.
|