JPH0635680A - 対数を計算するディジタル回路及びコンピュータシステムを動作させる方法 - Google Patents

対数を計算するディジタル回路及びコンピュータシステムを動作させる方法

Info

Publication number
JPH0635680A
JPH0635680A JP5093172A JP9317293A JPH0635680A JP H0635680 A JPH0635680 A JP H0635680A JP 5093172 A JP5093172 A JP 5093172A JP 9317293 A JP9317293 A JP 9317293A JP H0635680 A JPH0635680 A JP H0635680A
Authority
JP
Japan
Prior art keywords
logarithm
factor
digital circuit
base
intermediate value
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.)
Granted
Application number
JP5093172A
Other languages
English (en)
Other versions
JP2599545B2 (ja
Inventor
Trong Son Dao
ソン、ダオ、トロン
Klaus Helwig
クラウス、ヘルウィヒ
Markus Loch
マルクス、ロホ
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0635680A publication Critical patent/JPH0635680A/ja
Application granted granted Critical
Publication of JP2599545B2 publication Critical patent/JP2599545B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/556Logarithmic or exponential functions

Abstract

(57)【要約】 【目的】 ある数の対数を計算する改良型ディジタル回
路とある数の対数を計算するようコンピュータシステム
を動かす改良型方法の提供。 【構成】 本発明は、数の対数を計算するディジタル回
路とコンピュータシステムを動作させる対応する方法に
関する。その計算は、中間値Iを獲得するよう因数f
の集合の選択に基づいている。選択された因数f
対数は、ルックアップテーブルに記憶され、単純な加算
により数の対数を計算するのに使用される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は数Mの底Bに対する対数
を計算するディジタル回路に関する。具体的には、本発
明は、数Mの底Bに対する対数を計算し、コンピュータ
システムを動作させる方法である。
【0002】
【従来の技術及び発明が解決しようとする課題】従来の
コンピュータシステムでは、対数は、べき級数展開など
対数の計算用の数学アルゴリズムをソフトウェア上で実
施してしばしば計算されている。対数の大型表の記憶に
基づくコンピュータシステムもある。
【0003】従来のコンピュータシステムの中には、対
数の計算は、浮動小数点装置や数学的双対プロセッサを
利用して対数計算の速度を速くしているものもある。し
かし、インテルプロセッサ80387など最新の浮動小
数点装置の最も早い状態が利用できるとしても、浮動小
数点数の対数を計算するには約100のマシンサイクル
が必要である。科学や技術分野では、対数の計算はしば
しば必要となるので、対数を計算するのに必要なマシン
サイクルを減らすと、こうした場合の性能は飛躍的に高
まる。
【0004】IBMテクニカルディスクロージャブルテ
ン、第11巻、8号、1969年1月、第914頁(IB
M Technical Disclosure Bulletin, Volume 11, No.8,
January 1969, pp.914)には、底2に対する2進数の対
数を見つけるアルゴリズムが示してある。桁上げ計算だ
けかせいぜい1加算かを実行すればその対数が見つか
る。しかし、対数計算の精度はこのアルゴリズムによれ
ば4つの2進数字に限られている。
【0005】アナログ形に2進数字を対数表示するため
の同じような方法と装置が、「機器と実験技術(Instru
ments and Experimental Techniques )」のVolume 29,
No.3, pt.1, page 630-1 に記載されている。この装置
は、対数の仮数を、ROMに記憶された表を参照して、
2進数の上位ビットの値から得る対数変換器を備えてい
る。取り出されたコードはディジタルアナログ変換器に
よりアナログ形にされる。
【0006】西独特許出願公開明細書第3622205
号には、対数信号処理のディジタル回路が記載されてい
る。集積回路は、アレイ状に並べられた複数の相互接続
比較器を備えている比較器アレイ論理を備えている。こ
の方法は、その実現に必要なハードウェアからみて高価
なものとなる。
【0007】西独特許出願公開明細書第3030124
号にも、対数計算の方法と装置が記載されている。この
方法は、ある数の対数のおおよその近似値を計算するだ
けであり、大半のアプリケーションでは不十分である。
【0008】Electronics Letters, 19th February 197
6, Volume 12, No.4, pp.100における「小さな誤差の迅
速対数ディジタルアナログ変換(Fast Logarithmic D.
A. Conversion)」という論文には、浮動小数点ディジ
タル数の対応する対数アナログ値への変換技術が示され
ている。この技術は、仮数を2つの部分に分割するもの
である。仮数の上位部分は、仮数の上位部分における桁
の数に対応する入力数を備えた対数復号論理により復号
される。この技術の主な欠点は、ハードウェアに必要な
費用、事前に定義された桁数への制限および比較的低い
精度である。
【0009】したがって、本発明の目的は、ある数の対
数を計算する改良型ディジタル回路とある数の対数を計
算するようコンピュータシステムを動かす改良型方法を
提供することにある。
【0010】特に、本発明は、高い精度で対数を計算す
るのに必要なマシンサイクルの数を減らすことを主眼に
おいている。
【0011】
【課題を解決するための手段】本発明の目的は、請求の
範囲の独立項の特徴を適用することにより解決される。
【0012】本発明の進歩性のあるコンセプトの出発点
は、数Mを以下のように表すことである。 ただし、fは任意の因数でBは任意の数である。数M
の底Bに対する対数を計算すると、(1)の式の対数化
は以下のようになる。 式(2)を変形すると以下のようになる。 すなわち、数Mの底Bに対する対数の計算は、log
Mで示してあるが、因数fとそれらの対数log
が既知の場合、加算Sに還元される。
【0013】本発明は、適切な因数fを発見する方法
を備えている。数Mが正規化されるので、1Bと
なり、Bは、計算のために利用される数系の底である。
この進歩性のあるコンセプトが任意の底Bをもつ他の数
系に適用さえできれば、Bが2に等しい2進法は主に以
下のように考えられる。
【0014】以下の記載は、因数fを見つけるための
B=2の場合の処理手順である。第1に、数Mの先行ゼ
ロが求められる。または、他のワードで、数Mの最上位
のゼロの桁の桁位置Nが検出される。これは、最初の因
数fを判定するためである。最初の因数fの適切な
選択は以下の式(4)によりなされる。
【0015】 ただし、Nは対応する桁の位置Nにおける数系の底Bの
巾に等しいと仮定される。
【0016】fの選択は、fが常に1より大きいこ
とを意味するが、これは、方程式(4)の矢印で示され
ているようにfの最初の桁とN−1番目の桁が1に等
しいからである。最初の因数fにMを掛けると、最初
の中間値I1となる。
【0017】(5) I=M・f 第1の中間値Iは、Mよりやや大きいが、それは第1
因数fの上記の特性によるものである。すなわち、式
(5)は式(1)の第1近似を構成する。
【0018】第2に、第1中間値Iにおける、数Mで
実行された第1探索と同様に最上位桁の桁位置Nが探索
される。これは、第2因数fを判定するもので、式
(4)は桁位置Nの新しい値に応じて適応される。第1
中間値Iと第2因数fの乗算は以下のとおりであ
る。
【0019】 (6) I=I・f=M・f・f すなわち、式(6)は式(1)のさらに良い近似を構成
する。この処理手順は、数回繰り返されるので、以後の
中間値Iは次のように計算される。
【0020】 以後の中間値Iは一層Bに近似する。これは、上記に
記載した因数fの選択によるものである。ただし、 (8) f=1+2N−1 したがって、上記に記載の処理手順は、数Mまたは以後
の中間値IK−1の先行ゼロの桁位置を探索し、この探
索の結果に基づいて因数fを選択し、最初の中間値I
またはその後の中間値Iを計算することから成る。
これらの工程は、繰り返されて、因数の集合Fの中の
因数fの部分集合が判定される。
【0021】上記の処理手順の繰返し毎に、中間値I
が増加するが、それは、1より大きい因数fによる乗
算が各繰返しで発生するからである。これは、中間値I
kの先行ゼロの桁が、処理手順が繰り返されている間
に、下位の桁位置に移動していることを示している。論
理的には、この結果、因数fが減少して、いっそう1
に近くなるが、これは因数fの式(9)における定義
からわかる。
【0022】上記に記載の処理手順が数回繰り返された
後で、要因fが判定されるので、その積は となり、底Bに近いので、式(1)は少なくともほぼ満
たされる。因数fの底Bに対する対数が既知であれ
ば、logMは式(3)により得される。
【0023】この進歩性のあるコンセプトが、コンピュ
ータシステムまたは制御システムの演算装置などのディ
ジタル回路に組み込まれていれば、処理精度は限られた
ものとなる。これは、技術計算システムは一般に数を表
示するために限られた桁数に制限されているという事実
による。数Mは以下の型式を備えているような計算シス
テムにおけるL+1桁位置により表される。
【0024】 (10) 1、a、a、a...a ただし、数aないしaは、小数点の後のL個の桁位
置を表している。その結果、方程式(10)の表示によ
ると、2進法が用いられているので、条件1M<2は
依然として維持されている。
【0025】L個の桁位置が限られた数であることは、
せいぜいL個の因数fが上記の処理手順で使用されて
いることを意味している。これは、この場合、先行ゼロ
の発生に対して、L個の異なる桁位置しかないからであ
る。この理由は、因数fの判定は、式(8)による位
置Nにおける数Mまたは中間結果Iにおける先行ゼロ
の検出によるためである。小数点の後にL個の桁位置が
ある場合、これは、NはL個の異なる値を持っているだ
けで、それがL個の異なる因数fの最高値となる。
【0026】すなわち、上記の処理手順で使用可能なす
べての因数fがこの因数の集合Fに含まれているよ
うに、因数の集合Fを事前に定義することが可能であ
る。これは、上記の処理手順を単純化する。というの
は、因数fが、先行ゼロの桁位置の以後の定義に基づ
いて、上記の因数の集合Fの部分集合として定められ
るからである。さらに、式(3)に応じたlogMの
計算は大いに単純化されて、速くなる。これは以下の記
載で明らかになるであろう。
【0027】因数の集合Fは、可能な因数fの有限
で事前定義された数Lを含むので、同じことが、因数f
の底Bに対する対数にも当てはまる。L個の可能な因
数fのL個の異なる対数logがルックアップ
テーブルに記憶される。ルックアップテーブルの各入力
はある因数fの対数の表示に対応するので、ルックア
ップテーブルはL個の入力を含むことになる。
【0028】上記の処理手順で、最初の因数fが判定
されて因数の集合Fから選択される場合、ルックアッ
プテーブルは、ルックアップテーブルから対応する入力
を取り出すために第1因数fの選択に基づいてアクセ
スされる。ルックアップテーブルのこの入力は、第1因
数fの底Bに対する対数logの表示である。
さらに最初の部分合計 (11) S=1−log が計算される。ただし、Sは式(3)に応じてlog
Mの最初の近似である。上記の処理手順のその後の繰
返しにおいて、その後の因数fが決定される。因数の
集合Fからの因数fの選択は、ルックアップテーブ
ルへのアクセスを意味している。ただし、対応する対数
が記憶される。すなわち、上記の処理手順の各繰返しに
おいて、logMの近似Sが得られる。
【0029】これはもっと一般的に表現できる。上記の
処理手順のK番目の繰返しにおいて、因数fが因数の
集合Fから選択される場合、ルックアップテーブルに
アクセスされて、そのテーブルに記憶された入力を取り
出す。この入力は、logの表示を含む。ルック
アップテーブルから取り出された入力は、式(3)に応
じてlogMのK番目の近似を計算する。ただし、K
番目の近似Sは以下のようになる。
【0030】(12) S=S−1−log 事前に定義された条件が満たされると、上記の処理手順
の繰返しが停止される。この条件は、対数の計算が必要
である技術環境を考慮して有益になるよう選択される。
例えば、制御システムでは、事前に定義された最高時間
遅延後に対数の計算が終了することが必須である。この
場合、適切な条件は、最高時間遅延に対応する上記の処
理手順の繰返しの最高数となる。科学計算など他のアプ
リケーションでは、その結果の可能な最も高い精度が望
ましい。これらのアプリケーションでは、その繰返し
は、前記の因数の集合Fの最小の因数が選択されるか
または中間値Iが底Bに極めて近い数になるまで継続
される。
【0031】注意すべきことは、因数fの選択と小計
の計算が、適切な計算システムが使用される場合並
列に実行される。これは、式(12)による対数log
MのK番目の近似Sの計算にかかる時間は、次の因
数fK+1を選択するのに使用できるからである。
【0032】本発明の他の実施例によると、このコンセ
プトはディジタル回路で実施されるのが有益である。こ
のディジタル回路は、並列に動作する2つの部分回路を
含む。最初の部分回路は、因数fを選択するのに適用
される。従って、最初の部分回路は、上記の処理手順に
応じて、数Mおよび以後の近似Ikにおける先行ゼロの
桁の桁位置Nを見つける先行ゼロ検出器を含む。さら
に、最初の回路は、バレルシフタと、加算器と、式
(7)による近似値Iを計算するレジスタ手段を含
む。
【0033】第2部分回路は、上記のようなすべての可
能な因数fのL個の異なる対数を記憶するルックアッ
プテーブルを含む。さらに、第2の部分回路は、式(1
2)に応じて対数logMの近似値Sを計算する加
算器およびレジスタ手段を含む。先行ゼロが前記の第1
部分回路により検出されると、これはある因数fの選
択に対応する。因数fの選択についての情報は、第2
の部分回路に送信される。ここで、ルックアップテーブ
ルがこの情報に基づいてアクセスされる。因数fの対
数logを表す対応する入力はルックアップテー
ブルから取り出される。この対数は、式(12)による
対数logMのさらなる近似値Sを計算する。
【0034】上記の進歩的なコンセプトは、以下の条件
を満たす数Mに制限されないことを理解すべきである。
【0035】(13) 1M<B 任意の浮動小数点数mの底Bに対する対数が計算される
場合にも、進歩的なコンセプトも適用可能である。これ
は、浮動小数点数mが以下のように表されるからであ
る。
【0036】(14) m=M・B ただし、数Mは仮数であり、数Eが浮動小数点数mの指
数である。周知であるように、浮動小数点数mの仮数M
を正規化することが常に可能であるので、式(13)が
保持される。これは、指数Eの適切な選択により達成さ
れる。式(14)の対数の計算は以下の式(15)を産
み出す。
【0037】(15) logm=logM+E 式(15)から明らかなように、式logmの計算に
は、対数logMの計算と指数Eの加算が必要であ
る。対数logMの計算は、上記の進歩性のある処理
手順を適用することにより実施されるが、それは、仮数
Mが式(13)を満たしているからである。
【0038】計算に使用される数系Bの底が2とは異な
るよう選択される場合、2進法は使用されず、式(8)
による因数fの定義から誘導するのが有益である。こ
の場合、式(16)と(17)による定義の1つを当て
はめるのがより適切である。
【0039】(16)f=1+BN−1 (17)f=1+(B−Y)N−1 ここで、Yは数系の底Bより大きい任意の数である。因
数fの定義は、上記の反復処理手順と互換性がある。
注意すべきことは、数系Bの底が2に等しい場合、式
(16)は式(8)に等しいことである。
【0040】進歩性のあるコンセプトは、高精度かつ高
速の対数計算が必要な環境で特に有益である。本発明の
教示によると対数の計算は、平均して、わずか約L/2
+定数マシンサイクルしか掛らない。ここで、定数は仮
数を正規化し指数Eを加算するのに必要なマシンサイク
ルの数を表している。実際は、定数は5以下である。従
って、本発明によるディジタル回路は、利用可能な最も
最新の浮動小数点装置より2倍以上速い。さらに、ディ
ジタル回路の進歩性のあるコンセプトは、わずかな出費
で実現できる。ディジタル回路の実現にはわずか5千論
理セルが必要である。これは最新技術では、チップの全
領域のわずか5パーセントしか使用しない。したがっ
て、進歩性のある演算装置は、コンピュータシステムの
演算装置などのマイクロチッププロセッサに統合するの
が有益である。さらに、本発明は、迅速な対数計算が必
要な制御手段や迅速なディジタルアナログ変換器で使用
される。このディジタルアナログ変換器は、しばしばレ
ーダー、通信および機器類に必要とされる。迅速な対数
のディジタルアナログ変換器で、最初に、対数計算が進
歩性のあるディジタル回路により実行され、対数計算の
結果は、ディジタルアナログ変換器によりアナログ信号
に変換される。
【0041】
【実施例】図1と2で、ある数mの対数の計算、 (14) m=M・B が例として示してある。ここでは、仮数Mは1.101
に等しく、指数Eが、10進数におけるm=1.625
・2に対応する2進法における11に等しい。
【0042】図1の列Aでは、上記の処理手順の以後の
工程で実行された計算は記号で示してある。列Bは、対
数を計算するのに必要な仮数Mの実際の変形を示す。た
だし、列Cでは、因数fの選択が各繰返しiに対して
描かれている。図1では、上記の処理手順の3つの繰返
しは、各参照番号により示されている繰返し段階1、
2、3に対応して描かれている。上記の処理手順の初期
化は、図1に示す表の最初の行に示してある。第1に、
仮数Mは先行ゼロを求めて探索される。仮数Mの最上位
のゼロ桁は、列BでNとして示される。最上位ゼロ桁の
桁位置Nの決定は、最初の因数fの決定に役立つ。た
だし、fは列Cに示すように1.001に等しい。最
初の因数fの選択は式(4)に対応する。さらに、仮
数Mは0.001に等しい因数f−1と掛け合わされ
る。実際には、この乗算は、N−1の値に対応する桁位
置の数による仮数Mのバレルシフトを必要とするだけで
ある。さらに、仮数Mとその乗算の結果が加算されて、
最初の中間ちIが式(5)によって得られる。
【0043】最初の中間値Iは図1の表の第2列に示
された上記の処理手順の第2繰返し段2の初期値であ
る。最初の繰返し段の仮数Mで実行された探索と同様
に、最初の中間値が探索されて、先行ゼロが求められ
る。同様に第2の因数fが(8)式によって決定され
る。次に、最初の中間値Iが第2の因数fの選択に
応じてバレルシフトされる。さらに、最初の中間値I
とバレルシフトのその段の結果(これは最初の中間値I
と因数f−1の乗算結果に相当する)が加算され
る。この加算の結果は、第2の中間値に等しく、さら
に、図1に示す第3繰返し段3において、先行ゼロを求
めて探索される。バレルシフトおよび加算工程は再び同
様に実行されて、その結果、第3の中間値Iとなる。
この処理手順は、中間値Iが底Bに対する良質な近似
となるまで複数繰返し段の間継続される。
【0044】図2は、数mの底2に対する対数の完全な
計算の例を示す。数mは、結果として10進小数点の後
でL=49桁位置となる50桁位置により表される。図
2に示す列A、B、Cは、図1の各列に対応する。列D
は、好ましい実施例により並列に実行される動作を示
す。因数fの選択毎に、対応する対数の (18) log=1df は、1に等しい初期値1d2から引かれる。これは、各
繰返し段の式(12)により記載されたようにその後の
近似Sの計算に等しい。図2に示す例では、20の繰
返し段が参照番号1ないし20に応じて実行される。獲
得された最後の中間結果I19は、因数f20の選択と
なる。その後の中間結果I20を通常獲得するのに役立
つ因数f20−1は、50桁位置により表される最小の
可能な数である。したがって、処理手順がこの点で停止
されるが、それは、結果の精度が上記の処理手順の追加
繰返し段分増加することはないからである。これは、数
の表示のためにこの場合には50に等しい桁位置の固定
数への制限による。この制限は、せいぜいL=49個の
異なる因数fが対数の計算で使用されることを意味す
る。因数の所定の集合Fとして潜在的に使用できるす
べての可能な因数fを記憶するのが有益である。これ
は、大半の場合に、因数の集合Fの因数fの部分集
合だけが、対数を計算するのに必要であるからである。
これは、図2に示す例に有効でもある。というのは、要
因fないしf20だけがL=49の異なる因数を含む
因数の集合Fから選択されるからである。
【0045】同様に、すべての可能な因数fの対数
は、ルックアップテーブルに記憶される。ルックアップ
テーブルは、特定の因数fの選択によりアクセスさ
れ、この特定の因数fの対数はルックアップテーブル
から取り出される。その後には、この特定の因数f
対数が列Dに示す様に初期値1d2から引かれて、適切
な計算法が使用される場合、この演算は、その後の因数
i+1の決定に並列に実行される。
【0046】以下に示すように、進歩性のあるコンセプ
トは、図3を参照してより一般的に説明される。図3
は、任意の数mの底Xに対する対数を計算するよう実行
される工程を記載する流れ図である。工程31では、数
mがフォーマットされる。この結果、式(14)により
数mが表示される。数mの仮数Mは条件(13)が保持
されるように正規化される。仮数Mは「現中間値」とし
て示される。
【0047】工程32では、現中間値が探索されて、先
行ゼロを求める。すなわち、現中間値の最上位のゼロの
けたの桁位置Nが検出される。その後、因数fは式
(16)または(17)に応じて決定される。
【0048】以下の工程32aと32bの結果、仮数M
と因数fが乗算される。工程32aでは、仮数は因数
−1と乗算される。N−1の値に対応する桁位置に
よる仮数Mをバレルシフトすることによりこの乗算を実
行するのが有益である。工程32bで、仮数Mと乗算結
果は加算されて、その後の中間値が式(7)によって得
られる。この後の中間値は「現中間値」と呼ばれる。
【0049】工程32Aと32Bでは、logMの近
似値が計算される。工程32Aでは、上記因数の対数l
ogが得られる。工程32Bではこの対数は、式
(12)によって近似値Sを計算するのに役立つ。
【0050】工程33では、ある基準が満たされるかど
うかが判定される。その基準が満たされない場合、制御
は工程32に戻され、その後の近似値SK+1が計算さ
れる。
【0051】基準が満たされると、工程34が実行され
る。工程34では、計算される対数の底Xが底Bと等し
くない場合は、近似値Sがある因数と掛け合わされ
る。この因数はlogBに等しく、以下の式(19)
を考慮する。
【0052】 (19) logM=logM・logB 次の工程35が、式(19)によってlogMに対し
て得られた近似値と指数Eが加算されるよう実行され
る。この結果は、対数logmの近似値となる。ルッ
クアップテーブルの因数fの対数を記憶するのが有益
であるので、工程32Aに必要な対数が容易に得られ
る。最初の記憶位置に記憶されている最初の因数1の対
数と最後の記憶位置に記憶された可能な最小の因数f
の対数など、因数fの対数が命令された順序でルック
アップテーブルに記憶される場合、ルックアップテーブ
ルの必要な入力のアドレスは工程32における桁位置N
の検出に基づいて容易に得られる。
【0053】さらに、工程33で下された決定の適切な
基準を選択するのが有益である。この基準は、対数の計
算が使用される技術分野を考慮して選択できる。適切な
基準は、工程32ないし33の繰返しの最高数の後で図
3のループから脱出するように繰返し数の最高数とな
る。他の適切な基準は、定数Bへの中間値Iのある程
度の近似値となる。すなわち、次の式(20) (20) I+ε>B が保持されると、ループに割り込みが発生する。式(2
0)の数εは、任意のより小さい数として選択される。
さらに可能な基準は、可能な最小因数fは、図2に示
す例の場合であるように選択されることである。図2に
示す例では、この因数は因数f20である。
【0054】進歩性のあるコンセプトは、ディジタル回
路で実施されるのが有益である。図4は本発明によるこ
うしたディジタル回路の概略図を示す。ディジタル回路
は、並列に動作する2つの部分回路AとBを含む。最初
の部分回路Aは、先行ゼロ検出器41、バレルシフタ4
2、加算器43、およびレジスタ手段44を備えてい
る。先行ゼロ検出器1の入力端はレジスタ手段44の出
力端に接続されており、先行ゼロ検出器41の出力端は
バレルシフタ42の入力端に接続されている。バレルシ
フタ42の他の入力端は、レジスタ手段44に接続さ
れ、加算器43の入力端はレジスタ手段44の出力端に
接続され、加算器43の他の入力端はバレルシフタ42
の出力端に接続される。加算器43の出力端はレジスタ
手段44に接続される。
【0055】部分回路Bは、ルックアップテーブル4
5、減算回路46、レジスタ手段47、および、1に等
しい定数値logBを記憶する記憶手段48を備えて
いる。2つの部分回路AとBは、相互接続手段49によ
り相互接続されている。
【0056】対数の計算のために、仮数Mはレジスタ手
段に記憶される。その後に、先行ゼロ検出器41は前記
数Mの最上位のゼロの桁の桁位置Nを検出する。この検
出の結果は、数Mがそれに対応して右に移送されるよう
にバレルシフタ42に供給される。さらに、バレルシフ
ト42により実行されるこのシフトの結果と、数Mであ
るレジスタ手段44の内容は、加算器43による加算さ
れる。この加算の結果はレジスタ手段44に記憶される
ので、上記の処理手順が再び始まる。部分回路Aの動作
は図3の流れ図の工程32、32aと32bに対応す
る。
【0057】部分回路Bのルックアップテーブル5は、
好ましい連続順序ですべての可能な因数fの対数lo
を含む。先行ゼロ検出器は検出結果をバレルシ
フタ42に出力する場合、この結果は相互接続手段49
を介してルックアップテーブルに送信される。それによ
り、ルックアップテーブルの対応する入力はこの検出の
結果に基づいてアクセスされる。対応する対数は減算回
路46に出力され、近似値Sは式(12)によって計
算される。最初の繰返し段で、この対数は式(11)に
よって記憶手段48に記憶された値から減算される。最
初の小計Sは減算回路46に接続されているレジスタ
手段47に記憶される。その後の繰返し段で、レジスタ
手段47に記憶された値が減算回路46に供給されるの
で、式(12)が実際評価される。部分回路Bの動作は
図3の工程32Aと32Bに対応する。
【0058】図5は、本発明の教示による任意の数mの
対数を得るのに必要な乗算Qの数の確率分布を示す。そ
の結果作成された確率分布p(Q)は、ガウス分布によ
り近似的に記載される。定数値CONST.は、図3の
上記の流れ図の工程31と34によって数mをフォーマ
ットし指数Eを加算するのに必要なマシンサイクルの数
に対応する。
【0059】
【発明の効果】本発明によれば、ある数の対数を計算す
る改良型ディジタル回路と、ある数の対数を計算するよ
うコンピュータシステムを動かす改良型方法を提供する
ことができる。
【図面の簡単な説明】
【図1】図1は本発明による対数の計算例を示す図であ
る。
【図2】図1は本発明による対数の計算例を示す図であ
る。
【図3】図3は進歩性のある方法を示す流れ図である。
【図4】図4は進歩性のあるディジタル回路を示す図で
ある。
【図5】図5は本発明による対数を計算するのに必要な
乗算の数の確率分布を示す図である。
フロントページの続き (72)発明者 クラウス、ヘルウィヒ ドイツ連邦共和国ジンデルフィンゲン、リ ヒャルト、ワグナー、シュトラーセ、23 (72)発明者 マルクス、ロホ ドイツ連邦共和国ウィトリッヒ、カルクト ゥルムシュトラーセ、56べー

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】数Mの底Bに対する対数を計算し、前記底
    Bが2に等しいのが好ましいディジタル回路であって、 所定の数の集合Fから因数fの部分集合を選択し、
    その積 が少なくとも底Bに近似する手段(41、42、43、
    44)と、 ルックアップテーブルを記憶し、前記ルックアップテー
    ブルの入力iが、前記因数fの1つの底Bに対する対
    数を少なくとも近似する手段(45)と、 となる、前記対数を少なくとも近似する和Sを計算す
    る手段(46、47、48)と、を含むことを特徴とす
    るディジタル回路。
  2. 【請求項2】前記数Mが仮数で、数Eが数mの指数であ
    り、前記数mが m=M・B と表せ、 前記ディジタル回路が、前記和Sに前記指数Eを加算
    する手段を含み、前記数Mが、条件1M<Bを満たす
    ように正規化されることを特徴とする、請求項2に記載
    のディジタル回路。
  3. 【請求項3】前記選択する手段が、前記数Mまたは中間
    値Iにおける先行ゼロの桁を検出する手段を含み、前
    記中間値Iは、 であることを特徴とする請求項1乃至2のいずれかに記
    載のディジタル回路。
  4. 【請求項4】前記選択する手段は、前記先行ゼロの桁の
    位置に対応するいくつかの桁位置に対して前記数Mまた
    は前記中間値Iをシフトするバレルシフタ手段をさら
    に含むことを特徴とする請求項3に記載のディジタル回
    路。
  5. 【請求項5】前記ディジタル回路は、前記数Mと前記シ
    フトされた数Mを加算する加算手段をさらに含むことを
    特徴とする請求項3または4に記載のディジタル回路。
  6. 【請求項6】前記ディジタル回路は、前記和Sの部分
    合計Sから前記因数fの1つの対数log
    表す前記ルックアップのテーブル入力jを減算する減算
    手段を含むことを特徴とする請求項1乃至5のいずれか
    に記載のディジタル回路。
  7. 【請求項7】請求項1乃至6のいずれかに記載のディジ
    タル回路を含むことを特徴とするプロセッサや演算機構
    などのマイクロチップ。
  8. 【請求項8】請求項1乃至6のいずれかに記載のディジ
    タル回路を含むことを特徴とするコンピュータシステ
    ム、制御手段または対数式ディジタルアナログ変換器。
  9. 【請求項9】コンピュータシステムを動作させる方法で
    あって、数Mの底Bに対する対数を計算し、所定の数の
    集合Fが前記コンピュータシステムに記憶され、所定
    の数の集合Fから因数fの部分集合を選択し、その
    が少なくとも底Bに近似する工程と、 計算し、この和Sが前記対数を近似的に表わす工程
    と、を含み、対数logを少なくとも近似する第
    2の数の集合が前記コンピュータシステムに記憶されて
    いることを特徴とする方法。
  10. 【請求項10】前記選択する工程が、前記数Mまたは中
    間値IKにおける最上位のゼロの桁を検出する工程を含
    み、前記中間値IKは、 であって、第1因数fの前記選択は、前記数Mの前記
    検出の結果に左右され、以後の因数fの選択は、前記
    中間値Iの前記検出の結果に左右されることを特徴と
    する請求項9に記載の方法。
  11. 【請求項11】前記計算する工程は、前記和Sの部分
    合計S=SK−1−logから前記因数f
    1つの対数logを減算する工程を含み、前記因
    数fが前記選択な工程における前記因数の集合F
    ら選択されることを特徴とする請求項9または10に記
    載の方法。
  12. 【請求項12】因数fは、値f=1+BN−1また
    はf=1+(B−Y)N−1を少なくとも近似し、数
    Bは利用されている数系の底であり、数Yは前記数系の
    底Bより小さい任意の数であることを特徴とする請求項
    1乃至11のいずれかに記載のディジタル回路又は方
    法。
JP5093172A 1992-06-03 1993-04-20 対数を計算するコンピュータ・システム及びコンピュータシステムを動作させる方法 Expired - Lifetime JP2599545B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP92109342A EP0572695A1 (en) 1992-06-03 1992-06-03 A digital circuit for calculating a logarithm of a number
DE92109342.3 1992-06-03

Publications (2)

Publication Number Publication Date
JPH0635680A true JPH0635680A (ja) 1994-02-10
JP2599545B2 JP2599545B2 (ja) 1997-04-09

Family

ID=8209674

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5093172A Expired - Lifetime JP2599545B2 (ja) 1992-06-03 1993-04-20 対数を計算するコンピュータ・システム及びコンピュータシステムを動作させる方法

Country Status (3)

Country Link
US (1) US5363321A (ja)
EP (1) EP0572695A1 (ja)
JP (1) JP2599545B2 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11212768A (ja) * 1998-01-23 1999-08-06 Sanyo Electric Co Ltd 対数値算出回路
US6304890B1 (en) 1998-02-04 2001-10-16 Matsushita Electric Industrial Co., Ltd. Exponential calculation device and decoding device
US6883012B1 (en) 2001-03-19 2005-04-19 Cisco Systems Wireless Networking (Australia) Pty Limited Linear-to-log converter for power estimation in a wireless data network receiver
US6502118B1 (en) * 2001-03-22 2002-12-31 Motorola, Inc. Fast system and method for producing a logarithmic signal approximation with variable precision
US7003540B2 (en) * 2001-05-25 2006-02-21 Sun Microsystems, Inc. Floating point multiplier for delimited operands
US7016928B2 (en) * 2001-05-25 2006-03-21 Sun Microsystems, Inc. Floating point status information testing circuit
US7430576B2 (en) * 2001-05-25 2008-09-30 Sun Microsystems, Inc. Floating point square root provider with embedded status information
US6976050B2 (en) * 2001-05-25 2005-12-13 Sun Microsystems, Inc. System and method for extracting the high part of a floating point operand
US6961744B2 (en) * 2001-05-25 2005-11-01 Sun Microsystems, Inc. System and method for generating an integer part of a logarithm of a floating point operand
US7069288B2 (en) * 2001-05-25 2006-06-27 Sun Microsystems, Inc. Floating point system with improved support of interval arithmetic
US7395297B2 (en) * 2001-05-25 2008-07-01 Sun Microsystems, Inc. Floating point system that represents status flag information within a floating point operand
US7831652B2 (en) * 2001-05-25 2010-11-09 Oracle America, Inc. Floating point multiplier with embedded status information
US7228324B2 (en) 2001-05-25 2007-06-05 Sun Microsystems, Inc. Circuit for selectively providing maximum or minimum of a pair of floating point operands
US7133890B2 (en) * 2001-05-25 2006-11-07 Sun Microsystems, Inc. Total order comparator unit for comparing values of two floating point operands
US6970898B2 (en) * 2001-05-25 2005-11-29 Sun Microsystems, Inc. System and method for forcing floating point status information to selected values
US7444367B2 (en) * 2001-05-25 2008-10-28 Sun Microsystems, Inc. Floating point status information accumulation circuit
US7613762B2 (en) * 2001-05-25 2009-11-03 Sun Microsystems, Inc. Floating point remainder with embedded status information
US7191202B2 (en) 2001-05-25 2007-03-13 Sun Microsystems, Inc. Comparator unit for comparing values of floating point operands
US7366749B2 (en) * 2001-05-25 2008-04-29 Sun Microsystems, Inc. Floating point adder with embedded status information
US7363337B2 (en) * 2001-05-25 2008-04-22 Sun Microsystems, Inc. Floating point divider with embedded status information
US6993549B2 (en) * 2001-05-25 2006-01-31 Sun Microsystems, Inc. System and method for performing gloating point operations involving extended exponents
US7069289B2 (en) * 2001-05-25 2006-06-27 Sun Microsystems, Inc. Floating point unit for detecting and representing inexact computations without flags or traps
US20030086486A1 (en) * 2001-07-31 2003-05-08 Graziano Michael J. Method and system for determining maximum power backoff using frequency domain geometric signal to noise ratio
US20030101206A1 (en) * 2001-07-31 2003-05-29 Graziano Michael J. Method and system for estimating a base-2 logarithm of a number
US20030099286A1 (en) * 2001-07-31 2003-05-29 Graziano Michael J. Method and system for shaping transmitted power spectral density according to line conditions
US7113491B2 (en) * 2001-07-31 2006-09-26 Conexant, Inc. Method and system for varying an echo canceller filter length based on data rate
JP2004056642A (ja) * 2002-07-23 2004-02-19 Pioneer Electronic Corp 対数変換器及び対数変換方法
US7236999B2 (en) * 2002-12-17 2007-06-26 Sun Microsystems, Inc. Methods and systems for computing the quotient of floating-point intervals
US7219117B2 (en) * 2002-12-17 2007-05-15 Sun Microsystems, Inc. Methods and systems for computing floating-point intervals
US7606850B2 (en) * 2005-03-30 2009-10-20 Lockheed Martin Corporation Method and apparatus for providing a base-2 logarithm approximation to a binary number
CN113721886A (zh) * 2020-05-25 2021-11-30 瑞昱半导体股份有限公司 对数计算方法及对数计算电路

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03241423A (ja) * 1990-02-20 1991-10-28 Anritsu Corp ベクトルlog演算回路
JPH03240826A (ja) * 1990-02-19 1991-10-28 Tomio Kurokawa スケーリング機能を有する対数表現数値演算法による演算装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3631230A (en) * 1970-09-24 1971-12-28 Ibm Binary arithmetic unit implementing a multiplicative steration for the exponential, logarithm, quotient and square root functions
DE3030124A1 (de) * 1980-08-08 1982-02-25 Siemens AG, 1000 Berlin und 8000 München Verfahren zur naeherungsweisen logarithmierung und delogarithierung und schaltungsanordnungen zur durchfuehrung der verfahren
JPS57187725A (en) * 1981-05-13 1982-11-18 Toshiba Corp Digital logarithmic converter
US4583180A (en) * 1983-01-28 1986-04-15 National Semiconductor Corporation Floating point/logarithmic conversion system
JPS59218550A (ja) * 1983-05-27 1984-12-08 Ando Electric Co Ltd デイジタル信号の対数変換回路
US4626825A (en) * 1985-07-02 1986-12-02 Vlsi Technology, Inc. Logarithmic conversion apparatus
DE3622205A1 (de) * 1985-07-02 1987-01-08 Vlsi Technology Inc Integrierte digitale schaltung zur logarithmischen signalverarbeitung

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03240826A (ja) * 1990-02-19 1991-10-28 Tomio Kurokawa スケーリング機能を有する対数表現数値演算法による演算装置
JPH03241423A (ja) * 1990-02-20 1991-10-28 Anritsu Corp ベクトルlog演算回路

Also Published As

Publication number Publication date
US5363321A (en) 1994-11-08
EP0572695A1 (en) 1993-12-08
JP2599545B2 (ja) 1997-04-09

Similar Documents

Publication Publication Date Title
JP2599545B2 (ja) 対数を計算するコンピュータ・システム及びコンピュータシステムを動作させる方法
US4727508A (en) Circuit for adding and/or subtracting numbers in logarithmic representation
US4682302A (en) Logarithmic arithmetic logic unit
CN1271508C (zh) 产生具有可变精度的对数信号近似
US6108682A (en) Division and/or square root calculating circuit
KR19990072273A (ko) 초등함수값을고정밀도로어림계산하는시스템및방법
EP0464493B1 (en) High-radix divider
KR100465371B1 (ko) 덧셈 및 반올림 연산을 동시에 수행하는 부동 소수점alu 연산 장치
US6728739B1 (en) Data calculating device and method for processing data in data block form
JPH03171324A (ja) オペランドの平方根を計算する回路及び方法
US6065031A (en) Log converter utilizing offset and method of use thereof
JP3551113B2 (ja) 除算器
JP4273071B2 (ja) 除算・開平演算器
US4899302A (en) Arithmetic unit for inverse trigonometric function
US5648924A (en) Method and apparatus for finding arctangents
KR100290906B1 (ko) 부동소수점곱셈기에서반올림과덧셈을동시에수행하는장치및방법
EP0546977A2 (en) Method and apparatus for solving numerical problems that use a plurality of processing elements operating in parallel
JP2645422B2 (ja) 浮動小数点演算処理装置
JP2578482B2 (ja) 浮動小数点演算器
JPH08504046A (ja) 浮動小数点2進数を2進形式における対数に変換しまたはその逆変換をするための装置
US7266578B2 (en) Method and hardware for computing reciprocal square root and program for the same
JP2518532B2 (ja) 減算シフト型除算器
Aoki et al. High-radix CORDIC algorithms for VLSI signal processing
JP2795253B2 (ja) 除算器
KR20010067226A (ko) 인터폴레이션 방법 및 장치