Устройство для деления
Иллюстрации
Показать всеРеферат
Изобретение относится к цифровой вычислительной технике и может быть использовано в составе арифметических устройств цифровых вычислительных машин. Цель изобретения - сокращение аппаратурных затрат. Устройство содержит регистры 1, 2 делителя и делимого, блоки 3 - 6 преобразования кода, умножения, памяти, мультиплексоров и имеет входы 7, 8 делителя и делимого, выходы 9, 10 регистров делимого и делителя, входы 11, 12 первого и второго сомножителей блока умножения Y и X, причем вход 12 является также выходом устройства, выход 13 блока умножения, управляющие входы 14 - 23. Устройство для деления Z = X/Y выполняет такие преобразования делимого и делителя, после которых знаменатель стремится к единице "снизу", а числитель приближается к отыскиваемому частному с требуемой точностью. 2 ил.
СОЮЗ СОВЕТСКИХ
СОЦИАЛИСТИЧЕСКИХ
РЕСПУБЛИК (н)ю G 06 F 7/52
ГОСУДАРСТВЕННЫЙ КОМИТЕТ
ПО ИЗОБРЕТЕНИЯМ И ОТКРЫТИЯМ
ПРИ ГКНТ СССР жг,пцяЦДД
ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Ф
Ье
I
К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ (21) 4710743/24 (22) 26.06.89 (46) 23.07.91. Бюл. М 27 (72) Ю.А,Буслаев, Н.Ю.Дидух, А,А.Драгунов и Г.Г.Калиш (53) 681.325 (088.8) (56) Авторское свидетельство СССР
М 742931, кл. G 06 F 7/38, 15/36, 1978.
Авторское свидетельство СССР
М 1363186, кл. G 06 F 7/38, 1986. (54) УСТРОЙСТВО ДЛЯ ДЕЛЕНИЯ (57) Изобретение относится к цифровой вычислительной технике и может быть использовано в составе арифметических устройств цифровых вычислительных машин. Цель изобретения — сокращение аппаратурных Ж 1665374 А1 затрат. Устройство содержит регистры 1, 2 делителя и делимого, блоки 3-6 преобразования кода, умножения, памяти, мульти-. плексоров и имеет входы 7, 8 делителя и делимого, выходы 9, 10 регистров делимого и делителя, входы 11, 12 первого и второго сомножителей блока умножения у и х, причем вход 12 является также выходом устройства, выход 13 блока умножения, управляющие входы 14-23. Устройство для деления z = х/у выполняет такие преобразования делимого и делителя, после которых знаменатель стремится к единице
"снизу", а числитель приближается к отыскиваемому частному с требуемой точностью. 2 ил.
1665374
Изобретение относится к цифровой вычислительной технике и может быть использовано в составе арифметических устройств цифровых вычислительных машин.
Целью изобретения является сокращение аппаратурных затрат.
На фиг.1 показана сторуктурная схема устройства для деления; на фиг.2 — временная диаграмма работы устройства, Устройство содержит регистр 1 делителя, регистр? делимого, блок 3 преобразования прямого кода в дополнительный, блок 4 умножения, блок 5 памяти, блок 6 мультиплексоров, входы 7 и 8 делителя и делимого устройства, выходы 9 и 10 регистра делимого и регистра делителя, вход 11 первого сомножителя блока умножения, вход 12 является входом второго сомножителя блока
1 умножения и выходом устройства, выход 13 блока умножения, (входы-выходы 9 — 13 соответствуют шинам), первый, второй, третийй уп равля ющие входы 14-16 устройства, седьмой и восьмой управляющие входы 17 и 18 устройства, вход 19 логической единицы устройства, четвертый, девятый, пятый и шестой управляющие входы 20 — 23 устройства.
Регистр 1 делителя предназначен для хранения исходного значения делителя, получаемого иэ входной шины у устройства и преобразованных значений делителя, получаемых из блока 4 умножения.
Регистр 2 делимого предназначен для хранения исходного значения делимого, получаемого из входной шины х устройства, и преобразованных значений делимого, полученных из блока 4 умножения.
Блок 4 умножения предназначен для перемножения сомножителей х и уь
Блок 5 предназначен для хранения сомножителей, необходимых для проведения первой итерации алгоритма деления.
Блок 6 мультиплексоров предназначен для выбора одной из двух шин, поступающих от регистра 1 делителя или регистра 2 делимого на вход х блока 4 умножения и на выходную информационную шину устройства.
Принцип действия устройства для деления z = x/у основан на использовании того факта, что после выполнения каждого этапа вычислений над делителем в его старших разрядах имеется гарантированное число единиц, а каждое преобразование делимого позволяет увеличить точность отыскиваемого частного.
Устройство для деления выполняет вычисление частного за несколько итераций и работает следующим образом.
Перед началом работы регистр 1 и. регистр 2 устанавливаются в "0" сигналом, поступающим от шины управления устрой- . ства. Затем на входы делителя 7 и делимого
5 8 поступают соответственно исходные значения делителя и делимого от внешних информационных шин устройства. Исходное значение делителя у записывается íà регистр 1 делителя сигналов с входа 14. Исход10 ное значение делимого х записывается на регистр 2 делимого сигналом с входа
15, Затем устройство начинает работать по следующему алгоритму, Первая итерация, 15 Шаг 1: определение множителя k<, который рассчитывается заранее, Полученное значение записывается в блок 5 памяти, откуда считывается при выполнении первой итерации.
20 Множитель k> рассчитывается так, чтобы выполнялось условие
2о 2-1 2 è-1 и
25 где р
В устройстве для деления считывание множителя k> иэ блока 5 памяти происходит
30 следующим образом. Старшие разряды делителя из регистра 1 делителя по информационной шине 10 подаются на адресные входы блока 5 памяти. Информационное. слово, считываемое из блока 5 памяти, по35 ступает на информационную шину 11. Шина
11 имеет "третье" (высокоимпеданское) состояние, управление которым осуществляется сигналом по входу 17. Таким образом, сигнал с входа 17 открывает доступ считы40 ваемой из блока 5 информации на информационную шину 11. Информационые выходы блока 3 преобразования кода в это время находятся в "третьем" (высокоимпедансном) состоянии, которое управляется сигна45 лом, поступающим от управляющего входа
19 устройства. Информация, поступающая по информационной шине 11, записывается на входной внутренний регистр блока 3 умножения сигналом с входа 23.
50 Шаг 2: перемножение считанного из блока 5 памяти множителя к1, который уже находится во внутреннем регистре у блока
4 умножения, и делимого х;
k> * х = х - z, Полученное проиэведе55 ние дает первое грубое приближение к требуемому результату и гарантирует верное значение нескольких старших разрядов.
Исходное значение делимого х по информационной шине 9 через блок 6
1665374 мультиплексоров передается на информационную шину 12. Блок 6 мультиплексоров управляется сигналом с входа 20. Информация, поступающая по информационной шине 12, записывается на входной внутренний 5 регистр х блока 4 умножения сигналом по входу 22. Блок 4 умножения содержит матрицу умножения, которая производит эту операцию с содержимыми внутренних регистров х и у. Выходы блока 4 умножения 10 имеют "третье" состояние, которое управляется сигналом с входа 21.
30
40 лом на входе 14
Считывание результата производится следующим образом: частное z = xt, записанное в регистре 2 делимого, поступает на информационную шину 9 через блок 6.мультиплексоров и передается на шину 12, которая соединена с информационной шиной устройства.
Приведенный алгоритм при условии ис. пользования блока 5 постоянной памяти емкостью 2048 шестнадцатиразрядных слов позволяет определить частное при делении:
16-разрядных слов — за две итерации, 32Полученное произведение х> поступает на информационную шину 13, по которой 15 оно подается на вход регистра 2 делимого.
Запись в регистр 2 осуществляется сигналом на входе 15.
Шаг 3: перемножение считанного из блока 5 памяти и находящегося уже во внут- 20 реннем регистре блока 4 множителя k> и делителя у:
kt++у=у1 -«1, Полученное произведение у1 приближает знаменатель к единице "снизу" и гарантирует требуемое количество двоичных единиц после знакового разряда:
k> * y = y =0 11 1 х х х
В этом случае устройство работает следующим образом. Исходное значение делителя по информационной шине 10 через блок 6 мультиплексоров подается на информационную шину 12. Исходное значение делителя у записывается во входной внутренний регистр х блока 4 сигналом на входе
22. Полученное произведение у1 по шине 13 поступает на вход регистра 1 делителя, запись в который осуществляется сигнаВторая итерация.
LLIar 1: вычисление коэффициента kz:
k2 = (Дополнение у1 до единицы)+ 1 =
= 1 0 õ...х .
Данйая операция осуществляется следующим образом: записанное в регистр 1 делителя значение у1 по информационной шине 10 поступает на блок 3 преобразова-. ния кода. В этом блоке информ3щия инвертируется, затем по сигналу на входе "+1" 18 к младшему разряду полученного кода прибавляется единица, Вычисленное таким образом значение 1г по информационной шине 11 записывается на входной внутренний регистр у блока 4 умножения сигналом на входе 23, Шаг 2: перемножение вычисленного множителя kz и результата первой итерации xt:
kz * x>- xr. w.
Считанное из регистра 2 делимого значение х1 по шине 9 через блок 6 мультиплексоров поступает на шину 12, Код, поступающий по шине 12. записывается сигналом на входе 22 на входной внутренний регистр блока 4 умножения. Полученное произведение xz выдается на шину 13 сигналом на входе 21. Данная информация, считанная с шины 13, записывается на регистр 2 делимого сигналом на входе 15.
Шаг 3: перемножение вычисленного множителя k2 и yt .
y> * kz = уя = 0.11...111...1 xx...x «1.
Умножение у1 на4 позволяет увеличить в делителе количество двоичных единиц после знакового разряда минимум вдвое.
Действительно, так как y> < 1,то его можно представить как у1 = 1 - ) у (, тогда kp -.
= 1+ lyl и произведение равно г* yt =(1+ lyl )+(1 -lyf ) =1- Ф.
Таким образом, кажое подобное преобразование увеличивает количество послезнаковых единиц в знаменателе в два раза.
Значение у1считывается на информационную шину 10 с регистра 1 делителя и через блок 6 мультиплексоров поступает на шину
12. Запись информации с шины 12 производится сигналом на входе 22 на входной внутренний регистр блока 4 умножения.
Произведение считывается сигналом на входе 21 из блока 4 умножения на информационную шину 13 и записывается на регистр
1 делителя сигналом на входе 14.
Вычисления прекращаются, как только достигается требуемая точность частного, т.е. если у1 становится равным
yt--011
Такое значение у гарантирует точное значение частного либо возможную ошибку в младшем разряде вне зависимости от разрядности и значения чисел.
Третья и последующие итерации аналогичны второй.
1665374 разрядных слов — за три итерации, 64-разрядных слов — за четыре итерации.
Формула изобретения
Устройство для деления, содержащее регистры делимого и делителя, блок умножения, блок памяти, блок мультиплексоров и блок преобразования прямого кода в до, полнительный, причем первые информаци онные входы регистров делимого и
, делителя соединены с входами делимого и, делителя устройства, выходы регистров де-!
, лителя и делимого соединены с первым и, вторым информационным входами соот, ветственно блока мультиплексоров, выход блока умножения соединен с вторыми информационными входами регист ров делимого и делителя, выход блока, памяти соединен с входом первого сомно жителя блока умножения, входы разреше ния записи регистров делителя и делимого
1 соединены с первым и вторым управляющи, ми входами устройства, третий управляю ций вход устройства соединен с входами установки в "О" регистров делимого и делителя, четвертый управляющий вход устройства соединен с управляющим входом блока мультиплексоров, пятый и шестой управляющие входы устройства соединены с пер5 вым и вторым входами разрешения записи блокаумножения,отличающееся тем, что, с целью сокращения аппаратурных затрат, выход регистра делителя соединен с адресным входом блока памяти и с инфор10 мационным входом блока преобразования прямого кода в дополнительный, выход которого соединен с входом первого сомножителя блока умножения, вход второго сомножителя которого соединен с выхо15 дом блока мультиплексоров и выходом результата устройства, седьмой и восьмой управляющие входы устройства соединены с входами управления состоянием выходов соответственно блока памяти и
20 блока преобразования прямого кода в дополнительный, вход логической единици которого соединен с входом логической единицы устройства, девятый управляющий вход которого соединен с входом
25 управления выходами блока умножения.
1665374