Nicron #25
20 марта 1997
  Железо  

Железо - обзор микропроцессора Zilog Z380, продолжение.


Аппаратное обеспечениеОбучение и справочные материалыОписание логических микросхем и микропроцессоров

╔══════════════════════════════════════════════════════════════╗
║▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░ MPU Z380 ░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒║
╚══════════════════════════════════════════════════════════════╝

(C) WLODEK BLACK

[ Окончание. Начало в номере 7 ].


    Управление тактами ожидания
при обращении к нижней, верхней
	  и средней памяти

При использовании встроенного контроллера  обращения  к  памяти
(ВКП) можно программно задать искусственные задержки в машинных
циклах обращения к определенным для ВКП ареалам нижней, средней
и верхней памяти.
Структура регистров управления задержками  одинакова  для  всех
ареалов памяти:

       7      6      5      4      3      2      1      0
   ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐
   │ T1W2 │ T1W1 │ T1W0 │ T2W1 │ T2W0 │ T3W2 │ T3W1 │ T3W0 │
   └──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘

"T1", "T2" и "T3" означают номера машинных тактов  одного машин-
ного цикла, а "W2", "W1", "W0" - двоичные веса констант програм-
мируемой задержки: например,запись в регистр значения %10100000
задаст задержку в такте T1 на %101 = 5 дополнительных тактов.

  Режим экономичного останова

Z380 имеет  программно-управляемый  режим экономичного останова,
при использовании которого  можно достичь резкого снижения энер-
гопотребления процессором и/или микропроцессорной системой.  Ес-
ли режим экономичного останова (РЭО) разрешен,  активизация РЭО
производится командой процессора SLP (sleep).  После выполнения
SLP  прекращается  трансляция   тактовых  импульсов  на  выходы
BUSCLK и IOCLK;  сигнал на выходе /STNBY переходит в лог.0,  по-
казывая подтверждение РЭО;  выполнение операций процессором пре-
кращается; шина адреса переходит в состояние лог.1;  шина управ-
ления принимает 3-е состояние. Сигнал /STNBY может использовать-
ся для подачи команды отключения питания  других устройств  или
хотя бы для блокировки работы внешнего тактового генератора.
Выход из РЭО совершается путем сброса,  подачи запроса  немаски-
руемого прерывания, подачи запроса  маскируемого прерывания  лю-
бого типа (если разрешено EI), а также  запросом на захват  шин,
если таковой разрешен в регистре SR.
Если РЭО не разрешен, команда SLP исполняется как HALT (включая
выставление сигнала подтверждения /HALT).
Управление  РЭО осуществляется с помощью   Регистра  Управления
РЭО и Возвратом из РЭО (SMCR). (Адрес SMCR во ВП УВВ-00000016h).

       7      6      5      4      3      2      1      0
   ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐
   │ STBY │ BRXT │  --  │  --  │  --  │  WM2 │  WM1 │  WM0 │
   └──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘

Назначение разрядов регистра SMCR:

STBY - лог.1 разрешает переход в РЭО;
BRXT - лог.1 разрешает выход из РЭО  по запросу  на захват  шин;
WM2...WM0 - задают время задержки  в  периодах основной частоты
тактового генератора, в течение  которого  процессор будет удер-
живаться  в "подвешенном" состоянии  (дословно "WM" -   Warm-Up
time, то есть "время прогрева")  после выхода из РЭО;  это  вре-
мя  может быть необходимо для вхождения  в рабочий режим других
устройств, отключенных  по сигналу /STNBY. Установка в лог.1 би-
та WM0  задает задержку  2^16  периодов тактовой частоты,  WM1 -
2^17, WM2 - 2^19.  В течение времени прогрева трансляция импуль-
сов тактовой частоты  на выходы  BUSCLK и IOCLK не производится.
При всех лог.0 задержка не отрабатывается.

      Система прерываний

Структура  системы  прерываний (СП) Z380 содержит совместимую с
Z80  и  Z180 подгруппу, а также включает в себя  новые элементы,
например, обработку прерываний по неверному коду команды.
Аппаратные  прерывания  вызываются подачей  низкого  уровня  на
один из входов /NMI, /INT3../INT0.
/NMI - вход  немаскируемого  прерывания. При обработке NMI  про-
цессор засылает  в стек адрес возврата,  запоминает флаг  разре-
шения маскируемых прерываний, запрещает  маскируемые прерывания
и переходит на адрес  00000066H, то есть аналогично Z80.  Разни-
ца в том, что  NMI  в 380-м  имеет  не наивысший приоритет (!) -
в первую очередь  обслуживается  программное прерывание  по  не-
правильному коду команды (trap).
Третьим  по  уровню  приоритета  является  прерывание  со входа
/INT0, которое полностью аналогично обычному  маскируемому  пре-
рыванию Z80. В частности, с этого входа поддержаны  4 типа  пре-
рываний IM 0, IM 1, IM 2 и IM 3.  Режим IM 3 отличается от IM 2
только использованием  16-разрядных  вектора  и смещения:  биты
A31..A16 задаются  расширенным регистром I,  а биты A15..A0 счи-
тываются  с шины данных  в такте подтверждения  прерывания;  по
полученному адресу  считывается слово  или длинное слово  (в за-
висимости  от режима процессора),  которое и служит адресом  пе-
рехода на обслуживающую подпрограмму.
Прерывания  /INT1, /INT2, /INT3  (в порядке убывания приоритета)
вызываются подачей  низкого уровня  на соответствующий вход,  а
адрес  обрабатывающей  процедуры  определяется  так  называемым
связанным вектором, который вычисляется следующим образом:
A31..A16  берутся  из расширенного регистра I; A15..A9 определя-
ются содержимым регистра  AVBR  (его адрес во ВП УВВ 00000018H);
A8 = 0; A7..A0  соответственно равны (в 16-ричном виде) 00H для
/INT1, 04H - для /INT2, 08H - для /INT3.  По  вычисленному адре-
су считывается слово  или длинное слово  (в зависимости от режи-
ма процессора), которое и служит  адресом  перехода  на обслужи-
вающую процедуру.

AVBR:
       7      6      5      4      3      2      1      0
   ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐
   │ AB15 │ AB14 │ AB13 │ AB12 │ AB11 │ AB10 │  AB9 │   0  │
   └──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘

Разрешение/запрещение маскируемых прерываний производится  либо
командами EI 0 ... EI 3  для  /INT0.../INT3, либо прямым манипу-
лированием флагами разрешения прерываний, которые  находятся  в
регистре IER (регистр разрешения прерываний; адрес  во  ВП  УВВ
00000017H) и в регистре SR (бит 5). Распределение  обязанностей
между IER и 5-м битом SR таково: биты IER показывают лишь возмо-
жность осуществления прерывания  с конкретного входа  /INT 0..3,
а 5-й бит SR - это флаг именно разрешения прерываний.  Командой
DI можно разом запретить все маскируемые прерывания. EI разреша-
ет прерывания, но только те, которые разблокированы в IER.

IER:
       7      6      5      4      3      2      1      0
   ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐
   │  --  │  --  │  --  │  --  │  IE3 │  IE2 │  IE1 │  IE0 │
   └──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘
				   0      0      0      1 <Reset

Биты регистра IER (лог.1 - разрешено)  показывают  лишь  возмож-
ность прерывания с соответствующего входа, а флаг собственно ра-
зрешения прерываний находится в регистре SR.
Подтверждение  аппаратного прерывания  производится  выставлени-
ем  низкого уровня на выходе  /INTAK в такте подтверждения  пре-
рывания. Для обеспечения  аппаратного  различения, какое  преры-
вание подтверждается, процессор  выставляет  номер входа /INT0..
../INT3 на шине адреса в виде  лог.0  в соответствующем разряде- 
A0 - для /INT0, A1 - для /INT1 и т.д.  Остальные  разряды  шины
адреса устанавливаются в 1.
Программные  прерывания  происходят  при обнаружении  неверного
кода команды.  Неправильный  код команды  может  встретиться  в
программе, или же  он может быть получен  от устройства,  запро-
сившего аппаратное прерывание со входа  /INT0  в режиме IM 0. В
зависимости от условий получения  неправильного кода  различают-
ся и способы обработки таких ситуаций.  При обработке  программ-
ного прерывания (ПП) первым делом устанавливается  один из двух
флагов в регистре  TRPBK  (его адрес во ВП УВВ 00000019H): TF -
флаг  неверного кода  в программе, TV - флаг неверного  кода  в
цикле подтверждения прерывания. Активное значение - лог.1.

TRPBK:
       7      6      5      4      3      2      1      0
   ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐
   │  --  │  --	 │  --  │  --  │  --  │  --  │  TF  │  TV  │
   └──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘

Далее происходит  засылка в стек:  засылается или адрес  начала
полного  (включая DDIR)  кода неправильной инструкции, если  ПП
произошло  в программе, или  текущий адрес выполнения, если  ПП
произошло по аппаратному прерыванию.  Затем  запрещаются  маски-
руемые прерывания, и происходит  переход  на адрес... 00000000H
(!!!).  Но  на этот же  адрес  происходит  переход  при  сбросе
(Reset) - !!!,  поэтому  процедура "раскрутки" компьютера  долж-
на различать,  что произошло - сброс или ПП.  Различить это мож-
но  как раз  по флагам TF и TV - если  один  из них =1,  значит,
имело место ПП.  Регистр TRPBK  доступен только для чтения, при-
чем при считывании его значения  происходит  сброс обоих флагов
TF и TV, так что выяснять состояние  этих флагов  можно  только
один раз.
Как ведет себя  380-й  при попытке исполнения "левых" команд  -
мне пока не известно.  Все ли они приводят к  ПП, или же  среди
них есть  исполняемые - вопрос  к тем  первопроходцам,  которые
повторят  подвиг польских хакеров  середины 80-х, "расколовших"
загадочные секреты  горячего сердца  лучшего домашнего компьюте-
ра всех времен и народов,  название которого  даже незачем напо-
минать. Вот и все. Я  закрываю  последнюю страницу  драгоценной
книжицы  и возвращаю ее  законному владельцу - Егору  Вознесенс-
кому. Мне  очень хочется  написать: "Продолжение следует". И  я
надеюсь, что оно  действительно  вскоре последует - в виде  бес-
численных  новейших компьютеров, шагнувших  в жизнь  с  экранов
"НЛО - Дьяволы Бездны"  под названием  "ZX-Spectrum-2000",  или
еще как-нибудь, неважно... И если  в этой тихой революции  люди
заметят и капельку моего скромного труда,  мне будет просто по-
человечески приятно.




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Железо - обзор микропроцессора Zilog Z380, продолжение.
Железо - обзор микропроцессора Zilog Z380, продолжение.
Процессоры - Хитрые процессоры или программы , которые стабильно , в одном и том же месте "зависают".

В этот день...   17 октября