МИКРОПРОЦЕССОРЫ И МИКРОПРОЦЕССОРНЫЕ СИСТЕМЫ

Архитектура процессоров

Микропроцессоры и микропроцессорные системы

Успехи в области технологии интегральных микросхем привели в начале 1970-х гг. к появлению микропроцессора, представляющего собой функционально завершенное универсальное программно-управляемое устройство цифровой обработки данных. Организация работы микропроцессора базируется на выполнении определенного набора команд. Эта особенность нашла отражение в программно-аппаратном принципе построения микропроцессорных систем с использованием одного или нескольких микропроцессоров, предназначенных для обработки данных, контроля и управления различными объектами. Реализация целевого назначения микропроцессорной системы достигается с помощью программного обеспечения — организованного набора программ и данных.

Цель раздела — рассмотреть основные концепции структурно-функциональной организации микропроцессоров и микропроцессорных систем. Для более глубокого понимания концепций и их дальнейшего изучения в качестве объектов рассмотрения выбраны простейший 8-разрядный процессор и системы на его основе.

Глава 5. АРХИТЕКТУРА ПРОЦЕССОРОВ

Принципы построения процессоров

Принцип микропрограммного управления. Функции выполнения операций над информацией в цифровых системах (устройствах) возлагаются на процессор. Построение процессоров базируется на принципе микропрограммного управления, согласно которому:

=> любая операция над словами информации (двоичными кодами), реализуемая процессором, рассматривается как сложное действие, которое разделяется на последовательные элементарные действия, называемые микрооперациями;

=> для управления порядком следования микроопераций используются логические условия, которые отражают состояние процессора после выполненных микроопераций в виде логического 0 или 1;

=> процесс выполнения операций в процессоре описывается в форме алгоритма, представленного в терминах микроопераций и логических условий, и называется микропрограммой;

=> микропрограмма используется как форма представления функции процессора, на основе которой определяются его структура и порядок функционирования во времени.

Структура процессора. В структурно-функциональном отношении процессор разделяется на две части: операционный и управляющий автоматы (рис. 5.1).

Операционный автомат предназначен:

=> для хранения множества входных (/)), выходных (R) и внутренних (S) слов;

=> для выполнения набора микроопераций для получения результата /?; => для формирования множества осведомительных сигналов X, каждый из которых отождествляется с определенным логическим условием.

Структура процессора

Рис. 5.1. Структура процессора

Микрооперации, реализуемые операционным автоматом, инициируются множеством управляющих сигналов Y—7},...,Удг}, каждый из которых соответствует определенной микрооперации.

Операционный автомат можно представить в виде трех функциональных модулей (рис. 5.2): памяти, комбинационной схемы микроопераций и комбинационной схемы логических условий.

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

Структура операционного автомата

Рис. 5.2. Структура операционного автомата

иной микропрограмме. На входы процессора могут поступать внешние сигналы логических условий, а с выходов сниматься сигналы для управления внешними устройствами.

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

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

Операционный автомат для умножения двоичных чисел. Для обоснования принципа построения операционного автомата воспользуемся правилом умножения двоичных чисел, при котором частичные произведения формируются, начиная с младших разрядов множителя В (рис. 5.3).

Выбор аппаратных средств для реализации операции умножения двоичных ч и с ел. Прежде всего, необходимо иметь в виду, что суммирование частичных произведений должно осуществляться последовательно во времени с помощью сумматоров, предназначенных для сложения двух операндов, поскольку сложность схемного решения сумматоров возрастает как с ростом числа операндов, так и с увеличением их разрядности. Как видно из рисунка, особенность умножения двоичных чисел состоит в том, что частичные произведения могут принимать лишь два значения: значение множимого Л либо значение нуля. Значение частичного произведения определяется значением текущего разряда множителя В. Если частичное произведение равно нулю, то микрооперацию сложения можно нс выполнять. Таким образом, множимое А используется как частичное произведение, и его будем постоянно хранить в регистре RG. Для аппаратного определения значения текущего разряда множителя В необходимо располагать сдвигающим регистром RG2. В исходном состоянии регистр RG2 загружен множителем В, причем выходной сигнал должен соответствовать самому младшему разряду множителя. Чтобы выявить значение следующего разряда множителя В, после каждой микрооперации сложения частичного произведения необходимо производить сдвиг содержимого RG2 в сторону самого младшего разряда. Для хранения частичных сумм частичных произведений необходимо располагать третьим регистром RGy В исходном состоянии /?б3 должен быть загружен нулями. В процессе умножения осуществляется сложение содержимого регистра RGз с частичным произведением А. Частичная сумма помещается в Ж?з, после чего выполняется сдвиг в сторону младших разрядов. При этом в два раза увеличивается вес каждого очередного разряда множителя В.

Правило умножения двоичных чисел, начиная с младших разрядов множителя

Рис. 5.3. Правило умножения двоичных чисел, начиная с младших разрядов множителя

Алгоритм умножения двоичных чисел. На рис. 5.4 показан процесс умножения с использованием трех регистров и сумматора. Множимое /4 = 0111 постоянно находится в регистре RG. В исходном состоянии в регистр /?б3 помещен нуль 0000, а в регистр RG2множитель В= 0101. Нуль в старшем разряде операндов А и Освидетельствует о том, что перемножаются положительные числа. В процессе умножения в регистре /?б3 размещаются частичные суммы частичных произведений и произведение. Анализируется младший разряд регистра RG2 (МР ОбУ, который отождествляется с логическим условием Х. Если МР RG2 = Х = 1, то выполняется микрооперация сложения содержимого регистров Дб3 и 06j, и результат помещается в Об3. Эта микрооперация может быть записана в следующем виде: /?б3: = Об3 + RG. Затем осуществляется микрооперация сдвига вправо на один разряд (R1) содержимого составного регистра, образованного из регистров Лб3 и RG2: /?б3, RG2:=R(RG2,RG2). Если же МР RG2 = Х^ = 0, то выполняется только сдвиг содержимого составного регистра.

Из рис. 5.4 видно, что процесс носит циклический характер. Число циклов /7 равно числу разрядов множителя А (в примере п =4). По-

Иллюстрация алгоритма умножения двоичных чисел с помощью трех регистров и сумматора

Рис. 5.4. Иллюстрация алгоритма умножения двоичных чисел с помощью трех регистров и сумматора

этому при схемной реализации для автоматической фиксации завершения операции умножения целесообразно использовать вычитающий счетчик СТчисла повторений цикла. В исходном состоянии счетчик загружается числом п = 4 (100). По завершении каждого цикла содержимое счетчика уменьшается на единицу. После 4-го цикла счетчик будет пуст (000). Если к выходам счетчика подключить логический элемент ЗИЛ И—НЕ и его выходной сигнал принять в качестве логического условия Х2, то Х2 = 1 будет свидетельствовать о завершении 4-го цикла или об окончании операции умножения.

Структурная схема операционного автомата. Схема автомата для умножения двоичных чисел приведена на рис. 5.5. Составной регистр из RG2 и RG2 образован путем соединения выхода триггера младшего разряда RG2 с входом триггера старшего разряда RG2. С помощью управляющего сигнала.^ регистр RG^ устанавливается в нулевое состояние, а с помощью сигнала у2 в счетчик СТ вводится число п = 4. По команде ут, результаты суммирования содержимого и RG1 с выхода сумматора поступают в RGy Для сдвига содержимого составного регистра /?(73, RG2 используется управляющий сигнал ^4, а для уменьшения показаний счетчика СТ на единицу — сигнал у5. Предполагается, что операнды А и В уже загружены в регистры. Управляющие сигналы yi + ^5 будем отождествлять с микрооперациями.

В операционном автомате формируются следующие признаки:

=> — значение младшего разряда RG2. Значение Х = свидетельствует о том, что младший разряд регистра RG2 равен 1. В этом случае выполняется описанная выше микрооперация сложения, а затем сдвига. При Х = 0 младший разряд регистра RG2 равен 0 и выполняется только микрооперация сдвига;

=> Х2 результат проверки на нуль содержимого СТ. Значение Х2 = 1 свидетельствует о том, что счетчик пуст (СТ= 000). В этом случае

Структурная схема операционного аппарата для умножения

Рис. 5.5. Структурная схема операционного аппарата для умножения

двоичных чисел:

У — микрооперация загрузки регистра RG3 нулем; у2 — микрооперация загрузки счетчика СТ числом п = 4 (код 0100); у3 микрооперация сложения содержимого регистров RG3, RGj и загрузки результата в регистр RGy, у4 — микрооперация сдвига на один разряд вправо содержимого регистров RG3, RG2, У5 микрооперация уменьшения на единицу содержимого счетчика СТ

операция умножения завершается. При Х2 0 начинается новый цикл операции умножения.

Приведем в условной записи список микроопераций, выполняемых в узлах операционного автомата, и список формируемых признаков:

Список микроопераций Список признаков

ух - RGy = 0; У2 - СТ: = я; Х = 1 - МР RGX: = 1;

уг - RG3: = RG3 + RG] *2=1- СТ: = 0.

У4RG$,RG2: = R1 (/?(73, RG2)’, у5-СТ: = СТ- 1.

Управляющий автомат со схемной логикой. Рассмотрим основные этапы построения такого автомата.

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

=> граф-схема алгоритма должна содержать одну начальную, одну конечную вершины, а также конечное число операторных и условных вершин;

=> входы и выходы различных вершин соединяются дугами, направленными от выхода к входу. При этом выход каждой вершины соединяется только с одним входом;

=> в каждой операторной вершине записывается микрокоманда, представляющая собой набор микроопераций, выполняемых на одном временном интервале (такте);

=> в каждой условной вершине записывается одно из логических условий; => между любой вершиной и конечной вершиной должен существовать по крайней мере один путь.

На основании приведенного выше списка микроопераций можно сформировать набор микрокоманд. Для этого необходимо:

=> объединить микрооперации у, у2 (загрузки регистра RG$ и счетчика С7) в общую микрокоманду Уу = {у|, у2}, так как они могут быть выполнены одновременно (на одном тактовом интервале);

=> выделить в отдельную микрокоманду микрооперацию сложения содержимого регистров RG$ + RG с загрузкой суммы в RG$У2: = уу => объединить микрооперации у4, у5 (сдвига вправо на один разряд содержимого регистровой пары Ж73, RG2 и уменьшения на единицу содержимого счетчика С7) в микрокоманду Уу = {^4,^5}.

Для операции умножения можно построить несколько граф-схем, каждая из которых определяет свою структуру управляющего автомата и последовательность его функционирования. На рис. 5.6 приведен один из возможных вариантов граф-схемы алгоритма операции умножения двоичных чисел.

Построение графа переходов управляющего автомата. Граф строится в два этапа. На первом этапе производится разметка граф-схемы алгоритма по следующим правилам:

=> символом отмечается вход первой вершины, следующей за начальной, а также вход конечной вершины;

=> входы вершин, следующих за операторными вершинами, отмечаются символами Л) , а2 ,...;

=> входы двух различных вершин, за исключением конечной, нс могут быть обозначены одинаковыми символами;

=> вход вершины может отмечаться только одним символом.

Отметки графа нанесены на рисунке в виде крестиков.

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

(1) а„ Х(а„, а5) Y(am, as) as,

где Х(ап, as) — конъюнкция всех логических условий Xk(k= 1,2, 3, ...), соответствующих условным вершинам на этом пути, причем Хк берут в прямой форме, если из данной вершины путь выходит по стрелке, отмеченной значением 1, и в инверсной форме, если путь выходит по стрелке, отмеченной значением 0; Y(an, as) — множество микроопераций, или микрокоманда, указанная в единственной операторной вершине, через которую проходит данный путь.

Граф-схема алгоритма операции умножения двоичных чисел

Рис. 5.6. Граф-схема алгоритма операции умножения двоичных чисел

Допустимы пути, содержащие несколько условных вершин или нс содержащие ни одной, а также пути, не имеющие операторной вершины. Рассматриваются все пути, кроме тех, в которых некоторое условие Xj (/' g к) входит как в прямой, так и в инверсной форме. Множество путей (1) определяет множество переходов между состояниями ап и а$ автомата. При построении графа переходов каждой отметке at на граф-схеме алгоритма или состоянию а, управляющего автомата ставят в соответствие вершину графа, а каждому пути (1) — дугу, направленную из вершины ап в вершину ау Дуга отражает переход автомата из состояния ап в состояние as и по-

мечается конъюнкцией Х(ап, as) и выходными сигналами Y(an, as). Если в рассматриваемом пути отсутствуют логические вершины, то полагают Х(ап> as) = 1 (т.е. осуществляется безусловный переход); если же отсутствует операторная вершина, то полагают Y{an, as) = у0, где уц — пустой оператор, означающий сохранение состояния, так как не выполняется никакая микрооперация.

Граф переходов

Рис. 5.7. Граф переходов

Построенный по изложенной методике граф переходов (рис. 5.7) определяет закон функционирования и структуру управляющего автомата.

Кодирование состояний управляющего автомата. Для фиксации состояний управляющего автомата будем использовать триггеры.

Каждому состоянию управляющего автомата поставим в соответствие некоторую кодовую комбинацию, отображаемую состоянием Q-выходов триггеров. Число разрядов к кода, или триггеров, можно выбрать на основании соотношения К < 2*, где К — число состояний управляющего автомата. Для рассматриваемого случая К = 3, к = 2. Выбранные коды состояний управляющего автомата приведены в табл. 5.1.

Таблица 5.1

Состояние

Код

i

ai

с?,

00

0

%

0

0

1

0

0

1

2

а2

1

0

Структурная схема управляющего автомата представлена на рис. 5.8. Она содержит:

=> два RS-триггера Г0, Ту, образующих регистр хранения информации для фиксации текущего состояния управляющего автомата с помощью выходных сигналов Q|, (?0;

=> дешифратор, предназначенный для преобразования двухразрядного кода Q] (?о в сигналы состояния а$, ау, а2

=> комбинационную схему, которая вырабатывает управляющие сигналы К|, К2, Уз для операционного автомата и сигналы ^0, для триггеров по входным сигналам Ху, Х2, ау, а2.

Структурная схема управляющего автомата со схемной логикой

Рис. 5.8. Структурная схема управляющего автомата со схемной логикой

Дальнейшей задачей является построение комбинационной схемы. Составление таблицы функционирования комбинационной схемы. Задание работы управляющего автомата с помощью графа переходов обеспечивает наглядность. Однако при записи аналитических выражений для выходных сигналов управляющего автомата удобнее пользоваться таблицей функционирования (табл. 5.2). Каждая строка этой таблицы определяет один переход управляющего автомата.

В ней указываются исходное состояние atv его код Qj Q(), состояние перехода as (конечное состояние) и его код Qy Qq, входные сигналы X и выходные — Y и сигналы S, R, обеспечивающие изменение состояний триггеров. При составлении таблицы функционирования используется граф переходов (рис. 5.7), а также сведения о кодировании состояний (табл. 5.1) и об изменении состояния триггеров (табл. 5.3, где Ф — любое значение сигнала: 0 или 1).

Таблица 5.2

п/п

Начальное состояние ап и код ап

Конечное состояние as и код а5

Логические условия X

Микрокоманды Y

Сигналы управления триггерами 5, R

ап

0.

as

с.

00

1

%

0

0

а

0

1

1

л

So

2

а

0

1

а

0

1

Хг*

Уз

3

а

0

1

а2

1

0

%-Х,

У2

% *^1

4

а2

1

0

0

0

1

1

Уз

*%? R

5

а

0

1

%

0

0

х2

*0

Таблица 5.3

Вид перехода

S

R

0->0

0

Ф

0-> 1

1

0

1 ->0

0

1

1 -> 1

ф

0

В качестве примера покажем, как в табл. 5.2 заполняется графа «Сигналы управления триггерами S, R» первой строки, которой соответствует переход из состояния Оу. Из таблицы видно, что младшие разряды Qq кодов л0, aj изменяются (0 —> 1), старшие Qy сохраняют свое значение (0 —> 0). Так как триггер Г0 должен изменить состояние и имеет вид перехода 0 —» 1, на его вход следует подать сигнал Sq = 1 (табл. 5.3). Триггер Ту не изменяет состояния, поэтому на его входы сигналы не подаются. Следовательно, в графу «Сигналы управления триггерами 5, первой строки заносится только Sq.

Запись логических выражений для комбинационной схемы. Для каждой строки табл. 5.2 запишем логическое выражение в следующей форме: в левой части выражения перечислим выходные величины У, 5, R (содержимое двух последних столбцов), в правой части — конъюнкцию апХ тс куще го (начального) состояния и условий перехода. В результате получим

(2) Y, 5o —

Уг = ауХгХх-_

УS яг 2^2 • X ;

П; ^0’ = a2 ? i;

Rq = avX2.

Пользуясь (2), составим логические выражения для каждой выходной величины комбинационной схемы. Для этого в левой части запишем непосредственно выходную величину, а в правой части — дизъюнкцию правых частей тех соотношений (2), в которые входит указанная выходная величина комбинационной схемы. Полученные таким образом логические выражения для комбинационной схемы имеют следующий вид:

(3) Y = <70;_

Y2 = arXz-X_L;

Уз = aY %2 ' Х + а2;

So = % +_а2

R{) = ay X2- Х + (1уХ2

S = а’ Х2 ' Х*

R = а2.

Построение комбинационной схс м ы. Комбинационная схема строится по известным правилам с помощью выражений (3). Полная схема управляющего автомата со схемной логикой приведена на рис. 5.9. В комбинационную схему включен также дешифратор DC.

Схема управляющего автомата со схемной логикой

Рис. 5.9. Схема управляющего автомата со схемной логикой

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

Совокупность управляющих сигналов Y— {ур - } на каждом тактовом периоде образует микрокоманду. Последовательность микрокоманд, предназначенных .тля выполнения некоторой операции, называют микропрограммой. При этом выполнение операции сводится к последовательной выборке из управляющей памяти микрокоманд микропрограммы и выдаче с их помощью управляющих сигналов Y в операционный автомат. В управляющей памяти можно хранить много микропрограмм, предназначенных для выполнения различных операций. Выбор той или иной микропрограммы осуществляется с помощью команды, поступающей из оперативной памяти. Выбранная микропрограмма реализуется путем последовательного считывания микрокоманд микропрограммы из ячеек управляющей памяти. При таком принципе управления на каждом такте определяется адрес ячейки в управляющей памяти, откуда должна считываться следующая микрокоманда микропрограммы. Микрокоманда микропрограммы содержит ряд полей. Для каждого поля отведено определенное количество разрядов. Совокупность полей называют форматом микрокоманды. Как правило, в формате микрокоманды микропрограммы предусматриваются следующие элементы:

=> поле управляющих сигналов, представляющее собой микрокоманды Коля управления операционным автоматом;

=> поле условий перехода, в котором указывается вид перехода: условный или безусловный. При условном переходе определяется логическое условие Xj9 по которому осуществляется переход;

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

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

Структура управляющего автомата с программируемой логикой

Рис. 5.10. Структура управляющего автомата с программируемой логикой

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

Составим микропрограмму для выполнения операции умножения двоичных чисел по рассмотренному выше алгоритму, представленному на рис. 5.6.

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

Если выполнение микрокоманд не связано с логическими условиями, то адресный код A2AAq передается через блок микропрограммного управления в управляющую память без изменения. При наличии условного перехода адрес в блоке микропрограммного управления может быть изменен. По этой причине в формате команды предусмотрено поле условии переходов, содержащее три разряда Я, ПХ2, ПХ|. Значение Я = 0 соответствует безусловному переходу. В этом случае разряды ПХ2, ЯЛ'] микрокоманды микропрограммы могут принимать любые значения (0 или 1). Значение Я= I инициирует проверку логических условий Х2 или Х. При проверке логического условия Х2 необходимо установить ПХ2 = 1, ПХ = 0; при проверке логического условия X, — ПХ2 = 0, ЯЛ'] = 1. Следует отметить, что сигналы Х2> A'j логических условий формирует операционный автомат, а разряды Я, ПХ2, ПХ проверки логических условий содержатся в микрокомандах микропрограммы, которая хранится в управляющей памяти (рис. 5.10).

В поле управляющих сигналов заносятся значения микрокоманд Kj, Y2, К3 или сигналов у, у2, Уз, У4, У5, активизирующих выполнение микроопераций. В табл. 5.4 приведен выбранный формат микрокоманды микропрограммы.

Таблица 5.4

Формат микрокоманды микропрограммы

Поле адреса

Поле условий перехода

Поле управляющих сигналов

Л2

А

Л)

Я

ПХ2

ПХ]

>3

>"1

У5 У4

Уз

У2 У

Разметка граф-схемы алгоритма. Каждой вершине граф-схемы алгоритма (рис. 5.6) операции умножения двоичных чисел, за исключением начальной, поставим в соответствие микрокоманду микропрограммы. Микрокоманды МК1, МК2, МКЗ... микропрограммы будем хранить в ячейках управляющей памяти с адресами 000, 001, 010... соответственно. Для обращения к ячейкам воспользуемся естественной адресацией, при которой различают микрокоманды двух типов: операционные и управляющие. Тип микрокоманды зависит от значения одноразрядного поля признака Я: значению Я = 0 соответствует операционная микрокоманда, значению Я= 1 — управляющая микрокоманда. Операционная микрокоманда выполняется операционным автоматом под управлением сигналов к} или микрокоманд Kj, К2, У3. Управляющая микрокоманда предназначена для реализации условных переходов в соответствии со значениями проверяемых условий Х2. При разметке граф-схемы алгоритма в каждую вершину вносится следующая информация:

=> записывается одна из микрокоманд микропрограммы и ее адресный код.

Номер микрокоманды и соответствующий ему адрес ячейки памяти проставляются согласно алгоритмической последовательности выполнения операции умножения. Если А — адрес текущей микрокоманды, то адрес следующей микрокоманды при безусловном переходе равен А + 1, при условном переходе—А + 1 + Хк = 1,2);

=> фиксируется состояние операционного автомата (ОА). В операторных вершинах проставляется операционная микрокоманда (У|, У2 или Уз), которую выполняет операционный автомат. В условных вершинах операционный автомат не выполняет микрокоманд, поэтому ставится прочерк «—»;

=> фиксируется состояние блока микропрограммного управления (БМУ). В операторной вершине выполняется безусловный переход, в условной вершине — условный переход. Поэтому делаются соответствующие записи и указывается, по какому условию или Х2) выполняется управляющая команда.

Размеченная по указанным правилам граф-схема алгоритма приведена на рис. 5.11. В операторную вершину с микрокомандой Kj занесена первая микрокоманда МК1 и адрес ее ячейки памяти 000. В условной вершине Х2 = ? записана микрокоманда МК2 с адресом 001. Адреса следующих двух микрокоманд определяются по приведенной выше формуле

Следовательно, микрокоманда МКЗ с адресом 010 заносится в вершину проверки логического условия Х = ?, а МК4 с адресом 011— в вершину «Конец» (возможно, для выполнения другой микропрограммы).

При вычислении адресов следующих двух микрокоманд необходимо иметь в виду, что последняя занятая ячейка памяти имеет адрес 011. Поэтому

Следовательно, микрокоманда МК5 с адресом 100 заносится в вершину с микрокомандой Y$, а МК6 с адресом 101— в вершину с микрокомандой У2.

Составление микропрограммы. М икропрограмма составляется согласно размеченной граф-схеме алгоритма (рис. 5.11) и представляется в виде таблицы (табл. 5.5).

Размеченная граф-схема алгоритма умножения двоичных чисел для составления микропрограммы

Рис. 5.11. Размеченная граф-схема алгоритма умножения двоичных чисел для составления микропрограммы

В ячейку с адресом 000 помещаем МК1, которая в операционном автомате выполняет загрузку, предусмотренную управляющими сигналами ^|, У2 (У), а микрокоманда блока микропрограммного управления определяет безусловный переход (БП) к ячейке с адресом 001.

В ячейке 001 располагаем МК2, которая не предусматривает никаких действий в операционном автомате. Управляющая микрокоманда блока микропрограммного управления определяет условный переход по условию Ху при Х2 = 0 происходит переход в следующую ячейку с адресом 010, при Х2 = — к ячейке 011, где хранится МК4 для продолжения программы после выполнения операции умножения.

Микрокоманда М КЗ в ячейке 010 также не предусматривает действий в операционном автомате и предназначена для осуществления перехода по условию Ху. при A'j = 0 происходит переход к ячейке 100, при Х = 1 — к ячейке с адресом 101, где соответственно хранятся МК5 и МК6.

Микрокоманда МК5 выполняет в операционном автомате действия, предусмотренные управляющими сигналами у5, у4, а в БМУ — безусловный переход к ячейке с адресом 001.

Адрес

ячейки

памяти

Поле адреса

Поле условий перехода

Поле микрокоманд

№ МК

ad2

AD

ADn

П

ПХ2

ПХх

ь

ь

У,

000

0

0

1

0

ф

ф

0

0

1

МК1

001

0

1

0

1

1

0

0

0

0

МК2

010

1

0

0

1

0

1

0

0

0

МКЗ

011

МК4

100

0

0

1

0

ф

ф

1

0

0

МК5

101

1

0

0

0

ф

ф

0

1

0

МК6

Микрокоманда МК6 предусматривает в операционном автомате действия К2, а в БМУ — безусловный переход к ячейке 100 (МК5).

При отсутствии проверки логических условий П= 0 значения ПХ2 и ПХ могут быть любыми.

Память для хранения микропрограммы. Как следует из табл. 5.5, для рассматриваемого операционного автомата в памяти должно храниться шесть микрокоманд. Помимо 3-разрядного адреса (Л/)2, ADj, AD$) микрокоманда микропрограммы содержит 3-разрядное поле условий перехода (/7, ПХ2, ПХ) и 3-разрядное поле микрокоманд Kj, У2, Уз операционного автомата. Таким образом, необходимо хранить шесть 9-разрядных микрокоманд. В качестве памяти будем использовать комбинационную схему с 3 входами и 9 выходами, работа которой описывается таблицей истинности (см. табл. 5.6).

Таблица истинности составлена на основании микропрограммы, приведенной в табл. 5.5.

Используя карты Карно, можно получить следующие структурные формулы для комбинационной схемы 113]:

Построенная по структурным формулам комбинационная схема приведена на рис. 5.12. Схема имеет три адресных входа — AD() AD^ AD2 на которые поступает модифицированный адрес из блока микропрограммного управления. С выхода комбинационной схемы снимается трехразрядный адрес (AD(), AD, AD2), указанный в микропро-

Входы

Выходы

AD2

AD{

ad2

ADl

AD0

п

пх2

ПХх

Уз

>2

л

0

0

0

0

0

0

1

0

ф

ф

0

0

1

1

0

0

1

0

1

0

1

1

0

0

0

0

2

0

1

0

1

0

0

1

0

1

0

0

0

3

0

1

1

Ф

ф

ф

ф

ф

ф

ф

ф

ф

4

1

0

0

0

0

1

0

ф

ф

1

0

0

5

1

0

1

1

0

0

0

ф

ф

0

1

0

6

1

1

0

ф

ф

ф

ф

ф

ф

ф

ф

ф

7

1

1

1

ф

ф

ф

ф

ф

ф

ф

ф

ф

Акт. 5.12. Комбинационная схема памяти

грамме, сигналы проверки логических условий (Я, ПХ2, ПХ{) и микрокоманд (К!, Y2, К3).

Блок микропрограммного управления (БМУ). Этот блок служит для модификации поступающего на его вход 3-разряд- ного адреса AD2 AD AD0. Логическая схема БМУ изображена на рис. 5.13. В нее входят:

=> 3-разрядный счетчик СТ с тактовым входом С и тремя асинхронными входами /)0, /)|, D2 для загрузки 3-разрядного адреса AD2 AD Л/)0, поступающего из памяти;

Блок микропрограммного управления

Рис. 5.13. Блок микропрограммного управления

=>логические элементы 2И—2И—ИЛИ и ЗИ. На их входы поступают логические условия Х2, Х и сигналы Я, ПХПХ, инициирующие их проверку.

На каждом тактовом интервале адресный код AD2 AD считываемый из «ячейки» памяти (комбинационной схемы), поступает на входы БМУ и загружается в счетчик. Если в этой «ячейке» находится микрокоманда, связанная с проверкой логических условий (Я = 1, ПХ] = 1, ПХ2 = 0 или Я — 1, ПХ = О, ПХ2 = 1), и значение проверяемого логического условия Х или Х2 равно 1, то адресный код на выходе БМУ увеличивается на 1:

Действительно, в этих случаях, как видно из схемы на рис. 5.13, логический элемент ЗИ открыт и тактовый импульс ТИ поступает на вход С счетчика, увеличивая его содержимое на единицу.

Во всех других случаях код сохраняется: AD2ADADq = AD2 AD{ ADq так как логический элемент ЗИ закрыт и ТИ на вход Т счетчика не поступает.

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

Для увеличения количества выполняемых операций необходимо прежде всего располагать операционным автоматом с более широкими функциональными возможностями. Таким операционным автоматом может служить арифмстичсско-логичсскос устройство (АЛУ), которое в большинстве случаев:

=> состоит из двоичного сумматора со схемами ускоренного переноса, регистров для временного хранения операндов и рсгистра- сдвигателя, комбинационных схем для выработки логических условий и работы с десятичной арифметикой;

=> выполняет операции арифметического сложения и вычитания, пересылки, логического И и ИЛИ, инверсии, сложения по модулю 2, сдвига и др.

Управляющий автомат можно строить на основе:

=> программируемой логики. В этом случае достаточно составить микропрограммы для требуемого набора операций (команд) и «зашить» их в постоянную память;

=> схемной логики для выполнения операций, которые требуют повышенного быстродействия.

Кроме того, необходимо дополнительно ввести:

=> внутреннюю память для хранения промежуточных результатов обработки;

=> средства коммуникации для пересылки данных между операционным автоматом и внутренней памятью.

Такой структурный состав имели первые поколения микропроцессоров.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >