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

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

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

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

Добавлен: 09.04.2024

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

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

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

 

 

 

Т а б л и ц а

5-6

Тройка

Дополнительная

Кратность

Число

Передача

обрабатывае­

единица

разрядов

в

мых разрядов

из предыдущей

множимому

обработанных

следующую

множителя

тройки

 

разрядов

тройку

000

0

0

3

 

001

0

1

3

 

010

0

2

3

 

011

0

1

2

1

 

100

0

4

3

 

101

0

1

2

1

 

п о

0

2

3

— .

 

111

0

1

3

 

000

1

1

3

 

 

001

1

2

3

 

010

1

1

2

1

 

Oil

1

4

3

 

100

1

1

2

1

 

101

1

2

3

 

110

1

1

3

 

111

1

 

3

 

 

 

 

°

 

 

 

 

 

 

Т а б л и ц а

5-7

Младший

Тройка обраба­

Кратность

Число

Передача

разряд

тываемых

разрядов

старшей

разрядов

множимому

обработанных

в следующую

тройки

множителя

 

разрядов

тройку

 

0

000

0

3

 

 

0

001

2

3

 

0

010

2

3

 

0

011

А

3

 

0

100

4

3

 

0

101

2

2

1

 

0

п о

и

2

1

 

0

111

3

 

1

000

(8

3

 

1

001

12

2

0

 

1

010

'2

2

0

 

1

011

4

3

 

1

100

4

3

_

 

1

101

2

3

 

1

п о

2

3

___

 

1

111

0

3

 

346


5-7. В Ы П О Л Н Е Н И Е О П Е Р А Ц И И Д Е Л Е Н И Я

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

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

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

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

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

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

Схема выполнения деления с восстановлением остат­ ка с использованием прямого вычитания показана на рис. 5-1-7. Перед началом выполнения деления делимое находится в сумматоре, а делитель — в регистре делите­ ля. Если делимое имеет двойную длину, то в регистре частного располагаются его младшие разряды.

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

347


1,01010

 

Делимое(—0,01010)

Разряды

0,10101

 

Делитель(-J-0,10101)

частного

1,

Определение кода знака частного

 

 

 

 

, 0,101100 Сдвиг делимого влево на один разряд

 

+1,010011

Делитель

(дополнительный код)

 

 

Остаток (дополнительный код)

0

 

 

, 1,111111

Остаток < 0

 

Делитель

(прямой код)

 

+ 0 ,101101

 

Восстановительный остаток

 

0,101100

(пря­

Сдвиг остатка влево на один разряд

1,011000

мой код). Целая единица запасена в раз­

+ 1,010011

ряде знака

 

Делитель (дополнительный код)

 

 

 

0,0101011

Остаток (прямой код)

1

1,0101010

Остаток > 0

(пря­

Сдвиг остатка влево на один разряд

+

мой код)

 

 

1,010011

Делитель (дополнительный код)

 

0,101001

Остаток (прямой код)

1

1,010010

Остаток > 0

(пря­

Сдвиг остатка влево на один разряд

+

мой код)

 

 

1,010011

Делитель (дополнительный код)

 

0,100101

Остаток (прямой код)

1

1,001010

Остаток > 0

(пря­

Сдвиг остатка влево на один разряд

+

мой код)

 

 

1,010011

Делитель (дополнительный код)

 

0,011101

Остаток (прямой код)

1

0,111010

Остаток > 0

 

Сдвиг остатка влево на один разряд (пря­

+

мой код)

(дополнительный код)

 

1,010011

Делитель

 

0,001101

Остаток (прямой код)

1

 

Остаток > 0

 

348


делимого и делителя и запоминается в знаковом разряде регистра частного. Знаковый разряд сумматора гасится.

Для определения п разрядов частного выполняется п циклов. В каждом цикле в первом такте производится вычитание делителя из содержимого сумматора. Если де-

Рис. 5-17. Схема деления с восстановлением остатка.

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

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

349


записывается единица и на следующем шаге произво­

дится вычитание.

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

новлением остатка.

Действительно, поскольку сдвиг частичного остатка на один разряд влево эквивалентен умножению его на два, получим:

2а Ъ= 2 Ь) + Ь,

(5-6)

где а — частичный остаток; Ь — делитель.

 

Аналогично

 

2п а = {• • -\[{а-Ь) 2 + Ь] 2 + Ь\ 2 + • • •+ b).

(5-7)

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

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

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

350