I
Изобретение относится к вычислительной технике и может быть использовано при построении вычислительных машин.
Известно устройство для деления, содержащее сумматор, регистр частного, регистр делителя, схему анализа знака остатка, блок управления П.
Такое устройство имеет пониженное быстродействие, так как для получения каждого двоичного разряда частного требуется цикл, состоящий из двух машинных тактов: такта сложения или вычитания и такта сдвига.
Наиболее близким к предлагаемому является устройство для деления, содержащее сумматор, информационные входы которого подключены соответственно к первой и второй информационным шинам, первый выход сумматора соединен с первым информационным входом регистра остатка и регистра делителя, второй выход сумматора соединен с первым входом блока управления, второй вход которого подключен к выходу счетчика, первый выход блока управления подключен ко входу счетчика, второй выход к управляющим входам дополнительного регистра, регистра, частного, сумматора.
регистра остатка, регистра делителя, первый выход которого соединен, со второй информационной щиной, выход дополнительного регистра соединен со входом регистра частного, первый информационный вход и выход регистра остатка соединены с первой информационной ЦН1НОЙ 2.
Недостатком известного устройства является низкое быстродействие.
Цель изобретения - повышение быстродействия.
10
Цель достигается тем, что устройство содержит регистр промежуточного хранения остатка, регистр удвоенного делителя, регистр утроенного делителя, блок определения позиции старшего разряда делителя,
15 содержащий регистр и щифратор, причем выходы регистра соединены со входами шифратора, коммутатор и регистр выбранных разрядов остатка, вход которого подключен к выходу коммутатора, выход регистра выбранных разрядов остатка подключен к тре20тьему входу блока управления, выход которого соединен с управляющими входами блока определения позиции старшего разряда делителя, коммутатора, регистра промежуТОЧНОГО хранения остатка, регистра удвоенного делителя, регистра утроенного делителя, информационный вход регистра блока определения позиции старшего разряда делителя подключен к выходу регистра делителя, информационный выход регистра промежуточного хранения остатка подключен к первой информационной шине, информационные выходы регистров удвоенного и утроенного делителя подключены к первой информационной шине, информационные входы регистра промежуточного хранения остатка, регистров удвоенного и утроенного делителя подключены к первому выходу сумматора. Блок-схема устройства приведена на чертеже. Устройство содержит регистр 1 остатка, регистр 2 для промежуточного хранения остатка, првая информационная шина 3, регистр 4 делителя,регистры 5, 6 удвоенного и утроенного делителя, вторая информационная шина 7, сумматор 8, блок 9 управления, блок 10 определения позиции старшего разряда делителя, коммутатор 11, регистр 12 выбранных разрядов остатка, дополнительный регистр 13, на который поступают очередные два разряда частного, регистр 14 частного, счетчик 15, регистр 16, шифратор 17, составляюш.ие блок 10 определения старшего разряда делителя. В. основу работы устройства положены следуюшие принципы. Делимое и делитель должны быть нормализованы до начала деления. Для получения правильного результата делитель должен быть больше делимого. Определяется старший значащий разряд делителя и выделяются три разряда остатка: разряд, соответствующий старщему значащему разряду делителя и два соседних, более старших разряда. В первом цикле в качестве остатка берется делимое. Разряды остатка выбираются следующим образом: остаток ...XXX... делитель 0001, где X - нужные разряды остатка. При комбинации выбранных разрядов остатка 000 остаток меньше делителя. Поэтому очередные два разряда частного могут принимать значение только 00. Остаток сдвигается на два разряда влево и выделяются новые три разряда остатка по тому же принципу. При комбинации 001 остаток может быть как больше, так и меньше делителя, соответственно очередные два разряда частного могут принимать значения 01 или 00. Поэтому сначала из остатка вычитается делитель и, если вычитание прошло успешно, значит остаток больше делителя, и очередные два разряда частного имеют значение 01. В этом случае результат вычитания сдвигается на два разряда влево и является новым остатком. Если вычитание было неуспещным, значит остаток меньше делителя и очередные два разряда частного имеют значение 00. В этом случае восстанавливается старый остаток, сдвигается на два разряда влево, и начинается новый цикл деления выделением разрядов нового остатка. При комбинации 010 очередные два разряда частного могут принимать значения 10 или 01. Поэтому сначала из остатка йычитается удвоенный делитель. При успешном вычитании очередные два разряда частного имеют значение 10. Результат вычитания сдвигается на два разряда всево, и начинается новый цикл деления. При неуспешном вычитании из восстановленного старого остатка вычитается делитель, очередные два разряда частного имеют значение 01, результат вычитания сдвигается на два разряда влево, и начинается новый цикл деления. При комбинации 011 очередные два разряда частного могут принимать значения 11 или 10, или 01. Поэтому сначала из остатка вь1читается утроенный делитель, при успешном вычитнии цикл заканчивается сдвигом влево результата вычитания, а при неуспешном - из восстановленного остатка вычитается удвоенный делитель и так далее. При комбинациях 100 и 101 очередные два разряда частного могут принимать значения И или 10, а при комбинациях 110 и ill очередные два разряда частного могут быть только 11. Действия в этих случаях выполняются аналогично вышеописанному. Устройство работает по способу с плавающей запятой с нормализовнными числами, представленными в шестнадцатеричной системе счисления. К началу деления на регистре остатка 1 находится мантисса делимого, на регистре делителя 4 - мантисса делителя, на первом рабочем регистре 5 - удвоенная мантисса делителя, на втором рабочем регистре 6 - утроенная мантисса делителя. Буферный регистр 2, дополнительный регистр 13 и регистр частного 14 обнулены. В блок определения позиции старшего разряда делителя 10 переданы три старших разряда мантиссы делителя с регистра делителя 4. В звисимости от комбинации этих разрядов блок 10 вырабатывает код положения, который определяет позицию старшего значащего разряда делителя. Звисимость кода положения от комбинации трех старших разрядов мантиссы делителя имеет вид: Код положения поступает на вход коммутатора 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 выбираются по коду положения разряда нового остатка, и 1Тачкнается следуюший цикл деления. Если же. вычитание не прошло (нет выходного переноса), восстанавливается остаток пересылкой его из буферного регистра 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, частHoro 14 и на дополнительном регистре 13 сдвигаются остаток и частное, на регистр выбранных разрядов остатка 12 поступают выбранные разряды нового остатка, и начинается следующий цикл деления. При неуспешном вычитании утроенного делителя из восстановленного остатка вычитается удвоенный делитель н так далее. При комбинациях выбранных разрядов остатка 100 или 101 очередные два разряда частного могут принимать значения 11 или 10. При комбинациях выбранных разрядов остатка 110 или 111 очередные два разряда частного могут принимать значения только I1. Окончание процесса деления определяется нулевым состоянием счетчика 15, на котором перед началом деления находится константа количества циклов, и с каждым циклом из содержимого счетчика 15 по сигналу блока микропрограммного управления 9 вычитается единица. Таким образом при комбинации выбранных разрядов остатка 000 цикл деления укладывается в один машинный такт, при комбинациях 001, 010, 100, 101 цикл деления состоит из двух или трех машинных тактов в зависимости от успешного вычитания, при комбинации 011 цикл деления состоит из двух, трех или четырех машинных тактов и при комбинациях 110 и 111 цикл деления состоит из двух машинных тактов. При равновероятных комбинациях выбранных разрядов остатка на определение двух разрядов частного в среднем затрачивается 2,25 машинных такта или 1,125 машинных такта на разряд. По сравнению с прототипом, где на определение одного разряда частного затрачивается два машинных такта при прочих равных условиях, скорость выполнения операции деления возрастает на 78%. Предлагаемое изобретение применяется в вычислительной машине ЕС-1033 единой системы ЭВМ, где показывает свою высокую эффективность. Деление операндов короткого формата (32 разряда) осуществляется за 16 мксек, а длинного формата (64 разряда) - за 46 кмсек. Производительность ЭВМ оценивается по общепринятым методикам GiBSon 6, GiBSon III, СРО - WU-II. Формула изобретения Устройство для деления, содержащее сумматор, информационные входы которого подключены соответственно к первой и второй информационным шинам, первый выход сумматора соединен с первым информационным входом регистра остатка и регистра делителя, второй выход сумматора соединен с первым входом блока управления, второй вход которого подключен к выходу счетчика, первый выход блока управления подключен ко входу счетчика, второй выход - к управляющим входам дополнительного регистра, регистра частного, сумматора, регистра остатка, регистра делителя, первый выход которого соединен со второй информационной шиной, выход дополнительного регистра соединен со входом регистра частного, первый информационный вход и выход регистра остатка соединены с первой информационной шиной, отличающееся тем, что, с целью повышения быстродействия устройства, оно содержит регистр промежуточного хранения остатка, регистр удвоенного делителя, регистр утроенного делителя, блок определения позиции старшего разряда делителя, содержащий регистр и шифратор, причем выходы регистра соединены со входами шифратора, коммутатор регистр выбранных разрядов остатка, вход которого подключен к выходу коммутатора, выход регистра выбранных разрядов остатка подключен к третьему входу блока управления, выход которого соединен с управляющими входами блока определения позиции старшего разряда делителя, коммутатора, регистра промежуточного хранения остатка, регистра удвоенного делителя, регистра утроенного делителя, информационный вход регистра блока определения позиции старшего разряда делителя подключен к выходу регистра делителя, информационный выход регистра промежуточного хранения остатка подключен к первой информационной шине, информационные выходы регистров удвоенного и утроенного делителя подключены к первой информационной шине, нкформацнонные входы регистра промежуточного хранения остатка, регистров удвоенного и утроенного делителя подключены к первому выходу сумматора. Источники информации, принятые во внимание при экспертизе 1.Коган Б. М., Каневский М. М. Цифровые вычислительные машины и устройства. М., 1973, с. 349-350. 2.Хассон С. Микропрограммное управление, М., «Мир, вып. 2, 1974, с. 152 (прототип).
название | год | авторы | номер документа |
---|---|---|---|
Арифметическое устройство | 1978 |
|
SU687982A1 |
Устройство для умножения и деления с плавающей точкой | 1985 |
|
SU1278837A1 |
Устройство для деления двоичных чисел | 1975 |
|
SU646331A1 |
Устройство для умножения | 1976 |
|
SU651341A1 |
Конвейерное устройство для деления | 1985 |
|
SU1297037A1 |
Устройство для деления двоичных чисел | 1987 |
|
SU1432508A1 |
Устройство для вычисления квадратного корня | 1973 |
|
SU560224A1 |
Устройство для деления | 1983 |
|
SU1164698A1 |
Вычислительное устройство | 1983 |
|
SU1173411A1 |
Устройство для деления двоичных чисел | 1988 |
|
SU1617437A1 |
Авторы
Даты
1980-05-15—Публикация
1976-07-07—Подача