Арифметико-логические устройства ЭВМ, страница 7

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

Рис. 2.2.5.1.

Перед началом умножения Тг режима «гасится» (устанавливается в ноль сигналом у0).

Даже в самом неблагоприятном случае число суммирований равно n/2, а в среднем и того меньше  –  n/3.

<97>

Теперь о втором способе: обработке за один шаг нескольких разрядов (обычно двух).

Пусть используем первый алгоритм умножения (см. п.2.2.3.)  и рассматриваем сразу два младших разряда сдвигающего регистра, хранящего множитель. Какие возможны варианты?

00)  Нужен простой сдвиг частичного произведения на два разряда.

01)  К частичному произведению добавляется одинарное множимое и, далее, сдвиг на два разряда.

10) Добавление к частичному произведению удвоенного множимого и, далее, сдвиг на два разряда.

11) Утраивать?? Нет! Из суммы частичных произведений вычитается одинарное множимое. Но далее будет необходима корректировка на следующем шаге.   (Можно, конечно,  и утроить множимое, но за 2 такта: первый такт по варианту (10) и второй по варианту (01)). И всё же корректировка эффективнее!

Как производится корректировка?

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

Именно так! Но после сдвига на два разряда вправо сумма частичных произведений, противолежащая множимому, как бы увеличилась в 4 раза. Значит, для корректировки на следующем этапе достаточно прибавить одинарное множимое.

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

пару 00          -           в пару 01

пару 01          -           в пару 10

пару 10          -           в пару 11

пару 11          -           в пару 00, но с учетом дополнительной единицы для следующей пары.

Хранится дополнительная единица в специальном триггере. Либо она учитывается схемотехнически.

Два слова об удвоении множимого. Его можно реализовать:

а) сдвигом влево в Рг множимого и

б) переключением разрядов на другие входы сумматоров (схемный сдвиг).

Рис. 2.2.5.2.

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

1)  должен быть использован (при вычитании) дополнительный код;

2)  SM должен иметь цепь арифметического сдвига вправо на два разряда (с размножением «1» в знаковом разряде)

                                      –    при р3  ;

3)  передача из SM в РгС младших разрядов происходит в прямом коде, либо нужен достаточно сумматор.

<98>

2.2.6. Организация АЛУ параллельного действия в режиме деления чисел с фиксированной запятой.

Сначала напоминание о принципе деления чисел в ЭВМ.

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

Первый шаг именуется иногда пробным делением. Смысл его предельно прост: надо, чтобы частное помещалось в разрядную сетку. Следовательно, если предположить, что в ЭВМ числа меньше 1 (так фиксирована запятая!), то делимое по модулю должно быть меньше делителя.

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

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