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

книги из ГПНТБ / Каган Б.М. Цифровые вычислительные машины и системы учеб. пособие

.pdf
Скачиваний:
87
Добавлен:
27.10.2023
Размер:
29.24 Mб
Скачать

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

Данный метод умножения требует корректировки ре­ зультата, если старшая пара разрядов множителя 11 или 10 и есть дополнительная единица от предыдущей па­ ры (что сигнализируется единичным состоянием тригге­ ра запоминания Тааті). В этом случае к полученному про­ изведению должно быть добавлено множимое.

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

Подобным же образом можно организовать умноже­ ние с обработкой за шаг трех разрядов множителя. Пра­ вила для обработки троек разрядов множителя приведе­ ны в табл. 5-3.

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

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

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

340

 

Д ополни ­

Дополни­

Т а б л

и ц а 5-3

Тройка

 

Кратность

тельная

тельная

в

Знак

разрядов

единица из

единица

множимо­

множителя

предыдущей

следующую

действия

му

 

тройки

тройку

 

 

 

О С О

0

0

 

 

0

001

0

0

 

+

1

010

0

0

 

+

2

0

0

 

3

011

0

0

 

+

4

100

0

1

 

+

3

101

0

 

 

 

п о

1

 

2

111

0

1

 

1

000

1

0

 

+

1

001

1

0

 

+

3

010

1

 

 

 

2

0

 

+

 

on

1

0

 

 

4

100

 

___

3

1

1

 

2

101

1

1

 

 

 

п о

1

1

 

 

1

111

 

 

1

1

 

 

0

Существует

другой

способ

ускорения

умножения

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

Рассмотрим этот способ на примере умножения с об­ работкой за шаг двух разрядов множителя.

Условимся, что мы производим умножение начиная со старших разрядов множителя, т. е. рассматриваем множитель слева направо. Предположим, что при иссле­ довании первой пары мы предусматриваем следующие действия. Если встречается пара 00 или 10, т. е. правый разряд пары 0, то мы производим такие же действия, как и в предыдущем способе: или ничего не прибавляем к сумме частичных произведений, или прибавляем удвоенное множимое. В случае, если встретилась пара 01 или 11, будем прибавлять к сумме частичных произ­ ведений множимое, умноженное на число, которое на 1 больше, чем данная пара (т. е. прибавлять удвоенное или учетверенное множимое).

Тогда сумма частичных произведений в случае пар 00 и 10 будет правильна, а в случае пар 01 и 11 она бу-

341

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

В случае обработки пары 00 из суммы частичных произведений должно быть вычтено учетверенное мно­ жимое. Для пары 10 из суммы частичных произведений должно быть вычтено удвоенное множимое. Для пары 01 также должно быть вычтено удвоенное множимое. Для пары 11 сумма частичных произведений не изме­ няется.

Правила для обработки пар разрядов множителя с учетом младшего разряда предыдущей пары могут быть сведены в табл. 5-4.

Младший разряд

Пара разря­

Т а б л и ц а

5-4

Знак

Кратность

дов множи­

предыдущей пары

теля

действия

множимому

0

00

 

0

 

0

01

+

2

 

2

 

0

10

+

4

'

0

11

4

1

00

+

2

 

 

1

01

2

 

1

10

 

0

 

1

10

 

 

Описанный алгоритм ускорения умножения был предложен Мак-Сорли [Л. 108]. Схема, реализующая алгоритм Мак-Сорли для умножения с обработкой за шаг двух разрядов множителя начиная со старших его разрядов, показана на рис. 5-16.

Регистр множителя содержит дополнительный стар­ ший разряд Гдоп, который перед началом умножения

342

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

Из табл. 5-4 видно, что для выполнения умножения необходимы удвоенное и учетверенное множимые. По­ этому перед началом умножения в регистр множимого

Рис. 5-16. Схема умножения на 2 разряда множителя, начиная со старших, по алго­ ритму Мак-Сорли.

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

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

343

управляются двумя старшими разрядами и дополнитель­ ным разрядом Тдоп регистра множителя. После обработ­ ки каждой пары разрядов регистра множителя его со­ держимое и содержимое сумматора частичных произве­ дений сдвигаются на два разряда влево. Алгоритм Мак-Сорли с успехом может быть применен и при умно­ жении начиная с младших разрядов множителя.

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

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

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

Т а б л и ц а 5-5

Младший разряд

Тройка

Знак

Кратность

предыдущей

тройки

разрядов

действия

множимому

0

000

 

0

0

001

+

2

0

010

+

2

0

011

+

4

0

100

+

4

0

101

+

6

0

по

+

6

0

'111

+

8

1

000

8

1

001

6

1

010

6

1

011

4

1

100

4

1

101

2

1

по

2

1

111

 

0

Для выполнения умножения с обработкой за шаг трех разрядов множителя необходимы числа с крат­ ностью множимому 2, 4, 6 и 8. Числа с кратностью мно­ жимому 2, 4 и 8 могут быть легко получены сдвигом его на 1,2 или 3 разряда влево. Число с кратностью множи­ мому 6 можно получить, складывая двойное и учетверен-

344

ное множимые и помещая результат для хранения в от­ дельный регистр.

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

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

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

В табл. 5-6, 5-7 показан порядок действия при асин­ хронном умножении с исследованием на каждом шаге трех разрядов множителя, который использует только множимые, кратные степени двух.

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

В зависимости от соотношения затрат оборудования для хранения чисел, кратных множимому, переключения входов сумматора и введения дополнительных цепей сдвига могут быть использованы те или иные методы ускорения умножения [Л. 34].

345

 

 

 

Т а б л и ц а

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

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