Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая работа преп Тарасов.doc
Скачиваний:
7
Добавлен:
10.11.2018
Размер:
2 Мб
Скачать
☆

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

Приведем вариант схемы для случая вертикального кодирования.

Блок – схема алгоритма работы микропрограммного устройства управления.

Z1

0

1

Z2

Z3

Z4

0

1

2. МК с одним адресом в адресном поле. Адресация МК- принудительная с одним адресом.

Sоп

X

А'

β

При БПУ X=0 и АСЛ=А'β

При УПУ X=f и АСЛ=А'Xf

Кодирование МК – горизонтальное.

Микропрограммные устройства управления с принудительной адресацией и одним адресом работает в соответствии с микропрограммой, имеющей следующий вид:

Z1

0

1

Z2

Z3

Z4

0

1

  1. Естественная адресация команд.

Форматы микрокоманд (МК)

Операционная МК:

Р1

Управляющая МК:

Р1

Р1 – признак, с помощью которого различаются эти две микрокоманды.

Алгоритм работы микропрограммного устройства управления имеет следующую граф - схему:

Р2=1 при БПУ (поле Х=0)

Р2=0 при УПУ (поле Х≠0)

Асл = СТАМК + 1, если операционная МК Асл = СТАМК + 1, если УПУ при условии хi=l Асл = А при БПУ и при УПУ, если хi=1

X1=P1

X2=P2

X3=xi

X4=сигнал «останов»

Z1

0

1

Z2

Операционная МК 0 1 Управляющая МК

Z3 1 БПУ

Z4

  1. УПУ

  1. 1

Z4 Z5

0

1

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

Примеры реализации некоторых алгебраических операций.

Пример 1.

Сложение - вычитание в дополнительном коде чисел, поступающих в дополнительном коде. Результат выдается в дополнительном коде(способ 1а)

  1. Если S=A+B, то [S]доп=[А]доп+[B]доп. Сложение по mod 2m+1

  2. Если S=A-B= А+(-В), то [S]доп=[А]доп+[В]доп+2-n (по mod 2m+1) Если необходимо изменить знак у слагаемого В, т.е. получить -В, то

необходимо инвертировать все разряды числа, включая знаковый, и к

младшему разряду прибавить единицу (+2-n).

Пусть

m=4, n=0, S=A-B, А=10, В=-3 S=10-(-3)=13

Апр=0.1010=10 [А]доп=0.1010 Впр=1.0011=-3 [В]доп=1.1101

Операция вычитания. +[А]доп= 0.1010

[В]доп= 1.0011

[S]доп= 0.1101 =13

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

  1. Признак переполнения формируется в случае, если знаки А и В совпадают, но не совпадают со знаком суммы S.

  2. Признак переполнения формируется, если не совпадают переносы в знаковый разряд Пm и из знакового разряда Пm+1, т.е.

Пm Пm+1 ɣ Пm Пm+1=1

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

Примеры определения переполнения разрядной сетки.

а)А=12; В=5

+ [А]доп= 0.1100

[В]доп= 0.0101

[S]доп=1.0001 Пm=1

Пm+1=0

б)А=-12; В=-5; Апр=1.1100 ; Впр=1.0101 + [А]доп= 1.0100

[B]доп= 1.1011

[S]доп=10.1111

Пm=0 Пm+1=1

Структурная схема АЛУ для выполнения операций сложения - вычитания чисел, поступающих в дополнительном коде, имеет следующий вид:

Список микроопераций:

y1:RG1(8:0):=X(8:0) Tпрс:=0

y2 :RG2(8:0):=X(8:0)

y3 :RG1:=RG1+RG2

___

y4 :RG1:=RG1+RG2+1

y5 : Tпрс:=1

y6 : Z(8:0):=RG1(8:0)

Список условий:

1, если сложение

Х1= 0, если вычитание

__ __

Х2=П9П8ɣП9П8=1, если произошло переполнение разрядной сетки.

Микропрограмма выполнения операций сложение – вычитание чисел, поступающих дополнительном коде, имеет следующий вид:

у1

у2

Сложение 1 0 Вычитание

у3 у4

1 0

у5 у6

Пример 2.

Сложение – вычитание в модифицированном дополнительном коде чисел, поступающих в прямом коде (способ 2б).

Слагаемые А и В поступают в прямом коде. Сумма S формируется в прямом коде. В процессе сложения – вычитания в необходимых случаях слагаемые А и В могут переводиться в дополнительный код.

Структурная схема АЛУ имеет следующий вид:

Список микроопераций:

у1 : Тпрс: = 0

у2 : RG2(8:0):=X(8:0)

у3: RG1(9:0):=X(8)X(8:0)

______

у4: RG2(8):= RG2(8)

________

у5: RG1(7:0):=RG1(7:0)

у6: RG1:=RG1+1

у7: RG1 := RG1+00. RG2(7:0)

_______

у8: RG1:=RG1+11.RG2(7:0)+1

у9 : Tnpc: = 1

у10: Z(8:0):=RG1(8:0)

В регистр RG1 и комбинационный сумматор SM вводится по дополни- тельному знаковому разряду. В начале операции в RG1 записывается моди - фицированный прямой код А, а в RG2 - прямой код второго слагаемого В. Вычитание сводится к сложению путем предварительного изменения знака слагаемого В на противоположный.

Сложение выполняется следующим образом:

  1. Слагаемое А переводится в модифицированный дополнительный код.

  2. В регистре RG1 формируется сумма S в дополнительном коде.

[S]доп=[А]доп +[В]доп по mod 2m+1

При этом выполняется либо микрооперация RG1 := RG1+00. RG2(7:0), если В>0; либо микрооперация RG1:= RG1+11. RG2(7:0)+1, если В<0.

3. Сигнал ПРС формируется на втором этапе, либо по несовпадению знаковых разрядов суммы в RG1, либо при получении результата S=-2m

Т.е. S=11.0000 0000

4. На последнем этапе выполняется перевод суммы S из модифицированного дополнительного кода в прямой код, если на втором этапе не произошло переполнение разрядной сетки (ПРС).

Список условий:

X1= 0, если выполняется операция вычитание

1, если выполняется операция сложение Х2=P2 = RG1(8)- знаковый разряд слагаемого А, при этом Р1 – второй знаковый разряд, который называется также разрядом переполнения разрядной сетки ПРС.

X3=P3=RG2(8)- знаковый разряд слагаемого В.

Х4= Р1 + Р2 = Р1Р2ɣР1Р2 - сумма по модулю 2 знаковых разрядов слагаемых А и В Х4=1, если знаки P1 и Р2 разные Х4=0, если знаки Р1 и Р2 одинаковые

Х5= Р4=1, если RG1(7:0)=0; Р4 - сигнал обнаружения нуля (СОН) в значащих

разрядах регистра RG1.

y1

y2 Запись слагаемых А и В

в прямом коде в регистры.

y3

Сложение 1

  1. Вычитание

у4 Изменение знака у второго

слагаемого В,если выполняется

0 операция вычитания.

1

y5 Образование

дополнительного кода

y6 слагаемого А, если А<0.

  1. 1

y7 y8 Выполняется

операция

суммирования

1 0

Знаки Р1 и Р2 Знаки Р1 и Р2

разные одинаковые 0

1

если S=-2m 1

0

Образование

y9 y5 прямого кода

суммы S

(переход от

y6 дополни-го

кода к

прямому)

y10

Пример 3.

Умножение двух чисел в прямых кодах. Сдвиг множителя и суммы частичных произведений вправо (способ 2.1)

С=А*В

А - множимое; В - множитель.

Структурная схема АЛУ имеет следующий вид:

Список микроопераций:

у1: СТ:= 8 у2 : RG3(8:0):=X(8:0) у3: RG1(8:0):=X(8:0) у4: RG2(8:0):=0

у5: RG2(7:0):=RG2(7:0) + RG3(7:0)

RG2(8):= П7 y6: T3H:=RGl(0)

RG1(8:0):=RG2(0).RG1(8:1) RG2(8:0):=0.RG2(8:1) y7: СT:=CT-1

у8: RG2(8):= 1, если результат C<0, то в RG2(8) записывается 1 y9: Z(17:9):= RG2(8:0) Z(8:0):=RG1(8:0)

В каждом цикле модуль множимого А прибавляется к содержимому RG2 по сигналу у5, если младший разряд RG1 равен 1. Затем содержимое RG1, RG2 и Тзн сдвигается вправо на один разряд по сигналу у6. После выхода из цикла (условная вершина Х2) выполняется еще один сдвиг вправо по сигналу у6, чтобы привести произведение в RG2 и RG1 к удвоенному формату. При этом в RG2 оказывается (m+1) старших разрядов, а в RG1 - (m+1) младших разрядов модуля произведения С. В триггере знака Тзн находится знак множителя В. Произведению С присваивается отрицательный знак по сигналу у8, если знаки сомножителей А и В разные.

Список условий:

X1=P1 - младший разряд множителя В

Х2=P4- содержимое счетчика циклов СТ

X2= 0, если содержимое счетчика СТ больше нуля

1, если содержимое счетчика СТ равно нулю Х3= Р2 +Р3- сумма по модулю 2 знаковых разрядов сомножителей В и А

y1

y2 Запись сомножителей

А и В в прямых кодах

y3 в регистры RG3 и RG1

y4 Установка значения

счетчика циклов.

0

1 Сложение модуля А с

суммой частичных

у5 произведений. П7 – пере-

нос из старшего разряда

сумматора SM.

y6 Сдвиг вправо на один

разряд содержимого

y7 регистров RG1 и RG2;

Вычитание 1 из счетчиков

циклов.

0

Выход из цикла

1

у6 Сдвиг вправо на один

разряд.

0

1 Формирование знака произве-

у8 дения С. 1- если знаки

сомножителей А и В разные.

у9 Выдача результата на шину Z.

Пример 4.

Деление чисел с фиксированной запятой с восстановлением остатка (п=8, т=0). Числа - правильные дроби со знаком (способ 3.1).

Деление С=А/В выполняется на основе школьного алгоритма деления «уголком» и сводится к циклическому вычитанию делителя В из удвоенных частичных остатков (ЧОС) необходимое количество раз. В каждом цикле деления определяется одна цифра частного С.

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

у1: CT:=8;RG1:=0

y2:RG2(0:9):=X(0).0.X(l:8) у3: RG3(0:8):=X(0:8) у4: RG1(0):=1

у5: RG2(1:9):= RG2(1:9)+1. RG3(1:8)+2-8 у6: RG2(1:9):= RG2(1:9)+0. RG3(1:8) у7: RG2(0:9):=RG2(1:9).0

y8: RG1(1:9):= RG1(2:9). RG2(1)

у9: Tпpc: = 1 y10: CT:=CT-1

y11: RG2(0:9):=RG1(0).0.RG1(1:8) y12: RG2(1:9):= RG2(1:9)+2-8 y13: Z(0:8):= RG2(0). RG2(2:9)

Микропрограмма начинается с установления начальных значений регистров и счетчика. После этого по сигналу у4 устанавливается знак частного С=А/В и производится пробное вычитание модулей |А| - |В| = G0 по сигналу у5. Знак RG1(0) частного равен 1 если знаки делимого и делителя разные (условие Х1=Р1+Р2). Пробное вычитание производится с целью выявления возможного переполнения разрядной сетки (ПРС). Если G0>0, то возникает ПРС и триггер переполнения Тпрс устанавливается в 1 и деление не выполняется. Если результат пробного вычитания Go<0, то восстанавливается модуль делимого |А| по сигналу у6. Далее (n+1) раз повторяется цикл деления. В каждом цикле содержимое RG2(частичный остаток) удваивается сдвигом влево на один разряд по сигналу у7 и формируется новое значение частичного остатка (ЧОС) путем вычитания |В| по сигналу у5. По знаку ЧОС, т.е. Р3, формируется в младшем разряде RG1 очередная цифра частного С, для этого выполняется сдвиг влево разрядов RG1(вcex разрядов кроме знакового RG1(0)) с вводом справа в разряд RG1(9) значения Р3= RG2(1), т.е. RG1(9):= RG2(1) по сигналу у8. Если ЧОС меньше 0, то по сигналу у6 восстанавливается предыдущий удвоенный остаток. Цикл деления завершается вычитанием 1 из счетчика СТ по сигналу у10и анализом его состояния (условие х3). После выхода из цикла деления результат С (кроме младшего разряда) передается из RG1 в RG2 по сигналу у11 для округления до n разрядов. При округлении к младшему разряду RG2 прибавляется 1, если RG1(9) = Ps = Х4 =1. В процессе округления может возникать ПРС, когда округленное значение |С|=1 (условие Х2=Р3).

Список условий:

X1=P1+P2

X2=P3

X3= 1, если СТ=0

0, если СТ>0

X4=P5=RG1(9)

у1

у2

у3

0

1 Формирование знака

у4 результата С

у5 Пробное вычитание

|A| - |B|

0

у9 1

у6 Восстановление |A|

у7 Сдвиг влево RG2

у5 Вычитание

у8 Сдвиг RG1

А В С D

A B C D

0

1

у6 Восстановление ЧОС

у10

0

1

у11 Передача

содержимого RG1 в RG2

0

1

у12 Операция

округления

1

0

у13 Выдача результата

на шину Z

Построение таблиц микрокоманд.

Рассмотрим пример составления таблицы МК для выполнения микропрограммы ускоренного умножения.

0 0 0

1 1 1

0

1

0

1

0

1

0

1

В приведенной микропрограмме (МП) ускоренного умножения количество различных МО равно N=7: {у1, у2,...., у7}, количество различных ЛУ L=7: {х1, х2,...., х7}, поэтому l= ]log2(L+l)[=3, т.е. поле X должно иметь три разряда.

В соответствии с количеством вершин в графе МП требуемое количество ячеек УП Р' ориентировочно равно 16, поэтому Р = ]log2 Р' [=4, т.е. разрядность адресных полей А1 и А2 равно 4.

Построим таблицу МК для случая принудительной адресации с двумя адресами в МК, используется горизонтальный способ кодирования микроопераций.

Адрес

ячейки

 

Микропрограмма

Примечание

Sоп

у1у2у3у4у5у6у7

Х

А1

А2

МО

ЛУ

 

Анач

x1=0

x1=1

x2=0

x2=1

x3=0

x3=1

x4=0

x4=1

x5=0

x5=1

x6=0

x6=1

x7=0

x7=1

0000

0 0 0 0 0 0 0

001

0001

0010

-

х1

0001

0 0 0 0 0 0 0

010

0011

0100

-

х2

0010

1 0 0 0 0 0 0

000

0101

----

y1

БПУ

0011

0 0 0 0 0 0 0

011

0101

0110

-

х3

0100

0 1 0 0 0 0 0

000

0101

----

y2

БПУ

0101

0 0 0 1 1 0 0

100

0111

1000

y4,y5

х4

0110

0 0 1 0 0 0 0

000

0101

----

y3

БПУ

0111

0 0 0 0 0 0 0

001

0001

0010

-

х1

1000

0 0 0 0 0 0 0

101

1001

1010

-

х5

1001

0 0 0 0 0 0 0

110

1011

1100

-

х6

1010

1 0 0 0 0 0 0

110

1011

1100

y1

х6

1011

0 0 0 0 0 0 0

111

1101

1110

-

х7

1100

0 0 0 0 0 1 0

111

1101

1110

y6

х7

1101

0 0 0 0 0 0 0

000

0000

----

-

Ост.

1110

0 0 0 0 0 0 1

000

0000

----

y7

Ост.

В этой таблице каждая строка соответствует одной ячейке управляющей памяти (УП). Адрес ячейки указан в старших четырех разрядах строки. В остальных разрядах строки записана микрокоманда. Длина микрокоманды (количество разрядов в ячейке УП) равна K=N+l+2p=18 т.к. N=7, l=3,а р=4.

В графе «Примечание» указаны микрооперации (МО), входящие в данную МК и ЛУ, проверяемые при выполнении МК. Прочерк в графе МО означает пустую МК.

Строки таблицы заполнены в соответствии с графом МП. Из графа следует, что первая МК является пустой (условная вершина x1 ) и осуществляется УПУ по значению х1. Поэтому в поле Sоп для нулевой строки записаны нули, а в поле X записан номер ЛУ х1, т.е. Х=001. В полях А1 и А2 указаны адреса первых следующих свободных ячеек УП, т.е. А1=0001, а А2=0010. Таким образом первая МК передает управление следующей МК с адресом А1 =0001 при x1=0 и МК с адресом А2=0010 при x1=1.

Таким образом, при х1=0 должна выполняться УПУ по значению х2. Поэтому в первой строке таблицы записана пустая МК, передающая управление A1=0011 при х2=0 и А2=0100 при х2=1.

При x1=1 осуществляется переход к операторной вершине, в которой записана МО у1. Поэтому во второй строке таблицы записана МК, формирующая выходной сигнал у1 и осуществляющая БПУ в следующую свободную ячейку с адресом 0101. Таким образом, во второй строке в поле

Soп единица записана в первом разряде, соответствующем сигналу у1, т.е. Soп=100 0000, а в поле X записаны нули, т.к. переход к следующей МК

безусловный и никакое ЛУ не проверяется. В поле A1 записан адрес 0101, а значение адреса безразлично (переход по А2 не происходит).

При х2=0 выполняется УПУ по значению х3. МК, проверяющая значение х3 записана в третьей строке таблицы. При этом, если х3=0, то происходит БПУ к вершине, в которой записаны у4 и у5, а при х3= 1 - БПУ к вершине у3. Поэтому в третьей строке записана пустая МК (Soп=0) с проверкой условии х3 (Х=011) и адрес А1=0101. Этот адрес был ранее зарезервирован для МК, формирующей сигналы у4 и у5. В поле А2 записан адрес следующей свободной ячейки, т.е. А2=0110.

При х2=1 выполняется МК, формирующая МО у2 и БПУ по адресу 0101 т.е. A1=0101 в четвертой строке таблицы и Sоп=010 0000 (у2=1).

Наконец, в МК по адресу 0101 записана сама МК формирующая МО у4 и у5 и УПУ по значению х4. Таким образом, в поле Sоп записано Sоп=000 1100. Из графа следует, что при х4=0 выполняется возврат в начало МП. Однако указать в поле А1 адрес нулевой ячейки нельзя, т.к. по Анач=0000 происходит останов МП. Поэтому в пятой строке в поле А1 указан адрес следующей свободной ячейки , т.е. A1=0111, в которой повторено содержимое нулевой ячейки, а в поле А2 записан адрес А2=1000.

В шестой строке (строке 0110) записана МК формирующая МО у3 и осуществляющая БПУ к МК из пятой строки.

В седьмой строке, как уже отмечалось, повторено содержимое нулевой ячейки.

В восьмой строке записана пустая МК (с Sоп=000 0000), проверяющая ЛУ х5 с УПУ по адресам А1=1001 и А2=1010.

В девятой строке записана пустая МК поверяющая ЛУ х6 и с УПУ по адресам А1=1011 иА2=1100.

В десятой строке записана МК, формирующая МО y1, т.е. Sоп=l00 0000 и проверяющая следующее условие х6 с последующим УПУ по адресам А1=1011 и А2=1100.

В одиннадцатой строке записана пустая МК, проверяющая х7 и с УПУ по адресам А1=1101 и А2=1110.

В двенадцатой строке записана МК, формирующая у6, проверяющая х7 и с УПУ по адресам А1=1101 и А2=1110.

В тринадцатой строке записана пустая МК, осуществляющая БПУ на конечную вершину с адресом Анач=0000 и остановом.

В четырнадцатой (последней) строке записана МК, формирующая у7, с выходом на конечную вершину с адресом Анач=0000 и остановом.