JP4274633B2 - 累乗演算装置 - Google Patents
累乗演算装置 Download PDFInfo
- Publication number
- JP4274633B2 JP4274633B2 JP17736899A JP17736899A JP4274633B2 JP 4274633 B2 JP4274633 B2 JP 4274633B2 JP 17736899 A JP17736899 A JP 17736899A JP 17736899 A JP17736899 A JP 17736899A JP 4274633 B2 JP4274633 B2 JP 4274633B2
- Authority
- JP
- Japan
- Prior art keywords
- bit string
- value
- input
- radix
- exponent
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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/556—Logarithmic or exponential functions
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Error Detection And Correction (AREA)
- Complex Calculations (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【発明の属する技術分野】
この発明は入力基数ビット列と入力指数ビット列とからなる入力数値の累乗演算を実施する累乗演算装置に係り、特に、その累乗演算速度を実質的に高速化ならしめるための改良に関するものである。
【0002】
【従来の技術】
図3は特開平10−207694号公報に開示された従来の累乗演算装置の構成を示すブロック図である。図において、24は対数算出部、25は乗算器、26は指数算出部、27は対数シフト部、28は対数テーブル、29は対数加算部、30は指数減算部、31は指数テーブル、32は指数シフト部である。
【0003】
次に動作を説明する。
対数シフト部27が累乗に係る基数ビット列をその小数部と整数部とに分割すると、その小数部は対数テーブル28を用いて対数値に変換され、この対数値と整数部とで乗算器25への基数対数ビット列が生成される。乗算器25はこの基数対数ビット列と指数ビット列とを乗算し、指数算出部26へ出力する。この指数算出部26では、指数減算部30がこれを整数項と小数項とに分割し、その小数部は指数テーブル31を用いて逆変換され、指数シフト部32はこの逆変換された小数項と上記整数項とを用いて累乗演算結果を出力する。
【0004】
そして、このような演算処理であれば、基数ビット列を対数に変換し、この基数ビット列の指数ビット列による累乗演算を基数ビット列の対数と指数ビット列との乗算演算に置き換えることができ、級数に基づく演算を繰り返すことで基数ビット列の累乗演算を行うような場合よりもはるかに短時間のうちに累乗演算結果を得ることができる。
【0005】
【発明が解決しようとする課題】
従来の累乗演算装置は以上のように構成されているので、あらゆる累乗演算を同列に扱い、あらゆる累乗演算処理において同様の処理にて累乗演算を実施することとなり、この処理に用いる乗算器などの処理速度を超えて高速化を図ることはできないなどの課題があった。
【0006】
この発明は上記のような課題を解決するためになされたもので、乗算演算処理において多用される特定の乗算演算処理についての高速化を図り、これにより実質的に累乗演算速度を高速化させた累乗演算装置を得ることを目的とする。
【0007】
【課題を解決するための手段】
この発明に係る累乗演算装置は、入力基数ビット列と入力指数ビット列とからなる入力数値の累乗演算を実施する累乗演算装置において、上記入力基数ビット列に対して2を底とする対数演算を実施してこの入力基数ビット列の対数ビット列を出力する対数演算部と、当該対数ビット列と上記入力指数ビット列とを乗算して第一乗算値を出力する乗算器と、上記対数ビット列に対して上記入力指数ビット列に基づくビットシフト処理を行って第二乗算値を出力するビット演算部と、上記入力指数ビット列が2を基数とする整数累乗の数であるか否かを判定し、その判定が正しい場合には第二乗算値選択信号を出力する指数判定部と、上記第一乗算値および第二乗算値が入力され、上記第二乗算値選択信号が入力された場合には第二乗算値を選択乗算値として出力し、それ以外の場合には第一乗算値を選択乗算値として出力する乗算値選択部と、上記選択乗算値に対して2を基数項とする指数演算を実施してそれを上記入力数値の累乗演算結果として出力する指数演算部とを備えるものである。
【0008】
この発明に係る累乗演算装置は、指数判定部が、入力指数ビット列が「1/2」であるか否かを判定するとともにその判定が正しい場合には第二乗算値選択信号を出力し、ビット演算部は対数ビット列に対して1回だけ右シフト処理を行って第二乗算値を出力するものである。
【0009】
この発明に係る累乗演算装置は、指数判定部が、入力指数ビット列が「−1」であるか否かを判定するとともにその判定が正しい場合には第二乗算値選択信号を出力し、ビット演算部は対数ビット列のビット反転処理を行って第二乗算値を出力するものである。
【0010】
この発明に係る累乗演算装置は、指数判定部が、入力指数ビット列が「−1/2」であるか否かを判定するとともにその判定が正しい場合には第二乗算値選択信号を出力し、ビット演算部は対数ビット列に対して1回だけ右シフト処理を行った後ビット反転処理を行い、これを第二乗算値として出力するものである。
【0011】
この発明に係る累乗演算装置は、対数演算部が、入力基数ビット列が基数仮数値と基数指数値とからなる浮動小数点データ形式で入力されるとともに、その基数仮数値と2を底とする対数演算テーブルとを用いてこの基数仮数値の対数値を出力する仮数処理手段と、上記基数指数値から上記指数オフセット値を減算して指数減算値を出力する指数処理手段と、上記基数仮数値の対数値とこの指数減算値とに基づいて上記入力基数ビット列の固定小数点形式の対数値を生成する固定基数ビット列生成手段とを備え、この対数値を上記入力基数ビット列の対数ビット列として出力するものである。
【0012】
この発明に係る累乗演算装置は、対数演算部が、ネイピア数の対数値を保持する固定基数ビット列保持手段と、入力基数ビット列がネイピア数であるか否かを判断し、その判定が正しい場合には固定データ選択信号を出力する基数判定手段と、固定基数ビット列生成手段の出力値および固定基数ビット列保持手段の保持値とが入力され、固定データ選択信号が入力された場合には当該保持値を入力基数ビット列の対数ビット列として出力し、それ以外の場合には固定基数ビット列生成手段の出力値を入力基数ビット列の対数ビット列として出力する基数出力選択部とを備えるものである。
【0013】
この発明に係る累乗演算装置は、入力指数ビット列をその小数点位置が乗算器の小数点位置と一致するようにシフトさせる仮数処理手段を備えるものである。
【0014】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態1.
図1はこの発明の実施の形態1による累乗演算装置の構成を示すブロック図である。この累乗演算装置は、入力基数ビット列と入力指数ビット列とが入力され、これらの指数演算結果を出力するものである。図において、1は入力される2つのビット列を所定の固定小数点位置の下でのビット列として取り扱ってこれら2つのビット列同士の乗算演算を実施し、その乗算結果を第一乗算ビット列Zmとして出力する乗算器、2は入力基数ビット列Xが入力され、これを上記乗算器1の固定小数点位置の下でのビット列(固定基数ビット列)に変換し、更に、その固定基数ビット列に対して2を底とする対数演算を実施して固定基数対数ビット列Wを乗算器1へ出力する基数ビット列変換部、3は入力指数ビット列Yが入力され、これを上記乗算器1の固定小数点位置の下でのビット列(固定指数ビット列Ytran)に変換して乗算器1へ出力する指数ビット列変換手段、4は入力指数ビット列Yが入力され、これに基づいて各種の演算制御信号Yx,Zsel,Ys,Yiを出力する指数判定手段、5はこの演算制御信号Yi,Ysに応じて固定基数対数ビット列Wのシフト処理や反転処理などのビット演算処理を実施し、この演算結果を第二乗算ビット列Zbとして出力するビット演算器、6は上記第一乗算ビット列Zmおよびこの第二乗算ビット列Zbが入力され、上記演算制御信号Zselに応じてこのうちの一方を選択して選択乗算ビット列Zとして出力する指数値選択部、7はこの選択乗算ビット列Zが入力され、これに対して2を基数とする指数演算を実施して上記入力基数ビット列Xと同様の小数点位置の下でのビット列に逆変換し、これを入力基数ビット列Xと入力指数ビット列Yとに基づく累乗演算結果として出力する逆変換部である。
【0015】
基数ビット列変換部2において、8は入力基数ビット列Xの仮数項Xfと2を底とする対数演算テーブルとを用いてこの仮数項の対数変換値を出力する基数仮数項変換手段、9は入力基数ビット列Xの指数項Xeから上記指数オフセット値Kを減算してこの指数項の変換値を出力する基数指数項変換手段、10はこの仮数項の対数変換値および指数項の変換値に基づいて上記乗算器1の固定小数点位置の下でのビット列を生成し、これを演算導出型固定基数ビット列として出力する固定基数ビット列生成手段、11は「log2 (e)」の値を上記乗算器1の固定小数点位置の下でのビット列として保持するとともにこれを固定保持型固定基数ビット列として出力する固定基数ビット列保持手段、12は入力基数ビット列Xが入力され、この入力基数ビット列Xがネイピア数(=e)である場合には固定データ選択信号を出力する基数判定手段、13は上記演算導出型固定基数ビット列および固定保持型固定基数ビット列が入力され、この固定データ選択信号が入力された場合には固定保持型固定基数ビット列を選択して固定基数対数ビット列Wとして出力し、それ以外の場合には演算導出型固定基数ビット列を選択して固定基数対数ビット列Wとして出力する基数出力選択部である。
【0016】
ビット演算器5において、14は固定基数対数ビット列Wを入力指数ビット列Yに応じたビット数だけシフトするシフタ、15はこのシフタ14の出力をビット反転するビット反転器、16は入力指数ビット列Yに応じてシフタ14の出力とビット反転器15の出力のうちの一方を選択して第二乗算ビット列Zbとして出力するビット演算選択部である。
【0017】
なお、この実施の形態1では、このシフタ14やビット演算選択部16は指数判定手段4からの演算制御信号Yi,Ysに基づいてシフト演算処理や選択処理を実施している。具体的には、この指数判定手段4において入力指数ビット列Yが2を基数とする整数累乗の数であるか否かが判定され、この判定が正しいときにはその累乗数を示す演算制御信号Yiがシフタ14に出力され、このシフタ14はこの累乗数と同数分だけ固定基数対数ビット列Wに対して右シフト(累乗数が負の場合)あるいは左シフト(累乗数が正の場合)を実施する。また、指数判定手段4は入力指数ビット列Yの符号を判断し、負である場合には反転ビット列の選択を指示する演算制御信号をビット演算選択部16に出力し、このビット演算選択部16はこの演算制御信号に基づいてビット反転器15の出力を選択して出力する。
【0018】
また、指数値選択部6は、指数判定手段4からの演算制御信号Zselに基づいて、入力指数ビット列Yが2を基数とする整数累乗の数である場合にはビット演算器5の出力を選択して選択乗算ビット列Zとして出力し、それ以外の場合には乗算器1の出力を選択して選択乗算ビット列Zとして出力する。
【0019】
逆変換部7において、17は選択乗算ビット列Zの小数項Zfrcを2を基数とする指数演算テーブルを用いて小数項逆変換値を出力する小数項逆変換手段、18は選択乗算ビット列Zの整数項Zintに上記指数オフセット値Kを加算して整数項逆変換値を出力する整数項逆変換手段、19はこの小数項逆変換値および整数項逆変換値に基づいて上記入力基数ビット列Xと同じ小数点位置のビット列を生成し、これを累乗演算ビット列として出力する出力ビット列生成手段である。
【0020】
なお、以上の構成とともに、基数判定手段12は入力基数ビット列Xが負数の場合には基数負数通知信号Xxを出力し、指数判定手段4は入力指数ビット列Yが整数でない場合には指数非整数通知信号Yxを出力し、出力ビット列生成手段19はこれらに基づき入力基数ビット列Xが負数の場合であって且つ入力指数ビット列Yが整数でない場合には、この累乗演算を数学的に定義することができないので、累乗演算ビット列として「0」を出力する。
【0021】
次に動作について説明する。
入力基数ビット列Xが入力されると、基数仮数項変換手段8は、その仮数項Xfと2を底とする対数演算テーブルとを用いてこの仮数項の対数変換値を出力し、基数指数項変換手段9はその指数項Xeから上記指数オフセット値Kを減算してこの指数項の変換値を出力し、固定基数ビット列生成手段10はこの仮数項の対数変換値および指数項の変換値に基づいて上記乗算器1の固定小数点位置の下でのビット列を生成して、これを演算導出型固定基数ビット列として出力する。
【0022】
そして、入力基数ビット列Xを、例えば指数オフセットKの浮動小数点表現で表わし、その仮数項をXf(0≦Xf≦1)、その指数項をXeとすると入力基数ビット列Xは下記式1のように表わされ、更に入力指数ビット列をYとすると、入力値は下記式2のように表記される。従って、この基数仮数項変換手段8からは「log2 (1+Xf)」に対応するビット列が出力され、基数指数項変換手段9からは「(Xe−K)」に対応するビット列が出力されるので、固定基数ビット列生成手段10からは「log2 (1+Xf)+(Xe−K)」が出力されることになる。
【0023】
【0024】
このような演算処理による動作とともに、基数判定手段12は、入力基数ビット列Xがネイピア数(=e)であるか否かを判断し、それが正しい場合には固定データ選択信号を出力する。そして、基数出力選択部13は、固定データ選択信号が入力された場合には固定保持型固定基数ビット列を選択して固定基数対数ビット列として出力し、それ以外の場合には演算導出型固定基数ビット列を選択して固定基数対数ビット列として出力する。これにより、基数として使用頻度が高いネイピア数を用いた累乗演算処理の時間を短縮することができる。
【0025】
また、入力指数ビット列Yが入力されると、指数判定手段4において入力指数ビット列Yが2を基数とする整数累乗の数であるか否かなどの判定がなされ、これに応じて指数ビット列変換手段3から、乗算器1の固定小数点位置の下でのビット列(固定指数ビット列)Ytranが出力される。そして、乗算器1はこの固定指数ビット列Ytranと固定基数対数ビット列Wとの乗算演算を実施して第一乗算ビット列Zmを出力する。なお、上記式2からすれば、この第一乗算ビット列Zmは「Y×{log2 (1+Xf)+(Xe−K)}」と等価な値を備える。
【0026】
この乗算器1の累乗演算動作と同時に、ビット演算器5は指数判定手段4からの演算制御信号Yi,Ysに応じて固定基数対数ビット列Wのビット演算処理を実施し、この演算結果を第二乗算ビット列Zbとして出力する。具体的には、シフタ14が固定基数対数ビット列Wを入力指数ビット列Yに応じたビット数だけシフトし、ビット反転器15がこのシフタ14の出力をビット反転し、入力指数ビット列Yの符号が負である場合にはビット演算選択部16がビット反転器15の出力を選択して第二乗算ビット列Zbとして出力し、それ以外の場合にはシフタ14の出力を選択して第二乗算ビット列Zbとして出力する。更に、指数値選択部6は、入力指数ビット列Yが2を基数とする整数累乗の数である場合にはビット演算器5の出力を選択し、それ以外の場合には乗算器1の出力を選択し、これを選択乗算ビット列Zとして出力する。
【0027】
ちなみに、上記ビット演算器5から出力される第二乗算ビット列Zbは、入力指数ビット列Yが2を基数とする整数累乗の数である場合には、その整数累乗の数だけ固定基数対数ビット列Wをシフトすることで、整数累乗の数と固定基数対数ビット列Wとを乗算した場合と等価な演算を実施することになる。また、乗算演算においては下位ビットからの繰り上げなどを待った上で上位のビットの最終的な演算結果が生成されることになるので、その分最終的な演算結果を得るまでに時間がかかってしまうが、シフタ14におけるシフト処理ではそのような待ち時間が発生することはなく、その分高速に演算結果を得ることができる。
【0028】
そして、小数項逆変換手段17は選択乗算ビット列Zの小数項Zfrcを2を基数とする指数演算テーブルを用いて小数項逆変換値を出力し、整数項逆変換手段18は選択乗算ビット列Zの整数項Zintに上記指数オフセット値Kを加算して整数項逆変換値を出力し、出力ビット列生成手段19はこの小数項逆変換値および整数項逆変換値に基づいて上記入力基数ビット列Xと同じ小数点位置のビット列を生成して累乗演算ビット列として出力する。また、出力ビット列生成手段19は入力基数ビット列Xが負数の場合であって且つ入力指数ビット列Uが整数でない場合には、累乗演算ビット列として「0」を出力する。
【0029】
ちなみに、上記式2は下記式3のように変形することができ、指数値選択部6から出力される「Y×{log2 (1+Xf)+(Xe−K)}」をZ、その小数項をZfrc、整数項をZintとすると、更に式4のように表記する事ができる。
【0030】
XY = exp[Y×{log2 (1+Xf)+(Xe−K)}
×loge 2]
= exp×loge 2[Y×{log2 (1+Xf)
+(Xe−K)}]
= 2[Y × {log2(1+Xf)+(Xe-K)}] ・・・式3
XY = 2Z
= 2Zint×2Zfrc ・・・式4
【0031】
そして、この小数項「Zfrc」は0以上、1未満であるので「2Zfrc」は1以上2未満であり、この式3と上記式1とを比較すれば明らかなように、小数項逆変換手段17から出力される小数項逆変換値は浮動小数点表示形式の仮数項の表現形式と一致する。同様に、整数項逆変換手段18から出力される整数項逆変換値、つまり選択乗算ビット列Zの整数項に上記指数オフセット値Kを加算した値は浮動小数点表示形式の指数項の表現形式と一致する。従って、上記式4は例えば下記式5のように書き換えることができる。但し、ZfはZfrcによって参照された仮数項であり、Zeは浮動小数点表現形式におけるオフセット付き指数項である。
【0032】
XY = (1+Zf)×2(Ze-K) ・・・式5
【0033】
次に、累乗演算として多用される演算処理、例えば開平演算、逆数演算、正規化演算を例に詳しく動作を説明する。
【0034】
開平演算処理の場合、入力指数ビット列Yは「1/2(=2-1)」なので、2を基数とする整数累乗の数となる。また、その整数累乗の数は「−1」である。従って、シフタ14は入力基数ビット列Xの対数値Wに対して1回だけ右シフト処理を行い、その出力がビット演算選択部16から第二乗算ビット列Zbとして出力され、更に指数値選択部6から出力される。従って、乗算器1の演算結果を待つことなく指数値選択部6における選択を実施してこれに基づいて累乗演算結果を出力することができる。
【0035】
逆数演算処理の場合、入力指数ビット列Yは「−1(=−1×20 )」なので、2を基数とする整数累乗の数となる。また、その整数累乗の数は「0」である。従って、シフタ14は入力基数ビット列Xの対数値Wをそのまま出力し、ビット反転器15においてそれを反転させた値がビット演算選択部16から第二乗算ビット列Zbとして出力され、更に指数値選択部6から出力される。従って、乗算器1の演算結果を待つことなく指数値選択部6における選択を実施してこれに基づいて累乗演算結果を出力することができる。
【0036】
正規化演算処理の場合、入力指数ビット列Yは「−1/2(=−1×2-1)」なので、2を基数とする整数累乗の数となる。また、その整数累乗の数は「−1」である。従って、シフタ14は入力基数ビット列Xの対数値に対して1回だけ右シフト処理を行い、ビット反転器15においてそれを反転させた値がビット演算選択部16から第二乗算ビット列として出力され、更に指数値選択部6から出力される。従って、乗算器1の演算結果を待つことなく指数値選択部6における選択を実施してこれに基づいて累乗演算結果を出力することができる。
【0037】
なお、この実施の形態1では、入力基数ビット列Xや入力指数ビット列Yとして主に浮動小数点形式のビット列の場合について説明したが、この累乗演算装置で取り扱うことができるビット列はこれに限られるものではなく、固定小数点形式のビット列についても同様に累乗演算を行うことができる。
【0038】
以上のように、この実施の形態1によれば、入力基数ビット列Xと入力指数ビット列Yとからなる入力数値の累乗演算を実施する累乗演算装置において、上記入力基数ビット列Xに対して2を底とする対数演算を実施してこの入力基数ビット列Xの対数ビット列Wを出力する対数演算部2と、当該対数ビット列Wと上記入力指数ビット列Yとを乗算して第一乗算値Zmを出力する乗算器1と、上記対数ビット列Wに対して上記入力指数ビット列Yに基づくビットシフト処理を行って第二乗算値Zbを出力するビット演算部5と、上記入力指数ビット列Yが2を基数とする整数累乗の数であるか否かを判定し、その判定が正しい場合には第二乗算値選択信号を出力する指数判定部4と、上記第一乗算値Zmおよび第二乗算値Zbが入力され、上記第二乗算値選択信号が入力された場合には第二乗算値Zbを選択乗算値として出力し、それ以外の場合には第一乗算値Zmを選択乗算値Zとして出力する乗算値選択部6と、上記選択乗算値Zに対して2を基数項とする指数演算を実施してそれを上記入力数値の累乗演算結果として出力する指数演算部7とを備えるので、入力指数ビット列Yが2を基数とする整数累乗の数である場合には、ビット演算部5による演算結果を用いて入力数値の累乗演算結果を出力することができる。
【0039】
従って、例えば、入力指数ビット列Yが「1/2」となる開平演算、入力指数ビット列Yが「−1」となる逆数演算、入力指数ビット列Yが「−1/2」となる正規化演算などの演算処理においては乗算器1を用いずにビット演算部5を用いて累乗演算結果を出力することができるので、このような一般的に多用される累乗演算処理を特別に高速化させることにより、累乗演算速度を実質的に高速化することができる効果がある。
【0040】
この実施の形態1によれば、対数演算部2が、入力基数ビット列Xが基数仮数値Xfと基数指数値Xeとからなる浮動小数点データ形式で入力されるとともに、その基数仮数値Xfと2を底とする対数演算テーブルとを用いてこの基数仮数値Xfの対数値を出力する仮数処理手段8と、上記基数指数値Xeから上記指数オフセット値Kを減算して指数減算値を出力する指数処理手段9と、上記基数仮数値Xfの対数値とこの指数減算値とに基づいて上記入力基数ビット列Xの固定小数点形式の対数値を生成する固定基数ビット列生成手段10とを備え、この対数値を上記入力基数ビット列の対数ビット列Wとして出力するので、基数仮数値Xfと基数指数値Xeとからなる浮動小数点データ形式の数値を入力基数ビット列Xとして入力し、この入力基数ビット列Xの累乗を演算することができる効果がある。
【0041】
この実施の形態1によれば、対数演算部2が、ネイピア数の対数値(log2 (e))を保持する固定基数ビット列保持手段11と、入力基数ビット列Xがネイピア数であるか否かを判断し、その判定が正しい場合には固定データ選択信号を出力する基数判定手段12と、固定基数ビット列生成手段10の出力値および固定基数ビット列保持手段11の保持値とが入力され、固定データ選択信号が入力された場合には当該保持値を入力基数ビット列Xの対数ビット列Wとして出力し、それ以外の場合には固定基数ビット列生成手段10の出力値を入力基数ビット列Xの対数ビット列Wとして出力する基数出力選択部13とを備えるので、ネイピア数が入力されれば基数判定手段12から固定データ選択信号が出力され、基数出力選択部13から直ちにネイピア値の対数値が出力されることとなり、指数演算における基数項Xとして頻繁に用いられるネイピア数の乗算演算において対数演算テーブルの検索時間を削減して更に累乗演算速度を実質的に高速化することができる効果がある。
【0042】
この実施の形態1によれば、入力指数ビット列Yをその小数点位置が乗算器1の小数点位置と一致するようにシフトさせる仮数処理手段3を備えるので、浮動小数点データ形式の数値を入力指数ビット列Yとして入力し、この入力指数ビット列Yを用いて累乗を演算することができる効果がある。
【0043】
実施の形態2.
図2はこの発明の実施の形態2による累乗演算装置の構成を示すブロック図である。図において、20は入力基数ビット列Xの小数点位置を乗算器1の小数点位置と一致するようにシフト処理を行う入力基数ビット列用のシフタ、21は入力基数ビット列Xがネイピア数(=e)である場合には固定データ選択信号を出力するとともに、上記シフタ20に対して上記シフト処理を行うためのシフト処理指示信号を出力する基数判定手段、22は選択乗算ビット列Zの整数項Zintに「1」を加算して出力するインクリメンタ、23はこのインクリメンタ22の値に基づいて上記シフタ20とは逆方向へのシフト処理(正の値の場合には左シフト、負の値の場合には右シフト)を実施するインバートシフタである。これ以外の構成は図1と同様であり同一の符号を付して説明を省略する。
【0044】
次に動作について説明する。
基数判定手段21は入力基数ビット列Xが入力されると、それがネイピア数(=e)であるか否かを判断するとともに、入力基数ビット列用のシフタ20に対するシフト処理指示信号を出力する。具体的には、シフトした後の数値が1以上、2未満の値となるようにシフト処理指示信号を出力する。例えば、入力基数ビット列Xが「010.1011」の場合には「+1」を出力し、「000.0011」の場合には「−3」をシフト値として出力する。このためには、「1」が立っている最上位ビット位置が整数項の最下位ビットを起点として整数項側にあれば正のシフト値、小数項側にあれば負のシフト値として検出を行えば良い。そして、このシフト値に基づいて入力基数ビット列用のシフタ20は入力基数ビット列Xのシフト処理を行う。具体的には、シフト値が正の場合には右シフト処理、負の場合には左シフト処理を実施する。
【0045】
また、インクリメンタ22は、選択乗算ビット列Zの整数項Zintに「1」を加算して出力し、インバートシフタ23はこのインクリメンタ22の値に基づいて上記シフタ20とは逆方向へのシフト処理を実施するものである。これにより、出力ビット列の小数点位置を元の入力ビット列Xと同様の小数点位置に移動させることができ、同様の小数点位置のビット列を出力することができる。なお、上記インクリメンタ22において「1」を加算するのは、小数項Zfrcを用いて2の累乗テーブルを参照する際に省略されてしまう整数項「1」を補うためである。これ以外の動作は実施の形態1と同様であり説明を省略する。
【0046】
これにより、指数ビット列変換手段などが不要となり、構成の簡略化、高速処理化を図ることができる効果がある。
【0047】
【発明の効果】
以上のように、この発明によれば、入力基数ビット列と入力指数ビット列とからなる入力数値の累乗演算を実施する累乗演算装置において、上記入力基数ビット列に対して2を底とする対数演算を実施してこの入力基数ビット列の対数ビット列を出力する対数演算部と、当該対数ビット列と上記入力指数ビット列とを乗算して第一乗算値を出力する乗算器と、上記対数ビット列に対して上記入力指数ビット列に基づくビットシフト処理を行って第二乗算値を出力するビット演算部と、上記入力指数ビット列が2を基数とする整数累乗の数であるか否かを判定し、その判定が正しい場合には第二乗算値選択信号を出力する指数判定部と、上記第一乗算値および第二乗算値が入力され、上記第二乗算値選択信号が入力された場合には第二乗算値を選択乗算値として出力し、それ以外の場合には第一乗算値を選択乗算値として出力する乗算値選択部と、上記選択乗算値に対して2を基数項とする指数演算を実施してそれを上記入力数値の累乗演算結果として出力する指数演算部とを備えるので、入力指数ビット列が2を基数とする整数累乗の数である場合には、ビット演算部による演算結果を用いて入力数値の累乗演算結果を出力することができる。
【0048】
従って、例えば、入力指数ビット列が「1/2」となる開平演算、入力指数ビット列が「−1」となる逆数演算、入力指数ビット列が「−1/2」となる正規化演算などの演算処理においては乗算器を用いずにビット演算部を用いて累乗演算結果を出力することができるので、このような一般的に多用されるこのような累乗演算処理を特別に高速化させることにより、累乗演算速度を実質的に高速化することができる効果がある。
【0049】
この発明によれば、対数演算部が、入力基数ビット列が基数仮数値と基数指数値とからなる浮動小数点データ形式で入力されるとともに、その基数仮数値を乗算器の小数点位置と一致するように指数オフセット値だけシフトさせるとともに、そのシフトさせた基数仮数値と2を底とする対数演算テーブルとを用いてこの基数仮数値の対数値を出力する仮数処理手段と、上記基数指数値から上記指数オフセット値を減算して指数減算値を出力する指数処理手段と、上記基数仮数値の対数値とこの指数減算値とに基づいて上記入力基数ビット列の固定小数点形式の対数値を生成する固定基数ビット列生成手段とを備え、この対数値を上記入力基数ビット列の対数ビット列として出力するので、基数仮数値と基数指数値とからなる浮動小数点データ形式の数値を入力基数ビット列として入力し、この入力基数ビット列の累乗を演算することができる効果がある。
【0050】
この発明によれば、対数演算部が、ネイピア数の対数値を保持する固定基数ビット列保持手段と、入力基数ビット列がネイピア数であるか否かを判断し、その判定が正しい場合には固定データ選択信号を出力する基数判定手段と、固定基数ビット列生成手段の出力値および固定基数ビット列保持手段の保持値とが入力され、固定データ選択信号が入力された場合には当該保持値を入力基数ビット列の対数ビット列として出力し、それ以外の場合には固定基数ビット列生成手段の出力値を入力基数ビット列の対数ビット列として出力する基数出力選択部とを備えるので、ネイピア数が入力されれば基数判定手段から固定データ選択信号が出力され、基数出力選択部から直ちにネイピア値の対数値が出力されることとなり、指数演算における基数項として頻繁に用いられるネイピア数の乗算演算において対数演算テーブルの検索時間を削減して更に累乗演算速度を実質的に高速化することができる効果がある。
【0051】
この発明によれば、入力指数ビット列をその小数点位置が乗算器の小数点位置と一致するようにシフトさせる仮数処理手段を備えるので、浮動小数点データ形式の数値を入力指数ビット列として入力し、この入力指数ビット列を用いて累乗を演算することができる効果がある。
【図面の簡単な説明】
【図1】 この発明の実施の形態1による累乗演算装置の構成を示すブロック図である。
【図2】 この発明の実施の形態2による累乗演算装置の構成を示すブロック図である。
【図3】 従来の累乗演算装置の構成を示すブロック図である。
【符号の説明】
1 乗算器、2 基数ビット列変換部(対数演算部)、3 指数ビット列変換手段(仮数処理手段)、4 指数判定手段(指数判定部)、5 ビット演算器(ビット演算部)、6 指数値選択部(乗算値選択部)、7 逆変換部(指数演算部)、8 基数仮数項変換手段(仮数処理手段)、9 基数指数項変換手段(指数処理手段)、10 固定基数ビット列生成手段、11 固定基数ビット列保持手段、12 基数判定手段、13 基数出力選択部、14 シフタ、15 ビット反転器、16 ビット演算選択部、17 小数項逆変換手段、18 整数項逆変換手段、19 出力ビット列生成手段、20 入力基数ビット列用のシフタ(仮数処理手段)、21 基数判定手段、22 インクリメンタ、23 インバートシフタ。
Claims (7)
- 入力基数ビット列と入力指数ビット列とからなる入力数値の累乗演算を実施する累乗演算装置において、
上記入力基数ビット列に対して2を底とする対数演算を実施してこの入力基数ビット列の対数ビット列を出力する対数演算部と、
当該対数ビット列と上記入力指数ビット列とを乗算して第一乗算値を出力する乗算器と、
上記対数ビット列に対して上記入力指数ビット列に基づくビットシフト処理を行って第二乗算値を出力するビット演算部と、
上記入力指数ビット列が2を基数とする整数累乗の数であるか否かを判定し、その判定が正しい場合には第二乗算値選択信号を出力する指数判定部と、
上記第一乗算値および第二乗算値が入力され、上記第二乗算値選択信号が入力された場合には第二乗算値を選択乗算値として出力し、それ以外の場合には第一乗算値を選択乗算値として出力する乗算値選択部と、
上記選択乗算値に対して2を基数項とする指数演算を実施してそれを上記入力数値の累乗演算結果として出力する指数演算部とを備える累乗演算装置。 - 指数判定部は、入力指数ビット列が「1/2」であるか否かを判定するとともにその判定が正しい場合には第二乗算値選択信号を出力し、ビット演算部は対数ビット列に対して1回だけ右シフト処理を行って第二乗算値を出力することを特徴とする請求項1記載の累乗演算装置。
- 指数判定部は、入力指数ビット列が「−1」であるか否かを判定するとともにその判定が正しい場合には第二乗算値選択信号を出力し、ビット演算部は対数ビット列のビット反転処理を行って第二乗算値を出力することを特徴とする請求項1記載の累乗演算装置。
- 指数判定部は、入力指数ビット列が「−1/2」であるか否かを判定するとともにその判定が正しい場合には第二乗算値選択信号を出力し、ビット演算部は対数ビット列に対して1回だけ右シフト処理を行った後ビット反転処理を行い、これを第二乗算値として出力することを特徴とする請求項1記載の累乗演算装置。
- 対数演算部は、
入力基数ビット列が基数仮数値と基数指数値とからなる浮動小数点データ形式で入力されるとともに、
その基数仮数値と2を底とする対数演算テーブルとを用いてこの基数仮数値の対数値を出力する仮数処理手段と、
上記基数指数値から上記指数オフセット値を減算して指数減算値を出力する指数処理手段と、
上記基数仮数値の対数値とこの指数減算値とに基づいて上記入力基数ビット列の固定小数点形式の対数値を生成する固定基数ビット列生成手段とを備え、
この対数値を上記入力基数ビット列の対数ビット列として出力することを特徴とする請求項1から4のうちのいずれか1項記載の累乗演算装置。 - 対数演算部は、
ネイピア数の対数値を保持する固定基数ビット列保持手段と、
入力基数ビット列がネイピア数であるか否かを判断し、その判定が正しい場合には固定データ選択信号を出力する基数判定手段と、
固定基数ビット列生成手段の出力値および固定基数ビット列保持手段の保持値とが入力され、固定データ選択信号が入力された場合には当該保持値を入力基数ビット列の対数ビット列として出力し、それ以外の場合には固定基数ビット列生成手段の出力値を入力基数ビット列の対数ビット列として出力する基数出力選択部とを備えることを特徴とする請求項5記載の累乗演算装置。 - 入力指数ビット列をその小数点位置が乗算器の小数点位置と一致するようにシフトさせる仮数処理手段を備えることを特徴とする請求項1から4のうちのいずれか1ビット列記載の累乗演算装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17736899A JP4274633B2 (ja) | 1999-06-23 | 1999-06-23 | 累乗演算装置 |
US09/478,004 US6480873B1 (en) | 1999-06-23 | 2000-01-05 | Power operation device |
DE10013068A DE10013068C2 (de) | 1999-06-23 | 2000-03-17 | Potenzierungsoperationsvorrichtung |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17736899A JP4274633B2 (ja) | 1999-06-23 | 1999-06-23 | 累乗演算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001005643A JP2001005643A (ja) | 2001-01-12 |
JP4274633B2 true JP4274633B2 (ja) | 2009-06-10 |
Family
ID=16029743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP17736899A Expired - Fee Related JP4274633B2 (ja) | 1999-06-23 | 1999-06-23 | 累乗演算装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6480873B1 (ja) |
JP (1) | JP4274633B2 (ja) |
DE (1) | DE10013068C2 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2227531C (en) * | 1997-01-20 | 2003-03-18 | Hitachi, Ltd. | Graphics processing unit and graphics processing system |
JP3983394B2 (ja) * | 1998-11-09 | 2007-09-26 | 株式会社ルネサステクノロジ | 幾何学処理プロセッサ |
US7617268B2 (en) * | 2000-05-15 | 2009-11-10 | Qsigma, Inc. | Method and apparatus supporting non-additive calculations in graphics accelerators and digital signal processors |
US6779015B1 (en) * | 2000-06-22 | 2004-08-17 | Sony Corporation | Method for implementation of power calculation on a fixed-point processor using table lookup and linear approximation |
US6898615B2 (en) * | 2000-07-24 | 2005-05-24 | Matsushita Electric Industrial Co., Ltd. | Signal processing unit and signal processing method including using an exponent part and a mantissa part for power generation |
US6681237B1 (en) * | 2000-09-07 | 2004-01-20 | International Business Machines Corporation | Exponentiation circuit for graphics adapter |
JP2002215196A (ja) * | 2001-01-24 | 2002-07-31 | Nec Corp | 0.75乗計算装置及び0.75乗計算方法並びにそれに用いるプログラム |
US6910059B2 (en) * | 2002-07-09 | 2005-06-21 | Silicon Integrated Systems Corp. | Apparatus and method for calculating an exponential calculating result of a floating-point number |
JP4647951B2 (ja) * | 2004-07-29 | 2011-03-09 | 株式会社ジェイテクト | 安全制御装置、安全制御システム及び通信エラー検出方法 |
US7957589B2 (en) * | 2007-01-25 | 2011-06-07 | Qualcomm Mems Technologies, Inc. | Arbitrary power function using logarithm lookup table |
KR20090071823A (ko) * | 2007-12-28 | 2009-07-02 | 한국과학기술원 | 다기능 연산장치 및 방법 |
JP4529098B2 (ja) * | 2008-07-29 | 2010-08-25 | ソニー株式会社 | 演算処理装置および方法、並びにプログラム |
CN104636595A (zh) * | 2014-12-23 | 2015-05-20 | 深圳市航天泰瑞捷电子有限公司 | 电力测量中的二次快速插值方法 |
US9779272B2 (en) * | 2015-04-14 | 2017-10-03 | Analog Devices, Inc. | Extended use of logarithm and exponent instructions |
US20240094989A1 (en) * | 2022-09-20 | 2024-03-21 | Apple Inc. | Execution Circuitry for Floating-Point Power Operation |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4033507C2 (de) | 1990-10-21 | 1997-04-24 | Bernd Prof Dr Hoefflinger | Schaltungsanordnung zum digitalen Multiplizieren von Integer-Zahlen |
JP3884809B2 (ja) | 1997-01-20 | 2007-02-21 | 株式会社日立製作所 | ディジタルべき乗演算装置及びそれを用いたグラフィックスシステム |
US5926406A (en) * | 1997-04-30 | 1999-07-20 | Hewlett-Packard, Co. | System and method for calculating floating point exponential values in a geometry accelerator |
US6182100B1 (en) * | 1998-06-30 | 2001-01-30 | International Business Machines Corporation | Method and system for performing a logarithmic estimation within a data processing system |
US6128638A (en) * | 1998-07-23 | 2000-10-03 | Silicon Graphics, Inc. | Method and apparatus for calculating X to the Exponent of Y |
-
1999
- 1999-06-23 JP JP17736899A patent/JP4274633B2/ja not_active Expired - Fee Related
-
2000
- 2000-01-05 US US09/478,004 patent/US6480873B1/en not_active Expired - Lifetime
- 2000-03-17 DE DE10013068A patent/DE10013068C2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE10013068C2 (de) | 2002-04-04 |
JP2001005643A (ja) | 2001-01-12 |
US6480873B1 (en) | 2002-11-12 |
DE10013068A1 (de) | 2000-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4274633B2 (ja) | 累乗演算装置 | |
JP3110288B2 (ja) | 指数対数変換回路 | |
EP0723218A2 (en) | Arithmetic processing apparatus and method used thereby | |
JPS60140422A (ja) | 演算処理装置 | |
JP4273071B2 (ja) | 除算・開平演算器 | |
JPH07234778A (ja) | 演算回路 | |
JP4279626B2 (ja) | 剰余系演算システム、スケーリング演算器、スケーリング演算方法、及びそのプログラムと記録媒体 | |
JP3660075B2 (ja) | 除算装置 | |
JPH0540605A (ja) | 浮動小数点乗算装置 | |
JP2645422B2 (ja) | 浮動小数点演算処理装置 | |
JPH086766A (ja) | 正弦余弦演算装置 | |
JP2797773B2 (ja) | 逆数演算装置 | |
JP7191797B2 (ja) | 演算回路 | |
JP2518532B2 (ja) | 減算シフト型除算器 | |
JP2951685B2 (ja) | 固定小数点演算器 | |
JP2699658B2 (ja) | 平方根演算装置 | |
JPH0251732A (ja) | 浮動小数点演算器 | |
JP2023161967A (ja) | 演算装置、演算方法及びプログラム | |
JP2000010763A (ja) | 除算回路 | |
JP2901463B2 (ja) | 加算装置 | |
JP2777265B2 (ja) | 高基数開平演算装置 | |
JPS63254525A (ja) | 除算装置 | |
JP4073513B2 (ja) | 浮動小数点処理装置 | |
JP2005018107A (ja) | 固定小数点除算装置 | |
JP2580413B2 (ja) | 乗算処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060123 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060606 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20071101 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090216 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090224 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090303 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120313 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120313 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120313 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130313 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130313 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140313 Year of fee payment: 5 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |