Устройство для вычисления элементарных функций
УСТРОЙСТВО ДЛЯ ВЬИИСЛЕНИЯ ЭЛЕМЕНТАРНЫХ ФУНЮЩЙ, содержащее счетчик порядка, входной регистр, сдвигатель, первый и второй блоки памяти и блок управления, причем выход счетчика порядка соединен с первой группой входов, сдвигателя, вторая группа входов которого соединена с выходами входного регистра, адресными входами первого блока памяти и первым входом блока управления первый выход которого соединен со счетным входом счетчика по-: рядка, выход сдвигателя соединен с адресным входом второго блока памяти , отличающееся тем, что, с целью повьшения быстродействия , в него введены первый и второй входные коммутаторы, блок определения степени многочлена и блок вычисления многочлена, причем выходы первого и второго входных коммутаторов соединены с информационными входами соответственно счетчика порядка и входного регистра. .первые информационные входы первого и второго входных коммутаторов соединены с информационным входом устройства, вход пуска которого соединен с вторым входом блока управления , выходы с третьего по одиннадцатый которого соединены соответственно с управляющими входами первого входного коммутатора, второго входного коммутатора, входного регистра , сдвигателя, блока определения степени многочлена, блока вычисления многочлена первого блока памяти , второго блока памяти и выо S ходом устройства, третий и четвертый входы блока управления соеди (Л нены соответственно с выходом сдвигателя и выходом блока определения степени многочлена, содержащего три шифратора и три элемента ИШ, выходы с первого по Третий разрядов с первого по третий шифраторов соединены соответственно с первого по третий :входами каждого элемента ИЛИ, выхо- . ел .ды которых являются выходом блока определения степени многочлена, информационные и управляющие входы каждого шифратора соединены соответственно с выходом сдвигателя и управляющим входом блока определения степени многочлена, блок вычисления многочлена содержит четыре коммутатора , узел умножения, сумматор и регистр результата, причем первый и второй информационные входы первого коммутатора соединены с выходами соответственно счетчика порядка и входного регистра, информационные входы с первого по пятый второго коммутатора соединены соответственно с
СОЮЗ СОВЕТСНИХ
СОЦИАЛИСТИЧЕСКИХ
РЕСПУБЛИН (5 I) 4
ОПИСАНИЕ ИЗОБРЕТ
К ABTOPCHOMV СВИДЕТЕЛЬСТВV ю,У /
- /
ГОСУДАРСТВЕННЫЙ КОМИТЕТ СССР
flO ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТНРЫТИЙ (21) 3738036/24-24 (22) 04.05,84 (46) 15. 10.85. Бюл. Р 38 (72) А.И.Водяхо, В.В.Грушин, В.Б.Смолов, Д.В. Пуэанков и В.В. Шаляпин (71) Ленинградский ордена Ленина электротехнический институт им. В.И.Ульянова (Ленина) (53) 681.325(088,8) (56) Оранский А.M. Аппаратные методы в цифровой вычислительной технике. — Минск, БГУ, 1977, с.207.
Авторское свидетельство СССР
Р 723581, кл, G 06 F 7/544. 1978. (54)(57) УСТРОЙСТВО ДЛЯ ВЫЧИСЛЕНИЯ
ЭЛЕМЕНТАРНЫХ ФУНИ ИЙ, содержащее счетчик порядка, входной регистр, сдвигатель, первый и второй блоки памяти и блок управления, причем выход счетчика порядка соединен с первой. группой входов. сдвигателя, вторая группа входов которого соединена с выходами входного регистра, адресными входами первого блока памяти и первым входом блока управления, первый выход которого соединен со счетным входом счетчика порядка, выход сдвигателя соединен с адресным входом второго блока памяти, о т л и ч а ю щ е е с я тем, что, с целью повышения быстродействия, в него введены первый и второй входные коммутаторы, блок определения степени многочлена и блок вычисления многочлена, причем выходы первого и второго входных коммутаторов соединены с информационными входами соответственно счетчика порядка и входного регистра, „„Я0„„1 5329 первые информационные входы первого и второго входных коммутаторов соединены с информационным входом устройства, вход пуска которого соединен с вторым входом блока управления, выходы с третьего по одиннадцатый которого соединены соответственно с управляющими входами первого входного коммутатора, второго входного коммутатора, входного регистра, сдвигателя, блока определения степени многочлена, блока вычисления многочлена первого блока памяти, второго блока памяти и выходом устройства, третий и четвертый входы блока управления соединены соответственно с выходом сдвигателя и выходом блока определения степени многочлена, содержащего три шифратора и три элемента ИЛИ, выходы с первого по третий разрядов с первого по третий шифраторов соединены соответственно с первого по третий
: входами каждого элемента ИЛИ, выхо- . ,ды которых являются выходом блока определения степени многочлена, информационные и управляющие входы каж. дого шифратора соединены соответственно с выходом сдвигателя и управляющим входом блока определения сте1 пени многочлена, блок вычисления многочлена содержит четыре коммутатора, узел умножения, сумматор и ре гистр результата, причем первый и второй информационные входы первого коммутатора соединены с выходами соответственно счетчика порядка и входного регистра, информационные . входы с первого по пятый второго коммутатора соединены соответственно с
1185329 выходом первого блока памяти, выходом второго блока памяти, выходом сумматора, входом первой константы устройства и входом второй константы устройства, выходы первого и второго коммутаторов соединены с соответствующими информационными входами узла умножения, выход которого соединен с первыми информационными входами третьего коммутатора и сумматора, второй информационный вход которого соединен с выходом четвертого коммутатора, первый и второй информационные входы которого соединены с выходами соответственно первого и второго блоков памяти, выход сумматора соединен с вторым информационным входом третьего коммутатора, выход которого соединен с информационным входом регистра результата, выход которого соединен с выходом устройства, выходы сумматора и узла умножения соединены соответственно с вторыми и третьими информационными входами первого и второго входных коммутаторов, управляющие вхоцы всех коммутаторов соединены с управляющим входом блока вычисления многочлена, подключенного к входам
Изобретение относится к вычислительной технике и может быть использовано как в качестве автономного функционального преобразователя, так и в качестве периферийного процессора в специализированных универсальных ЦВИ для вычисления функций, Цель изобретения — повышение быстродействия.
На фиг. 1 приведена блок-схема устройства; на фиг. 2 — функциональная схема блока вычисления многочлена; на фиг. 3 — функциональная схема блока определения степени многочлена; на фиг. 4 — 6 приведены блок-схемы алгоритмов вычисления функций е", Pn x, Sin x; на фиг. 7 функциональная схема программируемой логической матрицы; на фиг. 8 и 9 функциональная схема блока управления. разрешения узла умножения, сумматора и регистра результата, блок управления содержит схему сравнения аргумента, регистр, счетчик, шифратор и узел памяти, выход которого соединен с информационным входом регистра, выход первой группы разрядов которого соединен с первым входом шифратора, второй вход которого соединен с четвертым входом блока, выход шифратора соединен с установочным входом счетчика адреса, вход разрешения записи которого соединен с вторым входом блока, выход счетчика адреса соединен с адресным входом узла памяти, первый и второй информационные входы схемы сравнения аргумента соединены соответственно с первым и третьим входами блока, управляющий вход и выход схемы сравнения аргумента соедине}Hbl соответственнб с выходом шифратора и седьмым и одиннадцатым выходами блока, выходы с первого по шестой которого соединены с выходами с второй по седьмую групп разрядов регистра, выходы с восьмой по десятую групп разрядов которого соединены с соответствующими выходами блока управления.
Устройство состоит из входных коммутаторов I и 2, счетчика 3 порядка, входного регистра 4, сдвигателя
5, блоков 6 и 7 памяти, блока 8 вычисления многочлена, блока 9 определения степени многочлена и блока
10 управления.
Блок вычисления многочлена содержит коммутаторы 11 и 12, узел 13 умножения, коммутатор 14, сумматор 15, коммутатор 16 и регистр 17 результата, Блок определения степени многочлена состоит из шифраторов, выполненных на программируемых логических матрицах (ПЛМ) 18 — 20, и элементов ИЛИ
21 — 23 °
Блок управления содержит узел 24 памяти, регистр 25, счетчик 26 адреса 27 шифратор и схему 28 сравнения аргумента, Каждая программируемая логическая матрица имеет элементы ИЛИ 29 з 1
35, элементы И 36„- 36„ и элементы
ИЛИ 37„— 37„.
Шифратор 27 содержит счетчик 38, дешифратор 39,элементы И 40-59,элементы ИЛИ 60-66 и элементы НЕ 67 и 68.
Схема сравнения аргумента 28 состоит из дешифратора 69, элементов И 70-83, элементов НЕ 84 — 101, элемента И 102, элементов ИЛИ 103 и
104 и мультиплексоров 105 и 106.
Вычисление функции в устройстве разделяется на два этапа.
На l этапе диапазон изменения аргумента функции .сводится к интервалу 0; 11. На 1Т этапе происходит собственно вычисление функции.
Рассмотрим приведение аргумента к интервалу (О; 1) в отдельности для каждой из функций е, Гпх, sin x.
Для вычисления функций е"(фиг.5) необходимо выделить целую часть аргумента, вычислить функции от обеих частей аргумента и затем перемножить полученные. значения: х ent x x-ent x е=а е где e — функция от целой части
С аргумен х- вС„ — функция от дробной части аргумента, При этом, как показали расчеты, диапазон изменения порядка аргумента составляет от (-7) до (+7).
На вход устройства поступают мантисса аргумента (на коммутатор 2) порядок аргумента (на коммутатор 1), признак функции e"и сигнал "Пуск" (в блок 10 управления). По сигналу
11 н
Пуск блок 10 управления записывает аргумент на входной. регистр 4 и счетчик 3 порядка. Затем начинается анализ .величины порядка в блоке
10 управления. Если порядок аргумента не равен нулю, то, в зависимости от знака порядка, алгоритм приведения к интервалу разделяется на две ветви. Пусть знак порядка аргумента больше О, тогда при P ) 7 х фоРмиРУетсЯ сигнал е с, если Рх(7, то мантисса аргумента сдвигается влево с вычитанием единицы из величины порядка. Сдвиг мантиссы продолжается до равенства порядка аргумента нулю. При сдвиге влево старшие разряды мантиссы заносятся в 1-8 разряды входного регистра 4.
Эти разряды в дальнейшем служат адресом для блока 6 памяти, где хранятся величины e . При Рх<0
185329 4 необходимого сдвига всей мантиссы аргумента вправо не происходит, а с помощью сдвигателя 5 вправо сдвигаются лишь разряды, составляющие старшую часть мантиссы х„(5 разрядов). Величина сдвига зависит от величины порядка аргумента, но не больше 7.
Табл. 1 поясняет работу сдвига-!
О теля 5 для 5 = 10 управляемого тремя последними разрядами счетчика
3 порядка.
Если P„ (-7, то формируется сигнал е" = О. Код, получаемый на выходах сдвигателя 5, поступает на адресные входы блока памяти 7 и на входы всех IIJIM 18 — 20.
Для программирования ПЛИ были щ определены диапазоны значений стар1 шей части аргумента, при которых функция аппроксимируется многочленом 5, 4 или 3-й степени (табл. 2).
В табл. 3 приведены значения
2S аргумента и состояния соответствующих им выводов (Y 1, У 2, У 3) блока 9.
Признак вычисления функции х из блока 10 управления поступает на вход "Разрешение выборки" ПЛИ 18.
При этом остальные ПЛМ 19 и 20 не работают. Сигнал с соответствующего выхода ПЛИ 18 поступает на вход блока
10 управления и определяет какой степени (третьей, четвертой, пятой)
35 должен в данном случае вычисляться многочлен. Иногочлен вычисляется в блоке 8 вычисления многочлена (фиг. 3) по схеме Горнера:
p <" >=.,-. ..., ... «(s ° "c +,".)73)
Коэффициенты а, .-, а хранятся в блоке 7 памяти.
Адресом блока 7 памяти служат старшие разряды аргумента (X„>
4 находящегося во входном регистре 4.
Адрес, через сдвигатель 5, поступает на адресные входы блока 7 памяти. Аргумент через коммутатор 1 1 поступает в узел 13 умножения. Вначале выбирается коэффициент а, кото5 э рый через коммутатор 12 поступает в узел 13 умножения. Параллельно с умножением происходит выборка коэффициента а, который суммируется с произведением a5 . Сумма а +а перех ° 4 5Х дается через коммутатор 11 на вход узла 13 умножения. Далее выполняются остальные действия необходимые
1185329
Ьх= Е.М„+Р„Ь2.
Имеет место равенство:
30 (n Ч„= ln (i+Z), где О (Z(1
2 = Mx-1, М„- мантисса, сдвинутая таким образом, что может быть представлена кодом:
1,2 „,Z 2,...)
40 где 2; — двоичная цифра числа.
Сдвиг выполняется до первой ситуации, при которой перед запятой устанавливается единица, т.е. можно записать:
М„= М„2 где k — число сдвигов до получения кода (1)
Таким образом:
3п х» Ь (Ф„-2 ) Рх Гп2=Ü Ìx- n2+
50
+ Р„ i h 2 = (1 г) Р„-ЦЬ 2= <и (1 г) 1ЯЬ2, где (Р„-. g) — код, содержащийся на счетчике порядка 3.
Как и в предыдущем случае на вход поступают аргумент, признак вычисляемой функции, сигнал "Пуск". По сигналу "Пуск" блок 10 управления для вычисления многочлена. Значение многочлена фиксируется на входном регистре 4 и регистре 17 результата.
По окончании вычисления многочлена в блоке 10 управления анализируется содержимое 1-8 разрядов входного регистра 4 (условие о на фиг. 5). Если все 1-8 разряды равны нулю (о(, = 1), то значением функ- 10 ции будет значение многочлена. Если
1-8 разряды не равны нулю, то иэ блока 6 памяти выбирается значение е и передается в узел 13 умножения еМх вместе со значением многочлена. Произ 1g ведение Р(„,e "+" через коммутатор 16 и регистр результата 17 передается на выход. На этом процессор заканчивает свою работу. о
Функция Ь х.
Приведение к интервалу (О; 11 аргумента Ь х основано на следующем.
Пусть аргумент задается выражением, х =М„гг где Mx — мантисса аргумента Х, 25
Рх — порядок аргумента Х.
Логарифмируя, получают: записывает аргумент во входной регистр 4 и счетчик 3 порядка. После этого происходит анализ знака мантиссы аргумента в блоке 10 управления (фиг. 6). Если знак отрицательный, то формируется сигнал "Вычисление невозможно". Если знак положительный, то начинаются сдвиги аргумента влево на входном регистре 4. Сдвиги продолжаются до появления в старшем разряде входного регистра 4 единицы. Затем производится еще один сдвиг влево, чтобы получить переменную согласно (1). Для вычисления многочлена приведенный аргумент со счетчика 3 порядка и входного регистра 4 передается в узел 13 умножения. Адрес на блок 7 памяти (10 — 19-й разряды входного регистра 4) передается через сдвигатель 5 беэ сдвига благодаря блокировке выходов счетчика
3 порядка признаком функции, на адресные входы блока 6 памяти и на вход второй ПЛМ 19. После определе— ния степени многочлена начинаются действия по вычислению значения многочлена аналогично описанному выше. Значение с выхода сумматора 15 передается на входной регистр 4, Затем величина, хранимая на счетчике, 3 порядка Q, передается в узел
13 умножения, где умножается на кон= станту Ь 2 . Константа Ь2 реализуется путем установки в четвертой группе входов коммутатора 12, необходимых потенциалов. С входного регистра 4 на сумматор 15 поступает значение многочлена, а с выхода узла 13 умножения через коммутатор
14 произведение Q(п2 . Результат суммирования (значение функции) через коммутатор 16 и регистр 17 результата поступает на выход.
Функция э п х, Сведение аргумента функции к интервалу (О; 11 (фиг. 7) основано на соотношении:
Б1п Х = Si n (27/ f< + 9 J = Sin 9 где 1 — целое число;
Y — переменная в интервале (0,2Т )
2i (x+en4ier x) х
Х
Ч=
2!i (entice
27
Обозначают
Х, Х
7= =- ЕпОЕг
2я где 0(2 (1.
1185329
Два старших разряда величины указывают номер квадранта, в котором находится угол (.
Представляют величину sinV как ((sing=sin 2й 2= sin — Ч
2 где 0 (Ча 1.
Вычисление sin-Ч в зависимости от
Ю
Ъ квадранта, в котором находится аргумент, выполняется по формулам:
После выполнения сдвигов, или при Рх О в блоке 10 управления анализируются 10 и 11-разряды входного регистра 4. В зависимости от номера квадранта и вида функции (s(n х или cps х ) принимается
4 решение о вычитании вЂ Ì„ из единицы согласно (2) и (3). Для этого
20 аргумент передается на вход сумматора 15. Полученная разность снова записывается во входной регистр 4.
Затем содержимое входного регйстра
4 сдвигается на два разряда влево.
25 Если не было необходимости получать разность, то подобные сдвиги выполняются сразу же после определения квадранта. После этих действий содержимое входного регистра 4 перещ дается на вход узла 13 умножения
Код с выхода сдвигателя 5 поступает на вход третьей ПЛМ 20 и на адресные входы блока 7 памяти. На вход
"Разрешение выборки" третьей ПЛИ 20 поступает признак функции из блока !
10 управления. з(ь " V для ? Квадранта
2 (2)
- sin — ((q V) для Ы квадранта;
Sin -V = и
П
-sin — Y для III квадранта.
Ф
Ю
Sin (1-V) для .IV квадранта., И
2! (sin — (1-Ч) для квадранта,;
2 (3)
-з(п — Ч для II квадранта
Ь ((cats — Ч =
2 ((Sin — (1-Ч ) для III квадранта;
-sin (Ч для ТЧ квадранта.
По сигналу "Пуск" блок 10 управления записывает поступающий аргу Таблица 1
Разряды входного регистра 4 на выходе сдвигателя 5
Значения трех последних разрядов счетчика 3 порядка
) Г11 I I
1 2 3 4 5 6 7 8 9 10
000
+ +
+ + +
001
010
+ + . + + + + + +
011
100
+ +
+ +
101
+ +
Формулы вычисления соз -" y имеют
Т вид: мент во входной регистр 4 и счетчик
3 порядка. Затем аргумент умножается íà 1(2.((в узле 13 умножения. Произведение вновь записывается на входной регистр 4. Если порядок произведения р„4 0 и p„>0, то сдвигая влево содержимое входного регистра 4, добиваются равенства
1р порядка нулю (получают переменную 7), + + + + + + +
1185329
Продолжение табл 1.
Разряды входного регистра 4 на выходе сдвигателя 5
6 1 )Н
1 2 3 4 5 9 (IO
110
+ + + +
+ + +
П р и м е ч а н и е. + означает наличие на выходе сдвигателя 5 значения
К-ro разрядного входного регистра 4.
Т а б л и ц а 2 в
Диапазон значений старшей части аргумента
Функция
Степень многочлена щ= 3 (М 1) 0000000000—
000100000
1001110111
1111111111 рпх
sin x
Значение трех последных разрядов счетчика 3 порядка
0000000000—
0001111000
1000001001
1111111111
Степень многочлена в= 4 (у 2) 0001000001
1011100011
0001 1 1 1001
1001110011
0100001010—
10000010000
Степень многочлена m= 5 (у3) 1011100100
1111111111
0000000000—
0100001001
1) 85329
О
О О О
О О О
o o o
o o o
О Î О
О О
О О О
О О О
О О
О
o o
Э
Е % ой
СЧ С 1 . Л W СО Ф
1 з
1»
1 а
Э
v
1 Ж
Ъ»С с х
1 Э
1 Ь
i Ж
1 с ) o o
О О О
o o o
clj
1 Э Я
Х (7 (ч г»1 -4 ю О л 00 О
О О О О
O O О О
o o o o
Ю
О
О
О
C) o o
o o o
o o o
Э
1 Е
I Э
I Г) v
Э 0
Й ф
Э
1 Р E
1 а3 О
1 Ж сб
1 М Р ж
E и
Э
Р с0
Е» 1
Ф Ж
Q) Q)
Н й
> 1
Q) cd
Н
Р Ж
Э Э
7, и
Э а
Ж <б
QI Ж
У а и
Ж Э
1 Р1
О
» »»
O O O Î О
o o o o o
o o î o o
О
О О О О О
О О О О О
О О О О О
О
О
CI
Ю
1185329
I
I
I « ъ ф
Э (6
И
О х
I «d dl
3 3 о
I 1 X
1 U
1 Э С!
1 Х Ф х э х
Р !»
«d И х щ о
О О О О о о о о о о o o о о о. о о o o о
1 11
1 х
X %
Ф х
1
»- т
1 м т
1
Q, L»
«d 0, ! «d
М о о о х х
1С I
o o о
1 1
I
I
1 ф
Ф «6
Н с х
1 «6 Э
1 !»X
1 !»
«ыа, 1 х I
»
»
I
1
Е» х
1 о с о
1
1 Х
1 Ф х v
1 х ««I
1 Э Ь «б
1 ОЗ Ф Х
1 х Ф Э
I — I йм 1 1 (б 1 X 1 Э 9. tl I ) (tl о 3 о о о о о о о Π— «v м -- л чэ r cO,:" .-" 1 O O O О О o — «! v - v о л со О » Ч ° » О О О О О о «ч м < л о л со 1- 7рмря ю аюЯю Л AF-Ж,ж ЬаЖ ж фИиат 1185329 Кл инмулцр.м 1,г Ф(ниммутиторои /Я 1i85329!!85329 4Ьа4 1185329 1185329 Фиг 8 1185329 меУ Wpp e« м июм 1Ф, Фраэр,вам АжЬюео репм трф 4 9розрмд Ь иР меер регагстра (нам мантиссчн) f-7 рсчер, Рю еюлтмили 3 лир,еРе о фиг Ю Составитель А. Зорин Редактор Л, Пчелинская Техред Т.Дубинчак Корректор Л, Бескид Заказ 6366/45 Тираж 709 Подписное ВНИИПИ Государственного комитета СССР по делам изобретений и открытий 113035, Москва, Ж-35, Раушская наб, д. 4/5 f- d р мр,еА АмА пео ргеис щнт 4 мгФ etd яма еiп1 $ Филиал ППП "Патент", г. Ужгород, ул, Проектная, 4