Устройство для вычисления функции arctg y/x
DEVICE FOR CALCULATING arctg Y/X FUNCTION

Изобретение относится к цифровой вычислительной технике и может быть использовано для ускоренного вычисления функции .
Известны устройства для вычисления функции  [а.с. 1067510 СССР, 1984 г.; а.с. 1206767 СССР, 1984 г.]. К недостатку известных устройств можно отнести низкую точность вычисления.
X
Y
Y
X
Наиболее близким по технической сущности к данному изобретению является устройство для вычисления функции  [а.с. 1297041 СССР, 1987 г.], содержащее регистр аргумента , регистр аргумента , блок синхронизации, сумматор, два коммутатора, три буферных регистра, регистр результата, причем выходы первого и второго коммутаторов соединены с входами первого и второго слагаемых сумматора соответственно, выход которого соединен с информационными входами регистра результата, первого буферного регистра, первый и второй выходы блока синхронизации соединены соответственно с управляющими входами первого и второго коммутаторов. Кроме того, оно содержит вычитатель, блок памяти , блок памяти значений квадратного корня, первый и второй блоки памяти значений арктангенса, выходы которых соединены с первыми информационными входами первого и второго коммутаторов соответственно, вторые входы которых соединены с выходами регистра аргумента  и регистра аргумента  соответственно, третьи информационные входы первого и второго коммутаторов соединены с выходами блока памяти значений  и второго буферного регистра соответственно, адресный вход блока памяти значений  соединен с выходом регистра аргумента Y, выходы первого и второго коммутаторов соединены с входами уменьшаемого и вычитаемого вычитателя соответственно, выход которого соединен с информационным входом третьего буферного регистра, выход которого соединен с адресным входом второго блока памяти значений арктангенса, выход сумматора соединен с адресным входом блока памяти значений квадратного корня, выход которого соединен с адресным входом второго буферного регистра, третий, четвертый и пятый выходы блока синхронизации соединены с входами синхронизации соответственно первого, второго и третьего буферных регистров, выход первого буферного регистра соединен с адресным входом первого блока памяти значений арктангенса.
К недостатку известного устройства относится низкая точность вычисления функции .
Задача настоящего изобретения является совершенствование возможностей устройства для вычисления функции .
Технический результат - получение более точного значения арктангенса.
X
Y
Y
X
Y
Технический результат достигается предложенным устройством для вычисления функции , содержащим регистр аргумента , регистр аргумента , блок синхронизации, сумматор, два коммутатора, три буферных регистра, регистр результата, причем выходы первого и второго коммутаторов соединены с входами первого и второго слагаемых сумматора соответственно, выход которого соединен с информационными входами регистра результата, первого буферного регистра, первый и второй выходы блока синхронизации соединены соответственно с управляющими входами первого и второго коммутаторов, вычитатель, блок памяти значений , блок памяти значений квадратного корня, первый и второй блоки памяти значений арктангенса, выходы которых соединены с первыми информационными входами первого и второго коммутаторов соответственно, вторые входы которых соединены с выходами регистра аргумента  и регистра аргумента  соответственно, третьи информационные входы первого и второго коммутаторов соединены с выходами блока памяти значений  и второго буферного регистра соответственно, адресный вход блока памяти значений  соединен с выходом регистра аргумента , выходы первого и второго коммутаторов соединены с входами уменьшаемого и вычитаемого вычитателя соответственно, выход которого соединен с информационным входом третьего буферного регистра, выход которого соединен с адресным входом второго блока памяти значений арктангенса, выход сумматора соединен с адресным входом блока памяти значений квадратного корня, выход которого соединен с адресным входом второго буферного регистра, третий, четвертый и пятый выходы блока синхронизации соединены с входами синхронизации соответственно первого, второго и третьего буферных регистров, выход первого буферного регистра соединен с адресным входом первого блока памяти значений арктангенсов.
X
Y
X
Y
Кроме того, в устройство дополнительно введен блок сдвига, причем его выходы связаны с регистрами первого и второго аргументов  и  соответственно, а их входы являются входами аргументов  и .
Это является новым техническим решением в технике цифровых вычислительных устройств, поскольку результаты проведенного авторами анализа аналогов и прототипа не позволили выявить признаки, тождественные всем существенным признакам данного устройства.
Предложенное устройство для вычисления функций  имеет изобретательский уровень, так как из опубликованных научных данных и существующих технических решений явным образом не следует, что заявляемая совокупность блоков и связей между ними позволяет повысить точность вычисления функций.
Предложенное устройство для вычисления  промышленно применимо, поскольку его техническая реализация возможна с использованием типовых элементов микроэлектронной техники (интегральных логических элементов).
X
Y
На чертеже представлена схема устройства, которое содержит регистр 1 первого аргумента , регистр 2 второго аргумента , первый и второй коммутаторы 3 и 4, сумматор 5, вычитатель 6, первый, второй, третий и четвертый блоки 7-10 памяти, первый, второй и третий буферные регистры 11-13, регистр 14 результата, блок 15 синхронизации и блок 16 сдвига.
α
β
α
β
y
α
β
х
Устройство вычисляет значения функции  путем введения вспомогательных переменных  и , для которых +=, 1-⋅=, и использования формулы , вытекающей из свойств функции арктангенса. Это дает для вычисления функции  определяющее соотношение
N
позволяющее на всех этапах промежуточных преобразований вычислять вспомогательные функции от одного аргумента разрядности , а наличие двух слагаемых учитывать с помощью суммирования на сумматоре и вычитателе.
X
Y
х
y
х
y
х
y
х
y
X
Y
X
х
Y
y
k=2
k
k
Регистры 1, 2 первого  и второго  аргументов получают нормированные значения аргументов  и  от блока 16 сдвига, где происходит сдвиг аргументов  и  влево до появления старшей единицы, наибольшей из входных переменных  и , в старшем разряде. При этом число сдвигов входных переменных одинаково. Так, например, если =00001010, =00100110, то на выходе блока 16 сдвига получим сдвинутые коды переменных =00101000, =10011000. То есть =⋅2, =⋅2, где .
X
Y
Регистр 1 первого аргумента хранит значение аргумента , а регистр 2 второго аргумента содержит значение аргумента . В первом блоке 7 памяти хранится таблица значений , во втором блоке 8 памяти - таблица значений квадратного корня, а в третьем и четвертом блоках 9-10 памяти - таблица значений арктангенса.
Y
Y
X
Устройство работает в три такта, определяемых блоком 15 синхронизации, следующим образом. В первом такте сигналы от блока 15 синхронизации, воздействуя на управляющие входы, подключают к выходу первого коммутатора 3 первый его вход, к выходу второго коммутатора 4 третий его вход, к выходу второго коммутатора 4 третий его вход, а второй буферный регистр 13 фиксирует в этом такте поступающую на его вход информацию. В первом такте значение  с регистра 2 второго аргумента  преобразуется в первом блоке 7 памяти, образуя на его выходе значение , поступающее через первый вход первого коммутатора 3 на первый вход сумматора 5, на второй вход которого поступает через третий вход второго коммутатора 4 с регистра 1 первого аргумента значение . В результате на выходе сумматора 5 формируется значение , запоминаемое во втором буферном регистре 12.
Y
Во втором такте сигналы от блока 15 синхронизации, воздействуя на управляющие входы, подключают к выходу первого коммутатора 3 третий его вход, к выходу второго сумматора 4 - первый его вход, а первый и третий буферные регистры 11 и 13 фиксируют в этом же такте поступающую на его вход информацию. Выход регистра 2 второго аргумента  подключен к третьему входу первого коммутатора 3 со смещением на один двоичный разряд вправо, чтобы обеспечить формирование на этом входе значения кода . На первые входы сумматора 5 и вычитателя 6 поступает значение , а на вторые их входы с выхода второго блока памяти 8 значение . На выходе сумматора 5 формируется значение , запоминаемое на первом буферном регистре 11, а на выходе вычитателя 6 - значение , запоминаемое в третьем буферном регистре 13.
В третьем такте сигналы от блока 15 синхронизации, воздействуя на управляющие входы, подключают к выходу первого и второго коммутаторов 3 и 4 вторые их входы. Третий и четвертый блоки 9-10 памяти выполняют нахождение арктангенса от промежуточных аргументов, а сумматор 5 складывает эти результаты, образуя на своем выходе окончательный результат , запоминаемый в регистре 14 результата.
х
y
Нормализация значений аргументов  и , осуществляемая блоком 16 сдвига позволяет увеличить точность вычислений, так как увеличивает количество значащих двоичных разрядов в кодах аргументов. Кроме того, сокращаются погрешности округлений до N двоичных разрядов результатов промежуточных вычислений  и . При этом возведении числа в квадрат отбрасывается N младших разрядов произведения, а при извлечении квадратного корня из N-разрядного числа верными являются только половина  весомозначных разрядов подкоренной величины.