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




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

 
 

 


Z1

Z2

 

Z3

Z4

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

 

Sоп X А' β

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

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

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

 

 

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

 
 


Z1

 

 

Z2

 

 

Z3

 

Z4

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

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

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

Р1

 


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

Р1

       
   

 


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

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

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

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

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

X1=P1

X2=P2

X3=xi

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

 

 

Z1

 

 

 

Z2

 

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

 

Z3 1 БПУ

Z4

0 УПУ

0 1

 

Z4 Z5

 

 

 

 

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

 

 

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

Пример 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, если вычитание

__ __

Х29П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

 

0 Вычитание

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

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

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

 

1

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

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

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

 

0 1

 

 

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

операция

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

 

1 0

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

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

 

 

если S=-2m 1

 

 

 

 
 


Образование

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 Установка значения

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

 

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

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

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

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

сумматора SM.

 

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

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

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

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

циклов.

 

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

 

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

разряд.

 

 

 

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 если знаки делимого и делителя
разные (условие Х112). Пробное вычитание производится с целью
выявления возможного переполнения разрядной сетки (ПРС). Если 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 (условие Х23).

 

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

X1=P1+P2

X2=P3

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

0, если СТ>0

X4=P5=RG1(9)

 

 

 
 

 

 


у1

 

 

у2

 

у3

 

 

 

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

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

 

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

|A| - |B|

 

 

у9 1

 

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

 

 

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

 

 

у5 Вычитание

 

у8 Сдвиг RG1

 

А В С D

A B C D

 
 

 


 

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

 

 

у10

 

 

 

 

у11 Передача

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

 

 

у12 Операция

округления

 

 

 

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

на шину Z

 

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

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

 
 


 

0 0 0

1 1 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   0 0 0 0 0 0 0       - х1
  0 0 0 0 0 0 0       - х2
  1 0 0 0 0 0 0     ---- y1 БПУ
  0 0 0 0 0 0 0       - х3
  0 1 0 0 0 0 0     ---- y2 БПУ
  0 0 0 1 1 0 0       y4,y5 х4
  0 0 1 0 0 0 0     ---- y3 БПУ
  0 0 0 0 0 0 0       - х1
  0 0 0 0 0 0 0       - х5
  0 0 0 0 0 0 0       - х6
  1 0 0 0 0 0 0       y1 х6
  0 0 0 0 0 0 0       - х7
  0 0 0 0 0 1 0       y6 х7
  0 0 0 0 0 0 0     ---- - Ост.
  0 0 0 0 0 0 1     ---- 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 и остановом.

 

 

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-12-07 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: