Выполнение команд в МП КР580ВМ80А (i8080)
Каждая команда в МП выполняется на протяжении командного цикла. Командный цикл состоит из цикла выборки команды и цикла выполнения команды (рис. 1.3).
Рис. 1.3 Пример командного цикла 8-разрядного МП
Продолжительность цикла выборки команды зависит от формата команды (количества байт в машинном коде команды). Команды занимают от одного до трех байт в программной памяти. Многобайтные команды хранятся в соседних ячейках памяти. Для выборки однобайтной команды (например, сложения содержимого аккумулятора А и регистра В-ADD B) необходимо одно обращение к памяти, для выборки трехбайтной команды (например, вызова подпрограммы по адресу ADDR – CALL ADDR) – три обращения. Продолжительность цикла исполнения команды зависит от способа адресации операндов. Так, при выполнении команд с регистровой адресацией не нужно дополнительное обращение к памяти для чтения операнда, в командах с косвенной адресацией такое обращение необходимо. Поэтому продолжительность командного цикла в МП i8080 различна для различных команд и определяется количеством обращений к памяти или к внешнему устройству.
Интервал, на протяжении которого осуществляется одно обращение процессора к памяти или к внешнему устройству, определяется как машинный цикл М. Итак, командный цикл процессора состоит из некоторого количества машинных циклов (в зависимости от типа команды). В приведенном на рисунке 1.3 примере цикл выборки состоит из двух машинных циклов (М1 и М2), а цикл исполнения – из одного машинного цикла (М3). В команде может быть от одного (для однобайтных команд с регистровой адресацией) до пяти (для трехбайтных сложных команд) машинных циклов.
Рис. 1.4 Последовательности импульсов
Машинный цикл, в свою очередь, разбивается на некоторое количество машинных тактов Т, на протяжении каждого из которых выполняется элементарное действие (микрооперация) в процессоре. Количество тактов в цикле определяется кодом команды и лежит в пределах от 3 до 5. Продолжительность такта задается периодом импульсов синхронизации и определяется как интервал времени между фронтами двух соседних импульсов последовательности F1 (рис. 1.4). Таким образом, командный цикл МП i8080 состоит из некоторого количества машинных циклов, а каждый машинный цикл – из определенного количества тактов, на протяжении которых выполняются те или иные элементарные действия в процессоре.
В зависимости от действий, выполняемых МП, различают следующие типы машинных циклов:
· ВЫБОРКА (чтение первого байта команды);
· ЧТЕНИЕ ПАМЯТИ (чтение второго и третьего байтов команды, чтение операнда);
· ЗАПИСЬ В ПАМЯТЬ;
· ЧТЕНИЕ СТЕКА;
· ЗАПИСЬ В СТЕК;
· ВВОД данных из внешнего устройства;
· ВЫВОД данных на внешнее устройство;
· ПРЕРЫВАНИЕ;
· ОСТАНОВ;
· ПРЕРЫВАНИЕ ПРИ ОСТАНОВЕ.
Каждый машинный цикл процессора идентифицируется байтом, называемым байтом состояния. Байт состояния выдается на шину данных в начале каждого машинного цикла и сопровождается одновременной выдачей сигнала SYNC на одноименный контакт БИС МП. Байт состояния несет информацию о последующих действиях процессора. Его можно запомнить по сигналу SYNC и сформировать такие управляющие сигналы, которые не удалось вывести в явном виде на контакты БИС МП из-за ограниченного количества контактов микросхемы.
Временная диаграмма машинного цикла ВЫБОРКА (ЧТЕНИЕ ПАМЯТИ) для процессора i8080 показана на рисунке 1.5, а цикл ЗАПИСЬ В ПАМЯТЬ – на рисунке 1.6 Такты отсчитываются по передним фронтам последовательности F1, а микрооперации в каждом такте определяются передним фронтом последовательности F2. При тактовой частоте 2 МГц продолжительность такта равна 0,5 мкс.
Сигналы на линиях шин А15 – А0 (D7 – D0) изображены на рисунке 1.5 на одной временной диаграмме в виде линий L- и H-уровень одновременно. Таким образом на диаграмме указан лишь тип информации на шине, например – присутствие на ней адреса или данных. Пунктирной линией обозначено высокоимпедансное состояние линий шин (z-состояние).
В первом машинном такте Т1 на шину адреса (линии А15 – А0) выдается адрес – содержимое указателя команд IP, если выполняется цикл ВЫБОРКА, или содержимое регистра-указателя адреса – если выполняется цикл ЧТЕНИЕ ПАМЯТИ. Вместе с тем на шину данных (линии D7 – D0) выдается байт состояния, а также формируется сигнал SYNC на одноименном выводе БИС МП.
Во втором такте Т2 заканчивается поступление байта состояния и сигнала SYNC, продолжительность которых равняется одному такту. В машинном цикле ВЫБОРКА содержимое IP увеличивается для адресации следующего байта команды или следующей команды. В этом же такте устройство управления МП производит анализ сигналов на входах READY и HOLD, а также контроль выполнения команды останова HLT. Если память или внешнее устройство не готовы к обмену (READY=0) вследствие того, что поступил запрос ПДП (HOLD=1) или выполняется команда останова HLT, то обмен данными осуществляться не может, и процессор переходит в один из режимов – ожидание, захват шин или останова. В этих режимах осуществляется ожидание сигнала на протяжении нескольких тактов ожидания Ти, количество которых определяется внешними сигналами. На рисунке 1.5 в такте Т2 сигнал READY равняется логическому нулю, а в такте Ти – логической единице.
В такте Т3 в зависимости от типа машинного цикла осуществляется обращение к памяти, стеку или внешнему устройству. В результате в МП вводится (см. рис.1.5) или из него выводится (см. рис. 1.6) байт команды, адреса или данных. В зависимости от типа команды машинный цикл может содержать такты Т4 и Т5 (например, если для выполнения команды нужна обработка операндов). В последнем такте команды (Т3, Т4 или Т5) анализируется наличие сигнала запроса прерывания INT. Если прерывание разрешено, то процессор переходит к машинному циклу ПРЕРЫВАНИЕ.
Рис. 1.5 Цикл ВЫБОРКА (ЧТЕНИЕ ПАМЯТИ)
Рис. 1.6 Цикл ЗАПИСЬ В ПАМЯТЬ
Рис.1.7 Схема индикации
На рисунке 1.7 приведена схема индикации, являющаяся портом ввода, который загружается данными из аккумулятора по команде OUT.
Рис 1.8 Временная диаграмма работы порта вывода.
Рис. 1.9 Временная диаграмма работы порта ввода.
Схема индикации микроЭВМ подключается к линиям DB0-DB7 шины данных, линиям АВ0-АВ7 шины адреса и линиям IN и OUT шины управления. Схема индикации выполнена на базе трех 8-разрядных регистров (микросхемы D16-D21). Каждый из этих регистров выполнен из двух микросхем К155ТМ7. Эта микросхема представляет собой четыре D-триггера с прямыми и инверсными выходами. Входы триггеров подключены к линиям шины данных. Светодиоды подключены к инверсным выходам триггеров, поэтому они зажигаются, если в соответствующий триггер записывается 1, и гаснут, если записывается 0.
Микросхема D24 вместе с микросхемой D25 составляют схему дешифрации адреса для выбора внешних устройств ввода и вывода.
При выполнении одной из команд OUT, во время ее третьего цикла на шинах данных, адреса и управления вырабатываются сигналы, изображенные на рисунке 1.8. При этом вырабатывается сигнал на соответствующем выходе дешифратора D24. Сигнал с выхода дешифратора подается вместе с сигналом OUT на входы микросхемы D26 и формирует на ее выходе положительный импульс. Этот импульс, поступая на входы синхронизации одного из регистров, своим фронтом (переход из 0 в 1) переписывает код с шины данных в триггеры, а своим срезом фиксирует его там. Таким образом, 8 бит кода, содержащегося в аккумуляторе перед выполнением команды OUT, высвечиваются на индикаторах одного из регистров.
Временная диаграмма работы порта ввода приведена на рисунке 1.9.
Дата добавления: 2016-05-11; просмотров: 5373;