 |
На рис.5-2. показана блок-схема типичной системы, ис-
пользующей процессор 80386. Это, фактически рабочее место ин-
женера-проектировщика.
На рис.5-3 показан внешний интерфейс 80386 более подроб-
но, выводы процессора сгруппированы по функциональному назна-
чению. Ниже описаны сигналы, связанные с этими выводами.
5.2.1. Синхросигнал
Первые версии 80386 работают при частоте 12,5 или 16
мгц. Сигнал синхронизации (CLK2) имеет частоту вдвое большую,
чем частота кристалла. Генератор синхросигнала 82384 генери-
рует сигнал CLK2, который делится процессором 80386 на два,
чтобы получить свою внутреннюю синхрочастоту.
5.2.2. Шины данных и адреса
Процессор 80386 имеет отдельные 32-битные шины адреса и
данных. Для совместимости с существующим оборудованием и
драйверами устройств эффективная разрядность шины может дина-
мически переключаться между 16 и 32 битами. Ниже этот вопрос
обсуждается более подробно.
Система команд 80386 поддерживает 8-, 16- и 32-битные
передачи. Адресная шина организована так, чтобы непосредст-
венно указывать байты данных, которые являются активными в
данном цикле шины. Старшие 30 бит каждого адреса поступают на
выводы A2-A31. Выводы BE0-BE3 (разрешение байта) указывают,
какие байты шины данных относятся к текущей передаче. BE0 Со-
ответствует разрядам D0-D7, BE1 соответствует D8-D15 и т.Д.
Эти управляющие байты непосредственно соответствуют способу,
которым большинство 32-битных подсистем памяти организованы,
и устраняют необходимость в аппаратуре декодирования байтов
(см.Рис.5-4). Если, например, необходимо присоединиться к
системной шине, которая требует наличия младших битов адреса,
A0 и A1 могут быть сгенерированы из BE0-BE3 при помощи 4 кла-
панов.
Операнды в памяти 80386 не должны быть расположены на
каких-нибудь границах, однако производительность повышается,
когда они попадают на границы адресов, которые кратны их раз-
меру в байтах. Это значит, что слова наилучшим образом распо-
лагаются на адресах, делащихся на два, а двойное слово - на
адресах, делящихся на 4. (Элементы длиннее 32 бит, такие как
числа с плавающей запятой с двойной точностью, должны также
располагаться на 4-байтных границах для наилучшего быстродей-
ствия). 80386 Автоматически генерирует необходимое количество
циклов шины для передачи операндов, не располагающихся на оп-
тимальных границах, например, целое, расположенное в двойном
слове, запомненное в четном адресе, не делящимся на 4, пере-
дается за два 16-битных цикла шины.
5.2.3. Определение циклов шины
80386 информирует внешнее оборудование о том, что на ши-
не начинается нормальный цикл шины путем установки сигнала
ADS (статус адреса). В тот же самый момент процессор опреде-
ляет тип цикла шины с помощью сигналов W/R, D/C и M/IO. Эти
сигналы отличают чтение от записи, данные от кодов команд и
обращение к вводу/выводу от обращения к памяти, соответствен-
но.
80386 Вырабатывает сигнал LOCK (захват шины) для муль-
типроцессорных применений и применений с несколькими ведущими
устройствами. Сигнал говорит другим ведущим устройствам шины,
что процессор выполняет операцию с несколькими циклами шины,
которая не должна прерываться. 80386 автоматически выдает
LOCK, когда он изменяет дескриптор сегмента и страничные таб-
лицы, во время циклов шины, связанных с процедурой подтверж-
дения, и когда он выполняет команду EXCHANGE. Команда
EXCHANGE обеспечивает неделимую операцию "проверка и установ-
ка", которая является основным строительным элементом при ре-
ализации семафоров в разделяемой памяти. Программисты, рабо-
тающие на языке ассемблера, могут захватить шину во время ис-
полнения некоторых других команд, если этим командам предшес-
твует префикс LOCK.
5.2.4. Управление циклом шины
По указанию внешнего оборудования 80386 может реализо-
вать два типа циклов шины: неконвейерный и конвейерный. Пер-
вый тип цикла обеспечивает 2-тактный доступ к высокоскорост-
ным кэш-памятям и локальным памятям любого объема (эффектив-
ность обращений к Kэш-памятям зависит от их размера по отно-
шению к элементам информации, с которыми обращаются к ним
прикладные программы). Второй тип цикла шины позволяет низ-
коскоростным памятям иметь больше времени для ответа на цикл
шин, позволяя процессору 80386 в то же время работать с мак-
симальной скоростью. Внешнее оборудование может динамически
разрешать и запрещать конвейеризацию шины путем установки
сугнала NA (следующий адрес), как описано ниже. Предоставляя
возможность динамического управления циклом шины, процессор
80386 позволяет инженеру-разработчику использовать комбинации
из различных компонентов (элементов) памяти, которые удовлет-
воряют критериям стоимости, необходимого объема и требуемой
производительности, а также приспосабливать проект для ис-
пользования перспективных технологий при создании микросхем
памяти.
Процессор 80386 выводит тип цикла шины, как описаны вы-
ше, а внешнее оборудование сигнализирует, что оно ответило на
цикл шины путем установки сигнала READY. Если, как это часто
бывает, другой запрос шины ожидает внутри процессора 80386,
когда сигнал READY уже установлен, процессор выводит следую-
щий тип цикла шин. Если конвейеризация отключена, минимальное
время между адресами и данными составляет два такта. Внешнее
оборудование, которое не может ответить за два такта, может
удлинить цикл шины путем удержания сигнала READY в неактивном
состоянии, т.е. путем вставления тактов ожидания в цикл. Если
32-битные циклы шины исполняются друг за другом, то макси-
мальная пропускная способность шины 80386 составит 32 мега-
байта в секунду при частоте синхросигнала 16 мгц или 25 мега-
байт в секунду при частоте 12,5 мгц.
Благодаря внутренней конвейеризации процессор 80386
очень часто знает адрес и тип следующего цикла шины, прежде
чем внешнее оборудование ответит на текущий цикл. Внешнее
оборудование может использовать свойство внутренней конвейе-
ризации адреса 80386 для получения более раннего доступа к
следующему типуцикла шины. Конвейеризация адреса может дать
внешнему оборудованию время, равное трем тактам между адресом
и данными, в то время как для процессора пропускная способ-
ность шины останется равной двум тактам.
Конвейеризация адреса наилучшим образом используется в
системах с перемежающейся адресацией, которая может отвечать
на доступ в различных блоках памяти параллельно. Устанавливая
сигнал NA, внешнее оборудование может запрашивать 80386 вы-
дать тип следующего цикла шины, как только он станет известен
внутри процессора, а не ожидать сигнала READY (см.Рис.5-6).
5.2.5. Динамическое управление разрядность шины
В дополнение к управлению типами циклов шины подсистема
памяти (и ввода/вывода) также может динамически управлять
разрядностью шины данных. Динамическое управление разряд-
ностью шины позволяет:
1) произвольно комбинировать 16- и 32-битные подсистемы
памяти, программное обеспечение также может осуществлять
32-битные передачи независимо от того, имеет оно доступ к 16-
или к 32-разрядной памяти;
2) достаточно просто подсоединятся к 16-битным шинам,
таким как шина MULTIBUS I;
3) реализовывать совместимость с 16-битными периферийны-
ми устройствами (и их драйверами), регистры которых обычно
располагаются на 16-разрядных, а не на 32-разрядных границах.
Устанавливая сигнал "разрядность шины 16" (BS16), внеш-
нее оборудование может проинструктировать процессор, чтобы он
выполнил текущую передачу только на 16 младших битах шины
данных. Если сигнал BS16 установлен, а обращение 32-разряд-
ное, процессор 80386 принимает сигнал BS16 позже в цикле ши-
ны, позволяя вне[нему оборудованию установить его толцко для
соответствующих типов памяти и ввода/вывода.
5.2.6. Статус процессора и управление
Другое ведущее устройство шины (процессор или интелиген-
тное периферийное устройство, такое как пдп-контроллер), мо-
жет запросить использования локальной шины 80386 путем выс-
тавления сигнала HOLD. Процессор подтверждает передачу шины
установкой сигнала HLDA (подтверждение захвата) в конце теку-
щего цикла шины (если он имел место), затем он подавляет свой
следующий цикл шины до тех пор, пока сигнал HOLD не будет
снят. Когда процессор 80386 освобождает шину для другого уст-
ройства, он поддерживает сигнал HLDA в активном состоянии, а
остальные свои выводы - в высокоимпедансном состоянии, элект-
рически изолируясь от системы.
Прерывания 80386 классифицируются как маскируемые и не
маскируемые, маскируемые прерывания поступают на вход процес-
сора INTR (запрос прерывания), а прерывание второго типа на
вход NMI (запрос немаскируемого прерывания). Программы опера-
ционной системы могут игнорировать вход INTR путем очистки
флага разрешения прерывания. Процессор всегда принимает сиг-
нал на входе NMI, многие системы используют этOт входдля то-
го, чтобы информировать процессор об аварии системы по пита-
нию или глобальной системной ошибке.
Запросы маскируемых прерываний обычно подсоединяются ко
входу INTR через один или несколько программируемых контрол-
леров прерываний 8259а (пкп). Каждый 8259а может обрабатывать
до 8 источников прерываний, несколько контроллеров 8259а мо-
гут быть каскадированы, чтобы обеспечить прием сигналов от
максимум 64 различных источников прерываний. Операционная
система инициализирует каждый 8259а при помощи идентифицируе-
мого номера (вектора), обеспечивая тем самым для каждого вхо-
да прерываний свою программу обработки. 8259А предоставляет
этот номер процессору 80386 в ответ на цикл шины процессора,
связанной с подтверждением прерывания. 80386 Использует этот
нимер для вызова обработчика, предназначенного для ответа на
прерывание.
Установка сигнала RESET ставит процессор в начальное
состояние (в реальный режим с запрещенными прерываниями) и
заставляет его выбрать команду из физического адреса
FFFFFFF04.
5.2.7. Управление сопроцессором
Процессор 80386 посылает команды и операнды в числовой
сопрпцессор 80287 или 80387 путем выполнения циклов ввода/вы-
вода шины к резервным адресам выше обычного 64-кбайтного
пространства ввода/вывода . Числовой сопроцессор может быть
выбран высоким уровнем сигнала на линии A31 при низком сигна-
ле М/I0. 80386 Использует различные протоколы связи для каж-
дого сопроцессора, посылая 16-битные величины в 80287 и
32-битные величины в 80387. Процессор 80386 знает в момент
сброса, присутствует ли 80387, программное обеспечение иници-
ализации может проверить наличие сопроцессора 80287.
|