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

Номер патента: 687982

Авторы: Веригина, Слюсарев, Фролова, Храмцов, Шульгин

ZIP архив

Текст

) Заявлено 03.01,7 присоединением зая дарственный комите 3) Приоритет 53) УДК 681.3(54) АРИФМЕТ СКОЕ УСТРОЯ ляетс союз соцепаО П И С Изобретение относится к области вычислительной техники и может быть использовано в процессорах универсальных цифровых машин высокого быстродействия.5Известно арифметическое устройство (АУ), выполняющее универсальный, набор команд, входящее в состав процессора ЕС11. Недостатком этого устройства является невысокое быстродействие вслед ствие медленного выполнения операций умножения, сдвигов и микроопераций, связанттых со сдвигами информации,Наиболее близким по технической сущности к изобретению является АУ, входя щее в состав процессора 1 ВМ 75/360 21.Это АУ содержит регистры первого и второго операндов, первый, второй и третий регистры, основной сумматор, байтовый сумматор, коммутаторы первого и вто рого входов основного сумматора, коммутатор первого и второго входов байтового сумматора, регистры основного и байтового сумматоров, причем выходы коммутаторов первого и второго входов основного сумма тора соединены с соответствующими входами основного сумматора, выход которого подключен ко входу регистра основного сумматора, выход которого соединен со входами регистров первого и второго опе- Э 0 рандов и первого и второго регистров, другие входы первого и второго операндов соединены со входами АУ.Первые и вторые входы коммутаторов первого и второго входов основного сумматора подключены к выходам соответственно регистра первого операнда и первого регистра и регистра второго операнда и второго регистра, Выходы коммутаторов первого и второго входов байтового сумматора подключены к соответствующим входам байтового сумматора, выход которого подключен ко входу регистра байтового сумматора, выход которого соединен со входом третьего регистра, Входы коммутатора первого входа байтового сумматора подключены к выходам регистра первого операнда и третьего регистра. Вход коммутатора второго входа байтового сумматора соединен с выходом регистра второго операнда.Недостатком данного АУ является невысокое быстродействие, заключающееся в медленном выполнении операций умножения, сдвигов, мнкроопераций нормализации, выравнивания порядков и других микроопераций, связанных со сдвигами информации.Целью изобретения яв я увеличение быстродействия.55 60 65 Для достижения поставленной цели АУ содержит блок ускоренного умножения, сдвигатель, регистр сдвигателя, коммутатор входа сдвигателя, узел управления сдвитателем, дешифраторы регистров основного сумматора, байтового сумматора и сдвигателя, входы которых подключены к выходам соответствующих регистров, а выходы подключены ко входам узла управления сдвигателем, выход которого подключен к управляющему входу сдвигателя, первый вход которого подключен к выходу коммутатора входа сдвигателя, входы которого соединены с выходами регистров первого и второго операндов и первого и второго регистров. Выход сдвнгателя подключен ко входу регистра сдвигателя, выход которого подключен ко входам регистров первого и второго операндов и первого и второго регистров. Входы блока ускоренного умножения подключены к выходам регистров первого и второго операндов, а первый и второй выходы соедннекы с третьими входами коммутаторов соответственно первого и второго входов основного сумматора. Третий вход олока ускоренного умножения подключен ко второму входу сдвигателя.На чертеже представлена схема АУ.Оно содержит регистр первого операнда 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.Для выполнения сложения (вычитания), сравнения поразрядных логических операций И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ операнды подаются на входные ком 5 10 15 20 25 30 35 40 45 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 вто 6879825 25 35 40 45 50 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 производится выравннванцепорядков слагаемых, для чего вычисляетсяразность порядков на сумматоре 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 разрядов. Эти триггеры группируются в группы по три в каждой, причем каждая группа триггеров управляет сдвигами на одной из трех ступеней сдвигателя. В единичном состоянии может одновременно находиться не больше одного триггера в группе.Таким управлением обеспечивается выполнение сдвига информации на число разрядов от 0 до 63. Сдвиг влево выполняется при помощи перекрестной передачи информации через входной коммутатор 11 сдвигателя, сдвига вправо на необходимое число разрядов на сдвигателе 12 и обратной перекрестной передачи через входную логику при приеме информации на регистр 13 сдвигателя, С этого регистра результат поступает на регистр 3 для записи в местную память.Логические операции И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ выполняются на основном сумматоре 9, где кроме сложения операндов предусмотрено выполнение выше перечисленных логических функций.Результат с регистра 10 основного сумматора поступает на регистр 3.Для выполнения операций умножения применяется олок ускоренного умноже.ния 6.Умножение производится младшими разрядами вперед одновременно на 12 разрядов с запоминанием переноса из предыдущих 12 разрядов множителя. Анализ очередных 12 разрядов множителя находящегося на регистре второго операнда 2 производится в дешифраторе множителя 23, затем в коммутаторе кратных 24 происходит формирование шести кратных множимому. Полученные кр атные, являющиеся произведениями множимого на соответствующие пары разрядов множителя, суммируются в двухрядном коде на дереве сумматоров 25. На выходах дерева сумматоров получается частичное произведение в двухрядном коде. Полученное частичное произведение, сдвинутое на сдвиговых цепях дерева на 12 разрядов вправо, добавляется к новому частичному произведению на стадии его формирования. Применение конвейерного метода обработки информации позволяет совмещать во времени выполнение итераций умножения. Последовательностью выполнения итераций управляет счетчик итераций (на чертеже пе показан).При умножении чисел с плавающей запятой перед выполнением итераций умножения производится (в случае необходимости) нормализация сомножителей путем сдвига их мантисс влево на сдвигателе 12 на число старших шестнадцатиричных ну. лей, вырабатываемых дешифратором 16, который представляет собой дешифратор пулевых шестнадцатиричных цифр. Произ. водится также коррекция промежуточной характеристики результата (сумма харакгеристик сомножителей - 64) путем вычитания из нее на сумматоре 19 числа левых сдвигов мантисс множимого и множи. тели. По окончании выполнения итераций умножения на блоке 6 результат умноже. ния в двухрядном коде подается с выхо 5 о 5 20 25 зо 35 40 45 50 55 60 65 дов дерева сумматора 25 через входные коммутаторы 7 и 8 на входы сумматора 9, где производится приведение переносов.При умножении чисел с фиксированной точкой результат, полученный на регист. ре 10 основного сумматора, заносится на регистр 3 для записи в местную память,11 ри умножении чисел с плавающей точкой полученная мантисса результата подвергается (в случае необходимости) остаточной нормализации посредством сдвига ее влево на сдвигателе 12 на четыре дво. ичных разряда и коррекции характеристики результата (вычитания из нее на сумматоре 19 единицы), После нормализации мантисса и характеристика результата заносятся на регистр 3 для записи в местную память,В операциях умножения чисел с пла вающей точкой и результатом расширенного формата (длина мантиссы 128,двоичных разрядов) для формирования младшей части результата используется дополнительный сумматор 26.В каждой итерации после получения частичного произведения на выходе дерева сумматоров 25 и сдвига его на 12 разрядов вправо три выдвинутые тетрады в двухрядном коде поступают на входы дополнительного сумматора 26, где происходит приведение переносов. Полученные три шестнадцатиричные цифры записываются под управлением счетчика итераций в соответствующие разряды регистра младшей части произведения. По окончании выполнения итераций умножения на блоке 6, полученная на регистре 15 младшая часть мантиссы произведения подается на вход сдвигателя 12, где производятся необходимые для остаточной нормализации резуль. тата сдвиги. Нормализованная младшая часть мантиссы результата заносится в регистр 3, В старший байт регистра 3 заносится характеристика младшей части ре. зультата. Затем производится запись младшей части результата в местную память. В предлагаемом АУ предусмотрена возможность выполнения умножения без блока ускоренного умножения с использованием основного сумматора 9. Умножение осуществляется младшими разрядами вперед одновременно на три разряда без анализа четвертого с предварительным формированием утроенного множимого, которое хранится в регистре 3.В АУ применяется метод деления без восстановления остатка с анализом четы. рех старших разрядов очередного остатка, Перед началом выполнения итераций деления производится нормализация делителя; сначала шестнадцатиричная (число левых сдвигов кратно четырем и определяется значением выхода дешифратора 16), а затем двоичная (число левых сдвигов определяется значением выхода дешифратора687982 10 15 Сдвиги ироменсу. ТОЧНОГО частного остатка и маркераРазряды получаемогочастного Четыре старших разрядаоотатка (включая знак) Действие с делителем-- 1-- 1- О100-- 0-- 0- О011 Л 1 Л 1 Л 2 ЛЗ Л 1 ;1Л 2 ЛЗ 0)ХХ 001 Х 0001 0000 10 ХХ 110 Х 1110 1111 вычитаниевычитаниеВ В 1 Ч И Т д Н И Евычитаниесложениесложениесложениесложение Маркер не дошел до разрядов 8 г 2 Маркер дошел до разрядов 8(12Л Л 1---- 0 ОХХХХ1 ХХХ вычитаниесложение 50 18, который представляет собой дешифратор нулевых разрядов сдвигателя). Общее число сдвигов вычисляется на сумматоре 19, и производится нормализация делимого путем сдвига его влево на сдвигателе 12 на общее число левых сдвигов делителя.В случае деления с плавающей точкой предварительно производится независимая шестнадцатиричная нормализация делимого и делителя, после чего производится двоичная нормализация делителя, и в соответствии с числом левых сдвигов делителя производится двоичная нормализация .делимого. Чтобы при делении с плаваюзцей точкой использовать те же управляюзгде Х - любое значение разряда;Л 1 - сдвиг влево на один разряд; Л 2 - сдвиг влево на два разряда; ЛЗ - сдвиг влево на три разряда; -- в этой позиции разряд частного пока не определен.Делитель, помещенный в регистр 2, в каждой итерации вычитается или складывается в сумматоре 9 с остатком, находящимся в регистре 3 и сдвинутом влево при прохождении через коммутатор 7 на число разрядов, определяемое значением выхода дешифратора цифр частного (на чертеже не показан), где анализируется старшая тетрада остатка.Полученные в итерации цифры частного передаются с выхода дешифратора цифры частного и младшие разряды регистра 13. С регистра 13 цифры частного и двух- разрядный маркер передаются в регистр 4. Во время выполнения итераций маркер и полученные цифры частного сдвигаются на сдвигателе 12 влево на то же число разрядов, что и остаток. В освободившиеся разряды помещаются новые цифры частного, полученные на выходе дешифратора цифр частного. Окончание итераций деления определяется наличием маркера в разряде 10 регистра 13 сдвигателя.Окончательный остаток прп отрицательном его знаке, восстанавливается, т. е, к нему прибавляется делитель.Операция перевода в двоичную систему .двоично-десятичной информации осуществляется в предлагаемом АУ посредством 20 25 30 35 40 45 щие цепи, что и при делении с фиксированной точкой, необходимо дополнительно сдвинуть мантиссы делимого и делителя влево на семь двоичных разрядов.Нормализованный делитель помещается в регистр 2, а нормализованное делимое - в регистр 1. Для контроля за числом выполненных итераций деления в разряды 40 и 41 регистра сдвигателя 13 заносится двухразрядный маркер величиной 11 я. Далее осуществляется непосредственно процесс деления. Действия в итерациях деления производятся согласно следующей таблице: последовательного выполнения в двоичном коде алгебраических действий, выраженных формулой А = а,. 104+ и, 10 гз+ а 10 О г,.е а; - десятичная цифра в двоичном позиционном коде.Умножение на 10 заменяется сложением 8 а и 2 а;. Переводу подлежит второй операнд, принять 1 й из оперативной памяти на регистр 2 в упакованном двоична-десятичном коде,Для выделения значащей части числа содержимое регистра 2 поступает через коммутатор 11 на вход сдвигателя 12, где сдвигается вправо на четыре разряда, а затем через регистр 13 сдвигателя поступает в регистр 4.Число итераций, необходимое для перевода, задается на счетчике циклов (па чертеже не показан). Перевод начинаетея со старшей цифры. В каждой итерации на сумматоре 9 производится вычисление величины 2 А+ 8 А+ а, где А ар - промежуточный результат.Слагаемое 2 А,р вырабатывается посредством сдвига информации, поступающей с регистра 2, на входном коммутаторе 8 влево на один разряд, Слагаемое 8 А нр получается посредством сдвига информации, поступающей с регистра 1, на входгом комдутаторе 7 влево на три разряда, В освободившиеся три младших разряда входного коммутатора 8 заносится двонч1ный код цифры а; (при значениях а; = О, , 7) в зависимости от значения преобразуемых тетрад, хранящихся на регистре 3. При значении а; = 8 и а; = 9 в освободившийся младший разряд входного коммутатора 8 заносится единица (в трех младших разрядах входного коммутатора 7 занесен код 111). При значении а; = 9 дополнительно добавляется единица к младшему разряду сумматора 9 при суммировании. Очередная переводимая цифра получается в разрядах с 4 по 7 регистра 3 путем сдвига его содержимого влево на четыре разряда на сдвигателе 12,Промежуточный результат с регистра 10 сумматора заносится в регистры 2 и 1. Выход из цикла перевода осуществляется по нулевому содержимому счетчика циклов,По окончании выполнения итераций результат перевода с регистра 10 записывается в регистр 3 для записи в местную память.Операция перевода двоичной информации в двоично-десятичный код осуществляется последовательным (циклическим) выполнением алгебраических действий, представленных формулойЛ = ( ( (а+ а,4) 4+ + а 1) 4+ ао Зо 35 4045 50 55 60 бб где а, а 14а, могут принимать значения 04 14 24 34В каждой итерации к учетверенному частичному результату прибавляется очередная четверичная цифра и формируются тетрады двоично-десятичного кода путем коррекции (прибавления в каждой полученной тетраде 61 о, 121 О, или 181 О). При помощи коррекции организуются десятичные переносы из каждой тетрады двоичнодесятичного кода. Переводимое число принимается из местной памяти на регистр 1 и через коммутатор 11 и сдвигатель 12 передается без сдвигов на регистр 13 сдвиг ателя.Оттуда оно заносится на регистр 4.На счетчик циклов заносится число итераций, необходимое для выполнения перевода. В каждой итерации промежуточный результат с регистра 2 поступает через входной коммутатор 8, где сдвигается влево на два разряда на вход сумматора 9, в освободившиеся два младших разряда коммутатора 8 подаются две очередные двоичные цифры переводимого числа с регистра 4.Производится коррекция учетверенного промежуточного результата и добавленной к нему очередной переводимой цифры посредством прибавления к каждой тетраде десятичной коррекции, которая поступает на входной коммутатор 7 с десятичного корректора (на чертеже не показан), где происходит анализ содержимого очередно 5 10 15 20 25 12 го промежуточного результата, содержащегося в регистре 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первого и второго операнда соответственно. Далее по состоянию счетчиков адресабайтов первого и второго операндов (начертеже не показаны) происходит выборка подлежащих обработке байтов первогои второго операнда из соответствующихрегистров, Выбранные байты первого и второго операндов с учетом корректирующегокода + бк обеим тетрадам второго операнда через входные коммутаторы 21 и 22подаются на входы сумматора 19, где осуществляется сложение либо вычитание вдополнительном коде двух двоично-десятичных цифр.Полученная сумма корректируется путем прибавления кода 1 Оы к каждой тетраде при отсутствии переноса из,даннойтетрады, и окончательная сумма байта поступает в регистр результата,20.Затем байт результата с регистра сумматора принимается на входной регистр 2,либо регистр 1 на место байта, указанногосчетчиком адреса байтов, по шинам (начертеже не показаны). Может выполнятьсяодновременная запись байта информациив регистры 2 и 1 при выполнении операцийпересылок,Состояние счетчиков адресов байтов первого и второго операндов изменяется наединицу, и выбирается следующая парабайтов, которая складывается либо вычитается на сумматоре с учетом переноса изпредыдущего байта. Аналогичные действияпродолжаются до тех пор, пока не обрабо 6879821413о 15 таются все байты операндов, Результат суммирования (вычитания) с регистра 1 пересылается через сдвигатель 12 в оперативную память,При выполнении операции УМНОЖЕНИЕ ДЕСЯТИЧНОЕ сомножители принимаются в регистры 1, 2. Затем второй операнд, находящийся в регистре 2, сдвигается вправо на 4 разряда, тем самым выдвигается знак, и в старшем байте формируются дополнительные разряды.Умножение начинается с умножения второго операнда на младшие байты первого операнда: сначала на правую цифру, а затем на левую цифру, которые хранятся в регистре 5 (в,знаковом байте умножение выполняется на одну цифру, и происходит формирование знака по правилам алгебры). Промежуточные произведения, полученные при умножении на каждую цифру, накапливаются в регистре 1, сдвигаются вправо на четыре разряда на сдвигателс 12, и младший байт произведения отсылается из регистра 13 в оперативную память на место соответствующего байта первого операнда. Промежуточное произведение также временно запоминается в регистре 3, а в регистр 1 прпппмастся пз оперативной памяти следующий байт первого операнда, на которь:й будет продолжено умножение. Затем этот байт пересылается в регистр 5,Затем циклы умножения повторяются.При умножении на каждую цифру первого операнда производится анализ этой цифры на дешифраторе 17.Если анализируемая цифра множителя равна нулю или десяти, то частичное произведение сдвигается вправо на четыре разряда без прибавления множимого. При равенстве цифры множителя десяти прибавляется единица к следующей цифре множителя.Если значение цифры множителя находится в пределах от единицы до пяти, то множимое прибавляется к частичному произведению число раз, равное значению цифры множителя.Если цифра множителя больше пяти, но меньше десяти, то множимое вычитается из частичного произведения число раз, равное дополнению цифры множителя до десяти. При этом к следующей цифре множителя прибавляется единица.Цифры множителя хранятся в регистре 5, а при каждом прибавлении, либо вычитании множимого из частичного произведения происходит уменьшение, либо увеличение цифры множителя на единицу. Когда цифра множителя уменьшится до нуля или увеличится до девяти, умножение на данную цифру закончится.После каждого умножения на две цифры (байт) вычитается единица из длины первого операнда, Умножение заканчивается как только длина первого операнда ста 20 25 зо 35 40 45 50 55 50 бй нет равна длине второго операнда.Таким образом, введение в АУ блока универсального сдвигателя позволяет выполнять операции сдвигов за 160 нс (независимо от числа сдвигов) в то время, как в прототипе время выполнения операций сдвигов может занимать до 1,8 мкс и зависит от числа сдвигов, Использование сдвигателя позволяет также значительно ускорить выполнение операций как с фиксированной точкой, так и с плавающей точкой, Так в операции умножения с фиксированной точкой при сокращении количества итераций умножения, в случае равенства 15-ти старших разрядов множителя знаковому разряду, производится сдвиг полученного произведения на 15 разрядов вправо за один машинный такт (160 нсек). В операции деления с фиксированной точкой при приведении делителя к нормализованному виду также используются возможности сдвигателя для сдвига делителя на количество нулевых разрядов в делителе за один машинный такт. Время выполнения операций сложения, умножения, деления с плавающей точкой сокращается за счет сдвига мантисс за один машинный такт при нормализации операндов и результата.Введение блока ускоренного умноже. шя и оптимальная организация связи ого с остальным оборудованием АУ позволяет выполнять операцшо умножения в 3,5 - 4 раза быстрее, чем в прототипе, Применение блока ускоренного умножения позволяет также выполнять операцию умножен, я с расширенным результатом (длина мантиссы - 128 двоичных разрядов). Формула изобретения Арифме 1 ическое устройство, содержашее регистры первого и второго операндов, первый, второй и третий регистры, основной сумматор, байтовый сумматор, коммутаторы первого и второго входов основного сумматора, коммутаторы первого и второго входов байтового сумматора, регистры основного и байтового сумматоров, причем выходы коммутаторов первого и второго входов основного сумматора соединены с соответствующими входами основного сумматора, выход которого подключен ко входу регистра основного сумматора, выход которого соединен со входами регистров первого и второго операндов и первого и второго регистров, другие входы регистров первого и второго операндов соединены со входами устройства, первые и вторые входы коммутаторов первого и второго входов основного сумматора подключены к выходам соответственно регистра первого операнда и первого регистра и регистра второго операнда и второго регистра, выходы коммутаторов первого и второго входов687982 15 16 Составитель В, Березкинехред И. Заболотнова Корректор И; Осиновская. ед акт техин Изд.107 Тираж 731 Подписное дарственного ко.нтета СССР по делам изобретений и открытий 13035, Москва, Ж, Раушская наб д, 4/5 аказ 9/27ПО Поиск Тип. Х фил пред Патент байтового сумматора подключены к соответствующим входам байтового сумматора, выход которого подключен ко входу регистра байтового сумматора, выход которото соединен со входом третьего регист ра, входы коммутатора первого входа байтового сумматора подключены к выходам регистра первого операнда и третьего регистра, вход коммутатора второго входа байтового сумматора соединен с выходом 10 регистра второго операнда, о тл и ч а ющ е е с я тем, что, с целью повышения быстродействия, устройство содержит блок ускоренного умножения, сдвигатель, регистр сдвигателя, коммутатор входа сдви гателя, узел управления сдвигателем и дешифраторы регистров основного суммато. ра, байтового сумматора и сдвигателя, входы которых подключены к выходам соответствующих регистрова выходы под ключены ко входам узла управления сдвитателем, выход которого подключен к управляющему входу сдвигателя, первый вход которого подключен к выходу коммутатора входа сдвигателя, входы которого соединены с выходами регистров первого и второго операндов и первого и второго регистров, выход сдвигателя подключен ко входу регистра сдвигателя, выход которого подключен ко входам регистров первого и второго операндов и первого и второго регистров, входы блока ускоренного умножения подключены к выходам регистров первого и второго операндов, а первый и второй выходы соединены с третьими входами коммутаторов соответственно первого и второго входов основного сумматора, третий выход блока ускоренного умножения подключен ко второму входу сдвигателя, ) Источники информации, принятые во внимание при экспертизе:1. Авторское свидетельство СССР522497, кл. б 06 Р 7/38, 1971,2. Патент Франции1553670; . кл. С 06 1, 1974 (прототип),

Смотреть

Заявка

2566654, 03.01.1978

ПРЕДПРИЯТИЕ ПЯ М-5769

ШУЛЬГИН А. А, ХРАМЦОВ И. С, ФРОЛОВА С. И, ВЕРИГИНА В. В, СЛЮСАРЕВ Н. А

МПК / Метки

МПК: G06F 7/50

Метки: арифметическое

Опубликовано: 07.01.1982

Код ссылки

<a href="https://patents.su/8-687982-arifmeticheskoe-ustrojjstvo.html" target="_blank" rel="follow" title="База патентов СССР">Арифметическое устройство</a>

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