Арифметическое устройство

 

з с е1 (Q Г 1 И С Д Н И

<>687982

Социалистических

Республик

ИЗОБРЕТЕНИЯ

К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ (61) Дополнительное к авт. свид-ву— (22) Заявлено 03.01.78 (21) 2566654/18-24 с присоединением заявии— (23) Приоритет— (43) Опубликовано 07.01.82. Бюллетень ¹ 1 (45) Дата опубликования описания 07.01.82 (51) М.Кл.з G 06 F 7/50

Государственный комитет

СССР по делам изабретеиий и открытий (53) УДК 681.3 (088.8) (72) Авторы изобретения

А А ШУльгин И С ХРамцов С И Фролова

В, В, Веригина и Н. А. Слюсарев (71) Заявитель (54) АРИФМЕТИЧЕСКОЕ УСТРОИСТВО

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

Известно арифметическое устройство (АУ), выполняющее универсальный, набор команд, входящее в состав процессора

ЕС-2050 (1). Недостатком этого устройства является невысокое быстродействие вследствие медленного выполнения операций умножения, сдвигов и микроопераций, связанных со сдвигами информации.

Наиболее близким по технической сущности к изобретению является АУ, входящее в состав процессора IBM 75!360 (21.

Это АУ содержит регистры первого и второго операндов, первый, второй и третий регистры, основной сумматор, байтовый сумматор, коммутаторы первого и второго входов основного сумматора, коммутатор первого и второго входов байтового сумматора, регистры основного и байтового сумматоров, причем выходы коммутаторов первого и второго входов основного сумматора соединены с соответствующими входами основного сумматора, выход которого подключен ко входу регистра основного сумматора, выход которого соединен со входами регистров первого и второго операндов и первого и второго регистров, другие входы первого и второго операндов соединены со входами АУ.

Первые и вторые входы коммутаторов первого и второго входов основного сумматора подключены к выходам соответственно регистра первого операнда и первого регистра и регистра второго операнда и второго регистра. Выходы коммутаторов

10 первого и второго входов байтового сумматора подключены к соответствующим входам байтового сумматора, выход которого подключен ко входу регистра байтового сумматора, выход которого соединен со

15 входом третьего регистра. Входы коммутатора первого входа байтового сумматора подключены к выходам регистра первого операнда и третьего регистра. Вход коммутатора второго входа байтового сумматора

20 соединен с выходом регистра второго операнда.

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

Целью изобретения является увеличение быстродействия.

687982

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

На чертеже представлена схема АУ.

Оно содержит регистр первого операнда

1, регистр второго операнда 2, первый, второй и третий регистры 3, 4, 5, блок ускоренного умножения 6, коммутатор 7 первого входа основного сумматора, коммутатор 8 второго входа основного сумматора, основной сумматор 9, регистр 10 основного сумматора, коммутатор 1,1 сдвигателя и сдвигатель 12, регистр 13 сдвигателя, узел управления 14 сдвигателем, входящий в состав блока 6, регистр младшей части произведения 15, дешифраторы регистров основного сумматора, байтового сумматора и сдвигателя 16, 17, 18, байтовый сумматор 19, регистр 20 байтового сумматора, коммутатор

21 первого входа байтового сумматора, коммутатор 22 второго входа байтового сумматора, входящие в состав блока 6 дешифратор множителя 23, коммутатор кратных

24, дерево сумматоров 25 и дополнительный сумматор 26, входную шину 27 первого операнда, входную шину 28 второго операнда, шину связи 29 с оперативной памятью.

АУ позволяет выполнять полный набор команд ЕС ЗВМ, включая арифметические операции над числами расширенного формата.

Информация в предлагаемом АУ обрабатывается следующим образом.

Первый операнд принимается из местной или оперативной памяти на регистр 1, второй операнд — на регистр 2.

Для выполнения сложения (вычитания), сравнения поразрядных логических операций И, ИЛИ, ИСКЛЮЧАЮЩЕЕ

ИЛИ операнды подаются на входные ком»

l0

50 мутаторы 7 и 8 сумматора 9. На коммутатор 8 возможен прием информации из регистров 2, 4 с выхода дерева сумматоров

25 блока ускоренного умножения 6. Через коммутатор 8 информация может передаваться прямым, обратным кодами и со сдвигами влево на один и два разряда.

На коммутатор 7 возможен прием информации из регистров 1 и 3 и с выхода дерева сумматора 25 блока 6.

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

С выходов коммутаторов 7 и 8 информация поступает на входы сумматора 9, где производится ее обработка.

Результат обработки информации в сумматоре 9 заносится на регистр 10 сумматора 9. В случае необходимости производится анализ содержимого регистра сумматора 9 дешифратором 16.

Информация с выхода регистра 10 может приниматься на регистры 1 — 4. Для выполнения сдвигов информация подается через входной коммутатор 11 на сдвигатель 12. На коммутатор 11 осуществляется прием информации с регистров 1 — 4.

С выхода коммутатора 11 информация поступает на вход сдвигателя 12, где производятся ее сдвиги. Сдвиги могут производиться как вправо, так и влево, на величину от нуля до 63 разрядов за один такт. Число сдвигов может определяться значением константы, находящейся в управляющем слове микрокоманды, значением выхода дешифратора цифр частного (на чертеже не показан), значением выхода дешифратора 16, значением выхода дешифратора 17, значением выхода дешифратора

18. Информация, обработанная на сдвигателе 12, заносится в регистр 13 сдвигателя. Содержимое регистра сдвигателя может анализироваться,дешифратором 18.

Информация с выхода регистра 13 сдвигателя может приниматься на регистры 1 — 4.

Регистр 13 сдвигателя является также выходным регистром АУ, откуда производится запись информации в оперативную память по шине 29.

Для действия с порядками чисел с плавающей точкой и для побайтной обработки двоично-десятичных и логических операндов применяется сумматор 19.

Информация на первый и второй входы байтового сумматора 19 поступает соответственно через коммутаторы 21 и 22. Коммутатор 21 первого входа сумматора предназначен для выборки байта информации из регистра первого операнда 1, для выборки байтовой информации из регистра 5, для коррекции +6 при сложении двоично-десятичных чисел, для преобразования информации в обратный код. Коммутатор 22 вто687982

20

55 рого входа предназначен для выборки байта из регистра второго операнда 2.

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

С выходов коммутаторов 21 и 22 информация поступает на входы сумматора 19, где могут осуществляться поразрядные логические операции И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ, сложение (вычитание) двоичных чисел и сложение (вычитание) двоичнодесятичных чисел. Результат обработки информации в сумматоре 19 заносится в регистр 20 сумматора 19. При обработке двоично-десятичной информации занесение результата ка регистр 20 сопровождается десятичной коррекцией (+10). Содержимое регистра байтового сумматора может анализироваться дешифратором 17.

Информация с выхода регистра 20 может приниматься на регистр 5, а также на регистр 2 и на регистр 1 по шинам (на

",åðòåæå не показаны).

Регистр 5 предназначен для хранения байта информации при выполнении десятичных операций и операций над логическими операндами переменной длины.

Сложение (вычитание) чисел с фиксированной точкой выполняется в АУ следующим образом. Операнды из памяти поступают на регистры 1 и 2 соответственно, а с них подаются на входные коммутаторы 7 и 8 сумматора 9, и устанавливают знаковые триггеры первого и второго операндов (на чертеже не показаны).

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

10 сумматора подается на регистр 3, откуда производится запись его в местную память.

При сложении (вычитании) с плавающей точкой после приема операндов на регистры 1 и 2 производится выравнивание порядков слагаемых, для чего вычисляется разность порядков HB сумматоре 19. Мантисса операнда с меньшей характеристикой сдвигается на сдвигателе 12 вправо на |число шестнадцатиричных цифр, равное величине разности порядков минус единица.

Величина сдвига вырабатывается дешифратором 17. После сдвига мантисса передается на регистр 1 (если сдвигается первый операнд) или на регистр 2 (если сдвигается второй операнд). При этом в младшей тетраде соответствующего регистра находится дополнительная цифра. Для учета дополнительной цифры мантисса числа с большей характеристикой сдвигается на сдвигателе 12 влево на четыре двоичных разряда. Предварительной характеристикой результата считается большая из характеристик операндов уменьшенная на единицу.

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

Для этого она поступает с регистра 10 сумматора 9 на регистр 2, а затем подается через входной коммутатор 8 инверсным кадом и складывается в сумматоре 9 с единицей младшего разряда. Полученная мантисса результата нормализуется посредством сдвига на сдвигателе 12 на число старших нулевых цифр (это число получается на выходе дешифратора 16). Характеристика результата корректируется на байтовом сумматоре 19.

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

Операции «Сдвиг вправо» и «Сдвиг влево» выполняются за один машинный такт благодаря наличию сдвпгателя !2.

Операции сдвигов осуществляются над первым операндом, выбранным из памяти на регистр 1.

Число, на которое необходимо сдвинуть операнд, находится в регистре адреса второго операнда блока центрального управления. Это число дешифрируется в блоке управления сдвпгателем 14 и в зависимости от его значения устанавливаются триггеры управления сдвигами (на чертеже ие показаны) .

В узле управления 14 сдвигателем имеется девять триггеров управления сдвигами: триггеры сдвига на 1, 2, 3, 4, 8, 12, 16, 32 и 48 разрядов. Эти триггеры группируются в группы по три в каждой, причем каждая группа триггеров управляет сдвигами на одной из трех ступеней сдвигателя. В единичном состоянии может одновременно находиться не больше одного триггера в группе.

687982

Таким управлением обеспечивается выполнение сдвига информации на число разрядов от 0 до 63. Сдвиг влево выполняется при помощи «перекрестной» передачи информации через входной коммутатор

11 сдвигателя, сдвига вправо на необходимое число разрядов на сдвигателе 12 и обратной «перекрестной» передачи через входную логику при приеме информации на регистр 13 сдвигателя. С этого регистра результат поступает на регистр 3 для записи в местную память.

Логические операции И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ выполняются на основном сумматоре 9, где кроме сложения операндов предусмотрено выполнение выше перечисленных логических функций.

Результат с регистра 10 основного сумматора поступает на регистр 3.

Для выполнения операций умножения применяется блок ускоренного умножения 6.

Умножение производится младшими разрядами вперед одновременно на 12 разрядов с запоминанием переноса из предыдущих 12 разрядов множителя. Анализ очередных 12 разрядов множителя находящегося на регистре второго операнда 2 производится в дешифраторе множителя 23, затем в коммутаторе кратных 24 п роисходит формирование шести кратных множимому. Полученные кр атные, являющиеся произведениями множимого на соответствующие пары разрядов множителя, суммируются в двухрядном коде на дереве сумматоров 25. На выходах дерева сумматоров получается частичное произведение в двухрядном коде. Полученное частичное произведение, сдвинутое на сдвиговых цепях дерева на 12 разрядов вправо, добавляется к новому частичному произведению на стадии его формирования. Применение

«конвейерного» метода обработки информации позволяет совмещать во времени выполнение итераций умножения. Последовательность o выполнения итераций управляет счетчик итераций (на чертеже пе показан) .

При умножении чисел с плавающей запятой перед выполнением итераций умножения производится (в случае необходимости) нормализация сомножителей путем сдвига их мантисс влево на сдвигателе 12 на число старших шестнадцатиричных нулей, вырабатываемых дешифратором 16, который представляет собой дешифратор пулевых шестнадцатиричных цифр. Производится также коррекция промежуточной характеристики результата (сумма харакгеристик сомножителей — 64) путем вычитания из нее на сумматоре 19 числа левых сдвигов мантисс множимого и множителя. По окончании выполнения итераций умножения на блоке 6 результат умножения в двухрядном коде подается с выхо.

5 !

О !

65 дов дерева сумматора 25 через входные коммутаторы 7 и 8 на входы сумматора 9, где производится приведение переносов.

При умножении чисел с фиксированной точкой результат, полученный на регистре 10 основного сумматора, заносится на регистр 3 для записи в местную память.

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

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

В каждой итерации после получения частичного произведения на выходе дерева сумматоров 25 и сдвига его на 12 разрядов вправо три выдвинутые тетрады в двухрядном коде поступают на входы дополнительного сумматора 26, где происходит приведение переносов. Полученные три шестнадцатиричные цифры записываются под управлением счетчика итераций в соответствующие разряды регистра младшей части произведения. По окончании выполнения итераций умножения на блоке 6, полученная на регистре 15 младшая часть мантиссы произведения подается на вход сдвигателя 12, где производятся необходимые для остаточной нормализации результата сдвиги. Нормализованная младшая часть мантиссы результата заносится в регистр 3. В старший байт регистра 3 заносится характеристика младшей части результата. Затем производится запись младшей части результата в местную память. В предлагаемом АУ предусмотрена возможность выполнения умножения без блока ускоренного умножения с использованием основного сумматора 9. Умножение осуществляется младшими разрядами вперед одновременно на три разряда без анализа четвертого с предварительным формированием утроенного множимого, которое хранится в регистре 3.

В АУ применяется метод деления без восстановления остатка с анализом четырех старших разрядов очередного остатка.

Перед началом выполнения итераций деления производится нормализация делителя: сначала шестнадцатиричная (число левых сдвигов кратно четырем и определяется значением выхода дешифратора 16), а затем двоичная (число левых сдвигов определяется значением выхода дешифратора

687982

10

Сдвиги ироменсуТОЧНОГО частного остатка и маркера

Разряды получаемого частного

Четыре старших разряда оотатка (включая знак) Действие с делителем

Положение маркера в регистре сдвигателя — — 1 — — 1 — l0

-0 — — 0 — Ol

011

Л1

Лl

Л2

ЛЗ

Лl

;1 12

ЛЗ

01ХХ

001Х

0001

10ХХ

110Х

1ll1 вычитание вычитание

В bl ч и т 3 н и е вычитание сложение сложение сложение сложение

Маркер не дошел до разрядов 8/!2

Маркер дошел до разрядов 8/l2

Лl — — — — 0

ОХХХХ

1ХХХ вычитание сложение

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

19, и производится нормализация делимого путем сдвига его влево на сдвигателе 12 на общее число левых сдвигов делителя.

В случае деления с плавающей точкой предварительно производится независимая шестнадцатиричная нормализация делимого и делителя, после чего производится двоичная нормализация делителя, и в соответствии с числом левых сдвигов делителя производится двоичная нормализация .делимого. Чтобы при делении с плаваю.щей точкой использовать те же управляюгде Х вЂ” любое значение разряда;

Лl — сдвиг влево на один разряд;

Л2 — сдвиг влево на два разряда;

ЛЗ вЂ” сдвиг влево на три разряда; — — в этой позиции разряд частного пока не определен.

Делитель, помещенный в регистр 2, в каждой итерации вычитается или складывается в сумматоре 9 с остатком, находящимся в регистре 3 и сдвинутом влево при прохождении через коммутатор 7 на число разрядов, определяемое значением выхода дешифратора цифр частного (на чертеже не показан}, где анализируется старшая тетрада остатка.

Полученные в итерации цифры частного передаются с выхода дешифратора цифры частного и младшие разряды регистра

13. С регистра 13 цифры частного и двухразрядный маркер передаются в регистр

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

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

Операция перевода в двоичную систему .двоично-десятичной информации осуществляется в предлагаемом АУ посредством

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

Нормализованный делитель помещается в регистр 2, а нормализованное делимое— в регистр 1.

Для контроля за числом выполненных итераций деления в разряды 40 и 41 регистра сдвигателя 13 заносится двухразрядный маркер величиной 11,. Далее осуществляется непосредственно процесс деления.

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

А = al4 10!4+ a . 10!з+ - ав 10о где а; — десятичная цифра в двоичном позиционном коде.

Умножение на 10 заменяется сложением Ва; и 2а;. Переводу подлежит второй операнд, принятый из оперативной памяти на регистр 2 в упакованном двоична-десятичном коде.

Для выделения значащей части числа содержимое регистра 2 поступает через коммутатор ll на вход сдвигателя 12, где сдвигается вправо на четыре разряда, а затем через регистр 13 сдвигателя поступает в регистр 4.

Число итераций, необходимое для перевода, задается на счетчике циклов (па чертеже не показан). Перевод начинаетея со старшей цифры. В каждой итерации на сумматоре 9 производится вычисление величины 2 А„„+ 8 А „О + a, где А „р — промежуточный результат.

Слагаемое 2 А,р вырабатывается посредством сдвига информации, поступающей с регистра 2, на входном коммутаторе

8 влево на один разряд. Слагаемое 8 А нр получается посредством сдвига информации, поступающей с регистра 1, Н3 входном коммутаторе 7 влево на три разряда.

В освободившиеся три младших разряда входного коммутатора 8 заносится двонч687982!

1 ный код цифры а; (при значениях а; = О, ..., 7) в зависимости от значения преобразуемых тетрад, хранящихся на регистре 3. При значении а; = 8 и а; = 9 в освободившийся младший разряд входного коммутатора 8 заносится единица (в трех младших разрядах входного коммутатора 7 занесен код 111 ). При значении а; = 9 дополнительно добавляется единица к младшему разряду сумматора 9 при суммировании. Очередная переводимая цифра получается в разрядах с 4 по 7 регистра 3 путем сдвига его содержимого влево на четыре разряда на сдвигателе 12.

Промежуточный результат с регистра

10 сумматора заносится в регистры 2 и 1.

Выход из цикла перевода осуществляется по нулевому содержимому счетчика циклов.

По окончании выполнения итераций результат перевода с регистра 10 записывается в регистр 3 для записи в местную память.

Операция перевода двоичной информации в двоично-десятичный код осуществляется последовательным (циклическим) выполнением алгебраических действий, представленных формулой

Зо где а», а,4 ... а, могут принимать значения 04, 14, 24, 34.

В каждой итерации к учетверенному частичному результату прибавляется очередная четверичная цифра и формируются тетрады двоично-десятичного кода путем коррекции (прибавления в каждой полученной тетраде 6», 12», или 18») . При помощи коррекции организуются десятичные переносы из каждой тетрады двоичнодесятичного кода. Переводимое число принимается из местной памяти на регистр 1 и через коммутатор 11 и сдвигатель 12 передается без сдвигов на регистр 13 сдвиг ателя.

Оттуда оно заносится на регистр 4.

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

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

60 бб

Л= (...((а»+а14)4+...+а1) 4+ap, 5

12

ro промежуточного результата, содержащегося в регистре 1.

После добавления десятичной коррекции в сумматоре 9 очередной промежуточный результат передается с регистра 10 сумматора 9 на регистры 2 и 1.

Содержимое регистра 4 сдвигается в каждом цикле влево на два разряда на сдвигателе 12 для установки очередных двух разрядов переводимого числа. Выход из цикла перевода осуществляется по нулевому содержимому счетчика циклов. Результат перевода из регистра 10 передается на регистр 1.

В последнюю тетраду регистра 1 заносится знак результата, сформированный на байтовом сумматоре 19. Далее результат через коммутатор 11 и сдвигатель 12 передается без сдвигов в регистр 13, оттуда записывается в оперативную память, В десятичных арифметических операциях операнды могут иметь длину от 1 до 16 байтов, в логических операциях длина операндов может быть до 256 байтов.

Каждая цифра представлена в двоичнодесятичном коде и имеет значение от 0 до

9, знак плюс кодируется как 1100, знак минус кодируется 1101, зона — 1111.

Обрабатываемые операции из оперативной памяти порциями по восемь байтов принимаются на входные регистры 1, 2 первого и второго операнда соответственно. Далее по состоянию счетчиков адреса байтов первого и второго операндов (на чертеже не показаны) происхбдит выборка подлежащих обработке байтов первого и второго операнда из соответствующих регистров. Выбранные байты первого и второго операндов с учетом корректирующего кода + 6„к обеим тетрадам второго операнда через входные коммутаторы 21 и 22 подаются на входы сумматора 19, где осуществляется сложение либо вычитание в дополнительном коде двух двоично-десятичных цифр.

Полученная сумма корректируется путем прибавления кода 10,6 к каждой тетраде при отсутствии переноса из,данной тетрады, и окончательная сумма байта поступает в регистр результата,20.

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

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

14

13!

О !

5 таются все байты операндов. Результат суммирования (вычитания) с регистра 1 пересылается через сдвигатель 12 в оперативную память.

При выполнении операции УМНОЖЕНИЕ ДЕСЯТИЧНОЕ сомножители принимаются в регистры 1, 2. Затем второй операнд, находящийся в регистре 2, сдвигается вправо на 4 разряда, тем самым выдвигается знак, и в старшем байте формируются дополнительные разряды.

Умножение начинается с умножения второго операнда»а младшие байты первого операнда: сначала на правую цифру, а затем на левую цифру, которые хранятся в регистре 5 (в,знаковом байте умножение выполняется на одну цифру, и происходит.формирование знака по правилам алгебры). Промежуточные произведения, полученные при умножении на каждую цифру, накапливаются в регистре 1, сдвигаются вправо на четыре разряда на сдвигател

12, и младший байт произведения отсылается из регистра 13 в оперативную память на место соответствующего байта первого

onера»да. Промежуточное произведение также временно запоминается в регистре

3, а в регистр 1 прип». естся пз оперативной памяти следующий байт первого операнда, на которь и будет продолжено умножение. Затем этот байт пересылается в регистр 5, Затем циклы умножения повторяются.

При умножении на каждую цифру первого операнда производится анализ этой цифры на дешифраторе 17.

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

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

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

При этом к следующей цифре множителя прибавляется единица.

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

Когда цифра множителя уменьшится до нуля или увеличится до девяти, умножение на данную цифру закончится.

После каждого умножения на две цифры (байт) вычитается единица из длины первого операнда. Умножение заканчивается как только длина первого операнда ста20

66 нет равна длине второго операнда.

Таким образом, введение в АУ блока универсального сдвигателя позволяет выполнять операции сдвигов за 160 нс (независимо от числа сдвигов) в то время, как в прототипе время выполнения операций сдвигов может занимать до 1,8 мкс и зависит от числа сдвигов. Использование сдвигателя позволяет также значительно ускорить выполнение операций как с фиксированной точкой, так и с плавающей точкой. Так в операции умножения с фиксированной точкой при сокращении количества итераций умножения, в случае равенства 15-ти старших разрядов множителя знаковому разряду, производится сдвиг полученного произведения на 15 разрядов вправо за один машинный такт (160 нсек). В операции деления с фиксированной точкой при приведении делителя к нормализованному виду также используются возможности сдвигателя для сдвига делителя на количество нулевых разрядов в делителе за один машинный такт.

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

Введение блока ускоренного умноже»»я и оптимальная организация связи ого с остальным оборудованием АУ позволяет выполнять операцшо умножения в 3,5—

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

Формула изобретения

Арифме1ическое устройство, содержашее регистры первого и второго операндов, первый, второй и третий регистры, основной сумматор, байтовый сумматор, коммутаторы первого и второго входов основного сумматора, коммутаторы первого и второго входов байтового сумматора, регистры основно-о и байтового сумматоров, причем выходы коммутаторов первого и второго входов основного сумматора соединены с соответствующими входами основного сумматора, выход которого подключен ко входу регистра основного сумматора, выход которого соединен со входами регистров первого и второго операндов и первого и второго регистров, другие входы регистров первого и второго операндов соединены со входами устройства, первые и вторые входы коммутаторов первого и второго входов основного сумматора подключены к выходам соответственно регистра первого операнда и первого регистра и регистра второго операнда и второго регистра, выходы коммутаторов первого и второго входов

687982

IG

Составитель В. Березкин

Техред И. Заболотнова 1(орректор И; Осиновская

Редактор Л, Утехина

Заказ 19/27 Изл,. 1 х"а 107 Тираж 731 Подписное

НПО «Поиск» Государственного ко« .итета СССР по делам изобретений и открытий

113035, Москва, Ж-35, Раушская наб,, д, 4/5

Тип. Харьк. фил. пред. «Патент» байтового сумматора подключены к соответствующим входам байтового сумматора, выход которого подключен ко входу регистра байтового сумматора, выход которото соединен со входом третьего регист- 5 ра, входы коммутатора первого входа байтового сумматора подключены к выходам регистра первого операнда и третьего регистра, вход коммутатора второго входа байтового сумматора соединен с выходом 10 регистра второго операнда, о тл и ч а ющ е е с я тем, что, с целью повышения быстродействия, устройство содержит блок ускоренного умножения, сдвигатель, регистр сдвигателя, коммутатор входа сдви- 15 гателя, узел управления сдвигателем и дешифраторы регистров основного сумматора, байтового сумматора и сдвигателя, входы которых подключены к выходам соответствующих регистров,,а выходы подключены ко входам узла управления сдвитателем, выход которого подключен к управляющему входу сдвигателя, первый вход которого подключен к выходу коммутатора входа сдвигателя, входы которого. соединены с выходами регистров первого и второго операндов и первого и второго регистров, выход сдвигателя подключен ко входу регистра сдвигателя, выход которого. подключен ко входам регистров первого и второго операндов и первого и второго регистров, входы .блока ускоренного умножения подключены к выходам регистров первого и второго операндов, а первый и вто-рой выходы соединены с третьими входами коммутаторов соответственно первого и второго входов основного сумматора, третий выход блока ускоренного умножения. подключен ко второму входу сдвигателя.

) Источники информации, принятые во внимание при экспертизе:

1. Авторское свидетельство СССР

¹ 522497, кл. G 06 F 7/38, 1971.

2. Патент Франции № 1553670; . кл. G 06 f, 1974 (прототип),

Арифметическое устройство Арифметическое устройство Арифметическое устройство Арифметическое устройство Арифметическое устройство Арифметическое устройство Арифметическое устройство Арифметическое устройство 

 

Похожие патенты:

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

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

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

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

Изобретение относится к вычислительной технике, в частности к способам суммирования чисел, и может быть использовано при построении арифметических устройств ЭВМ для повышения их быстродействия

Изобретение относится к электронике и предназначено для использования в сумматорах чисел в двоичном представлении

Изобретение относится к вычислительной технике и может быть использовано при проектировании вычислительных узлов в составе специализированных БИС на основе МОП транзисторов

Изобретение относится к электронике и предназначено для использования в сумматорах чисел в двоичном представлении

Изобретение относится к техническим средствам информатики и вычислительной техники и может быть использовано в высокоскоростных арифметико-логических устройствах, в том числе для вычисления быстрого преобразования Фурье и сверток по методу Винограда
Наверх