Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Бикмухаметов_-_Учебное_пособие_по_МАиМУ

.pdf
Скачиваний:
85
Добавлен:
22.03.2016
Размер:
2.68 Mб
Скачать

31

4 этап. Граф МП с УС и множеством X={x1, x2, …, xL}, где L – количество различных логических условий (ЛУ), проверяемых в содержательном графе МП.

Граф МП представлен на рис. 2.14. Здесь:

x1=α;

x2=p2;

x3=p3; x4= p1 p2 p4 .

 

 

 

 

 

 

 

 

 

 

 

Начало

 

 

 

 

 

 

 

 

 

 

 

y1 , y2 , y5

 

 

 

 

 

 

 

 

 

 

MK(4), y3

 

 

 

 

 

 

 

0

x1

 

 

1

 

MK(0), y2

0

x2

 

 

 

 

1

 

 

MK(5), y3

 

 

MK(1), MK(2), y3

 

0

 

1

 

x3

 

y3 , y7

MK(1), MK(3), y3 , y7

1

x4

0

 

 

y4

0

x2

 

 

 

 

1

 

 

MK(5), y3

MK(1), MK(2), y3

y6

Конец

Рис.2.14.

32

Контрольные вопросы.

1.Что является признаком ПРС в способе 3в?

2.На какую величину изменится результат суммирования, если от-

бросить единицу переноса на выходе KSM в способе 3в?

3.Почему при коррекции результата инвертируется знак?

4.О чем говорит наличие переноса Пm при сложении чисел с раз-

ными знаками?

5.Какие МО выполняются в Тпп?

6.Почему необходимо запоминать значение Пm в Тпер?

7.Почему при инвертировании знакового разряда дополнительного кода инвертируются и остальные разряды кода?

8.Почему при обнаружении ПРС удобнее анализировать переносы,

а не знаки операндов и результата?

9.По какому модулю выполняется суммирование в способе 1б?

10.В каких случаях в двух знаковых разрядах результата формиру-

ется код 1 0?

11.Как перевести отрицательное число из дополнительного кода в прямой код?

12.В чем заключается модификация прямого кода числа?

33

Глава 3. МП и схемы умножения чисел с фиксированной запятой

(G= Е • F).

Алгоритмы и ОС умножения зависят от положения запятой в разрядной сетке. Поэтому рассмотрим отдельно умножение дробей и целых чисел.

§3.1. Умножение дробей в прямом коде.

Пусть m=0, т.е. используется сетка вида:

В этой сетке: Fпр= f0 , f –1 f –2 …..f –n = ±(f –12-1+ f –22-2+…+f –n2-n ); Eпр= e0 , e –1 e –2…e –n ; Gпр= g0 , g –1 g –2…g–n ,

где f0, e0, g0 - знаки

Правила.

1.g0 = e0f0

2.|G|= |E| • |F|= |E|•(f–12–1+f–22–2+…+f–n2–n)= |E|f–12–1+|E|f–22–2+…+|E|f–n2–n

Здесь реализуется алгоритм умножения столбиком, когда |G| формируется в

виде суммы частичных произведений |E| на отдельные разряды |F|. Возможны

2 варианта умножения столбиком: вариант 1, когда сумма частичных произ-

ведений (СЧП) формируется, начиная с младших разрядов |F|; вариант 2, ко-

гда СЧП формируется, начиная со старших разрядов |F|.

Рассмотрим оба варианта на примере умножения столбиком вручную.

Пусть m=0, n=4, |E| = 1316 = 0,1101, |F| = 1116 = 0,1011

Вариант 1

 

Вариант 2

0,1101

 

0,1101

 

 

0,1011

 

0,1011

 

 

 

 

 

 

 

 

 

 

1101

 

1101

 

 

1101

 

0000

 

0000

 

1101

 

 

1101

 

1101

 

0,10001111=|G|

0,10001111= |G|

В обоих вариантах частичные произведения суммируются с необходи-

мым сдвигом между собой. В зависимости от того, как реализуется этот

34

сдвиг в схеме, различают 4 способа умножения, в которых используются 3

регистра: RG1 для F, RG2 для СЧП, RG3 для Е, причем перед началом ум-

ножения RG2: = 0.

Способ 1. (умножение со сдвигом множителя и СЧП вправо)

При умножении n раз выполняется цикл:

1)Если p=1, то |E| прибавляется к RG2.

2)RG2 и RG1 сдвигаются вправо на 1 разряд.

В результате в RG2 формируются n старших разрядов |G|, а в RG1- n младших разрядов |G|.

Способ 2. (умножение со сдвигом множителя вправо, а множимого влево)

Здесь, в отличие от способа 1, в каждом

цикле вместо сдвига RG2 вправо cдвигается RG3

влево.

Способ 3. (умножение со сдвигом множителя и СЧП влево)

При умножении n раз выполняется цикл: 1) RG2 сдвигается влево на 1

разряд.

2)Если p=1, то |Е| прибавляется к RG3.

3)RG1 сдвигается влево на 1разряд

Способ 4. (умножение со сдвигом множителя влево, а множимого вправо)

Здесь, в отличие от способа 3, в каждом цикле вме-

сто сдвига RG2 влево сдвигается RG3 вправо.

Преимущественно используется способ 1 как наи-

более экономичный (в том смысле, что обеспечивает получение произведения удвоенной длины с помо-

35

щью регистров только одинарной длины). В этом способе формула для |G|

приводится к следующему виду:

|G|= ((…(0+ |E|f –n)2–1+|E|f –(n–1))2–1+…+|E|f –1)2–1, т.е., умножение сводится к n- кратному повторению цикла: СЧПj = (CЧПj–1+|E|f –(n–j+1))2–1, где

СЧПj – СЧП в j-м цикле умножения; j = 1÷ n; при j = 1 СЧПj–1 = СЧП0 = 0;

при j = n СЧПj = СЧПn =|G|.

Здесь к ранее сформированной СЧП прибавляется |E|, если соответствую-

щий разряд множителя равен 1; затем СЧП умножается на 2–1, что реали-

зуется путем сдвига вправо на 1 разряд.

В ОС (рис. 3.1) СТ означает счетчик циклов умножения, и в начале умно-

жения выполняются МО: RG1: = Fпр , RG2: = 0, RG3: = Eпр ,СТ: = n

Затем n раз выполняется цикл:

1)Если p4=1, то |E| прибавляется к RG2 (МО1).

2)RG2 и RG1 (1:n) сдвигаются вправо на 1 разряд (МО2).

3)Из содержимого СТ вычитается единица (МО3).

В результате в RG2(1:n) оказываются n старших разрядов |G|, а в RG1(1:n)

− n младших разрядов |G|. Далее |G| округляется до n разрядов после запя-

той путем прибавления к RG2 единицы младшего разряда (МО4), если p3=1. Окончательно результату присваивается отрицательный знак (МО5),

если знаки E и F разные, и Gпр выдается на выходную шину Z (МО6).

p1

 

p3

 

 

 

 

 

 

 

 

p

4

 

 

 

 

 

 

 

 

 

Z(0:n)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Зн

 

 

 

 

RG1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

1

 

 

 

 

 

n

n+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Зн

 

 

 

RG2

 

 

 

 

 

 

 

 

 

 

 

 

 

5

( CT 0)

 

0

 

1

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CT

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

П 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

KSM

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p 2

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Зн

 

 

 

RG3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

1

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 3.1.

36

Начало

0

p4

 

 

1

 

1

2,3

 

p5

0

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

p3

 

Округление

 

G

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

p1

p2

 

 

 

1

 

 

5

6

Конец

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

Выдача G пр на шину Z

Рис. 3.2

Список МО, использованных в графе МП на рис. 3.2:

RG2(1: n) : RG2(1: n) RG3(1: n); MO1 : RG2(0) : П ;

0

RG2 : 0.RG2(0: n -1);

MO2 : RG1(1: n) : RG2(n).RG1(1: n -1);

MO3 : CT : CT -1;

MO 4: RG2 : RG2 2-n ;

MO5 : RG2(0) : 1;

MO6 : Z : RG2.

Далее построим таблицу состояний регистров ОС умножения, считая,

что n=4, E=+13/16=+0,1101, F=-11/16=-0,1011.

 

 

 

 

 

 

 

 

 

 

37

 

 

 

Здесь Eпр=01101, Fпр=11011.

 

 

 

 

 

 

RG2

 

 

 

RG1

 

p4

RG3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MO

зн

,

 

 

 

зн

,

 

 

 

зн,

 

 

 

0

0

0

0

0

1

1

0

1

1

0 1 1 0

 

1

Исходное состояние

+

1

1

0

1

 

 

 

 

 

1-й цикл.

 

p4

1

0

1

1

0

1

 

 

 

 

 

Сложение

 

RG2 E

0

0

1

1

0

 

1

1

0

1

Сдвиг

 

 

1

+

1

1

0

1

 

 

 

 

 

2-й цикл.

p4

1

0

0

1

1

 

 

 

 

 

Сложение

 

 

 

 

 

 

 

 

 

 

 

 

0

1

0

0

1

 

1

1

1

0

Сдвиг

 

 

0

 

 

 

 

 

 

 

 

 

 

 

p4

0

0

1

0

0

 

1

1

1

1

3-й цикл.

 

+

1

1

0

1

 

 

 

 

 

4-й цикл.

p4

1

0

1

0

0

0

 

1

1

1

1

Сложение

 

 

 

 

 

 

 

 

 

 

 

 

 

Сдвиг

 

 

 

 

Ст.разряды

 

Мл.разряды

 

 

 

0

1

0

0

1

 

 

 

 

 

Округление

G

1

1

0

0

1

G пр

 

 

 

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

§3.2. Умножение целых чисел в прямом коде

Пусть n=0, т.е. используется сетка вида

Зн

 

 

m

m−1

0

 

 

 

 

 

В этой сетке: Fпр= fmfm−1…f0 = ±(fm−12m−1 +fm−22m−2 +…+f020) ;

Eпр= emem−1…e0 ;Gпр= g2mg2m−1…g0 , где fm, em, gm – знаки, причем g2m= fmem .

Если используется способ 1, то формула для |G| приводится к виду:

|G|= |E|×|F|= |E|(fm−12m−1+…+ f020)=2m|E|(fm−12−1+…+f02−m) = =2m{(((…(0+ |E|f0)2−1+ |E|f1)2−1+…+ |E|fm−1)2−1} ;

mскобок

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

умножения дробей, следовательно, для умножения целых чисел можно ис-

пользовать предыдущую схему, но результат должен быть умножен на 2m,

т.е. запятая перенесена на m разрядов вправо. Результат оказывается при этом в (2m+1) разрядах. По правилам же машинных вычислений каждый следующий больший формат для представления чисел должен быть в 2 раза больше предыдущего, т.е. произведение должно быть сформировано в

((2m+2) разрядах в виде:

Зн

0

|G|

 

 

 

 

(2m+2) разрядов (двойной формат)

38

По сравнению со схемой умножения дробей в ОС (рис.3.3) добавлены: связь из RG1 в RG2 и триггер знака Tзн , а в каждом цикле RG2, RG1 и Тзн одновременно сдвигаются вправо. По окончании m циклов код в RG2, RG1 и Тзн

дополнительно сдвигается вправо на 1 разряд. Благодаря этому произведение формируется в RG2 и RG1 в двойном формате, а в Тзн оказывается знак F.

Рис.3.3.

Работа ОС описывается содержательным графом МП на рис.3.4.

НАЧАЛО

0

р4

1

1

2, 3

0

р3

1

2

0

р1 р2

1

4

5

6

5

КОНЕЦ

39

RG2:=Fпр; RG2:=0; RG3:=Eпр; CT:=m

RG2(m−1:0):=RG2(m−1:0)+RG3(m−1:0); RG2(m):=Пm.

2:RG2:=0.RG2(m−1); RG1:=RG2(0).RG2(m−1); Tзн=RG1(0).

3:CT := CT−1

RG2(m):=1

Z:=RG2(Выдача(m+1) старших разрядов Gпр

RG2:=RG1

[Выдача (m+1) старших разрядов Gпр]

Рис. 3.4.

§3.3. Умножение целых чисел в дополнительном коде.

Исходные положения.

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

Fдоп = 0.|F|= F, если F > 0

(3.1)

 

 

 

 

1.|F|+ 2−n = 2m +2m − 2−n −|F|+2−n = 2m+1+ F, если F<0

(3.2)

40

2.Так как умножение сводится к ряду последовательных сложений, а сумма дополнительных кодов равна дополнительному коду алгебраической суммы, то можно показать, что Eдоп × F = Gдоп (3.3)

С учетом этих двух положений дополнительные коды E и F перемножаются как обычные (m+1)-разрядные целые числа без знака, т.е. знаки E и F участ-

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

то Eдоп× Fдоп = [согл.(3.1)] = Eдоп× F = [согл.(3.3)] = Gдоп

Если же F<0, то Eдоп×Fдоп = [согл.(3.2)] = Eдоп(2m+1+ F) = Eдоп2m+1+ Eдоп F = =[ согл.(3.3)] = Eдоп2m+1+ Gдоп .

Таким образом, если F<0, то требуется коррекция результата, т.е. из полу-

ченного результата нужно вычесть Eдоп2m+1.

Для умножения в дополнительном коде предыдущая схема дополняется знаковым разрядом в KSM, триггером переноса Tпер и цепями инверсной подачи разрядов RG3 в KSM (рис.3).

Рис.3