ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.


Для вас сколько стоит циклевка паркета не составит большого труда.

 

Часть 7

                
                                     - 73 -
                               
                
                5. СВЕДЕНИЯ О ФУНКЦИОНИРОВАНИИ 
     
                         5.1 Введение
     Характерной    чертой    80386   является   наличие   просто
го
функционального интерфейса для взаимосвязи с внешними модулями.
     В 80386 имеются  две  раздельные  шины:  шина  адреса  и  ши
на
данных. Шина данных - 32-разрядная и двунаправленная. В большинст
ве
применяемых модулей для высококоростной локальной шины используют
ся
32 разряда адреса, передаваемого по адресной шине, из них 2 младш
их
разряда дешифрируются в 4 сигнала строба  данных  (каждый  из  эт
их
сигналов  разрешает  или  запрещает передачу соответствующего бай
та
данных), а остальные 30 разрядов представляют  собой  двоичный  к
од
адреса.  Для  управления  обменом  по  шине  адреса  и  шине данн
ых
используются соответствующие управляющие сигналы.
     Изменяемая  ширина   (разрядность)   шины   данных   позволя
ет
процессору  взаимодействовать  как  с  32-х,  так и с 16-разрядны
ми
внешними шинами в синхронном режиме (см. 5.3.4).
     Если передача информации состоит из нескольких циклов  обмен
а,
каждый  из  которых требует 16-разрядной ширины шины данных, то в
се
равно 80386  в  каждом  цикле  автоматически  выполнит  необходим
ую
процедуру  установления  разрдности  шины. *-разрядные периферийн
ые
устройства могут быть подключены к 32-х или 16-разрядным шинам, п
ри
этом  их производительность не снижается. В 80386 применяется нов
ый
режим конвейерной адресации, который обеспечивает в случае  32-х 
 и
16-разрядной   шин   наиболее  рациональное  использование  памят
и,
особенно это  проявляется  в  очень  напряженном  режиме  работы 
 с
ресурсами  памяти  (когда  доступ к памяти требуется большому чис
лу
абонентов). 
     Режим  конвейерной  адресации по сравнению с другими способа
ми
адресации значительно сокращает время нахождения интерфейса  памя
ти
в   состоянии   ожидания   (см.   5.4.2).   Конвейерную   адресац
ию
целесообразно применять в системах, имеющих в своем составе  памя
ть
с  расслоением.  В системах с рабочей частотой 16 МГц, включающих
 в
себя  память  с  расслоением   со   временем   обращения   100   
Нс
(динамические  ОЗУ),  можно  совсем  исключить  состояние ожидани
я,
применяя конвейерную  адресацию.  Когда  внешние  модули  потребу
ют
режим  конвейерной  адресации,  80386  сформирует адрес и определ
ит
длительность цикла шины для предстоящего цикла шины (если позволя
ют
внутренние ресурсы), даже если в настоящий момент процессор ожида
ет
подтверждение в текущем цикле.
     Однако,   неконвейеризированный   способ   адресации  идеаль
но 
подходит для устройств, в состав которых входит кэш-память, так к
ак 
высокое    быстродействие    кэш-памяти    позволяет   работать  
 в 
неконвейеризированном режиме. Для обеспечения максимальной гибкос
ти 
системы  на  основе  совмещения циклов конвейерный способ адресац
ии 
применяется в синхронных системах. 
     Цикл  шины  процессора  является  основным  средством переда
чи
информации из системы в процессор или из процессора в систему.
     Минимальная длительность цикла передачи данных по шине в 803
86
состовляет  два периода тактовой частоты. Поскольку процессор 803
86
имеет 32-разрядную  шину  данных  и  рабочую  частоту  16  МГц,  
то
следовательно  максимальная пропускная способность 80386 составля
ет
32 Мбайт/сек. Однако, длительность любого  цикла  шины  может  бы
ть
увеличена,  если  в  этом  цикле задерживается выдача подтвержден
ия
обмена  от  внешнего  модуля.  В  соответствующий  момент   време
ни
подтверждение  выдается  путем  формирования сигнала на входе REA
DY
(ГОТОВ) процессора 80386.
     80386 может терять доступ к своим локальным  шинам,  передав
ая
                                     - 76 -
           
           
управление   ими  другим  устройствам,  например,  каналам  прямо
го
доступа к памяти. При этом,  за  исключением  единственного  выхо
да
HLDA,  формируемого  80386,  обеспечивается  почти  полная изоляц
ия
процессора от системы. Изолязия процессора необходима при  переда
че
управления    тестовому   оборудованию   или   в   отказоустойчив
ых
применениях  (в многопроцессорных системах для изоляции отказавше
го
процессора и замены его другим).
     В   данном   разделе   представлены   сведения  об  интерфей
се
процессора.  Во-первых,  описано  назначение  и   функции   вывод
ов
процессора   (см.  5.2  Описание  сигналов).  Кроме  того,  описа
ны
изменения сигналов в течение циклов шины (см. 5.3  Механизм  обме
на
по  шине,  5.4 Описание функционирования шины и 5.5 Другие сведен
ия
по функционированию). 
     
     
                    5.2 Описание сигналов
                        5.2.1 Введение
     Подраздел  начинается  с  краткого описания входных и выходн
ых
сигналов 80386, объединенных в функциональные группы. Отметим,  ч
то
наличие  символа  #  после  названия сигнала означает, что активн
ое
состояние сигнала - состояние низкого  уровня.  И  наоборот,  ког
да
такого  символа # нет после названия сигнала, то сигнал активен п
ри
высоком уровне.
     Пример обозначения сигнала: M/IO#
             - Высокий уровень означает обращение к памяти.
             - Низкий  уровень  означает  обращение  к  устройств
ам
               ввода/вывода.   
     В  описаниях сигналов встречаются иногда обозначения временн
ых
параметров, таких как "t25  Reset/Setup  Time"  (Время  сброса  п
ри
включении питания) и "t26 Reset Hold Time" (Время удержания сигна
ла
сброса). Значения этих параметров приведены в табл.7-4  и табл.7-
5.
     
     
                       5.2.2 Синхросигнал (CLK2)
     CLK2 обеспечивает основную  синхронизацию  работы  80386.  Э
та 
тактовая  частота  делится  пополам  для  того,  чтобы сформирова
ть 
внутреннюю  процессорную   тактовую   частоту,   используемую   п
ри 
выполнении   команд   внутри  процессора.  Внутренний  синхросигн
ал 
состоит из двух фаз: "фазы один"  и  "  фазы  два".  Каждый  пери
од 
частоты.  На рис.5-2 показано соотношение двух синхросигналов. Ес
ли 
необходимо,   фаза    внутреннего    синхросигнала    может    бы
ть 
синхронизирован  от  такого  отрицательного  фронта  сигнала RESE
T, 
который обеспечит заданные времена установки и удержания, t25 и t
26 
(setup and hold times). 
     
     
                       5.2.3 Шина данных (D0-D31)
     Двунаправленные   с   тремя   состояниями  линии  шины  данн
ых 
обеспечивают перемещение данных  от  80386  к  другим  устройства
м. 
Наличие  высокого  уровня  напряжения на входах/выходах шины данн
ых 
обозначает наличие кодов логической единицы "1"  на  этих  вывода
х. 
Шина   данных  может  передавать  данные  как  на  32-,  так  и  
на 
16-разрядные шины благодаря тому, что  есть  возможность  изменен
ия 
размера  шины  данных;  размер  шины  данных определяется значени
ем 
входного сигнала BS16# (см. параграф 5.2.6 Шина управления). 
     Для правильного выполнения операций считывания сигналов с ши
ны
данных требуется обеспечение необходимых значений времени установ
ки
                                     - 77 -
           
           
t21 и времени удержания t22 считываемых данных.
     При   любой   операции   записи   (включая  циклы  останова 
 и
выключения) 80386 всегда передает все 32 разряда данных, даже  ес
ли
в текущем цикле размер шины обмена равен 16 разрядам.
     
     
               5.2.4 Шина адреса (BE0#-BE3#, A2-A31)
     Эти   выходы   с  тремя  состояниями  обеспечивают  физическ
ую 
адресацию памяти или адресацию устройств ввода/вывода. Шина  адре
са 
обеспечивает  физическое  пространство  адресов  памяти  объемом 
 4 
гигабайта  (от  00000000H  до  FFFFFFFFH)  и  пространство  адрес
ов 
ввода/вывода  объемом  64 килобайта (от 00000000H до 0000FFFFH) д
ля 
обращения  к  устройствам  ввода/вывода.   Для   передачи   сигал
ов 
ввода/вывода,    автоматически    формируемых    для    обеспечен
ия 
взаимодействия  80386  с   сопроцессором,   используется   адресн
ое 
пространство  ввода/вывода  от  800000F8H до 800000FFH, так как д
ля 
обращения  к  сопроцессору  необходимо  совпадение  двух   услови
й: 
наличие  высокого  уровня  напряжения на линии адреса А31 и налич
ие 
низкого уровня на линии M/IO#. 
     Значения  сигналов   стробов   данных   BE0#-BE3#   определя
ют 
соответственно те байты 32-разрядной шины данных, которые участву
ют 
в текущей  передаче.  Это  особенно  удобно  для  взаимодействия 
 с 
внешней аппаратурой. 
     BE0# определяет участие в обмене разрядов D0-D7,
     BE1#                 -"-                  D8-D15,
     BE2#                 -"-                  D16-D23,
     BE3#                 -"-                  D24-D31.
     Количество  стробов  данных  BE0#-BE3#, находящихся в активн
ом
состоянии, определяет размер операнда обмена (1,2,3  или  4  байт
а)
(см. параграф 5.3.6 Выравнивание данных).
     Когда  выполняется  цикл  записи  в  память  или  в устройст
во
ввода/вывода, и передаваемый операнд  занимает  только  старшие  
16
разрядов  шины  данных (D16-D31), копия этого операнда одновремен
но
передается  по  младшим  16  разрядам  шины  данных  (D0-D15).  Э
то
дублирование выполняется для обеспечения оптимального режима запи
си
на  16-разрядные  шины.  Процедура дублирования записываемых данн
ых
зависит от значений стробов данных BE0#-BE3#.
.
                                     - 78 -
           
           
     Таблица 5-1. Зависимость дублирования записываемых данных
                           от значений BE0#-BE3#
-----------------------------------------------------------------
--
Стробы данных 80386|Записываемые данные 80386   |Есть ли автомати
------------------------------------------------|ческое дублирова
BE3#|BE2#|BE1#|BE0#|D24-D31|D16-D23|D8-D15|D0-D7|    ние?
-----------------------------------------------------------------
--
выс.|выс.|выс.|низ.|неопр. |неопр. |неопр.|  А  |      нет
-----------------------------------------------------------------
--
выс.|выс.|низ.|выс.|неопр. |неопр. |  В   |неопр|      нет
-----------------------------------------------------------------
--
выс.|низ.|выс.|выс.|неопр. |   С   |неопр.|  С  |      да
-----------------------------------------------------------------
--
низ.|выс.|выс.|выс.|   D   |неопр. |  D   |неопр|      да
-----------------------------------------------------------------
--
выс.|выс.|низ.|низ.|неопр. |неопр. |  В   |  А  |      нет
-----------------------------------------------------------------
--
выс.|низ.|низ.|выс.|неопр. |   С   |  В   |неопр|      нет
-----------------------------------------------------------------
--
низ.|низ.|выс.|выс.|   D   |   С   |  D   |  С  |      да
-----------------------------------------------------------------
--
выс.|низ.|низ.|низ.|неопр. |   С   |  В   |  А  |      нет
-----------------------------------------------------------------
--
низ.|низ.|низ.|выс.|   D   |   С   |  В   |неопр|      нет
-----------------------------------------------------------------
--
низ.|низ.|низ.|низ.|   D   |   С   |  В   |  А  |      нет
-----------------------------------------------------------------
--
                    
     Обозначения: D=логические записываемые данные в байте D24-D3
1;
                  C=                -"-                    D16-D2
3;
                  B=                -"-                    D8-D15
                  A=                -"-                    D0-D7.
     
     
            5.2.5 Сигналы определения типа цикла шины 
                      (W/R#, D/C#, M/IO#, LOCK#)
     
     Эти выходы с тремя состояниями определяют тип  текущего  цик
ла
шины.  В  зависимости  от значения W/R# все циклы подразделяются 
на
циклы записи и циклы чтения. D/C#  разделяет  все  циклы  на  цик
лы
обмена   данными  и  циклы  обмена  управляющими  сигналами.  M/I
O#
отличает циклы обращения к памяти от циклов обращения к устройств
ам
ввода/вывода.  По  сигналу  LOCK# различаются циклы с блокированн
ой
шиной. 
     Основными сигналами определения типа цикла шины являются W/R
#,
D/C# и M/IO#, так как эти сиганлы принимают действительное значен
ие
одновременно  с  установлением активного уровня сигнала ADS# (вых
од
строба   адреса).    Действительное    значение    сигнала    LOC
K#
устанавливается  тогда,  когда начинается цикл шины (причем, цикл
 с
конвейерной  адресацией)  и  после  установления  активного  уров
ня
сигнала ADS# (см. параграф 5.4.3.4 конвейерная адресация).
     Точное соответствие типов циклов шины значениям сигналов W/R
#,
D/C# и  M/IO#  приведено   в   табл.5-2.  Отметим  одну  комбинац
ию
сигналов W/R#, D/C# и M/IO#, которая никогда не может быть получе
на
при активном уровне сигнала ADS# (однако, эта  комбинация,  котор
ая
обозначена   как   "запрещенная"  может  иметь  место  в  нерабоч
их
состояниях шины, при неактивном  уровне  сигнала  ADS#).  Посколь
ку
действительные  значения  сигналов  M/IO#, D/C# и W/R# определяют
ся
временем действия сигнала ADS#, то в другое время для  оптимально
го
использования  дешифрирующей схемы можно использовать и запрещенн
ую
комбинацию.
.
                                     - 79 -
           
           
             Таблица 5-2. Определение типа цикла шины
-----------------------------------------------------------------
--
 M/IO# | D/C#  | W/R#  |   Тип цикла шины            | Блокирован
       |       |       |                             | ли шина?
-----------------------------------------------------------------
--
низкий |низкий |низкий | Подтверждение прерывания    |    да
-----------------------------------------------------------------
--
низкий |низкий |высокий| Запрещенная                 |    да
-----------------------------------------------------------------
--
низкий |высокий|низкий | Чтение данных из устройства |    нет
       |       |       | ввода/вывода                |
-----------------------------------------------------------------
--
низкий |высокий|высокий| Запись данных в устройство  |    нет
       |       |       | ввода/вывода                |
-----------------------------------------------------------------
--
высокий|низкий |низкий | Чтение команды из памяти    |    нет
-----------------------------------------------------------------
--
высокий|низкий |высокий| Останов:       Выключение:  |    нет
       |       |       | Адрес=2        Адрес=0      |
       |       |       | --------       -----------  |
       |       |       | (BE0#Выс.      (BE0#Низк    |
       |       |       |  BE1#Выс.       BE1#Выс.    |
       |       |       |  BE2#Низк.      BE2#Выс.    |
       |       |       |  BE3#Выс.       BE3#Выс.    |
       |       |       |  A2-A31Низк.)   A2-A31Низк.)|
-----------------------------------------------------------------
--
высокий|высокий|низкий | Чтение данных из памяти     | Некоторые
       |       |       |                             | циклы
-----------------------------------------------------------------
--
высокий|высокий|высокий| Запись данных в память      | Некоторые
       |       |       |                             | циклы
-----------------------------------------------------------------
--
     
     
                 5.2.6 Сигналы управления шиной
     
                        5.2.6.1 Введение
     Нижеперечисленные  сигналы  позволяют  процессору   определя
ть
начало  цикла  шины,  а  также  дают возможность другим устройств
ам
системы управлять конвейерной адресацией, размером  шины  данных 
 и
определять конец цикла шины.
     
     
                   5.2.6.2 Строб адреса (ADS#)
     Этот  входной сигнал с тремя состояниями на входе указывает 
на
то  что  на  выводах  80386  установлены  действительные   значен
ия
сигналов,  определяющих  тип  цикла  шины, и сигналов адреса (W/R
#,
D/C#, M/IO#, BE0# - BE3# и A2-A31). Сигнал  ADS  устанавливается 
 в
течение тактов Т1 и Т2  состояний шины (дополнительную информацию
 о
состояниях  шины  см.  5.4.3.2  Неконвейеризированная  адресация 
 и
5.4.3.4 Конвейерная адресация). 
     
     
              5.2.6.3 Сигнал подтверждения (READY#).
    Этот вход указывает на то, что текущий цикл шины завершен, и 
те
байты,  участие  которых  в  цикле  обмена  определено   значения
ми
BE0#-BE3#  и  BE16#,  приняты  или  переданы. Когда в течение цик
ла
                                     - 80 -
           
           
чтения или  цикла  подтверждения  прерывания  формируется  активн
ый
уровень  сигнала  READY#,  80386  "защелкивает"  входные  данные 
 и
завершает цикл. Когда сигнал READY#  формируется  в  цикле  запис
и,
процессор завершает цикл шины.
     Сигнал  READY#  игнорируется  в первом такте всех циклов шин
ы,
затем в каждом такте состояние READY# опрашивается до тех пор, по
ка
не  установится активный уровень сигнала READY#. READY# должен бы
ть
сформирован для подтверждения в каждом цикле  шины,  включая  цик
лы
отображения  останова  и  отображения  выключения.  Для  правильн
ой
работы время установки t19 и время  удержания  t20  сформированно
го
сигнала  READY# должны иметь определенные необходимые значения (С
м.
все параграфы раздела 5.4 Описание функционирования шины).
     
     
              5.2.6.4 Запрос следующего адреса (NA#)
     Этот сигнал используется  для  запрашивания  адреса  в  режи
ме
конвейерной  адресации.  Этот  вход  сообщает процессору о том, ч
то
система готова принять из 80386 новые значения сигналов  BE0#-BE3
#,
A2-A31,  W/R#, D/C# и M/IO#, даже если завершение текущего цикла 
не
подтверждено сигналом READY#.
     Если 80386 обнаружит на входе NA# активный уровень, он  выда
ет
на   шину   следующий  адрес,  обеспечив  внутреннюю  подготовку 
 к
следующему запросу шины (см. параграф 5.4.2 Конвейерная адресация
 и
5.4.3 Циклы чтения и записи).
     
     
            5.2.6.5 Указатель 16-разрядной шины (BS16#)
     
     Благодаря  сигналу BS16# осуществляется непосредственная свя
зь
80386  с  32-разрядной  и  16-разрядной  шинами  данных.  Установ
ка
активного уровня этого  входа  приведет к тому, что в текущем цик
ле
шины обмен будет производиться  только  по  младшей  половине  ши
ны
данных (D0-D15) в соответствии со значениями сигналдов BE0# и BE1
#.
Дополнительное влияние сигнала  BS16#  (установленного  в  активн
ое
состояние) не проявится, если в текущем цикле сформированы активн
ые
уровни только сигналов  BE0#  или  BE3#,  действие  сиганала  BS1
6#
(активного  уровня)  заставит процессор 80386 выполнить необходим
ые
переключения для  правильной  передачи  старшего(их)  байта(ов)  
по
линиям D0-D15.
     Если  операнд  занимает  обе  половины  шины  данных и BS16#
 в
активном  состоянии,  то  80386   автоматически   выполнит   втор
ой
16-разрядный цикл шины. Для правильной работы время установки t17
 и
время  удержания  t18  сигнала  BS16#  должны  иметь   определенн
ые
необходимые значения.
     Циклы   ввода/вывода,   автоматически  выполняемые  80386  д
ля
взаимосвязи с сопроцессором, не требуют  установки  сигнала  BS16
#.
Сопроцессоры  типа  80287 и 80387 анализируют входной сигнал ERRO
R#
сразу после отрицательного фронта сигнала RESET. 80386 обменивает
ся
только  16-разрядными  посылками с 80287, а в случае взаимодейств
ия
80386 с сопроцессором 80387 обмен производится только 32-разрядны
ми
посылками. Таким образом, значение BS16# влияет на циклы с участи
ем
80287, а в течение циклов с  участием  80387  сигнал  BS16#  долж
ен
поддерживаться на неактивном уровне. 
                
                                     - 81 -
     
     
                  5.2.7 Сигналы арбитража шины
     
                        5.2.7.1 Введение
          
     В   этом  разделе  описывается  механизм,  благодаря  которо
му
процессор  передает  управление  своими  локальными  шинами  друг
им
активным абонентам, запрашивающим урпавление шиной (см. 5.5.1).
                 5.2.7.2 Запросы на захват шины (HOLD)
     Этот  выход  указывает  на  то, что каким-то устройствам кро
ме
80386 требуется управление шиной.
     Сигнал HOLD  должен  поддерживаться  в  активном  состоянии 
 в
течение  всего  времени,  пока  любое  другое  устройство  являет
ся
владельцем  локальной  шины.  Сигнал  HOLD  игнорируется  во  вре
мя
действия  RESET.  Если  сигнал  RESET  появится  во  время действ
ия
сигнала HOLD, то более приоритетный сигнал RESET установит  шину 
 в
нерабочее    состояние    быстрее,    чем   установится   состоян
ие
подтверждения захвата шины (состояние высокого сопротивления).
     Процессор срабатывает по фронту  сигнала  HOLD  и,  пока  HO
LD
поддерживается  в активном состоянии, постоянно анализирует урове
нь
этого сигнала.  Вход  HOLD  -  синхронизированный.  Для  правильн
ой
работы  время  установки  t23  и  удержания t24 должны всегда име
ть
определенное необходимое значение.
     
             5.2.7.3 Подтверждение захвата шины (HLDA)
     Формирование активного уровня на выходе HLDA указывает на  т
о,
что  80386  передает  управление  своей  локальной шиной в ответ 
на
установление   сигнала  HOLD  и переходит в состояние подтвержден
ия
захвата шины.
     Состояние  подтверждения  захвата  предполагает  почти  полн
ую
изоляцию  процессора.  Сигнал  HLDA в этом состояние - единственн
ый
сигнал,  выдаваемый   80386.   Другие    выходные    сигналы    и
ли
двунаправленные  сигналы  (D0-D31,  BE0#-BE3#,  A2-A31, W/R#, D/C
#,
M/IO#, LOCK# и ADS#)  переключаются  в  третье  (высокоимпедансно
е)
состояние,  поэтому запросившее шину устройство может захватить и
х.
К некоторым сигнальным линиям желательно  подсоединить  фиксирующ
ие
резисторы  для  того,  чтобы  избежить  ложное срабатывание по эт
им
сигналам, когда они не формируются  текущим  владельцем  шины  (с
м.
7.2.3  Рекомендации по выбору и применению резисторов). Кроме тог
о,
один используемый фронт, который может быть  сформирован  на  вхо
де
NMI  во  время состояния подтверждения захвата, запоминается с те
м,
чтобы он был проанализирован и обработан после снятия сигнала HOL
D.
Кроме  обычного  использования  состояния подтверждения захвата п
ри
взаимодействии 80386 с контроллерами ПДП (прямого доступа к памят
и)
или  активными  периферийными  устройствами, состояние почти полн
ой
изоляции  процессора  особенно   удобно   использовать   в   режи
ме
тестирования   системы,    когда  тестовое  оборудование  управля
ет
системой, а также в отказоустойчивых системах.
                                     - 82 -
                
     
              5.2.8 Сигналы интерфейса с сопроцессором
                           5.2.8.1 Введение
     В следующих параграфах этого раздела дано  описание  сигнало
в,
предназначенных  для интерфейса с арифметическим сопроцессором. Э
ти
сигналы, дополняя  сигналы  шины  данных,  шины  адреса  и  сигна
лы
определения  типа цикла шины, управляют взаимодействием 80386 с е
го
сопроцессором 80287 или 80387. 
     
     
                 5.2.8.2 Запрос сопроцессора (PEREQ)
     Активный   уровень   этого   сигнала   указывает  на  то,  ч
то
сопроцессор требует, чтобы в ответ на его  запрос  операнды  данн
ых
были переданы в/из памяти.
     Активный  уровень  этого  входного сигнала указывает на запр
ос
сопроцессора на передачу процессором  80386  операнда  данных  в/
из
памяти,  в  ответ  на  этот  запрос 80386 передает информацию меж
ду
сопроцессором и памятью. Поскольку в 80386 хранится  код  операци
и,
выполняемой  сопроцессором, 80386 осуществляет запрошенную переда
чу
данных в заданном нарпавлении и по заданному адресу  памяти.  803
86
анализирует  и  срабатывает  по  уровню сигнала PEREQ. Сигнал PER
EQ
может быть асинхронным по отношению к CLK2. 
     
     
                 5.2.8.3 Сопроцессор занят (BUSY#)
     
     Активный   уровень   этого   сигнала   указывает  на  то,  ч
то
сопроцессор еще выполняет заданную текущую  инструкцию  и  пока  
не
может принять другую инструкцию.
     Когда  80386  встречает любую инструкцию сопроцессора, котор
ая
оперирует  с  арифметическим  стеком  (стеком  сопроцессора)  (т.
е.
инструкции   загрузки,   "рор"  -  инструкции (убрать  в  стек) и
ли
арифметические операции), или инструкцию ожидания  WAIT,  он  сра
зу
автоматически  анализирует состояние входного сигнала BUSY# и буд
ет
просматривать  его  до  тех  пор,  пока  BUSY#  не  переключится 
 в
неактивное состояние. 
     Такой    просмотр   входного   сигнала   BUSY#   предотвраща
ет
преждевременную выдачу следующей  инструкции  во  время  выполнен
ия
сопроцессором предыдущей инструкции.
     Инструкция  сопроцессора  FNINIT и FNCLEX могут быть выполне
ны
даже  при  наличии  активного  уровня  на  входе  BUSY#,  так   э
ти
инструкции   используются  для  инициализации  и  прерывания-сбро
са
сопроцессора.
     80386 анализирует  и  срабатывает  по  уровню  сигнала  BUSY
#.
Сигнал BUSY# может быть асинхронным по отношению к CLK2.
     Сигнал   BUSY#   служит   еще   одной   цели.  Если  во  вре
мя
отрицательного фронта сигнала RESET на входе BUSY#  имеется  сигн
ал
низкого  уровня,  то  80386 выполнит процедуру самодиагностирован
ия
(см. 5.5.3 Функционирование шины в течение и после действия сигна
ла
RESET).  Если  же  в  этот  момент сигнал BUSY# будет иметь высок
ий
уровень, то самодиагностирование выполняться не будет.
                                     - 83 -
     
     
               5.2.8.4 Ошибка сопроцессора (ERROR#)
     
     Этот входной  сигнал  указывает  на  то,  что  при  выполнен
ии
сопроцессором  предыдущей инструкции им был сформирован код ошибк
и,
немаскируемый управляющим регистром  сопроцессора.  При  выполнен
ии
сопроцессором  инструкции процессор 80386 автоматически анализиру
ет
входной сигнал ERROR#, и если установится активный уровень  сигна
ла
ERROR#,  то  80386  вырабатывает  прерывание  7, чтобы обратиться
 к
программам обработки ошибок.
     Некоторые инструкции  сопроцессора,  в  основном  те,  котор
ые
сбрасывают флаги арифметических ошибок в сопроцессоре или сохраня
ют
состояние сопроцессора, исполняются без выработки процессором 803
86
прерывания  7,  даже  если  установлено  активное состояние сигна
ла
ERROR#.  К  таким  инструкциям  относятся  FNINIT,  FNCLEX,  FSTS
W,
FSTSWAX, FSTCW, FSTENV, FSAVE, FESTENV и FESAVE.
     80386  анализирует  и  срабатывает  по  уровню сигнала ERROR
#.
Сигнал ERROR# может быть асинхронным по отношению к CLK2.
     Сигнал ERROR# выполняет еще одну функцию. Если низкий  урове
нь
сигнала ERROR# установится не позже, чем через 20 периодов тактов
ой
частоты  CLK2  после  отрицательного  фронта   сигнала   RESET,  
 и
сохранится  таким  по меньшей мере до тех пор, пока 80386 не начн
ет
свой первый цикл шины, то  это  указывает  на  то,  что  в  систе
ме
используется  сопроцессор  типа  80387  (разряд  ET  в регистре C
R0
автоматически устанавливается в 1). В  обратном  случае  в  систе
ме
используется  сопроцессор  типа  80287  или не используется никак
ой
(разряд ET в регистре CR0 автоматически устанавливается в  0).  С
м.
5.5.3  Функционирование  шины  в  течение  и после действия сигна
ла
RESET. Изменение сигнала  на  выходе  ERROR#  влияет  на  установ
ку
только  бита  ET.  Программно  устанавливаются необходимые значен
ия
битов EM и MP в регистре CR0. Следовательно, для различения  случ
ая
наличия  в  системе  сопроцессора  типа  80287  от  случая, когда
 в
системе вообще нет  сопроцессора,  необходимо  программное  задан
ие
соответствующего   значения  бита  EM  в  регистре  CR0  (единичн
ое
значение бита EM устанавливается в  случае,  когда  в  системе  н
ет
сопроцессора).  Если  анализ  изменения  состояния  сигнала  ERRO
R#
показал наличие в системе 80387 (сигнал ERROR установлен  в  низк
ое
состояние   после   сброса),   но  позднее  программно  установле
но
единичное состояние бита EM (EM=1), то 80386 ведет  себя  так,  к
ак
если бы в системе не было сопроцессора.
     
                     5.2.9 Сигналы прерывания
                          5.2.9.1 Введение
     В  этом  разделе  описываются  входные  сигналы, которые мог
ут
прерывать  или  приостанавливать  выполнение  процессором  текуще
го
набора инструкций.
     
            5.2.9.2 Маскируемый запрос прерывания (INTR)
     Активный  уровень  этого входного сигнала обозначает запрос 
на
обслуживание прерывания, которое может быть замаскировано битом  
IF
флагового  регистра  Flag Register 80386. В ответ на входной сигн
ал
INTR 80386 выполняет два цикла подтверждения прерывания и  в  кон
це
второго  цикла  "защелкивает" 8-битовый вектор прерывания, принят
ый
по линиям D0-D7, чтобы идентифицировать источник прерывания.  803
86
анализирует  уровень  и  срабатывает по уровню сигнала INTR. Сигн
ал
INTR может быть асинхронным по отношению к CLK2.  Для  того,  что
бы
гарантировать    опознание    процессором    маскируемого   запро
са
прерывания, активный уровень сигнала INTR должен поддерживаться  
до
начала первого цикла подтверждения прерывания.
                                     - 84 -
     
     
           5.2.9.3 Немаскируемый запрос прерывания (NMI)
     Этот   входной   сигнал   определяет  запрос  на  обслуживан
ие
прерывания, которое не может быть программно замаскировано.  Запр
ос
немаскируемого прерывания всегда обрабатывается по программе, адр
ес
начала которой указан в элементе (позиции)  2  таблицы  прерывани
й.
Когда  обрабатывается  NMI,  то  благодаря  фиксированному значен
ию
позиции   таблицы   прерываний,    соответствующей    NMI,    цик
лы
подтверждения прерывания не выполняются.
     80386   анализирует и  срабатывает  по  положительному  фрон
ту
сигнала NMI. Сигнал NMI  может  быть  асинхронным  по  отношению 
 к
сигналу  CLK2. Чтобы гарантировать опознание сигнала NMI, последн
ий
должен иметь неактивный уровень  по  меньшей  мере  в  течение  8
-и
периодов  CLK2,  и  затем  должен  быть установлен и поддерживать
ся
активный уровень сигнала NMI по меньшей мере в течение 8-и период
ов
CLK2.
     Как только начинается обработка запроса прерывания NMI, друг
ие
запросы  NMI  обрабатываться  не  будут  до   появления   очередн
ой
инструкции  IRET,  которая  означает  конец  процедуры обслуживан
ия
прерывания NMI. Однако, если все-таки раньше  этого  времени  сно
ва
будет   сформирован   активный   уровень   сигнала   NMI,  то  од
ин
положительный фронт сигнала  NMI  будет  запомнен  для  последующ
ей
обработки после выполнения очередной инструкции IRET. 
     
     
     5.2.9.4  Сигнал сброса (установки в исходное состояние)(RESE
T) 
     Этот входной сигнал останавливает выполнение любой операции 
 и
переводит  80386 в состояние, известное как состояние сброса. Сбр
ос
80386 производится установкой  активного  уровня  сигнала  RESET 
 в
течение 15-и или более периодов CLK2 (за 78 или более периодов CL
K2
до запроса самодиагностирования). Когда установлен активный урове
нь
сигнала   RESET,   сигналы   на   всех  остальных  входных  вывод
ах
игнорируются, а шинные выводы переводятся в нерабочее состояние к
ак
показано в табл.5-3. Если  одновременно установлены активные уров
ни
сигналов RESET и HOLD, то более приоритетным  будет  сигнал  RESE
T.
Сброс  по сигналу RESET будет произведен, даже если 80386 находил
ся
в состоянии подтверждения захвата до установки RESET.
     80386 анализирует  и  срабатывает  по  уровню  (активному  и
ли
неактивному)  сигнала RESET. Сигнал RESET может быть асинхронным 
по
отношению с CLK2. Если необходимо, фаза  внутреннего  синхросигна
ла
процессора,  а  также  целое  состояние  80386 могут быть полност
ью
синхронизированы с внешними схемами,  если  обеспечить  необходим
ые
для  этого  значения  времени установки t25 и времени удержания t
26
отрицательного фронта сигнала RESET.
.
                                     - 85 -
           
           
        Таблица 5-3   Состояние выводов (неработающей шины)
                        в течение действия сигнала RESET
-----------------------------------------------------------------
--
  Обозначение выводов     |  Уровни сигналов во время сброса RESE
-----------------------------------------------------------------
--
           ADS#           |            Высокий
-----------------------------------------------------------------
--
          D0-D31          | Третье состояние (высокий импеданс)
-----------------------------------------------------------------
--
        BE0#-BE3#         |            Низкий
-----------------------------------------------------------------
--
          A2-A31          |            Высокий
-----------------------------------------------------------------
--
           W/R#           |            Высокий
-----------------------------------------------------------------
--
           D/C#           |            Высокий
-----------------------------------------------------------------
--
          M/IO#           |            Низкий
-----------------------------------------------------------------
--
          LOCK#           |            Высокий
-----------------------------------------------------------------
--
           HLDA           |            Низкий
-----------------------------------------------------------------
--
                        
.
                                     - 86 -
           
           
                     5.2.10   Список сигналов
    
     В табл.5-4  перечислены сигналы процессора 80386  и  приведе
ны
некоторые их характеристики.
     
              Таблица 5-4    Перечень сигналов 80386
     
-----------------------------------------------------------------
--
 Название|   Функции   | Активный| Вход/ | Вход      | Переключае
т-
  сигнала|   сигнала   |  уровень| выход | синхронный| ся ли выхо
         |             |         |       | или асинх-| в третье
         |             |         |       | ронный по | (высокоимп
е-
         |             |         |       | отношению | дансное)
         |             |         |       | к CLK2    | состояние 
во
         |             |         |       |           | время дейс
т-
         |             |         |       |           | вия HLDA?
-----------------------------------------------------------------
--
  CLK2   |Синхросигнал |    -    | Вход  |     -     |      -
-----------------------------------------------------------------
--
 D0-D31  |Шина данных  | Высокий | Вход/ |     S     |     да
         |             |         | выход |           |
-----------------------------------------------------------------
--
BE0#-BE3#|Стробы данных| Низкий  | Выход |     -     |     да
-----------------------------------------------------------------
--
 A2-A31  |Шина адреса  | Высокий | Выход |     -     |     да
-----------------------------------------------------------------
--
  W/R#   |Указатель ре-| Высокий | Выход |     -     |     да
         |жима записи  |         |       |           |
         |или чтения   |         |       |           |
-----------------------------------------------------------------
--
  D/C#   |Указатель об-| Высокий | Выход |     -     |     да
         |мена данными |         |       |           |
         |или упр. сиг-|         |       |           |
         |налами       |         |       |           |
-----------------------------------------------------------------
--
 M/IO#   |Указатель об-| Высокий | Выход |     -     |     да
         |ращения к па-|         |       |           |
         |мяти или В/В |         |       |           |
-----------------------------------------------------------------
--
  LOCK#  |Блокировка   | Низкий  | Выход |     -     |     да
         |шины         |         |       |           |
-----------------------------------------------------------------
--
   ADS#  |Строб адреса | Низкий  | Выход |     -     |     да
-----------------------------------------------------------------
--
   NA#   |Запрос сле-  | Низкий  | Вход  |     S     |     да
         |дующего адре-|         |       |           |
         |са           |         |       |           |
-----------------------------------------------------------------
--
  BS16#  |16-разрядная | Низкий  | Вход  |     S     |     да
         |ширина шины  |         |       |           |
-----------------------------------------------------------------
--
 READY#  |Передача     | Низкий  | Вход  |     S     |     да
         |подтверждения|         |       |           |
-----------------------------------------------------------------
--
  HOLD   |Запрос на за-| Высокий | Вход  |     S     |     да
         |хват шины    |         |       |           |
-----------------------------------------------------------------
--
  HLDA   |Подтверждение| Высокий | Выход |     S     |     нет
         |захвата шины |         |       |           |
-----------------------------------------------------------------
--
.
                                     - 87 -
           
           
                                   Продолжение таблицы 5-4
-----------------------------------------------------------------
--
  PEREQ  |Запрос сопро-| Высокий | Вход  |     A     |     нет
         |цессора      |         |       |           |
-----------------------------------------------------------------
--
  BUSY#  |Сопроцессор  | Низкий  | Вход  |     A     |     нет
         |занят        |         |       |           |
-----------------------------------------------------------------
--
 ERROR#  |Ошибка сопро-| Низкий  | Вход  |     A     |     нет
         |цессора      |         |       |           |
-----------------------------------------------------------------
--
   INTR  |Маскируемый  | Высокий | Вход  |     A     |     нет
         |запрос пре-  |         |       |           |
         |рывания      |         |       |           |
-----------------------------------------------------------------
--
   NMI   |Немаскируемый| Высокий | Вход  |     A     |     нет
         |запрос преры-|         |       |           |
         |вания        |         |       |           |
-----------------------------------------------------------------
--
  RESET  |Сброс        | Высокий | Вход  | A(примеча-|     нет
         |             |         |       |    ние)   |
-----------------------------------------------------------------
--
     Примечание:  Если  фаза  внутреннего  синхросигнала процессо
ра
должна быть синхронизирована  с  внешними  схемами,  то  необходи
мо
обеспечить  определенные  значения  времени установки t25 и време
ни
удержания t26 отрицательного фронта сигнала RESET.
     
     
                  5.3  Механизм обмена по шине
     
                         5.3.1  Введение
     Все передачи данных  занимают  один  или  более  циклов  шин
ы.
Операнды  логических  данных  длиной  в байт, слово и двойное сло
во
могут быть переданы без выравнивания физических адресов. Любой ба
йт
может  быть  краевым  байтом  (первым  или последним) передаваемо
го
операнда, но при этом для передачи  невыровненного  операнда  мож
ет
потребоваться  два  или  даже  три физических цикла шины. (См.5.3
.4
Изменяемый размер шины данных и 5.3.6 Невыровненные операнды.)
     Сигналы  адреса  80386  предусмотрены для упрощения аппарату
ры 
внешней системы. Старшие биты адреса  реализованы  линиями  A2-A3
1. 
Младшие   биты   адреса   в  виде  BE0#-BE3#  обеспечивают  выбор
ку 
соответственно четырех  байтов  32-битной  шины  данных.  Благода
ря 
этому  физический  операнд представляется в каждом цикле в наибол
ее 
удобной форме. 
     Активные уровни выходных  сигналов  стробов  данных  BE0#-BE
3# 
устанавливаются,  если  соответствующие  им байты шины данных буд
ут 
принимать участие в предстоящем цикле шины, как указано в табл.5-
5. 
Изменяя  комбинацию  установленных стробов данных можно осуществи
ть 
любой  вариант  выборки  смежных  байтов,  но  никакая   комбинац
ия 
BE0#-BE3#  не  позволит  выбрать байты, разделенные двумя или тре
мя 
нефункционирующими байтами.                        
     Адресные биты A0-A1 физического  адреса  операнда  могут  бы
ть 
образованы,  когда необходимо (например, для интерфейсов Multibus
 I 
и  Multibus  II),  как  функция   установленных   стробов   данны
х. 
Соответствие  значений  A0  и  A1  сигналам  BE0#-BE3#  приведено
 в 
табл.5-6. Логические  схемы  формирования  A0  и  A1  приведены  
на 
рис.5-3. 
. 
                                     - 89 -
           
           
     Таблица 5-5.   Стробы данных и соответствующие им байты
                               данных и операндов
-----------------------------------------------------------------
--
 Стробы данных   |     Соответствующие сигналы шины данных
-----------------------------------------------------------------
--
    BE0#         |   D0-D7 (байт 0 - младший байт)
-----------------------------------------------------------------
--
    BE1#         |   D8-D15 (байт 1)
-----------------------------------------------------------------
--
    BE2#         |   D16-D23 (байт 2)
-----------------------------------------------------------------
--
    BE3#         |   D24-D31 (байт 3 - старший байт)
-----------------------------------------------------------------
--
     
          Таблица 5-6.  Формирование шины A0-A31 из шины
                               BE0#-BE3# и A2-A31
-----------------------------------------------------------------
--
                      Адресные сигналы 80386
-----------------------------------------------------------------
--
     A31 ......... A2      |  BE3#  |  BE2#   |  BE1#   |   BE0#
-----------------------------------------------------------------
--
     |  Физический адрес   |        |         |         |
---------------------------|        |         |         |
 A31 | .....| A2 | A1 | A0 |        |         |         |
-----------------------------------------------------------------
--
 A31 | .....| A2 | 0  | 0  |   X    |    X    |    X    | Низкий
-----------------------------------------------------------------
--
 A31 | .....| A2 | 0  | 1  |   X    |    X    | Низкий  | Высокий
-----------------------------------------------------------------
--
 A31 | .....| A2 | 1  | 0  |   X    | Низкий  | Высокий | Высокий
-----------------------------------------------------------------
--
 A31 | .....| A2 | 1  | 1  | Низкий | высокий | Высокий | Высокий
-----------------------------------------------------------------
--
     
     Рис.5-3   Логические схемы формирования A0, A1 как функций
                             сигналов BE0#-BE3#
     K - MAP for A1 Signal - карта Карно для сигнала A1.
     
     
     Каждый цикл шины включает в себя по меньшей мере два состоян
ия
шины.  Каждое  состояние  шины  занимает  по  времени  один  пери
од
тактовой  частоты  процессора.  Простейший  цикл  шины  может  бы
ть
дополнен состояниями шины, которые называются состояниями ожидани
я.
См. 5.4  Описание функционирования шины.
     Поскольку  для выполнение цикла шины требуется как минимум д
ва
состояния  шины  (что  равняется  двум  периодам  тактовой  часто
ты
процессора),   то   максимальная  скорость  передачи  данных  меж
ду
внешними  устройствами  и  80386  равна одному 4-байтовому двойно
му 
слову  в  каждые  два  периода  тактовой  частоты  процессора,  ч
то
соответствует   максимальной   пропускной   способности   шины   
32
мегабайт/сек (80386-16 работает на тактовой частоте 16 МГц).
.
                                     - 90 -
           
           
               5.3.2  Пространства памяти и ввода/вывода
     В течение циклов шины возможно обращение к пространству памя
ти
или к пространству ввода/вывода. Периферийные устройства в  систе
ме
могут быть отнесены либо к пространству памяти, либо к пространст
ву
ввода/вывода, или и к тому и к другому пространствам. Как  показа
но
на  рис.5-4,  физические   адреса   памяти находятся в диапазоне 
от
00000000H до FFFFFFFFH (4 гигабайта), а  адреса  ввода/вывода  - 
 в
диапазоне от 00000000H до 0000FFFFH (64 килобайта), необходимом д
ля
адресации  устройств  ввода/вывода.  Отметим  адреса  ввода/вывод
а,
используемые   в   автоматически   выполняемых  для  взаимосвязи 
 с
сопроцессором циклах  ввода/вывода.  Эти  адреса  от  800000F8H  
до
800000FFH   не   входят   в   диапазон  вышеуказанных  адресов  д
ля
программной адресации  устройств  ввода/вывода  и  позволяют  лег
ко
сформировать  сигнал  выборки сопроцессора, используя сигналы A31
 и
M/IO#.
     
  FFFFFFFFH -------------            - - - - - - -
            |           |            |           |
            |           |           
            |           |            | неадресуе-|
            |           |                мое
            |           |            |           |
            |           |
            |           |            |           |
            |           |  800000FFH |-----------|  Сопроцессор
            | Физичес-  |  800000F8H |           |  (80387 или
            |  кая      | (Примеч.1) |-----------|    80287)
            |  память   |            |           |
            |           |              Неадресуе-
            | 4 гига-   |            |   мое     |
            |   байта   |
            |           |  0000FFFFH |-----------| Программно-
            |           |            | 64 Кбайта | -адресуемое 
            |           |            |           | пространство
  00000000H -------------  00000000H ------------- ввода-вывода
             Пространство             Пространство
             физической               ввода/вывода
             памяти
     
     Примечание:  Так  как  в  течение  автоматически   выполняем
ых
циклов  взаимосвязи с сопроцессором устанавливается высокий урове
нь
сигнала A31, то установка единичного уровня A31 и  нулевого  уров
ня
строба формирования сигала выборки сопроцессора.
     
       Рис.5-4  Пространства физической памяти и ввода/вывода
.
                                     - 91 -
           
           
     
             5.3.3  Организация памяти и ввода/вывода
     Ширина  магистрали  данных  от  80386 к пространствам памяти
 и
ввода/вывода  может  составлять  32  бита  или  16  бит.  В  случ
ае
32-разрядной  ширины  магистрали пространства памяти и ввода/выво
да
организованы соответственно  как  массивы  физических  32-разрядн
ых
двойных  слов. Каждое двойное слово памяти или ввода/вывода состо
ит
из 4-х индивидуально адресуемых (с помощью последовательных адрес
ов
байтов)  байтов. Самый меньший (из четырех) адрес байта относится
 к
сигналам D0-D7; самый больший - к сигналам D24-D31.
     80386 имеет такой сигнал управления шиной, как BS16#,  котор
ый
обеспечивает  правильную взаимосвязь с 16-разрядными пространства
ми
памяти и ввода/вывода, организованными  в  виде  последовательнос
ти
16-битных  слов.  Циклы  обмена  с  16-разрядными  и  32-разрядны
ми
устройствами памяти или  ввода/вывода  могут  встречаться  в  люб
ой
последовательности, так как состояние сигнала BS16# анализируется
 в
течение каждого  цикла  шины.  См.  5.3.4  Изменяемый  размер  ши
ны
данных.  Сигналы  стробов  данных  BE0#-BE3# позволяют обращаться
 к
отдельным  байтам  при  любой  структуре  памяти  или  ввода/выво
да
(32-разрядной или 16-разрядной).
     
     
               5.3.4  Изменяемый размер шины данных
     Изменяемый  размер  шины  данных  -  отличительная особеннос
ть
80386,  обеспечиваютщая   непосредственную   связь   процессора  
 с
32-разрядными   или   16-разрядными   шинами   данных   памяти  и
ли
ввода/вывода. Один процессор может  быть  соединен  с  шинами  дв
ух
размеров.  Передачи  в/из 32- или 16-разрядные порты сопровождают
ся
определением в каждом цикле шины необходимой ширины шины. В течен
ие
каждого   цикла   шины  схема  дешифрации  адреса  или  подчиненн
ое
устройство сами могут установить активный уровень сигнала BS16# д
ля
16-разрядного порта, или неактивный уровень BS16# для 32-разрядно
го
порта.
     Когда  установлен  активный  уровень  сигнала BS16#, процесс
ор 
автоматически вместо одной передачи разрядностью больше 16 бит  и
ли 
одной  16-разрядной  невыровненной  передачи  выполнит  две или т
ри 
передачи, как потребуется. При активном уровне BS16#  все  переда
чи 
операндов   осуществляются   только   по   линиям  D0-D15.  Поэто
му 
16-разрядные устройства памяти или ввода/вывода обмениваются толь
ко 
сигналами  данных  D0-D15. Специальных переключателей не требуетс
я. 
Действие активного уровня сигнала BS16# проявляется  только  тогд
а, 
когда  в  текущем  цикле  шины установлены активные уровни сигнал
ов 
BE2# и/или BE3#. Если в передаче участвуют только линии D0-D15,  
то 
установка  активного  уровня BS16# не будет иметь значение, так к
ак 
передача  будет  производиться  все  равно  по  16-разрядной   ши
не 
независимо от состояния BS16#. Другими словами, установка активно
го 
уровня BS16# необязательна, когда только младшая половина  разряд
ов 
шины участвует в текущем цикле. 
     Существуют  две  ситуации,  при  которых  проявляется  влиян
ие
активного  уровня  BS16#  на действия процессора, зависящие таже 
от
значений стробов данных BE0#-BE3# в текущем цикле шины:
     - в обмене  участвует  только  старшая  половина  линий  шин
ы:
устанавливаются активные уровни только сигналов BE2# и/или BE3#;
     - в обмене участвуют и старшая, и младшая половины линий шин
ы:
устанавливаются активные уровни по меньшей  мере  сигналов  BE1# 
 и
BE2# (и возможно также сигналов BE0# и/или BE3#).
     Воздействие  BS16#  на  циклы  чтения "с учетом только старш
ей
половины линий шины":
                                     - 92 -
           
           
     Установка активного уровня BS16# в течение  циклов  чтения  
"с
участием   только   старшей  половины  линий  шины"  вынудит  803
86
считывать младшие 16 битов шины данных  и  игнорировать  данные  
на
старших 16 битах шины данных. Т.е. вместо считывания данных с лин
ий
D16-D31  в  соответствии  с  установленными  BE2#  и   BE3#   буд
ут
считываться данные с линий D0-D15.
     Взаимодействие  сигнала  BS16#  на  циклы  записи  "с участи
ем
только старшей половины линий шины":
     Установка активного уровня BS16# в течение  циклов  записи  
"с
участием только старшей половины" не отразится на процедуре запис
и.
Когда в цикле записи  установлены  активные  уровни  сигналов  BE
2#
и/или  BE3#,  80386 всегда копирует сигналы данных D16-D31 на лин
ии
D0-D15  (см.  табл.  5-1).  Поэтому  не  требуется   дополнительн
ых
действий  80386  для  того, чтобы выполнить эти циклы записи по 3
2-
или 16-разрядной шине.
     Воздействие сигнала  BS16#  на  циклы  чтения  "с  участием 
 и
старшей и младшей половин шины":
     Установка  активного  уровня  сигнала  BS16#  в течение цикл
ов
чтения "с участием и  старшей  и  младшей  половин  шины"  застав
ит
процессор  выполнить  два  16-разрядных  цикла  чтения для переда
чи
всего  физического  операнда.  Байты  0  и  1  (в  соответствии  
 с
установленными  BE0#  и  BE1#) будут считаны в первом цикле с лин
ий
D0-D15.  Байты  2 и 3 (в соответствии с установленными BE2# и BE3
#)
будут  считаны  во  втором цикле и снова с линий D0-D15. Сигналы 
на
линиях D16-D31 игнорируются в течение  обоих  16-разрядных  цикло
в.
BE0#  и  BE1#  всегда  находятся  в  неактивном состоянии в течен
ие
второго 16-разрядного цикла.
     Активный уровень сигнала BS16# необязательно устанавливать  
на
время второго 16-разрядного цикла. См. рис.5-14, циклы 2 и 2а.
     Воздействие  сигнала  BS16# (активного уровня) на циклы запи
си
"с участием и старшей и младшей половин шины":
     Установка активного уровня  сигнала  BS16#  в  течение  цикл
ов
записи  "с  участием  и  старшей  и  младшей половин шины" застав
ит
процесор 80386 выполнять два 16-разрядных цикла записи для переда
чи
целого физического операнда. Наличие всех байтов операнда на лини
ях
D0-D15 в течение первого цикла записи позволит внешним  устройств
ам
получить  байты  0  и 1 (в соответствии с установленными значения
ми
BE0# и BE1#) по линиям D0-D15.  Во  втором  цикле  80386  скопиру
ет
байты 2 и 3 на линии D0-D15, и запись этих байтов (в соответствии
 с
установленными значениями BE2# и BE3#) будет произведена  также  
по
линиям   D0-D15.   Сигналы  BE0#  и  BE1#  всегда  переключаются 
 в
неактивное  состояние  в  течение  второго   16-разрядного   цикл
а.
Установка   активного   уровня  сигнала  BS16#  в  течение  второ
го
16-разрядного цикла необязательна. См. рис.5-14, циклы 1 и 1а. 
     
     
        5.3.5  Связь с 32- и 16-разрядным устройствами памяти
     В  32-разрядных  устройствах  физической  памяти, таких как 
на
рис.5-5,  каждое физическое двойное слово начинается с байта, адр
ес
которого  кратен  4. Сигналы A2-A31 обычно используются для выбор
ки
определенного двойного слова, а сигналы  BE0#-BE3#  -  для  выбор
ки
определенного   байта  в  двойном  слове.  BS16#  поддерживается 
 в
неактивном  состоянии  во   всех   циклах   шины,   оперирующих  
 с
32-разрядным массивом.
     Когда в состав системы входят 16-разрядные физические массив
ы,
как  показано  на  рис.5-6,  адрес   начала    каждого   16-битно
го
физического  слова  кратен  2. Отметим, что схема дешифрации адре
са
ADDRESS DECODER при дешифрации адреса  формирует  активный  урове
нь
сигнала   BS16#   только  в  течение  циклов  шины,  оперирующих 
 с
                                     - 94 -
           
           
16-разрядными  устройствами  памяти,  то  схема  дешифрации  адре
са
анализирует   также  значения  сигналов  BE0#-BE3#  и  W/R#,  что
бы
определить, когда должен быть установлен активный  уровень  сигна
ла
BS16#.  См.  5.4.3.7  Оптимальное  использование метода конвейерн
ой
адресации в случае 16-разрядной ширины шины.
     Сигналы A2-A31 обычно используются для адресации  32-разрядн
ых
и  16-разрязных  устройств.  Для  адресации  16-разрядных устройс
тв
необходимы также сигнал A1 и два сигнала строба данных.
     Чтобы сформировать необходимые  значения  сигнала  A1  и  дв
ух
сигналов  стоба  данных  для  обращения к 16-разрядному устройств
у,
сигналы BE0#-BE3# должен быть дешифрированы в соответствии с  таб
л.
5-7. Отметим некоторые запрещенные комбинации BE0#-BE3#, никогда 
не
вырабатываемые 80386. При наличии запрещенной комбинации  BE0#-BE
3#
на  входе  дешифратора  выходы  его не анализируются и состояние 
их
обозначается  X.  Запрещенные  комбинации  BE0#-BE3#   могут   бы
ть
использованы при необходимости для более оптимального использован
ия
дешифратора.
.
                                     - 95 -
           
           
     Таблица 5-7.  Формирование сигналов A1, BHE# и BLE# для
                        адресации 16-разрядных устройств
-----------------------------------------------------------------
--
     Сигналы 80386         |  Сигналы 16-разрядной | Комментарии
                           |         шины          |
---------------------------|-----------------------|
 BE3# | BE2# | BE1# | BE0# | A1 | BHE# | BLE# (A0) |   
-----------------------------------------------------------------
--
  H*  |  H*  |  H*  |  H*  | X  |  X   |     X     | X - нет ни 
      |      |      |      |    |      |           | одного актив
      |      |      |      |    |      |           | ного байта
-----------------------------------------------------------------
--
  H   |  H   |  H   |  L   | L  |  H   |     L     |
-----------------------------------------------------------------
--
  H   |  H   |  L   |  H   | L  |  L   |     H     |
-----------------------------------------------------------------
--
  H   |  H   |  L   |  L   | L  |  L   |     L     |
-----------------------------------------------------------------
--
  H   |  L   |  H   |  H   | H  |  H   |     L     |
-----------------------------------------------------------------
--
  H*  |  L*  |  H*  |  L*  | X  |  X   |     X     | X - несмежны
      |      |      |      |    |      |           |      байты
-----------------------------------------------------------------
--
  H   |  L   |  L   |  H   | L  |  L   |     H     |
-----------------------------------------------------------------
--
  H   |  L   |  L   |  L   | L  |  L   |     L     |
-----------------------------------------------------------------
--
  L   |  H   |  H   |  H   | H  |  L   |     H     |
-----------------------------------------------------------------
--
  L*  |  H*  |  H*  |  L*  | X  |  X   |     X     | X - несмежны
      |      |      |      |    |      |           |      байты
-----------------------------------------------------------------
--
  L*  |  H*  |  L*  |  H*  | X  |  X   |     X     | X - несмежны
      |      |      |      |    |      |           |      байты
-----------------------------------------------------------------
--
  L   |  L   |  H   |  H   | H  |  L   |     L     |
-----------------------------------------------------------------
--
  L*  |  L*  |  H*  |  L*  | X  |  X   |     X     | X - несмежны
      |      |      |      |    |      |           |      байты
-----------------------------------------------------------------
--
  L   |  L   |  L   |  H   | L  |  L   |     H     |
-----------------------------------------------------------------
--
  L   |  L   |  L   |  L   | L  |  L   |     L     |
-----------------------------------------------------------------
--
     BLE#  устанавливается  (активный уровень) когда активизируют
ся
           разряды D0-D7 16-разрядной шины.
     BHE# устанавливается (активный уровень)  когда  активизируют
ся
          разряды D8-D15 16-разрядной шины.
     A1 имеет низкий уровень для всех четных слов; A1 имеет высок
ий
уровень для всех нечетных слов. 
     
     Обозначения:  X  -  допустим  и  высокий  и  низкий логическ
ий
                         уровень; 
                   H - высокий логический уровень;
                   L - низкий логический уровень;
                   * - неиспользуемые комбинации BE0#-BE3#:
     - комбинация, когда все стробы данных находятся  в  неактивн
ом
       состоянии;
     -  комбинации стробов данных, при которых появляются несмежн
ые
        активные байты.
                                     - 97 -
           
     
     
                    5.3.6  Выравнивание операндов
     Благодаря гибкой адресации памяти в  80386  возможна  переда
ча
логического   операнда,   разрядность  которого  больше  слова  и
ли
двойного слова  памяти  или  ввода/вывода,  например  32-разрядно
го
операнда  (двойное  слово),  адрес  начала которого некратен 4, и
ли
16-разрядного   операнда   (слово),   разделенного   между    дву
мя
физическими двойными словами массива памяти.
     Когда  передача операнда требует выполнения нескольких цикло
в,
то  во  время  этих  циклов  выполняется  выравнивание   данных  
 и
определение  размера  шины. Таблица 5-8 описывает определение тип
ов
циклов передачи для всех комбинаций таких характеристик, как  дли
на
логического  операнда, выравнивание и ширина шины данных. Когда д
ля
передачи многобайтового логического  операнда  требуется  несколь
ко
циклов   шины,   то  первыми  передаются  старшие  байты  (но  ес
ли
установлен  активный  уровень  BS16#,  то   будут   выполнены   д
ва
16-разрядных цикла, причем первыми будут переданы младшие байты).
     
     Таблица 5-8.  Циклы передачи байтов, слов и двойных слов
-----------------------------------------------------------------
--
                |       Длина логического операнда в байтах
                |------------------------------------------------
--
                |  1   |           2         |          4
-----------------------|---------------------|-------------------
--
 Адрес байта фи-| XX   | 00  | 01 | 10 | 11  | 00  | 01 | 10 | 11
 зической памяти|      |     |    |    |     |     |    |    |
 (младшие два   |      |     |    |    |     |     |    |    |
 байта)         |      |     |    |    |     |     |    |    |
-----------------------------------------------------------------
--
 Циклы передачи |  b   |  W  | W  | W  | hb, |  d  | hb,| hw,| h3
 по 32-разрядной|      |     |    |    | lb  |     | l3 | lw | lb
 шине данных    |      |     |    |    |     |     |    |    |
-----------------------------------------------------------------
--
 Циклы передачи |  b   |  W  |lb,*| W  | hb,*| lw,*| hb,| hw,| mw
,*
 по 16-разрядной|      |     |hb* |    | lb* | hw* |lb,*| lw | hb
,*
 шине данных    |      |     |    |    |     |     | mw*|    | lb
-----------------------------------------------------------------
--
                
     Обозначения:  b = передача байта
                   w = передача слова
                   l = младшая часть операнда
                   m = средняя часть операнда
                   х = не используется
                   * = активный уровень BS16# вызывает выполнение
                       второго цикла шины
                   3 = передача 3-х байтов
                   d = передача двойного слова
                   h = старшая часть операнда
     
     
                5.4  Описание функционирования шины
                            5.4.1 Введение
     80386  имеет  отдельные  параллельные шины: шину адреса и ши
ну
данных. Шина данных - 32-разрядная и двунаправленная.  Ширина  ши
ны
адреса  - 32 разряда: из них 30 старших разрядов - адрес операнда
 и
2 разряда формируются из 4-х  сигналов  стробов  данных  каждый  
из
                                     - 98 -
которых  служит  для выборки соответствующего байта в операнде. Э
ти
шины анализируются и управляются соответствующими  им  управляющи
ми
сигналами.
     Тип  каждого  цикла  шины определяется тремя сигналами: M/IO
#,
W/R#  и  D/C#.  Одновременно  с  этими  сигналами   устанавливает
ся
достоверный  адрес  на  линиях  BE0#-BE3#  и  A2-A31. Сигнал стро
ба
адреса указывает на выдачу процессором 80386 нового типа цикла ши
ны 
и адреса.
     Объединенные шина адреса, шина данных и все связанные  с  ни
ми
управляющие сигналы называются в тексте просто "шиной".
     В  рабочем  состоянии шина выполняет один из нижеперечисленн
ых
циклов шины:
     1) чтение из памяти;
     2) чтение из памяти с блокировкой шины;
     3) запись в память;
     4) запись в память с блокировкой шины;
     5) чтение из устройства ввода/вывода (или из сопроцессора);
     6) запись в устройство ввода/вывода (или в сопроцессор);
     7) подтверждение прерывания;
     8) цикл останова или цикл выключения.
     Табл.   5-2   показывает   соответствие   комбинаций  сигнал
ов
определения типа шины каждому типу шины. См. параграф 5.2.5 Сигна
лы
определения типа цикла шины.
     Отличительной   чертой  шины  данных  является  ее  изменяем
ая
ширина, которая может быть 32-разрядной и 16-разрядной. Ширина ши
ны
данных указывается процессору 80386 его входным сигналом BS16#. В
се
функции шины могут быть выполнены при любой ширине шины.
     Когда шина 80386 не выполняет  ни  один  из  вышеперечисленн
ых
циклов,  она  находится  или  в нерабочем состоянии или в состоян
ие
подтверждения захвата шины, последнее может  быть  вызвано  внешн
ей
схемой.
     Нерабочее  состояние  шины  может  иметь место, когда 80386 
не
выдает дальнейших подтверждений на свой выход строба адреса  (ADS
#)
после начала текущего цикла, и потому текущий цикл будет последни
м.
Состояние подтверждения захвата  шины  идентифицируется  установк
ой
процессором  80386  активного  уровня на своем выходе подтвержден
ия
захвата (HLDA). 
     Самой короткой временной единицей деятельности  шины  являет
ся
состояние шины. Деятельность состояния шины составляет один  пери
од
тактовой частоты процессора (два периода CLK2).
     Законченная  передача  данных  осуществляется  в течение цик
ла
шины, состоящего из двух или более состояний шины.
     Самый короткий цикл шины 80386 состоит из двух состояний шин
ы.
Состояния  шины  в  каждом  цикле обозначены как Т1 и Т2. В течен
ие
такого цикла шины (из 2-х состояний) может быть выполнено обращен
ие
по  любому  адресу памяти или ввода/вывода, если внешняя аппарату
ра
обладает   достаточным    быстродействием.    Высокая    пропускн
ая
способность  шины  и  цикл  шины,  занимающий  два периода тактов
ой
частоты, наиболее  полно  реализуют  возможности  быстрой  основн
ой
памяти или кэш-памяти.
     Каждый   цикл   шины   длится  до  тех  пор,  пока  не  прид
ет
подтверждение от внешних устройств системы, использующих  для  эт
ой
цели  вход  80386  READY#.  Если  подтверждение  цикла  шины  буд
ет
сформировано в конце первого из  состояний  Т2,  то  это  определ
ит
выполнение  самого  короткого  цикла шины, состоящего всего из дв
ух
состояний Т1 и Т2. Однако, если активный уровень сигнала READY#  
не
будет  установлен сразу (в конце первого Т2), то состояния Т2 буд
ут
неограничено повторятся до тех пор, пока на входе READY#  процесс
ор
не обнаружит активный уровень.
                                     - 100 -
           
     
                    5.4.2  Конвейерная адресация
     
     Режим    конвейерной   адресации   обеспечивает   определенн
ые
протоколы цикла шины.
     Протокол конвейерной или неконвейерной адресации выбирается 
на
основе  совмещения  циклов с использованием входа следующего адре
са
(NA#).
     В режиме неконвейерной адресации текущий  адрес  и  тип  цик
ла
шины остаются постоянными в течение всего цикла шины.
     В режиме конвейерной адресации адрес (BE0#-BE3#, A2-A31) и т
ип
цикла для  следующего  цикла  устанавливаются  и  выдаются  еще  
до
окончания  текущего  цикла. Чтобы сигнализировать об их готовност
и,
80386 устанавливает также активный уровень на выходе строба  адре
са
(ADS#).  Рис.5-9  иллюстрирует  самые быстрые циклы чтения в режи
ме
конвейерной адресации. Из рис.5-9   следует,   что  самые  коротк
ие
циклы шины, использующие метод конвейерной адресации, состоят все
го
из  двух  состояний  шины,  обозначенных  Т1Р и Т2Р. Следовательн
о,
циклы с конвейерной адресацией  обеспечивают  такую  же  пропускн
ую
способность  данных,  как  и  циклы  с неконвейерной адресацией, 
но
время выборки адреса увеличивается по  сравнению  с  неконвейерны
ми
циклами.
     Из-за  увеличения  времени  выборки  адреса  режим конвейерн
ой
адресации  сокращает  требуемое  количество   состояний   ожидани
я.
Например,  если  в  режиме  конвейерной  адресации  требуется  од
но
состояние ожидания, то в  режиме  конвейерной  адресации  может  
не
потребоваться ни одного состояния ожидания.
     Режим  конвейерной адресации используеется в системах, имеющ
их
адресные "защелки". В таких системах, сразу "защелкивающих"  адре
с,
конвейерная  выдача  следующего адреса позволяет декодирующей схе
ме
заранее  сформировать  сигналы  включения   микросхем   (и   друг
ие
необходимые   сигналы   выборки),  поэтому  обращение  к  выбранн
ым
устройствам осуществляется сразу, как только  начинается  следующ
ий
цикл.  Другими  словами,  время  декодирования для следующего цик
ла
может частично перекрываться с окончанием текущего цикла.
     Если в состав системы входит память с расслоением,  имеющая 
 2
или более банков, то метод конвейерной адресации возможно обеспеч
ит
даже большее перекрытие циклов. Вышесказанное действительно,  ког
да
контроллер памяти с расслоением устроен так, чтобы позволить нача
ть
следующую операцию с памятью в одном банке памяти в то  время,  к
ак
текущий  цикл  шины еще оперирует с другим банком памяти.  Рис.5-
10
показывает основную структуру  взаимосвязи  80386  с  2-банковой 
 и
4-банковой памятью с расслоением. Отметим, что каждый банк памяти
 с
расслоением имеет шину данных  полной  ширины  (обычно  разряднос
ть
данных  составляет  32  бита,  если не задается 16-разрядная шири
на
шины).
     Дополнительные сведения о режиме крнвейерной адресации даны 
 в
параграфах  5.4.3.4  Конвейерная адресация, 5.4.3.5 Инициализация
 и
поддержание режима конвейерной адресации, 5.4.3.6 Конвейерный адр
ес
при изменении  ширины  шины  и  5.4.3.7  Оптимальное  использован
ие
конвейерного адреса в случае 16-разрядной ширины шины.
     
     
                  5.4.3  Циклы чтения и записи
     
                        5.4.3.1 Введение
     
     Передачи данных осуществляется посредством  выполнения  цикл
ов
шины,  которые  подразделяются  на циклы чтения и циклы записи. П
ри
выполнении циклов чтения данные передаются от внешнего устройства
 в
                                     - 102 -
           
           
процессор.   При  выполнении  циклов  записи  данные  передаются 
 в
обратном направлении: от процессора к внешнему устройству.
     Два варианта адресации попеременно  избираются:  неконвейерн
ая
адресация   или   конвейерная.   После  нерабочего  состояния  ши
ны
процессор всегда работает в режиме неконвейерной адресации. Однак
о,
может   быть  установлен  активный  уровень  входного  сигнала  N
A#
(следующий  адрес),  избирающий  режим  конвейерной  адресации  д
ля
следующего  цикла шины. Когда выбран режим конвейерной адресации,
 и
в процессоре  имеется  ожидающий  обслуживвания  внутренний  запр
ос
шины, достоверные адрес и тип цикла для следующего цикла шины буд
ут
выданы даже до получения подтверждения текущего цикла шины на вхо
де
READY#. В каждом цикле шины 80386 обязательно анализирует состоян
ие
сигнала  на  входе  NA#,   чтобы   определить   способ   адресаци
и,
необходимый для следующего цикла.
     Попеременно  избираются  два  варианта размера физической ши
ны
данных: 32 бита или 16 битов. Обязательно ближе к концу цикла  ши
ны
состояние  входного  сигнала BS16# (размер шины 16) анализируется
 с
целью установления размера физической шины данных,  необходимого 
 в
текущем   цикле.   Высокий   уровень  сигнала  BS16#  указывает  
на
32-разрядный размер, активный уровень (низкий) BS16#  указывает  
на
16-разрядный размер. Если указан 16-разрядный размер шины, то 803
86
автоматически  реагирует  на  это  соответствующим  образом,  что
бы
завершить  передачу  по  16-разрядной шине данных. В зависимости 
от
размера  и  расположения  операнда   может   потребоваться   втор
ой
16-разрядный  цикл  шины.  Подробно  об  этом  см. табл. 5-7. Ког
да
необходимо, 80386 выполняет дополнительный 16-разрядный цикл  шин
ы,
используя линии D0-D15 для передачи разрядов D16-D31.
     Для  завершения  цикла  чтения  или  цикла записи, также как
 и
любого  другого  цикла   шины,   требуется   подтверждение   цикл
а,
устанавливаемое   на   входе  READY#.  До  получения  подтвержден
ия
процессор  вводит   в   цикл   шины   состояние   ожидания,   что
бы
соответствовать   быстродействию   внешнего   устройства.   Внешн
ее
устройство, распознавшее свой  адрес  и  декодировавшее  тип  цик
ла
шины,  формирует  в соответствующий момент активный уровень сигна
ла
READY#.
     Сигнал READY# анализируется во втором  состоянии  цикла  шин
ы.
Если  в  это  же  время  внешняя  аппаратура подтверждает цикл ши
ны
установкой активного уровня READY#, то цикл шины  завершается,  к
ак
показано на рис.5-11.
     Если  во  втором  состоянии  шины  сигнал  READY#  остается 
 в
неактивном  состоянии,  как  показано   на   рис.5-12,  цикл   ши
ны
дополняется  еще  одним  состоянием (состоянием ожидания), и сигн
ал
READY# будет снова анализироваться в конце каждого такого состоян
ия
ожидания.  Так  будет  продолжиться  неограниченно до тех пор, по
ка
цикл не получит подтверждения по линии READY#.
     Когда процессор  получает  подтверждение  текущего  цикла,  
он
завершает    его.   Когда   подтверждается   цикл   чтения,   803
86
"защелкивает" информацию, сформированную к этому времени на вывод
ах
шины  данных  процессора.  Когда  подтверждается цикл записи, 803
86
поддерживает достоверное значение  записываемых  данных  в  течен
ие
первой  фазы  следующего  цикла  шины, чтобы обеспечить необходим
ое
значение времени удержания записываемых данных.
     
     
                5.4.3.2  Неконвейерная адресация
     
     Любой  цикл  шины  может  быть выполнен в режиме неконвейерн
ой 
адресации. Для примера,  на  рис.5-11  показана  последовательнос
ть 
циклов  чтения  и  записи  в  режиме  неконвейерной  адресации.  
Из 
рис.5-11  следует,  что  самые  короткие  циклы, возможные в режи
ме 
 
                                     - 106 -
           
           
неконвейерной адресации, состоят каждый  из  двух  состояний  шин
ы.
Состояния  обозначены  как  Т1  и  Т2.  В  первой фазе состояния 
Т1
выдаются  достоверные   значения   сигналов   адреса   и   сигнал
ов
определения   типа   цикла  шины,  и  одновременно  устанавливает
ся
активный уровень сигнала строба адреса  (ADS#),  сигнализирующий 
 о
готовности вышеперечисленных сигналов.
     В  течение  циклов чтения или записи шина данных фкнкциониру
ет
как описано ниже. В цикле чтения 80386 переключает свою шину данн
ых
таким  образом,  чтобы  принять  сигналы  данных  от  адресованно
го
внешнего устройства.  В  цикле  записи  сигналы  данных  передают
ся
процессором  80386,  начиная со второй  фазы  состояния Т1 и конч
ая
первой фазой состояния шины, которое будет установлено сразу  пос
ле
получения подтверждения цикла.
     Рис.5-12   иллюстрирует   циклы  шины  в  режиме неконвейерн
ой
адресации, причем циклы 2 и 3 дополнены одним состоянием  ожидани
я.
В  циклах  2  и 3 сигнал READY# оказался неустановленным в активн
ое
состояние  Т2.  В  этих  циклах  активный  уровень  сигнала  READ
Y#
устанавливается в конце второго из состояний Т2. 
     Когда   не  используется  конвейерная  адресация,  достоверн
ые
значения адреса и  типа  цикла  шины  сохраняются  в  течение  вс
ех
состояний  ожидания. Когда цикл дополняется состояниями ожидания,
 и
необходимо обеспечить  режим  неконвейерной  адресации,  неактивн
ый
(высокий)  уровень  сигнала  NA# должен устанавливаться  в  течен
ие
каждого из состояний Т2,  исключая  самое  последнее  состояние  
Т2
цикла, как показано  на  рис.5-12  в  циклах  2 и 3.  Если активн
ый
уровень  NA#  окажется  установленным  в  состояние  Т2  (но  не 
 в
последнем  Т2),  то  следующим состоянием, вместо состояния Т2 (д
ля
неконвейерной адресации),  будет  состояние  Т2i  (для  конвейерн
ой
адресации) или Т2p (для конвейерной адресации).
     Рис.5-13  наиболее полно иллюстрирует картину состояний шины
 и
переходов из состояния в состояние для  случая,  когда  конвейерн
ая
адресация  не  используется.  Показанные  переходы  шины между 4-
мя
возможными состояниями: Т1,  Т2,  Тi  и  Тh.  Циклы  шины  содерж
ат
состояния   Т1   и  Т2,  причем  Т2  может  повторяться  (состоян
ия
ожидания).  Кроме  этого,  шина  может   находиться   в   нерабоч
ем
состоянии,  т.е.  в  состоянии  Тi,  или  в состоянии подтвержден
ия
захвата шины, т.е. в состоянии Тh. 
     Для  случая,  когда  конвейерная  адресация  не  используетс
я,
диаграмма  состояния  шины  такая,  как  показана  на  рис.5-13. 
 В
нерабочем   состоянии  шина  находится  в  Тi.  Циклы  шины  всег
да
начинаются с Т1. Т1 всегда предшествует  состоянию  Т2.  Если  ци
кл
шины не подтвержден в течение Т2 и уровень NA# при этом неактивны
й,
состояние Т2 повторяется. Когда цикл подтвержден в течение  Т2,  
то
за  этим последует состояние Т1 следующего цикла шины, если имеет
ся
ожидающий обслуживания внутренний запрос  шины  (запрос  на  захв
ат
шины самим процессором), или состояние Тi, если такого запроса не
т,
или состояние Тh, если установлен активный уровень входного сигна
ла
HOLD.
     Диаграмма  состояния  шины  на рис.5-13  справедлива при люб
ом
значении   сигнала   BS16#.   Если   80386   выполнит    внутренн
ие
переключения, необходимые для установки 16-разрядного размера шин
ы,
то эти переключения не повлияют на состояния внешней шины. Если д
ля
выполнения  передачи  по 16-разрядной шине требуется дополнительн
ый
16-разрядный цикл шины, он также будет выполняться в соответствии
 с
переходами состояний, показанными на рис.5-13.
     В режиме конвейерной адресации в 80386  могут  иметь  еще  т
ри 
типа  состояния  шины,  не  показанные  на  рис.5-13. На рис.5-20
 в 
параграфе 5.4.3.4 "Конвейерная адресация" показана более  подробн
ая 
диаграмма  состояния  шины,  включающая  циклы в режиме конвейерн
ой 
адресации. 
 
                                     - 108 -
           
           
     Состояния шины:
     Т1  - первое состояние неконвейерного цикла шины (80386 выда
ет
     новый адрес и устанавливает активный уровень ADS#);
     Т2 - последующие состояния цикла  шины,  когда  при  просмот
ре
     сигнала  NA#  в текущем цикле шины он оказывается в неактивн
ом
     состоянии; 
     Тi - нерабочее состояние;
     Тh - состояние подтверждения захвата шины (80386 устанавлива
ет
     активный уровень HLDA).
     Самый короткий цикл шины состоит из двух состояний: Т1 и Т2.
     Четыре  основные  состояния  шины  описывают  функционирован
ие
шины, когда не используется конвейерная  адресация.  Эти  состоян
ия
распространяются  на  оба  размера  шины:  32  бит  и  16 бит, т.
е.
справедливы для любого значения BS16#.  Если  при  активном  уров
не
сигнала  BS16#  требуется  выполнение  второго 16-разрядного цикл
а,
последний  выполняется  перед  формированием  процессором   сигна
ла
подтверждения захвата шины.
     
     
        5.4.3.3  Режим неконвейерной адресации при изменении 
                          размера шины данных 
     
     Ширина физической магистрали данных для любого  неконвейерно
го
цикла  шины  может  составлять  или  32 разряда, или 16 разрядов.
 В
начале цикла шины процессор ведет себя так, как если бы ширина ши
ны
данных   составляла   32   бита.  Когда  цикл  шины  подтверждает
ся
установкой активного уровня сигнала READY# в конце состояния Т2, 
то
анализируемый  в  этот  момент  уровень  сигнала  BS16#  окажется
 в
неактивном состоянии, то размер физической шины данных  принимает
ся
равным  32 разрядам. Если же наблюдается активный уровень BS16#, 
то
размер шины принимается равным 16 разрядам.
     Когда установлен активный  уровень  BS16#,  и  для  выполнен
ия
одной  передачи  требуется  два  16-разрядных  цикла,  то  активн
ый
уровень сигнала BS16# должен быть установлен  и  во  втором  цикл
е.
Иначе  16-разрядный  размер шины не будет сохранен во втором цикл
е.
Также, как и любой  другой  цикл  шины,  второй  16-разрядный  ци
кл
должен быть подтвержден установкой активного уровня READY#.
     Когда  требуется второй 16-разрядный цикл для выполнения одн
ой
передачи по 16-разрядной шине,  то  адреса,  формируемые  для  дв
ух
16-разрядных циклов шины, тесно взаимосвязаны. Эти адреса идентич
ны
за исключением разрядов BE0# и BE1#, которые всегда переключаются
 в
неактивное  состояние  (высокий  уровень)  во втором цикле, так к
ак
сигналы данных D0-D15 были уже переданы в первом 16-битном цикле.
     На рис.5-14 и 5-15 показаны передачи,  при  которых  установ
ка 
активного   уровня  BS16#  требует  второго  16-битного  цикла  д
ля 
выполнения передачи всего операнда. Рис.5-14 иллюстрирует циклы б
ез 
состояний  ожидания. Рис.5-15 иллюстрирует циклы с одним состояни
ем 
ожидания. Отметим, что в цикле 1 на рис.5-15,  в  течение  которо
го 
устанавливается  активный  уровень сигнала BS16#, сигнал NA# долж
ен 
быть обязательно переключен в неактивный  уровень  в  состоянии(я
х) 
Т2,  предшествующем(их) последнему состоянию Т2. Это необходимо д
ля 
того,  чтобы  в  финальном   состоянии   Т2   процессор   восприн
ял 
установленный   активный   уровень  BS16#  в  режиме  неконвейерн
ой 
адресации. 
     
     
                  5.4.3.4  Конвейерная адресация
     
     В   режиме   конвейерной  адресации  адрес  и  тип  цикла  д
ля
следующего цикла шины, который будет обслуживать ждущий  обработк
и,
                                     - 111 -
           
           
внутреннии  запрос процессора, запрашиваются еще до того, как буд
ет
получено  подтверждение  текущего  цикла  по  линии  READY#.  Ког
да
следующий  адрес  подготовлен и выдан, 80386 устанавливает активн
ый
уровень  сигнала  ADS#.  Протокол  режима   конвейерной   адресац
ии
строится  на  основе совмещения циклов и с помощью входного сигна
ла
NA#.
     Когда выполняется цикл  шины  и  текущий  адрес  должен  име
ть
достоверное  значение  в  течение  по  меньшей  мере одного полно
го
состояния шины, значение входного сигнала NA# анализируется в кон
це
каждой  первой фазы состояния до тех пор, пока цикл шины не получ
ит
подтверждение.  В течение неконвейерных циклов шины, следовательн
о,
NA# анализируется в  конце  первой  фазы  в  каждом  состоянии  Т
2.
Примером  может служить Цикл 2 на рис.5-16, в  течение которого N
A#
анализируется в конце первой фазы каждого Т2 (NA# был установлен 
 в
активный  уровень  один  раз  в  течение  первого состояния Т2 и 
не
оказывает дальнейшего воздействия на выполнение этого цикла шины)
     Если процессор при просмотре NA#  обнаружит  активный  урове
нь
этого  сигнала,  то  80386  освобождается, чтобы выдать адрес и т
ип
цикла следующего цикла, и установить активный уровень сигнала ADS
#,
как  только в процессоре появится ожидающий обслуживания внутренн
ий
запрос шины. Процессор может выдать следующий адрес уже в следующ
ем
состоянии  шины,  независимо  от  того  получил  ли  в  этот моме
нт
подтверждение текущий цикл или не получил.
     Что касается режима конвейерной адресации, то  в  этом  режи
ме
80386 имеет следующие особенности:
     1)  для  того,  чтобы  процессор  воспринял  активный  урове
нь
сигнала NA#, сигнал  BS16#  должен  быть  переключен  в  неактивн
ый
уровень  на время просмотра сигнала  NA# (см. рис.5-16 Циклы 3 и 
4;
рис.5-17 Циклы 2-4);
     В том случае, если сигналы NA# и BS16# окажутся оба  активны
ми
в  течение  последнего  периода  Т2  цикла  шины, приоритетом буд
ет
обладать активный сигнал BS16#.  Следовательно,  если  оба  сигна
ла
активны,  то  текущий размер шины принимается равным 16 разрядам,
 а
следующий  адрес   будет    неконвейерным.    Схематично   рис.5-
18
показывает внутреннюю логику 80386, обеспечивающую эти особенност
и.
     2) следующий адрес может появиться в состоянии шины, следующ
ем
сразу после момента обнаружения активного уровня NA#  (см. рис.5-
16
или 5-17);
     В  этом  случае  сразу  шина перейдет в состояние Т2p. Однак
о,
если в этот момент отсутствует  ожидающий  обслуживания  внутренн
ий
запрос  шины,  то  следующий  адрес не будет установлен сразу пос
ле
активизации NA#, и вместо состояния Т2p шина перейдет  в  состоян
ие
Т2i  (см. рис.5-19 Цикл 3).  При условии, что текущий цикл шины е
ще
не получил подтверждение по линии READY#, шина перейдет в состоян
ие
Т2p  как  только  80386 выдает следующий адрес. Внешние устройств
а,
поэтому, должны  следить  за  состоянием  выходного  сигнала  ADS
#,
подтверждающим выдачу на шину достоверного следующего адреса.
     3)  в том случае, когда 80386 при просмотре обнаружит активн
ый 
уровень NA#, 80386 сам принимает  решение  на  обслуживание  само
го 
приоритетного  внутреннего  запроса  шины, ожидающего обслуживани
я. 
Процессор не сможет больше выполнить другую  16-разрядную  переда
чу 
по  тому  же  адресу,  даже  если BS16# будет установлен в активн
ый 
уровень внешним устройством, так как после  восприятия  процессор
ом 
активного  сигнала  NA# текущий размер шины принимается равным 32
-м 
разрядам; 
     Следовательно, если процессор опознал активный  сигнал  NA# 
 в
течение цикла шины, то после этого сигнал BS16# игнорируется в эт
ом
цикле  шины (см. рис.5-16,  5-17,  5-19).  Таким  образом,  нельз
активизировать сигнал NA# в тех циклах шины, в которых 16-разрядн
ый
размер шины должен быть задан установкой активного  уровня  сигна
ла
                                     - 116 -
           
           
BS16#.  См.  5.4.3.6  "Изменение  размера шины в режиме конвейерн
ой
адресации". 
     4)  любой  адрес,  достоверное  значение которого подтвержде
но
выходным импульсным  сигналом  80386  ADS#,  будет  сохраняться  
на
адресных  выводах  в течение по меньшей мере двух периодов тактов
ой
частоты процессора. 80386 не может выдавать новый адрес  чаще,  ч
ем
каждые  два  периода  тактовой  частоты  процессора  (см. рис.5-1
6,
5-17, 5-19);
     5) из всех сигналов, необходимых для  следующего  цикла  шин
ы,
процессор выдает только адрес и тип цикла шины; 
     Уровень  совмещения  в  режиме конвейерной адресации не боле
е,
чем один цикл шины (см. рис.5-19 Цикл 1).
     Полная   диаграмма   переходов   состояний    шины,    включ
ая
функционирование в режиме конвейерной адресации, дана  на рис.5-2
0.
Отметим, что эта диаграмма включает диаграмму, справедливую  толь
ко
для  режима неконвейерной адресации, и дополнительные три состоян
ия
шины для режима конвейерной адресации.
     Самый  короткий  цикл  шины  в  режиме  конвейерной  адресац
ии
состоит только из двух состояний шины, Т1p и Т2p (напомним, что д
ля
режима  неконвейерной   адресации   такими   состояниями   являют
ся
состояния   Т1   и   Т2).   Т1p  является  первым  состоянием  ши
ны
конвейерного цикла. 
     
     
       5.4.3.5 Инициализация и поддержание режима конвейерной
                               адресации
     
     Пользуясь диаграммой состояний на рис.5-20, проследим перехо
ды 
шины  из  нерабочего состояния Тi, в начало конвейерного цикла ши
ны 
Т1p. Цикл шины, первый после нерабочего состояния шины  Тi,  долж
ен 
начинаться   с   состояния   Т1,   следовательно  этот  цикл  буд
ет 
неконвейерным. Однако, если будет установлен активный уровень  NA
#, 
и  первый  цикл  шины закончится в состоянии Т2p, то следующий ци
кл 
шины будет конвейерным (адрес для следующего цикла шины выдается 
 в 
состоянии   Т2p  первого  цикла).  Кратчайший  путь  от  нерабоче
го 
состояния к циклу шины с конвейерной адресацией показан ниже: 
     
         Тi,Тi,Тi       Т1-Т2-Т2p           Т1p-Т2p
         нерабочее     неконвейерный       конвейерный
         состояние        цикл                цикл
     
     Т1-Т2-Т2p   -   состояние   цикла   шины,   в  течение  коро
го
устанавливается адрес  (конвейерный)  для  следующего  цикла  шин
ы,
начинающегося  с  состояния  Т1p.  Переход  к конвейерному циклу 
из
состояния подтверждения захвата шины  осуществляется  аналогично 
 и
показан ниже:
     
        Тh,Тh,Тh         Т1-Т2-Т2p        Т1p*Т2p
        состояние        неконвейерный    конвейерный
        подтверждения        цикл            цикл
        захвата
     
     Переход  к  ковейерной  адресации показан на рис.5-17  Цикл 
1.
Цикл 1 используется для перехода в режим конвейерной адресации  д
ля
выполнения  последовательности  конвейерных  циклов  2,  3  и  4.
 В
соответствующий момент устанавливается  активный  уровень  NA#  д
ля
того, чтобы выбрать конвейерный адрес для циклов 2, 3 и 4.
     Когда  выполняется  цикл шины, и достоверное значение текуще
го
адреса удерживается в  течение  одного  состояния  шины,  состоян
ие
входа NA# анализируется в конце каждой первой фазы до тех пор, по
ка
                                     - 118 -
           
           
этот цикл не получит подтверждение. Следовательно,  в  Цикле  1  
на 
рис.5-17 процессор начинает анализ NA# в состоянии Т2. Как только
 в 
текущем цикле NA# оказывается  установленным  в  активный  уровен
ь, 
80386  освобождается,  чтобы выдать на шину новый адрес и тип цик
ла 
до  начала  следующего  состояния  шины.  Например,   в   Цикле  
 1 
обеспечивает  переход  в  режим  конвейерной  адресации, так как 
он 
начинается  с  состояния  Т1,  но  заканчивается  состоянием   Т2
p. 
Поскольку  адрес для Цикла 2 устанавливается еще до начала Цикла 
2, 
последний  называется  конвейерным  циклом  шины  и  начинается  
 с 
состояния  Т1p.  Цикл 2 начнется, как только активный сигнал READ
Y# 
завершит Цикл 1. Примерами переходных циклов шины являются  Цикл 
 1 
на  рис.5-17  и  Цикл  2 на рис.5-16. На рис.5-17 показан переход
 в 
течение цикла шины, первого после нерабочего  состояния  шины,  э
то 
самый   кратчайший  из  возможных  переходов  в  режим  конвейерн
ой 
адресации. Цикл 2 на  рис.5-16 иллюстрирует переходной  цикл  шин
ы, 
имеющий  место  внутри  последовательности  рабочих  циклов шины.
 В 
любом случае переходные циклы осуществляются аналогично  независи
мо 
от момента их появления: переходной цикл состоит по меньшей мере 
из 
состояний Т1, Т2 (в этот момент вы устанавливаете  активный  сигн
ал 
NA#),  Т2p (при условии, что 80386 уже имеет ожидающий обслуживан
ия 
внутренний запрос шины,  это  условие  выполняется  почти  всегда
). 
Состояния   Т2p  повторяются,  если  цикл  дополняется  состояния
ми 
ожидания. 
     Отметим три состояния  (Т1,  Т2  и  Т2p),  комбинация  котор
ых 
требуется  только  в  цикле  шины,  выполняющем  переход  из режи
ма 
неконвейерной адресации в режим  конвейерной  адресации,  наприме
р, 
Цикл  1  на  рис.5-17. Циклы 2, 3 и 4 на рис.5-17 показывают, что
 в 
режиме конвейерной адресации могут выполняться циклы шины  из  дв
ух 
состояний каждый, включающие только состояния Т1p и Т2p. 
     Когда  выполняется  конвейерный  цикл  шины, режим конвейерн
ой 
адресации поддерживается путем установки активного  сигнала  NA# 
 и 
определением  того,  что  80386  устанавливает состояние Т2p шины
 в 
текущем  цикле  шины.  Текущий  цикл  шины   должен   заканчивать
ся 
состоянием  Т2p  для  того,  чтобы  режим конвейерной адресации б
ыл 
сохранен  и  в  следующем  цикле.  Состояние  Т2p  идентифицирует
ся 
установкой  активного  сигнала  ADS#.  На  рис.5-16  и  5-17  раж
им 
конвейерной  адресации  заканчивается  после  Цикла  4,   так   к
ак 
последним  состоянием Цикла 4 является состояние Т2i. Это означае
т, 
что  80386  не  имел  внутреннего  запроса  шины  перед  получени
ем 
подтверждения  Цикла  4.  Если цикл заканчивается состоянием Т2 и
ли 
Т2i, то следующий цикл будет неконвейерным. 
     В    действительности,    конвейерный   адрес   почти   всег
да
устанавливается сразу после обнаружения активного уровня  NA#.  Э
то
происходит  потому,  что  при  отсутствии  любого  другого  запро
са
внутренний запрос  предварительной  выборки  команды  почти  всег
да
ожидает  обслуживания  до  тех  пор, пока занят дешифратор команд
 и
полностью  заполнена  очередь  предварительно   выбранных   коман
д.
Следовательно,   конвейерный   адрес  устанавливается  для  длинн
ых
цепочек циклов шины, если шина доступна,  и  в  каждом  цикле  ши
ны
оказывается установленным активный уровень сигнала NA#.
     
     
           5.4.3.6  Конвейерная адресация при изменении
                           размера шины данных
     Наличие   сигнала  BS16#  обеспечивает  простое  соединение 
 с
16-разрядными шинами  данных.  Когда  установлен  активный  урове
нь
BS16#,  схема  шинного  интерфейса  80386 выполняет соответствующ
ие
переключения, чтобы осуществить  передачу,  используя  16-разрядн
ую
шину данных, соединенную с линиями D0-D15.
                                     - 120 -
           
           
     Однако,  при  одновременном использовании сигналов NA# и BS1
6#
имеет место некоторое взаимное влияние этих сигналов друг на друг
а.
Это   взаимное   влияние   проявляется   тогда,   когда   требуют
ся
многократные циклы шины  для  передачи  32-разрядных  операндов  
по
16-разрядной   шине.   Если  операнду  требуются  обе  16-разрядн
ые
половины 32-разрядной шины, то в соответствии  с  этим  требовани
ем
80386  должен  выполнить второй цикл шины для того, чтобы полност
ью
передать весь операнд. Именно это требование приводит к конфликтн
ой
ситуации при использовании сигнала NA#.
     Когда  NA# оказывается установленным в активный уровень, 803
86
дает  себе  разрешение   на   обработку   следующего   внутреннег
о,
ожидающего  обслуживания  запроса  шины  и выдает на шину следующ
ий
подготовленный внутри адрес. Следовательно, активизация NA#  дела
ет
невозможным  повторную  выборку  в  следующем  цикле  шины текуще
го
адреса по линиям A2-A31, как это может потребоваться, когда  сигн
ал
BS16# активизирован внешним устройством.
     Для  разрешения  этого конфликта схема 80386 разработана так
им
образом, чтобы удовлетворять следующим двум условиям:
     1). Для разрешения конфликта 80386 разработан  таким  образо
м,
чтобы  игнорировать сигнал BS16# в текущем цикле шины, если NA# у
же
оказался  установленным  в  текущем  цикле.   Если   NA#   оказал
ся
установленным,  то текущий размер шины данных принимается равным 
32
разрядам.
     2). Также для разрешения конфликта в том случае, если и NA# 
 и
BS16#  оказались  установленными  в  один  и тот же момент времен
и,
активный BS16# обладает более высокими по сравнению с активным  N
A#
приоритетом, и 80386 функционируется так, как если бы в этот моме
нт
сигнал NA# оказался неактивным. Внутренняя схема 80386,  схематич
но
показанная  на  рис.5-18 работает таким образом, чтобы сигнал BS1
6#
воспринимался активным и сигнал NA# воспринимался неактивным,  ес
ли
оба  входных  сигнала активизированы внешними устройствами в один
 и
тот же момент просмотра этих сигналов. 
     5.4.4 Циклы подтверждения прерывания(INTA)
        
В ответ на запрос  прерывания,  поступивший  на  вход  INTR,  ког
да 
прерывания   разрешены,  80386  выполнит  два  цикла  подтвержден
ия 
прерывания. Эти циклы шины  аналогичны  циклам  чтения,  в  котор
ых 
имеющий   место   вид   деятельности  шины  соответствует  сигнал
ам 
определения типа цикла шины, и каждый цикл продолжается до тех по
р, 
пока  процессор  не  получит  подтверждение,  наблюдая  за сигнал
ом 
READY#. 
     В зависимости от значения  адресного  разряда  А2  различают
ся 
первый  и  второй  циклы  подтверждения  прерывания.  Адрес  байт
а, 
выдаваемый в первом цикле подтверждения прерывания, равен 4 (А31-
А3 
низкие,  А2  высокий,  ВЕ3#-ВЕ1#  высокие  и  ВЕ0#  низкий). Адре
с, 
выдаваемый  во  втором  цикле  подтверждения  прерывания,  равен 
 0 
(А31-А2 низкие, ВЕ3#-ВЕ1# высокие, ВЕ0# низкий). 
     Активный   уровень  сигнала  LOCK#  устанавливается  с  нача
ла 
первого цикла подтверждения прерывания и  до  конца  второго  цик
ла 
подтверждения  прерывания.  Четыре  нерабочих  состояния  шины, Т
i, 
вставляются   процессором   между   двумя   циклами   подтвержден
ия 
прерывания,   чтобы   обеспечить  время  блокированного  нерабоче
го 
состояния шины ("мертвое" время) по меньшей мере длительностью  1
60 
нс,  что  позволит  в  будущем  ввести  модификации скорости 8038
6, 
достигающие 24 МГц (при этом внешняя частота CLK2 должна  достига
ть 
48  МГц),  что  в  свою очередь обеспечит совместимость с временн
ым 
параметром TRHRL контроллера прерываний 8259А.
 
                                     - 122 -
           
           
     В течение обоих циклов подтверждения прерывания  линии  D0-D
31 
отключены.В конце первого цикла подтверждения прерывания данных д
ля 
чтения не имеется. В конце второго цикла  подтверждения  прерыван
ия 
80386  считает  внешний  вектор  прерывания  по  линиям  D0-D7 ши
ны 
данных. Вектор указывает определенный номер  прерывания  (от  0  
до 
255), требующего обслуживания. 
     
     
     
     5.4.5 Цикл индикации останова
     
     
     80386 останавливается в результате выполнения инструкции HAL
T. 
Для  сигнализирования  входа  процессора   в   состояние   остано
ва 
выполняется   цикл  индикации  останова.  Цикл  индикации  остано
ва 
идентифицируется определенной комбинацией сигналов типа цикла шин
ы, 
указанной  в  разделе 5.2.5 Сигналы определения типа цикла  шины,
 и 
адресом байта, равным 2. ВЕ0# и ВЕ2# при  этом  служат  только  д
ля 
различения  цикла индикации останова от цикла индикации выключени
я, 
в котором выдается  адрес,  равный  0.  В  течение  цикла  остано
ва 
данные, передаваемые по D0-D31, неопределены. 
     Остановленный  80386  возобновляет   функционирование,   ког
да
устанавливается  активный  уровень  сигнала  INTR  (если прерыван
ия
разрешены), или сигнала NMI, или сигнала RESET.
     
     
     
     5.4.6 Цикл индикации выключения 
     
     
     80386 выключается в результате появления ошибки защиты  памя
ти
при   попытке   обработать  двойную  ошибку.  Для  сигнализирован
ия
перехода  процессора  в  выключенное  состояние  выполняется   ци
кл
индикации  выключения.  Цикл  индикации выключения идентифицирует
ся
определенной комбинацией  сигналов  определения  типа  цикла  шин
ы,
указанной  в  разделе  5.2.5 Сигналы определения типа цикла шины,
 и
адресом байта, равным 0. Сигналы ВЕ0# и ВЕ2# при этом служат толь
ко
для   отличения  цикла  индикации  выключения  от  цикла  индикац
ии
останова, в котором выдается  адрес,  равный  2.  В  течение  цик
ла
выключения данные,  выдаваемые  на линии D0-D31, неопределены. Ци
кл
индикации выключения должен быть подтвержден  установкой  активно
го
уровня сигнала READY#. 
     Выключенный   80386   возобновляет   функционирование,   ког
да
устанавливается активный уровень сигнала NMI или RESET.
     
     
     
     5.5 Дополнительные сведения о функционировании
     
     
     5.5.1 Вход и выход в/из состояния подтверждения захвата шины
     
     
     Состояние  подтверждения захвата шины, Тh, вводится в ответ 
на 
установку активного  уровня  входного  сигнала  HOLD.  В  состоян
ии 
подтверждения   захвата  шины  80386  выключает  все  выходные  и
ли 
двунаправленные сигналы, исключая  сигнал  HLDA.  Активный  урове
нь 
сигнала HLDA поддерживается все время, пока 80386 находится в 
                                     - 125 -
           
           
состоянии  подтверждения  захвата  шины.  В состоянии подтвержден
ия 
захвата шины все входы, за исключением HOLD и  RESET,  игнорируют
ся 
(исключение  составляет также один положительный фронт сигнала NM
I, 
который запоминается для последующей его  обработки,  когда  сигн
ал 
HOLD перейдет в неактивное состояние). 
     Состояние  Th  может  быть  введено после нерабочего состоян
ия
шины, как на рис.5-25, или после подтверждения текущего физическо
го
цикла  шины, если при этом уровень сигнала LOCK# неактивный, как 
на
рис.5-26 и 5-27. Если установка  активного  сигнала  ВS16#  требу
ет
выполнения второго 16-разрядного цикла шины для завершения переда
чи
физического операнда, то этот  цикл  выполняется  до  подтвержден
ия
сигнала  HOLD,  хотя  диаграммы  состояний  на  рис.5-13  и 5-20 
не
отражают этой особенности.
     Выход  из  состояния  Th  осуществляется  в  ответ  на  снят
ие
активного  уровня входного сигнала HOLD. Следующим состоянием буд
ет
состояние  Ti,  как  на  рис.5-25,  если  не   имеется   ожидающе
го
обслуживания  внутреннего запроса шины. Если же имеется внутренни
й,
ожидающий решения запрос шины, то следующим состоянием  шины  буд
ет
состояние Т1, как показано на рис.5-26 и 5-27. 
     Выход   из  состояния  Th  осуществляется  также  в  ответ  
на
установку активного уровня сигнала RESET. 
     Если в течение состояния Th появится  положительный  фронт  
на
чувствительном  к фронту входе NMI, то это событие запоминается к
ак
немаскируемое прерывание 2 и обслуживается после выхода  процессо
ра
из  состояния  Th  кроме  случая,  когда до выхода из Th произойд
ет
сброс 80386.
     
     
     
     5.5.2 Сброс в состоянии подтверждения захвата шины
     
     
     Активный сигнал RESET обладает более  высоким  приоритетом  
по
сравнению  с  активным  сигналом  HOLD.  Следовательно,  в ответ 
на
установку активного уровня на входе RESET осуществляется  выход  
из
состояния  Th.  Если  сигнал RESET активизируется во время действ
ия
сигнала  HOLD,  то  80386  установит  свои  выводы  в  определенн
ые
состояния  в  соответствии  с табл.5-3 "Состояния выводов в течен
ие
действия сигнала RESET" и выполнит  обычную  процедуру  внутренне
го
сброса.
     Если  активный  уровень  сигнала HOLD остается установленным
 и
после снятия активного сигнала RESET, то 80386 перейдет в состоян
ие
подтверждения  захвата  шины до того, как выполнит свой первый ци
кл
шины, но при условии, что HOLD все еще остается активным в  момен
т,
когда  80386  в  другом  случае  приступил  бы  к выполнению свое
го
первого цикла  шины.  Если  HOLD  остается  активным  после  снят
ия
сигнала  RESET,  то  вход BUSY# все равно анализируется как обычн
о,
чтобы определить требуется ли самотестирование, сигнал ERROR# так
же
при  этом анализируется как обычно, чтобы определить, какой из дв
ух
воэможных  сопроцессоров  присутствует   в   системе   (или   ког
да
сопроцессора вобще нет).    
                                     - 129 -
     
     
     5.5.3  Функционирование  шины  в  течение  и  после   действ
ия
                            сигнала RESET 
     
  RESET   является   самым   приоритетным   входным  сигналом,  п
ри
установке активного уровня  RESET  прерывается  любая  деятельнос
ть
процессора.  Выполняемый  цикл  шины может быть прерванным на люб
ой
стадии,  а  нерабочие состояния или состояния подтверждения захва
та
шины прекращаются при установке состояния сброса.
     RESET должен поддерживаться в активном состоянии в течение  
по
меньшей мере 15 периодов частоты CLK2, чтобы он был уверенно прин
ят
всеми схемами 80386, и по меньшей мере в течение 78 периодов  CLK
2,
если   выполняется   самотестирование   80386,  запрос  на  котор
ое
анализируется во время отрицательного фронта RESET.
     Активные импульсы RESET длительностью меньше 15 периодов  CL
K2
могут быть не восприняты.
     Активные импульсы RESET длительностью меньше 78 периодов CLK
2,
за которыми следует самотестирование, могут привести  к  тому,  ч
то
тест-структура   выдаст   сообщение   о   неисправности,   когда 
 в
действительности  неисправности   не   существует.   Дополнительн
ое
расширение  импульса  RESET  необходимо  для  получения достоверн
ых
результатов самодиагностирования.
     При  условии,   что   отрицательный   фронт   RESET   отвеча
ет
требованиям,  предъявляемым  к  времени  установки  t25  и  време
ни
удержания  t26,  этот  фронт  определит  фазу  внутренней  тактов
ой
частоты процессора, как показано на рис.5-28 и рис.7-7.
     Самодиагностирование  80386 можно запустить, если поддержива
ть
сигнал BUSY# на низком уровне в момент снятия  сигнала  RESET,  к
ак
показано    на    рис.5-28.    Для    выполнения   всей   процеду
ры
самодиагностирования требуется [(2^20)+ приблизительно 60] период
ов
CLK2.   Результаты  тестирования  не  влияют  на  продолжительнос
ть
самодиагностирования.
     Даже  если  после  тестирования  тест-структура  указывает  
на
наличие  неисправности,  80386  все  равно  перейдет  к  выполнен
ию
процедуры, которая должна была следовать за сбросом 80386.
     После  отрицательного  фронта RESET (и после самотестировани
я,
если в нем была необходимость)  80386  выполнит  последовательнос
ть
внутренней  инициализации  за  время, приблизительно равное 350-4
50
периодам CLK2. Во время  инициализации,  между  двадцатым  период
ом
CLK2  и  первым  циклом шины (который последует за инициализацией
),
80386 анализирует состояние входа  ERROR#,  чтобы  отличить  случ
ай
присутсвия   в   системе   сопроцессора   80387  от  случая,  ког
да
присутствует  80287  или  в  системе  вобще  нет   сопропроцессор
а.
Различие  между  последними  двумя случаями (в системе присутству
ет
80287 или в системе нет сопроцессора) задается программно. 
     
      
   
                 5.6 Сигнатура самотестирования
       
     
По  завершению   самотестирования   (если   самотестирование   бы
ло
запрошено  путем  поддержания низкого уровня сигнала BUSY# во вре
мя
отрицательного  фронта  сигнала  RESET),  если  не  было обнаруже
но
неисправностей 80386, то значение каждого  из  регистров  AX  и  
DX
будет  равно  0000H.  Это  справедливо  для всех модификаций 8038
6.
Ненулевые значения  регистров  AX  или  DX  после  самотестирован
ия
указывает на то, что какой-то блок 80386 неисправен.
                                     - 131 -
     
     5.7 Идентификаторы типа и модификации
     
     Чтобы   помочь   пользователям   80386,   80386  после  сбро
са
поддерживает  идентификатор  типа   и   идентификатор   модификац
ии
соответственно   в   регистрах   BH  и  BL.  BH  содержит  03H  д
ля
идентификации типа 80386. BL содержит беззнаковое  двоичное  числ
о,
соответствующее   версии   данного   типа   процессора.  Хронолог
ия
изменения идентификатора модификации (версии) 80386 в BL такова: 
он
начинается   с   нуля   и  изменяется  (обычно  увеличивается)  п
ри
изменениях   данного   типа   процессора,    предназначенных    д
ля
усовершенствования   данного   типа   процессора   по  сравнению 
 с
предыдущими версиями.
     Эти  особенности  предназначены   для   того,   чтобы   помо
чь
пользователям  80386  в  их  практической  деятельности.  Однако 
не
гарантируется, что значение идентификатора версии будет  изменять
ся
с  каждым  изменением  версии  или  что  изменения этого значения
 в
зависимости от содержания или цели  версии  или  в  зависимости  
от
материалов,  требующих  изменения,  будут   следовать   строго   
по
непрерывной  числовой  последовательности.  Фирма Intel поступает
 с
этими характеристиками данного типа  процессора  только  по  свое
му
усмотрению.
     
     Табл.5-10 История идентификаторов типа и версии
     
-----------------------------------------------------------------
--
Содержа-  |Идентифи- |Идентифи- |Содержа-  |Идентифи- |Идентифи- 
  
ние изме- |катор ти- |катор     |ние изме- |катор ти- |катор
нения     |па        |версии    |нения     |па        |версии
80386     |          |          |80386     |          |
          |          |          |          |          |
-----------------------------------------------------------------
--
          |          |          |          |          |