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

книги из ГПНТБ / Чеботарев Н.А. Построение схем сложения и вычитания в электронных цифровых машинах [пособие]

.pdf
Скачиваний:
27
Добавлен:
29.10.2023
Размер:
3.46 Mб
Скачать

(3.11)

Сравнивая выражения (2.6), (3.7) и (3.11), видим, что время

сложения в сумматоре с групповым переносом примерно в !- раз

Рис. 29

больше, чем в сумматоре с одновременным переносом, но в к раз меньше, чем в сумматоре с последовательным переносом.

1)..1111

Д3 4

& &

4 В,

m m

 

II П ||

1 * /

Qi

L = 2

Qt-*

i - i

i1

 

 

 

\р«

 

к к Ц

 

 

 

Рис. 30

&S

Г л а в а IV

СЛОЖЕНИЕ ЧИСЕЛ, ПРЕДСТАВЛЕННЫХ

ВНОРМАЛЬНОЙ ФОРМЕ

4.1.Общие принципы выполнения операции сложения

Внормальной форме числа представляются в виде мантиссы

ипорядка, а именно:

N = M 2n,

где

М — мантисса чисел; П — порядок числа.

Порядок числа придает определенный вес разрядам мантиссы. Одинаковые разряды мантисс двух чисел с разными порядками имеют разные значения.

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

(выравнять порядки). Принципиально приведение можно осуще­ ствлять к любому порядку как меньшего, так и большего числа. В ЭЦМ числа приводятся к большему порядку. Это обусловлено следующими обстоятельствами. При изменении порядка, для того чтобы число осталось неизменным, необходимо сдвигать мантиссу на столько разрядов, на сколько единиц изменяется порядок. При этом, если порядок уменьшают, то мантиссу сдвигают в сторону старших разрядов (влево), а если — увеличивают, то мантиссу сдвигают в сторону младших разрядов (вправо). Так как в ЭЦМ разрядная сетка ограничена, то сдвиг мантиссы будет сопровож­ даться потерей определенного количества разрядов. При приведе­ нии порядков к меньшему порядку сдвиг мантиссы приведет к по­ тере старших разрядов, что недопустимо. Поэтому выравнивание порядков производят путем увеличения меньшего порядка и сдвига мантиссы вправо. Потеря при этом младших разрядов приводит к незначительной погрешности, равной половине значения младшего разряда разрядной сетки.

51

Проиллюстрируем сложение чисел с разными порядками при-

'мерой.

Пр и м е р : Требуется сложить два числа

А = 0,11011 • 10по; В—0,11001 • Ю100.

Число В меньше числа А, поэтому увеличим порядок числа В до порядка числа А (на две единицы) и сдвинем мантиссу числа В на два разряда вправо. После выравнивания порядков число В будет

В=0,00110Ю110.

Теперь можно выполнять сложение чисел путем сложения ман­ тисс:

, 0,11011 • 10llfl +0,00110Ю110

А + В = 1,00001 • 10110

При использовании нормальной формы представления чисел обычно оперируют с нормализованными числами. У нормализован­ ных двоичных чисел значение мантиссы лежит в диапазоне

0,5<М <1.

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

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

А + В =1,00001 • 101!0= 0 ,10001 •

10»‘.

Рассмотрим еще один пример.

 

П р и м е р : Найти разность чисел

 

А—-0,10011 • 10101 и В =0,11001 •

Ш100.

Выравниваем порядки, для чего сдвигаем мантиссу числа В вправо на один разряд и производим округление:

В =0,01101 • 10«н.

Теперь можно производить вычитание чисел путем вычитания мантисс:

0,10011Ю10‘

0,01101 • 1010> А—В=0,00110 • 10101

S2

Результат получился ненормализованный, гак как мантисса меньше 0,5. Для нормализации сдвигаем мантиссу влево на два разряда и порядок уменьшаем на две единицы:

А—В—0,00110 • Ю‘01^0,1100010011.

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

Операции с.порядками можно выполнять параллельно опера­ циям с мантиссами. Поэтому в арифметическом устройстве целе­ сообразно иметь два блока операций: блок операций с порядками (БОП) и блок операций с мантиссами (БОМ).

4.2. Блок операций с порядками

Прежде чем заниматься построением блока операций с поряд­ ками, рассмотрим, в каком виде порядки, представляются в ЭЦМ.

Форма представления порядков определяется теми действиями, которые выполняются с порядками. При выполнении всех четырех арифметических операций с числами с порядками выполняются только операции сложения и вычитания. Так как эти операции наи­ более просто выполняются при хранении чисел в дополнительном или обратном коде, то целесообразно порядки хранить в запоми­ нающем устройстве в виде одного из этих кодов. Так же просто операции сложения и вычитания выполняются с положительными числами. Поэтому часто порядки в ЭЦМ (машинные порядки) представляют в виде целых положительных чисел. В этом случае для получения машинного порядка к фактическому порядку, име­ ющему р разрядов, прибавляют число .Таким образом,

/7м= /7 ф+2*\

где

Ям-~представление порядка в ЭЦМ (машинный порядок);

Яф—фактический порядок; р — число разрядов, отведенное для представления цифровой

части порядка.

Значение машинных порядков для р 6 приведено в табл. 8. В этом случае фактический порядок может принимать значения от —64 до 63, а машинный от 0 до 127. Положительные порядки представляются в старшем разряде единицей и з остальных раз­ рядах цифровой частью фактического порядка. Отрицательные по­ рядки представляются в старшем разряде нулем и в остальных раз­ рядах дополнением цифровой части фактического порядка.

Рассмотрим пррцесс выравнивания порядков и на основании этого выясним состав блока операций с порядками.

При выравнивании порядков нужно произвести сдвиг мантиссы

53

одного из чисел (меньшего) на определенное количество разрядов. Следовательно, нужно установить, какое число меньшее и на сколь­ ко разрядов нужно сдвигать мантиссу этого числа. Для этого до­ статочно произвести вычитание из порядка первого числа порядка второго числа. Знак разности порядков укажет, какое число мень­ ше, а абсолютная величина разности — на сколько разрядов нужно сдвигать мантиссу.

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

Схема-блока операций с порядками при использовании сумма­ тора накапливающего типа приведена на рис. 31, а при использо­ вании сумматора комбинационного типа — на рис. 32.

Таблица 8

П ф

 

 

 

Пм

 

 

- 6 4

0

0

0

0

0

0

0

— 6 3

0

0

0.

0

0

0

1

— 21

0

1 0

1 0

1 1

- 0 1

0

1

1

1

1

1

1

0

1

0

0

0

0

0

0

01

1

0

0

0

0

0

1

21

1 0

1 0

1 0

1

631 1 1 1 1 1 1

4.3.Блок операций с мантиссами

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

При выравнивании порядков необходимо осуществить сдвиг

54

мантиссы меньшего числа. Поэтому нужно предусмотреть либо возможность осуществления сдвига на регистре, либо наличие

сдвигателя.

Меньшим может оказаться любое число. Поэтому нужно преду­ смотреть возможность подачи любого числа на сдвигатель, для че­ го необходимо иметь переключатель или обеспечить возможность сдвига на сумматоре накапливающего типа.

Если сдвиг мантиссы производится в регистре или сумматоре, то он выполняется путем ряда последовательных сдвигов на один разряд. При этом необходимо определить момент окончания сдви-

 

 

 

 

 

 

J

 

Odd

 

i

РзСмП

1

 

| РгСмМ

 

 

 

 

 

f

. Ds-jct

 

 

 

 

 

SUj.dfa-PcMtC

 

 

 

 

 

 

......

1

 

 

СмМ

 

 

 

 

 

1

С JLl.

 

 

 

 

1

СмП

 

 

 

 

QlWPpn

 

 

*йачснМ* о c

 

|

 

I

 

...... -I .

 

 

---------

 

 

 

fv

 

Рг/у.^

WdSРгЛ2-Снп\Ж * гг^ Уз'c5-

 

ОвчСмМа

 

 

ОдРгмг

QuPsni

PslfT

I

РеП2

Qopcns

 

 

 

I

 

Qrw

Qnfvni - jikdiA^/7-РД IУ).е& ЧН-РгП^ Qnd

 

I

 

 

 

 

 

 

 

l

чм

Рис. 32

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

ков.

Наличие сдвигателя в составе блока операций с мантиссами позволяет производить сдвиг сразу на требуемое количество раз­

55

рядов, что приводит к сокращению времени выравнивания поряд­ ков. Кроме того, в этом случае отпадает необходимость в подсчете количества сдвигов.

При нормализации результата может оказаться необходимым сдвинуть мантиссу либо в сторону младших разрядов (вправо), либо в сторону старших разрядов.

Рассмотрим, в каких случаях требуется сдвигать мантиссу впра­ во, а в каких влево, и определим признаки таких сдвигов. С этой целью выполним числовые примеры.

Пр и м е р 1. Требуется сложить два числа:

А=0,1110- 100-011 .

и

В=0,1001 • 10+001.

■Определяем разность порядков:

[/7д]доп=0.011 [Пв bon" M l 1 Па—Пв —0.010

Следовательно, .А';>В, и мантиссу числа В перед сложением нужно сдвинуть на два разряда вправо: М в =0,0010. Теперь сло­ жим мантиссы:

МА+ М В = 0, 1110+ 0,0010= 1,0000.

Произошло переполнение разрядной сетки мантиссы. Призна­ ком переполнения в данном случае является изменение значения знакового разряда мантиссы. Очень удобный признак переполне­ ния разрядной сетки мантиссы получается при использовании мо­ дифицированных кодов. В этом случае признаком переполнения разрядной сетки мантиссы является различие в значении двух зна­ ковых разрядов (01 или 10).

Для устранения переполнения разрядной сетки мантиссы до­ статочно сдвинуть мантиссу на один разряд вправо и увеличить порядок на единицу.

Пр и м е р 2. Требуется сложить два числа

А= —0,1110 • Ю-010'

и

В = +0,1001 • 10~in.

Определяем разность порядков:

[ПА]доп+[--Пв ]доп—1-110+ 0.001 = 1.111=—001.

Следовательно, !А1<!В| и перед сложением нужно сдвинуть мантиссу числа А (МА) на один разряд вправо: Мл =--0,0111.

Теперь сложим мантиссы:

[Мл ]доп + [Мв ]доп= 1 ,1001 +0,1001 =0,0010.

56

В старших разрядах результата получены нули. Следователь­ но, мантисса результата вышла за пределы нормализованных чи­ сел.

Для нормализации нужно сдвигать мантиссу влево, по.ка в стар­ ший разряд не попадет единица. Одновременно при каждом сдвиге на один разрцд нужно уменьшать порядок на единицу.

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

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

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

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

Возможный вариант структурной схемы блока операций с на­ капливающим сумматором приведен на рис. 31, а вариант схемы

ссумматором комбинационного типа — на рис. 32.

4.4.Функционирование схемы сложения чисел

внормальной форме

Рассмотрим функционирование схемы, приведенной на рис. 29, при сложении чисел, представленных дополнительным кодом, и одноадресной системе команд. В этом случае первое слагаемое находится в арифметическом устройстве, а именно: порядок числа в сумматоре порядков и мантисса в сумматоре мантисс. Второе

слагаемое принимается из числовой магистрали.

Микропрограмма операций сложения и вычитания приведена в табл. 9. -

При составлении микропрограммы (табл. 9) для порядков чи­ сел приняты обозначения П1 и П2, а для мантисс — Ml и М2. Рас­ смотрим последовательность выполнения микроопераций по эта­ пам.

На этапе подготовки производится очистка регистров для по­ следующего приема порядков и мантиссы второго слагаемого (мик­ рооперации 1, 2 и 3) и передача порядка первого слагаемого в ре-

57

Таблица 9

Содержание МО

Обозн. МО Р

4

Р

Q

. 1

Очистка РгШ

0 -* РгП 1

2

Очистка

РгП2

0-*РгП2

3

Очистка

РгМ2

0->РгМ2

4

Выдача П1

на РгП1

(СмП)-сРгШ

5

Прием

числа

, ч ! РгГ12

6Выдача П2 дополни­ тельным-кодом в СмП (РгП2)дк -»С мЛ

7Сдвиг мантиссы в СмМ

вправо на 1 разряд (СмМ)-> СмМ

8

Вычитание единиц

из

"'ip

-1->СмП

 

разности порядков

9

Сдвиг мантиссы в

 

(РгМ2)->РгМ2

 

РгМ2 вправо

 

10

Выдача мантиссы

в

"'iP

(РгМ2) --СмМ

 

СмМ без преобразов.

11

Выдача мантиссы

в

(РгМ2)пр ->СмМ

 

СмМ с преобразов.

12

Очистка СмП

 

0->СмП

13

Выдача,П1 и СмП

 

(РгП1)-*СмП

14

Выдача П2 в СмП

 

(РгП2)->СмП

15

Сдвиг в СмМ вправо

(СмМ) СмМ

 

на 1 разряд

 

16

Прибавление единицы

" ' i p

—]—i —>- 0 мi 1

 

к порядку в СмП

 

17

Сдвиг в СмМ влево

(СмМ)-*СмМ

18

Вычитание единицы из

1-*-СмП

 

порядка в СмП

 

19

Конец операции

 

 

P i

ЯслУЯвч

QoPrm

Pi

"mr»

 

QoPrH2

P i

и

 

QoPrМ2

Pi

 

 

С?ВчСмП

Pt

--

 

Qnn

Рг

 

(ЗВчРг2дк

P i

. {Азн

ОСдСуМ

 

 

 

 

P i

 

Q—1Смп

Pi

 

 

р-зы

ОсдРгмг

Ръ

<1сл

 

Рои

- (?ВчРг,М2

Рг

Чт

 

Рои

(?ВчРгМ2пг

Рг

Чсл.Чт

ОоСм11

Pi

 

Рзн

ОвчРгШ

P i

 

Рзн

<?ВчРгП2

P i

— „—

 

Р-о

(?СдСмМ

 

#

 

 

 

P i

--- »----

 

Р¥

Q -И С мП

P i

 

 

РТ Рем

(?СдСмМл

P i

---„

 

 

Q - ic m h

Ps

 

Ро

Q k o

гистр для хранения его до формирования результата (микроопера­ ция 4).

На этапе приема из числовой магистрали второго слагаемого осуществляется прием мантиссы в регистр мантисс Рг М2, а поряд-

58

ка в регистр порядков Рг П2 (микрооперация 5).

На этапе выравнивания порядкоз выполняются либо микроопе­ рации 6, 7, 8, либо 6, 8, 9.

При выполнении микрооперации 6 в сумматоре порядков обра­

зуется разность порядков и формируется сигнал р3„ =0

при поло­

жительной разности и Рз„ = 1— при отрицательной.

и произво­

Если Из,, = 1, то первое слагаемое меньше второго

дится сдвиг мантиссы в сумматоре мантисс (микрооперация 7), если Рзн =0, то меньшим является второе слагаемое и сдвиг ман­ тиссы производится в регистре мантисс (микрооперация 9). Каж­ дый сдвиг на один разряд сопровождается вычитанием единицы из разности порядков (микрооперация 8). Сдвиги выполняются до тех пор, пока разность порядков не станет равной нулю, что при­ ведет к выработке сигнала роп-

Этап сложения мантисс выполняется точно так же, как при сложении чисел с фиксированной запятой (микрооперация 10 или

П )-

После сложения мантисс формируется порядок результата. Это выполняется путем занесения в сумматор порядков порядка боль­ шего числа. Если р3н =0, выполняется микрооперация 13, а если !*3ц = 1, то микрооперация 14.

На этапе нормализации результата производится сдвиг мантис­ сы вправо или влево и коррекция порядка. Признаком сдвига впра­ во является наличие сигнала — переполнение разрядной сетки ман­

тиссы

=1. При этом выполняются микрооперации 15

и 16.

Признаком сдвига влево являются значения сигналов

У? —0 и

|лш= 0

(нулевое значение старшего разряда мантиссы).

При этом

выполняются микрооперации 17 и 18. Эти микрооперации повторя­ ются до тех пор, пока в старшем разряде мантиссы появится едини­ ца^ Рем =1). На этом закончится этап нормализации.

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

39

Соседние файлы в папке книги из ГПНТБ