Устройство для деления
Иллюстрации
Показать всеРеферат
Союз Советскии
Социалистических
Республик
<11 734682
К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ
1,,1 (61) Дополнительное к авт. свид-ву —— (22) Заявлено 07.07.75 (21) 2379670/18-24 с присоединением заявки №вЂ” (54) М. Кл.
G 06 F 7/39
Опубликовано 15.05.80. Бюллетень № 18
Дата опубликования описания 17.05.80 (53) УДК 681.327 (088.8) аа делам изобретений и открытий
В. Ф. Гусев, Г. Н. Иванов, В. Я. Контарев,Г.И.Кренгель, Г. М. Персов, В. Я. Кремлев, М. 3. Шагивалеев, Ю. И. Щетинки и А. У. Ярмухаметов (721 Авторы изобретения (71) 3аявитель (54) УСТРОЯСТВО ДЛЯ ДЕЛЕНИЯ зааУдаРотввииый комитет (23) Приоритет—
Изобретение относится к вычислительной технике и может быть использовано при построении вычислительных машин.
Известно устройство для деления, содержащее сумматор, регистр частного, регистр делителя, схему анализа знака остатка, блок управления 11).
Такое устройство имеет пониженное быст родействие, так как для получения каждого двоичного разряда частного требуется цикл, состоящий из двух машинных тактов: такта сложения или вычитания и такта сдвига.
Наиболее близким к предлагаемому является устройство для деления, содержащее сумматор, информационные входы которого подключены соответственно к первой и второй информационным шинам, первый выход сумматора соединен с первым информационным входом регистра остатка и регистра делителя, второй выход сумматора соединен с первым входом блока управления, второй вход которого подключен к выходу счетчика, первый выход блока управления подключен ко входу счетчика, второй выход к управляющим входам дополнительного регистра, регистра, частного, сумматора, 2 регистра остатка, регистра делителя, первый выход которого соединен со в-.орой информационной шиной. выход дополнительного регистра соединен со входом регистра частного, первый информационный вход и выход регистра остатка соединены с первой информационной шиной (2).
Недостатком известного устройства является низкое быстродействие.
Цель изобретения — повышение быстродействия.
Цель достигается тем, что устройство содержит регистр промежуто.ного хранения остатка. регистр удвоенного делителя, регистр утроенного делителя, блок определения позиции старшего разряда делителя. содержащий регистр и шифратор. причем выходы регистра соединены со входами шифратора, коммутатор и регистр выбранных разрядов остатка, вход которого подключен к выходу коммутатора, выход регистра выбранных разрядов остатка подключен к третьему входу блока управления, выход которого соединен с управляющими входами блока определения позиции старшего разряда делителя, коммутатора, регистра промежу734682
Разряд мантисы
Код и оложеделителя ния
000
001
010
011
100
101
110 точного хранения остатка, регистра удвоенного делителя, регистра утроенного делителя, информационный вход регистра блока определения позиции старшего разряда делителя подключен к выходу регистра делителя, информационный выход регистра промежуточного хранения остатка подключен к первой информационной шине, информационные выходы регистров удвоенного и утроенного делителя подключены к первой информационной шине, информационные входы регистра промежуточного хранения остатка, регистров удвоенного и утроенного делйтеля подключены к первому выходу сумматора.
Блок-схема устройства приведена на чертеже.
Устройство содержит регистр 1 остатка, регистр 2 для промежуточного хранения остатка, првая информационная шина 3, регистр 4 делителя, регистры 5, 6 удвоенного и утроенного делителя, вторая информационная шина 7, сумматор 8, блок 9 управления, блок 10 определения позиции старшего разряда делителя, коммутатор 11, регистр 12 выбранных разрядов остатка, дополнительный регистр 13, на который поступают очередные два разряда частного, регистр 14 частного, счетчик 15, регистр 16, шифратор 17, составляющие блок 10 определения старшего разряда делителя.
В. основу работы устройства положены следующие принципы. Делимое и делитель должны быть:нормализованы до начала деления. Для получения правильного результата делитель должен быть больше делимого.
Определяется старший значащий разряд делителя и выделяются три разряда остатка: разряд, соответствующий старшему значащему разряду делителя и два соседних, более старших разряда. В первом цикле в качестве остатка берется делимое. Разряды остатка выбираются следующим образом: остаток ...xxx... делитель 0001, где х — нужные разряды остатка.
При комбинации выбранных разрядов остатка 000 остаток меньше делителя. Поэтому очередные два разряда частного могут принимать значение только 00. Остаток сдвигается на два разряда влево и выделяются новые три разряда остатка по тому же принципу. При комбинации 001 остаток может быть как больше, так и меньше делителя, соответственно очередные два разряда частного могут принимать значения 01 или 00.
Поэтому сначала из остатка вычитается делитель и, если вычитание прошло успешно, значит остаток больше делителя, и очередные два разряда частного имеют значение 01.
В этом случае результат вычитания сдвигается на два разряда влево и является новым остатком. Если вычитание было неуспешным, значит остаток меньше делителя и очередные два разряда частного имеют значение 00.
В этом случае восстанавливается старый осtO
1$
И
3$ таток, сдвигается на два разряда влево, и начинается новый цикл деления выделением разрядов нового остатка. При комбинации 010 очередные два разряда частного могут принимать значения 10 или 01. Поэтому сначала из остатка Вычитается удвоенный делитель. При успешном вычитании очередные два разряда частного имеют значение 10. Результат вычитания сдвигается на два разряда всево, и начинается новый цикл деления. При неуспешном вычитании из восстановленного старого остатка вычитается делитель, очередные два разряда частного имеют значение 01, результат вычитания сдвигается на два разряда влево, и начинается новый цикл деления. При комбинации
011 очередные два разряда частного могут принимать значения 11 или 10, или 01. Поэтому сначала из остатка вь1читается утроенный делитель, при успешном вычитнии цикл заканчивается сдвигом влево результата вычитания, а при неуспешном — из восстановленного остатка вычитается удвоенный делитель и так далее. При комбинациях 100 и 101 очередные два разряда частного могут принимать значения 11 или 10, а при комбинациях 110 и i11 очередные два разряда частного могут быть только 11. Действия в этих случаях выполняются аналогично вышеописанному.
Устройство работает по способу с плавающей занятой с нормализовнными числами, представленными в шестнадцатеричной системе счисления. К началу деления на регистре остатка 1 находится мантисса делимого, на регистре делителя 4 — мантисса делителя, на первом рабочем регистре 5— удвоенная мантисса делителя, на втором рабочем регистре 6 — утроенная мантисса делителя. Буферный регистр
2, дополнительный регистр 13 и регистр частного 14 обнулены. В блок определения позиции старшего разряда делителя 10 переданы три старших разряда мантиссы делителя с регистра делителя 4. В звисимости от комбинации этих разрядов блок 10 вырабатывает код положения, который определяет позицию старшего значащего разряда делителя. Звисимость кода положения от комбинации трех старших разрядов мантиссы делителя имеет вид:
734682
1S ао
SO
Код положения поступает на вход коммутатора 11, который в зависимости от кода положения выбирает из регистра остатка 1 три разряда очередного остатка (в начале деления — делимого), младший из которых находится в той же позиции машинного слова, что и старший значащий разряд мантиссы делителя. Эти три разряда остатка поступают на регистр выбранных разрядов остатка 12. На счетчике 15 находится константа количества циклов деления. Регистр
2 используется для запоминания остатка на случай его восстановления.
Устройство работает следующим образом.
Блок управления 9 анализирует содержимое регистра выбранных разрядов остатка 12 и, в зависимости от комбинции выбранных разрядов остатка, вырабатывает соответствующие сигналы выдачи информации из регистров 1, 2, 4, 5, 6 на информационные шины 3, 7. Одновременно с этим блок микропрограммного управления 9 засылает два очередных разряда частного в дополнительный регистр 13, которые при последующем сдвиге влево на два разряда поступают в регистр частного, например, сдвиговой 14.
Тк, например, при комбинации выбранных разрядов остатка 000 очередные два разряда частного будут 00. В этом случае остаток, находящийся на регистре остатка 1, сдвигается влево на два разряда, и этот сдвинутый код является новым остатком. На регистр выбранных разрядов остатка 12 через коммутатор 14 поступают выбранные разряды нового остатка, в дополнительный регистр 13 заносится код 00 и сдвигается влево на два разряда.
При комбинации выбранных рзрядов остатка 001 очередные два разряда частного могут быть либо 01, либо 00. В этом случае на первую информационную шину 3 поступает остаток из регистра остатка 1, а на вторую информационную шину 7 поступает делитель из регистра делителя 4, и в сумматоре 8 по сигналу из блока микропрограммного управления 9 осуществляется вычитание делителя из остатка. Одновременно с этим остаток из регистра остатка 1 через первую информационную шину 3 пересылается в буферный регистр 2. Результат вычитания с выхода сумматора 8 поступет в регистр остатка 1 в качестве нового остатка, в дополнительный регистр 13 по сигналу из блока микропрограммного управления 9 засылается константа 01 и по сигналу выходного переноса, поступающему из сумматора
8 в блок микропрограммного управления 9, анализируется результат вычитания делителя из остатка. Если вычитание прошло успечно (есть выходной перенос), осуществляется сдвиг влево на два разряда вновь полученного остатка на регистре остатка 1 и частного на регистре частного 14 и на дополнительном регистре 13, на регистр выбраиных разрядов остатка 12 через коммутатор 11 выбираются по коду положения разряда нового остатка, и йачинается следующий цикл деления. Если же. вычитание не прошло (нет выходного переноса ), восста на вливается остаток пересылкой его из буферного регистра 2 через первую информационную шину 3 в регистр остатка 1, в дополнительный регистр 13 заносится код 00, сдвигаются на два разряда влево остаток на регистре остатка 1 и частное на регистре частного 14 и дополнительном регистре 13.
Затем на регистр выбранных разрядов остатка 12 через коммутатор 11 засылаются выбранные разряды нового остатка. и начинается следующий цикл деления.
При комбинации выбранных разрядов остатка 010 очередные два разряда частного могут принимать значение 10 или 01. В этом случае на првую информационную шину 3 поступает остаток из регистра остатка 1, на вторую информационную шину 7 из первого рабочего регистра 5 поступает удвоенный делитель, и в сумматоре 8 осуществляется вычитание удвоенного делителя из остатка. Одновременно в этим остаток из регистра остатка 1 через первую информационную шину 3 пересылается в буферный регистр 2. Результат вычитания с выхода сумматора 8 засылается в регистр остатка 1 в качестве нового остатка, в дополнительный регистр 13 заносится код 10 в качестве разрядов частного и анализируется результат вычитания. Если вычитание прошло успешно, на регистрах остатка 1, частного .14 и на дополнительном регистре 13 сдвигаются остаток и частное, на регистр выбранных разрядов остатка 12 поступают выбранные разряды нового остатка, и начинается следующий цикл деления. Если же вычитание удвоенного делителя не прошло, на первую информационную шину 3 поступает старый остаток из буферного регистра 2, на вторую информационную шину 7 ив регистра делителя 4 подается делитель, и в сумматоре 8 из восстановленного остатка вычитается делитель. Результат вычитания, являющийся новым остатком, поступает на регистр остатка 1, на дополнительный регистр 13 заносится код 01, остаток и частное сдвигаются на два разряда влево, выбранные разряды нового остатка поступа;от на регистр выбранных разрядов остатка 12, и начинается следующий цикл деления.
Аналогично работает устройство и при остальных комбинациях выбранных разрядов остатка.
При комбинации 011 очередные два разряда частного могут принимать значения
11, 10, 01. Поэтому цикл деления в этом случае начинается с вычитания из остатка утроенного делителя, находящегося «а втором рабочем регистре 6. При успешном вычитании в дополнительный ре-истр 13 заносится код 11, на регистрах остатка 1, част734682 ность ЭВМ оценивается по общепринятым методикам Gisson 6, GiBson III, CPO — WU— 11.
Формула изобретения
56 ного 14 и на дополнительном регистре 13 сдвигаются остаток и частное, на регистр выбранных разрядов остатка 12 поступают выбранные разряды нового остатка, и начинается следующий цикл деления. При неуспешном вычитании утроенного делителя из восстановленного остатка вычитается удвоенный делитель и так далее.
При комбинациях выбранных разрядов остатка 100 или 101 очередные два разряда частного могут принимать значения 11 или 10. При комбинациях выбранных разрядов остатка 110 или 111 очередные два разряда частного могут принимать значения только 11.
Окончание процесса деления определяется нулевым состоянием счетчика 15, на котором перед началом деления находится константа количества циклов, и с каждым циклом из содержимого счетчика 15 по сигналу блока микропрограммного управления
9 вычитается единица.
Таким образом при комбинации выбранных разрядов остатка 000 цикл деления укладывается в один машинный такт, при комбинациях 001, 010, 100, 101 цикл деления состоит из двух или трех машинных тактов в зависимости от успешного вычитания, при комбинации 011 цикл деления состоит из двух, трех или четырех машинных тактов и при комбинациях 110 и 111 цикл деления состоит из двух машинных тактов. При равновероятных комбинациях выбранных разрядов остатка на определение двух разрядов частного в среднем затрачивается 2,25 машинных такта или 1,125 машинных такта на разряд. По сравнению с прототипом, где на определение одного разряда частного затрачивается два машинных такта при прочих равных условиях, скорость выполнения операции деления возрастает на 78 .
Предлагаемое изобретение применяется в вычислительной машине ЕС вЂ” 1033 единой системы ЭВМ, где показывает свою высокую эффективность. Деление операндов короткого формата (32 разряда) осуществляется за 16 мксек, а длинного формата (64 разряда) — за 46 кмсек. ПроизводительУстройство для деления, содержащее сумматор, информационные входы которого подключены соответственно к первой и второй
16
15 6 и
36 информационным шинам, первый выход сумматора соединен с первым информационным входом регистра остатка и регистра делителй, второй выход сумматора соединен с первым входом блока управления, второй вход которого подключен к выходу счетчика, первый выход блока управления подключен ко входу счетчика, второй выход — к управляющим входам дополнительного регистра, регистра частного, сумматора, регистра остатка, регистра делителя, первый выход которого соединен со второй информационной шиной, выход дополнительного регистра соединен со входом регистра частного, первый информационный вход и выход регистра остатка соединены с первой информационной шиной, отличающееся тем, что, с целью повышения быстродействия устройства, оно содержит регистр промежуточного хранения остатка, регистр удвоенного делителя, регистр утроенного делителя, блок определения позиции старшего разряда делителя, содержащий регистр и шифратор, причем выходы регистра соединены со входами шифратора, коммутатор регистр выбранных разрядов остатка, вход которого подключен к выходу коммутатора, выход регистра выбранных разрядов остатка подключен к третьему входу блока управления, выход которого соединен с управляющими входами блока определения позиции старшего разряда делителя, коммутатора, регистра промежуточного хранения остатка, регистра удвоенного делителя, регистра утроенного делителя, информационный вход регистра блока определения позиции старшего разряда делителя подключен к выходу регистра делителя, информационный выход регистра промежуточного хранения остатка подключен к первой информационной шине, информационные выходы регистров удвоенного и утроенного делителя подключены к первой информационной шине, ннформационные входы регистра промежуточного хранения остатка, регистров удвоенного и утроенного делителя подключены к первому выходу сумматора.
Источники информации, принятые во внимание при экспертизе
1. Коган Б. М., Каневский М. М. Цифровые вычислительные машины и устройства.
M., 19?3, с. 349 — 350.
2. Хассон С. Микропрограммное управление, М., «Мир», вып. 2, 1974„с. 152 (прототип) .
734682
Составитель P. Яворовская
Редактор Н. Горват Техред К. Шуфрич Корректор Н. Стен
Заказ 2221/11 Тираж 751 Подписное
ЦНИИПИ Государственного комитета СССР по делам изобретений н открытий
113035, Москва, )К вЂ” 35, Раушская наб., д. 4/5
Филиал ППП «Патент», г. Ужгород, ул. Проектная, 4