Устройство для вычисления функций

Иллюстрации

Показать все

Реферат

 

Изобретение относится к вычислительной технике и предназначено для использования в микропроцессорных системах. В устройстве вьшолняется вычисление функции двух переменных путем реализации алгоритма интерполяции по ше сти узловым точкам аппаратными средствами с совмещением во времени отдельных вычислительных операций , что позволяет повысить точность вычислений. Вычисление функции Z проводится по формуле Z f(x,+ ph,y. + як) (1-р)

СОЮЗ СОВЕТСНИХ

СОЦИАЛИСТИЧЕСНИХ

РЕСПУБЛИН (59 4 G 06 F 15/353 7/544

ОПИСАНИЕ ИЗОБРЕТЕНИЯ

К А BTOPCHOMV СВИДЕТЕЛЬСТВУ

У

Г

ГОСУДАРСТВЕННЫЙ КОМИТЕТ СССР

ПО ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТНРЫТИЙ (21) 3909615/24-24 (22) 18.03.85 (46) 30.12.86. Бюл, № 48 (71) Ленинградский электротехнический институт им. В.И. Ульянова (Ленина) (72) А.В. Анисимов, А.В. Крайников, Б.А. Курдиков и В.Б. Смолов (53) 681.325(088.8) (56) Авторское свидетельство СССР № 942040, кл. G 06 F 15/353, 1980.

Авторское свидетельство СССР № 1107136, кл. С 06 F 15/353, 1983. (54) УСТРОЙСТВО ДЛЯ ВЫЧИСЛЕНИЯ ФУНКЦИЙ (57) Изобретение относится к вычислительной технике и предназначено для использования в микропроцессорных системах. В устройстве выполняется вычисление функции двух переменных путем реализации алгоритма интерполяции по шести узловым точкам аппаратными средствами с совмещением во времени отдельных вычислительных опера„SUÄÄ 1280391 А1 ций, что позволяет повысить точность вычислений. Вычисление функции Z проводится по формуле

Z = f(x + р1.у; + qr) = (1-p ) (1 Ч) f.,+ (1 г) qf +, eXZ+l2 (1 ), + ай 1)

qf +3 (1q) f, + (-l)

1+1 3 - Э, eEe-12,у, ) чения функции, соответствующие парам значений узловых точек аргументов, которые хранятся в блоке памяти зна- Я чений функции; и и k — шаг размещения узловых точек по оси Х и Y соответственно;

0 < р, q 1 - переменные, определяющие положение аргументов Х и Y соответственно в пределах шага квантования. Вычисление значения функции производится за шесть тактов. 8 ил.

1280391

Изобретение относится к вычислительной технике, предназначено для использования в качестве аппаратного расширителя в микропроцессорных системах и может найти применение в 5 приборостроении, управляющих и информационно-измерительных системах.

Цель изобретения — повышение точности интерполяции функций за счет увеличения количества используемых узловых точек.

На фиг. 1-3 приведена функциональная схема устройства; на фиг. 4 и 5 — пример реализации блока синхронизации; на фиг. 6-8 — временные диа-15 граммы сигналов, формируемых блоком синхронизации по шинам управления и адреса соответственно.

Устройство содержит (фиг. 1-3) первый и второй входные регистры 1 и 2, первый и второй реверсивные счетчики 3 и 4, буферные регистры 58, регистр 9 результата, мультинлексоры 10-14, первый и второй преобразователи прямого кода в дополнительный, выполненные на группе сумматоров 15 по модулю два и группах сумматоров 16 по модулю два и элементов НЕ 17 соответственно, блок 18 памяти значений функции, второй умно30 житель-сумматор 19, умножитель 20, первый умножитель-сумматор 21,блок 22 синхронизации.

Блок 22 синхронизации (фиг. 4 и 5) содержит элементы ИЛИ 23 и 24, генератор 25 импульсов, триггеры 26-41, элементы И 42-52, элементы ИЛИ 5358, элемент НЕ 59.

Позициями 60-73 обозначены соответствующие связи, посредством которых блок 22 подключен в устройстве.

Устройство работает следующим образом.

При занесении аргументов X u Y во входные регистры 1 и 2 и счетчики 3 и 4 аргументы Х и 7 разделяются на группы младших разрядов Х. и

Y, которые заносятся в регистры 1 и 2 соответственно, и группы стар х 50 разрядов Х и У, которые заносятся в счетчики 3 и 4 соответственно. Вычисление функции двух переменных осуществляется по интерполяционной формуле 55

f(x; + ph, y + qk) (! Я) (1, ) + (! т), + ,. ай+12 (! „), Ей+12 qf

2 1+яi 2 +1 и

ЕР 2 (! ) f PР 1 (— !1 (-11

2 " 1,! 2 í,1.1 где f . f, f. f.. f, f.

11"! 1>J+ 1 1+1 1" 1+1,1+1 1 11" 1-1 & значения функции, соответствующие парам значений узловых точек элементов х.у,х.у х, у. х у х

° у . у, 7 у„„ у. х., y, ближайшим к х; + ph, у„+ qk;

h — постоянный шаг размещения узловых точек по оси Х; постоянный шаг размещения узловых точек по оси У;

О < p с 1 — переменная, определяющая положение аргумента Х в пределах шага квантования;

0 c q c 1 — переменная, определяющая положение аргумента У в пределах шага квантования; х; — ближайшее значение узловой тачки по оси Х, меньшее аргумента Х; у„ — ближайшее значение узловой точки по оси Y меньшее аргумента Y.

В устройстве для интерполяции х.; и у„ представляют собой значения старших разрядов аргументов Х и Y, заносимые в счетчики 3 и 4 соответственно. Коды, считываемые с этих счетчиков, выступают в роли адреса блока 18 памяти, адресное слово которого формируется путем конкатенации (объединения) значений (х; и у ), считываемых со счетчиков. Значения р и q представляют собой младшие разряды кодов аргументов Хм и, считываемые

С со входных регистров 1 и 2 соответственно.

Процедура вычисления значений функции двух переменных выполняется в предлагаемом устройстве за 6 тактов.

Управление процессом вычисления осуществляет блок 22 синхронизацьп4. Ðàбота блока 22 начинается по сигналу

"Пуск". При этом предполагается, что все триггеры блока 22 к моменту выдачи сигнала Пуск находятся в нулевом состоянии, которое обеспечива» .ется по завершении цикла вычислений, а также может быть установлено специальным сигналом "Сброс". Управляю.щие сигналы, поступающие в устройство при активном уровне на выходе генератора 25 импульсов, объединены на шину "Управление 1".

Управляющие сигналы, поступающие в устройство,при пассивном уровне на выходе генератора 25 импульсов, объединены в шину "Управление 2". Управляющие сигналы на мультиплексоры 10-14 снимаются с выходов тригге1280391

Сомножитель (1-q) f вычисляется следующим образом.

Значение (1-q) формируется путем прибавления к инверсии кода q единицы младшего разряда, что осуществляется при помощи группы сумматоров 15 по модулю два. Код 1-q подается на вход сомножителя Х умножителя 20 через мультиплексор 13, который включается на вход А. Значение f, „ счи1 тывается из блока.18 памяти.

50 ров 39-41 и объединены в шину "Адрес!!. Признаком завершения процесса вычисления является нулевое состояние триггера 26. В связи с этим выходной сигнал, снимаемый с инверсного плеча этого триггера, используется в качестве сигнала "Готов .

Первый такт вычислений начинается при поступлении сигнала "Пуск" на вход устройства. По переднему фронту 10 сигнала "Пуск" производится занесение аргументов Х и Y во входные регистры 1 и 2 и счетчики 3 и 4. Кроме того, сигнал "Пуск" запускает блок 22 управления. В первом также производится вычисление слагаемого (1-р )„

2 (1-q) f, „. Сомножитель (1-р ) вычис 2 f ляется при помощи умножителя-сумматора 19, сомножитель (1 — q) f; — при помощи умножителя 20, а полное произ-20 ведение (1-р ) (1-q) f „— при помощи умножителя-сумматора 21.

Сомножитель (1-р ) вычисляется следующим образом.

Буферный регистр 5 обнуляется.

Мультиплексор 11 включается на вход А. В буферный регистр 7 заносится код р из входного регистра 1, тот же код заносится и в регистр 9 через мультиплексор 10, который включается на вход А. Мультиплексор 12 включается на вход А. При этом умножитель-сумматор 19 формирует произведение р, а инверсия кода р поступает на группу сумматоров 16 по моду-35 лю два, где к инв ер сии р приб авляется единица младшего разряда, что обеспечивает формирование кода 1-р

Этот код поступает на вход X умножителя-сумматора 21. Кроме того, ука- 4 занный код запоминается в буферном регистре 8 по сигналу, входящему в шину "Управление 2". Синхронизация в буферном регистре 8 динамическая, по положительному фронту синхросиг-. нала.

Адресом для блока памяти является конкатенация старших разрядов Х с и Y аргументов Х, Y считываемых с со счетчиков 3 и 4 и поступающих на адресный вход блока 18 памяти. Выход блока 18 памяти соединен с входом сомножителя Y умножителя 20.

Таким образом, с выхода матричного умножителя 20 считывается искомое произведение, которое поступает на вход сомножителя Y умножителя-сумматора 21. Полное произведение (1-р ) (1-q)f формируется на умножителесумматоре 21, на вход сомножителя Х которого подается (1-р ), на вход сомножителя Y — (1-q)f,„, а на вход слагаемого К вЂ” "0 устройства с выхода регистра 9 результата, который обнуляется сигналом, входящим в шину

"Управление 1".

Полученный результат заносится в регистр 9 по сигналу, входящему в шину "Управление 2". Синхронизация в регистре 9 динамическая, по положительному фронту.

Во втором такте вычисляется сумма (1-р )(1-q)f;;+ (1-р )qf . Слагаемое (1-р ) (1-q) f „. поступает на вход слагаемого К умножителя-сумматора 21 с выхода регистра 9 результата. Сомножитель (1-р ) сохраняется в буфер ном регистре 8 после первого такта.

Для передачи его на вход Х умножите ля-сумматора 21 мультиплексор 14 пе

I реключается на вход В. Сомножитель

qf,.;,, вычисляется умножителем 20.

При этом значение q считывается с входного регистра 2 и поступает на вход сомножителя Х умножителя 20.

Для этого мультиплексор 13 переключается на вход В. Значение f. счиi, + 1 тывается из блока 18 памяти, для чего адресное слово блока 18 памяти во втором такте меняется путем увеличения кода в счетчике 4 на единицу по сигналу, входящему в шину Управление 1 ". Полученный во втором такте результат заносится в регистр 9 результата по сигналу, входящему в шину "Управление 2". Кроме того, во втором такте по сигналу входящему в шину "Управление 1", в буферный регистр 5 заносится код р, что необходимо для вычислений в третьем такте.

В третьем такте вычисляется сумма (1 р ) (1-q) f, „+ (1-V )q f;,+ р (р+1)

+ - -- (1-q)f,,„.. Первых два слага1 емых этой суммы поступают на вход

1280391 слагаемого К умножителн-сумматора 21 с выхода регистра 9 результата..

Третье слагаемое формируется следующим образом, Сомножитель р(р+1)/2 вычисляется умножителем-сумматором 19. Для этой цели код р в буферных регистрах 5 и

6, занесенный в предшествующих тактах, по сигналу, входящему в шину

"Управление 1", сдвигается на один 10 разряд в сторону младших разрндов;

Б освобождающийся при сдвиге разряд заносится ноль через последовательный вход L. В буферном регистре 7 сохраняется код р, занесенный в неrо в первом такте, Коды буферных ре- гистров 5, 6 и 7 подаютсн на входы х, Y умножителя-сумматора 19. Мультиплексоры 11 и 12 при этом включены на входы A. Искомое произведение через мультиплексор 14, переключаемый на вход С, поступает па вход Х умножителя-сумматора 21, кроме того, по сигналу, входящему в шину пуправление 2", оно заносится в буферный ре25 ,гистр 8. Сомножитель (1-с1)f „ „.вычисляется в умножителе 20. Код 1-q как и в первом такте поступает с группы сумматоров 15 по модулю два через мультиплексор 13 на вход сомножителя Х умножителя 20. Мультиплексор 13 при этом включен на вход А, Ордината

Е считывается из блока 18 памяти

1+\,J путем увеличения кода в счетчике 3

,на единицу и уменьшения кода в счет- 35 чике 4 на единицу по сигналам, входящим в шину "Управление 1", Полученный в третьем такте результат заносится в регистр результата 9 по сигналу, входящему в шину "Управление 2".

Б четвертом такте производятся следующие действия.

Во-первых, к ранее полученной сум- 45 р (у+1) ме прибавляется слагаемое -- — - - Я ° " а во-вторых, вычисляется значение, которое входит в пятое слагаемое интерполяционного выражения, Первая часть вычислений осуще твляется следующим образом. Код p(р+1)/2 сохраняется в буферном регистре 8 после третьего такта вычислений и подается на вход Х умножителя-сумматора 21 через мультиплексор 14, включаежй на вход В. Код ранее полученной суммы поступает на вход К умножителясумматора 21 с выхода регистра 9 результата.Сомножитель @К,,„, вычисляется умножителем 20, для чего значение q подается через мультиплексор 13 на вход сомножителн Х матричного умножителн 20. Коммутатор для этого пе"ь реключается на вход В. Ордината й,,„, f считывается из блока 18 памяти. Адрес блока 18 памяти формируется в четвертом такте следующим образом.

Код в счетчике 3 не изменяется, а код в счетчике 4 увеличивается на единицу по сигналу, входящему в шину

"Управление 1".

Результат, полученный в умножителе-сумматоре 21, записывается в регистр 9 результата по сигналу, входящему в шину "Управление 2". Причем динамическая синхронизация в регистре 9 результата предохраняет полученный в матричном умножителе 21 код от искажений, обусловленных действием других сигналов, входящих в шину

"Управление 2".

Формирование кода р-1 производится следующим образом. На вход слагаемого К умножителя-сумматора 19 подается код "-1" через мультиплексор 11, длн чего он переключается на вход В, а на вход сомножителя 7 умножителя- сумматора 19 подается код "1" через мультиплексор 12, который переключается на вход В. На вход сомножителя

Х у-множителя-сумматора 19 подается код р, записанный в буферном регистре 7. Таким образом, на выходе умножителя-сумматора 19 формируется искомый код р-1, Этот код через мультиплексор 10, который переключается на вход В, записывается в буферный регистр 6 по сигналу. входящему в шину

"Управление 2". Кроме того, по сигналам, входящим в шину "Управление 2", сдвигается код в буферном регистре 7 и уменьшается на единицу код в счетчике 3, что необходимо для вычислений в пятом такте.

В пятом такте к ранее полученной сумме прибавляется слагаемое (1-q)Х,.,„-. Сомножитель р(р-1)/ (-1)

1-1,4

/2 формируется умножителем-сумматором 19. Для этой цели код р-1, записанный в буферном регистре 6, подается через мультиплексор 12, который переключается на вход А, на вход сомножителя 7 умножителя-сумматора 19, на вход сомножителя Х которого поступает код р/2, записанный в буфер1280391 ном регистре 7. Ьуферньпt регистр 5 обнуляется по сигналу, входящему в шину "Управление 1", и на вход слагаемого К умножителя-сумматора 19 поступает "0" устройства через муль— типлексор 11, который переключается на вход А. Результат через мульти.,плексор 14, который переключается на вход С, поступает на вход сомножи теля Х умножителя-сумматора 21. Кро- !О ме того, сомножитель р(р-1)/2 записывается в буферный регистр 8 по сигналу, входящему в шину "Управление 2".

На вход слагаемого К умножителя-сумматора 21 поступает с регистра 9 результата ранее полученная сумма, а на вход сомножителя Y — сомножитель (1-q)f;,„. Этот сомножитель формиру1 ь" ется умножителем 20. На вход сомножителя Х умножителя 20 поступает че- 20 рез мультиплексор 13, включенный на вход А, значение 1-q формируемое группой сумматоров 15 по модулю два, а на вход сомножителя Y — ордината

f, из блока 18 памяти. Адрес ординаты f,,„ вычисляется путем вычитания единиц из кодов счетчиков 3 и. 4 по сигналам, входящим в шину "Управление 1". Отметим, что во втором полупериоде четвертого такта было также осуществлено вычитание единицы из кода счетчика 3. Эти действия обеспечивают переход от ординаты f ..., использовавшейся в четвертом

1+ !+! такте, к ординате f, „;, используе- 35 мой в пятом такте. Результат пятого такта записывается в регистр 9 результата по сигналу, входящему в шину Управление 2".

В шестом такте к ранее полученной сумме прибавляется слагаемое

qf; . Код сомножителя (,-!)

2 1-ч! 1 р(р — 1) /2 сохраняется в буферном регистре 8 после пятого такта и подается на вход сомножителя Х умножителясумматора 21 через мультиплексор 14, который переключается на вход В. На

ВХОД слагаемОГО К Умножителя сумма тора 21 поступает ранее .полученная сумма с выхода регистра 9 результата.

Сомножитель qf; ...,формируется умножителем 20 и поступает на вход сомножитеня У умножителя-сумматора 21, в котором и формируется искомый результат. Сомножитель q поступает на вход сомножителя Х умножителя 20 с прямого выхода входного регистра 2 через мультиплексор 13, который переключается на вход В, а ордината f;,ñ÷èтывается иэ блока 18 памяти и поступает на вход Y умножителя 20, Для формирования адреса искомой ординаты код в счетчике 4 увеличивается на единицу по сигналу, входящему в шину

"Управление 1". Результат шестого такта записывается в регистр 9 результата по сигналу, входящему в шину "Управление 2" ° Результат шестого такта является искомым результатом вычисления функции двух переменных.

Он поступает на выход устройства в

11 целоя и сопровождается признаком Готов", вырабатываемым в блоке 22. формула изобретения

Устройство для вычисления функций, содержащее два реверсивных счетчика, блок памяти значений функции, два входных регистра, два мультиплексора, два преобразователя прямого кода в дополнительный, три буферных регистра и регистр результата, первый умножитель †суммат и блок синхронизации, информационные входы первого и второго реверсивных счетчиков являются входами старших разрядов первого и второго аргументов устройства соответственно, информационные входы первого и второго входных регистров являются входами младших разрядов первого и второго аргументов устройства соответственно, выходы первого и второго реверсивных счетчиков подключены к первому и второму адресным входам блока памяти значений функции, выход первого мультиплексора подключен к входу первого сомножителя умножителя-сумматора, выход которого подключен к информационному входу регистра результата, выход которого является выходом результата устройства и соединен с входом слагаемого умножителя сумматора, первый информациный вход первого мультиплексора подключен к выходу первого буферного регистра, с первого по одиннадцатый выходы блока синхронизации подключены к первому и второму управляющим входам первого мультиплексора, к управляющему входу второго мультиплексора, к входам синхронизации регистра результата, первого, второго и третьего буферных регистров и к входу сброса регистра результата, к входам задания режима суммирования пер128Ã)391

10 ного и второго реверсивных счетчиков и к входу задания режима вычитания второго реверсивного счетчика, входы синхронизации первого и второго входных регистров и первого и второго ре5 версивных счетчиков объединены, о тл и ч а ю щ е е с я тем, что, с целью повышения точности интерполяции функций за счет увеличения количества используемых узловых точек, в не- fo го введены четвертый буферный регистр, второй умножитель-сумматор, умножитель и с третьего по пятый мультиплексоры, выход первого входного регистра подключен к информаци- f5 онным входам второго и четвертого буферных регистров и к первому информационному входу второго мультиплексора, выход которого подключен к информационному входу третьего буфер- 20 ного регистра, выход которого подключен к первому информационному входу четвертого мультиплексора, второй. информационный вход и выход которого подключены к входу первой константы устройства и к входу первого сомножителя второго. умножителя-сумматора соответственно, выход которого подключен к вторым информационным входам первого и второго мультиплексоров и ЗО

1 через второй преобразователь прямого кода в дополнительный к третьему ин формационному входу первого мультиплексора, выход которого подключен к информационному входу первого буферного регистра, выход второго буферного регистра подключен к первому информационному входу третьего мультиплексора, второй информационный вход и выход которого соединены с gg входом второй константы устройства и входом слагаемого второго умножителясумматора соответственно, вход второго сомножителя которого соединен с выходом четвертого буферного регист- 4 ра, выход второго входного регистра соединен с первым информационным входом пятого мультиплексора и через первый преобразователь прямого кода в дополнительный с вторым информационным входом пятого мультиплексора, выход которого подключен к входу первого сомножителя умножителя, вход второго сомножителя которого и выход соединены с выходом блока памяти значений функции и с входом второго сомножителя первого умножителя-сумматора соответственно, вход пуска блока синхрончзации является входом пуска устройства и соединен с входом синхронизации первого входного регистра, первый выход блока синхронизации подключен к управляющему входу пятого мультиплексора, третий выход блока синхронизации подключен к управляющим входам третьего и четвертого мультиплексоров, восьмой выход блока синхронизации подключен к входу синхронизации четвертого буферного регистра, девятый выход блока синхронизации подключен к входам разрешения записи информации второго и третьего буферных регистров, с двенадцатого по четырнадцатый выходы блока синхронизации подключены к входу разрешения записи информации четвертого буферного регистра, к входу сброса второго буферного регистра и к входу задания режима вычитания первого реверсивного счетчика, причем с второго по четвертый буферные регистры выполнены в виде регистров сдвига, последовательные информационные входы которых соединены с входом логического нуля устройства вход сброса и пятнадцатый вы-ход блока синхронизации являются входом сброса и вы— ходом признака окончания вы— числений устройства.

1280391

1280391

1280391 (1)

7f

7Z

128039) Составитель А. Ушаков

Техред М. Ходаиич

Корректор М. Максимишинец

Редактор N. Дылын

Заказ 7052/43 Тираж б71 Подписное

ВНИИПИ Государственного комитета СССР по делам изобретений и открытий

113035, Москва, Ж-35, Раушская наб., д, 4/5

Производственно-полиграфическое предприятие,г.Ужгород, ул. Проектная, 4