АС – признак полупереноса или вспомогательный перенос. Фиксирует при сложении перенос из младшей тетрады в старшую.
АС = 1, если перенос был; АС = 0, если переноса не было.
Р – признак четности или паритет. Определяет, четное или нечетное число единиц в результате.
Р = 1, если число единиц в результате четное; Р = 0, если число единиц в результате нечетное.
С – признак переноса. Фиксирует перенос из старшего разряда.
С = 1, если перенос был; С = 0, если переноса не было.
Ниже приводятся значения входов и выходов микропроцессора.
А8 – А15 – адресная шина. Старший байт адреса памяти или байт адреса ввода-вывода.
Д0 – Д7 – мультиплексная шина адреса/данных. Младший байт адреса памяти или адреса ввода-вывода появляются на этой шине в течение первого такта машинного цикла. В течение второго и третьего тактов она становится шиной данных.
ALE (выход) – разрешение фиксации адреса.
S0,S1,IO/M (выход) – состояние машинного цикла.
IO/M |
S0 |
S1 |
состояние |
0 0 1 1 0 1 * * * |
0 1 0 1 1 1 0 Х Х |
1 0 1 0 1 1 0 Х Х |
Запись в память Чтение из памяти Запись при вводе-выводе Чтение при вводе выводе Выборка кода операции Подтверждение прерывания Останов Захват Сброс |
* - третье состояние (высокий импеданс)
Х – значение безразлично.
Сигналы S0 , S1 , IO/M устанавливаются в начале машинного цикла и остаются неизменными в течение всего цикла.
R D (выход) – управление чтением. Низкий уровень сигнала указывает, что должно быть произведено чтение из выбранной ячейки или из устройства ввода-вывода.
W R (выход) – управление записью. Низкий уровень сигнала указывает, что информация с шины данных должна быть записана в выбранную ячейку или устройство ввода-вывода.
READY (вход). Если сигнал READI имеет высокий уровень в течение цикла чтения или записи, это указывает на то, что память или внешнее устройство готово пересылать или получать информацию.
HOLD (вход). Сигнал HOLD (Захват) указывает, что другие устройства запрашивают использование шины адреса или шины данных. Центральный процессор, получив запрос захвата, откажется от использования этой шины, как только завершится текущая операция передачи информации по этой шине.
Передача адреса Аi из РС на шину адреса
тельности управл. сигналов
Признак «Чтение памяти» от CU на шину управления
в АЛУ
Чтение Коп в IR;
РС = РС + 1
Дешифрация Коп и передача его в CU
Команда однобайтная?
конец
i = i+ 1
Выборка 2-го и 3-го байтов и запись их в регистры W ,Z
Программа выполнена?
А
А
В
нет нет да да нет нет
рис.9. Алгоритм выполнения типовой команды
Функционирование МП определяется исполняемыми командами.
Командный цикл – это время, необходимое для считывания из памяти и выполнения очередной команды. В зависимости от типа команды командный цикл может состоять из нескольких машинных циклов.
Машинный цикл (МЦ) – это время, в течение которого выполняется одна или несколько микроопераций.
Машинный цикл состоит из нескольких машинных тактов, число которых зависит от типа МП (обычно от одного до пяти). Количество машинных циклов определяется числом обращений к памяти или устройствам ввода-вывода.
Можно сказать, что система команд МП – это совокупность микропрограмм, обеспечивающих выполнение всех его функций, а команда – действие, описанное микропрограммой.
Система команд МП приведена в Приложении 2.
Выполнение любой команды начинается с выборки из памяти кода команды. Это соответствует машинному циклу М1. В нем МП считывает первый байт кода команды и передает его в регистр команд RI. Далее могут следовать один или два цикла чтения из памяти либо один цикл чтения из памяти и цикл выполнения операции.
После выборки и декодирования первого байта кода команды могут потребоваться дополнительные циклы для ее выполнения, всего от 1 до 5 МЦ. Каждый МЦ состоит из машинных тактов, во время которых выполняются типовые действия.
Командный цикл может содержать от 4 до 18 машинных тактов. Сигналы, реализующие тот или иной МЦ, вырабатываются устройством управления на основании информации, содержащейся в коде операции в первом байте кода команды.
Типы машинных циклов:
выборка кода команды (OF, Opcode Fetch)
чтение памяти (MR, memory read)
запись в память ( MW, memory write)
чтение стека (SPR)
запись в стек (SPW)
чтение из внешнего устройства ( IOR, input-output read)
запись во внешнее устройство (IOW, input-output write)
подтверждение прерывания (INA, Interrupt acknowledge)
останов (Halt)
HLDA (выход). Подтверждение захвата. Указывает, что центральный процессор получил запрос захвата и что он освободит шину в следующем цикле.
INTR (вход). Запрос прерывания. Используется как прерывание общего назначения. Этот сигнал воспринимается только в течение цикла, следующего за последним циклом выполнения текущей команды. С появлением сигнала INTR запрещается увеличение содержимого счетчика команд и формируетcя сигнал INTA. В течение этого цикла могут выдаваться команды RESTART (повторный запуск) или CALL для перехода к выполнению подпрограммы обработки прерывания. Прием сигнала INTR разрешается и запрещается программным путем. Он запрещается сигналом RESET (сброс) и немедленно после того, как прерывание принято.
I NTA (выход). Подтверждение прерывания. Выдается в течение цикла команды после того, как принят сигнал INTR.
RST5.5, RST6.5, RST7.5 (входы). Прерывания повторного запуска. Вызывают автоматическую выдачу внутренней команды RESTART.
TRAP (вход). Немаскируемое прерывание при возникновении непредусмотренной ситуации. Этот сигнал не может быть замаскирован либо заблокирован запретом прерывания никаким способом. Имеет самый высокий приоритет из всех прерываний.
R ESIN (вход). Устанавливает СК в нуль и сбрасывает триггеры разрешения прерывания и подтверждения захвата.
RESOUT (выход). Указывает на то, что произведен сброс центрального процессора. Может использоваться в качестве сигнала сброса системы.
Х1, Х2 – синхровходы. Служат для запуска внутреннего синхрогенератора.
CLK (выход). Выход синхроимпульса для системной синхронизации.
SID (вход). Линия последовательных входных данных. Данное с этой линии загружается в 7-й разряд аккумулятора при каждом выполнении команды RIM (читать маску прерывания).
SOD (выход). Линия последовательных выходных данных. Выходной сигнал SOD устанавливается или сбрасывается в соответствии с командой SIM (установить маску прерывания.
Vcc – питание +5в.
VSS – земля.
Функционирование МП происходит следующим образом.
1. Вся информация (программа, исходные данные, результаты) размещается в памяти (ОЗУ или ПЗУ).
2. Информация поступает в МП по шине данных.
3. Каждое внешнее или внутреннее устройство имеет адрес или диапазон адресов.
4. При обращении к конкретному устройству МП выставляет на ША адрес этого устройства, а на ШУ – признак обращения к этому устройству и обеспечивает выдачу информации на ШД.
Выполняя программу, МП обрабатывает команду за командой последовательно.
Алгоритм выполнения команды выглядит следующим образом.
начало
А
В
Программной моделью называется совокупность регистров, доступных программисту, и используемых им при составлении программ на языке АССЕМБЛЕРА или другом машинно-ориентированном языке.
Для МП программная модель выглядит следующим образом.
7 8 бит 0
7 8 бит 0
7 В 0 0
7 С 0 0
7 D 0
7 E 0 00 0
7 H 0 0
7 L 0 0
15 PC 0 0
15 SP 0
признаков регистр-аккумулятор регистр
признаков
РОН
регистр косвенного адреса
программный счетчик
указатель стека
При выполнении программы после каждого рабочего такта и после выполнения очередной команды изменяется содержимое регистров, счетчиков, состояние отдельных триггеров. Т.е. можно говорить, что изменилось состояние процессора или состояние программы.
Информация о состоянии процессора лежит в основе многих процедур управления вычислительным процессом.
Эта информация используется в следующих случаях:
при анализе ситуации в случае отказов или сбоев;
при возобновлении программы после отказа или сбоя;
при возобновлении выполнения программы после прерывания и т.п.
Совокупность значений запоминающих элементов после данного такта или после выполнения данной команды называется вектором состояния или словом состояния процессора. (PSW).
Слово состояния процессора в каждый момент времени должно содержать информацию, достаточную для продолжения программы либо повторного пуска программы с точки останова.
Слово состояния для МП имеет следующий вид:
Старший байт адреса команды
Старший байт адреса команды
Содержимое
Младший байт адреса команды
Содержимое аккумулятора
Содержимое регистра признаков
программного счетчика PSW
Командный цикл начинается с выборки кода команды (МЦ OF).
Командный цикл
М1 М2 М3 М4
Т1 Т2 Т3 Т4 Т1 Т2 Т3 Т1 Т2 Т3 Т1 Т2 Т3
выборка считывание считывание запись в
кода операции из програм- из програм- память
мной памяти мной памяти
Во всех командах первый МЦ М1(МЦ OF). В нем МП считывает первый байт кода команды. Далее могут быть один или два цикла чтения из памяти, либо один цикл чтения из памяти и цикл выполнения операции.
После выборки и декодирования первого байта кода команды могут потребоваться дополнительные машинные циклы для ее выполнения, всего от 1 до 5 МЦ. Каждый МЦ состоит из машинных тактов, во время которых выполняются типовые действия. Число тактов в различных МЦ от 3 до 6.
Командный цикл может содержать от 4 до 18 машинных тактов. Сигналы, реализующие тот или иной МЦ, вырабатываются устройством управления на основании информации, содержащейся в коде операции в первом байте кода команды.