Файл: Каган Б.М. Цифровые вычислительные машины и системы учеб. пособие.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 09.04.2024

Просмотров: 295

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

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

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

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

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

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

356


в делителе, либо должен быть сформирован сигнал пре­ рывания, фиксирующий данное явление.

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

5-11. В Ы П О Л Н Е Н И Е О П Е Р А Ц И Й Н А Д Д Е С Я Т И Ч Н Ы М И Ч И С Л А М И

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

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

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

Рассмотрим построение одноразрядного десятичного комбинационного сумматора для кода 8421. Одной из проблем является получение десятичного переноса. Сиг­ нал переноса должен посылаться в старший разряд, ес­ ли сумма не меньше 10, однако этот факт не может быть зафиксирован только с помощью переноса из старшего двоичного разряда. Десятичный перенос должен быть образован также, если сумма равна 10-4-15.

Другой проблемой является то, что при образовании переноса из старшего разряда в действительности пере­ носится 16 вместо 10 и сумма должна быть исправлена

357

путем прибавления 6. Например, сумма семи и девяти образуется следующим образом:

 

,0111

1

чооі

,0000

 

Перенос/*

01Ю

 

411

ОНО

Если сумма

находится между 10 и 15, то в старший

разряд должен

быть передан перенос, а для корректиров­

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

Примером может служить сложение 6 и 8, при кото­ ром получается 4 с переносом.

Перенос, определяемый

по наличию единиц в д в у х

■ОНО

1000

старших разрядах

1

jyjo

При втором сложении перенос из старшего разряда

~^0110

игнорируется

 

-------

 

1

0100

Функциональная схема сумматора, действующая опи­ санным образом, показана на рис. 5-19. Схема собрана на семи двоичных сумматорах SM, двух схемах И и схе­ ме ИЛИ.

Сумматоры SM1SM4 образуют результат суммиро­ вания цифр йі и Ьі. Сумматоры SM5SM6 добавляют к результату 6 при наличии переноса в следующий раз­ ряд. Схемы # і, # 2 формируют перенос, если результат сложения больше десяти.

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

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

Рассмотрим выполнение операции умножения в ма­ шинах, использующих десятичную систему счисления. Десятичное умножение можно выполнить в виде ряда

358


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

В некоторых вычислительных машинах выполнение десятичного сложения и умножения осуществляется с

В хо дн ой

Рис. 5-19. Одноразрядный комби­ национный десятичный сумматор.

помощью специальных таблиц, размещенных в запоми­ нающем устройстве ЗУ.

Таблица сложения занимает 100 четырехразрядных слов в ЗУ — по числу возможных комбинаций при сло­ жении двух десятичных цифр. Результат сложения вы­ бирается из ячейки, адрес которой образуется цифрами слагаемых. Под таблицу умножения в ЗУ отводится 200 четырехразрядных слов — 100 слов для старшей цифры произведения и 100 слов для младшей цифры. Резуль­ тат умножения выбирается из двух четырехразрядных ячеек ЗУ, адрес которых образуется цифрой множимого и цифрой множителя. Десятичная таблица умножения показана в табл. 5-9.

359


Рис. 5-20. Одноразрядный накапливающий десятичный сумматор.

 

 

 

Старшая цифра произведения

Т а б л и ц а

5-9

 

 

 

 

 

 

Цифры

0

 

2

3

4

5

6

7

8

9

сомножи­

 

телей

 

 

 

 

 

 

 

 

 

 

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

2

0

0

0

0

0

1

1

1

1

1

3

0

0

0

0

1

1

1

2

2

2

4

0

0

0

1

1

2

2

2

3

3

5

0

0

[

1

2

2

3

3

4

4

6

0

0

1

1

2

3

3

4

4

5

7

0

0

1

2

2

3

4

4

5

5

8

0

0

1

2

3

4

4

5

6

7

9

0

0

I

2

3

4

5

6

7

8

 

 

 

Младшая цифра произведения

 

 

 

Цифры

0

t

2

3

4

5

6

7

8

9

с омножи*

теяей

 

 

 

 

 

 

 

 

 

 

0

0

Ü

0

0

0

0

0

0

0

0

1

0

1

2

3

4

5

6

7

8

9

2

0

2

4

6

8

0

2

4

6

8

3

0

3

6

9

2

5

8

1

4

7

4

0

4

8

2

6

0

4

8

2

6

5

0

5

0

5

0

5

0

5

0

5

6

0

6

2

8

4

0

6

2

8

4

7 ■

0

7

4

1

8

5

2

9

6

3

8

0

8

б

4

2

0

8

6

4

2

9

0

9

8

1

6

5

4

3

2

1

360


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

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

Рассмотрим пример выполнения умножения 85 на 37, предполагая, что множимое представлено параллельным кодом.

При образовании частичных произведений старшие и младшие цифры на каждом шаге определяются из табл. 5-9.

П рим ер.

ѵ 85 Множимое х 37 Множитель

65 Младшие цифры произведения (1-й шаг)

53 Старшие цифры произведения (1-й шаг)

45 Младшие цифры произведения (2-й шаг)

21 Старшие цифры произведения (2-й шаг)

515 Сумма младших цифр произведения

263 Сумма старших цифр произведения

3145 Произведение

5-12. П Р И Н Ц И П П О СТ Р О ЕН И Я У СТ Р О Й СТ В А У П Р А В Л Е Н И Я П Р О Ц Е С С О Р А

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

Рассмотрим примерный порядок работы процессора при исполнении типичной одноадресной команды (на­ пример, сложения). Будем считать, что код исполняемой команды предусматривает выполнение индексации. Для сокращения записи микроопераций введем следующие обозначения регистров: СК—счетчик команд; РК — ре­ гистр команды; АР — адресный регистр; РО — регистр операнда, в котором находится один из операндов при сложении; АК— аккумулятор; ИР— индексный регистр.

361