Организация функционирования микропроцессора

 

8.2.1. Структурная схема микропроцессора КР580ВМ80А

 

На рисунке 8.2.1.1. приведена структурная схема БИС КР580ВМ80А. Кратко опишем ее узлы.

Регистры данных. Для хранения участвующих в операциях данных предусмотрено семь 8-разрядных регистров. Регистр А (код 111), называемый аккумулятором, предназначен для обмена информацией с внешними устройствами (т.е. содержимое этого регистра может быть выдано либо на вход микропроцессора, либо со входа микропроцессора в него может быть принято от внешнего устройства число), при выполнении арифметических, логических операций и операций сдвига он служит источником операнда (числа, участвующие в операции), в него помещается результат выполненной операции. Шесть других регистров, обозначенных В (код 000), С (код 001) D (код 010), E (код 011), H (код 100), L (код 101), образуют блок регистров общего назначения (РОН) (название связано с тем, что в этих регистрах могут храниться как данные, так и адреса). Эти регистры могут использоваться как одиночные 8-разрядные регистры. Если необходимо хранить 16-разрядные двоичные числа, регистры объединяются в пары ВС, DE, HL.

Указатель стека. Регистр SP (16-разрядный) служит для адресации особого вида памяти, называемой стеком (организация стека будет рассмотрена ниже).

Счетчик команд. Регистр PC (16-разрядный) предназначен для хра­нения адреса команды; после выборки из оперативной памяти текущей команды содержимое счетчика увеличивается на единицу, и таким об­разом формируется адрес очередной команды (при отсутствии безуслов­ных и условных переходов).При обращении к памяти в качестве адреса может использоваться и содержимое пары регистров блока РОН. При выдаче адреса содержимое соответствующего регистра переда­ется в 16-разрядный регистр адреса РА, из которого далее через буферы адреса адрес поступает на 16-разрядную шину адреса.

 

Рисунок 8.2.1.1. Структурная схема БИС КР580ВМ80А

С этой шины адрес может быть принят в оперативную память. Число кодовых комбинаций 16-разрядного адреса равно 216, каждая из этих кодовых комбинаций может определять адрес (номер) одной из ячеек оперативной памяти. Таким образом обеспечивается возможность обращения к памяти, содержащей до 216 = 26 • 210 = 64 К 8-разрядных слов (байтов).

 

Арифметико-логическое устройство. В 8-разрядном АЛУ предусмотрена возможность выполнения четырех арифметических операций (сложение с передачей переноса в младший разряд и без учета этого переноса, вычитание с передачей заема в младший разряд и без него), четырех видов логических операций (конъюнкции, дизъюнкции, неравнозначности, сравнения), а также четырех видов циклического сдвига. При реализации арифметических и логических операций одним из операндов служит содержимое аккумулятора, результат операции помещается в аккумулятор. Циклический сдвиг выполняется только над содержимым аккумулятора.

Предусмотрена возможность выполнения арифметических операций над десятичными числами, представленными в коде 8421. При хранении десятичного числа разряды регистра делятся на две группы по четыре разряда, и в каждой группе разрядов хранится одна десятичная цифра, представленная в коде 8421. Таким образом, в регистре можно хранить 2-разрядное десятичное число. При выполне­нии операции суммирования десятичных цифр может потребоваться коррекция результата путем прибавления к нему числа 01102. Такая коррекция результата в каждой 4-разрядной группе результата в микропроцессоре выполняется схемой десятичной коррекции (СДК).

Регистр признаков (РП). Этот 5-разрядный регистр предназначен для хранения определенных признаков, выявляемых в числе, которое пред­ставляет собой результат выполнения некоторых операций. Пять триггеров этого регистра имеют следующее назначение:

триггер переноса Тс при выполнении арифметических операций уста­навливается в состояние, соответствующее переносу из старшего разряда числа, при выполнении операции сдвига – в состояние, соответствующее содержимому выдвигаемого из аккумулятора разряда;

триггер нуля Tz устанавливается в состояние 1, если результат опера­ции АЛУ или операции приращения содержимого регистра равен нулю;

триггер знака Ts устанавливается в состояние, соответствующее значению старшего разряда результата операции АЛУ или операции приращения содержимого регистра;

триггер четности Тp устанавливается в состояние 1, если число единиц в разрядах результата четное;

триггер дополнительного переноса Tv хранит возникающий при выполнении операции перенос из 4-го разряда.

Блок управления. Состоит из регистра команд, куда принимается первый байт команды, и устройства управления, формирующего управляющие сигналы, под действием которых выполняются микрооперации в отдельных узлах. Управляющее устройство содержит выполненную на программируемой логической матрице управляющую память, в которой хранятся микропрограммы отдельных операций. Пользователь не может изменить содержимого управляющей памяти, а значит, и состава команд.

Буферы. Буферы данных и буферы адреса обеспечивают связь центрального процессора с внешними шинами данных и адреса. Особенность буферов состоит в том, что в каждом разряде они используют логические элементы с тремя состоя­ниями. В них кроме состояний 0 и 1 предусмотрено еще третье состояние, в котором они имеют практически бесконечное выходное сопротивление и оказываются отключенными от соответствующих шин.

 

8.2.2. Формат данных и команд

Данные (обрабатываемая информация и результаты обработки) хранятся в оперативной памяти и в процессоре в виде 8-разрядных двоичных чисел. Таким образом, слово имеет следующий формат:

 

Байт B1

 

Для команд используются одно-, двух- и трехбайтовые форматы. Однобайтовая команда занимает одну ячейку оперативной памяти.

 

  Байт B1

В разрядах команды записывается вид операции, а также записываются или подразумеваются источники операндов и приемник результата.

Двухбайтовая команда занимает две ячейки оперативной памяти.

 

Байт B1
Байт B2

 

В первом байте двухбайтовой команды указывается код выполняемой операции, во втором байте приводится число, являющееся операндом, либо адрес устройства ввода или вывода при обмене данными с периферийными устройствами

Трехбайтовая команда занимает три ячейки оперативной памяти.

Байт B1
Байт B2
Байт B3

 

В пер­вом байте трехбайтовой команды указывается код выполняемой операции, во втором и третьем байтах приводится число, являющееся операн­дом, или адрес ячейки оперативной памяти, где хранится операнд или команда (в командах переходов и обращений к подпрограммам). Во всех случаях байт В2 является младшим, байт В3 – старшим.

 

8.2.3. Способы адресации

Большинство микропроцессоров выполняют обработку следующих типов целочисленных данных:

• биты; \

• байты;

• слова (16 разрядов);

• двойные слова (32 разряда).

Некоторые типы микропроцессоров обрабатывают также четверные слова (64 разряда), двоично-десятичные, строки символов. В состав современных высокопроизводительных микропроцессоров входят также блоки, производящие обработку чисел, представленных в формате с плавающей точкой (блоки FPU – Floating Point Unit), и выполняющие обработку видео- и аудиоданных, для которых используются специальные форматы представления.

Обрабатываемые данные – операнды могут располагаться в регистрах или памяти (ОЗУ, ПЗУ или кэш-памяти). Выборка операнда – байта, слова или двойного слова производится в соответствии с заданным в команде номером (именем) регистра или адресом соответствующей ячейки памяти.

При размещении в памяти команд и данных используются два варианта расположения байтов в словах:

1)начиная с младшего байта («Little-Endian»);

2)начиная со старшего байта («Big-Endian»).

Различные типы микропроцессоров используют следующие основные способы адресации операндов.

1). Прямая адресация. Операнд выбирается из ячейки памяти, адрес которой содержится в команде.

2). Регистровая адресация. Операнд выбирается из регистра РЗУ, номер (имя) которого указано в команде.

3). Косвенно-регистровая адресация. Операнд выбирается из ячейки памяти, адрес которой содержится в регистре РЗУ, указанном в команде.

4). Косвенно-регистровая адресация со смещением. Операнд выбирается из ячейки памяти, адрес которой является суммой содержимого указанного в команде регистра РЗУ и заданного в команде смещения (смещение может быть положительным или отрицательным числом).

5). Косвенно-регистровая адресация с индексированием и смещением. Операнд выбирается из ячейки памяти, адрес которой является суммой содержимого указанного в команде регистра, индексного регистра и заданного в команде смещения

6). Относительная адресация. Операнд выбирается из ячейки памяти, адрес которой является суммой текущего содержимого программного счетчика PC и заданного в команде смещения (числа со знаком). Этот способ адресации часто используется для формирования адреса ко­манды, к которой переходит программа при выполнении команд ветвления

7). Непосредственная адресация. В этом случае операнд непосредственно содержит­ся в поступившей команде, размещаясь следом за кодом операции (КОП).