Организация системы прерываний .
Система прерываний позволяет с помощью определенного сигнала прервать текущую программу и вызвать подпрограмму обработки прерываний . После выполнения этой подпрограммы микроЭВМ автоматически возвращается к выполнению прерванной .
Прерывания могут быть вызваны следующими условиями :
1) сигнал готовности устройства к вводу или выводу информации
2) сигнал оповещающий об окончании операции ввода—вывода
3) сигнал оповещающий об ошибке
4) условие , определяемое внешним сигналом , поступившим от датчика или оператора
Переход к командам , которые реализуют обмен в системе ввода—вывода , осуществляется при получении сигнала от ПУ , называемого « запрос на прерывание » .
При выполнении подпрограммы обработки прерывания аппаратура процессора , сохраняет информацию , необходимую для возврата в прерванную программу .
Формирование запроса на прерывание происходит в контроллерах соответствующих ПУ . Для предоставления прерывания процессор формирует сигнал разрешения прерывания для конкретного ПУ . Обычно сигнал запроса от всех ПУ поступают на один вход МП и возникает проблема определения ПУ , запросившего обслуживание и реализация заданного приоритета при одновременном поступлении .
Существует 2 способа определения ПУ :
1) программный опрос регистров состояния контроллеров всех ПУ
2) Использование векторов прерываний . При их использовании ПУ , запросившее прерывание , определяет себя само с помощью вектора прерывания – адреса ячейки памяти , в которой хранится первая команда подпрограммы обработки прерываний . Таким образом процессор , получив от контроллера ПУ вектор прерывания , сразу переходит на подпрограмму обработки прерывания . Выдача вектора прерывания осуществляется только после прихода от МП сигнала разрешения прерывания .
Для организации векторной системы прерываний могут использоваться специальные БИС (например БИС программируемого контроллера прерываний КР580ВН59).
КР580ВН59—является программируемым контроллером , обеспечивающим прием и обработку восьми сигналов прерываний . За счет каскадного объединения микросхем число уровней прерывания можно расширить до 64 . Структурная схема КР580ВН59 на рисунке 1 .
В состав БИС входят двунаправленный 8—разрядный буфер ШД , блок управления чтением /записью , принимающий сигналы от центрального процессора и задающий режим функционирования схемы .
Схема управления вырабатывает сигнал запроса к МП и по приходу сигнала разрешения формирует вектор , передаваемый МП по ШД .
Регистр запросов прерываний используется для хранения всех уровней прерываний , поступивших в контроллер .
Схема приоритетов определяет приоритеты поступивших запросов и вырабатывает наивысший .
Регистр маскируемых прерываний обеспечивает запрет одной или нескольких линий запросов .
Схема каскада обеспечивает объединения контроллеров и определяет статус контроллера (ведущий , ведомый)
Связь микросхемы с системным интерфейсом осуществляется по стандартному протоколу .
Процессор передает контроллеру управляющие слова , которые определяют один из 4 режимов работы :
1. Режим фиксированных приоритетов (IR0—высший , IR7—низший )
2. Режим вложенных прерываний (за уровнями прерывания закрепляются фиксированный приоритет , но приход запроса с более высоким приоритетом прерывает обслуживание прерываний с меньшим приоритетом)
3. Режим циклического приоритета , устанавливается сначала фиксированные приоритеты , но после обслуживания какого-либо запроса приоритеты изменяются циклически таким образом , что обслуживаемое прерывание имеет самый низкий (меньший) .
4. Режим адресуемых приоритетов аналогичен предыдущему , но самый низкий приоритет устанавливается программно .
Рг маскирования прерываний |
Схема управления |
Схема каскадов |
Блок управления ЧТ/ЗП |
IR7 |
IR0 |
INTA Подтверждение прерывания |
SP |
CAS2 |
CAS1 |
CAS0 |
RD |
WR |
AO |
CS |
INT Запрос прерывания |
D0—D7 |
Чтение из Рг Запись в Рг Адрес Рг Выбор кристалла (разрешение обмена с БИС) |
Локальная шина каскадного соединения БИС Определение контроллера (ведущий/ведомый) |
Буфер ШД |
Рисунок 1 – структурная схема КР580ВН59
Контроллер состоит из 4-х идентичных каналов, позволяющих подключить к системе до 4-х устройств, работающих в режиме ПДП. В состав каждого канала входят следующие регистры:
1. MR (Mode Register) – регистр режима
Определяются следующие параметры передачи:
- порядок изменения (увеличения или уменьшения) адреса ОП при передаче
- возможность авто инициализации
- режим обслуживания
- одиночная передача (контроллер возвращает магистраль к процессору после каждого цикла ПДП
- мощная передача (контроллер владеет магистралью в течении передачи всего массива
- по требованию (окончание передачи определяется снятием сигнала DRQ или подачей сигнала IEOP на внешний вход КПДП)
- каскадирование
2. CAR (Current Address Register) – регистр текущего адреса
3. BAR (Base Address Register) – базовый регистр адреса
4. CWR (Current Word Register) – текущий счетчик данных
5. WCR (Word Control Register) – базовый счетчик данных
Значение в регистрах BAR и WCR устанавливаются при инициализации и в ходе циклов в ПДП не меняются. В регистре CAR и CWR в начале выполнения ПДП заносит значения из регистров BAR и WCR соответственно. При выполнении ПДП эти регистры изменяются.
Управляющие регистры, общее для всего контроллера:
1. CR (Command Register) – регистр команд – определяют:
- Режим память-память или обычный. В режиме память-память осуществляется обмен по схеме ПДП между двумя областями ОП с использованием буферного регистра TR (Temp Register)
- запрет\разрешение ПДП
- порядок изменения приоритетов каналов
- фиксированный приоритет
- циклическое изменение приоритета после обработки запроса на ПДП по одному из каналов.
- явное указание наиболее приоритетного канала
- уровень сигналов DRQ и DACK (настройка на активный уровень сигналов особенности работы внешних устройств)
2. Регистр SR (Status Register) –регистр условий – используется для фиксации признаков обмена по каждому из каналов и программных запросов на ПДП
Во избежание ложных срабатываний внешних устройств, не использующих в данный момент режим прямого доступа, контроллер ПДП во время режима ПДП вырабатывает сигнал AEN, который блокирует работу остальных внешних устройств: