Рассмотрим процессы, происходящие в микропроцессорной системе простейшей конфигурации, состоящей только из микропроцессора и ОЗУ при выполнении относительно сложной команды, имеющей мнемонику 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 РСС, (СК)-ША |
Вход в цикл команды |
((СК)) РК |
НК СК |
((СК)+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.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.