JPH09292977A - 対数関数の近似値生成回路 - Google Patents

対数関数の近似値生成回路

Info

Publication number
JPH09292977A
JPH09292977A JP10679696A JP10679696A JPH09292977A JP H09292977 A JPH09292977 A JP H09292977A JP 10679696 A JP10679696 A JP 10679696A JP 10679696 A JP10679696 A JP 10679696A JP H09292977 A JPH09292977 A JP H09292977A
Authority
JP
Japan
Prior art keywords
logarithmic function
function value
value
bit
input data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP10679696A
Other languages
English (en)
Inventor
Yasuhiro Akiyama
靖浩 秋山
Tadashi Onishi
忠志 大西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP10679696A priority Critical patent/JPH09292977A/ja
Publication of JPH09292977A publication Critical patent/JPH09292977A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】対数関数の近似値生成回路において除算器や乗
算器等の回路を用いず、回路構成を簡素化し、かつ近似
値生成の所要時間を短縮する。 【解決手段】入力データを仮数部bと2の累乗で表現さ
れる指数部cに分割し、bおよびcを入力パラメータと
する対数関数値をそれぞれテーブル化して、近似値生成
過程の演算を加算のみによって実施する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は自然対数関数および
常用対数関数の近似値生成回路に関する。
【0002】
【従来の技術】従来技術の一例として特開昭61−283962
号公報には、入力データを所定の範囲で分割して、それ
ぞれの範囲毎に対数関数の直線近似式から求めた近似値
をテーブル化し、更に真値との差を補正するための補正
係数等の別の2個のテーブルを参照して最終的な近似値
を生成する方法が記載されている。
【0003】また、特開平2−216583 号公報には、浮動
小数点で表現された入力データを内部で固定少数点表現
の仮数部と指数部に分離し、仮数部の値から導かれる対
数関数値を格納した1個のテーブルと、異なる2種類の
演算回路を用いて近似値を生成する方法が記載されてい
る。
【0004】
【発明が解決しようとする課題】特開昭61−283962号公
報による方法では、入力データから導かれる近似値テー
ブルの他に、補正係数として近似値テーブルと同容量の
テーブルが2個必要なため、高い計算精度が必要な場合
には補正係数のために大容量の記憶領域が必要となる。
さらに、対数関数の近似値を生成する過程において、加
算回路,減算回路および乗算回路が必要なため、回路の
構成規模が大きく、演算の所要時間も長いという課題が
ある。
【0005】また、特開平2−216583 号公報による方法
では、入力データから導かれる対数関数近似値を格納す
るテーブルは1個であるが、近似値を生成する過程にお
いて異なる2種類の演算回路を用いており、その回路に
は、加算,減算,乗算および除算のための回路が必要な
ため、構成が複雑で、演算の所要時間が長いという課題
がある。
【0006】
【課題を解決するための手段】本発明の回路は、上記課
題を解決するために、被演算数Xが0〜2のN乗の範囲
における2のX乗の対数関数値をテーブル化した第1の
対数関数値格納手段と、被演算数Yが0〜Lの範囲にお
ける2のY乗の対数関数値をテーブル化した第2の対数
関数値格納手段と、対数関数値に変換する入力データの
符号ビットの正,負を判定するための符号判定手段と、
入力データのビット中の最も上位のビットを検出する最
上位ビット位置検出手段と、入力データの最上位ビット
から所定の長さのビット列を切り出すためのビット切り
出し手段と、切り出したビット列の値に基づいて決定す
るアドレスにより第1の対数関数値格納部から該当する
対数関数値を読出すための第1の対数関数値読出し手段
と、最上位ビット位置に基づいて決定するアドレスによ
り第2の対数関数値格納部から該当する対数関数値を読
出すための第2の対数関数値読出し手段と、最上位ビッ
ト位置に基づいて第2の対数関数読出し部の動作を制御
する演算制御手段と、読出した2個の対数関数値を加算
するための加算手段を備える。
【0007】
【発明の実施の形態】図1は、本発明による対数関数の
近似値生成回路の一実施例を示したブロック図である。
本発明の回路は、対数関数の公式である数1に着目し、
入力データを仮数部bと2の累乗で表現される指数部c
に分割し、bおよびcを入力パラメータとする対数関数
値をそれぞれテーブル化して、近似値生成過程の演算を
テーブルから読出した2個の対数関数値の加算のみによ
って実現するものである。本発明の回路で扱う対数関数
はaを底とする対数であり、なおかつa>0,a≠1で
ある。
【0008】
【数1】 loga(b・c)=loga(b)+loga(c) …(数1) この方法によれば、従来技術による方法と同等の精度を
得るのに際し、除算器や乗算器等の回路を用いる必要が
ないため、回路構成を簡素化でき、なおかつ近似値生成
の所要時間を著しく短縮することができる。
【0009】同回路の第1の対数関数格納部105に
は、仮数部bに相当するテーブルとして、被演算数Xが
0〜2のN乗の範囲における2のX乗の対数関数値を持
つ2のX乗個の対数関数値を格納する。第2の対数関数
値格納部106には、対数関数値に変換する入力データ
のビット長をLビットとした場合、指数部cに相当する
テーブルとして、被演算数Yが0〜Lの範囲における2
のY乗の対数関数値を持つL個の対数関数値を格納す
る。
【0010】対数関数は入力データが0でない正の値を
扱う場合のみ有効であり、0を含む負の値をとることは
あり得ない。符号判定部100は、対数関数に変換する
ための入力データの符号ビットを検査する部分であり、
符号が正(符号ビットが0)ならば対数関数値演算の処
理を実行し、負(符号ビットが1)ならば入力データが
誤りであることを外部へ出力して、処理を中断するよう
に制御する。
【0011】入力データが正の値ならば、最上位ビット
位置検出部101によって入力データのビット列を符号
ビット側から1ビット毎に検査し、符号ビットに最も近
い「1」のビットが立っている位置を検出する。ビット
切り出し部102は、最上位ビット位置検出部101で
検出したビット位置から所定の長さのビット列を切り出
す。仮に切り出しビット長をSビットとすると、この切
り出したビット列の値は数1における仮数部bに相当
し、第1の対数関数格納部105から前記数1の右辺の
loga(b)に該当する対数関数値を読出すためのアドレ
ス1(109)となる。
【0012】第1の対数関数読出し部103は、アドレ
ス1(109)に該当する対数関数値を読出して加算部
107へ出力する。第1の対数関数格納部105の対数
関数値の個数は切り出しビット数のS(S≦入力ビット
長L)によって決定され、Sの値を大きくとる程、生成
する対数関数近似値の精度を上げることができる。一
方、さほど精度を必要としない条件下においては、許容
できる精度の範囲内にSの値を小さくすることで第1の
対数関数格納部105の容量を小さくすることが可能と
なる。
【0013】第2の対数関数読出し部104は、数1右
辺のloga(c)に該当する対数関数値を第2の対数関数
格納部106から読出して加算部107へ出力する。こ
の時、指数部cに相当する読出しアドレス2(110)
は、最上位ビット位置検出部101で検出したビット位
置から切り出しビット数Sを減算した値となる。ただ
し、最上位ビット位置検出部101の出力ビット位置が
Sビット以下の場合は、第1の対数関数読出し部103
から読出した値がそのまま対数関数の近似値となること
から、この場合は第2の対数関数読出し部104からは
0を加算器107へ出力すればよく、第2の対数関数格
納部106から対数関数値を読出す必要はない。
【0014】上記の制御は演算制御部108で行う。加
算部107は、第1の対数関数読出し部103および第
2の対数関数読出し部104の出力値を加算し、入力デ
ータに対する対数関数の近似結果として出力する。
【0015】以後、本発明の回路における実施の形態の
一例として、入力データは16ビット長の固定小数点,
ビット切り出し部102における切り出しビット数を4
ビット,第1の対数関数格納部105に格納する対数関
数値の個数を16個(切り出しビット数が4ビットであ
るから、参照される対数関数値の個数は2の4乗個),
第2の対数関数格納部106に格納する対数関数値の個
数を16個(入力データが16ビットのため)と仮定し
て説明する。また、第1および第2の対数関数格納部に
記憶される値を理解しやすく説明するために実数値表現
として記載するが、実際の実施の形態の回路では固定小
数点表現の値に変換して記憶される。
【0016】図2は、入力データの一例を示す図であ
る。図1の説明で述べたように符号判定部100は、入
力データの符号を検査する部分である。符号ビットは入
力データの最も左のビット、すなわち、b15の位置2
01である。符号ビットが0で入力データが正の値なら
ば対数関数演算処理を実行し、符号ビットが0で入力デ
ータが0または符号ビットが1すなわち負の値ならば入
力データが誤りであることを外部へ出力して処理を中断
する。
【0017】符号ビットが0ならば、最上位ビット位置
検出部101によって入力データのビット列を符号ビッ
ト側から1ビット毎に検査し、ビット列中の最も上位ビ
ット位置(符号ビットに最も近い「1」のビットが立っ
ている位置)を検出する。同図の例では、b11の位置
202が最上位ビット位置に該当する。
【0018】図3は、Sビット切り出し部102の動作
の一例を示す図である。ビット切り出し部102は、入
力データ200のビット列の中から最上位ビット位置2
02であるb11から4ビット分を切り出す。この切り
出した値が第1の対数関数格納部105から対数関数値
を読出すためのアドレス1(109)となる。同図の例
のアドレス1(109)は、2進数で1010となる。
また、第2の対数関数格納部106から対数関数値を読
出すためのアドレス2(110)は、最上位ビット位置
202の位置のアドレス演算係数203から切り出しビ
ット数のSを減算した値となる。同図の例では、12
(アドレス演算係数)−4(切り出しビット数)である
から、アドレス2(110)は2進数で1000とな
る。
【0019】図4は、第1の対数関数格納部105の内
容の一例を示した図である。同図の例では、第1の対数
関数格納部105に格納されている対数関数値の個数
は、求める対数関数の仮数部の引数(前記数1の中の
b)に相当する切り出しビット数が4ビットであるから
16個となる。読出される対数関数値401は、引数が
1〜15の対数関数であり、その引数はアドレス(40
0)の値と一致する。従って、ビット切り出し部102
で決定したアドレス1(109)によって直接参照する
だけで、仮数部の対数関数値を求めることができる。同
図の例ではアドレス1(109)が2進数で1010で
あるので、loga(10)の対数関数値が読出される。な
お、実際に参照されることはないが、アドレス値が0の
部分に格納される対数関数値は現実にはあり得ない数値
となるため、ダミーの値として0を格納する。
【0020】図5は、第2の対数関数格納部106の内
容の一例を示した図である。同図の例では、第2の対数
関数格納部106に格納されている対数関数値の個数
は、入力データ200のビット数が16ビットであるか
ら、被演算数Yが0〜15の範囲における2のY乗の1
6個の対数関数値を格納する。読出される対数関数値5
01はアドレス2(110)によって指定され、その値
は図3の説明で述べたとおり、最上位ビット位置202
の位置のアドレス演算係数203から切り出しビット数
Sを減算した値となる。同図の例では、アドレス2(1
10)の値が2進数で1000であるので、loga(2の
8乗)の対数関数値が読出される。
【0021】最後に、第1の対数関数読出し部103の
出力と第2の対数関数読出し部104の出力を加算部10
7によって加算し、入力データに対する対数関数近似値
の結果として出力する。
【0022】図6は本発明の回路による対数関数近似値
生成の処理手順を示すフローである。まず始めにアドレ
ス1(109)を決定するための切り出しビット数を設
定し、これをSとする(600)。次に入力データ値を
入力し(601)、これをPINとする。PINの符号
の正,負を判定し(602)、符号が負ならばエラーで
あることを出力して終了する(613)。符号が正なら
ばPINのビット列中で最上位ビットに最も近い「1」
の位置(最上位ビット位置)を検出し(603)、検出した
ビット位置からSビット切り出し、これをアドレス1と
する(604)。さらに、第1の対数関数格納部からアド
レス1に該当する対数関数値を読出して、これをPOU
T1とし(605)、加算部へ出力する(606)。
【0023】次に最上位ビット位置が切り出しビット数
以上であるかを判定し(607)、切り出しビット数S
以上の場合は、最上位ビット位置と相関のあるアドレス
2演算係数−切り出しビット数Sを計算し、これをアド
レス2とする(608)。さらに、第2の対数関数格納
部からアドレス2に該当する対数関数値を読出して、こ
れをPOUT2とし(609)、加算部へ出力する(6
10)。最上位ビット位置が切り出しビット数S以下の
場合は、POUT2に0を代入して加算部へ出力する
(612)。最後に、POUT1とPOUT2を加算
し、これを対数関数の近似値として出力する(61
1)。
【0024】なお、本発明は上記の実施の形態に限定さ
れるものではなく、例えばビット切り出し部の切り出し
ビット数を増やし、第1の対数関数値格納部のテーブル
内容をそれに対応するべく拡張することによって、より
精度よく対数関数の近似値を生成すること等への適用が
可能となる。また、本発明の要旨を変更しない範囲内に
おいて種々の設計変更を施すことが可能である。
【0025】
【発明の効果】本発明の方法は、入力データを仮数部b
と2の累乗で表現される指数部cに分割し、bおよびc
を入力パラメータとする対数関数値をそれぞれテーブル
化して、近似値生成過程の演算をテーブルから読出した
2個の値の加算のみによって実現する。従って、本発明
の方法によれば、従来技術による方法と同等の精度を得
るのに際し、除算器や乗算器等の回路を用いる必要がな
いため、回路構成を簡素化でき、なおかつ近似値生成の
所要時間を著しく短縮することができる。
【図面の簡単な説明】
【図1】本発明による対数関数の近似値生成回路の一実
施例を示すブロック図。
【図2】入力データの一例を示す説明図。
【図3】ビット切り出し部の動作の一例を示す説明図。
【図4】第1の対数関数格納部の内容の一例を示す説明
図。
【図5】第2の対数関数格納部の内容の一例を示す説明
図。
【図6】本発明の回路による対数関数近似値生成の処理
手順を示すフローチャート。
【符号の説明】
100…符号判定部、101…最上位ビット位置検出
部、102…ビット切り出し部、103…第1の対数関
数読出し部、104…第2の対数関数読出し部、105
…第1の対数関数格納部、106…第2の対数関数格納
部、107…加算部、108…演算制御部、109…ア
ドレス1、110…アドレス2。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】固定小数点で表現されたLビット長の入力
    データに対して、固定小数点で表現されたLビット長の
    近似対数関数値を生成する回路であって、被演算数Xが
    0〜2のN乗の範囲における2のX乗の対数関数値をテ
    ーブル化した第1の対数関数値格納手段と、被演算数Y
    が0〜Lの範囲における2のY乗の対数関数値をテーブ
    ル化した第2の対数関数値格納手段と、対数関数値に変
    換する入力データの符号ビットの正,負を判定するため
    の符号判定手段と、入力データのビット中の最も上位の
    ビットを検出する最上位ビット位置検出手段と、入力デ
    ータの最上位ビットから所定の長さのビット列を切り出
    すためのビット切り出し手段と、切り出したビット列の
    値に基づいて決定するアドレスにより前記第1の対数関
    数値格納部から該当する対数関数値を読出すための第1
    の対数関数値読出し手段と、最上位ビット位置に基づい
    て決定するアドレスにより前記第2の対数関数値格納部
    から該当する対数関数値を読出すための第2の対数関数
    値読出し手段と、最上位ビット位置に基づいて前記第2
    の対数関数読出し部の動作を制御する演算制御手段と、
    読出した2個の対数関数値を加算するための加算手段を
    備え、テーブルから読出した2個の値の加算のみによっ
    て所定の対数関数値を算出することを特徴とする対数関
    数の近似値生成回路。
JP10679696A 1996-04-26 1996-04-26 対数関数の近似値生成回路 Pending JPH09292977A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10679696A JPH09292977A (ja) 1996-04-26 1996-04-26 対数関数の近似値生成回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10679696A JPH09292977A (ja) 1996-04-26 1996-04-26 対数関数の近似値生成回路

Publications (1)

Publication Number Publication Date
JPH09292977A true JPH09292977A (ja) 1997-11-11

Family

ID=14442859

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10679696A Pending JPH09292977A (ja) 1996-04-26 1996-04-26 対数関数の近似値生成回路

Country Status (1)

Country Link
JP (1) JPH09292977A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008502037A (ja) * 2004-06-04 2008-01-24 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 複素対数alu
JP2010033318A (ja) * 2008-07-29 2010-02-12 Sony Corp 演算処理装置および方法、並びにプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008502037A (ja) * 2004-06-04 2008-01-24 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 複素対数alu
JP2010033318A (ja) * 2008-07-29 2010-02-12 Sony Corp 演算処理装置および方法、並びにプログラム

Similar Documents

Publication Publication Date Title
US6732134B1 (en) Handler for floating-point denormalized numbers
EP0424086B1 (en) Arithmetic processing apparatus and method used thereby
US6976043B2 (en) Technique for approximating functions based on lagrange polynomials
JPH0644225B2 (ja) 浮動小数点丸め正規化回路
US20030005006A1 (en) Fast system and method for producing a logarithmic signal approximation with variable precision
JP3178746B2 (ja) 浮動小数点数のためのフォーマット変換装置
KR19980701802A (ko) 로그/역로그 변환기, 계산 장치 및 로그값 발생 방법
JPH0544046B2 (ja)
JPH09212337A (ja) 浮動小数点演算処理装置
US20070156803A1 (en) Overflow detection and clamping with parallel operand processing for fixed-point multipliers
CN116643718B (zh) 一种流水线结构的浮点融合乘加装置、方法及处理器
JPH09292977A (ja) 対数関数の近似値生成回路
EP0738959A1 (en) Method and apparatus for finding arctangents
EP0273753B1 (en) Floating-point arithmetic apparatus
JP2006318382A (ja) 演算装置および型変換装置
JP2752948B2 (ja) 浮動小数点演算装置
CN114691082A (zh) 乘法器电路、芯片、电子设备及计算机可读存储介质
JP3233432B2 (ja) 乗算器
JPH01282633A (ja) 非正規化数の処理方式
KR940008610B1 (ko) 고속 수렴 인자 결정 방법 및 프로세서
JPH0414173A (ja) 固定小数点演算器
JP2023161967A (ja) 演算装置、演算方法及びプログラム
JP2003029960A (ja) 浮動小数点加算器のショートパスにおける丸めステップの排除
JP3124286B2 (ja) 浮動小数点数演算装置
JPH0644048A (ja) 浮動小数点演算装置および方法