Работа МП КР580ВМ80 и МПС синхронизируется генератором тактовых импульсов ГТИ, который вырабатывает две импульсные последовательности синхронизации с периодом повторения Т ≈ 0,4 мкс (см. рисунок 1.11). Этот период называют машин-ным тактом, тактом синхронизации. По последовательности Ф1 осуществляются выборки из ОП или ВУ, по последовательности Ф2 формируются стробы состояния.
Команды хранятся в ПЗУ в виде цифровых кодов. Адрес очередной команды задаётся управляющей программой. Код команды считывается из памяти по тактовым импуль-сам ГТИ, по ША передаётся в буферный регистр (буфер) и записывается в нём. Дешиф-ратор команд ДШК микропроцессора расшифровывает код команды и пересылает её в АЛУ для выполнения.
Данные поступают в АЛУ по ШД через буферный регистр данных (буфер), обеспе-чивающий их временное хранение. АЛУ выполняет соответствующие операции.
При исполнении команды могут потребоваться дополнительные обращения к памяти для вызова в МП дополнительных байтов команды, операндов или для записи в память числа, выдаваемого микропроцессором.
Формирователь слова состояния ФСС выдаёт на шину управления ШУ слово состо-яния процессора СС. СС полностью описывает состояние МП в каждый момент и ука-зывает, какие классы операций разрешаются , какие запрещаются, а также состояние всех прерываний.
Счётчик команд РС связан с ША и ШУ и, получив адрес очередной команды, фик-сирует начало её выполнения, после чего формирует адрес следующей команды.
УУ, входящее в состав МП, обеспечивает взаимосвязанную работу и требуемую последовательность работы элементов МП на всех этапах обработки данных.
Процессы повторяются до тех пор, пока программа не будет выполнена.
В течение командного циклаосуществляется выборка и исполнение одной команды.
Командный цикл содержит от одного до пяти машинных циклов М1, М2, М3, М4, М5. В каждом из них осуществляется одно обращение к памяти или к УВВ. Каждый машин-ный цикл содержит три, четыре или пять тактов.
Информация внутри МП пересылается по внутренним шинам данных, адреса и управления. Шины связаны с внешними устройствами через выводы ИМС и системную магистраль. Для уменьшения числа выводов ИМС шины – двунаправленные, то есть информация по ним передаётся в обе стороны поочерёдно.
Пример выполнения микропрограммы
Пусть в соответствии с фрагментом программы требуется переслать байт 10Н из ячей-ки памяти ЯП 0100Н в ЯП 0101Н. Фрагмент программы размещается в памяти, начиная с ячейки 2000Н. («Н» означает шестнадцатиричную систему счисления).
Для выполнения фрагмента сначала нужно переслать байт из ЯП в аккумулятор А, а затем из А в ЯП. Для обращения к памяти используем косвенную регистровую адреса-цию, для чего в пару регистров ВС загружаем номер ячейки 0100Н. Команда непосред-ственной загрузки пары регистров LXI ri имеет код 00 ri 001, где ri = 000.
Команда непосредственной загрузки пары регистров Н – трёхбайтовая и занимает в памяти адреса 2000Н, 2001Н, 2002Н. Первый байт содержит код операции 00 000 001. Второй байт команды содержит младший байт адреса ЯП (то есть 00Н = 0000 0000В), третий байт команды содержит старший байт адреса ЯП (то есть 01Н = 0000 1000В).
Команда пересылки байта из ЯП, номер которой записан в паре регистров ВС, в аккумулятор А – однобайтовая, имеет мнемонику LDAX В, структуру кода 00 К1 010, где К1 = 001 и код операции 00 001 010.
Таблица 1.5 – Фрагмент программы в кодовых комбинациях
Адрес
команды
в ОП
Мнемо-ника ко-манды
Кодовая
Комбинация
команды
Бай-
ты
Число
тактов
Пояснения
LXI ri
00 000 010
В1
Загрузка пары регистров
0000 0000
В2
адресом ЯП 0100Н;
0000 1000
В3
ri ← <В3> ri+1 ← <В2>
LDAX В
00 001 010
В1
А ← [(ВС)]
INX ri
00 000 011
В1
Полож. приращ. пары рег.
STAX B
00 000 010
В1
[(ВС)] ← А
Таблица 1.6 – Фрагмент программы на ассемблере (в мнемокодах)
Адрес ко-манды в ОП
Мнемоника команды
Код опе-рации
Пояснения
LXI В, 0100Н
02, 00 01Н
Загрузка пары регистров адресом ЯП
LDAX В
10 Н
Пересылка содержимого ЯП в А
INX В
03 Н
Положит. приращение пары регистров
STAX B
02Н
Пересылка содержимого А в ЯП
Команда положительного приращения содержимого пары регистров – однобайтовая, имеет мнемонику INX ri , где ri – обозначение старшего регистра из пары регистров (ri = В = 000), структуру кода 00 ri 011 и код команды 00 000 011.
Последняя команда из фрагмента программы (пересылка байта из аккумулятора в ЯП, адрес которой записан в паре регистров ВС) – однобайтовая, имеет мнемонику STAX B,
структуру кода 00 К1 010, где К1 = 000 и код операции 00 000 010.
Фрагменты программ приведены в таблицах 1.5 и 1.6.