Устройство для вычисления тригонометрических функций
1. УСТРОЙСТВО ДЛЯ ВЫЧИСЛЕНИЯ ТРИГОНОМЕТРИЧЕСКИХ ФУНКЦИЙ, содержащее m-разрядный регистр (где 1т1-разрядность устройства) ,ГУ -разрядньй сумматор, счетчик, блок памяти, элемент НЕ и два вычислительных блока , каждый из которых содержит входной регистр, группу элементов И, первый и второй коммутаторы и первый и второй сумматоры, первые информационные входы которых соединены с выходами соответственно элементов И группы и первого сумматора, выход входного регистра соединен с вторым информационным входом первого сумматора и информационным входом первого коммутатора, выход второго сумматора соединен с информационным входом входного регистра, первые входа элементов И группы и управляющий вход второго сумматора первого и второго вьтислительньк блоков объединены, вторые входы элементов И группы первого и второго вычислительных блоков соединены с выходами первых коммутаторов соответственно второго и первого вычислительных блоков; выход первого разряда tn -разрядного регистра соединен с управляющим входом первого сумматора первого вычислительного блока и через элемент НЕ - с управляющим входом первого сумматора второго вычислительного блока и управляющим входом m -разрядного сумматора , выход которого соединен с информационным входом т-разрядного регистра , выходы разрядов с четвертого по т-й которого соединены соответственно с разрядами с третьего по (|п-1)-й первого информационного входа т-разрядногр сумматора,m-и разряд первого информационного входа которого соединен с управляющим входом устройства, установочный вход которого соединен с входами установ (Л ки в О т-разрядного регистра, счетчика и входами разрешения установки входных регистров первого и второго вычислительных блоков, установочные входы входных регистров которых соединены соответственно с первь1м и вторым параллельными информационными а: входами устройства, тактовый вход которого соединен с тактовыми входами входных регистров вычислительных блоков, т-разрядного регистра и счет00 чика, выход которого соединен с адресным входом блока,памяти, выход которого соединен с вторым информационным входом т-разрядного сумматора , выход счетчика соединен с управляющими входами первого и второго коммутаторов калодого вычислительного блока, отличающееся тем, что, с целью повышения йлстродействия , в него введены трехразрядный сумматор, сумматор по модулю два и первый и второй преобразователи кода.
СОЮЗ СОВЕТСКИХ
СОЦИАЛИСТИЧЕСНИХ
РЕСПУБЛИК (19) () )) 4(st) С 06 F 7/5 48
$ д
ОПИСАНИЕ ИЗОБРЕТЕНИЯ
H АВТОРСКОМУ СВИДЕТЕЛЬСТВУ
ГОСУДАРСТВЕННЫЙ НОМИТЕТ СССР
ПО ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТКРЫТИЙ (21) 3690988/24-24 (22) 13.01.84 (46) 07.07.85. Бюл, У 25 (72) О.А.Ханов (53) 681.325(088.8) (56) 1. Патент Великобритании
М 1331410, кл. G 06 F 1/02, опубл.
1971.
2. Авторское свидетельство СССР
1Ô 642712, кл. G 06 F 15/20, 1977 (прототип). (54)(57) 1. УСТРОЙСТВО ДЛЯ ВЫЧИСЛЕНИЯ ТРИГОН01БТРИЧЕСКИХ ФУНКЦИЙ, содержащее п -разрядный регистр (где
m-разрядность устройства),гп -разрядный сумматор, счетчик, блок памяти, элемент НЕ и два вычислительных блока, каждый из которых содержит входной регистр, группу элементов И, первый и второй коммутаторы и первый и второй сумматоры, первые информационные входы которых соединены с выходами соответственно элементов И группы и первого сумматора, выход входного регистра соединен с вторым . информационным входом первого сумматора и информационным входом первого коммутатора, выход второго сумматора соединен с информационным входом входного регистра, первые входы элементов И группы и управляющий вход второго сумматора первого и второго. вычислительных, блоков объединены, вторые входы элементов И группы пер" вого и второго вычислительных блоков соединены с выходами первых коммутаторов соответственно второго и перво. го вычислительных блоков; выход первого разрядав -разрядного регистра соединен с управляющим входом первого сумматора первого вычислительного блока и через элемент НŠ— с управляющим входом первого сумматора второго вычислительного блока и управf ляющим входом и) -разрядного сумматора, выход которого соединен с информационным входом rn-разрядного регистра, выходы разрядов с четвертого по п-й которого соединены соответственно с разрядами с третьего по (m-1)-й первого информационного входа m-разрядного сумматора,rn-й разряд первого информационного входа которого соединен с управляющим вхо1 дом устройства, установочный вход которого соединен с входами установки в "0" m-разрядного регистра, счетчика и входами разрешения установки входных регистров первого и второго вычислительных блоков, установочные входы входных регистров которых соединены соответственно с первым и вторым параллельными информационными входами устройства, тактовый вход которого соединен с тактовыми входами входных регистров вычислительных блоков, m-разрядного регистра и счетчика, выход которого соединен с адресным входом блока памяти, выход которого соединен с вторьм информационным входом rn-разрядного сумматора, выход счетчика соединен с управляющими входами первого и второго коммутаторов каждого вычислительного блока, о т л и ч а ю щ е е с я тем, что, с целью повышения быстродействия, в него введены трехразрядный сумматор, сумматор по модулю два и первый и второй преобразователи кода, 6103
116 информационные входы которых соединены с выходами вторых сумматоров соответствующих вычислительных блоков, вторые информационные входы вторых сумматоров которых соединены .с выходами вторых коммутаторов, информационные входы которых соединены с выходами первых коммутаторов соответствующих вычислительных блоков, управ. ляющие и тактовые входы преобразователей кода соединены соответственно с выходом счетчика и тактовым вхбдом устройства, первый,и второй последовательные информационные входы которого соединены соответственно с третьим разрядом первого информационно-. го входа и управляющим входом трехразрядного сумматора, первый и- второй разряды первого информационного. входа которого. соединены с управляющим входом устройства, выходы разрядов с первого по третий Ич-разрядного регистра соединены с соответствующими разрядами второro информационного входа трехраэрядного сумматора, выходы первого и второго разрядов которого соединены с соответствующими входами сумматора по модулю два, выход которого соединен с первыми вхо\ дами элементов И группы каждого вычислительного блока и входом разрешения считывания блока памяти, выходы второго и третьего разрядов трехразрядного сумматора соединены соответственно с первым и вторым разрядами первоro информационного входа щ-разрядного сумматора, выходы преобразователей кода соединены с выходом устройства.
2. Устройство по п. 1, о т л и— ч а ю щ е е с я тем, нто каждый преобразователь кода содержит первый и второй мультиплексоры, сумматор по модулю два и триггер,. причем информационные входы мультиплексоров соединены с информационным входом преобразователя кода, управляющий вход которого соединен с управляющими входами мультиплексоров, выход первого мультиплексора соединен с первым входом сумматора по модулю два, второй вход которого соединен с выходом второго мультиплексора и информационным входом триггера, тактовый вход которого соединен с тактовым входом преобразователя кода, выходами которого являются выходы сумматора по модулю два и триггера.
Изобретение относится к вычислительной технике и может быть использовано в системах с конвейерной поразрядной обработкой данных.
Известно устройство для вычисле- S ния тригонометрических функций, содержащее два регистра, два сумматора и блок управления с соответствующими связями. Работа устройства основана на выполнении алгоритма Волде- 1О ра с коррекцией результата на каждой итерации (1J .
Недостатком этого устройства является низкое быстродействие, так как на каждой итерации выполняются IS последовательно поворот вектора на двойной угол и умножение координат на множители.
Наиболее близким к изобретению по технической сущности является цифровой вычислитель координат вектора, 2 содержащий два регистра, четыре сумматора, четыре умножителя, два сдвигателя, две группы схем И, блок управления и дешифратор с соответствую щими связями. Устройство вычисляет функции синус, косинус аргумента, представленного параллельным двоичным кодом за число тактов, равное числу разрядов п P) .
Недостатком известного устройства является низкое быстродействие при
его использовании в системах с конвейерной поразрядной обработкой данных, так как при этом необходимы и тактов для приема разрядов кода, и тактов для вычисления функций и п тактов для передачи разрядов резуль-. тата вычислений, Таким образом, задержка между приемом цифры первого разряда аргумента и формированием з 11661 на выходе первого разряда результата, составляет не менее 2п тактов.
Цель изобретения — повышение быстродействия.
Поставленная цель достигается тем, что в устройство для вычисления тригонометрических функций, содержащее
m-разрядный регистр-(где ш-разрядность устройства), m-разрядный сумматор, счетчик, блок памяти, элемент 10
НЕ и два вычислительных блока, каждый из которых содержит входной регистр, группу элементов И, первый и второй коммутаторы и первый и второй сумматоры, первые информационные вхо. 15 ды которых соединены с выходами соответственно элементов И группы и первого сумматора, выход входного регист- > ра соединен с вторым информационным входом первого сумматора и информа- ф) ционным входом первого коммутатора, выход второго сумматора соединен с информационным входом входного регистра, первые входы элементов И группы и управляющий вход второго сумма- 25 тора первого и второго зычислительных блоков объединены, вторые входы эле-. ментов И группы первого и второго вычислительных блоков соединены с выходами первых коммутаторов соответ-Зп ственно второго и первого вычислительных блоков, выход первого разряда ш-разрядного регистра соединен с управляющим входом первого сумматора первого вычислительно-, . го блока и через элемент НЕ— с управляющим входом первого сумматора второго вычислительного блока и в управляющим входом m-разрядного сумматора, выход которого соединен с ин- Е формационным входом m-разрядного реI гистра, выходы разрядов с четвертого по ш-й которого соединены соответственно с разрядами с третьего по (m 1)-й первого информационного входа45
m-разрядного сумматора, m-й разряд первого информационного входа которого соединен с управляющим входом устройства, установочный вход которого соединен с входами установки в "0 5п ш-разрядного регистра, счетчика и входами разрешения установки входных ре- .
; гистров первого и второго вычислитель-.. ных блоков, установочные входы входных регистров которых соединены соответ- SS ственно с первым и вторым параллельными информационными входами устройства, тактовый вход которого соединен
03 с тактовыми входами входных регистров вычислительных блоков, m-разрядного регистра и счетчика, выход которого соединен с адресным входом блока памяти, выход которого соединен с вторым информационным входом
m-разрядного сумматора, выход счетчика соединен с управляющими входами первого и второго коммутаторов каждого вычислительного блока, дополнитель но введены трехразрядный сумматор, сумматор по модулю два и первый и второй преобразователи кода, информационные входы которых соединены с выходами вторых сумматоров соответствующих вычислительных блоков, вторые информационные входы вторых сумматоров которых соединены с выходами вторых коммутаторов, информационные входы которых соединены с выходами первых коммутаторов соответствующих вычислительных блоков, управляющие и тактовые входы преобразователей кода соединены соответственно с выходом счетчика и тактовым входом устройства, первый и второй последовательные информационные входы которого соединены соответственно с третьим разрядом первого информационного входа.и управляющим входом трехразрядного сумматора, первый и второй разряды первого информационного входа которого соединены с управляющим входом устройства, выходы разрядов с первого по третий ш-разрядного регистра соединены с соответствующими разрядами второго информационного входа трехраэрядного сумматора, выходы первого и второго разрядов которого соединены с соответствующими входами сумматора по модулю два, выход которого соединен с первыми входами элементов И группы кажДого вычислительного блока и входом разрешения считывания блока памяти, выходы второго и третьего разрядов трехраэрядного сумматора соединены соответственно с первым и вторым разрядами первого информационного входа m-разрядного сумматора, выходы преобразователей кода соединены с выходом устройства.
Кроме того, каждый преобразователь кода содержит первый и второй мультиплексоры, сумматор по модулю два и триггер, причем информационные входы мультиплексоров соединены с информационным входом преобразователя кода, 1166103 управляющий вход которого соединен с управляющими входами мультиплексоров, выход первого мультиплексора соединен с первым входом сумматора по модулю два, второй вход которого сое- 5 динен с выходом второго мультиплексора и информационным входом триггера, тактовый вход которого соединен с тактовым входом преобразователя кода, выходами которого являются выходы сумматора по модулю два и триггера.
На фиг. 1 дана блок-схема устройства; на фиг. 2 и 3 — блок-схемы преобразователя кода и коммутатора.
Устройство для вычисления тригонометрических функций содержит m-разрядный регистр 1, m-разрядный сумматор 2, трехразрядный сумматор 3, счетчик 4, блок 5 памяти, сумматор 6 20 по модулю два, элемент НЕ 7, вычислительные блоки 8 и 9, преобразователи 10 и 11 кода, входы 12 — 18, выходы 19 — 22.
Каждый вычислительный блок содержит входной регистр 23, сумматор
24 и 25, коммутаторы 26 и 27, группу элементов И 28.
Каждый преобразователь кода содержит мультиплексоры 29 и 30, сумматор 3р
31 по модулю два и триггер 32. Каждый коммутатор содержит группу мультиплексоров 33.
Вычисление тригонометрических функций в предлагаемом устройстве как и в известном устройстве основано на реализации алгоритма Волдера.
Для выполнения этого алгоритма необходимо представить аргумент сР в виде суммы: с =.K 5;атсйд2,где5; е 1, — 1); р
n — - число разрядов аргумента.
В отличие от известного устройства работающего с параллельными кодами, аргумент на вход предлагаемого устройства поступает в виде последо- ду вательного кода. Поэтому значения 5; должны быть определены из более сложв в- n- ного уравнения: Е.$ .2 R= В,arctg2, М =о
i =-О где 8, i — цифры i х разрядов кода SO аргумента; R — масштабирующий коэффициент. Для решения этого уравнения в устройство введены сумматор 3 и сумматор 6 по модулю два. Сходимость процесса определения Б; обеспечивает- SS ся расширением множества возможных значений 6, причем 15; Р1, О, -1).
Появления значений б; =0 приводит к зависимости от аргумента значения коэффициента деформации вектора К для алгоритма Волдера, равного К„=
=П (1+2 6 ). .Для устранения этого
=о эффекта в предлагаемом устройстве использован алгоритм поворота вектора на каждой итерации на двойной угол. При этом на итерациях, для которых 5; =0, поворот вектора не осуществляется, но его координаты умножаются на множитель (1+2 "). Тем самым устраняется зависимость коэффициента деформации вектора от значения .аргумента. Коэффициент деформации
И-1 2 становится равным К =.Г1(1+2 ). Пеi =О ред началом вычислений в регистр 23 второго вычислительного блока 9 запиЯ сывается код, равный, что позво- . ляет получить неискаженные значения тригонометрических. функций.
Для выполнения указанных действий, к координатам вектора, вычисленным по уравнениям Волдера, на каждой итерации прибавляется поправка вида а;х„ tg к;, где х; — значение коордиг наты до поворота вектора на угол к;, а,=-1/4, если 5; j0 и а„= 1/4, если
5; =О.
Введение поправок данного вида обеспечивается соответствующим подключением второго коммутатора в вычислительных блоках.
Два блока 10 и 11 выполняют преобразование параллельных кодов вычисляемых функций и цифры последовательного избыточного двоичного кода. Тем самым достигается единство формы представления информации на входе и на выходе устройства, необходимое для его эффективного использования в системах с конвейерной обработкой данных, Устройство работает следующим образом.
На вход 12 и информационный вход
15 устройства подается постоянный код "0". На информационный вход 16 устройства подается постоянный код, 6ФЪ равный =,П (1+2 )=036878, где
n — число разрядов результата вычислений, По импульсу начальной установки, поступающему на вход 13 устройства, происходит обнуление регистра 1, счетчика 4, в регистр 23 вычислительного блока 8 переписывается с
66103 и-1
Х-Е эк,к2 к-о п-1
) =K 5)„2
11 входа 15 устройства код "О", а в регистр 23 вычислительного блока 9 переписывается код с входа 16.
После начальной установки выполняются (n+4) циклов вычисления. В каждом i-м цикле (з=0, 1, ..., п-1) на входы 17 и 18 устройства подается цифра S i-г6 (начиная со старEf,q шего) разряда кода аргумента Ч в избыточном двоичном коде с фиксированной запятой, причем вес старшего разряда кода С равен 1 рад.
Цифра 5< каждого разряда принимает одно из трех значений: 0,1, .-1, ° которые кодируются двумя двоичными разрядами P .,,q ; следующим образом
Р,. =0 q =О соответствует $ .=0 ч. р 1
Р, =1, q . =О соответствует $,=1;
Р,, =1, q; =1 соответствует S 1 °
Разряд Pl,, подается на вход 17 устройства, разряд q<, — на вход 18.
За п циклов принимаются все разряды кода аргумента ч . При этом знапчение равно: 4 = K. 5 .2 (1) . В послеpep дующие четыре цикла (i=n, n+1, n+2, n+3), необходимые для завершения вычислений, на вход 17 устройства подается код "0", что соответствует .6„„=0.
В каждом i-м цикле (i=4, 5,..., и+3) на выходах 19, 20 и 21, 22 формируются цифры 5к,к и 5,„К-го разряда (К=i-4) избыточного двоичного кода синуса и косинуса аргумента ср, причем вес первого (старшего) разряда кода равен "1". Цифры 5y,q и 5 к каждого разряда принимают одно из трех значений: О, 1, -1, которые кодируются двумя двоичными разрядами аналогично кодированию цифр аргумента.
Каждый 1-й вычислительный цикл .(i=0, 1, ..., и+3) заканчиваеъся появлением х-го тактового импульса на входе 14 устройства. По каждому i тактовому импульсу код счетчика 4 изменяется на "+1", в регистр 1 переписывается код с его информационного входа, в регистры 23 вычислительных
4 блоков 8 и 9 переписываются коды с их первых информационных входов, в триггеры 32 блоков 10 и i t переписываются коды с выходов мультиплексоS ров 30, после чего начинается (i+2) -й вычислительный цикл.
После окончания (n+3)-го цикла заканчивается формирование и выдача последовательных и-разрядных кодов х и у — кодов синуса и косинуса аргумента (. При этом значения х и у равны
Процесс формирования цифр кодов синуса и косинуса состоит из трех этапов, выполняемых, начиная с i=3, 20 параллельно. Первый этап — преобра-.ование кода аргумента, второй этап вычисление функций синус, косинус с формированием результата в параллельном коде и третий этап — преобИ разование параллельных кодов результата в цифры последовательного. избыточного двоичного кода.Технический эффект при промышлен3Q ном применении предлагаемого устройства перед известным заключается в повышении быстродействия при конвейерной поразрядной обработке данных.
Известное устройство при его использовании в укаэанном режиме имеет задержку выдачи первого разряда результата относительно ввода первого разряда аргумента не менее 2п тактов, где и-разрядность операндов. В предлагаемом устройстве эта задержка сокращается до четырех тактов, причем задержка не зависит от разрядности операндов. Следовательно, предлагаемое устройство позволяет повысить быстродействие вычисления тригонометрических функций при конвейерной обработке данных в n/2 раз. Например, при n=20 быстродействие повышается ур в 10 раз. 1166103
1Ю
Ф
17
17 к
Фю1
1166103 (166103
Составитель А.Зорин
Редактор Г.Волкова ТехредM.Гергель Корректор М.Самборская
Заказ 4311!44 Тираж 710 Подписное
ВНИИПИ Государственного комитета СССР по делам изобретений и открытий
113035, Москва, Ж-35, Раушская наб., д. 4/5
Филиал ППП "Патент", r.Óæãîðîä, ул.Проектная, 4







