Программно-управляемый обмен 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Программно-управляемый обмен



Для реализации программно-управляемого обмена составляется программа пересылки данных из памяти в аккумулятор, а затем в регистр данных контролера внешнего устройства. Обратно в обратной последовательности:

Программно-управляемы обмен может быть: синхронным, асинхронным или по прерыванию.

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

При синхронном обмене МП выставляет на адресной шине адрес внешнего устройства с которым будет происходить обмен. По сигналу IORC/ происходит чтение МПом данных поступающих через порт от внешнего устройства, а по сигналу IOWC/ передача данных от МП внешнему устройству. Сигнал READY при этом находится в единичном состоянии.

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

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

Для организации асинхронного обмена с медленнодействующими устройствами в состав шины управления вводится специальная линия XACK (Exchange Acknowledge), которая служит для подтверждения сигнала подтверждения обмена READY. При таком обмене сигнал READY находится в низком уровне, поэтому после получения стробов IORC/ и IOWC/ МП переходит в режим ожидания сигнала READY. Установкой сигнала READY в 1 внешнее устройство уведомляет процессор об окончании операции прием/выдача данных. После завершения обмена сигнал READY сбрасывается.

Сигнал READY генерируемый внешними устройствами вводится в МП в составе слова состояния SW.

Для снятия сигнала READY после окончания обмена и выставлении его при новой готовности к обмену используется сигнал подтверждения ACK (Acknowlegement) выставляемый процессором. Такой протокол обмена служебной информацией обеспечивает надежную асинхронную передачу данных со скоростями определяемыми МП и называется квитированием.

 

Существует два типа асинхронного обмена:

- с занятием цикла,

- совмещенный ввод/вывод

 

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

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

Прерывание – инициируемый определенным образом процесс, временно переключающий микропроцессор на выполнение другой программы с последующим возобновлением выполнения прерванной программы.

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

Принцип: Во время выполнения основной программы МП получает запрос на прерывание. Этот запрос обрабатывается аппаратными средствами процессора, которые приостанавливают выполнение основной программы и переходят на подпрограмму обработки прерываний.

Запрос прерывания – управляющий сигнал от внешнего устройства

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

Снятие сигнала INTE происходит либо автоматически, при запросах от контроллера прерываний, либо программно, подачей команды DI.

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

Существует два основных способа идентификации ВУ запросивших обслуживания:

1. Программный опрос регистров состояния контроллеров всех ВУ (МП последовательно опрашивает все внешние устройства, работающие в режиме прерывания и при обнаружении готового к обмену устройства выполняет действия по его обслуживанию)

2. Использование векторного прерывания.

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

Контролер внешнего устройства выдает сигнал INT (требование прерывания) в ответ на него процессор формирует управляющий сигнал INTЕ (разрешения прерывания), который разрешает контроллеру ВУ выдачу вектора прерывания. Для организации векторной системы прерывания могут использоваться программируемые контролеры прерываний (например КР 580 ВН 59, К1810ВН59А, i8259А и т.д.).

Т.е МП может работать самостоятельно или с помощью контроллера прерываний.

6.2.3 Контроллер прерываний (ПКП) на примере i8259А

Служит для обработки запросов от источников внешних прерываний. Один ПКП может обработать запросы от 8 источников внешних прерываний (0-7), если необходимо обрабатывать большее количество запросов, ПКП соединяют последовательно.

Функции контроллера прерываний:

1. Фиксирование запросов на обработку прерывания от ВУ и подача единого запроса на вход процессора.

2. Формирование номера вектора прерывания и выдача его на шину данных

3. Организация приоритетной обработки прерываний

4. Запрещение (маскирование) прерываний с определенными номерами.

d0…d7 – выводы замыкающиеся на системную шину данных. По ним передается номер вектора прерывания и принимается управляющая информация.

INT – вывод выходного сигнала запроса на порывание, который подается на вход INT МП.

INTЕ – вывод для сигнала от МП, подтверждающего факт принятия им прерывания на обслуживание.

irq0…irq7 – выводы для входных сигналов запросов на прерывания от внешних устройств.

Программируемость контроллера прерываний позволяет изменять алгоритмы обработки аппаратных прерываний. Исходя из этого микросхема имеет два состояния:

1. Состояние настройки, во время которого путем посылки в определенном порядке управляющих слов производится инициализация контроллера.

2. Состояние работы, это обычное состояние контроллера, в котором производится фиксация запросов на прерывание и формирование управляющей информации для МП в соответствии с параметрами настройки.

Регистр запросов на прерывания IRR – 8-разрядный регистр, фиксирующий поступление сигнала на один из входов irq0…irq7 ПКП. Фиксация выражается в установке соответствующего бита в единичное состояние.

Регистр маскирования прерываний IMR - 8-разрядный регистр, с помощью которого можно запретить обработку запросов на прерывания, поступающих на определенные входы (уровни) irq0…irq7. Для этого необходимо установить в 1 соответствующие биты регистра IMR.

Регистр обслуживаемых прерываний (регистр состояния) ISR 8-разрядный регистр, единичное состояние разрядов которого показывает, прерывания каких уровней обрабатываются в данный момент в микропроцессоре.

Арбитр приоритетов PR служит для разрешения конфликтов при одновременном поступлении запросов на выводы irq0…irq7

Блок управления служит для организации информационного обмена контроллера прерываний и МП через шину данных.

Принцип работы:

Допустим на вход irq2 поступает сигнал прерывания, это приводит к установлению второго бита регистра IRR. Затем проверяется состояние регистра маски IMR, если его 2-й бит установлен в 0, то прерывание 2-го уровня разрешено. Далее сигнал поступает к арбитру приоритетов. Обычно самый высокий приоритет у прерывания 0-го уровня (irq0), далее приоритет уменьшается с возрастанием номера уровня. Если конфликта запросов нет, то сигнал поступает на схему управления ПКП, которая формирует сигнал на выводе INT. Этот вывод связан с входом INT микропроцессора, затем МП формирует сигнал INTЕ, который попадает на одноименный вывод ПКП. Этот вывод замкнут на схему управления. При получении сигнала INTЕ схема управления:

1. Сбрасывает бит в регистре IRR, соответствующий уровню прерывания irq2,

2. Устанавливает в 1 второй бит регистра ISR, тем самым, фиксируя факт обработки в микропроцессоре прерывания уровня 2,

3. Формирует с помощью блока управления номер вектора прерывания, значение которого формируется в буфере данных и поступает на выводы d0-d7. Затем через шину данных в МП. В МП этот номер используется для вызова соответствующей процедуры обработки прерывания. Если во время обработки этого прерывания процессором, придет другой сигнал о прерывании того же уровня, то он будет запомнен, установкой бита в IRR и его обслуживание отложено. Если приходит прерывание другого уровня, то его обработка зависит от приоритета, по отношению к обрабатываемым прерываниям. Если приоритет выше, то текущая процедура обработки останавливается и вызывается процедура обработки более приоритетного прерывания. После окончания процедуры обработки прерывания автоматически или программно сбрасывается бит в регистре ISR соответствующий обработанному прерыванию.



Поделиться:


Последнее изменение этой страницы: 2017-01-19; просмотров: 272; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.143.0.157 (0.012 с.)