8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 12 13 14 15 16 17 18 ... 39

ЦПУ

Память

Импульсы тактовой -частоты

Счетчик команд

Шина адреса

Регистр команд

©

Дешифратор команд

©

Шина данных

©

MREQ ©

RD

©

WR

Код команды

Адрес Содержимое ячейки ячейки памяти памяти

000ОН

0001

0002

0003

0004

0005

0006

Импульсы тактовой частоты

Шина адреса -

MREQ-

RD

Шина данных-

Машинный цикл

©

©

©

©

На шине адреса устанавливается текущий код из счетчика команд

0.4x10" с

(Z80 ЦПУ)

Активизация устройства памяти путем установки на выводе MREQ состояния «О»; выборка адреса

Чтобы считать данные из ячейки памяти, адрес которой установлен на шине адреса, на вход RD подается сигнал «О»

Открыв шину данных, ЦПУ считывает содержимое памяти и помещает его в регистр команд

Дешифратор команд

Расшифровка кода команды и формирование указания для АЛУ

Время

Рис. 5.5. Временная диаграмма машинного цикла

107

ратора команд выполняется операция декодирования. Для этого дешифратор команд помещает команду (8-разрядное число), считанную из памяти, в регистр команд и, в зависимости от комбинации сигналов «О» и «1» на входах, определяет, какую операцию требуется произвести. Затем он посылает соответствующие «указания» в АЛУ. Каждый из этих этапов (тактов) синхронизируется импульсами тактовой частоты, поступающими на ЦПУ, и выполняется строго в определенные для этого этапа интервалы времени.

Аналогично операциям считывания и декодирования выполняются и все прочие команды. Эта последовательность этапов, производимая в указанном порядке, называется машинным циклом. На Рис. 5.5 показана временная диаграмма машинного цикла.

Цикл начинается с того, что значение, указанное счетчиком команд, «выставляется» на шину адреса, и в память ЦПУ посылается информация об адресе команды (1). Затем, чтобы перейти к операции считывания кода следующей команды, к содержимому счетчика команд прибавляется 1. Далее на входы ОЗУ подаются сигнал обращения к памяти MREQ (2) и сигнал считывания данных RD (3). Эти сигналы переводят соответствующие входы в состояние «О», обеспечивая ЦПУ возможность в любой момент «прийти» за данными. После этого процессор «захватывает» шину данных, считывает код команды из памяти и помещает его в регистр команд (4). Наконец, дешифратор команд расшифровывает команду и посылает указания в АЛУ для ее выполнения (4). После окончания данного машинного цикла начинается цикл выполнения, содержание которого определяется типом команды.

Время, требуемое для выполнения машинного цикла, - 4 периода импульсов тактового генератора (такой процессор называют 4-тактовым). Тактовая частота ЦПУ Z80 равна 2.5 МГц (в Z80A - до 4 МГц), что соответствует периоду тактового импульса 0.4 мкс (0.4х10~6 с). Следовательно, один машинный цикл продолжается 1.6 мкс. Для выполнения команд ЦПУ Z80 требуется от 4 до 23 импульсов тактовой частоты (от 1.6 до 9.2 мкс). Так, следуя импульсам тактовой частоты, ЦПУ последовательно выполняет команды программы одну за другой.

106 =====-=====-=====-=========-=====


Рассмотрим последовательность выполнения, например, команды «ADD А, В». На машинном языке «Z80» это 1-байтовая команда, которая обозначает следующую последовательность операций: «выполнив в АЛУ сложение содержимого регистра А и содержимого регистра В, расположенных в ЦПУ, поместить результат этой операции в регистр А». Поскольку все устройства (оба регистра - А и В и АЛУ), используемые при выполнении этой команды, находятся в процессоре, для ее выполнения достаточно одного машинного цикла. Получив указание от дешифратора команд, ЦПУ мгновенно его выполняет. Точнее, непосредственное выполнение этой команды происходит в течение 4-го периода (Т4) импульсов тактовой частоты машинного цикла, показанного на Рис. 5.5. То есть число импульсов, требуемых для выполнения всей команды, так же, как и для машинного цикла, равно 4.

Команда «OUT (01Н), А» на языке ассемблера соответствует 2-байтовой машинной команде «D301». В этом случае в течение первого машинного цикла из памяти считывается 1 байт: «D3». Расшифровав его, ЦПУ «узнает», что смысл очередной команды заключается в том, чтобы «содержимое регистра А послать в какой-то порт вывода*. Далее, выполнив считывание из памяти содержимого 2-го байта - «01» (следующие 3 импульса тактовой частоты), ЦПУ определяет адрес порта. К этому моменту становится окончательно ясным смысл всей команды «D301». Затем осуществляется запись в порты ввода-вывода (4 импульса тактовой частоты). Этим и завершается выполнение данной 2-байтовой команды.

Итак, число импульсов тактовой частоты, требуемое для выполнения команды «OUT (01Н), А» равно: 4+3 + 4=11.

При выполнении команды размером 3 байта для считывания полного кода команды требуется 3 машинных цикла, а для команды, занимающей 4 байта, цикл считывания кода команды из памяти повторяется 3 раза. Вообще чем длиннее команда, тем больше времени требуется с момента считывания этой команды до завершения ее выполнения.

Существует несколько способов занесения программы на языке машинных команд в память микрокомпьютера. При массовом производстве однотипных изделий одна и та же программа разрабатывается на стадии конструирования и заносится в ПЗУ (Рис. 2.7) заводом-изготовителем. Чтобы занести программу в память микрокомпь-

т

ютера на некоторый относительно продолжительный период времени, мы записываем ее в ППЗУ с помощью устройства, называемого программатором. Если использовать в качестве устройства памяти микрокомпьютера ППЗУ, в которое записана программа, то ЦПУ будет поочередно считывать команды из ППЗУ и выполнять их. «Перезапуск» программы, то есть перевод счетчика команд в начальное состояние, происходит после подачи на вход ЦПУ сигнала сброса RESET (Рис. 2.4).

I-байтовая команда = машинный цикл + цикл выполнения (простые команды выполняются в пределах одного машинного цикла) 2-байтовая команда = машинный цикл + цикл чтения из памяти + цикл выполнения

3-байтовая команда = машинный цикл + цикл чтения из памяти х 2 + цикл выполнения

Сигнал запуска ЦПУ

Сигнал сброса «Н»

RESET

Время

ЦПУ

\ Счетчик / \ команд:

Шина адреса

-\

--/

Шина данных

с-

ООООН

\г--

Устройство памяти ООООН

Команда

Если на ЦПУ подан сигнал сброса (перезапуска),

то в счетчике команд устанавливается значение «ООООН»; ЦПУ считывает команду, код которой записан в ячейке с адресом ООООН и начинает ее выполнять

*с. 5.6. Приведение ЦПУ в состояние готовности осуществляется по сигналу сброса (перезапуска)


г

Когда на вход RESET ЦПУ приходит сигнал сброса «О», происходит считывание содержимого ячейки с адресом 0000Н. С команды, записанной по этому адресу, начинается выполнение программы. Затем ЦПУ по порядку выполняет все остальные команды, записанные каждая по своему адресу. Следовательно, программа, введенная в микрокомпьютер, должна быть занесена в память начиная с нулевого адреса, то есть с адреса 0000Н.

ОБОБЩЕНИЕ ГЛАВЫ

1. Все компьютеры выполняют программы, составленные исключительно на языке машинных команд данного компьютера. Программа, написанная на любом другом языке, например на языке Фортран, выполняется после компилирования - преобразования ее в последовательность машинных команд.

2.Язык ассемблера позволяет представить команды машинного языка в компактном, удобном для запоминания виде. На примере текстов программ на языке ассемблера можно проследить, как происходит обмен данными между ЦПУ и портами ввода-вывода и т. д.

3.Работа ЦПУ осуществляется путем многократного повторения однотипных операций (считывание команды из памяти, расшифровка команды, подготовка к ее выполнению, выполнение команды), образующих машинный цикл (Рис. 5.5).

4.Основными операциями при выполнении команды являются: операция чтения + операция расшифровки (декодирования) + операция выполнения.

Практические задания

1)Объясните, какую роль при выполнении программы играет счетчик команд (PC), являющийся одним из регистров ЦПУ.

2)Какое значение будет занесено в счетчик команд, если на ЦПУ подать сигнал сброса (перезапуска)? Что это означает?

3)Операторы языка ассемблера взаимно-однозначно соответствуют командам машинного языка. Объясните структуру языка ассемблера.

4)Чем определяется время, требуемое для выполнения конкретной команды?

к

В этой главе мы рассмотрим содержание и принцип выполнения наиболее часто употребляемых команд ЦПУ Z80.

Машинные команды выполняются с использованием регистров процессора. Чтобы понять, как осуществляется этот процесс, необходимо ознакомиться с назначением и устройством регистров ЦПУ.

g -jНа Рис. 6.1 показаны ре-

НАЗНАЧЕНИЕгистры ЦПУ Z80, использу-

РЕГИСТРОВ ЦПУ емые при выполнении команд программы. Каждый из регистров A, F, В, С, D, Е, Н и L имеет 8 разрядов, а регистры IX, IY, SP и PC - 16-разрядные. Кроме того, пары регистров ВиС, DhE, Н и L можно использовать в качестве 16-разрядных регистров. В процессоре Z80, кроме главных регистров A...L, есть дополнительные регистры A ...L .

Для того чтобы научиться составлять программы, необходимо изучить свойства и возможности регистров и правильно их использовать.

Регистры А и F, предназначенные для хранения результатов вычислений

Регистр А - наиболее часто используемый из всех регистров ЦПУ. При выполнении арифметических и логических операций с 8-разрядными числами одно из них всегда помещается в регистр А.



0 ... 12 13 14 15 16 17 18 ... 39