04/09/95 05:37pm
580bm80.met
С.Т.Хвощ,Н.Н.Варлинский,Е.А.Попов
"МИКРО-процессоры и МИКРО-эвм в
системах автоматического
управления Справочник" Л.
"Машишостроение" 1987.
Изучение и исследование микропроцессора КР580ВМ80А
1.Краткие теоретические сведения
В последние годы отмечается быстрый рост выпуска микропроцессорных БИС и приборов на их основе. Это объясняется тем,что микропроцессоры (МП) дают возможность использования средств и методов вычислительной техники в любых устройствах,где реализуются процедуры сбора, обработки, передачи и отображения информации, управления процессами и объектами. Микропроцессор, по определению-это программно-управляемое устройство, непосредственно осуществляющее процесс обработки цифровой информации и управление им, построенное на одной или нескольких БИС. Микро-ЭВМ, также как и мини-ЭВМ, относятся к классу проблемно-ориентированных ЭВМ. Микро-ЭВМ создается на основе технологии БИС; по определению,это микропро- цессорная ЭВМ,состоящая из микропроцессора, полупроводниковой памяти, средств связи с периферийными устройствами. При необходимости микро-ЭВМ снабжается пультом управления и источником питания. Все составные части микро-ЭВМ объединяются общей несущей конструкцией. Микро-ЭВМ предназначены, в основном, для встраивания в аппаратуру систем в качестве элементов обработки информации. Микро-ЭВМ - многофункциональный блок,который за счет программирования органически сливается в функциональном отношении с аппаратурой, в которую встраивается
Контроллер - это устройство управления некоторым механизмом или аппаратом по жесткой программе. Примерами достаточно сложных контроллеров могут служить устройства управления магнитными лентами и дисками. До появления микро-ЭВМ контроллеры выполнялись как чисто аппаратные устройства.Однако простота и гибкость реализации в ЭВМ логических функций,а также возможность дополнительного использования вычислительных алгоритмов делают применение микро-ЭВМ в контроллерах весьма перспективны.Контроллеры,построенные на базе микро-ЭВМ, называют микро-контроллерами.
2.Микропроцессорный комплект БИС серии КР5580.
Микропроцессорный
комплект (МПК) - совокупность
микропроцессорных и других
интегральных микросхем,
совместимых по
конструктивно-технологическому
исполнению и предназначенных для
совместного применения при
построении МП, микро-ЭВМ и др.
средств выч.техники. МПК серии КР580
предназначен для построения
электронно-вычислительной
аппаратуры широкого применения,
микропроцессорных вычислительных
систем, средств дискретной
автоматики.
МПК КР580 выполнен на основе n-МОП
технологий. Уровни электрических
сигналов микросхем соответствуют
уровням ТТЛ схем серии K155 (K555). С
комплектом совместимы микросхемы
серии К589, выполненные по
технологии ТТШЛ.
Основные параметры
микропроцессора КР580ВМ80А приведены
в табл.1.
Таблица 1. Основные параметры БИС КР580ВМ80А
Разрядность данных(бит) |
8 |
Число команд |
78 |
Разрядность команд(байт) |
1,2,3 |
Макс. об'ем адресуемой памяти(Кбайт) |
64 |
Макс. число адресуемых внеш. устройств ввода-вывода |
256 |
Число уровней прерывания |
8 |
Тактовая частота (МГц) |
1.7 - 2.5 |
Потребляемая мощность(Вт) |
1.5 |
Напряжение питания, В |
-5 +5 +12 |
Рис.1 Обозначение на схемах БИС КР580ВМ80А
2.1.Микропроцессор КР580ИК80А
Микросхема КР580ВМ80А представляет собой однокристальный восьмиразрядный микропроцессор с фиксированной системой команд. Предназначен для применения в устройствах обработки данных и схемах управления в качестве центрального процессорного элемента. Микропроцессор конструктивно помещен в пластиковый корпус с 40 выводами.
2.1.1.Функциональная организация микропроцессора КР580ВМ80А
Микропроцессор предназначен для работы с байтовой организацией памяти и имеет следующие форматы представления данных и команд. Формат обрабатываемых данных (операндов) представлен на рисунке 2.
РИС.2 Формат данных
Формат данных интерпретировать как :
целое положительное число без знака в прямом коде в диапазоне от 0 до 255 (в десятичной системе исчисления);
число со знаком в дополнительном коде. Диапозон изменения чисел от +127 до
128 в десятичной системе исчисления;
двухразрядное двоично-десятичное число без знака в диапазоне от 0 до 99 в десятич. системе исчисления;
логический байт данных;
допускается представление чисел в двухбайтовом формате в прямом или дополнительном коде. Диапазон изменения чисел при этом от +32767 до -32786 в десятичной системе исчисления.
Арифметические операции выполняются по правилам двоичной арифметики над числами в дополнительном коде. При обработке двоично-десятичных чисел используется преобразование в двоичный код. Логические операции выполняются по правилам двоичной логики. Результат операции представляется числом в соответствующем формате и байтом признаков результата (флажков) (рис.3).
Рис.3. Байт признаков (флажки)
Пять признаков (остальные три разряда фиксированы) устанавливаются в зависимости от результата выполнения операции:
Бит знака S устанавливается в соответствии со старшим битом D7 результата.
Бит нуля Z устанавливается в "I", если результат равен 0; в противном случае сбрасывается в "0".
Бит четности Р устанавливается в "I", если число единиц в результате четно; в противном случае сбрасывается в "0".
Бит переноса С устанавливается в "I", если в результате выполнения операции сложения возникает перенос из старшего разряда или при вычитании перенос не возникает (происходит заем); в противном случае обнуляется.
Бит
вспомогат. переноса АС
устанавливается в "I" при
появлении переноса из третьего
в четвертый разряд результата
при выполнении сложения и
вычитания.
Используются при обработке
двоично-десятичных чисел.
Форматы
команд зависят от типа команд и
способа адресации. Код операции
представляется одним байтом. В
случае прямой адресации к памяти
используется адрес длиной 16 бит
(т.е. макс. емкость памяти 65536
байтов).
Длина команды может быть 1,2 или 3
байта.Многобайтовые команды
хранятся в соседних ячейках памяти
и адресуются по первому байту,
младший байт распологается по
меньшему адресу. Формат команды
определяется кодом операции.
Адресация памяти в микропроцессоре
КР580ВМ80А задается в коде операции и
использует следующие способы.
Прямая: используется для адресации однобайтовых слов данных и двухбайтовых адресов, содержащихся в памяти или внешнем устройстве.Прямой адрес указывается во втором или во втором и третьем байтах команды.
Прямая регистровая: используется для адресации одно- и двухбайтовых слов,содержащихся во внутр. регистрах процессора, и указывается в байте кода операции.
Косвенная регистровая: используется для адресации байтов данных в памяти. Косвенный адрес содержится в паре регистров процессора (адресных указателях), указываемых в байте кода операции.
Непосредственная: используется в двух- или трехбайтовым форматом команд. Байт2 (или байты 2 и 3) непосредственно содержат данные (операнд или адрес, заносимый в регистр).
Cтековая: используется для косвенной адресации двухбайтовых слов данных или адресов, находящихся в области памяти, отведенный под стек. Адрес определяется по содержимому регистра указателя стека (SP).
2.1.2. Структурная организация микропроцессора КР580ИК80А.
Микропроцессор КР580ИК80А реализован на основе общей внутр. шины данных и включает следующие функциональные узлы:
блок регистров общего назначения с адресной логикой;
блок арифметико-логического устройства (АЛУ);
блок регистра команд и управления;
двунаправленную буферизованную шину данных;
блок синхронизации и управления.
Блок
регистров общего назначения
предназначен для оперативного
хранения информации, участвующей в
процессе выполнения программы. Он
представляет собой динамическую
память с произвольным доступом,
организованную в виде шести
16-битовых регистров. Три регистра
могут использоваться при
выполнения операций как шесть
отдельных 8-битовых
программно-доступных регистров
B,C,D,E,H,L, или как 16-би- товые
программно-доступные пары BC,DE.HL.
Пара 8-битовых регистров WZ
используется для временного
хранения второго и третьего байтов
команд перехода,передаваемых с
внутр. шины данных (ВШД) в
программный счетчик (РС). К паре WZ
программист обращаться не может.
16-битовый программный счетчик (РС) служит для хранения адреса текущей команды программы. Его содержимое автоматически инкрементируется (увеличивается) после выборки каждого байта команды схемой адресной логики. Загрузка и выдача содержимого РС осуществляется побайтно через мультиплексоры (МПЛ) и внутр.шину данных.
16-битовый
указатель стека (SP) хранит адрес
ячейки области оператиной памяти,
отведенной под стек, к которой было
последнее обращение. Перед
занесением слова в стек содержимое
указателя стека уменьшается
(декркментируется) на 1. После
считывания слова из стека
содержимое SP инкрементируется на 1.
Для выполнения
инкрементации-декрементации в
адресной логике предусмотрена
схема инкрементации-декркментации
(СИД).
Содержимое SP может быть прибавлено
к содержимому регистровой пары HL,
для чего имеется возможность
побайтовой пересылки содержимого
через мультиплексоры МПЛ на внутр.
шину данных.
Выбор регистра, участвующего в операции, осуществляется схемой выбора регистра (СВР). Адресная логика обеспечивает выдачу на адресную шину адресов данных и команд. Она включает в себя буферный регистр адреса (БРА), схему инкрементации-декрементации (СИД) и адресный буфер. Регистр БРА принимает и хранит адрес с любого 16-битового регистра. Его выход связан со входами схемы СИД и адресного буфера.
Схема СИД - схема быстрого переноса/заема. С ее помощью содержимое БРА может быть передано с изменением на 1, или без изменения через 16-разрядный мультиплексор на вход любого 16-битового регистра (пары) BC,DE,HL,SP или РС.
Адресный буфер представляет собой 16 выходных формирователей с тремя состояниями и предназначен для выдачи адреса на выводы адресной шины А15...A0. Третье (отключающее) состояние позволяет подключать микропроцессор непосредственно к общей системной адресной шине микро-ЭВМ.
Блок арифметико-логического устройства (АЛУ) предназначен для выполнения арифметических и логических операций над числами в параллельном 8-разрядном двоичном коде, а также операций циклического сдвига. При обработке информации в АЛУ используются регистры:
ВР (0:7) - регистры временного хранения;
А (0:7) - аккумулятор;
ВА (0:7) - регистр аккумулятора;
F (0:4) - регистр флажков.
При выполнении операций один из операндов пересылается из аккумулятора в регистр ВА; второй операнд поступает из памяти или блока регистров через ВШД в регистр ВР, а затем в АЛУ в прямом или обратном коде в зависимости от операции. Результат операции передается через ВШД в аккумулятор или в регистр общего назначения, а прзнаки результата записываются в регистр флажков F (нуль,перенос, знак,четность,вспомогат.перенос), обеспечивая возможность переходов в программе.
Cхема десятичной коррекции (СДК) предназначена для преобразования двоичного кода в двоично-десятичный при обработке двоично-десятичных чисел.
Блок регистра команд и управления содержит регистр команд (РК), схемы дешифрации команд (ДШК) и шифрации машинных циклов (ШМЦ). РК хранит первый байт кода операции и после дешифрации используется для формирования сигналов управления блоком регистров, АЛУ с регистрами и буфером данных (БД),реализующих микропрограммы вы полнения команд.
Двунаправленная шина данных предназаначена для организации связи между отдельными блоками микропроцессора и для связи с др. микросхемами и микро-ЭВМ. Она включает в себя внутр.шину данных ВШД и буфер данных (БД), соединенный с внешней ши ной данных Д7...Д0. Двунаправленный с тремя состояниями БД (0:7) состоит из буферного регистра и формирователей. Предназначен для развязки внутр.и внешней шин данных (в процессе ввода или выполнения операций, не связанных с пересылкой данных, БД отключается).
Узел
управления и синхронизации (УУС)
предназначен для синхронизации и
управле ния работой процессора.
Синхронизация:
R (установка) - перевод процессора в исходное состояние. Выполнение программы начинается с нулевого адреса;
SYNC - cигнал синхронизации, определяющий начало каждого машинного цикла команды;
F1, F2 - входы двух неперекрывающихся последовательностей синхросигналов.
Управление ожиданием:
WAIT (ожидание) - сигнал, что процессор ожидает,когда внешнее устройство или память будут готовы к обмену;
RDY (готовность) - входной сигнал, указывающий, что внешнее устройство или готовы к обмену. Вместе с сигналом WAIT позволяет синхронизировать обмен с устройствами низкого быстродействия или организовать пошаговый, командный режим работы (при отладке) и останов по требуемому адресу.
Управление шинами:
WR - выход сигнала низкого активного уровня, указывающего, что микропроцессор выдал данные на шину Д7...Д0. Используется для управления записью информации в па мять или во внешнее устройство;
DBIN - сигнал разрешения приема информации на шину данных Д7...Д0 из памяти или внешних устройств.
Управление прерываниями:
INT - входной сигнал запроса прерывания работы процессора, поступающий от внешних устройств;
INTE - выходной сигнал разрешения прерывания высокого уровня, указывающий, что процессор готов к обмену (может принять запрос прерывания). После перехода к обслуживанию прерывания на выходе устанавливается сигнал низкого уровня и запросы прерывания не воспринимаются.
Управление прямым доступом к памяти (захватом):
HLD - входной сигнал запроса на захват шин Д7...Д0, А15...А0 со стороны внешних устройств. Процессор переходит в состояние "ЗАХВАТ", и системная шина может использоваться внешними устройствами;
HLDA - выходной сигнал подтверждения захвата шин. Является признаком допуска внешнего устройства к шинам данных и адреса системы.
2.1.3.Система команд микропроцессора КР580ВМ80А
В микропроцессоре КР580ИК80А программно-доступными являются 8-битовые регистры A,B,C,D,E,H,L; 16-битовые - слово состояния PSW (регистры А и F), пары регистров B,D,H, обозначаемые по первому регистру пары BC,DE,HL соответственно, указатель стека SP и программный счетчик РС, а также отдельные признаки рeгистра F (см.рис.5).
Система команд микропроцессора содержит 78 команд и может быть разбита на следующие группы:
группа команд пересылки, осуществляющих передачу информации между регистрами (11 команд);
группа арифметических команд (14 команд);
группа логических команд (15 команд);
группа команд передачи управления (29 команд);
группа команд работы со стеком, ввода-вывода и управления регистрами процессора (9 команд);
2.1.4.Выполнение команд в микропроцессоре КР580ВМ80А.
Каждая
команда микропроцессора занимает
командный цикл, состоящий из цикла
выборки команды и цикла ее
исполнения. Длительность цикла
выборки команды различна для
различных команд и зависит от длины
команды (воз можны от одного трех
обращений к памяти )
С другой стороны, длительность
цикла выполнения команды зависит
от типа команды и способа адресации
операндов. Например,для выполнения
команды ADD r требуется только одно
обращение к памяти, за самой
командой, а операнд находится в
регистре r процессора. Для
выполнения команды ADD M требуется
два обращения к памяти: за командой
и за операндом, адресуемым парой HL.
Таким образом,
длительность командного цикла
определяется числом обращений к
памяти или внешнему устройству.
Интервал времени на одно обращение
к памяти или внешнему устройству
определяется как машинный цикл М.
Число машинных циклов в команде
изменяется от одного для
однобайтовых команд с регистровой
адресацией до пяти для
трехбайтовых сложных команд.
Машинный цикл,
в свою очередь, разбивается на
машинные такты Т, в каждом из
которых выполняется элементарное
действие в процессоре -
микрооперация. Число тактов в цикле
определяется кодом команды и
изменяется от трех до пяти.
Длительность такта задается
периодом синхроимпульсов F1,
формируемых внешними цепями.
Для синхронизации процессора с памятью и внешними устройствами, имеющими меньшее быстродействие, для организации прямого доступа к памяти и останова процессора предусмотрены три специальных состояния: ОЖИДАНИЕ,ЗАХВАТ и ОСТАНОВ, длительность ко торых произвольная, но всегда кратная Т.
Последовательность действий в каждом машинном цикле определяет его тип. Имеется 10 машинных циклов:
ВЫБОРКА - выборка из памяти байта кода операции команды;
ЧТЕНИЕ ПАМЯТИ - выборка второго и третьего байтов команды и выборка операнда с косвенной адресацией;
ЗАПИСЬ В ПАМЯТЬ - запись операндов или сохранение адресов при выполнении команд пересылок;
ЧТЕНИЕ СТЕКА - обращение к стеку;
ЗАПИСЬ В СТЕК - обращение к стеку;
ВВОД - выполнение команды ВВ;
ВЫВОД - выполнение команды ВВ;
ПРЕРЫВАНИЕ - организация прерывания и останов процессора;
ОСТАНОВ - при выполнении команды останова;
ПРЕРЫВАНИЕ ПРИ ОСТАНОВЕ - Если прерывание возникло после выполнения команды "останов".
В каждой команде циклы появляются в той или иной последовательности, например:
ADD r M1(выборка)
ADD M M1(выборка) - М2(чтение памяти)
IN <port> М1(выборка) - М2(чтение памяти) - М3(ввод)
САLL <адрес> M1(выборка) - М2(чтение памяти) - М3(чтение памяти) -М4(запись в стек) - М5(запись в стек).
Каждый машинный цикл процессора идентифицируется байтом состояния, который выдается на шину данных в начале каждого машинного цикла и сопровождается выдачей сигнала синхронизации машинных циклов на вывод SYNC. Этот байт несет информацию о последующих действиях процессора и может быть использован для расширения функций управления в микропроцессорной системе. Информация о состоянии распределена в байте состояния в соответствии с табл.2, а распределение байтов состояния в зависимости от типа машинного цикла представлена в табл.3.
Таблица 2. Информация о состоянии микропроцессора КР580ИК80А
Разряд шины данных |
Сигнал состояния |
Описание |
D0 |
Подтверждение прерывания (INTA) |
=1 указывает,что процессор готов вести отработку запроса прерывания |
D1 |
Запись - вывод (WO) |
=0 указывает,что выполняются циклы ЗАПИСЬ В ПАМЯТЬ или ВЫВОД. Если ЗВ=1,выполняются ЧТЕНИЕ ПАМЯТИ или ВВОД |
D2 |
CТЕК (STACK) |
=1 указывает,что на адресной шине находится содержимое указателя стека,т.е. адрес верхней ячейки стека |
D3 |
Подтверждение останова (HLTA) |
=1 указывает,что процессор находится в состоянии ОСТАНОВ (выполняется команда HALT) |
D4 |
Вывод (OUTPUT) |
=1 указывает,что на адресной шинe находится адрес внешнего устройства,на которое осуществляется вывод информации(цикл ВЫВОД) |
D5 |
M1 |
=1 указывает,что выполняется 1-й цикл команды (цикл ВЫБОРКА) |
D6 |
ВВОД (INPUT) |
=1 указывает,что на адресной шине находится адрес внеш. устройства,с которого осуществляется ввод информации (цикл ВВОД) |
D7 |
Чтение памяти (MEMR) |
=1 указывает что, шина данных будет использоваться для чтения данных из памяти |
Таблица 3 Распределение байтов состояния по типам машинных циклов микропроцессора КР580ВМ80А
Разряд шины данных |
Сигнал состояния |
Тип машинного цикла |
|||||||||
выборка |
Чтение памяти |
Запись в память |
Чтение стека |
Запись в стек |
ввод |
вывод |
прерывание |
останов |
Прерывание при останове |
||
D0 |
INTA |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
D1 |
WR |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
D2 |
STACK |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
D3 |
HLTA |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
D4 |
OUTPUT |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
D5 |
M1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
D6 |
INPUT |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
D7 |
MEMR |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
Табл. 4. Распределение действий по тактам процессора КР580ВМ80А.
Такт |
Действие |
Т1 |
Адрес памяти или УВВ выдается на адресную шину (A15...A0). БС выдается на шину данных (D7...D0). |
T2 |
Анализируются сигналы на входах RDY и HLD, а также контролируется команда остонова HLT. |
Tw |
Если сигнал на входе RDY имеет низкий уровень, или на входе ЗХ высокий уровень, или выполняется команда HLT, процессор переходит в одно из состояний: ОЖИДАНИЕ, ЗАХВАТ или ОСТАНОB. |
Т3 |
С шины данных в процессор вводится байт команды (в цикле ВЫБОРКА) байт данных (в циклах ЧТЕНИЕ ПАМЯТИ,ЧТЕНИЕ СТЕКА,ВВОД) или команда прерывания RST (цикл ПРЕРЫВАНИЕ).Или из процессора выводится байт данных (циклы ЗАПИСЬ В ПАМЯТЬ,ЗАПИСЬ В СТЕК,ВЫВОД) на шину данных. |
Т4,Т5 |
Выполняется операция.Такты Т4,Т5 или только Т5 могут не использоваться при выполнении команды. |
В каждом машинном цикле выполняется обращение к памяти. Поэтому в первом машинном такте Т1 на адресную шину выдается адрес с программного счетчика РС или указателя SP. Одновременно на шину данных выдается байт состояния (БС) и формируется сигнал синхронизации. На рис. 5 представлена временная диаграмма работы центрального процессорного элемента (ЦПЭ) КР580ВМ80А в цикле выборки. Если память или внешнее устройство не готовы к обмену (RDY=0), или есть запрос прямого доступа к памяти (ПДП), т.е. HLD=1, или выполняется команда останова, то обмен данными осуществляться не может. Процессор переходит в состояние ОЖИДАНИЕ, ЗАХВАТ или ОСТАНОВ, т.е. выполняет такты ожидания Tw, число которых определяется внешними признаками. Анализ этой информации осуществляется в такте Т2. В этом же такте содержимое РС увеличивается на 1 для адресации следующего бита.
Рис.5 Временная диаграмма работы ЦПЭ КР580ВМ80А в ЦИКЛЕ ВЫБОРКИ.
Если особых случаев нет, или есть внешний сигнал из состояния ожидания, то процессор переходит к такту Т3, в котором может производиться обращение к памяти, стеку или устройству ввода/вывода (УВВ). В результате происходит передача через шину данных байта команды,адреса или данных. При этом на выводах DBIN или WR формируются соответствующие управляющие сигналы.
Если требуется обработка операндов, то процессор переходит к тактам Т4,Т5 (не все машинные циклы используют эти такты - зависит от типа команды и типа машин ного цикла).
В команде ADD r (сложение содержимого регистра r с аккумулятором) в единственном цикле ВЫБОРКА выполняется четыре такта (см.рис.6). Длительность такта определяется периодом синхроимпульсов F1, а внутренние микрооперации инициируются импульсами F2. Начало машинного цикла отмечается появлением сигнала синхронизации SYNC, длительность которого равна периоду импульсов F2. В течение сигнала SYNC выдается байт состояния процессора.
В такте Т1 адрес команды загружается на адресную шину из программного счетчика РС и сохраняется на ней до четвертого такта. Выдав адрес на адресную шину процессор в такте Т2 увеличевает содержимое РС на единицу и проверяет сигналы состояния ОЖИДАНИЕ, ЗАХВАТ, ОСТАНОВ. Если, например, память не готова к обмену (на линии RDY низкий уровень), процессор переходит в состояние Тw и выдает сигнал высокого уровня на линию WAIT, подтверждающий запрос памяти (см.рис.5).
Процессор остается в состоянии ожидания до тех пор, пока сигнал RDY не переходит в состояние высокого уровня. Следующий импульс F1 переведет линию WAIT в состояние низкого потенциала, процессор перейдет в состояние Т3. В такте Т3 извлекается команда в регистр команд РК и, в соответствии с кодом операции, в такте Т4 осуществляется подготовка операндов к выполнению операции сложения: операнд из регистра r пересылается по внутренней шине в регистр ВР, а операнд из аккумулятора А пересылается в регистр ВА. Далее в течение действия такта Т2 следующей команды, операнды складываются в АЛУ, результат сохраняется в аккумуляторе А. Совмещение тактов позволяет повысить производительность процессора.
В команде ADD M (сложение содержимого ячейки памяти с содержимым аккумулятора) цикл ВЫБОРКА (такты Т1...Т4) выполняется почти аналогично, а цикл М2 используется для выполнения операции сложения (рис.7, 8). Для выборки операнда из памяти в такте Т1 на адресную шину выдается его адрес из пары HL, по которому в такте Т3 операнд выбирается в регистр ВР. Собственно сложение выполняется в такте T2 следующей команды.
Рис. 7. Временная диаграмма выполнения команды ADD M.
Рис. 8 Выполнение команда ADD M.
При выполнении команд ввода/вывода (см.рис.9),являющихся двухбайтовыми, в первом машинном цикле на адресную шину выдается содержимое РС, которое затем автоматически инкрементируется на единицу. Первый байт (код операции) выбирается в регистр команд. Во втором машинном цикле по адресу, указанному в программном счетчике РС, читается второй байт команды (номер порта ввода/вывода), который размещается в регистрах W,Z. В третьем машинном цикле адрес порта ввода-вывода (номер ВУ) выдается на адресную шину и осуществляется выбор порта. При этом через выбранный порт осуществляется обмен информацией между аккумулятором и шиной данных.
Рис. 9. Выполнение команды IN port.
Рис. 10. Реакция на сигнал "Запрос прерывания".
Логика работы процессора построена так,что в последнем такте последнего машинного цикла любой команды проверяется наличие запроса прерывания. Если запрос на прерывания имеется, то ЦП выполняет цикл М1 специального типа (см.рис.10) при условии, что ранее был установлен триггер "Разрешение прерывания" (INTE). По тактовому импульсу F2 устанавливается внутренний триггер "Прерывание" (ПР). В такте Т1 цикла прерывания М1 содержимое счетчика команд не увеличивается на единицу, а сохраняется. Выдается сигнал подтверждения прерывания (INTA). В такте Т3 устройство, запросившее прерывание, выдает на шину данных код однобайтовой команды RST (или любой другой), которая выполняется.В циклах М2 и М3 (при получении команды RST n), следующих за циклом прерывания, осуществляется запись в стек по адресам указателя стека(SP-1,SP-2) первого и второго байтов содержимого счетчика команд (PC).
Режим прямого
доступа к памяти (ПДП) используется
для непосредственного обмена
информацией между ЗУ и внешним
устройством (ВУ). При этом от
внешнего устройства на МП
поступает сигнал захвата шин (HLD)
(см.рис.11,12). Микропроцессор
устанавливает свои выходы адресов
и данных в высокоимпедансное
состояние и вырабатывает сигнал
подтверждения захвата (HLDA),
завершает выполнение внутренних
операций текущего цикла и
переходит в состояние ожидания
захвата Т ож.зх (Tw).
Выработка сигнала ПЗХ
осуществляется по разному, в
зависимости от типа машинного
цикла, выполняемого во время
поступления сигнала ЗХ. Под
действием сигнала ЗХ при наличии
сигнала на входе RDY ("Готов"),
указывающего готовность внешнего
устройства, по импульсу F2
устанавливается внутр. триггер
захвата, и по фронту следующего
импульса F1 устанавливается
в"I" выход HLDA. При выполнении
циклов чтения (ввода) процессор
подтверждает захват в начале такта
Т3 (по окончании чтения).
В циклах записи (вывода)
подтверждение захвата происходит в
такте, следующем за Т3 (по окончании
чтения). В циклах записи (вывода)
подтверждение захвата происходит в
такте, следующем за Т3 (по окончании
записи). Шины процессора
отключаются по фронту импульса F2.
Если процессор подтвердил запрос
ПДП в такте Т3 цикла с большим
числом тактов, то он продолжает
выполнение цикла до конца. Это
позволяет частично совместить
обработку информации в процессоре
с передачей по каналу ПДП.
По окончании асинхронного сигнала на входе ЗХ, следующим импульсом F2 сбрасывается триггер захвата и сигнал на выходе ПЗХ устанавливается в состояние низкого потенциала по переднему фронту следующего импульса F1. Процессор переходит к выполнению следующего машинного цикла.
Если выполняется последовательность захвата в режиме ПДП, то запросы прерывания не воспринимаются процессором до окончания обмена. При обработке прерываний запрос захвата не воспрнимается процессором до окончания выполнения только первого цикла - цикла чтения команды RST. Завершение последовательности прерывания осуществляется по окончании запрошенного режима ПДП.
При выполнении команды останова (рис.13) процессор переходит в состояние "Оcтанов" после завершения такта Т2 второго машинного цикла. Состояние останова подтверждается установкой соответствующего бита в байте состояния, выдаваемом также в такте Т2. Из состояния останов процессор может быть выведен подачей сигнала на линию "Cброс", подачей сигнала на вход HLD или подачей сигнала прерывания (при разрешающем сигнале на выходе "Разрешение прерывания"). Заметим, что по окончании сигнала HLD процессор вновь входит в состояние "Останов" по переднему фронту F1. Установка же триггера разрешения прерывания осуществляется путем выполнения команды EI.
Рис.11. Последовательность захвата в цикле "ЧТЕНИЕ".
Рис.12. Последовательность захвата в цикле "ЗАПИСЬ".
Рис.13. Выполнение команды "останов".
2.1.5 Включение процессора
Включение
необходимо осуществлять вместе с
подачей сигнала на линию
"Сброс". Длительность этого
сигнала должна быть не менее трех
периодов синхроимпульсов.
Программный счетчик при этом
устанавливается в нулевое
состояние и, следовательно,
процессор начинает выполнение
программы с нулевой ячейки памяти.
По первой ко манде JMP может быть
осуществлен переход к программе,
расположенной в произвольном месте
памяти.
Если запуск программы в системе
необходимо осуществлять по
некоторому стартовому импульсу, в
первых двух ячейках размещают
команды EI HLT. При этом процессор
переходит в состояние останова, а с
приходом сигнала прерывания
(ручного или автоматического)
выходит из этого состояния.
Отметим также, что содержимое рабочих регистров, регистра флажков остается не определенным, пока программа не установит их. Это необходимо иметь в виду для исключения возможных ошибок.
Система команд микропроцессора (файл в формате DOS)