Подпрограмма - обслуживание - прерывание - Большая Энциклопедия Нефти и Газа, статья, страница 4
Русские называют доpогой то место, где собиpаются пpоехать. Законы Мерфи (еще...)

Подпрограмма - обслуживание - прерывание

Cтраница 4


В ряде случаев необходимо обеспечить, чтобы устройство с более высоким приоритетом могло прервать подпрограмму обслуживания устройства с менее высоким приоритетом, но не наоборот. Действительно, допустим, что процессор обрабатывает подпрограмму обслуживания прерывания принтера, в которой прерывания процессору разрешены, и поступает запрос от внешней памяти на гибких дисках.  [46]

Чтобы выполнить подпрограмму обслуживания длиной более 8 байт, обычно в ячейке, на которую указывает вектор прерывания, хранится команда безусловного перехода. Она инициирует подпрограмму обслуживания прерывания, находящуюся в любой области памяти. Так как перед возвратом в прерванную программу будут модифицированы PSW и рабочие регистры, используемые в подпрограмме обслуживания прерывания, она должна временно запоминать и восстанавливать их.  [47]

Схематически обмен по прерыванию изображен на рис. 3.1 в. Центральный процессор выполняет работу по программе, называемой фоновой, которая может быть не связана с обменом, при этом часть центрального процессора, называемая арбитром, следит за появлением сигнала требования прерывания от внешнего устройства. При поступлении этого сигнала центральный процессор, закончив выполнение текущей команды фоновой программы, организует с помощью арбитра переход на подпрограмму обслуживания прерываний от данного устройства, в которой и происходит обмен одним из программно-управляемых способов. После окончания выполнения подпрограммы обслуживания прерывания осуществляется переход в фоновую программу на то место, с которого она была прервана.  [48]

Методология построения системы прерываний ВМ85А подчинена архитектуре ВМ80, однако число возможных источников прерываний на аппаратном уровне увеличено с одного до пяти. Наряду с типовым векторным запросом INTR ( INT для ВМ80) введены еще четыре, имеющие фиксированные векторы прерываний. Это означает, что при появлении соответствующего запроса управление передается на ячейку с фиксированным адресом, приведенным в табл. 2.7. Из таблицы видно, что стартовые адреса подпрограмм обслуживания прерываний находятся в области точек входа по команде RST п, п 0 - 7, но расположены посередине между ними.  [49]

Если однокристальный АЦП используется для ввода информации по нескольким каналам - через мультиплексор, то к программе добавляются команды переключения кода мультиплексора. Если сбор данных от АЦП идет на частоте, значительно меньшей максимальной частоты программного обмена, то одновременно со сбором данных можно выполнять программу предварительной обработки, например масштабирование или калибровку. При этом после инициализации прерывания ( см. предыдущую программу) следует вместо останова перейти в программу предварительной обработки, а после прерывания выйти из данной программы в подпрограмму обслуживания прерывания. Если цикл обработки полностью завершается перед вводом очередного отсчета и все результаты находятся в оперативной памяти, то все время, оставшееся от ввода, может быть использовано для обработки. Если обработка продолжается в момент прерывания для очередного ввода, то необходимо сохранить значения регистров в стеке и восстановить их после конца ввода отсчета.  [50]

51 Временные диаграммы командного цикла IN port. [51]

Как уже отмечалось, МП ВМ85А имеет пять линий для приема запросов на прерывание: INTR, RST 5.5, RST 6.5, RST 7.5 и TRAP. В ответ на запрос INTR генерируется один или три машинных цикла INTA с временными диаграммами, эквивалентными циклу RD без тактов ожидания. Внешняя аппаратура отвечает на циклы INTA генерацией команды либо типа RSTn, n 0 - 7 ( случай одного цикла INTA), либо типа CALL addr ( случай трех циклов INTA), обеспечивая передачу управления на подпрограмму обслуживания прерывания.  [52]

Клавиатура первого типа представляет собой функционально законченный автономный блок, на выходе которого формируются стандартный код для обмена с центральным процессором и импульс записи в порт ввода. Тип клавиши ( механическая или сенсорная) не влияет на структуру интерфейса, который выполняется по структурной схеме, показанной на рис. 4.2 а. При нажатии клавиши в интервале, свободном от дребезга, формируется стробгимпульс записи, код записывается в многорежимный буферный регистр МБР ( или программируемый параллельный интерфейс), на выходе которого появляется сигнал прерывания. В подпрограмме обслуживания прерывания микропроцессор считывает код из МБР, адресуясь к нему через адресный селектор; прерывание при этом сбрасывается. Формирование кода нажатой клавиши и защита от дребезга требуют аппаратных затрат.  [53]

При пуске выполняется модуль начальной загрузки LOAD, в котором загружаются параметры грубого и точного поиска ( которые можно модифицировать), программируется таймер, запрещается прерывание, определяется стек и пр. Затем включается модуль определения шага поиска STDEF и в системе устанавливаются параметры грубого поиска. Потом разрешается прерывание и система начинает реагировать на сигналы таймера. В подпрограмме обслуживания прерывания INPXY производятся ввод с каналов х, у и расчет заданного при грубом поиске числа приращений взаимной корреляционной или полярной функций. По окончании ввода заданного числа значений система переходит из модуля INPXY в модуль определения максимума MXDEF, прерывание при этом запрещается. Максимум определяется методом сканирования всех накопленных значений взаимной корреляционной или полярной функции; максимальное значение функции и соответствующее значение транспортного запаздывания запоминаются. Если максимальное значение функции выше уровня помех б ( ложных экстремумов), то система возвращается в модуль STDEF, где задаются параметры точного поиска, в противном случае программа продолжается на другом входе модуля STDEF, где задаются параметры грубого поиска. Таким образом, измерение происходит непрерывно, пока от оператора не поступит сигнал останова.  [54]

Схематически обмен по прерыванию изображен на рис. 3.1 в. Центральный процессор выполняет работу по программе, называемой фоновой, которая может быть не связана с обменом, при этом часть центрального процессора, называемая арбитром, следит за появлением сигнала требования прерывания от внешнего устройства. При поступлении этого сигнала центральный процессор, закончив выполнение текущей команды фоновой программы, организует с помощью арбитра переход на подпрограмму обслуживания прерываний от данного устройства, в которой и происходит обмен одним из программно-управляемых способов. После окончания выполнения подпрограммы обслуживания прерывания осуществляется переход в фоновую программу на то место, с которого она была прервана.  [55]

Существует несколько методов реализации системы прерывания. Рассмотрим, как происходят прерывания при запросе внешнего устройства на обмен в системах, реализующих прерывание с опросом и прерывание по вектору. В первом случае, при помощи технических или программных средств осуществляется поочередный опрос устройств до выявления устройства, которое стало причиной прерывания. После этого происходит передача управления на подпрограмму обслуживания прерывания. В этом случае, если говорить о приоритете, то он определяется местом устройства, которое вызвало прерывание, в последовательности опроса. При прерывании по вектору управление по запросу прерывания передается на соответствующую программу обслуживания. Программа обслуживания начинает свою работу с блока идентификации, осуществляющего опознание устройства и определение причины прерывания. Кроме того, он выдает уведомление о возможности прерывания и ожидает от устройства подтверждающих сигналов готовности к обмену. Дальнейшая работа ( после получения от устройства сигнала готовности к обмену) осуществляется под управлением блока управления обменом.  [56]



Страницы:      1    2    3    4