Устройство для вычисления натурального логарифма

 

Изобретение относится к вычислительной технике и предназначено для вычисления натурального логарифма двоичного числа, представленного в формате "фиксированная запятая". Устройство содержит два регистра, два сумматора, D-триггер, элемент ИЛИ, два мультиплексора, узел формирования унитарного кода, узел сдвига и блок хранения констант. Быстродействие повышается за счет мультипликативного алгоритма обработки половины аргумента. 2 ил.

Устройство относится к вычислительной технике и предназначено для вычисления натурального логарифма двоичного числа, представленного в формате "фиксированная запятая".

Известен цифровой логарифмический функциональный преобразователь [1] , содержащий генератор импульсов, первый и второй счетчики, блок сравнения кодов, вычислитель кодов, счетчик с предварительной установкой, регистр результата и блок задержки.

Недостатки преобразователя - низкое быстродействие, наличие динамических элементов, большой объем оборудования.

Наиболее близким техническим решением к изобретению, выбранным в качестве прототипа, является устройство для вычисления логарифма [2] , содержащее первый и второй регистры, первые выходы которых подключены к первым информационным входам соответствующих сумматоров, и блок хранения констант.

Недостатками данного устройства являются низкое быстродействие, наличие n-1 итераций, где 2-n - абсолютная погрешность вычисления, большой объем оборудования. Хотя выбранное в качестве прототипа устройство работает в диапазоне целых чисел в формате "фиксированная запятая", а предлагаемое устройство - в диапазоне аргументов [1/4, 1[ в формате "фиксированная запятая", но по принципу вычисления логарифма, а также конструктивно и схематически, наличием общих блоков и связей прототип является наиболее близким техническим решением к изобретению.

Цель изобретения - повышение быстродействия устройства.

На фиг. 1 представлена блок-схема предлагаемого устройства для вычисления натурального логарифма; на фиг. 2 - временные диаграммы работы устройства, где а - сигнал на входе синхронизации устройства, б - сигнал на входе исходного состояния устройства, в - сигнал с первого выхода узла формирования унитарного кода, г - сигнал с выхода элемента ИЛИ, д - сигнал с выхода D-триггера.

Устройство для вычисления натурального логарифма содержит первый 1 и второй 2 регистры, первые выходы которых подключены к первым информационным входам соответствующих сумматоров 3 и 4, D-триггер 5, вход установки в единицу которого объединен с входами установки в ноль первого 1 и второго 2 регистров и является входом 6 исходного состояния устройства. Вход синхронизации D-триггера 5 объединен с входами синхронизации первого 1 и второго 2 регистров и подключен к выходу элемента ИЛИ 7. Первый вход элемента ИЛИ 7 является входом 8 синхронизации устройства. Второй вход элемента ИЛИ 7 объединен с информационным входом D-триггера 5 и управляющим входом первого мультиплексора 9 и подключен к первому выходу узла 10 формирования унитарного кода. Второй выход узла 10 подключен к управляющему входу узла 11 сдвига и адресному входу блока 12 хранения констант, подключенного выходом к первому информационному входу первого мультиплексора 9. Выход мультиплексора 9 подключен к второму информационному входу второго сумматора 4, выход которого объединен с информационным входом второго регистра 2 и является информационным выходом 13 устройства. Второй информационный вход первого мультиплексора 9 подключен к второму выходу первого регистра 1, третий выход которого подключен к входу узла 10 формирования унитарного кода. Первый выход первого регистра 1 подключен через узел 11 сдвига к второму информационному входу первого сумматора 3, подключенного выходом к первому информационному входу второго мультиплексора 14. Управляющий вход мультиплексора 14 подключен к выходу D-триггера, выход - к информационному входу первого регистра 1, а второй информационный вход второго мультиплексора 14 является информационным входом 15 устройства.

Первый выход первого регистра 1 равен знаковому разряду и мантиссе аргумента. Второй выход первого регистра 1 равен инверсному знаковому разряду и мантиссе аргумента. Третий выход первого регистра 1 равен m/2 старшим разрядам мантиссы аргумента, где m - мультипликативная разрядность. Устройство может быть реализовано на базовом матричном кристалле 1515хМ1, заказных БИС, микросхемах серии 533: регистры - 553 ИР 13, мультиплексоры - 533 ЛР 1, узел сдвига - 533 ЛИ 2, 533 ЛЛ 1, сумматоры - 533 ИМ 6, узел формирования унитарного кода - 533 ЛЛ 2, элемент ИЛИ - 533 ЛЛ 1, D-триггер, блок хранения констант - 533 ЛА 16, 533 ЛА 2.

В основу работы устройства для вычисления натурального логарифма положены мультипликативные алгоритмы xk+1 = xk + 2-jk+1xk; x [ 1/4 , 1[ yk+1 = yk - ln (1 + 2-jk+1); xo = x, yo = 0, где хо, yo - начальные условия для вычисления ln x; xk, yk - значения операндов предыдущей итерации; xk+1, yk+1 - значения операндов текущей итерации; jk+1 - величина сдвига текущей итерации, равная порядковому номеру старшего нуля в мантиссе аргумента; ln(1 + 2-jk+1) - значение константы текущей итерации.

Таким образом, вычисление ln x сводится к заданию начальных условий хо, yo, определению величины сдвига jk+1, равной порядковому номеру старшего нуля в мантиссе аргумента xk, сдвига хk на jk+1 двоичных разрядов в сторону младших разрядов, параллельному суммированию операнда хk со сдвинутым значением xk 2-jk+1 и суммированию yk с константой -ln(1 + 2-jk+1).

Вычисления прекращаются по достижении старшими разрядами мантиссы значений 1 0. При этом yh= (1+2-jk+1)+xh-1= lnx.

Таким образом, исходя из свойств натурального логарифма, достаточно обработать лишь разрядов аргумента х, где m - мультипликативная разрядность аргумента, 2-n - абсолютная погрешность вычислений, m = n + 1.

V n + log2n, где V - полная разрядность операндов х и y для обеспечения точности вычислений в 2-n.

Доказательство алгоритма ln(1+x)= x-x2/2+x3/3. . .

При 0x<2 ln(1 + x) x;
x(1+2-jk+1)= 1+xh-1;
ln[x(1+2-jk+1)] = ln(1+xh-1);
lnxo= -ln(1+2-jk+1)+xh-1.

П р и м е р. Вычислить ln x, х = 0,62890625; ln x = 0,4637732;
n = 8; m = 8 + 1 = 9; = 4,5 = 5;
V = 8 + 3 = 11.
ln x = 1,10001001 (дополнительный код).

Прямой код 0,01110111, ln x = -0,46484375; 2-8 = 0,00390625, = 0,0010705 < 2-8.

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

По сигналу б (см. фиг. 2) исходного состояния (0-1-0), поступающему на вход 6 первый 1 и второй 2 регистры устанавливаются в состояние "0". Это обеспечивает запись yo = 0 во второй регистр 2, установку первого выхода узла 10 формирования унитарного кода в "0", причем сигнал с первого выхода узла формирования унитарного кода формируется в соответствии с выражением
STOP= x1x2 . . . xm/2= xi=1 i, где П - логическое умножение;
xi - i-разряды мантиссы аргумента, при этом STOP = 0 деблокирует прохождение синхроимпульсов через элемент ИЛИ 7, установку в "1" D-триггера 5. Если управляющий вход второго мультиплексора 14 находится в состоянии "1", то пропускается сигнал с второго входа второго мультиплексора 14, т. е. информационного входа 15 (хо) устройства. По переднему фронту синхроимпульса с выхода элемента ИЛИ 7 (1-0-1) в первый регистр 1 записыва- ется значение аргумента хо, во второй регистр 2 - yo = 0. Причем по заднему фронту синхроимпульса в D-триггер 5 записывается "0", так как (STOP = 0) управляющий вход второго мультиплексора 14 устанавливается в "0" и на информационный вход первого регистра 1 поступает первый информационный вход второго мультиплексора 14. Третий выход первого регистра 1, соответствующий старшим разрядам мантиссы аргумента, поступает на вход узла 10 формирования унитарного кода для формирования jK+1.

Пусть Zi - i-разряд унитарного кода jk+1, xi - i-й разряд мантиссы аргумента, тогда
Zi= xxi.

Унитарный код jk+1 поступает на управляющий вход узла 11 сдвига, который работает в соответствии с логикой xk+1[()(2Z12-2Z2. . . 2-m/2Zm/2)] xk+1( 2-iZ1), где xk+1 - третий выход первого регистра 1;
- логическое сложение, т. е. сдвиг xk+1 соответствует значению унитарного кода jk+1.

Блок 12 хранения констант содержит констант типа -ln(1 +2-jk+1), записанных по адресам jk+1 = 1,2, . . . , m/2. В качестве адреса поступает унитарный код jk+1, при этом по нулевому адресу записаны все нули, для обеспечения записи во второй регистр 2 по первому синхроимпульсу yo = 0. Первый выход первого регистра 1, соответствующий полному значению аргумента xk, поступает на вход узла 11 сдвига и первый вход первого сумматора 3, который осуществляет операцию сложения xk + 2-jk+1 xk. Второй сумматор 4 выполняет операцию yk-ln(1 + +2-jk+1). По сигналу STOP = 1 блокируется прохождение синхроимпульсов на входы синхронизации регистров 1, 2, а первый мультиплексор 9 переключается на второй информационный вход, подключенный к второму выходу первого регистра 1, соответствующий значению 1 - xh, т. е. знаковый разряд равен единице, а мантисса берется без изменений. На выходе 13 второго сумматора 4 формируется результат
lnx0= -ln(1+2-jk+1)+xh-1.

Таким образом, существенное увеличение быстродействия предлагаемого устройства по сравнению с прототипом достигается в 2 раза за счет применения мультипликативных алгоритмов, что позволяет снизить количество итераций до ( - целая часть числа, взятая сверху, например 4,1= 5), при этом m = n+1, где 2-n - абсолютная погрешность вычислений, а m - мультипликативная разрядность, равная для данного метода определения величины сдвига m = n+1, обработки лишь половины аргумента, а также за счет параллельности обработки операндов. Кроме того, заявляемое техническое решение обеспечивает простоту схемотехнического решения, уменьшение оборудования в 2 раза, точность в 2-n и уменьшение числа итераций в 2 раза по сравнению с прототипом. (56) 1. Авторское свидетельство СССР N 1160405, кл. G 06 F 7/556, 1983,
2. Авторское свидетельство СССР N 1179328, кл. G 06 F 7/556, 1984.


Формула изобретения

УСТРОЙСТВО ДЛЯ ВЫЧИСЛЕНИЯ НАТУРАЛЬНОГО ЛОГАРИФМА, содержащее два сумматора, узел сдвига, блок хранения констант и два регистра, первые выходы которых подключены к первым информационным входам соответствующих сумматоров, выход второго сумматора является выходом устройства, отличающееся тем, что оно содержит два мультиплексора, узел формирования унитарного кода, элемент ИЛИ, D-триггер, вход установки в "1" которого объединен с входами установки в "0" первого и второго регистров и является входом исходного состояния устройства, вход синхронизации D-триггера объединен с входами синхронизации первого и второго регистров и подключен к выходу элемента ИЛИ, первый вход которого является входом синхронизации устройства, второй вход элемента ИЛИ объединен с информационным входом D-триггера и управляющим входом первого мультиплексора и подключен к первому выходу узла формирования унитарного кода, второй выход которого подключен к управляющему входу узла сдвига и адресному входу блока хранения констант, выход которого подключен к первому информационному входу первого мультиплексора, выход которого подключен к второму информационному входу второго сумматора, выход которого соединен с информационным входом второго регистра, второй информационный вход первого мультиплексора подключен к второму выходу первого регистра, третий выход которого подключен к входу узла формирования унитарного кода, первый выход первого регистра подключен к информационному входу узла сдвига, выход которого подключен к второму информационному входу первого сумматора, выход которого подключен к первому информационному входу второго мультиплексора, управляющий вход которого подключен к выходу D-триггера, выход второго мультиплексора подключен к информационному входу первого регистра, а его второй информационный вход является информационным входом устройства.

РИСУНКИ

Рисунок 1, Рисунок 2



 

Похожие патенты:

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

Изобретение относится к вычислительной технике и может найти применение в специализированных вычислительных устройствах , используемых в системах автоматического управления

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

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

Изобретение относится к области вычислительной техники и может быть использовано в качестве спецпроцессора для вычисления функций Y = E<SP POS="POST">X</SP>, Y = X<SP POS="POST">M</SP>, Y = LN(1 + X)

Изобретение относится к вычислительной технике и может быть использовано в ЭВМ для реализации функции двоичного и натурального ао гарифма

Изобретение относится к вычис- ,лительной технике и может быть использовано при построении высокопроизводительных специализированных ЭВМ и систем

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

Изобретение относится к вычислительной технике и может быть использовано автономно или в составе ЭВМ в качестве аппаратной поддержки
Наверх