Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
pu / конспект лекций11.docx
Скачиваний:
4
Добавлен:
21.02.2016
Размер:
6.17 Mб
Скачать

Ввод-вывод с прерыванием от нескольких устройств вв

IntA,int –сигналы на линиях

intAi,inti – выходы прерываний

intA- interrupt Acnolig - подтверждение на прерывание

Такая схема не является распространенной.

Более удобная – вторая.

Возникает проблема : обнаружение КВУ, которое выставило прерывание

Полинг – определенная последовательность опроса устройства с целью обнаружения, какое устройство выставило прерывание.

Для определения какое устройство выставило сигнал прерывание и имеющее больший приоритет.

Последовательность:

  1. Процессор среагировать на сигнал Int (открыл маску или закрыл)

  2. Процессор выставил сигнал Int A

На вход контроллера поступает 0 сигнал

Если КВУ выставило Int то 0 превращается в 1

Если Int выставлено, то сигнал IntA не доходит.

Эта схема еще называется Дейзи-цепочка : htfkbpfwbz c[tvs ghbjhbntnjd/

  1. КВУ которое выставит Int (наиболее приорит. контроль)

  • Запирает цепочку Дейзи

  • Реагирует на Int A

  • Контроллер передает процессору некоторый код – свой условный номер(вектор прерываний)

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

Контроллер прерываний

С использованием программного управления – программируемый контроллер прерываний

Функции:

  1. Расширение числа входов прерываний(до 10)

  2. Определение номера устройства, выставившего Int с использование процедуры векторного прерывания.

  3. Реализация системы приоритетов

  4. Реализация вложенных прерываний

Рассмотрим контроллер прерываний на основе Intel 8059A

Обобщенная схема

Эта схема, условно говоря, вырабатывает сигнал Int A.

Управляется контроллер четырьмя регистрами:

ICW – initialization Command Word (ICW1,ICW2,ICW3,ICW4)

Тремя

OCW – Operatin Command Word

Регистром статуса

Status Register (sr)

Регистры прерываний:

Interrupt Requement Register(IRR)

Регистр затребованных прерываний

К нему подключены линии прерываний от подчиненных контроллеров прерываний, то этот контроллер называется ведущий, а остальные ведомые(у них по 8 входов)

Получаем 8*8=64 затребованных прерываний

Маскируются прерывания с помощью:

  1. Interrupt Mask Register (IMR)

1 в соотв. Разряде говорит о том, что не будет обслуживатся IRR

  1. Interrupt Service Register(ISR)

Регистр обслуживаемых прерываний.

Регистровая модель кпп

Форматы операционных командных слов

Реализация прерывания от кву на ведущем контроллере прерываний

  1. На контроллере прерываний пришел сигнал IRQn(n- номер линии прерываний от КВУ) на ПКП

  2. На IRR в n-ом разряде устанавливается в 1

  3. Устройство управл. Данного ПКП выполныет анализ:

А) Анализируется IMR

Если Н-ный разряд = 0 – обработка прерываний

Н-ный разряд = 11 – прерывания замаскированы

Б) В ISR (регистр обслуживаемых прерываний)

Если в i-м разряде 1 , то процессору передано на обработку прерывание от i-той линии.

Пришло прерывание от j-той линии.

Процессор должен определить какой приоритет он имеет.

По умолчанию определено что 0-ая линия имеет самый высокий приоритет.

Предположим j имеет более высокий приоритет, он должен начать обрабатывать этот процесс(если оно не замаскировано)

Если пришло г-тое прерывание, то оно с меньшим приоритетом, и контроллер даже не должен пытаться его обрабатывать.

Обработка прерывания:

IMRn=0

N<i

Где i-разряд ISR=1 наименьший

Если выполняются эти условия то контроллер прерываний выставит сигнал Int

Если флаг IF=1 , то прерывание разрешено, и процессор всегда будет срабатывтаь на Int

  1. Если IFцп=1, то процессор начинает обработку этого прерывания(проверяется флажок)

  2. Процессор выставляет сигнал подтверждения(т.е. берет сигнал на обслуживание

  3. В ответ на это из регистра требуемых прерываний – это прерывание исключается

  4. В регистре обслуживаемых прерываний уст 1, что говорит о том что прерывание взять по линии N

  5. В ответ на второй сигнал INTA КПК формирует вектор прерывания и выставляет его на шину данных

  6. ЦП засылает в стек PSW,CS,IP

После этого ЦП сбрасывает в 0 два флажка PSW

Далее ЦП формирует адрес обработчика прерываний.

Соседние файлы в папке pu