МПС

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 называют также интегрированным системным периферий­ным устройством, поскольку он выполняет ряд типовых для вычислительных систем функций, обычно реализуемых на отдельных компонентах БИС и СБИС.

В состав таких средств входят

1)      логические схемы системного сброса;

2)      20-уровневый программируемый контроллер прерываний (функциональное расширение программируемого контроллера прерываний 82С59А фирмы Intel);

3)      четыре 16-разрядных программируемых таймера;

4)      программируемый генератор с состояниями ожидания;

5)      контроллер регенерации динамического ОЗУ;

6)      схемы управления и арбитража внутренней шины.

Структурная схема контроллера 82380 показана на рис. 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. Функции контроллера ПДП

Далее на рисунке показана структура 32-разрядного восьмиканального контроллера ПДП в составе кристалла 82380.

Рис. 2. Контроллер ПДП в 82386

 

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

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

В порядке обслуживания как программных, так и аппаратных запросов ПДП контроллер может поддерживать обмен данными следующих типов:

1)      порт ввода-вывода – порт ввода-вывода;

2)      память – память;

3)      порт ввода-вывода – память;

4)      память – порт ввода-вывода.

Семь из восьми каналов (все, за исключением канала 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. Программируемый контроллер прерываний

 

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

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

На рисунке ниже показаны пять основных блоков контроллера прерываний:

·        регистр запросов прерываний (IRR);

·        блок разрешения приоритетов (PR);

·        служебный регистр (ISR);

·        регистр маски (IMR);

·        регистр векторов (VR).

Рис. 3. Структурная схема контроллера прерываний

 

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

 

4. Программируемые интервальные таймеры

Ниже на структурной схеме показаны четыре 16-разрядных программируемых таймера контроллера 82380. По функционированию все таймеры идентичны своему предшественнику 82С54. Каждый таймер может работать в любом из шести различ­ных режимов несмотря на то, что для всех четырех таймеров используется один об­щий тактовый вход. Этот вход может быть не зависящим от системной тактовой ча­стоты. Микропроцессор 80386 может устанавливать и считывать текущее содержимое счетчика таймера в любой момент времени независимо от режима работы таймера. Выходы таймеров могут быть подключены к каким-нибудь системным функциональ­ным устройствам, что в целом может способствовать упрощению структуры системы.

Рис. 4. Структура программируемых интервальных таймеров

 

Таймер 0 занимает особое положение. Он обычно служит для формирования прерываний по времени, и его выход заводится непосредственно на вход контрол­лера прерываний. Этот таймер не имеет выхода из контроллера 82380. С помощью таймера 1 ведется отсчет времени для формирования цикла регенерации.

Выход таймера 2 соединяется с каким-либо входом запроса прерывания для обеспечения других функций таймера. Выходы таймеров 1 и 2 могут использоваться для спе­циальных целей, а также для обобщенных целей таймера и счетчика.

 

5. Контроллер регенерации динамического ОЗУ

Далее приведена структурная схема контроллера регенерации динамиче­ского ОЗУ 82380, в состав которого входят 24-разрядный счетчик адреса регенера­ции и логические схемы арбитража. Типовой цикл регенерации для шины микро­процессора 80386 включает только шесть тактов. На выходе таймера 1 периодиче­ски появляются запросы цикла регенерации, по которым контроллер выставляет за­прос доступа к системной шине с помощью сигнала HOLD. Если после этого мик­ропроцессор или другое ведущее устройство на шине подтверждает запрос, то кон­троллер регенерации динамического ОЗУ выполняет операцию чтения из памяти по адресу, содержащемуся на этот момент в регистре адреса регенерации. Одно­временно активизируется сигнал REF#, вызывающий выполнение регенерации вме­сто обыкновенного чтения памяти. Управление шиной возвращается микропроцес­сору в конце описанного цикла.

 

 

Рис. 5. Контроллер регенерации динамического ОЗУ

 

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

Такая организация работы позволяет контроллеру ПДП пересылать большие блоки данных, не влияя на функции по регенерации памяти. Это достигается тем, что контроллер регенерации динамического ОЗУ не целиком захватывает управление шиной, а как бы "скрадывает" циклы шины из процесса ПДП. При этом 24-разрядный счетчик адреса регенерации может увели­чиваться программно, чтобы изменялись используемая разрядность шины и способ организации памяти в виде банков.

 

6. Генератор с состоянием ожидания

Структурная схема программируемого генератора 82380 с выходным сигналом READY (готовность) для шины микропроцессора 80386, называемого генератором с состоянием ожидания. Генератор с состоянием ожи­дания может быть активизирован любым периферийным устройством, в цикл ра­боты которого требуется ввести такты ожидания. По таким запросам генератор под­держивает входной сигнал READY микропроцессора в неактивном состоянии в те­чение предварительно определенного числа тактов шины. В генераторе имеется шесть программно доступных регистров состояния ожидания – по три для доступа к памяти и обращения к устройствам ввода-вывода. Любой из этих шести регистров может быть выбран с помощью двухразрядного сигнала выбора состояния ожидания и сигнала M/IO# от ведущего устройства на шине. В четырехразрядные регистры состояния ожидания могут быть записаны коды номеров состояний ожидания 0 – 15. Независимо от того, активный или нет генератор с состояниями ожидания, он постоянно отслеживает состояние микропроцессора или другого ведущего в данный момент устройства на шине.

Рис. 6. Структурная схема генератора, управляющего состоянием ожидания 82380

 

Если ведущее устройство на шине находится в режиме конвейерной работы, то генератор вводит такты ожидания, число которых равно значению, записанному в один из шести выбранных регистров состояний ожидания. Если же ведущее уст­ройство работает в неконвейерном режиме, то в цикл шины вводится один такт ожидания. После сброса во все шесть регистров оказывается загружено значение 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-разрядных адресов портов ввода-вывода.

Регистр размещения входит в состав внутренних регистров контрол­лера 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. На рисунке 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

Вывод

Сигнал

Вывод

Сигнал

Вывод

Сигнал

Вывод

Сигнал

H3

А2

J14

D0

Р12

Vcc

M2

INT

Н14

D1

H14

D1

N6

IR

P10

IRQ11

Н2

А4

F13

D2

P1

Vcc

N10

IRQ12

H1

А5

Е12

D3

P2

Vcc

M9

IRQ13

G3

А6

С13

D4

P14

Vcc

N9

IRQ14

G2

А7

В12

D5

D1

Vcc

P9

IRQ15

G1

А8

В10

D6

C14

Vcc

N8

IRQ16

F1

А9

А9

D7

B1

Vcc

M8

IRQ17

F2

А10

K14

D8

А2

Vcc

P8

IRQ18

F3

A11

G13

D9

А4

Vcc

P7

IRQ19

E1

А12

F12

D10

А12

Vcc

N7

IRQ20

Е2

А13

D14

D11

А14

Vcc

M7

IRQ21

ЕЗ

А14

С11

D12

 

 

N6

IRQ22

D2

А15

C10

D13

L14

Vss

Р6

IRQ23

D3

А16

А10

D14

Al

Vss

 

 

С2

А17

С8

D15

P13

Vss

G14

CLK2

СЗ

А18

Н13

D16

N1

Vss

L12

D/C#

В2

А19

G12

D17

N2

Vss

К12

W/R#

С4

А20

Е14

D18

C1

Vss

L13

М/IO#

ВЗ

А21

D13

D19

A3

Vss

К2

ADS#

В4

А22

В13

D20

B14

Vss

N4

NA#

С5

А23

В11

D21

А13

Vss

J12

HOLD

В5

А24

С9

D22

N14

Vss

М3

HLDA

А5

А25

В8

D23

 

 

Мб

DREQO

С6

А26

J13

D24

N11

CLKIN

Р5

DREQ1

В6

А27

F14

D25

K13

TOUT1/REF#

N5

DREQ2

В7

А29

Е13

D26

N13

TOUT2/IRQ3#

Р4

DREQ3

С7

АЗ0

D12

D27

M13

TOUT3#

М5

DREQ4/IRQ9#

А7

А31

С11

D28

M11

READY#

Р3

DREQ5

L1

ВЕ0#

A11

D29

H12

READYO#

М4

DREQ6

К1

ВЕ1#

В9

D30

P11

WSC0

N3

DREQ7

J3

ВЕ2#

А8

D31

М10

WSC1

 

 

J2

ВЕЗ#

 

 

 

 

К3

EOP#

 

 

 

 

 

 

L3

EDACK0

 

 

 

 

N12

RESET

M1

EDACK1

 

 

 

 

M12

CPURST

L2

EDACK2

 

Состояние адреса. Данная двунаправленная линия 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 в кон­вейерном режиме контроллер использует расширенную информацию о цикле адреса и о цикле шины вообще.