|
В начало
32-разрядный контроллер ПДП 82380 (Лекция)
ПЛАН ЛЕКЦИИ 1. Архитектура контроллера 82380 2. Функции контроллера ПДП 3. Программируемый контроллер прерываний 4. Программируемые интервальные
таймеры 5. Контроллер регенерации динамического ОЗУ 6. Генератор с состоянием ожидания 7. Сброс центрального процессора 8. Синхронизация шины контроллера 82380 Данная лекция
посвящена изложению некоторых подробностей о контроллере ПДП и его
составляющих. Контроллер 82380 выполнен в 132-выводном корпусе типа PGA и представляет собой
высокопроизводительное 32-разрядное устройство, обеспечивающее прямой доступ к
памяти и спроектированное специально для использования в системах на базе микропроцессора
80386. Контроллер 82380 является первым коммерческим устройством, в котором
реализованы функции управления ПДП по восьми независимым программируемым каналам.
Контроллер 82380 повышает общую пропускную способность шины микропроцессора
80386. Применение 32-разрядного интерфейса контроллера обеспечивает эффективную
передачу данных и повышает скорость обслуживания системных устройств
ввода-вывода в 5 – 10 раз по сравнению с известными схемотехническими
решениями. Эти особенности наиболее важны в системах,
требующих быстродействующей компьютерной техники, таких как многозадачные учрежденческие
рабочие станции, промышленная связь и автоматизация, САПР, гибкие
производственные системы и системы искусственного интеллекта. Специализированная
ориентация контроллера 82380 на особенности интерфейса микропроцессора 80386
предельно минимизирует объем соответствующих логических схем. Контроллер
82380 называют также интегрированным системным периферийным
устройством, поскольку он выполняет ряд типовых для вычислительных систем
функций, обычно реализуемых на отдельных компонентах БИС и СБИС. В состав
таких средств входят ·
логические схемы системного сброса; ·
20-уровневый программируемый контроллер
прерываний (функциональное расширение программируемого контроллера прерываний
82С59А фирмы Intel); ·
четыре 16-разрядных программируемых таймера; ·
программируемый генератор с состояниями
ожидания; ·
контроллер регенерации динамического ОЗУ; ·
схемы управления и арбитража внутренней шины. Структурная
схема контроллера 82380 показана на Рис.
9.1. Для каждого из восьми независимых каналов передачи
данных в контроллере 82380 имеется вспомогательная регистровая память,
поддерживающая обмен данными произвольной разрядности. Это позволяет исключить
дополнительные внешние цепи для. выполнения
действий по выравниванию данных на определенную границу. В результате
контроллер обеспечивает передачу данных между устройствами с разными размерами
тракта данных по одному каналу. 1. Архитектура
контроллера 82380
Рассмотрим
основные, вопросы сопряжения контроллера 82380 с микропроцессором 80386 через
локальную шину. Далее будет описан ряд функций, реализованных в кристалле
82380, для выполнения которых в обычных условиях требуется 20 – 30
соответствующих БИС и СБИС. Для обеспечения совместимости с существующими
программными продуктами в структуре контроллера 82380 имеются побайтно доступные
регистры. Если внутренним логическим схемам контроллера 82380 требуется некоторая
задержка до того момента, как кристалл станет доступен
микропроцессору 80386, то контроллер автоматически вставит в цикл обращения
необходимые такты ожидания; при этом программисту не нужно беспокоиться об этих
временных аппаратных особенностях. В структуре контроллера ПДП нашли отражение
как программные, так и аппаратные решения вопросов по сбросу микропроцессора
80386, а также по управлению микропроцессором, находящимся в состоянии
останова. Контроллер
82380 может работать как в режиме ведущего устройства, так и в подчиненном
режиме. Поскольку после системного сброса контроллер ПДП переходит в подчиненный
режим, то для системы он представляется как устройство ввода-вывода. В подчиненном
режиме контроллер 82380 отслеживает состояние микропроцессора 80386 и отрабатывает
каждую команду в установленном порядке. Выполняя функцию управления ПДП,
контроллер следит за состоянием потока адресов для устройства, к которому
происходит обращение, и добавляет необходимое число тактов ожидания в цикл
обращения. При выполнении операций передачи с ПДП контроллер работает в
привилегированном режиме как ведущее устройство на шине. Интерфейс с главным процессором
Контроллер
82380 подключен непосредственно к локальной шине микропроцессора 80386,
поэтому назначение его управляющих сигналов такое же, как у 80386. Контроллер
82380 отслеживает текущее состояние микропроцессора 80386 как по его сигналам
состояния, так и по сигналам на своих выводах ADS* и READY*. На основании этой информации
контроллер определяет, выполняются конвейерные или неконвейерные
действия в текущем цикле шины. Рис.
1. Архитектура контроллера 82380 Контроллер 82380 может
управлять доступом к 8-разрядным периферийным устройствам с целью обеспечения
совместимости с существующими архитектурами систем и программными продуктами.
При этом данные размещаются на линиях шины D0 – D7 или D8 – D15. В подчиненном
режиме контроллер только принимает данные по указанным линиям. Благодаря
возможности контроллера 82380 обращаться к байтам программист может иметь
доступ к регистрам контроллера, пользуясь при этом холостыми командами NOP для
организации ожидания срабатывания менее быстродействующих внутренних регистров
82380. В подчиненном режиме 82380 контролирует линии состояния и управления
центрального процессора, отрабатывая логику шины микропроцессора 80386 и
добавляя требуемое число тактов ожидания. В режиме
ведущего работа контроллера 82380 полностью согласуется с работой микропроцессора
80386. Например, данные передаются и принимаются контроллером точно так же,
как микропроцессором 80386. Для остальной части системы и любого подключенного
периферийного устройства контроллер 82380 выглядит как микропроцессор 80386.
Это значит, что при разработке систем на базе данного контроллера нет
необходимости видоизменять интерфейс с уже существующими периферийными
устройствами. Механизм обращения контроллера 82380 к любому периферийному
устройству на шине остается таким же, как у микропроцессора 80386;
дополнительно контроллер выявляет конвейерные циклы шины. Адреса всех
регистров данных, управления и состояния контроллера 82380 фиксированы
относительно друг друга. Эти регистры могут быть отображены на соответствующие
ячейки либо оперативной памяти, либо пространства ввода-вывода. 2. Функции
контроллера ПДП
На Рис. 2 показана структура 32-разрядного восьмиканального
контроллера ПДП в составе кристалла 82380. Рис. 2. Контроллер ПДП в 82386 При
проектировании контроллера ставилась задача эффективной передачи произвольных
комбинаций байтов, слов и двойных слов. С помощью контроллера ПДП можно адресовать
полное пространство, покрываемое 32-разрядными физическими адресами, а также
увеличивать и уменьшать адреса как
операндов-источников, так и операндов назначения. С помощью
внутреннего вспомогательного 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 реализует передачу блоков данных в одном из следующих режимов: режим
одиночного буфера, буферный режим с автоинициализацией
и режим с цепочкой буферов. Первый режим используется обычно в тех случаях,
когда к моменту начала передачи известны объем и местоположение передаваемых
данных, а данные размещены в непрерывной области памяти. Для данного режима
характерно, что по завершении передачи одиночного блока контроллер ПДП должен
перепрограммироваться для других передач даже этого же блока. В буферном режиме
с автоинициализацией, напротив, допускается неоднократная
передача контроллером ПДП одного и того же блока данных без перепрограммирования
канала всякий раз. В режиме с
цепочкой буферов допускается, чтобы в программе был определен список буферов,
содержимое которых передается, при этом для перепрограммирования контроллера
ПДП используются программы обработки прерываний. Канал для передачи содержимого
нового буфера программируется до того, как закончится передача содержимого
текущего буфера. В данном режиме контроллер ПДП может работать с разрывными
областями памяти и передавать все данные из этих областей за один рабочий
процесс ПДП. 3. Программируемый
контроллер прерываний
Рассмотрение
функций контроллера 82380 продолжим с помощью Рис.
9.3. Функционально программируемый контроллер прерываний
идентичен своим предшествующим моделям 8259А и 82С59А, за исключением
программирования векторов прерываний. В контроллере 82380 объединены ресурсы
трех контроллеров типа 82(С)59А. Каскадируя
пятнадцать входов запросов прерываний контроллеров 82С59А, имеющихся в
распоряжении программиста, можно организовать до 120 каналов запросов внешних
прерываний. Хотя контроллеры могут работать в режиме ведущего устройства,
приоритет отдается каскадному режиму. В контроллере
прерываний 82380 имеются более широкие возможности по использованию механизма
векторов прерываний, поскольку каждый вход запроса прерываний может отдельно
программироваться. Это значит, что каждому запросу прерываний может быть
предписан свой собственный вектор прерывания; кроме того, системные программы
по умолчанию могут присвоить контроллеру прерываний 82380 определенный вектор.
Этот вектор используется в цикле подтверждения незапрашиваемых прерываний или
прерываний, вызванных ошибочным запросом, с целью предупреждения системы о
ложных прерываниях. С помощью прерывания система также информируется о том, что
предпринята попытка запрограммировать векторы контроллера
82380 по методу контроллера 82С59А. Эта особенность гарантирует совместимость
существующих программных продуктов с программным обеспечением, написанным для
82380. К другим усовершенствованиям контроллера прерываний
82380 относится возможность каскадного подключения внешних контроллеров прерываний,
а также то, что квитирование установления связи между ведущим и ведомым
устройствами вынесено из специализированных каскадных линий на шину данных. На рис. 3 показаны пять основных
блоков контроллера прерываний: ·
регистр запросов прерываний (IRR); ·
блок разрешения приоритетов (PR); ·
служебный регистр (ISR); ·
регистр маски (IMR); ·
регистр векторов (VR). Рис. 3. Структурная схема контроллера прерываний Всеми
прерываниями управляют каскадно-включенные регистры запроса прерываний IRR и
служебный регистр ISR. В регистре IRR фиксируются уровни всех прерываний, требующих
обработки, а в регистре ISR – уровни всех прерываний, проходящих обработку. Во
время цикла подтверждения прерывания с помощью блока разрешения приоритетов
определяются приоритеты запросов по содержимому регистра IRR, а для прерываний
с высшим приоритетом в регистре ISR помечаются соответствующие разряды. Регистр
маски прерываний IMR используется совместно с регистром IRR и хранит код, по
которому будут маскироваться определенные линии прерываний. Маскирование
входов с более высоким приоритетом не влияет на линии запросов прерываний с
низшим приоритетом. Номера предварительно запрограммированных векторов
прерываний записываются в набор векторных регистров VR, для каждой линии
запроса прерывания определен свой векторный регистр. Во время цикла
подтверждения прерывания контроллера 82380 номер вектора, соответствующий
выбранному прерыванию, выставляется на шину данных. 4. Программируемые интервальные таймеры
На структурной
схеме Рис.
4 показаны четыре 16-разрядных программируемых таймера
контроллера 82380. По функционированию все таймеры идентичны своему предшественнику
82С54. Каждый таймер может работать в любом из шести различных режимов несмотря на то, что для всех четырех таймеров
используется один общий тактовый вход. Этот вход может быть не зависящим от
системной тактовой частоты. Микропроцессор 80386 может устанавливать и
считывать текущее содержимое счетчика таймера в любой момент времени независимо
от режима работы таймера. Выходы таймеров могут быть подключены к каким-нибудь системным функциональным устройствам, что в целом может
способствовать упрощению структуры системы.
Рис. 4. Структура программируемых интервальных таймеров Таймер 0
занимает особое положение. Он обычно служит для формирования прерываний по
времени, и его выход заводится непосредственно на вход контроллера прерываний.
Этот таймер не имеет выхода из контроллера 82380. С помощью таймера 1 ведется
отсчет времени для формирования цикла регенерации. Выход таймера 2
соединяется с каким-либо входом запроса прерывания для обеспечения других
функций таймера. Выходы таймеров 1 и 2 могут использоваться для специальных
целей, а также для обобщенных целей таймера и счетчика. 5. Контроллер регенерации
динамического ОЗУ
На Рис. 5 приведена структурная схема контроллера регенерации
динамического ОЗУ 82380, в состав которого входят 24-разрядный счетчик адреса
регенерации и логические схемы арбитража. Типовой цикл регенерации для шины
микропроцессора 80386 включает только шесть тактов. На выходе таймера 1
периодически появляются запросы цикла регенерации, по которым контроллер
выставляет запрос доступа к системной шине с помощью сигнала HOLD. Если после
этого микропроцессор или другое ведущее устройство на шине подтверждает
запрос, то контроллер регенерации динамического ОЗУ выполняет операцию чтения
из памяти по адресу, содержащемуся на этот момент в регистре адреса
регенерации. Одновременно активизируется сигнал REF#, вызывающий выполнение
регенерации вместо обыкновенного чтения памяти. Управление шиной возвращается
микропроцессору в конце описанного цикла. Рис.
5. Контроллер регенерации
динамического ОЗУ Запрос на
доступ к шине от контроллера регенерации динамического ОЗУ имеет высший
приоритет, поэтому он может прервать любой активный процесс, происходящий с
использованием ПДП. Такая
организация работы позволяет контроллеру ПДП пересылать большие блоки данных,
не влияя на функции по регенерации памяти. Это достигается тем, что контроллер
регенерации динамического ОЗУ не целиком захватывает управление шиной, а как бы
"скрадывает" циклы шины из процесса ПДП. При этом 24-разрядный
счетчик адреса регенерации может увеличиваться программно, чтобы изменялись
используемая разрядность шины и способ организации памяти в виде банков. 6. Генератор
с состоянием ожидания
Структурная
схема программируемого генератора 82380 с выходным сигналом READY (готовность)
для шины микропроцессора 80386, называемого генератором с состоянием ожидания,
представлена на Рис.
9.6. Генератор с состоянием ожидания может быть активизирован
любым периферийным устройством, в цикл работы которого требуется ввести такты
ожидания. По таким запросам генератор поддерживает входной сигнал READY микропроцессора
в неактивном состоянии в течение предварительно определенного числа тактов
шины. В генераторе имеется шесть программно доступных регистров состояния ожидания
– по три для доступа к памяти и обращения к устройствам ввода-вывода. Любой из
этих шести регистров может быть выбран с помощью двухразрядного сигнала выбора
состояния ожидания и сигнала M/IO# от ведущего устройства на шине. В
четырехразрядные регистры состояния ожидания могут быть записаны коды номеров
состояний ожидания 0 – 15. Независимо от того, активный или нет генератор с
состояниями ожидания, он постоянно отслеживает состояние микропроцессора или
другого ведущего в данный момент устройства на шине. Если ведущее
устройство на шине находится в режиме конвейерной работы, то генератор вводит
такты ожидания, число которых равно значению, записанному в один из шести выбранных
регистров состояний ожидания. Если же ведущее устройство работает в неконвейерном режиме, то в цикл шины вводится один такт
ожидания. После сброса во все шесть регистров оказывается
загружено значение FFH (разряды D7 – D4 и D3 – D0), что задает максимально
возможное число тактов ожидания. Любое
периферийное устройство, которое может формировать свой собственный сигнал
READY, может также запретить работу генератора с состояниями ожидания 82380,
установив оба сигнала выбора регистров в состояние высокого уровня. Однако это
не лишит генератор 82380 способности определить по состоянию конвейера число
тактов ожидания в последующих циклах шины. 7. Сброс
центрального процессора
Контроллер
82380 реализует специальную функцию сброса, которая может быть активизирована
либо программным запросом сброса, либо сигналом сброса, поступающим от
тактового генератора 82384. Если на входе RESET микропроцессора 80386
присутствует сигнал сброса, то линия RESET этого микропроцессора остается
активной. Программный запрос сброса может заново инициализировать микропроцессор
80386 вследствие того, что контроллер 82380. переведет линию RESET микропроцессора
в активное состояние на время не менее 62 тактов. Программный сброс (по линии
CPURST) может быть сформирован в результате записи кода 1111ххх0 (где х – произвольное значение) в один из внутренних регистров
82380 порта, доступного только по записи, с адресом 64Н.
Контроллер
82380 может быть запрограммирован так, чтобы на линиях состояния
микропроцессора 80386 отслеживался код обнаружения останова и автоматически
производился сброс микропроцессора. Это происходит, если разрешено действие
функции обнаружения останова микропроцессора. Действие функции обнаружения
останова включается и выключается с помощью записи определенного управляющего
разряда во внутренний порт управления контроллера по адресу 61Н. Для
определения причин сброса в контроллере 82380 имеется диагностический регистр.
Извне он представлен двумя восьмиразрядными диагностическими портами,
доступными по чтению и по записи, которые используются только для хранения
соответствующей информации. Так, в них могут храниться данные, полученные в
определенных контрольных точках, или коды ошибок, выработанные при включении
питания системы и при выполнении сервисных диагностических программ. Диагностические
порт 1 (адрес 80Н) и порт 2 (адрес 88Н) используются для различения
"холодного" и "горячего" сбросов. Размещение карты регистров
В результате
аппаратного сброса внутренние регистры контроллера 82380 привязываются в
пространстве ввода-вывода по адресу порта 0000Н. Размещение регистров контроллера
82380 может быть изменено программным образом. По умолчанию регистры располагаются
между адресами 0000Н и 00DBH. С помощью регистра размещения, входящего в
состав контроллера 82380, карта внутренних регистров может быть выровнена на
любую 16-мегабайтную границу в пространстве 32-разрядных адресов памяти или на
любую четную 256-байтную границу в пространстве 16-разрядных адресов портов
ввода-вывода. Регистр
размещения (Рис.7) входит в состав внутренних регистров контроллера
82380; адрес соответствующего ему порта, доступного по чтению и по записи,
равен 7FH. Регистр размещения определяет базовый адрес множества внутренних
регистров 82380. С помощью этого регистра область 256 последовательных адресов
может быть отображена либо на оперативную память системы, либо на адресное пространство
ввода-вывода. Через указанные внутренние регистры осуществляется управление
всеми периферийными устройствами, входящими в состав контроллера 82380. Если разряд 0
регистра размещения установлен в 1, то контроллер 82380 настроен на адреса
памяти. При этом адресные сигналы А0 – А17
используются для выбора того внутреннего регистра, к которому должно
осуществляться обращение. Линии А25 – А31 соответствуют разрядам 1 – 7 регистра
размещения. Кроме того, линии А8 – А23 не используются, а сигнал на линии А24
предполагается всегда нулевым. Например, если в регистр размещения записано
значение 10101000 (или 0А8Н), то контроллер отобразит карту регистров на
область памяти с адресами 0Ахххх00Н – 0AxxxxFFH. Рис.
7. Регистр размещения Если разряд 0 в регистре
размещения сброшен, то регистры 82380 отображаются на пространство
ввода-вывода. Адресные сигналы А0 – А7 используются
также для выбора того внутреннего регистра, к которому должно быть выполнено обращение.
Линии А9 – А15 соответствуют разрядам 1 – 7 регистра
размещения. Контроллер 82380 декодирует сигналы с линий А15 – А8, причем А8
предполагается равным 0. Например, если в регистр размещения записано значение
10111110 (или 0ВЕН), то регистры 82380 отображены на пространство ввода-вывода
между адресами 0ВЕ00Н и 0BEFFH. Следует
отметить, что под внутренние регистры 82380 отведены не все 256 последовательных
адресов. В контроллере 82380 всегда выполняется декодирование значения сигналов
А0 – А7 с целью выявить, имеется ли по данному адресу
какой-либо внутренний регистр. Если такого регистра не обнаруживается,
контроллер игнорирует этот адрес. Поэтому представляется возможным размещать по
таким неиспользуемым адресам адресного пространства контроллера 82380 другие
внешние устройства. Известно, что фирма Intel зарезервировала часть
неиспользуемых адресов под будущие периферийные устройства. Интерфейс с микропроцессором
Ниже приводится
пример шинного интерфейса контроллера 82380 и микропроцессора 80386. На Рис. 9.8 представлена типовая структурная
схема системы на базе 80386 и 82380. Как видно, контроллер 82380 имеет
множество интерфейсных линий, предназначенных для организации эффективного
взаимодействия с микропроцессором 80386. При этом минимизируется объем
аппаратных средств, необходимых для реализации сопряжения 82380 с 80386. Рис.
8. Конфигурация системы на базе
80386 и 82380 Приемопередатчик
на шине данных включается так, чтобы периферийные устройства, входящие в
состав 82380, были отделены от остальных устройств системы. Управление этим
приемопередатчиком следует строить таким образом, чтобы предотвратить эффект
состязаний на шине между внешними устройствами и контроллером 82380. Принцип
управления основан на использовании схемы декодирования адреса порта и схемы
формирования сигналов разрешения и выбора направления передачи для данного
приемопередатчика. При этом в тех случаях, когда происходит обращение к любому
из внутренних регистров контроллера 82380, работа шинного приемопередатчика
запрещается и локальной шиной управляет только 82380. Сигналы сопряжения с
микропроцессором 80386
В состав блока
сопряжения контроллера 82380 с шиной микропроцессора 80386 кроме 32-разрядных
шины данных и адресной шины входит ряд линий, непосредственно соединенных с
соответствующими линиями микропроцессора 80386. Дополнительные сигналы
управления поддерживают выполнение некоторых шинных функций. Контроллер 82380
подключается к тем же линиям адреса, данных и управления, что и микропроцессор
80386, поскольку оба они разделяют одну общую для них локальную шину. Далее
даются краткие комментарии по каждому из сигналов, обеспечивающих интерфейс с
микропроцессором 80386. Адресная шина. Двунаправленные линии
А31 – А2, передающие сигналы с тремя состояниями,
подключаются непосредственно к адресной шине микропроцессора 80386. Адресная
шина контроллера 82380 обеспечивает адресацию пространства ввода-вывода емкостью
64 Кбайт (диапазон адресов 00000000Н – 0000FFFFH) и 4-гигабайтной области – физической
памяти емкостью 4 Гбайт (диапазон адресов 00000000Н – FFFPFFFFH). В режиме
ведущего устройства зги сигналы контроллера 82380 служат выходными для
адресации периферийных устройств и памяти. В подчиненном режиме эти же сигналы
являются входными и образуют адреса портов и внутренних регистров контроллера
82380. Шина данных. Шина данных (линии D0 –
D31) обеспечивает 32-разрядный интерфейс двунаправленных сигналов с тремя состояниями
между контроллером 82380 и системой. Каждая линия шины данных контроллера 82380
соединяется с одноименной линией шины данных локальной шины микропроцессора
80386. Контроллер 82380 через шину данных передает векторы прерываний,
формируемые им в цикле подтверждения прерываний. В режиме ведущего устройства
по шине данных 82380 могут передаваться 8-, 16- и 32-разрядные данные между
устройствами ввода-вывода и памятью и наоборот. Для подчиненного режима
предполагаются операции ввода-вывода, что определяет передачу только байтовых
данных. Используя сигналы линий разрешения байтов ВЕ0#
– ВЕЗ#, для всех операций записи микропроцессор 80386 защелкивает в контроллере
82380 сигналы с линий либо D0 – D7, либо D8 – D15. Так как микропроцессор
дублирует байтовые данные на обеих половинах шины данных, то контроллер 82380
игнорирует сигналы линий D16 – D31. В случае, если
микропроцессор 80386 считывает данные из контроллера 82380, байтовые данные оказываются
продублированы четырежды на шине данных (D0 – D7, D8 – D15, D16 – D23 и D24 –
D31). Тактовые импульсы. Тактовый вход CLK2
предназначен для синхронизации работы контроллера 82380 и микропроцессора
80386. Поскольку частота импульсов на входе CLK2 делится пополам для получения
внутренней тактовой частоты контроллера, то в случаях, когда требуется
временная синхронизация работы 82380 и 80386, на вход CLK2 следует подавать
импульсы удвоенной частоты микропроцессора 80386. Во временной диаграмме внутреннего
тактирования выделяются две фазы PHI1 и PHI2, причем длительность каждой этой
фазы равна периоду сигнала CLK2. Фаза PHI1 используется для защелкивания
внутренних данных; фаза PHI2 – для фиксации входных сигналов и установки
внутренних сигналов. Контроллер 82380 формирует сигнал CPURST, гарантируя, что
микропроцессор 80386 будет сброшен в фазе PHI1. Сброс. Вход RESET является синхронным,
и появление сигнала на нем вызывает останов выполнения любой операции и
перевод контроллера 82380 в некоторое определенное заранее исходное состояние.
В исходном состоянии контроллер 82380 настроен на подчиненный режим и ожидает
инициализации со стороны микропроцессора 80386. По сигналу RESET контроллер
перестает реагировать на все остальные входные сигналы, а все двунаправленные
'шинные линии контроллера переводятся в третье состояние. Для сброса контроллера
82980 сигнал RESET должен держаться в течение не менее 15 периодов тактового
сигнала CLK2. Цикл шины. Тип цикла шины определяется
установкой сигналов по двунаправленным линиям с тремя состояниями W/R#, D/C# и
М/IO#. Сигнал на линии
W/R# определяет циклы записи и чтения. Сигнал по линии D/C# различает циклы
управления и передачи данных процессора. Сигнал на
линии M/IO# указывает на выполнение цикла обращения к памяти или устройству
ввода-вывода. В режиме ведущего устройства контроллер 82380 сам формирует и
выдает эти сигналы; в подчиненном режиме он принимает их. В обоих режимах
указанные сигналы имеют действительное значение, если уровень сигнала
состояния адреса ADS# низкий. Если контроллер находится в режиме ведущего устройства,
то уровень сигнала D/C# всегда высокий. Подтверждение передачи. Сигнал по входу READY# свидетельствует о завершении текущего цикла шины. В режиме ведущего устройства он указывает на окончание шинного цикла ПДП. В подчиненном режиме контроллер 82380 отслеживает значения сигналов по этому входу и по входу ADS# с целью обнаружить адресные циклы при конвейерной организации функционирования шины. Вход READY# контроллера 82380 должен быть соединен непосредственно с входом READY# микропроцессора 80386. Табл.1.
Состояние адреса. Данная
двунаправленная линия ADS# служит для указания действительного адреса на линиях
А2 – А31 и ВЕ0# – ВЕЗ# и для определения типа цикла
шины (линии W/R#, D/C# и М/IO#).
В подчиненном режиме контроллер 82380 воспринимает этот сигнал ADS# как
входной. Для того же режима по предыдущему и текущему состояниям на линии ADS#,
а также по значению сигнала на входе READY# контроллер 82380 может определить,
является ли следующий цикл шины адресным при конвейерной организации работы
шины. Сигнал ADS# является действительным в течение фаз Т1
и Т2Р работы шины. В режиме ведущего устройства контроллер 82380 формирует
сигнал ADS* как выходной. Запрос следующего адреса. Сигнал на
линии NA# используется только в режиме ведущего устройства. В подчиненном
режиме используются сигналы READY# и ADS#, сигнал NA# игнорируется. Итак, в
режиме ведущего устройства сигнал NA# сообщает контроллеру 82380 о запросе
системы конвейерной подачи следующего значения адреса. Активный уровень
сигнала NA# низкий, он формируется схемами управления памятью или периферийными
устройствами и показывает, что еще до завершения текущего цикла шины система
готова принимать новое значение адреса и новую комбинацию сигналов из 82380,
определяющую тип цикла шины. Если сигнал NA# активный, то контроллер 82380
выставляет на шину новое значение адреса при условии, что внутреннее состояние
контроллера соответствует ожиданию запроса со стороны шины. Выход прерывания. С помощью сигнала по
линии INT микропроцессору 80386 сообщается об одном или более внутренних или
внешних запросах прерывания. Данный выход должен быть непосредственно соединен
с входом INTR маскируемого запроса прерывания микропроцессора 80386. Отклик
микропроцессора на сигнал INT последует в цикле подтверждения прерывания. 8. Синхронизация
шины контроллера 82380
Для организации
внутренней синхронизации контроллера 82380 частота входного тактового сигнала
CLK2 делится на два. Следовательно, для согласования работы контроллера 82380
и микропроцессора 80386 по времени требуется, чтобы частота CLK2 была равна
удвоенной тактовой частоте микропроцессора. Во временной диаграмме внутреннего
тактирования выделяются две фазы PHI1 и PHI2, причем длительность каждой этой
фазы равна периоду сигнала CLK2. Фаза PHI1 используется для защелкивания
внутренних данных; фаза PHI2 – для фиксации входных сигналов и установки
внутренних сигналов. Контроллер 82380 формирует сигнал CPURST, гарантируя, что
микропроцессор 80386 будет сброшен в фазе PHI1. Такт шины
характеризуется кратчайшим периодом времени какой-либо активности шины. Такту
шины, иногда называемому Т-тактом, соответствует один период импульсов PHI1 в
контроллере 82380 или эквивалентные по длительности два периода сигнала CLK2.
Длительность цикла шины зависит от наличия на входе READY# сигнала низкого
уровня. Каждый из шести типов циклов шины, определяемых комбинацией сигналов
W/R#, D/C# и M/IO#, состоит из двух и более тактов шины. Конвейеризация адресов
Конвейерная
организация выдачи значений адресов на шину позволяет памяти и периферийным
устройствам работать с ускорением на один такт ожидания по сравнению с обычным
режимом работы шины. В основе такой организации лежит принцип формирования
очередного значения адреса и сопутствующей ему комбинации управляющих сигналов
в то время, когда ведущее устройство на шине ожидает подтверждения завершения
текущего цикла шины. Если конвейерная организация выдачи адресов используется
совместно с методом расслоения памяти, то могут быть получены обращения к
памяти с нулевыми тактами ожидания. Контроллер 82380 поддерживает
конвейеризацию адресов как в подчиненном режиме, так и
в режиме ведущего устройства. В зависимости
от значения сигнала на входе NA# контроллер 82380 способен инициировать по поцикловому принципу либо конвейерную, либо неконвейерную работу в режиме ведущего устройства. Если
уровень сигнала на линии NA# низкий, то это говорит о том, что запрашивается
цикл шины конвейерного типа, и контроллер 82380 выставит адрес и сигналы,
определяющие тип цикла шины, как только сформируется внутренний запрос шины. В
подчиненном режиме по значениям сигналов на линиях READY# и ADS# локальной шины
процессора контроллер 82380 определит запрос конвейеризации адресов и затребует
от микропроцессора на один такт ожидания меньше (при этом предполагается, что
функционирует генератор, управляющий формированием тактов ожидания). При
обращении к внутренним регистрам 82380 в конвейерном режиме контроллер
использует расширенную информацию о цикле адреса и о цикле шины вообще. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||