Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Обмен по прерыванию

Читайте также:
  1. Асинхронный обмен
  2. В 1928 вместе В. Гейзенбергом ввел в физику обменное взаимодействие.
  3. Витамины – это биологически активные вещества, необходимые для нормального обмена веществ, развития и роста организма, повышения сопротивляемости к неблагоприятным факторам.
  4. Влияние инсулина на жировой обмен
  5. Влияние инсулина на обмен углеводов
  6. Выбор теплообменников в тепловой схеме
  7. Деньги:происхождение,сущность,ф-ии,формы.Уравнение денежного обмена И.Фишера

Для внешних устройств, работающих эпизодически или имеющих существенно меньшее быстродействие по сравнению с процессором микроЭВМ, потери машинного времени на ожидание или проверку готовности их к обмену становятся недопустимо большими. В этом случае для сокращения потерь времени практически до нуля используется обмен по прерыванию, особенностью которого является выполнение обмена по инициативе внешнего устройства.

Сущность этого метода заключается в том, что ВУ в момент готовности его к обмену посылает в процессор сигнал запроса на выполнение этого обмена. По этому запросу процессор прекращает выполнение своей программы и переходит к выполнению программы обмена. В связи с этим запросы от внешних устройств на выполнение обмена называются запросами прерывания, а программа выполнения обмена – подпрограмма обработки прерывания. После выполнения подпрограммы обработки прерывания процессор возвращается к выполнению своей основной программы.

Упрощенная структура стандартного интерфейса для реализации обмена по прерыванию приведена на рис.4.4,а. В этом случае сигналы с выходов флаговых триггеров портов ввода/вывода (ПВВ) поступают в качестве сигналов запроса прерываниий на контроллер прерываний, который формирует общий запрос прерывания INTR (Interrupt – прерывание), поступающий в процессор.

Как правило, контроллер прерывания используется при наличии нескольких источников прерываний. Для идентификации источников прерываний он формирует малоразрядный код номера прерывания, соответствующий активному запросу от ВУ. При одновременном активировании нескольких запросов контроллер прерываний выбирает запрос с наивысшим приоритетом и формирует соответствующий ему номер прерывания.

Сигнал запроса прерывания INTR поступает в процессор, требуя обслуживания возникшего прерывания. Однако, процессор может прекратить выполнение своей программы не в любой момент, а лишь после завершения выполняемой команды. В связи с этим сигнал INTR анализируется процессором после выполнения каждой команды, и полный цикл интерпретации команды имеет вид, приведенный на рис.4.4,б. Если запрос INTR=0, то процессор продолжает выполнение основной программы, считывая ее очередную команду. Если INTR=1, то процессор прекращает выполнение основной программы и переходит к выполнению соответствующей подпрограммы обработки прерывания. Алгоритм процесса перехода к обслуживанию прерывания приведен на рис.4.4,в.

При переходе к обслуживанию прерывания процессор прежде всего считывает из контроллера код номера прерывания. Для этого он формирует сигнал подтверждения прерывания INTA (Interrupt Acknowledge – подтверждение прерывания), который поступает на контроллер прерываний и используется в качестве сигнала чтения. Под действием этого сигнала номер прерывания извлекается из контроллера и через шину данных поступает в процессор. Там он используется для определения начального адреса подпрограммы обработки прерывания, соответствующей ВУ, вызвавшему прерывание.

Для перехода к выполнению этой подпрограммы ее начальный адрес должен быть загружен в программный счетчик PC процессора. Однако, после ее завершения процессор должен продолжить выполнение основной программы с команды, адрес которой в данный момент находится в PC. Поэтому этот адрес называется адресом возврата, и должен быть сохранен. При переходе к обработке прерывания адрес возврата автоматически сохраняется в стеке. После этого в программный счетчик PC загружается начальный адрес подпрограммы и начинается ее выполнение. Алгоритм подпрограммы обработки прерывания приведен на рис.4.4,г.


В процессе выполнения подпрограммы обработки прерывания осуществляется необходимый обмен данными с ВУ. Подпрограмма обработки прерывания всегда завершается командой возврата, которая обеспечивает восстановление адреса возврата. При ее выполнении ранее сохраненный в стеке адрес возврата считывается из него и загружается в PC. В результате процессор возвращается ук выполнению основной программы с точки прерывания.

В общем случае обработка прерывания приводит к изменению состояния регистров процессоров. Поэтому для точного восстановления состояния процессора при переходе к обработке прерывания необходимо сохранять не только адрес возврата, но и содержимое изменяемых регистров, а при возврате в основную программу – восстанавливать их. Если адрес возврата сохраняется в стеке автоматически, то содержимое регистров должно сохраняться и восстанавливаться программным путем. Для сохранения регистров также чаще всего используется стек. При этом команды, записывающие содержимое регистров в стек, помещаются в самом начале, а команды, восстанавливающие их из стека – в самом конце подпрограммы обработки прерываний непосредственно перед командой возврата (см. рис.4.4,г).

В общем случае при взаимодействии с ВУ подпрограмма обработки прерывания может выполнять не только обмен данными, но и другие действия. При этом при наличии нескольких источников прерываний может возникнуть ситуация, когда во время обработки одного прерывания возникает запрос на выполнение другого прерывания. В том случае контроллер прерываний анализирует приоритеты запросов.

Если приоритет вновь поступившего запроса меньше, чем у обрабатываемого, то он игнорируется до завершения текущей обработки прерывания. О завершении текущей подпрограммы обработки прерывания процессор сообщает выдачей команды конца прерывания EOI (End of Interrupt) в контроллер прерывания. После поступления этой команды контроллер прерывания формирует запрос прерывания INTR по отложенному запросу с меньшим приоритетом. Это вызывает переход процессора к обработке данного прерывания и т.д.

Если же приоритет вновь поступившего запроса выше, чем у обрабатываемого запроса, то контроллер прерывания сразу генерирует сигнал INTR, что вызывает переход процессора к обработке нового прерывания до завершения обработки текущего прерывания.

Прерывание, возникающее во время обработки предыдущего прерывания, называется вложенным прерыванием. Количество вложенных прерываний называется глубиной прерывания. Максимальная глубина прерывания определяется лишь объемом стека, в котором сохраняются адреса возврата и содержимое изменяемых регистров от всех вложенных прерываний.

В общем случае при выполнении некоторых участков программы прерывания недопустимы. Это требует управления состоянием системы прерываний. Для этой цели процессор всегда имеет программно-управляемый флаг разрешения прерываний IF (Interrupt-enable Flag). При единичном значении этого флага прерывания разрешены, а при нулевом – запрещены. В последнем случае все запросы на прерывание по линии INTR игнорируются.

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

Эффективность обмена по прерыванию особенно велика в тех случаях, когда совершенно неизвестен момент возникновения необходимости обмена с ВУ. Это характерно при контроле за возникновением различных аварийных ситуаций. Недостатком обмена по прерыванию является усложнение ИФ.

Все вышерассмотренные методы обмена: синхронный, асинхронный и обмен по прерыванию – являются программно–управляемыми. При их реализации обмен осуществляется под управлением процессора. Очевидно, что для пересылки одного элемента данных между памятью и ПВВ необходимо выполнить следующие операции: пересылку данных из источника в процессор, пересылку данных из процессора в приемник, модификацию адресов и проверку на завершение обмена, - которые реализуются соответствующими командами. Отсюда затраты времени на пересылку одного элемента данных включают в себя время выборки и исполнения четырех команд. Это обуславливает низкую скорость обмена, которая становится недопустимой при обмене большими массивами данных.


Дата добавления: 2015-08-09; просмотров: 308 | Нарушение авторских прав


Читайте в этой же книге: Организация интерфейса | Аппаратный многотактовый метод. | Обмен в режиме прямого доступа в память |
<== предыдущая страница | следующая страница ==>
Асинхронный обмен| Характеристики системы прерывания

mybiblioteka.su - 2015-2024 год. (0.006 сек.)