4.5. Работа микропроцессорной системы под управлением первичного автомата на примере выполнения команды SHLD

Рассмотрим процессы, происходящие в микропроцессорной системе простейшей конфигурации, состоящей только из микропроцессора и ОЗУ при выполнении относительно сложной  команды, имеющей мнемонику SHLD.

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

Первый байт содержит код операции, второй и третий байты задают прямой адрес в ОЗУ, по которому необходимо отослать содержимое регистров H, L. Цикл команды состоит из пяти машинных циклов (М) и шестнадцати машинных тактов микропроцессорной системы.

На рис. 4.6 представлена последовательность машинных циклов М и состояний Т управляющего автомата в цикле команды и микропрограмма команды, показывающая, в какой последовательности микропроцессорная система выполняет команду.

Цикл команды SHLD

М1

М2

М3

М4

М5

Т1

Т2

Т3

Т4

Т1

Т2

Т3

Т1

Т2

Т3

Т1

Т2

Т3

Т1

Т2

Т3

1       РСС, (СК)-ША    

Вход в цикл команды

((СК))       РК

НК СК

2      РСС,(ск)+1-ша

((СК)+1)      Z

ИНК СК

2     РСС,(ск)+2-ша

((СК+2)      W

ИНК СК

3     РСС,(w)(z)-ша

L)          ((w)(z))

ИНК    (W)(Z)

3     РСС,(w)(z)+1-ша

(H)        ((W)(Z)+1)

Выход из цикла команды.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

Подпись: Рис. 4.6. Микропрограмма команды SHLD

На рис. 4.7 приведена соответствующая операционная схема для выполнения этой команды. Рассмотрим последовательность действий микропроцессорной системы с использованием рис. 4.6 и 4.7. Последовательность действий системы по времени приведена в нижней части рис. 4.6 и обозначена цифрами от 1 до 16.

В начальный момент времени 1, соответствующий машинному такту Т1  машинного цикла М1, управляющий автомат выдает управляющий сигнал, инициирующий выдачу содержимого счетчика команд в шину адреса. На операционной схеме данной передаче присвоен индекс 1.

Одновременно по шине данных с использованием сигнала синхронизации производится загрузка внешнего РСС словом состояния процессора, информирующим сис

тему о начале машинного цикла выборки команды М1. В момент 2 заканчивается за
грузка регистра слова состояния и осуществляется вход в цикл команды.

В момент 3 содержимое ячейки памяти по адресу, соответствующему содержимому счетчика команд, загружается в регистр команд (индекс 3 на операционной схеме). Дешифратор команды, принадлежащий управляющему автомату, преобразует КОП в серию управляющих сигналов (микроприказов).

Вслед за этим во временном такте 4 управляющий автомат выдает сигнал ИНК СК, под воздействием которого содержимое счетчика команд увеличивается на единицу.

После дешифрации КОП управляющий автомат классифицирует тип данной команды как команду трехбайтную и включает механизм тандемных пересылок, в результате чего в момент времени 5 управляющий автомат выдает управляющий сигнал, по

которому инкрементированное содержимое счетчика команд передается в шину адреса. Здесь начинается машинный цикл (2) – чтение из памяти (рис. 4.6).

Из выбранной ячейки памяти в момент времени 6 передается по шине данных в регистр временного хранения второй байт команды, в которой содержится адрес ячейки памяти.

В момент времени 7 осуществляется увеличение на единицу времени содержимого СК – ИНК СК. На такте 8 это увеличенное на два содержимое счетчика команд передается на шину адреса. Одновременно в регистр слова состояния загружается двойка, означающая, что будет выполняться машинный цикл типа 2 – чтение из памяти.

В такте 9 по шине данных в регистр временного хранения  передается третий байт команды. На десятом такте ИНК 10 в счетчике команд формируется адрес следующей команды, которая будет выполняться сразу вслед за текущей.

В момент 11 – это конкатенированное значение (W)(Z) передается в шину адреса, указывая на ячейку памяти, в которую должно быть помещено содержимое регистра L. Одновременно в регистр слова состояния загружается тройка, означающая, что будет выполняться машинный цикл типа 3 – запись в память.

В момент времени 12 по шине данных производится загрузка в выбранную ячейку памяти содержимое регистра L. В момент времени 13 управляющий автомат инкрементирует конкатенированное значение (W)(Z), то есть готовит адрес следующей ячейки памяти, в которую будет загружено содержимое регистра H.

В момент 14 этот адрес передается на шину адреса. В момент 15 по шине данных в ячейку с этим адресом загружается содержимое регистра H. Машинный такт 16 предназначен для выхода из цикла команды.

В микропрограмме команды SHLD, записанной на языке микрооператоров (рис. 4.6) в тактах T1 каждого машинного цикла, содержимое регистра слова состояния обозначено цифрами 1, 2, 3.