Cтраница 3
Специального упоминания здесь заслуживает способ реализации счетного триггера из схемы на рис. 22.2. Компьютеру необходимо знать точное время изменения знака ( скажем, с отрицательного на положительный) входного сигнала, чтобы в нужный момент прочитать показание счетчика и сбросить его для измерения следующего интервала времени. Осуществить это можно было бы, просто соединив вход ( если он уже приведен к уровням ТТЛ) с выводом NMI ( немаскируемое прерывание) процессора; в этом случае вся программа была бы просто программой обслуживания прерывания, кончающейся командой HLT. Дополнительно к этому существует задержка приблизительно иа 10 икс между считыванием показания счетчика и моментом его сброса. Каждая из этих ошибок вносит свой вклад в погрешность измерения периода, но обе они незначительны в сравнении с разрешающей способностью счетчика, которая равна 2 миллисекундам. [31]
Идентификация запроса заключается в определении адреса приоритетного источника запроса. В машинных интерфейсах получаемая при запросе адресная информация называется вектором прерывания. Последний обозначает начальный адрес программы обслуживания прерывания от данного устройства. [32]
Для обеспечения возможности продолжения прерванной задачи необходимо на время работ диспетчера запомнить и сохранить состояние основных регистров машины. Именно с этих операций и начинает работу программа обслуживания прерываний. [33]
Ячейка памяти программ с нулевым адресом является стартовой. При сбросе системы в PC и MB записывается 0, что обеспечивает автоматическую передачу управления по стартовому адресу МК. Адреса 003 и 007 также являются точками входа в память программ обслуживания прерываний от внешнего запроса и таймера / счетчика соответственно. [34]
Согласно изложенному выше, время разрешения представляет собой интервал времени между завершением последней команды прерываемой программы и началом первой команды в программе обслуживания прерывания. Именно в течение этого интервала система выполняет действительное переключение функций и определяет точную причину прерывания. Время реакции равно интервалу времени между поступлением заявки на прерывание и запуском программы обслуживания прерывания. Следовательно, время разрешения и время реакции различаются по меньшей мере на время задержки. [35]
Простейшая схема приоритетного прерывания допускает одновременное принятие к обработке только одного условия прерывания. Предусматривается блокировка программы прерывания от самопрерывания. Казалось бы, это наиболее дешевый метод, который удовлетворительно работает, если время прогона программы обслуживания прерывания меньше, чем требуемое время реакции на самое важное условие прерывания. Однако в общем случае автоматизированного управления дело обстоит иначе, и применяемые методы оказываются сложнее. [36]
Находясь в любом из этих состояний, процессор не выполняет никаких действий ( такты ожидания TW на рис. 1.9) до тех пор, пока не будут поданы определенные внешние воздействия. При выполнении команды HLT содержимое указателя команд IP автоматически увеличивается на единицу, так что после выполнения программы обслуживания прерывания процессор перейдет к выполнению следующей за HLT команды. [37]
Структурная схема микро - ЭВМ СМ-1633. [38] |
Процесс обмена между устройствами через канал асинхронный: если в течение определенного отрезка времени не появится сигнал, подтверждающий принятие информации, вырабатывается сигнал прерывания. Микро-ЭВМ имеет векторную однофазную систему прерываний. Устройство, прерывающее выполнение программы, резервирует канал обмена для передачи вектора прерывания, который является адресом ячейки, где находится адрес начала программы обслуживания прерывания. [39]
При векторном интерфейсном прерывании, производится передача вектора прерывания по линиям данных. Схема управления прерыванием задатчика прерывает программу процессора и производит захват управления интерфейсом на все время обработки запроса на прерывание. Далее могут быть два варианта процедуры прерывания: с одним или двумя дополнительными сигналами INTA, во время которых по линиям данных передается один или два байта векторного адреса прерывания, который определяет адрес памяти с программой обслуживания прерывания. Число дополнительных сигналов INTA определяется используемыми типами МП и контроллера прерывания. [40]
Раздел инициализации также определяет константу управления EFCOP. Константа FCON конфигурирует EFCOP для работы в режиме реального фильтра КИХ с разрешением адаптивного режима. Как только значение записано в FKIR, EFCOP выполняет сессию модификации коэффициентов. В константе FCON также разрешено прерывание при заполненном выходном буфере. Когда выходной буфер полон, EFCOP вызывает программу обслуживания прерывания, которая изменяет значения коэффициентов фильтра. [41]
Однако чаще всего аппаратура прерывания инициирует команду перехода и тем самым обеспечивает сохранность содержимого регистра команд. Аппаратура прерывания может также обеспечивать сохранность содержимого некоторых арифметических и управляющих регистров, однако эта функция возлагается на программу обслуживания прерывания. Она же осуществляет и восстановление содержимого регистров после завершения обслуживания прерывания. Адрес перехода в команде прерывания устанавливает уровень прерывания, и если уровням присвоены приоритеты, то уровни с низшими приоритетами должны маскироваться. Тогда они не смогут вызвать прерывания до тех пор, пока не будут завершены программы с более высоким приоритетом. Маскирование прерываний с низкими приоритетами может выполняться аппаратурой прерывания и ( или) программами обслуживания прерываний. Если аппаратура не маскирует уровни с низким приоритетом до завершения программы обслуживания прерывания, первым действием этой программы является сохранение старой и установка новой масок. [42]
Однако чаще всего аппаратура прерывания инициирует команду перехода и тем самым обеспечивает сохранность содержимого регистра команд. Аппаратура прерывания может также обеспечивать сохранность содержимого некоторых арифметических и управляющих регистров, однако эта функция возлагается на программу обслуживания прерывания. Она же осуществляет и восстановление содержимого регистров после завершения обслуживания прерывания. Адрес перехода в команде прерывания устанавливает уровень прерывания, и если уровням присвоены приоритеты, то уровни с низшими приоритетами должны маскироваться. Тогда они не смогут вызвать прерывания до тех пор, пока не будут завершены программы с более высоким приоритетом. Маскирование прерываний с низкими приоритетами может выполняться аппаратурой прерывания и ( или) программами обслуживания прерываний. Если аппаратура не маскирует уровни с низким приоритетом до завершения программы обслуживания прерывания, первым действием этой программы является сохранение старой и установка новой масок. [43]