На главную страницу
Форум txt.version   




Статья :: Неконвейерная адресация
     
     6.4.3.2  Неконвейерная адресация
     
     Любой цикл шины может быть выполнен в режиме неконвейер-
ной  адресации.  Для примера, на рис.6-11 показана последова-
тельность циклов чтения и записи в режиме неконвейерной адре-
сации. Из рис.6-11 следует, что самые короткие циклы, возмож-
ные в режиме неконвейерной адресации, состоят каждый из  двух
состояний  шины.  Состояния  обозначены как Т1 и Т2. В первой
фазе состояния Т1 выдаются достоверные значения сигналов  ад-
реса  и  сигналов определения типа цикла шины, и одновременно
устанавливается  активный  уровень  сигнала   строба   адреса
(ADS#), сигнализирующий о готовности вышеперечисленных сигна-
лов.
     В  течение циклов чтения или записи шина данных фкнкцио-
нирует как описано ниже. В  цикле  чтения  80386  переключает
свою  шину данных таким образом, чтобы принять сигналы данных
от адресованного внешнего устройства. В цикле записи  сигналы
данных  передаются  процессором 80386, начиная со второй фазы
состояния Т1 и кончая первой фазой  состояния  шины,  которое
будет установлено сразу после получения подтверждения цикла.
     Рис.6-12  иллюстрирует циклы шины в режиме неконвейерной
адресации, причем циклы 2 и 3 дополнены одним состоянием ожи-
дания. В циклах 2 и 3 сигнал READY# оказался  неустановленным
в  активное состояние Т2. В этих циклах активный уровень сиг-
нала READY# устанавливается в конце второго из состояний Т2.
     Когда не используется конвейерная адресация, достоверные
значения адреса и типа цикла шины сохраняются в течение  всех
состояний ожидания. Когда цикл дополняется состояниями ожида-
ния,  и  необходимо обеспечить режим неконвейерной адресации,
неактивный (высокий) уровень сигнала  NA#  должен  устанавли-
ваться в течение каждого из состояний Т2, исключая самое пос-
леднее  состояние Т2 цикла, как показано на рис.6-12 в циклах
2 и 3. Если активный уровень  NA#  окажется  установленным  в
состояние Т2 (но не в последнем Т2), то следующим состоянием,
вместо состояния Т2 (для неконвейерной адресации), будет сос-
тояние Т2i (для конвейерной адресации) или Т2p (для конвейер-
ной адресации).
     Рис.6-13  наиболее  полно иллюстрирует картину состояний
шины и переходов из состояния в состояние для  случая,  когда
конвейерная  адресация  не  используется. Показанные переходы
шины между 4-мя возможными состояниями: Т1, Т2, Тi и Тh. Цик-
лы шины содержат состояния Т1 и Т2, причем  Т2  может  повто-
ряться  (состояния  ожидания).  Кроме этого, шина может нахо-
диться в нерабочем состоянии, т.е. в состоянии Тi, или в сос-
тоянии подтверждения захвата шины, т.е. в состоянии Тh.

                             "1"
                          г=======¬
                          V       ¦
                       г==========¦===¬
           г===========¦     Th       ¦<=============¬
           ¦           L==============-              ¦
           ¦            Л      Л                     ¦
           ¦ г==========-      ¦                     ¦
           ¦ ¦                 ¦                     ¦
       "2" ¦ ¦ "1"             ¦"3"              "4" ¦
 ====¬     ¦ ¦                 ¦     "6"             ¦
     ¦"5"  ¦ ¦  г==============¦===============¬     ¦
     ¦     ¦ ¦  ¦              ¦               ¦     ¦
     V     V ¦  V              V               V     ¦
  г==============¬      г==============¬  "9" г============¬
г>¦              ¦ "3"  ¦              ¦=====>¦            ¦=¬
¦ ¦      Ti      ¦=====>¦     T1       ¦      ¦     T2     ¦ ¦
¦ ¦              ¦      ¦              ¦<=====¦            ¦ ¦
¦ L=====T========-      L==============-  "7" L============- ¦
¦"2"    ¦                                             Л  "8" ¦
L=======-                                             L======-
                                                                                                                                                                                                                                                               
  "1"-HOLD активизирован
  "2"-HOLD неактивизирован * нет внутреннего запроса
  "3"-HOLD неактивизирован * есть внутренний запрос, ожидаю-
      щий обслуживание
  "4"-READY# активизирован * HOLD активизирован
  "5"-RESET активизирован
  "6"-READY# активизирован  *  HOLD  неактивизирован  *  нет
      внутреннего запроса
  "7"-READY#  активизирован  *  HOLD  неактивизирован * есть
      внутренний запрос, ожидающий обслуживание
  "8"-READY# неактивизирован * NA# неактивизирован
  "9"-постоянно
                                                                                                                                                                                                                                                               
Состояния шины :
  T1-первое состояние неконвейерного цикла шины (80386 выда-
     ет новый адрес и устанавливает активный уровень ADS#).
  T2-последующие состояния цикла шины, когда  при  просмотре
     сигнала NA# в текущем цикле шины он оказывается в неак-
     тивном состоянии.
  Ti-нерабочее состояние.
  Th-состояние  подтверждения захвата шины (80386 устанавли-
     вает активный уровень HLDA).
     Самый  короткий цикл шины состоит из двух состояний: T1
и T2. Четыре основные состояния шины описывают  функциониро-
вание шины, когда не используется конвейерная адресация. Эти
состояния распространяются на оба размера шины: 32 бита и 16
бит,  т.е.  справедливы  для любого значения BS16#. Если при
активном уровне сигнала BS16# требуется  выполнение  второго
16-разрядного  цикла, последний выполняется перед формирова-
нием процессором сигнала подтверждения захвата шины.
                                                                                                                                                                                                                                                               
Рис.6-13. Состояния шины 80386 (когда конвейерная  адресация
          не применяется)

     Для случая, когда конвейерная адресация не используется,
диаграмма состояния шины такая, как показана на  рис.6-13.  В
нерабочем  состоянии  шина  находится в Тi. Циклы шины всегда
начинаются с Т1. Т1 всегда предшествует  состоянию  Т2.  Если
цикл  шины не подтвержден в течение Т2 и уровень NA# при этом
неактивный, состояние Т2 повторяется. Когда цикл  подтвержден
в  течение  Т2,  то за этим последует состояние Т1 следующего
цикла шины, если имеется  ожидающий  обслуживания  внутренний
запрос  шины  (запрос  на захват шины самим процессором), или
состояние Тi, если такого запроса нет, или состояние Тh, если
установлен активный уровень входного сигнала HOLD.
     Диаграмма состояния шины на рис.6-13 справедлива при лю-
бом значении сигнала BS16#. Если  80386  выполнит  внутренние
переключения, необходимые для установки 16-разрядного размера
шины,  то  эти  переключения не повлияют на состояния внешней
шины. Если для выполнения передачи по 16-разрядной шине  тре-
буется  дополнительный 16-разрядный цикл шины, он также будет
выполняться в соответствии с переходами состояний, показанны-
ми на рис.6-13.
     В режиме конвейерной адресации в 80386 могут  иметь  еще
три  типа  состояния  шины,  не  показанные  на  рис.6-13. На
рис.6-20 в параграфе 6.4.3.4 "Конвейерная адресация" показана
более подробная диаграмма состояния шины, включающая циклы  в
режиме конвейерной адресации.
     Состояния шины:
     Т1  -  первое состояние неконвейерного цикла шины (80386
     выдает новый  адрес  и  устанавливает  активный  уровень
     ADS#);
     Т2  -  последующие состояния цикла шины, когда при прос-
     мотре сигнала NA# в текущем цикле шины он оказывается  в
     неактивном состоянии;
     Тi  -  нерабочее состояние;
     Тh  -  состояние подтверждения захвата шины (80386 уста-
     навливает активный уровень HLDA).
Самый короткий цикл шины состоит из двух состояний: Т1 и Т2.
     Четыре  основные состояния шины описывают функционирова-
ние шины, когда не используется  конвейерная  адресация.  Эти
состояния  распространяются  на оба размера шины: 32 бит и 16
бит, т.е. справедливы для любого значения BS16#. Если при ак-
тивном уровне  сигнала  BS16#  требуется  выполнение  второго
16-разрядного цикла, последний выполняется перед формировани-
ем процессором сигнала подтверждения захвата шины.
     
     6.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-битном цикле.
     На  рис.6-14 и 6-15 показаны передачи, при которых уста-
новка активного уровня BS16# требует второго 16-битного цикла
для выполнения передачи всего операнда. Рис.6-14 иллюстрирует
циклы без состояний ожидания. Рис.6-15 иллюстрирует  циклы  с
одним   состоянием  ожидания.  Отметим,  что  в  цикле  1  на
рис.6-15, в течение которого устанавливается активный уровень
сигнала BS16#, сигнал NA# должен быть обязательно  переключен
в  неактивный  уровень в состоянии(ях) Т2, предшествующем(их)
последнему состоянию Т2. Это необходимо для того, чтобы в фи-
нальном состоянии Т2 процессор воспринял установленный актив-
ный уровень BS16# в режиме неконвейерной адресации.
     
     6.4.3.4  Конвейерная адресация
     
     В  режиме  конвейерной  адресации  адрес и тип цикла для
следующего цикла шины, который будет обслуживать ждущий обра-
ботки,внутреннии запрос процессора, запрашиваются еще до  то-
го,  как будет получено подтверждение текущего цикла по линии
READY#. Когда следующий адрес подготовлен и выдан, 80386  ус-
танавливает  активный  уровень  сигнала ADS#. Протокол режима
конвейерной адресации строится на основе совмещения циклов  и
с помощью входного сигнала NA#.
     Когда выполняется цикл шины и текущий адрес должен иметь
достоверное значение в течение по меньшей мере одного полного
состояния шины, значение входного сигнала NA# анализируется в
конце каждой первой фазы состояния до тех пор, пока цикл шины
не  получит подтверждение. В течение неконвейерных циклов ши-
ны, следовательно, NA# анализируется в конце  первой  фазы  в
каждом  состоянии  Т2.  Примером  может  служить  Цикл  2  на
рис.6-16, в течение которого NA# анализируется в конце первой
фазы каждого Т2 (NA# был установлен в активный  уровень  один
раз в течение первого состояния Т2 и не оказывает дальнейшего
воздействия на выполнение этого цикла шины).
     Если процессор при просмотре NA# обнаружит активный уро-
вень  этого сигнала, то 80386 освобождается, чтобы выдать ад-
рес и тип цикла следующего цикла, и установить активный  уро-
вень сигнала ADS#, как только в процессоре появится ожидающий
обслуживания  внутренний  запрос шины. Процессор может выдать
следующий адрес уже в следующем состоянии шины, независимо от
того получил ли в этот момент подтверждение текущий цикл  или
не получил.
     Что касается режима конвейерной адресации, то в этом ре-
жиме 80386 имеет следующие особенности:
     1)  для того, чтобы процессор воспринял активный уровень
сигнала NA#, сигнал BS16# должен быть переключен в неактивный
уровень на время просмотра сигнала NA# (см. рис.6-16 Циклы  3
и 4; рис.6-17 Циклы 2-4);
     В  том случае, если сигналы NA# и BS16# окажутся оба ак-
тивными в течение последнего периода Т2 цикла шины, приорите-
том будет обладать активный сигнал BS16#. Следовательно, если
оба сигнала активны, то текущий размер шины принимается  рав-
ным  16 разрядам, а следующий адрес будет неконвейерным. Схе-
матично рис.6-18 показывает внутреннюю логику 80386,  обеспе-
чивающую эти особенности.
     2)  следующий  адрес  может  появиться в состоянии шины,
следующем сразу после момента  обнаружения  активного  уровня
NA# (см. рис.6-16 или 6-17);
     В этом случае сразу шина перейдет в состояние Т2p. Одна-
ко,  если  в  этот  момент отсутствует ожидающий обслуживания
внутренний запрос шины, то следующий адрес не будет  установ-
лен  сразу после активизации NA#, и вместо состояния Т2p шина
перейдет в состояние Т2i (см. рис.6-19 Цикл 3). При  условии,
что  текущий  цикл шины еще не получил подтверждение по линии
READY#, шина перейдет в состояние Т2p как только 80386 выдает
следующий адрес. Внешние устройства, поэтому, должны  следить
за  состоянием  выходного сигнала ADS#, подтверждающим выдачу
на шину достоверного следующего адреса.
     3) в том случае, когда 80386 при просмотре обнаружит ак-
тивный уровень NA#, 80386 сам принимает решение на обслужива-
ние самого приоритетного внутреннего запроса шины, ожидающего
обслуживания. Процессор не  сможет  больше  выполнить  другую
16-разрядную  передачу по тому же адресу, даже если BS16# бу-
дет установлен в активный уровень  внешним  устройством,  так
как  после восприятия процессором активного сигнала NA# теку-
щий размер шины принимается равным 32-м разрядам;
     Следовательно,  если  процессор  опознал активный сигнал
NA# в течение цикла шины, то после этого сигнал BS16# игнори-
руется в этом цикле шины (см. рис.6-16,  6-17,  6-19).  Таким
образом,  нельзя активизировать сигнал NA# в тех циклах шины,
в которых 16-разрядный размер шины должен быть задан установ-
кой активного уровня сигнала BS16#.  См.  6.4.3.6  "Изменение
размера шины в режиме конвейерной адресации".
     4)  любой адрес, достоверное значение которого подтверж-
дено выходным импульсным сигналом 80386  ADS#,  будет  сохра-
няться на адресных выводах в течение по меньшей мере двух пе-
риодов  тактовой  частоты процессора. 80386 не может выдавать
новый адрес чаще, чем каждые  два  периода  тактовой  частоты
процессора (см. рис.6-16, 6-17, 6-19);
     5)  из  всех  сигналов, необходимых для следующего цикла
шины, процессор выдает только адрес и тип цикла шины;
     Уровень совмещения в режиме конвейерной адресации не бо-
лее, чем один цикл шины (см. рис.6-19 Цикл 1).
     Полная диаграмма переходов состояний шины, включая функ-
ционирование  в  режиме  конвейерной   адресации,   дана   на
рис.6-20.  Отметим,  что  эта  диаграмма  включает диаграмму,
справедливую только для режима неконвейерной адресации, и до-
полнительные три состояния шины для режима конвейерной  адре-
сации.
                                                                                                                                                                                                                                                               
                            "1"
                          г====¬
                          V    ¦
                        г========¬   "2"
        г===============¦   Тh   ¦<==========================¬
        ¦    г=========>¦        ¦   "2"                     ¦
        ¦"4" ¦"1"       L====T===-<=============¬            ¦
"5"     ¦ г==-      "6"   "3"¦                  ¦            ¦
======¬ ¦ ¦г=================¦==============¬   ¦            ¦
      V V ¦¦                 V              ¦   ¦            ¦
    г=====¬¦            г=======¬           ¦ г=¦=====¬      ¦
г==>¦  Тi ¦-    "3"     ¦  Т1   ¦  Всегда   L>¦   Т2  ¦====¬ ¦
¦   ¦     ¦============>¦       ¦============>¦       ¦<=¬ ¦ ¦
L===L=====-             L=======-<============L======T-  ¦ ¦ ¦
"4"    Л                    Л          "8"      ¦ Л  ¦   ¦ ¦ ¦
       ¦              "8"   ¦      "12"         ¦ L==-   ¦ ¦ ¦
       ¦"6   г==============-    г==============- "9"    ¦ ¦ ¦
       ¦     ¦                   V                    "7"¦ ¦ ¦
"15"г==¦===¬ ¦           г========¬             г======¬ ¦ ¦ ¦
г==>¦ Т2i  ¦=-  "16"     ¦  Т2Р   ¦    "14"     ¦  Т1Р ¦ ¦ ¦ ¦
¦   ¦      ¦============>¦        ¦============>¦      ¦=- ¦ ¦
L===L======-             L======T=-<============L===T==-   ¦ ¦
     ¦ Л   Л                Л   ¦      "13"         ¦      ¦ ¦
     ¦ ¦   ¦                L===-                   ¦      ¦ ¦
     ¦ ¦   ¦   "11"          "17"                   ¦  "10"¦ ¦
     ¦ ¦   L========================================-      ¦ ¦
     ¦ L===================================================- ¦
     L=======================================================-
                                                                                                                                                                                                                                                               
   "1"-HOLD активизирован
   "2"-READY# активизирован * HOLD активизирован
   "3"-HOLD неактивизирован * есть внутренний запрос, ожидаю-
       щий обслуживание
   "4"-HOLD неактивизирован * нет внутреннего запроса
   "5"-RESET активизирован
   "6"-READY#  активизирован  *  HOLD  неактивизирован  * нет
       внутреннего запроса
   "7"-NA# неактивизирован
   "8"-READY# активизирован *  HOLD  неактивизирован  *  есть
       внутренний запрос, ожидающий обслуживание
   "9"-READY# неактивизирован * NA# неактивизирован
  "10"-(нет  внутреннего  запроса * HOLD активизирован) * NA#
       активизирован * READY# неактивизирован
  "11"-NA# активизирован * (HOLD активизирован * нет внутрен-
       него запроса)
  "12"-READY# неактивизирован * NA# активизирован * HOLD  не-
       активизирован * есть внутренний запрос, ожидающий обс-
       луживание
  "13"-NA#  активизирован * HOLD неактивизирован * есть внут-
       ренний запрос, ожидающий обслуживание
  "14"-READY# активизирован
  "15"-READY# неактивизирован * (нет  внутреннего  запроса  *
       HOLD активизирован)
  "16"-READY# неактивизирован * есть запрос, ожидающий обслу-
       живание * HOLD неактивизирован
  "17"-READY# неактивизирован
   
 Состояния шины :
   Т1-первое состояние неконвейерного цикла шины (80386 выда-
      ет новый адрес и устанавливает активный уровень ADS#).
   Т2-последующие  состояния  цикла шины, когда при просмотре
      сигнала NA# в текущем цикле шины он оказывается в неак-
      тивном состоянии.
  Т2i-последующие состояния цикла шины, имеющие  место  когда
      обнаружен активный уровень NA# в текущем цикле шины, но
      еще  отсутствует внутренний запрос шины, ожидающий обс-
      луживание (80386 не выдаст новый адрес или не установит
      активный уровень ADS#).
  Т2Р-последующие состояния цикла шины, имеющие место когда в
      текущем цикле шины обнаружен активный  уровень  NA#,  и
      имеется внутренний, ожидающий обслуживание, запрос шины
      (80386 выдаст новый адрес и активизирует сигнал ADS#).
  Т1Р-первое состояние конвейерного цикла шины.
   Ti-нерабочее состояние.
   Th-состояние  подтверждения захвата шины (80386 устанавли-
      вает активный уровень HLDA).
      Установка активного уровня NA# для конвейерной  адреса-
ции может повлечь за собой одно из трех типов состояний шины:
Т2i,Т2Р и Т1Р.
      В режиме конвейерной адресации самый короткий цикл шины
состоит из состояний Т1Р и Т2Р.
           
  Рис.6-20. Диаграмма всех возможных состояний шины (включая
            режим конвейерной адресации)

     Самый  короткий цикл шины в режиме конвейерной адресации
состоит только из двух состояний шины, Т1p и  Т2p  (напомним,
что для режима неконвейерной адресации такими состояниями яв-
ляются состояния Т1 и Т2). Т1p является первым состоянием ши-
ны конвейерного цикла.
     
       6.4.3.5 Инициализация и поддержание режима конвейерной
               адресации
     
     Пользуясь  диаграммой  состояний  на рис.6-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
        состояние        неконвейерный    конвейерный
        подтверждения        цикл            цикл
        захвата
     
     Переход к ковейерной адресации показан на рис.6-17  Цикл
1. Цикл 1 используется для перехода в режим конвейерной адре-
сации для выполнения последовательности конвейерных циклов 2,
3 и 4. В соответствующий момент устанавливается активный уро-
вень NA# для того, чтобы выбрать конвейерный адрес для циклов
2, 3 и 4.
     Когда выполняется цикл шины, и достоверное значение  те-
кущего  адреса  удерживается в течение одного состояния шины,
состояние входа NA# анализируется в конце каждой первой  фазы
до тех пор, пока этот цикл не получит подтверждение. Следова-
тельно, в Цикле 1 на рис.6-17 процессор начинает анализ NA# в
состоянии  Т2. Как только в текущем цикле NA# оказывается ус-
тановленным в активный уровень,  80386  освобождается,  чтобы
выдать  на  шину новый адрес и тип цикла до начала следующего
состояния шины. Например, в Цикле 1  обеспечивает  переход  в
режим  конвейерной адресации, так как он начинается с состоя-
ния Т1, но заканчивается состоянием Т2p. Поскольку адрес  для
Цикла  2 устанавливается еще до начала Цикла 2, последний на-
зывается конвейерным циклом шины  и  начинается  с  состояния
Т1p.  Цикл  2 начнется, как только активный сигнал READY# за-
вершит Цикл 1. Примерами переходных циклов шины являются Цикл
1 на рис.6-17 и Цикл 2 на рис.6-16. На рис.6-17 показан пере-
ход в течение цикла шины, первого после нерабочего  состояния
шины,  это  самый  кратчайший  из возможных переходов в режим
конвейерной адресации. Цикл 2 на рис.6-16 иллюстрирует  пере-
ходной цикл шины, имеющий место внутри последовательности ра-
бочих  циклов шины. В любом случае переходные циклы осуществ-
ляются аналогично независимо от момента их  появления:  пере-
ходной  цикл  состоит  по меньшей мере из состояний Т1, Т2 (в
этот момент вы устанавливаете активный сигнал NA#), Т2p  (при
условии,  что 80386 уже имеет ожидающий обслуживания внутрен-
ний запрос шины, это условие выполняется почти всегда).  Сос-
тояния  Т2p  повторяются,  если  цикл дополняется состояниями
ожидания.
     Отметим три состояния (Т1, Т2 и Т2p), комбинация которых
требуется только в цикле шины, выполняющем переход из  режима
неконвейерной адресации в режим конвейерной адресации, напри-
мер, Цикл 1 на рис.6-17. Циклы 2, 3 и 4 на рис.6-17 показыва-
ют, что в режиме конвейерной адресации могут выполняться цик-
лы шины из двух состояний каждый, включающие только состояния
Т1p и Т2p.
     Когда выполняется конвейерный цикл шины, режим конвейер-
ной адресации поддерживается путем установки активного сигна-
ла NA# и определением того, что 80386 устанавливает состояние
Т2p  шины  в текущем цикле шины. Текущий цикл шины должен за-
канчиваться состоянием Т2p для того, чтобы режим  конвейерной
адресации  был  сохранен  и  в следующем цикле. Состояние Т2p
идентифицируется  установкой  активного  сигнала   ADS#.   На
рис.6-16  и  6-17  режим  конвейерной адресации заканчивается
после Цикла 4, так как последним состоянием Цикла 4  является
состояние  Т2i.  Это  означает, что 80386 не имел внутреннего
запроса шины перед получением  подтверждения  Цикла  4.  Если
цикл  заканчивается  состоянием Т2 или Т2i, то следующий цикл
будет неконвейерным.
     В действительности, конвейерный адрес почти всегда уста-
навливается сразу после обнаружения активного уровня NA#. Это
происходит потому, что при отсутствии любого другого  запроса
внутренний запрос предварительной выборки команды почти всег-
да ожидает обслуживания до тех пор, пока занят дешифратор ко-
манд  и  полностью заполнена очередь предварительно выбранных
команд. Следовательно, конвейерный адрес устанавливается  для
длинных  цепочек  циклов шины, если шина доступна, и в каждом
цикле шины оказывается установленным активный уровень сигнала
NA#.
     
     6.4.3.6  Конвейерная адресация при изменении
              размера шины данных

     Наличие сигнала BS16# обеспечивает простое соединение  с
16-разрядными  шинами  данных. Когда установлен активный уро-
вень BS16#, схема шинного интерфейса 80386 выполняет соответ-
ствующие переключения, чтобы осуществить передачу,  используя
16-разрядную шину данных, соединенную с линиями D0-D16.
     Однако,  при  одновременном использовании сигналов NA# и
BS16# имеет место некоторое взаимное  влияние  этих  сигналов
друг  на друга. Это взаимное влияние проявляется тогда, когда
требуются многократные циклы шины для  передачи  32-разрядных
операндов  по  16-разрядной шине. Если операнду требуются обе
16-разрядные половины 32-разрядной шины, то в соответствии  с
этим  требованием 80386 должен выполнить второй цикл шины для
того, чтобы полностью передать весь операнд. Именно это  тре-
бование  приводит  к  конфликтной  ситуации при использовании
сигнала NA#.
     Когда NA# оказывается установленным в активный  уровень,
80386 дает себе разрешение на обработку следующего внутренне-
го,  ожидающего  обслуживания  запроса  шины и выдает на шину
следующий подготовленный внутри адрес. Следовательно, активи-
зация NA# делает невозможным повторную  выборку  в  следующем
цикле  шины  текущего  адреса по линиям A2-A31, как это может
потребоваться, когда сигнал BS16# активизирован внешним  уст-
ройством.
     Для  разрешения  этого конфликта схема 80386 разработана
таким образом, чтобы удовлетворять следующим двум условиям:
     1). Для разрешения конфликта 80386 разработан таким  об-
разом,  чтобы игнорировать сигнал BS16# в текущем цикле шины,
если NA# уже оказался установленным в текущем цикле. Если NA#
оказался установленным, то текущий размер шины данных  прини-
мается равным 32 разрядам.
     2).  Также для разрешения конфликта в том случае, если и
NA# и BS16# оказались установленными в один и тот  же  момент
времени,  активный BS16# обладает более высокими по сравнению
с активным NA# приоритетом, и 80386 функционируется так,  как
если  бы  в этот момент сигнал NA# оказался неактивным. Внут-
ренняя схема 80386, схематично показанная на рис.6-18 работа-
ет таким образом, чтобы сигнал BS16# воспринимался активным и
сигнал NA# воспринимался неактивным, если оба входных сигнала
активизированы внешними устройствами в один и тот  же  момент
просмотра этих сигналов.

     6.4.4 Циклы подтверждения прерывания(INTA)
        
     В  ответ на запрос прерывания, поступивший на вход INTR,
когда прерывания разрешены, 80386 выполнит два цикла подтвер-
ждения прерывания. Эти циклы шины аналогичны циклам чтения, в
которых имеющий место  вид  деятельности  шины  соответствует
сигналам определения типа цикла шины, и каждый цикл продолжа-
ется  до  тех  пор,  пока процессор не получит подтверждение,
наблюдая за сигналом READY#.
     В зависимости от значения адресного разряда А2  различа-
ются  первый  и  второй циклы подтверждения прерывания. Адрес
байта, выдаваемый в первом  цикле  подтверждения  прерывания,
равен  4 (А31-А3 низкие, А2 высокий, ВЕ3#-ВЕ1# высокие и ВЕ0#
низкий). Адрес, выдаваемый во втором цикле подтверждения пре-
рывания, равен 0 (А31-А2 низкие, ВЕ3#-ВЕ1# высокие, ВЕ0# низ-
кий).
     Активный уровень сигнала LOCK# устанавливается с  начала
первого  цикла  подтверждения  прерывания  и до конца второго
цикла подтверждения прерывания.  Четыре  нерабочих  состояния
шины,  Тi,  вставляются процессором между двумя циклами подт-
верждения прерывания, чтобы обеспечить  время  блокированного
нерабочего  состояния  шины ("мертвое" время) по меньшей мере
длительностью 160 нс, что позволит в будущем ввести модифика-
ции скорости 80386, достигающие 24 МГц (при этом внешняя час-
тота CLK2 должна достигать 48 МГц), что в свою очередь  обес-
печит  совместимость с временным параметром TRHRL контроллера
прерываний 8259А.
     В течение обоих циклов  подтверждения  прерывания  линии
D0-D31 отключены.В конце первого цикла подтверждения прерыва-
ния данных для чтения не имеется. В конце второго цикла подт-
верждения  прерывания 80386 считает внешний вектор прерывания
по линиям D0-D7 шины данных.  Вектор  указывает  определенный
номер прерывания (от 0 до 255), требующего обслуживания.
     
     6.4.5 Цикл индикации останова
     
     80386 останавливается в результате выполнения инструкции
HALT. Для сигнализирования входа процессора в состояние оста-
нова  выполняется цикл индикации останова. Цикл индикации ос-
танова идентифицируется определенной комбинацией сигналов ти-
па цикла шины, указанной в разделе 6.2.5 Сигналы  определения
типа  цикла  шины, и адресом байта, равным 2. ВЕ0# и ВЕ2# при
этом служат только для различения цикла индикации останова от
цикла индикации выключения, в котором выдается адрес,  равный
0.  В  течение цикла останова данные, передаваемые по D0-D31,
неопределены.
     Остановленный 80386 возобновляет функционирование, когда
устанавливается активный уровень сигнала INTR (если  прерыва-
ния разрешены), или сигнала NMI, или сигнала RESET.
     
     6.4.6 Цикл индикации выключения
     
     80386  выключается  в результате появления ошибки защиты
памяти при попытке обработать двойную ошибку. Для  сигнализи-
рования  перехода процессора в выключенное состояние выполня-
ется цикл индикации  выключения.  Цикл  индикации  выключения
идентифицируется  определенной комбинацией сигналов определе-
ния типа цикла шины, указанной в разделе 6.2.5 Сигналы  опре-
деления  типа  цикла шины, и адресом байта, равным 0. Сигналы
ВЕ0# и ВЕ2# при этом служат только для отличения цикла  инди-
кации выключения от цикла индикации останова, в котором выда-
ется  адрес, равный 2. В течение цикла выключения данные, вы-
даваемые на линии D0-D31, неопределены. Цикл индикации выклю-
чения должен быть  подтвержден  установкой  активного  уровня
сигнала READY#.
     Выключенный  80386  возобновляет функционирование, когда
устанавливается активный уровень сигнала NMI или RESET.
     
     6.5 Дополнительные сведения о функционировании
     
     6.6.1 Вход и выход в/из состояния подтверждения
           захвата шины
     
     Состояние подтверждения захвата шины, Тh, вводится в от-
вет  на  установку  активного уровня входного сигнала HOLD. В
состоянии подтверждения захвата шины 80386 выключает все  вы-
ходные или двунаправленные сигналы, исключая сигнал HLDA. Ак-
тивный  уровень  сигнала  HLDA поддерживается все время, пока
80386 находится в состоянии  подтверждения  захвата  шины.  В
состоянии подтверждения захвата шины все входы, за исключени-
ем  HOLD  и  RESET, игнорируются (исключение составляет также
один положительный фронт сигнала  NMI,  который  запоминается
для  последующей  его обработки, когда сигнал HOLD перейдет в
неактивное состояние).
     Состояние Th может быть введено после нерабочего состоя-
ния шины, как на рис.6-25, или после  подтверждения  текущего
физического  цикла  шины, если при этом уровень сигнала LOCK#
неактивный, как на рис.6-26 и 5-27. Если установка  активного
сигнала  ВS16# требует выполнения второго 16-разрядного цикла
шины для завершения передачи физического  операнда,  то  этот
цикл выполняется до подтверждения сигнала HOLD, хотя диаграм-
мы состояний на рис.6-13 и 5-20 не отражают этой особенности.
     Выход  из  состояния Th осуществляется в ответ на снятие
активного уровня входного сигнала HOLD. Следующим  состоянием
будет  состояние Ti, как на рис.6-25, если не имеется ожидаю-
щего обслуживания внутреннего запроса шины. Если  же  имеется
внутренний,  ожидающий решения запрос шины, то следующим сос-
тоянием шины будет состояние Т1, как показано на  рис.6-26  и
6-27.
     Выход  из  состояния  Th осуществляется также в ответ на
установку активного уровня сигнала RESET.
     Если в течение состояния Th появится положительный фронт
на чувствительном к фронту входе NMI, то это событие  запоми-
нается  как  немаскируемое прерывание 2 и обслуживается после
выхода процессора из состояния Th кроме случая, когда до  вы-
хода из Th произойдет сброс 80386.
     
     6.6.2 Сброс в состоянии подтверждения захвата шины
     
     Активный сигнал RESET обладает более высоким приоритетом
по сравнению с активным сигналом HOLD. Следовательно, в ответ
на  установку  активного уровня на входе RESET осуществляется
выход из состояния Th. Если сигнал  RESET  активизируется  во
время действия сигнала HOLD, то 80386 установит свои выводы в
определенные  состояния  в соответствии с табл.6-3 "Состояния
выводов в течение действия сигнала RESET" и выполнит  обычную
процедуру внутреннего сброса.
     Если  активный уровень сигнала HOLD остается установлен-
ным и после снятия активного сигнала RESET, то 80386 перейдет
в состояние подтверждения захвата шины до того, как  выполнит
свой первый цикл шины, но при условии, что HOLD все еще оста-
ется активным в момент, когда 80386 в другом случае приступил
бы к выполнению своего первого цикла шины. Если HOLD остается
активным  после снятия сигнала RESET, то вход BUSY# все равно
анализируется как обычно, чтобы определить требуется ли само-
тестирование, сигнал ERROR# также при этом анализируется  как
обычно, чтобы определить, какой из двух воэможных сопроцессо-
ров  присутствует  в  системе  (или  когда сопроцессора вобще
нет).
     
     6.6.3  Функционирование  шины  в  течение  и  после
            действия сигнала RESET
     
     RESET является самым приоритетным входным сигналом,  при
установке  активного  уровня RESET прерывается любая деятель-
ность процессора. Выполняемый цикл шины может быть прерванным
на любой стадии, а нерабочие состояния или состояния подтвер-
ждения захвата  шины  прекращаются  при  установке  состояния
сброса.
     RESET должен поддерживаться в активном состоянии в тече-
ние  по  меньшей  мере 15 периодов частоты CLK2, чтобы он был
уверенно принят всеми схемами 80386, и по меньшей мере в  те-
чение  78  периодов  CLK2,  если выполняется самотестирование
80386, запрос на которое анализируется во время отрицательно-
го фронта RESET.
     Активные импульсы RESET длительностью меньше 15 периодов
CLK2 могут быть не восприняты.
     Активные импульсы RESET длительностью меньше 78 периодов
CLK2, за которыми следует самотестирование, могут привести  к
тому,  что  тест-структура  выдаст сообщение о неисправности,
когда в действительности неисправности не существует.  Допол-
нительное  расширение импульса RESET необходимо для получения
достоверных результатов самодиагностирования.
     При условии, что отрицательный фронт RESET отвечает тре-
бованиям, предъявляемым к времени  установки  t25  и  времени
удержания  t26, этот фронт определит фазу внутренней тактовой
частоты процессора, как показано на рис.6-28 и рис.7-7.
     Самодиагностирование 80386 можно запустить, если поддер-
живать сигнал BUSY# на низком уровне в момент снятия  сигнала
RESET, как показано на рис.6-28. Для выполнения всей процеду-
ры самодиагностирования требуется [(2^20)+ приблизительно 60]
периодов CLK2. Результаты тестирования не влияют на продолжи-
тельность самодиагностирования.
     Даже если после тестирования тест-структура указывает на
наличие  неисправности, 80386 все равно перейдет к выполнению
процедуры, которая должна была следовать за сбросом 80386.
     После отрицательного фронта RESET (и после  самотестиро-
вания, если в нем была необходимость) 80386 выполнит последо-
вательность внутренней инициализации за время, приблизительно
равное  350-450  периодам CLK2. Во время инициализации, между
двадцатым периодом CLK2 и первым циклом шины (который  после-
дует  за  инициализацией),  80386 анализирует состояние входа
ERROR#, чтобы отличить случай присутсвия в системе  сопроцес-
сора  80387 от случая, когда присутствует 80287 или в системе
вобще нет сопропроцессора. Различие  между  последними  двумя
случаями (в системе присутствует 80287 или в системе нет соп-
роцессора) задается программно.
     
     6.6 Сигнатура самотестирования
     
     По  завершению  самотестирования  (если самотестирование
было запрошено путем поддержания низкого уровня сигнала BUSY#
во время отрицательного фронта сигнала RESET), если  не  было
обнаружено  неисправностей  80386, то значение каждого из ре-
гистров AX и DX будет равно 0000H. Это справедливо  для  всех
модификаций  80386.  Ненулевые  значения  регистров AX или DX
после самотестирования указывает на  то,  что  какой-то  блок
80386 неисправен.
     
     6.7 Идентификаторы типа и модификации
     
     Чтобы  помочь  пользователям  80386,  80386 после сброса
поддерживает идентификатор типа и  идентификатор  модификации
соответственно в регистрах BH и BL. BH содержит 03H для иден-
тификации типа 80386. BL содержит беззнаковое двоичное число,
соответствующее  версии  данного  типа процессора. Хронология
изменения идентификатора модификации (версии) 80386 в BL  та-
кова:  он начинается с нуля и изменяется (обычно увеличивает-
ся) при изменениях данного типа  процессора,  предназначенных
для усовершенствования данного типа процессора по сравнению с
предыдущими версиями.
     Эти  особенности  предназначены  для  того, чтобы помочь
пользователям 80386 в их практической деятельности. Однако не
гарантируется, что значение идентификатора версии будет изме-
няться с каждым изменением версии  или  что  изменения  этого
значения  в  зависимости  от содержания или цели версии или в
зависимости от материалов, требующих изменения, будут  следо-
вать строго по непрерывной числовой последовательности. Фирма
Intel поступает с этими характеристиками данного типа процес-
сора только по своему усмотрению.
     
                                                   Табл.6-10.
      
              История идентификаторов типа и версии
     
г=========T=========T=========T=========T=========T=========¬
¦Содержа- ¦Идентифи-¦Идентифи-¦Содержа- ¦Идентифи-¦Идентифи-¦
¦ние изме-¦катор ти-¦катор    ¦ние изме-¦катор ти-¦катор    ¦
¦нения    ¦па       ¦версии   ¦нения    ¦па       ¦версии   ¦
¦80386    ¦         ¦         ¦80386    ¦         ¦         ¦
¦         ¦         ¦         ¦         ¦         ¦         ¦
¦=========+=========+=========+=========+=========+=========¦
¦         ¦         ¦         ¦         ¦         ¦         ¦


Неконвейерная адресация

страницы в данном разделе 
 Сегмент состояния задачи  Внутренняя структура
 Неконвейерная адресация  Введение в микропроцессор 80386


Разделы
Околокомпьютерная литература (375)
Программирование (102)
Программы (75)
ОС и Сети (49)
Интернет (29)
Аппаратное обеспечение (16)
Базы данных (6)

Содержание сайта (выборка)
Apache
Протоколы TCP/IP (принципы, протоколы и архитектура)

PHP, PELR, JSP
PHP
JavaServer Pages (JSP)

Базы данных
Основы mysql
СУБД INFORMIX
СУБД POSTGRES
Основы проектирования реляционных баз данных

HTML, javascript
Спецификация HTML 4.01
Каскадные Таблицы Стилей, Уровень 2
Клиентский JavaScript. Справочник.
JavaScript руководство пользователя
Серверный JavaScript 1.4. Руководство по Использованию.

Паскаль, C, C++, C#
GCC (примеры)
FAQ Валентинa Озеровa DELPHI
C





 
©  programming-lang.com  справочник программиста