Инструменты пользователя

Инструменты сайта


microprocessor_kit_z80-book1:02

Первая страницаПредыдущая страницаНазад к обзоруСледующая страницаПоследняя страница

2. Архитектура ЦП

Архитектуре МП Z80 является типичной для 8-разрядных микропроцессоров. В ней можно выделить следующие основные части:

  • блок регистров,
  • арифметическо-логическое устройство,
  • регистр команд,
  • дешифратор команд и устройство управления,
  • схемы управления шинами адреса и данных.


Рис. 2.1. Блок-схема ЦП Z80

2.1. Регистры

Программно доступными средствами ЦП являются 22 внутренних восьми- и шестнадцатиразрядных регистра. Они образуют три блока: 2 альтернативных блока (главный и вспомогательный) - по шесть 8-разрядных регистров, аккумулятору и регистру флагов в каждом, и блок специальных регистров.

FIXME

Старый вариант

Старый вариант

DELETEME

Блок
главных регистров
Блок
вспомогательных регистров
Аккумулятор
A (8)
Флаги
F(8)
Аккумулятор
A' (8)
Флаги
F' (8)
B (8/16)C(8)B' (8/16)C' (8)Регистры
общего
назначения
D (8/16)E(8)D' (8/16)E' (8)
H (8/16)L(8)H' (8/16)L' (8)
Вектор прерывания
I (8)
Регенерация памяти
R (8)
Специальные
регистры
Индексный регистрIX (16)
Индексный регистрIY (16)
Указатель стекаSP (16)
Счётчик командPC (16)

Рис. 2.2. Регистры ЦП Z80

Специальные регистры

PC

Program Counter — Счётчик команд

Счётчик команд является программно доступным регистром, и используемся для приёма, преобразования и выдачи на шину адреса текущего 16-разрядного адреса команды. Содержимое счётчика команд автоматически инкрементируется после выборки каждого байта команды. В случаи перехода в программе, новый адрес автоматически заносится в счетчик команд.

SP

Btack Pointer — Указатель стека

Указатель содержит 16-разрядный адрес ячейки стека, к которой было последнее обращение Содержимое SP декрементируется, когда данные загружаются в стек и инкрементируется при чтении. Стек организуется во внешнем ОЗУ по принципу LIFO (Last In — First Out). Обмен данными между стеком и ЦП может быть автоматическим (как в случае обработки подпрограмм), либо командами PUSH и POP. Стек позволяет простую реализацию многоуровневых прерываний, практически неограниченное вложение подпрограмм и упрощение при многих видах обработки данных.

IX, IY

Indexregisters — Индексные регистры

Каждый из этик двух регистров может содержать 16-разрядный базовый адрес, используемый при индексной адресации. Базовый адрес складывается со смещением, которое указано в команде в дополнительном коде. Их сумма образует действительный адрес ячейки памяти, содержащей данные. Этот вид адресации удобен при обработке таблиц и массивов.

I

Interruptveotor register — Регистр вектора прерывания

Это 8-разрядный программно доступный регистр, используемый в режиме прерывания 2 (IM2) Он содержит старший байт вектора прерывания. Младший байт принимается от внешнего устройства. Путём их объединения формируется полный вектор прерывание. (Подробнее см. гл. 6).

R

Refreshregister — Регистр регенерации памяти

Это 8-разрядный программно доступный регистр, обеспечивавший возможность использования динамических ОЗУ без внешних схем регенерации. Содержимое его младших 7 разрядов автоматически увеличивается на единицу после каждой выборки команды. При этом восьмой бит сохраняет значение, полученное при выполнении команды загрузки этого регистра. Т.о. формируется адрес регенерации, который подается в младшую часть адресной шины во время декодирования и выполнения команды в ЦП (в старшую часть — содержимое регистра I). Регенерация данного вида называется «прозрачной» и не снижает быстродействия процессора.

Главный и вспомогательный блоки регистров

ЦП Z80 содержит два альтернативных блока регистров: главный (A – L) и вспомогательный (A' – L'). С точки зрения программиста оба блока абсолютно равноправны, но в данный момент можно работать лишь с одним из них. Переключение этих блоков производится командами ЕХХ и EX AF.AF'. Такая организация удобна тем, что позволяет быстро сохранить содержимое регистровых блоков при вызове подпрограмм или при возникновении прерывания. Однако следует помнить: отсутствует средство подтверждения, какой из блоков (главный или вспомогательный) используется в данный момент.

A, A'

Accumulator — Аккумулятор

Каждый из двух блоков регистров содержит по одному 8-разрядному аккумулятору. При арифметических и логических операциях он служит источником одного из операндов и, как правило, приёмником результата. Второй операнд берётся из другого регистра, либо из памяти.

Диапазон представления целых чисел без знака в аккумуляторе от 0 до 255, со знаком от -128 до +127.

F, F'

Flagregister — Флаговый регистр

В составе каждого блока регистров имеется свой флаговый регистр. Флаговый регистр (называемый также регистром условий) содержит набор одноразрядных признаков, которые устанавливаются по результату операции. Флаговые биты 7, 6, 2, 0 служат для реализации условных переходов и условных вызовов подпрограмм или возвратов; биты 4 и 1 служат для реализации двоично–десятичной арифметики.

  7   6   5   4   3   2   1   0
┌───┬───┬───┬───┬───┬───┬───┬───┐
│ S │ Z │ — │ H │ — │P/V│ N │ С │
└─▲─┴─▲─┴─▲─┴─▲─┴─▲─┴─▲─┴─▲─┴─▲─┘
  │   │   │   │   │   │   │   │ 
  │   │   │   │   │   │   │   └─ флаг переноса (carry flag ) 
  │   │   │   │   │   │   │    
  │   │   │   │   │   │   └─ флаг сложения/вычитания (add/substract flag)
  │   │   │   │   │   │
  │   │   │   │   │   └─ флаг чётности/переполнения (parity/overflow flag)
  │   │   │   │   │  
  │   │   │   │   └─ не используется
  │   │   │   │
  │   │   │   └─ флаг полупереноса (halfcarry flag)
  │   │   │
  │   │   └─ не используется
  │   │
  │   └─ флаг нуля (zero flag)
  │
  └─ флаг знака (sign flag)

Рис. 2.3. Регистр флагов

Флаги устанавливаются в следующих условиях:

  • S=1, если результат операции отрицателен.
  • Z=1, если результат операции равен нулю.
  • Н=1, если при арифметической операции был перенос между битами 3 и 4.
  • P/V=1,
    • а) если при логических операциях и командах сдвига количество установленных в единицу битов чётно (функция чётности P);
    • б) если результат арифметической операции находится вне диапазона представления чисел со знаком, т.е. меньше -128, либо больше +127 (функция переполнения V).
  • N=1, если в предыдущей команде выполнялось вычитание (команды типа SUB, DEC, CMP).
  • C=1, если при сложении возникает перенос из 7 бита аккумулятора, либо при вычитании — заём. В командах сдвига состояние флага C однозначно соответствует сдвигаемому в него биту.

Регистры общего назначения (РОН)

┌───┬───┬───┬───┬───┬───┐
│ В │ С │ D │ E │ H │ L │
├───┼───┼───┼───┼───┼───┤
│ B'│ C'│ D'│ E'│ H'│ L'│
└───┴───┴───┴───┴───┴───┘

Могут быть использованы как накопители данных или указатели адресов операндов. РОНы могут использоваться как самостоятельные 8-разрядные регистры, либо как 16-разрядные попарно:

┌───┬───┬───┐
│ВС │DE │HL │
└───┴───┴───┘
и
┌───┬───┬───┐
│ВС'│DE'│HL'│
└───┴───┴───┘

2.2. Арифметическо-логическое устройство (АЛУ)

В АЛУ выполняются арифметические и логические действия над 8-разрядными операндами. Внутренне АЛУ связано с регистрами и через внутреннюю шину данных с внешней шиной. В АЛУ выполняются следующие операции:

  • сложение;
  • вычитание
  • логическое И;
  • логическое ИЛИ;
  • логическое исключающее ИЛИ;
  • сравнение;
  • увеличение на единицу;
  • уменьшение на единицу;
  • установка и сброс бита;
  • анализ значения бита;
  • сдвиг влево и вправо (арифметический и логический);
  • вращение влево и вправо (циклический сдвиг).

2.3. Регистр команд и устройство управление процессором

После извлечения команды из памяти, она загружается и регистр команд. Дешифратор команд, входящий в устройство управления, преобразует код команды в управляющие сигналы:

  • внутренние, необходимые для считывания/записи данных в регистры и управления АЛУ,
  • внешние, подаваемые на шину управления.

Кроме того, устройство управления реагирует на внешние управляющие сигналы.

2.4. Управление шинами адреса и данных

Блок управления ША состоит из регистра адреса и буфера адреса. Буфер адреса представляет собой выходные формирователи с тремя устойчивыми состояниями. Он предназначен для выдачи 16-разрядного адреса из регистра адреса на шину.

Блок управления ШД представляет собой бинаправленную трёхстабильную схему, применяемую для обмена информацией ЦП с внешними устройствами. При выводе информации содержимое внутренней ШД запоминается в 8-разрядном регистре и через выходные формирователи выдается на внешнюю вину данных.


Первая страницаПредыдущая страницаНазад к обзоруСледующая страницаПоследняя страница

microprocessor_kit_z80-book1/02.txt · Последние изменения: 2020-07-09 10:48 — GreyWolf