 |
ются первый и второй циклы подтверждения прерывания. Адрес
байта, выдаваемый в первом цикле подтверждения прерывания,
равен 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 поступает с этими характеристиками данного типа процес-
сора только по своему усмотрению.
|