(54) УСТРОЙСТВО ДЛЯ ВЫЧИСЛЕНИЯ КВАДРАТНОГО КОРНЯ
название | год | авторы | номер документа |
---|---|---|---|
Анализатор спектров | 1982 |
|
SU1023341A1 |
Устройство для вычисления функций | 1989 |
|
SU1705822A1 |
Устройство для быстрого преобразования Фурье | 1985 |
|
SU1287175A1 |
Устройство для вычисления элементарных функций по алгоритму Волдера | 1982 |
|
SU1068933A1 |
Вычислительное устройство | 1986 |
|
SU1322270A1 |
Цифровое устройство для вычисления синусно-косинусных функций | 1980 |
|
SU926651A1 |
Устройство для быстрого преобразования Фурье | 1988 |
|
SU1524066A1 |
Устройство для быстрого преобразования Фурье | 1984 |
|
SU1206802A1 |
Цифровой преобразователь координат | 1981 |
|
SU1076903A1 |
Вычислительное устройство для поворота вектора | 1979 |
|
SU857979A1 |
I
Изобретение относится к цифровой вычислительной технике и может быть использовано для вычисления квадратного корня в системах цифровой обработки информации и цифровых вычислительных машинах.
Известно устройство для вычисления квадратного корня, содержащее постоянное запоминающее устройство, сумматор-вычитатель, умножитель и ряд регистров ClJ.
Это устройство реализует метод таблично-интерполяционного вычисления квадратного корня и требует для своего воплощения большого объема оборудования и большого времени счета.
Наиболее близким по технической сущности к предлагаемому изобретению является устройство для вычисления квадратного корня, содержащее регистры данных, сумматоры-вычитатели, сдвигатели, датчик кода операций и регистр кода 2 .
Недостатком известного устройства является низкое быстродействие и большой объем оборудования.
Цель изобретения - повышение быстродействия устройства.
Поставленная цель достигается тем, что устройство дпя вычисления квадратного корня, содержащее блок управления, первый и второй регистры данных, соединенные первыми выходами с первыми входами соответственно первого и второго сумматоров-вычитателей и первыми входами соответственно первого и второго сдвигателей, выходы которых соединены со вторыми входами соответственно второго и первого сумматоров-вычитателей, выходы которых соединены с первыми входами соответственно второго и первого регистров данных, второй вход первого регистра данных является информационным входом устройства, второй вход второго сдвигателя соединен с выходом первого регистра кода, датчик кода операций, содержащий триггер, выход которого соединен со входом первого элемента НЕ и первым входом элемента ИЛИ, выход которого подключен ко входу элемента НЕ, причем выходы триггера и первого элементов НЕ, а также выходы элемента ИЛИ и второго элемента НЕ являются соответственно первым и вторым выходами датчика кода операций и подключен к третьим входам соответственно первого и второго сумматоров-вычитателей, выход последнего из которых является выходом устройства,введены второй регистр кода, регистр сдвига и дешифратор, вход которого соединен с выходом первого регистра данных, а выход дешифратора - с первым входом регистра сдвига, выход которого подюпючен к первому входу второго регистра кода, выход которого соединен со вторым входом первого сдвигателя, выход результата второго сумматора-вычитателя соединен совторым инверсным входом второго регистра данных, первый и второй входы записи первого регистра данных соединены соответственно с первым и вторым выходами блока управления, вход управления сдвигом и записью второго регистра кода подключены соответственно к третьему и четвертому выходам блока упра вления, вход записи числа сдвигов второго и первого регистров кода соединены соответственно с пятым и шестым выходами блока управления, входы признака сдвига второго и первого регистров . кода подключены соответственно к седьмому и восьмому выходам блока управления, вход записи порядка и вход сдвига порядка регистра сдвига соединены соответственно с девятьм и десятым выходом блока управления, вход признака операции и вход записи знака датчика кода операции соединены с оддинадцатым и двенадцатым выходами блока управления соответственно, вход записи нуля и входы управления записьк) инверсного и прямого кода результата второго регистра данных соединены соответственно с тринадцатым, четырнадцатым и пятнадцатым выходами блока управления, шестнадцатый выход которого подключен к входу управления записью второго регистра кода.
838974
Кроме того, блок управления содержит счетчик номера микрокоманды, блок памяти микрокоманд, регистр микрокоманд, группу элементов И, J счетчик числа сдвигов,элемент И-НЕ, выход которого подключен к входам записи регистра микрокоманд и счетчика номера микрокоманды, выход которо- . го подключен к входу блока памяти to микрокоманд, выходы которого соединены с разрядными входами регистра микрокоманд, выходы которого подключены к первым входам соответствующих элементов И группы, вторые входы коfS торых и первый вход элемента И-НЕ соединен с входом тактовой частоты устройства, второй вход элемента И-НЕ и первый вход последнего элемента И группы подключены к сигналу Результат уст20ройства, вход Пуск устройства соединен с входами обнуления счетчика jiOMepa микрокоманды, регистра микрокоманды и счетчика числа сдвигов,вы25 двенадцатого, одинадцатого, десятого, девятого элементов И и выходы счетчика числа сдвигов являются соответственно выходами с первого по шестой блока управления, выход тринадцатого разряда и вход обнуления регистра микрокоманды,выходы шестого, восьмого,седьмого элементов И группы, выход первого разряда регистра микрокоманды, выходы пятого, четвертого, третьего и второго элементов И группы являются соответственно с седьмого по щестнадцатьй выходами блока управления, выход нулевого и шестого разрядов р.егистра микрокоманд соединены соответственно с первым и вторым счетными входами счетчика числа сдвигов.
На фиг.1 представлена блок-схема предлагаемого устройства для вычисления квадратного корня; на фиг.2 функциональная схема блока управления; на фиг.З - основной фрагмент дешифратора, осуществляющего определение четного числа нулей после запятой до первой значащей цифры аргумента; 50 на фиг,4- датчик кода операций для сумматоров- вычитателей.
Блок-схема устройства содержит первый 1 и второй 2 регистры данных, первьй 3 и второй 4 сдвигатели, первый 5 и второй 6 регистры кода, регистр 7 сдвига, дешифратор 8, первый 9 и второй 10 сумматоры-вычитатели, датчик П кода операций, вьгходы 12-27 5 блока 2S упранпения (фиг.2}, со жащего счетчик 29 номера микрок ды, блок 30 памяти микрокоманд гистр 31, микрокоманд, группу 3 ментов И, счетчик 33 числа сдви элемент 34 И-НЕ. Датчик кода операций (фиг,4) деряадт триггер 35, элементы 36 элемент 37 ИЛИ. Устройство работает по следу алгоритму. 1. Положительное число (аргу Z путем подсчета четного числа до первой значащей цифры привод к виду, удовлетворяющему нераве 2 Z 1 . Эту операцию можно назвать норм кой. 2, Вычисляются начальные усл алгоритма х 2 У, 2 3. Выполняются волдеровские роты . .- 1+ i М - -1 ,i,...,),f.-si(nY. , ()/а,прм in,i,...,ip.2 i-p+l , ПРИ ,...,)+p-3 4. Выполняется линейная апп мация T(i rt-a - v x-a- - x-i- 4 что можно записать и в виде дв стандартных итераций pli+p-i- k+p-2 Y -Y Г jic+p-rVp-nk p-a t4p-a у -у -е |Ч+р k+p-- U+P-Q. 1 V - Y Ч+р VPH , A4up-a- Vp-aВторая из указанных операций безразлична во второй итерации (ведена для конкретности. 7 5. Затем УТ приводится к первоначальному масштабу, т.е. приводится денормализаия. Работа блока управления 28 заключатеся в последовательном переборе ячеек О т N -1 блока 30 памяти микрокоманд (где N - число всех тактов работы устройства, хранящих 15 разрядные двоичные слова, обеспечивающие управление вычислением. Эти операции обеспечивают счетчик номера микрокоманд, который по приходу +1 перебирает значения О ; Ы -1, и регистр микрокоманд, который воспринимает и хранит один такт и одну микрокоманду. Начало работы блока управления определяется сигналом Пуск, по которому происходит обнуление счетчика номера микрокоманды, регистра микрокоманды, счетчика числа сдвигов в сдвигателях 3 и 4, а также регистра. 2. Группа элементов И формирует импульсные сигналы записи,сдвига, +1, IP, 1Зр, 14р регистра микрокоманды - потенциальные уровни, обеспечивающие соответствуюсщие признаки П, ИЗ и уровень с 14р конца операции. Если в 14р попадает один из блока 30 памяти микрокоманд, то низкий уровень перекрывает поступление тактовой последовательности и вырабатывает сигнал Результат П), П2 признаки сдвига (1 - арифметический, О - логический) , ПЗ-признак,обеспечивающий одинаковые, либо противоположенные операции в сумматорах-вычитателях 9 и 10. Устройство работает след тощим образом. Число Z О поступает на вход устройства и на первой подготовительной итерации подается на дешифратор 8, которьш вырабатывает двоичный код, равный числу нулей после запятой до первой единицы, округленному в меньшую сторону до четного числа. Дешифратор, который для восьмиразрядного инвертированного числа вырабатывает код, равный числу нулей до первой единицы (четное чиcлoJ . Для примера, на фиг.З показана де 11ифрация кода ( /Ав °°°° °° -АЬ которого число нулей равно четыре десятка (0100}д . Выработанный в дешифраторе 8 код записывается в регистр 7 сдвига, где хранится в течение всего процесса вычисления, а также записывается в регистр 6 кода и используется на вт рой, подготовительной итерации для сдвига влево исходного числа z. Для осуществления сдвига влево на сдвигателе 3, который работает только на сдвиг вправо, выход 12 ус ройства с; оммутирован с регистром даннЬ1х по принципу: первый разряд чи ла z - последний разряд регистра 1, второй разряд числа z - предпоследни разряд регистра 1 ,и т. п.Такое включе ние позволяет заменить сдвиг числа влево на сдвиг числа вправо на то же число разрядов. После осуществления сдвига числа z на сдвигателе 3, результат через сумматор-вычитатель 10 записывается во второй регистр данных 2 по входу соединенному аналогично входу регис ра 1 данных. Это позволяет во втором регистре 2, после очередного поворота на его входе, иметь во втором регистре 2 число 2. в нормальном порядке записи и удовлетворяющее условиям 2 $ z 1 Третья подготовительная итерация начинается записью в первый регистр данных 1 числа с( и заканчивается образованием на выходе первого суммато ра-вычитателя 9 суммы х z + а, а на выходе второго сумматора-вычитателя 10 разности у . При выполнении зтих операдий в начале итерации вместе о записью в первый регистр производится запись нуля в регистре кода 6,5 и установка соответствующих кодов на сумматоры-вычитатели через датчик 11 кода операций. Далее выполняются волдеровские по вороты, при этом датчик 11 работает автоматические по входу от регистра 2, сдвигатели работают по кодам, которые записываются в регистры 5 и 6 кода по кодовым входам для каждой итерации. Линейная аппроксимация вьшолняется за две дополнительные итерации, при этом знак fu+p-O остается без изменения. На первой дополнительной итерации он записывается в триггер -датчика 11 кода операций, а на второй дополнительной итерации в триггере 35 информация не меняется. Результат аппроксимации с выхода первого сумматора-вычитателя 9 записывается в первый регистр 1 данных в конце второй дополнительной итерации Процесс вычисления заканчивается денормировкой результата, для этого 8978 . организуется сдвиг вправо кода числа ( после чего код (О в, Вл в)., подается на регистр 6 кода и осуществляется сдвиг влево числа, находящегося в первом регистре данных, и через второй сумматор-вычитатель 10 по выходу устройства выдается результат Vz. Таким образом, предлагаемое устройство осуществляет вычисление за меньшее число итераций; Формула изобретения 1, Устройство для вычисления квадратного корня, содержащее блок управления, первый и второй регистры данных, соединенные первыми выходами с первыми входами соответственно первого и второго сумматоров-вычитателей и первыми входами соответственно первого и второго сдвигателей, выходы которых соединены со вторыми входами соответственно второго и первого сумматоров-вычитателей, выходы которых соединены с первыми входами соответственно второго и первого регистров данных, второй вход первого регистра данных является информационным входом устройства, второй вход второго сдвигателя соединен с выходом первого регистра кода, датчик кода операций, содержшций триггер, выход которого соединен со входом первого элемента НЕ и первым входом элемента ИЛИ, выход которого подключен ко входу вто-( рого элемента НЕ, .причем выходы триггера и первого элемента НЕ, а также выходы элемента ИЛИ и второго элемента НЕ являются соответственно первым и вторым выходами датчика кода операций и подключен к третьим вхоам соответственно первого и второго умматоров-вычитателей, выход последего из которых является выходом стройства, отличающееся ем, что, с целью повышения быстроействия, в него введены второй реистр кода, регистр сдвига и дешифраор, вход которого соединен с выодом первого регистра данных, а выод дешифратора - с первым входом егистра сдвига, выход KOTOpoiO подлючен к первому входу второго реистра кода, выход которого соединен о вторьш входом первого сдвигателя,
выход результата второго сумматоравычитателя соединен со вторым инверсным входомвторого регистраданных, первый и второй входы записи Первого регистра данных соединены соответственно с первым и вторым входами блока управлевлсния, вход управле-ния сдвигом и записью второго регистра кода подключены соответственно к третьему и четвертому выходам блока управления, вход записи числа сдвигов второго и первого регистров кода соединены соответственно с пятым и шестым выходами блока управления, входы признака сдвига второго и первого регистров кода подключены соответственно к седьмому и восьмому выходам блока управления, вход записи порядка и вход сдвига порядка регистра сдвига соединены соответственно с девятым и десятым выходом блока управления, вход признака операции и вход записи знака датчика кода операции соединеш.. с одиннадцатым и двенадцатым выходами блока управления, соответственно, вход записи нуля и входы управления инверсного и прямого кода результата второго регистра данных соединены соответственно с тринадцатым, четырнадцатым и пятнадцатым выходами блока управления, шестнадцатый выход которого подключен к входу управления записью второго регистра кода.
5 счетчика микрокоманды, регистра микрокоманды и счетчика числа сдвигов, выходы двенадцатого, одиннадцатого, десятогд,девятого элементов И и выходы счетчика числа сдвигов является соответственно выходами с первого по шестой блока управления, выход тринадцатого разряда и вход обнуления регистра микрокоманды, выходы шестого, восьмого, седьмого элементов И группы,выход первого разряда регистра микрокоманды, выходы пятого, четвертого, третьего и второго элементов И группы являются соответственно с седьмого по шестнадцатый выходами блока управления, выход нулевого и шестого разрядов регистра микрокоманд соединены соответственно с первым и вторым счетными входами счетчика числа сдвигов.
5 Источники информации,
принятые во внимание при экспертизе 1. Байков В.Д. Смолов В.Б. Аппаратная реализация элементарных функций в ЦВМ. ЛГУ, с. 77, рис.25.
/3
Ин(popмo uя И
6
21
25 Ztl
i 0
a.
Авторы
Даты
1981-11-23—Публикация
1979-10-10—Подача