Подсистема прямого доступа в память МПС

Рассмотрим вариант программно-управляемого обмена между памятью и внешним устройством в МПС на базе МП i8080. Пусть необходимо передать массив данных длиной L, начиная с адреса ADR на ВУ с адресом AIO. Положим, что начальный адрес массива загружен в регистровую пару HL, а длина массива - в регистр C. Тогда фрагмент программы обмена может иметь следующий вид:
Табл. 6.1


Метка

Мнемокод

Комментарий

Количество
машинных циклов

LM:

MOV A,M

Чтение байта в Акк.

2

 

OUT AIO

Выдача байта на ВУ

3

 

INX H

Модификация адреса

1

 

DCR C

Модификация счетчика

1

 

JNZ LM

Переход, если массив не исчерпан

3

 

 

Всего: 10

Таким образом, для того, чтобы в рамках процедуры копирования массива данных из памяти в ВУ переслать один байт данных потребуется десять машинных циклов (МЦ). Процессоры с более совершенной системой команд могут использовать для этой цели меньшее число МЦ, но все равно их будет более одного.
Управляя обменом, микропроцессор "ведет" два счетчика - адресов массива и количества переданных байт и формирует сигналы управления на магистраль. Если снабдить ВУ аппаратными счетчиками и схемой формирования управляющих сигналов (т.н. "канал прямого доступа в память"), то передачу одного байта (слова) можно осуществить за один МЦ без участия процессора. Необходимо лишь на время передачи данных под управлением канала ПДП блокировать работу процессора, отключив его от системной шины. Для этого служит вход захвата шины HOLD. Если подать на него высокий уровень, то МП по окончанию текущего МЦ безусловно перейдет в режим ожидания, переведя все свои выходные линии, кроме HLDA и WAIT, в высокоимпедансное состояние, а выходы HLDA и WAIT - в состояние лог. "1". Выходной сигнал HLDA используется для отключения МП от системной шины - перевода шинных формирователей, включенных между локальной и системной шиной, в высокоимпедансное состояние.
Если в МПС используется несколько ВУ, снабженных каналом ПДП, то целесообразно использовать специальный контроллер ПДП, который обеспечивает программирование каналов ПДП, подключение их к системной шине и дисциплину обслуживания.


Рис. 6.1. Типовое включение КПДП в МПС

Контроллер прямого доступа в память К580ВТ57

Микросхема К580ВТ57 предназначена для управления передачей информации между ВУ о ЗУ в режиме ПДП. Основное назначение контроллера - формирование последовательности адресов и управляющих сигналов.
Контроллер ПДП имеет четыре независимых канала обмена. Блок управления каждого канала включает два 16-разрядных регистра : регистр начального адреса РА и регистр управления РУ, причем РУ[13:0] хранит длину передаваемого массива (количество передаваемых байт), а РУ[15:14] - режим работы канала. Структурная схема контроллера и схема подключения его к МПС показана на Ошибка! Источник ссылки не найден.2.

Двойная стрелка вверх/вниз: Шина данныхДвойная стрелка вверх/вниз: Шина адресаДвойная стрелка вверх/вниз: Шина управления
Рис. 6.2. Контроллер прямого доступа в память

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

 

7

6

5

4

3

2

1

0

Рг Р :

AL

TCS

EW

RP

EN3

EN2

EN1

EN0

Рг С :

0

0

0

UF

TC3

TC2

TC1

TC0

Рис. 6.3. Форматы регистров режима и состояния
В регистре режимов разряды имеют следующий смысл:

  • AL - автозагрузка;
  • TCS - отключение канала;
  • EW - расширенная запись;
  • RP - циклический приоритет;
  • EN[3:0] - разрешение работы каналов 3..0.

В регистре состояния:

  • UF - флаг обновления;
  • TC[3:0] - конец счета в каналах 3..0.

 Выводы контроллера можно разделить на две группы : (а) линии связи с ВУ и (б) линии связи с системной шиной МПС.
а)
DRQ[0:3] - запросы от ВУ (каналов) на прямой доступ в ЗУ;
DACK[0:3]\ - разрешения на ПДП внешним устройствам;
TC - конец счета, сигнал H-уровня на этом выходе отмечает последний цикл передачи блока данных;
MARK - маркер - сигнал H-уровня указывает, что до конца передаваемого блока необходимо выполнить число циклов обмена, кратное 128.
б) Линии связи с системной шиной передают стандартные сигналы управления, которые используются традиционно : RESET, READY (контроллер анализирует состояние готовности и при необходимости, как и МП, вставляет такты ожидания Tw), RDM\, WRM\, RDIO\, WRIO\, HRQ, HLDA. Контроллер синхронизируется внешним системным синхросигналом, в качестве которого чаще всего используется Ф2ттл. Сигнал ADSTB не поступает на системную шину и служит для "защелкивания" старшего байта адреса, передаваемого по шине данных в режиме ПДП (см. ниже). Сигнал AEN отмечает время действия цикла ПДП и может быть использован в системе для предотвращения захвата шины другими устройствами. Вход CS\ обеспечивает выбор микросхемы при адресной селекции.
Перед началом работы контроллера по сигналу RESET очищаются регистры всех каналов и регистр режимов РгР. Очистка РгР приводит к запрету работы всех каналов во всех режимах и предотвращает конфликты на шинах при подаче напряжения питания. Разрешение работы каналов не должны включаться, пока в регистры адресов и управления соответствующих каналов не будут загружены необходимые числа. В противном случае запрос DRQ от ВУ может вызвать циклы ПДП и порчу данных в памяти.
Контроллер ПДП может работать в двух режимах : в режиме программирования и в режиме ПДП.
В режиме программирования контроллер является пассивным устройством и процессор осуществляет с ним связь как с обычным ВУ. При этом линии A[3:0] и RDIO\, WRIO\ являются входными. Линии адреса A[2:1] при A[3] = 0 используются для селекции канала (код соответствует номеру канала), а тип регистра в канале идентифицируется разрядом A[0]: "0" - РгA, "1" - РгУ. Поскольку РгА и РгУ - двухбайтовые регистры, их загрузка осуществляется двумя циклами записи по одному адресу, причем в первом цикле передается младший байт.
При A[3:0] = 1000 осуществляется запись в РгР или чтение из РгС.
Разряды 0..3 регистра режимов РгР разрешают или запрещают работу соответствующих каналов ("1" - разрешено, "0" - запрещено).
Разряд РгР[4] устанавливает тип приоритета работы каналов. При РгР[4] = 0 установлен фиксированный приоритет (канал 0 -высший, канал 3 - низший). При РгР[4] = 1 устанавливается циклический приоритет каналов. В этом режиме после каждого цикла ПДП (но не запроса) приоритет каждого канала изменяется. Канал, который только что был обслужен, получает низший приоритет, а остальные каналы - по кольцу 0 - 1 - 2 - 3 - 0 -.
Циклический сдвиг приоритетов предотвращает монополизацию одного канала; последовательность циклов ПДП будет обслуживать различные каналы, если их работа не запрещена. Все операции начинаются с присвоения каналу 0 высшего приоритета.
Разряд РгР[5] = 1 определяет режим опережающей записи. В этом случае длительность сигналов WRM\ и WRIO\ увеличивается за счет более ранней их активизации в цикле ПДП. Это в некоторых случаях позволяет обойтись без тактов ожидания Tw.
Состояние "1" в разряде РгР[6] определяет режим автоматического отключения канала по сигналу TC. Этот сигнал возникает когда РгУi[13:0] = 0; в этом случае сбрасывается бит разрешения работы активного канала и запустить его вновь в работу можно только путем программной перезагрузки РгР. При РгР[6] = 0 появление TC не запрещает дальнейшую работу канала.
При наличии "1" в РгР[7] устанавливается режим автозагрузки, позволяющий каналу 2 многократно передавать массив данных без программного вмешательства. При программировании канала 2 в этом режиме его параметры (РгА и РгУ) автоматически дублируются в соответствующих регистрах канала 3 и по сигналу TC переписываются из канала 3 в канал 2, восстанавливая первоначальное значение РгА2 и РгУ2, причем эта передача сопровождается установкой флага обновления UF в РгС[4]. Заметим, что возможности режима TCS (отключение каналов) не распространяются на канал 2 в режиме автозагрузки.
Если не запретить работу канала 3 в режиме автозагрузки, то он может работать как обычно при отсутствии запроса DRQ2. Однако, следует помнить, что работа канала 3 изменит значения параметров, которые должны передаваться в канал 2.
Перед началом работы каждый канал программируется путем занесение в РгА начального адреса массива, в РгУ[13:0] - количества передаваемых байт, а в РгУ[15:14] - режима работы канала (00 контроль, 01 - запись в ЗУ, 10 - чтение из ЗУ).
Режим контроля может использоваться ВУ для контроля принятых данных, т.к. в этом режиме не производится передача данных (не вырабатываются сигналы RDM\, RDIO\, WRM\, WRIO\), а все остальные функции ПДП сохраняются.
В режим ПДП контроллер переходит при поступлении запроса DRQ незамаскированного канала. Он вырабатывает запрос микропроцессору HRQ на захват шины и, получив подтверждение HLDA, передает сигнал активизации DACK\ выбранному ВУ и начинает циклы ПДП.
В цикле ПДП контроллер выдает содержимое РгА на линии A[7:0] (младший байт) и линии D[7:0] (старший байт в сопровождении строба ADSTB) и, в зависимости от режима работы канала, одну из пар управляющих сигналов RDM\ + WRIO\ или RDIO\ + WRM\ (в режиме контроля управляющие сигналы не выдаются). Режим ПДП завершается при снятии сигнала DRQ.

  

Каскадирование КПДП


Рис. 6.4. Каскадирование КПДП

Организация ПДП в IBM PC

В современных машинах используются дополнительные контроллеры ПДП, один из которых 16-ти разрядный, но также есть и 8-ми разрядные.
При программировании контроллера указываются адреса, приоритеты, регистр страниц ПДП.


Рис. 6.5. Организация ПДП в IBM PC

Высокопроизводительный 32-разрядный контроллер ПДП 82380

Контроллер 82380 выполнен в 132-выводном корпусе типа PGA и пред­ставляет собой высокопроизводительное 32-разрядное устройство, обеспечивающее прямой доступ к памяти и спроектированное специально для использования в системах на базе микропроцессора 80386. Контроллер 82380 является первым коммерческим устройством, в котором реализованы функции управления ПДП по восьми независимым программи­руемым каналам. Контроллер 82380 повышает общую пропускную способность шины микропроцессора 80386. Применение 32-разрядного интерфейса контроллера обеспечивает эффективную передачу данных и повышает скорость обслуживания системных уст­ройств ввода-вывода в 5 — 10 раз по сравнению с известными схемотехническими решениями. Эти особенности наиболее важны в системах, требующих быстродей­ствующей компьютерной техники, таких как многозадачные учрежденческие рабо­чие станции, промышленная связь и автоматизация, САПР, гибкие производствен­ные системы и системы искусственного интеллекта. Специализированная ориента­ция контроллера 82380 на особенности интерфейса микропроцессора 80386 пре­дельно минимизирует объем соответствующих логических схем.
Контроллер 82380 называют также интегрированным системным периферий­ным устройством, поскольку он выполняет ряд типовых для вычислительных систем функций, обычно реализуемых на отдельных компонентах БИС и СБИС. В состав таких средств входят

  • логические схемы системного сброса;
  • 20-уровневый программируемый контроллер прерываний (функциональное расширение программируемого контроллера прерываний 82С59А фирмы Intel);
  • четыре 16-разрядных программируемых таймера;
  • программируемый генератор с состояниями ожидания;
  • контроллер регенерации динамического ОЗУ;
  • схемы управления и арбитража внутренней шины.

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

Архитектура контроллера 82380

Рассмотрим основные, вопросы сопряжения контроллера 82380 с микропроцессо­ром 80386 через локальную шину. Далее будет описан ряд функций, реализованных в кристалле 82380, для выполнения которых в обычных условиях требуется 20 – 30 соответствующих БИС и СБИС. Для обеспечения совместимости с существующими программными продуктами в структуре контроллера 82380 имеются побайтно доступ­ные регистры. Если внутренним логическим схемам контроллера 82380 требуется не­которая задержка до того момента, как кристалл станет доступен микропроцессору 80386, то контроллер автоматически вставит в цикл обращения необходимые такты ожидания; при этом программисту не нужно беспокоиться об этих временных ап­паратных особенностях. В структуре контроллера ПДП нашли отражение как про­граммные, так и аппаратные решения вопросов по сбросу микропроцессора 80386, а также по управлению микропроцессором, находящимся в состоянии останова.
Контроллер 82380 может работать как в режиме ведущего устройства, так и в подчиненном режиме. Поскольку после системного сброса контроллер ПДП пере­ходит в подчиненный режим, то для системы он представляется как устройство ввода-вывода. В подчиненном режиме контроллер 82380 отслеживает состояние микропроцессора 80386 и отрабатывает каждую команду в установленном порядке. Выполняя функцию управления ПДП, контроллер следит за состоянием потока ад­ресов для устройства, к которому происходит обращение, и добавляет необходимое число тактов ожидания в цикл обращения. При выполнении операций передачи с ПДП контроллер работает в привилегированном режиме как ведущее устройство на шине.

Интерфейс с главным процессором

Контроллер 82380 подключен непосредственно к локальной шине микропроцес­сора 80386, поэтому назначение его управляющих сигналов такое же, как у 80386. Контроллер 82380 отслеживает текущее состояние микропроцессора 80386 как по его сигналам состояния, так и по сигналам на своих выводах ADS* и READY*. На основании этой информации контроллер определяет, выполняются конвейерные или неконвейерные действия в текущем цикле шины.

Подпись: 32-разрядный   восьмиканальный   контроллер ПДП  Двойная стрелка вверх/вниз: ДанныеДвойная стрелка вверх/вниз: АдресДвойная стрелка вверх/вниз: Управление

Рис. 6.6. Архитектура контроллера 82380

Контроллер 82380 может управлять доступом к 8-разрядным периферийным ус­тройствам с целью обеспечения совместимости с существующими архитектурами систем и программными продуктами. При этом данные размещаются на линиях шины D0 — D7 или D8 — D15. В подчиненном режиме контроллер только при­нимает данные по указанным линиям. Благодаря возможности контроллера 82380 обращаться к байтам программист может иметь доступ к регистрам контроллера, пользуясь при этом холостыми командами NOP для организации ожидания сраба­тывания менее быстродействующих внутренних регистров 82380. В подчиненном режиме 82380 контролирует линии состояния и управления центрального процес­сора, отрабатывая логику шины микропроцессора 80386 и добавляя требуемое чис­ло тактов ожидания.
В режиме ведущего работа контроллера 82380 полностью согласуется с работой микропроцессора 80386. Например, данные передаются и принимаются контролле­ром точно так же, как микропроцессором 80386. Для остальной части системы и любого подключенного периферийного устройства контроллер 82380 выглядит как микропроцессор 80386. Это значит, что при разработке систем на базе данного кон­троллера нет необходимости видоизменять интерфейс с уже существующими пери­ферийными устройствами. Механизм обращения контроллера 82380 к любому периферийному устройству на шине остается таким же, как у микропроцессора 80386; дополнительно контроллер выявляет конвейерные циклы шины.
Адреса всех регистров данных, управления и состояния контроллера 82380 фик­сированы относительно друг друга. Эти регистры могут быть отображены на соот­ветствующие ячейки либо оперативной памяти, либо пространства ввода-вывода.

Функции контроллера ПДП

Подпись: Логическая схема   арбитража запросов ПДП  Подпись: Вспомогательный регистрПодпись: Канал 0Подпись: Управление  процессом

На Рис. 6.7 показана структура 32-разрядного восьмиканального контроллера ПДП в составе кристалла 82380. При проектировании контроллера ставилась зада­ча эффективной передачи произвольных комбинаций байтов, слов и двойных слов. С помощью контроллера ПДП можно адресовать полное пространство, покрываемое 32-разрядными физическими адресами, а также увеличивать и уменьшать адреса как операндов-источников, так и операндов назначения.
Рис. 6.7. Контроллер ПДП в 82386
С помощью внутреннего вспомогательного 32-разрядного регистра можно выполнять разборку и сборку дан­ных разной разрядности, а также организовывать обмен данными между устройст­вами, имеющими разную ширину тракта данных. При работе контроллера 82380 на частоте 20 МГц и при передаче данных одинаковой разрядности может быть достигнута скорость обмена между памятью и устройствами ввода-вывода 25,6 Мбайт/с.
В порядке обслуживания как программных, так и аппаратных запросов ПДП контроллер может поддерживать обмен данными следующих типов:

  • порт ввода-вывода — порт ввода-вывода;
  • память — память;
  • порт ввода-вывода — память;
  • память — порт ввода-вывода.

Семь из восьми каналов (все, за исключением канала 4) имеют доступ к ап­паратным сигналам подтверждения ПДП через трехразрядную шину подтверждения ПДП (линии от EDACK0 до EDACK2).
Каждый из восьми каналов контроллера ПДП 82380 функционирует независи­мо один от другого и может быть запрограммирован для работы в любом из допу­стимых режимов. Регистры каждого канала можно разделить на три класса: регистры счетчика байтов, регистры инициатора запроса и. целевые регистры; всего в канале имеется 24 регистра состояний и команд. С помощью этих регистров оп­ределяются адреса и объем пересылаемых данных. Регистр счетчика байтов (24 раз­ряда) содержит значение числа байтов, которые должны быть переданы. Регистр инициатора запроса (32 разряда) содержит адрес порта ввода-вывода или памяти, где находятся данные, по которым был сделан запрос контроллеру на обслуживание ПДП; целевой регистр (32 разряда) содержит адрес порта ввода-вывода или памя­ти, по которому будут пересылаться данные.
Для каждого канала программист может выбирать дисциплину обслуживания с циклическими или фиксированными приоритетами. Циклический приоритет пре­дусматривает разделение шины среди нескольких периферийных устройств, тогда как дисциплина с фиксированными приоритетами основана на определенных фик­сированных параметрах, связанных с аппаратными и другими особенностями. В дисциплине с фиксированными приоритетами допускается, чтобы программист при­сваивал любому каналу низший приоритет, что позволит без перепрограммирования командных регистров изменять или приводить в исходное состояние расписание об­служивания приоритетов.
Каналы контроллера ПДП разделены на две группы по четыре канала — ниж­нюю и верхнюю. Нижние (от нулевого до третьего) и верхние (от четвертого до седьмого) каналы работают так, будто два отдельных контроллера ПДП включены по каскадной схеме. Такая организация работы позволяет одной группе присваивать фиксированные приоритеты, а другой — циклические, причем в различных ком­бинациях. По умолчанию каналы контроллера ПДП 82380 имеют фиксированные приоритеты, при этом высшим приоритетом обладает нулевой канал, низшим — седьмой. Нижняя группа играет своеобразную роль канала 5 в верхней группе и по порядку приоритетов располагается между каналами 7 и 4.
Как уже отмечалось, программисту предоставлена возможность по своему ус­мотрению выбирать, какому из каналов назначить низший приоритет. С помощью специальных команд определяется канал с самым низким приоритетом в пределах какой-либо группы, при этом остальным каналам присваиваются фиксированные приоритеты в последовательном порядке. Например, если низший приоритет при­своен каналу 1 в нижней группе, то порядок каналов по приоритетам будет сле­дующий: 2 (высший приоритет), 3, 0, 1 (низший приоритет). Как видно, каналу, порядковый номер которого следует сразу же за номером выбранного канала с ни­зшим приоритетом (в данном случае за номером 2), устанавливается самый высо­кий приоритет и так далее с убыванием приоритета по мере последовательного циклического в рамках группы возрастания номеров каналов, пока не будет достиг­нут номер выбранного наименее приоритетного канала (в данном случае номер 1). То же относится и к верхней группе каналов. Так, если низший приоритет при­своен каналу 6, то приоритеты верхней группы составят следующий ряд: 7 (высший приоритет), 4—6 (низший приоритет). Еще раз напоминаем, что нижняя группа по приоритету располагается между каналами 4 и 7. Поэтому по данным рассмот­ренных выше примеров комбинация двух групп даст следующий порядок каналов: 7 (высший приоритет), [2, 3, 0, I], 4, 5, 6 (низший приоритет).
Контроллер ПДП может принимать команды программного управления приори­тетами только тогда, когда группа каналов, к которой относятся эти команды, на­ходится в режиме с фиксированными приоритетами. При переходе к дисциплине с циклическими приоритетами все текущие уровни приоритетов остаются без из­менений. При возврате от дисциплины с циклическими приоритетами к дисциплине с фиксированными приоритетами для уровней приоритетов каналов с помощью команд программного управления приоритетами восстанавливаются те значения, которые были в последний раз установлены программным образом.
Для дисциплины с циклическими приоритетами любой канал после обслужива­ния его запроса не остается с высшим приоритетом. Этому каналу присваивается низший приоритет. Следует помнить, что номера приоритетов нижней группы (в предыдущем примере 2, 3, 0, 1) меняются циклически в пределах верхней группы приоритетов (в предыдущем примере 7, [нижняя группа], 4 – 6). Поэтому обслу­живание канала из нижней группы сопровождается циклическим изменением но­меров уровня приоритета как в нижней, так и в верхней группах.
Такие команды, как "сброс запроса прерывания по завершении счета", "сброс режима ведущего устройства", "очистка регистра маски" и "сброс триггера указате­ля байтов", активизируются в результате распознавания контроллером ПДП 82380 соответствующего адреса порта. При этом в выбранный порт должны быть записаны какие-нибудь данные.
Контроллер ПДП 82380 реализует передачу блоков данных в одном из следую­щих режимов: режим одиночного буфера, буферный режим с автоинициализацией и режим с цепочкой буферов. Первый режим используется обычно в тех случаях, когда к моменту начала передачи известны объем и местоположение передаваемых данных, а данные размещены в непрерывной области памяти. Для данного режима характерно, что по завершении передачи одиночного блока контроллер ПДП дол­жен перепрограммироваться для других передач даже этого же блока. В буферном режиме с автоинициализацией, напротив, допускается неоднократная передача контроллером ПДП одного и того же блока данных без перепрограммирования ка­нала всякий раз.
В режиме с цепочкой буферов допускается, чтобы в программе был определен список буферов, содержимое которых передается, при этом для перепрограммирования контроллера ПДП используются программы обработки прерываний. Канал для передачи содержимого нового буфера программируется до того, как закончится передача содержимого текущего буфера. В данном режиме контроллер ПДП может работать с разрывными областями памяти и передавать все данные из этих областей за один рабочий процесс ПДП.

Программируемый контроллер прерываний

Рассмотрение функций контроллера 82380 продолжим с помощью Рис. 6.8. Функционально программируемый контроллер прерываний идентичен своим пред­шествующим моделям 8259А и 82С59А, за исключением программирования векто­ров прерываний. В контроллере 82380 объединены ресурсы трех контроллеров типа 82(С)59А. Каскадируя пятнадцать входов запросов прерываний контроллеров 82С59А, имеющихся в распоряжении программиста, можно организовать до 120 каналов запросов внешних прерываний. Хотя контроллеры могут работать в режиме ведущего устройства, приоритет отдается каскадному режиму.
В контроллере прерываний 82380 имеются более широкие возможности по ис­пользованию механизма векторов прерываний, поскольку каждый вход запроса пре­рываний может отдельно программироваться. Это значит, что каждому запросу пре­рываний может быть предписан свой собственный вектор прерывания; кроме того, системные программы по умолчанию могут присвоить контроллеру прерываний 82380 определенный вектор. Этот вектор используется в цикле подтверждения не­запрашиваемых прерываний или прерываний, вызванных ошибочным запросом, с целью предупреждения системы о ложных прерываниях. С помощью прерывания система также информируется о том, что предпринята попытка запрограммировать векторы контроллера 82380 по методу контроллера 82С59А. Эта особенность гаран­тирует совместимость существующих программных продуктов с программным обес­печением, написанным для 82380. К другим усовершенствованиям контроллера пре­рываний 82380 относится возможность каскадного подключения внешних контрол­леров прерываний, а также то, что квитирование установления связи между веду­щим и ведомым устройствами вынесено из специализированных каскадных линий на шину данных.
На рис. 11.3 показаны пять основных блоков контроллера прерываний:

  • регистр запросов прерываний (IRR);
  • блок разрешения приоритетов (PR);
  • служебный регистр (ISR);
  • регистр маски (IMR);
  • регистр векторов (VR).

 

Подпись: Регистр запросов  INT  Подпись: Служебный   регистр
Рис. 6.8. Структурная схема контроллера прерываний

Всеми прерываниями управляют каскадно включенные регистры запроса преры­ваний IRR и служебный регистр ISR. В регистре IRR фиксируются уровни всех прерываний, требующих обработки, а в регистре ISR — уровни всех прерываний, проходящих обработку. Во время цикла подтверждения прерывания с помощью блока разрешения приоритетов определяются приоритеты запросов по содержимому регистра IRR, а для прерываний с высшим приоритетом в регистре ISR помечаются соответствующие разряды. Регистр маски прерываний IMR используется совместно с регистром IRR и хранит код, по которому будут маскироваться определенные ли­нии прерываний. Маскирование входов с более высоким приоритетом не влияет на линии запросов прерываний с низшим приоритетом. Номера предварительно за­программированных векторов прерываний записываются в набор векторных регист­ров VR, для каждой линии запроса прерывания определен свой векторный регистр. Во время цикла подтверждения прерывания контроллера 82380 номер вектора, со­ответствующий выбранному прерыванию, выставляется на шину данных.

Оглавление


Сайт управляется системой uCoz