(57)【特許請求の範囲】
【請求項１】
入力基数ビット列と入力指数ビット列とからなる入力数値の累乗演算を実施する累乗演算装置において、
上記入力基数ビット列に対して２を底とする対数演算を実施してこの入力基数ビット列の対数ビット列を出力する対数演算部と、
当該対数ビット列と上記入力指数ビット列とを乗算して第一乗算値を出力する乗算器と、
上記対数ビット列に対して上記入力指数ビット列に基づくビットシフト処理を行って第二乗算値を出力するビット演算部と、
上記入力指数ビット列が２を基数とする整数累乗の数であるか否かを判定し、その判定が正しい場合には第二乗算値選択信号を出力する指数判定部と、
上記第一乗算値および第二乗算値が入力され、上記第二乗算値選択信号が入力された場合には第二乗算値を選択乗算値として出力し、それ以外の場合には第一乗算値を選択乗算値として出力する乗算値選択部と、
上記選択乗算値に対して２を基数項とする指数演算を実施してそれを上記入力数値の累乗演算結果として出力する指数演算部とを備える累乗演算装置。
【請求項２】
指数判定部は、入力指数ビット列が「１／２」であるか否かを判定するとともにその判定が正しい場合には第二乗算値選択信号を出力し、ビット演算部は対数ビット列に対して１回だけ右シフト処理を行って第二乗算値を出力することを特徴とする請求項１記載の累乗演算装置。
【請求項３】
指数判定部は、入力指数ビット列が「−１」であるか否かを判定するとともにその判定が正しい場合には第二乗算値選択信号を出力し、ビット演算部は対数ビット列のビット反転処理を行って第二乗算値を出力することを特徴とする請求項１記載の累乗演算装置。
【請求項４】
指数判定部は、入力指数ビット列が「−１／２」であるか否かを判定するとともにその判定が正しい場合には第二乗算値選択信号を出力し、ビット演算部は対数ビット列に対して１回だけ右シフト処理を行った後ビット反転処理を行い、これを第二乗算値として出力することを特徴とする請求項１記載の累乗演算装置。
【請求項５】
対数演算部は、
入力基数ビット列が基数仮数値と基数指数値とからなる浮動小数点データ形式で入力されるとともに、
その基数仮数値と２を底とする対数演算テーブルとを用いてこの基数仮数値の対数値を出力する仮数処理手段と、
上記基数指数値から上記指数オフセット値を減算して指数減算値を出力する指数処理手段と、
上記基数仮数値の対数値とこの指数減算値とに基づいて上記入力基数ビット列の固定小数点形式の対数値を生成する固定基数ビット列生成手段とを備え、
この対数値を上記入力基数ビット列の対数ビット列として出力することを特徴とする請求項１から４のうちのいずれか１項記載の累乗演算装置。
【請求項６】
対数演算部は、
ネイピア数の対数値を保持する固定基数ビット列保持手段と、
入力基数ビット列がネイピア数であるか否かを判断し、その判定が正しい場合には固定データ選択信号を出力する基数判定手段と、
固定基数ビット列生成手段の出力値および固定基数ビット列保持手段の保持値とが入力され、固定データ選択信号が入力された場合には当該保持値を入力基数ビット列の対数ビット列として出力し、それ以外の場合には固定基数ビット列生成手段の出力値を入力基数ビット列の対数ビット列として出力する基数出力選択部とを備えることを特徴とする請求項５記載の累乗演算装置。
【請求項７】
入力指数ビット列をその小数点位置が乗算器の小数点位置と一致するようにシフトさせる仮数処理手段を備えることを特徴とする請求項１から４のうちのいずれか１ビット列記載の累乗演算装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は入力基数ビット列と入力指数ビット列とからなる入力数値の累乗演算を実施する累乗演算装置に係り、特に、その累乗演算速度を実質的に高速化ならしめるための改良に関するものである。
【０００２】
【従来の技術】
図３は特開平１０−２０７６９４号公報に開示された従来の累乗演算装置の構成を示すブロック図である。図において、２４は対数算出部、２５は乗算器、２６は指数算出部、２７は対数シフト部、２８は対数テーブル、２９は対数加算部、３０は指数減算部、３１は指数テーブル、３２は指数シフト部である。
【０００３】
次に動作を説明する。
対数シフト部２７が累乗に係る基数ビット列をその小数部と整数部とに分割すると、その小数部は対数テーブル２８を用いて対数値に変換され、この対数値と整数部とで乗算器２５への基数対数ビット列が生成される。乗算器２５はこの基数対数ビット列と指数ビット列とを乗算し、指数算出部２６へ出力する。この指数算出部２６では、指数減算部３０がこれを整数項と小数項とに分割し、その小数部は指数テーブル３１を用いて逆変換され、指数シフト部３２はこの逆変換された小数項と上記整数項とを用いて累乗演算結果を出力する。
【０００４】
そして、このような演算処理であれば、基数ビット列を対数に変換し、この基数ビット列の指数ビット列による累乗演算を基数ビット列の対数と指数ビット列との乗算演算に置き換えることができ、級数に基づく演算を繰り返すことで基数ビット列の累乗演算を行うような場合よりもはるかに短時間のうちに累乗演算結果を得ることができる。
【０００５】
【発明が解決しようとする課題】
従来の累乗演算装置は以上のように構成されているので、あらゆる累乗演算を同列に扱い、あらゆる累乗演算処理において同様の処理にて累乗演算を実施することとなり、この処理に用いる乗算器などの処理速度を超えて高速化を図ることはできないなどの課題があった。
【０００６】
この発明は上記のような課題を解決するためになされたもので、乗算演算処理において多用される特定の乗算演算処理についての高速化を図り、これにより実質的に累乗演算速度を高速化させた累乗演算装置を得ることを目的とする。
【０００７】
【課題を解決するための手段】
この発明に係る累乗演算装置は、入力基数ビット列と入力指数ビット列とからなる入力数値の累乗演算を実施する累乗演算装置において、上記入力基数ビット列に対して２を底とする対数演算を実施してこの入力基数ビット列の対数ビット列を出力する対数演算部と、当該対数ビット列と上記入力指数ビット列とを乗算して第一乗算値を出力する乗算器と、上記対数ビット列に対して上記入力指数ビット列に基づくビットシフト処理を行って第二乗算値を出力するビット演算部と、上記入力指数ビット列が２を基数とする整数累乗の数であるか否かを判定し、その判定が正しい場合には第二乗算値選択信号を出力する指数判定部と、上記第一乗算値および第二乗算値が入力され、上記第二乗算値選択信号が入力された場合には第二乗算値を選択乗算値として出力し、それ以外の場合には第一乗算値を選択乗算値として出力する乗算値選択部と、上記選択乗算値に対して２を基数項とする指数演算を実施してそれを上記入力数値の累乗演算結果として出力する指数演算部とを備えるものである。
【０００８】
この発明に係る累乗演算装置は、指数判定部が、入力指数ビット列が「１／２」であるか否かを判定するとともにその判定が正しい場合には第二乗算値選択信号を出力し、ビット演算部は対数ビット列に対して１回だけ右シフト処理を行って第二乗算値を出力するものである。
【０００９】
この発明に係る累乗演算装置は、指数判定部が、入力指数ビット列が「−１」であるか否かを判定するとともにその判定が正しい場合には第二乗算値選択信号を出力し、ビット演算部は対数ビット列のビット反転処理を行って第二乗算値を出力するものである。
【００１０】
この発明に係る累乗演算装置は、指数判定部が、入力指数ビット列が「−１／２」であるか否かを判定するとともにその判定が正しい場合には第二乗算値選択信号を出力し、ビット演算部は対数ビット列に対して１回だけ右シフト処理を行った後ビット反転処理を行い、これを第二乗算値として出力するものである。
【００１１】
この発明に係る累乗演算装置は、対数演算部が、入力基数ビット列が基数仮数値と基数指数値とからなる浮動小数点データ形式で入力されるとともに、その基数仮数値と２を底とする対数演算テーブルとを用いてこの基数仮数値の対数値を出力する仮数処理手段と、上記基数指数値から上記指数オフセット値を減算して指数減算値を出力する指数処理手段と、上記基数仮数値の対数値とこの指数減算値とに基づいて上記入力基数ビット列の固定小数点形式の対数値を生成する固定基数ビット列生成手段とを備え、この対数値を上記入力基数ビット列の対数ビット列として出力するものである。
【００１２】
この発明に係る累乗演算装置は、対数演算部が、ネイピア数の対数値を保持する固定基数ビット列保持手段と、入力基数ビット列がネイピア数であるか否かを判断し、その判定が正しい場合には固定データ選択信号を出力する基数判定手段と、固定基数ビット列生成手段の出力値および固定基数ビット列保持手段の保持値とが入力され、固定データ選択信号が入力された場合には当該保持値を入力基数ビット列の対数ビット列として出力し、それ以外の場合には固定基数ビット列生成手段の出力値を入力基数ビット列の対数ビット列として出力する基数出力選択部とを備えるものである。
【００１３】
この発明に係る累乗演算装置は、入力指数ビット列をその小数点位置が乗算器の小数点位置と一致するようにシフトさせる仮数処理手段を備えるものである。
【００１４】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態１．
図１はこの発明の実施の形態１による累乗演算装置の構成を示すブロック図である。この累乗演算装置は、入力基数ビット列と入力指数ビット列とが入力され、これらの指数演算結果を出力するものである。図において、１は入力される２つのビット列を所定の固定小数点位置の下でのビット列として取り扱ってこれら２つのビット列同士の乗算演算を実施し、その乗算結果を第一乗算ビット列Ｚｍとして出力する乗算器、２は入力基数ビット列Ｘが入力され、これを上記乗算器１の固定小数点位置の下でのビット列（固定基数ビット列）に変換し、更に、その固定基数ビット列に対して２を底とする対数演算を実施して固定基数対数ビット列Ｗを乗算器１へ出力する基数ビット列変換部、３は入力指数ビット列Ｙが入力され、これを上記乗算器１の固定小数点位置の下でのビット列（固定指数ビット列Ｙｔｒａｎ）に変換して乗算器１へ出力する指数ビット列変換手段、４は入力指数ビット列Ｙが入力され、これに基づいて各種の演算制御信号Ｙｘ，Ｚｓｅｌ，Ｙｓ，Ｙｉを出力する指数判定手段、５はこの演算制御信号Ｙｉ，Ｙｓに応じて固定基数対数ビット列Ｗのシフト処理や反転処理などのビット演算処理を実施し、この演算結果を第二乗算ビット列Ｚｂとして出力するビット演算器、６は上記第一乗算ビット列Ｚｍおよびこの第二乗算ビット列Ｚｂが入力され、上記演算制御信号Ｚｓｅｌに応じてこのうちの一方を選択して選択乗算ビット列Ｚとして出力する指数値選択部、７はこの選択乗算ビット列Ｚが入力され、これに対して２を基数とする指数演算を実施して上記入力基数ビット列Ｘと同様の小数点位置の下でのビット列に逆変換し、これを入力基数ビット列Ｘと入力指数ビット列Ｙとに基づく累乗演算結果として出力する逆変換部である。
【００１５】
基数ビット列変換部２において、８は入力基数ビット列Ｘの仮数項Ｘｆと２を底とする対数演算テーブルとを用いてこの仮数項の対数変換値を出力する基数仮数項変換手段、９は入力基数ビット列Ｘの指数項Ｘｅから上記指数オフセット値Ｋを減算してこの指数項の変換値を出力する基数指数項変換手段、１０はこの仮数項の対数変換値および指数項の変換値に基づいて上記乗算器１の固定小数点位置の下でのビット列を生成し、これを演算導出型固定基数ビット列として出力する固定基数ビット列生成手段、１１は「ｌｏｇ2 （ｅ）」の値を上記乗算器１の固定小数点位置の下でのビット列として保持するとともにこれを固定保持型固定基数ビット列として出力する固定基数ビット列保持手段、１２は入力基数ビット列Ｘが入力され、この入力基数ビット列Ｘがネイピア数（＝ｅ）である場合には固定データ選択信号を出力する基数判定手段、１３は上記演算導出型固定基数ビット列および固定保持型固定基数ビット列が入力され、この固定データ選択信号が入力された場合には固定保持型固定基数ビット列を選択して固定基数対数ビット列Ｗとして出力し、それ以外の場合には演算導出型固定基数ビット列を選択して固定基数対数ビット列Ｗとして出力する基数出力選択部である。
【００１６】
ビット演算器５において、１４は固定基数対数ビット列Ｗを入力指数ビット列Ｙに応じたビット数だけシフトするシフタ、１５はこのシフタ１４の出力をビット反転するビット反転器、１６は入力指数ビット列Ｙに応じてシフタ１４の出力とビット反転器１５の出力のうちの一方を選択して第二乗算ビット列Ｚｂとして出力するビット演算選択部である。
【００１７】
なお、この実施の形態１では、このシフタ１４やビット演算選択部１６は指数判定手段４からの演算制御信号Ｙｉ，Ｙｓに基づいてシフト演算処理や選択処理を実施している。具体的には、この指数判定手段４において入力指数ビット列Ｙが２を基数とする整数累乗の数であるか否かが判定され、この判定が正しいときにはその累乗数を示す演算制御信号Ｙｉがシフタ１４に出力され、このシフタ１４はこの累乗数と同数分だけ固定基数対数ビット列Ｗに対して右シフト（累乗数が負の場合）あるいは左シフト（累乗数が正の場合）を実施する。また、指数判定手段４は入力指数ビット列Ｙの符号を判断し、負である場合には反転ビット列の選択を指示する演算制御信号をビット演算選択部１６に出力し、このビット演算選択部１６はこの演算制御信号に基づいてビット反転器１５の出力を選択して出力する。
【００１８】
また、指数値選択部６は、指数判定手段４からの演算制御信号Ｚｓｅｌに基づいて、入力指数ビット列Ｙが２を基数とする整数累乗の数である場合にはビット演算器５の出力を選択して選択乗算ビット列Ｚとして出力し、それ以外の場合には乗算器１の出力を選択して選択乗算ビット列Ｚとして出力する。
【００１９】
逆変換部７において、１７は選択乗算ビット列Ｚの小数項Ｚｆｒｃを２を基数とする指数演算テーブルを用いて小数項逆変換値を出力する小数項逆変換手段、１８は選択乗算ビット列Ｚの整数項Ｚｉｎｔに上記指数オフセット値Ｋを加算して整数項逆変換値を出力する整数項逆変換手段、１９はこの小数項逆変換値および整数項逆変換値に基づいて上記入力基数ビット列Ｘと同じ小数点位置のビット列を生成し、これを累乗演算ビット列として出力する出力ビット列生成手段である。
【００２０】
なお、以上の構成とともに、基数判定手段１２は入力基数ビット列Ｘが負数の場合には基数負数通知信号Ｘｘを出力し、指数判定手段４は入力指数ビット列Ｙが整数でない場合には指数非整数通知信号Ｙｘを出力し、出力ビット列生成手段１９はこれらに基づき入力基数ビット列Ｘが負数の場合であって且つ入力指数ビット列Ｙが整数でない場合には、この累乗演算を数学的に定義することができないので、累乗演算ビット列として「０」を出力する。
【００２１】
次に動作について説明する。
入力基数ビット列Ｘが入力されると、基数仮数項変換手段８は、その仮数項Ｘｆと２を底とする対数演算テーブルとを用いてこの仮数項の対数変換値を出力し、基数指数項変換手段９はその指数項Ｘｅから上記指数オフセット値Ｋを減算してこの指数項の変換値を出力し、固定基数ビット列生成手段１０はこの仮数項の対数変換値および指数項の変換値に基づいて上記乗算器１の固定小数点位置の下でのビット列を生成して、これを演算導出型固定基数ビット列として出力する。
【００２２】
そして、入力基数ビット列Ｘを、例えば指数オフセットＫの浮動小数点表現で表わし、その仮数項をＸｆ（０≦Ｘｆ≦１）、その指数項をＸｅとすると入力基数ビット列Ｘは下記式１のように表わされ、更に入力指数ビット列をＹとすると、入力値は下記式２のように表記される。従って、この基数仮数項変換手段８からは「ｌｏｇ2 （１＋Ｘｆ）」に対応するビット列が出力され、基数指数項変換手段９からは「（Ｘｅ−Ｋ）」に対応するビット列が出力されるので、固定基数ビット列生成手段１０からは「ｌｏｇ2 （１＋Ｘｆ）＋（Ｘｅ−Ｋ）」が出力されることになる。
【００２３】
0004274633.tif 000002
【００２４】
このような演算処理による動作とともに、基数判定手段１２は、入力基数ビット列Ｘがネイピア数（＝ｅ）であるか否かを判断し、それが正しい場合には固定データ選択信号を出力する。そして、基数出力選択部１３は、固定データ選択信号が入力された場合には固定保持型固定基数ビット列を選択して固定基数対数ビット列として出力し、それ以外の場合には演算導出型固定基数ビット列を選択して固定基数対数ビット列として出力する。これにより、基数として使用頻度が高いネイピア数を用いた累乗演算処理の時間を短縮することができる。
【００２５】
また、入力指数ビット列Ｙが入力されると、指数判定手段４において入力指数ビット列Ｙが２を基数とする整数累乗の数であるか否かなどの判定がなされ、これに応じて指数ビット列変換手段３から、乗算器１の固定小数点位置の下でのビット列（固定指数ビット列）Ｙｔｒａｎが出力される。そして、乗算器１はこの固定指数ビット列Ｙｔｒａｎと固定基数対数ビット列Ｗとの乗算演算を実施して第一乗算ビット列Ｚｍを出力する。なお、上記式２からすれば、この第一乗算ビット列Ｚｍは「Ｙ×｛ｌｏｇ2 （１＋Ｘｆ）＋（Ｘｅ−Ｋ）｝」と等価な値を備える。
【００２６】
この乗算器１の累乗演算動作と同時に、ビット演算器５は指数判定手段４からの演算制御信号Ｙｉ，Ｙｓに応じて固定基数対数ビット列Ｗのビット演算処理を実施し、この演算結果を第二乗算ビット列Ｚｂとして出力する。具体的には、シフタ１４が固定基数対数ビット列Ｗを入力指数ビット列Ｙに応じたビット数だけシフトし、ビット反転器１５がこのシフタ１４の出力をビット反転し、入力指数ビット列Ｙの符号が負である場合にはビット演算選択部１６がビット反転器１５の出力を選択して第二乗算ビット列Ｚｂとして出力し、それ以外の場合にはシフタ１４の出力を選択して第二乗算ビット列Ｚｂとして出力する。更に、指数値選択部６は、入力指数ビット列Ｙが２を基数とする整数累乗の数である場合にはビット演算器５の出力を選択し、それ以外の場合には乗算器１の出力を選択し、これを選択乗算ビット列Ｚとして出力する。
【００２７】
ちなみに、上記ビット演算器５から出力される第二乗算ビット列Ｚｂは、入力指数ビット列Ｙが２を基数とする整数累乗の数である場合には、その整数累乗の数だけ固定基数対数ビット列Ｗをシフトすることで、整数累乗の数と固定基数対数ビット列Ｗとを乗算した場合と等価な演算を実施することになる。また、乗算演算においては下位ビットからの繰り上げなどを待った上で上位のビットの最終的な演算結果が生成されることになるので、その分最終的な演算結果を得るまでに時間がかかってしまうが、シフタ１４におけるシフト処理ではそのような待ち時間が発生することはなく、その分高速に演算結果を得ることができる。
【００２８】
そして、小数項逆変換手段１７は選択乗算ビット列Ｚの小数項Ｚｆｒｃを２を基数とする指数演算テーブルを用いて小数項逆変換値を出力し、整数項逆変換手段１８は選択乗算ビット列Ｚの整数項Ｚｉｎｔに上記指数オフセット値Ｋを加算して整数項逆変換値を出力し、出力ビット列生成手段１９はこの小数項逆変換値および整数項逆変換値に基づいて上記入力基数ビット列Ｘと同じ小数点位置のビット列を生成して累乗演算ビット列として出力する。また、出力ビット列生成手段１９は入力基数ビット列Ｘが負数の場合であって且つ入力指数ビット列Ｕが整数でない場合には、累乗演算ビット列として「０」を出力する。
【００２９】
ちなみに、上記式２は下記式３のように変形することができ、指数値選択部６から出力される「Ｙ×｛ｌｏｇ2 （１＋Ｘｆ）＋（Ｘｅ−Ｋ）｝」をＺ、その小数項をＺｆｒｃ、整数項をＺｉｎｔとすると、更に式４のように表記する事ができる。
【００３０】
ＸY   ＝  ｅｘｐ［Ｙ×｛ｌｏｇ2 （１＋Ｘｆ）＋（Ｘｅ−Ｋ）｝
×ｌｏｇe ２］
＝  ｅｘｐ×ｌｏｇe ２［Ｙ×｛ｌｏｇ2 （１＋Ｘｆ）
＋（Ｘｅ−Ｋ）｝］
＝  ２[Y×{log2(1+Xf)+(Xe-K)}]                             ・・・式３
ＸY   ＝  ２Z 
＝  ２Zint×２Zfrc                                  ・・・式４
【００３１】
そして、この小数項「Ｚｆｒｃ」は０以上、１未満であるので「２Zfrc」は１以上２未満であり、この式３と上記式１とを比較すれば明らかなように、小数項逆変換手段１７から出力される小数項逆変換値は浮動小数点表示形式の仮数項の表現形式と一致する。同様に、整数項逆変換手段１８から出力される整数項逆変換値、つまり選択乗算ビット列Ｚの整数項に上記指数オフセット値Ｋを加算した値は浮動小数点表示形式の指数項の表現形式と一致する。従って、上記式４は例えば下記式５のように書き換えることができる。但し、ＺｆはＺｆｒｃによって参照された仮数項であり、Ｚｅは浮動小数点表現形式におけるオフセット付き指数項である。
【００３２】
ＸY   ＝  （１＋Ｚｆ）×２(Ze-K)                          ・・・式５
【００３３】
次に、累乗演算として多用される演算処理、例えば開平演算、逆数演算、正規化演算を例に詳しく動作を説明する。
【００３４】
開平演算処理の場合、入力指数ビット列Ｙは「１／２（＝２-1）」なので、２を基数とする整数累乗の数となる。また、その整数累乗の数は「−１」である。従って、シフタ１４は入力基数ビット列Ｘの対数値Ｗに対して１回だけ右シフト処理を行い、その出力がビット演算選択部１６から第二乗算ビット列Ｚｂとして出力され、更に指数値選択部６から出力される。従って、乗算器１の演算結果を待つことなく指数値選択部６における選択を実施してこれに基づいて累乗演算結果を出力することができる。
【００３５】
逆数演算処理の場合、入力指数ビット列Ｙは「−１（＝−１×２0 ）」なので、２を基数とする整数累乗の数となる。また、その整数累乗の数は「０」である。従って、シフタ１４は入力基数ビット列Ｘの対数値Ｗをそのまま出力し、ビット反転器１５においてそれを反転させた値がビット演算選択部１６から第二乗算ビット列Ｚｂとして出力され、更に指数値選択部６から出力される。従って、乗算器１の演算結果を待つことなく指数値選択部６における選択を実施してこれに基づいて累乗演算結果を出力することができる。
【００３６】
正規化演算処理の場合、入力指数ビット列Ｙは「−１／２（＝−１×２-1）」なので、２を基数とする整数累乗の数となる。また、その整数累乗の数は「−１」である。従って、シフタ１４は入力基数ビット列Ｘの対数値に対して１回だけ右シフト処理を行い、ビット反転器１５においてそれを反転させた値がビット演算選択部１６から第二乗算ビット列として出力され、更に指数値選択部６から出力される。従って、乗算器１の演算結果を待つことなく指数値選択部６における選択を実施してこれに基づいて累乗演算結果を出力することができる。
【００３７】
なお、この実施の形態１では、入力基数ビット列Ｘや入力指数ビット列Ｙとして主に浮動小数点形式のビット列の場合について説明したが、この累乗演算装置で取り扱うことができるビット列はこれに限られるものではなく、固定小数点形式のビット列についても同様に累乗演算を行うことができる。
【００３８】
以上のように、この実施の形態１によれば、入力基数ビット列Ｘと入力指数ビット列Ｙとからなる入力数値の累乗演算を実施する累乗演算装置において、上記入力基数ビット列Ｘに対して２を底とする対数演算を実施してこの入力基数ビット列Ｘの対数ビット列Ｗを出力する対数演算部２と、当該対数ビット列Ｗと上記入力指数ビット列Ｙとを乗算して第一乗算値Ｚｍを出力する乗算器１と、上記対数ビット列Ｗに対して上記入力指数ビット列Ｙに基づくビットシフト処理を行って第二乗算値Ｚｂを出力するビット演算部５と、上記入力指数ビット列Ｙが２を基数とする整数累乗の数であるか否かを判定し、その判定が正しい場合には第二乗算値選択信号を出力する指数判定部４と、上記第一乗算値Ｚｍおよび第二乗算値Ｚｂが入力され、上記第二乗算値選択信号が入力された場合には第二乗算値Ｚｂを選択乗算値として出力し、それ以外の場合には第一乗算値Ｚｍを選択乗算値Ｚとして出力する乗算値選択部６と、上記選択乗算値Ｚに対して２を基数項とする指数演算を実施してそれを上記入力数値の累乗演算結果として出力する指数演算部７とを備えるので、入力指数ビット列Ｙが２を基数とする整数累乗の数である場合には、ビット演算部５による演算結果を用いて入力数値の累乗演算結果を出力することができる。
【００３９】
従って、例えば、入力指数ビット列Ｙが「１／２」となる開平演算、入力指数ビット列Ｙが「−１」となる逆数演算、入力指数ビット列Ｙが「−１／２」となる正規化演算などの演算処理においては乗算器１を用いずにビット演算部５を用いて累乗演算結果を出力することができるので、このような一般的に多用される累乗演算処理を特別に高速化させることにより、累乗演算速度を実質的に高速化することができる効果がある。
【００４０】
この実施の形態１によれば、対数演算部２が、入力基数ビット列Ｘが基数仮数値Ｘｆと基数指数値Ｘｅとからなる浮動小数点データ形式で入力されるとともに、その基数仮数値Ｘｆと２を底とする対数演算テーブルとを用いてこの基数仮数値Ｘｆの対数値を出力する仮数処理手段８と、上記基数指数値Ｘｅから上記指数オフセット値Ｋを減算して指数減算値を出力する指数処理手段９と、上記基数仮数値Ｘｆの対数値とこの指数減算値とに基づいて上記入力基数ビット列Ｘの固定小数点形式の対数値を生成する固定基数ビット列生成手段１０とを備え、この対数値を上記入力基数ビット列の対数ビット列Ｗとして出力するので、基数仮数値Ｘｆと基数指数値Ｘｅとからなる浮動小数点データ形式の数値を入力基数ビット列Ｘとして入力し、この入力基数ビット列Ｘの累乗を演算することができる効果がある。
【００４１】
この実施の形態１によれば、対数演算部２が、ネイピア数の対数値（ｌｏｇ2 （ｅ））を保持する固定基数ビット列保持手段１１と、入力基数ビット列Ｘがネイピア数であるか否かを判断し、その判定が正しい場合には固定データ選択信号を出力する基数判定手段１２と、固定基数ビット列生成手段１０の出力値および固定基数ビット列保持手段１１の保持値とが入力され、固定データ選択信号が入力された場合には当該保持値を入力基数ビット列Ｘの対数ビット列Ｗとして出力し、それ以外の場合には固定基数ビット列生成手段１０の出力値を入力基数ビット列Ｘの対数ビット列Ｗとして出力する基数出力選択部１３とを備えるので、ネイピア数が入力されれば基数判定手段１２から固定データ選択信号が出力され、基数出力選択部１３から直ちにネイピア値の対数値が出力されることとなり、指数演算における基数項Ｘとして頻繁に用いられるネイピア数の乗算演算において対数演算テーブルの検索時間を削減して更に累乗演算速度を実質的に高速化することができる効果がある。
【００４２】
この実施の形態１によれば、入力指数ビット列Ｙをその小数点位置が乗算器１の小数点位置と一致するようにシフトさせる仮数処理手段３を備えるので、浮動小数点データ形式の数値を入力指数ビット列Ｙとして入力し、この入力指数ビット列Ｙを用いて累乗を演算することができる効果がある。
【００４３】
実施の形態２．
図２はこの発明の実施の形態２による累乗演算装置の構成を示すブロック図である。図において、２０は入力基数ビット列Ｘの小数点位置を乗算器１の小数点位置と一致するようにシフト処理を行う入力基数ビット列用のシフタ、２１は入力基数ビット列Ｘがネイピア数（＝ｅ）である場合には固定データ選択信号を出力するとともに、上記シフタ２０に対して上記シフト処理を行うためのシフト処理指示信号を出力する基数判定手段、２２は選択乗算ビット列Ｚの整数項Ｚｉｎｔに「１」を加算して出力するインクリメンタ、２３はこのインクリメンタ２２の値に基づいて上記シフタ２０とは逆方向へのシフト処理（正の値の場合には左シフト、負の値の場合には右シフト）を実施するインバートシフタである。これ以外の構成は図１と同様であり同一の符号を付して説明を省略する。
【００４４】
次に動作について説明する。
基数判定手段２１は入力基数ビット列Ｘが入力されると、それがネイピア数（＝ｅ）であるか否かを判断するとともに、入力基数ビット列用のシフタ２０に対するシフト処理指示信号を出力する。具体的には、シフトした後の数値が１以上、２未満の値となるようにシフト処理指示信号を出力する。例えば、入力基数ビット列Ｘが「０１０．１０１１」の場合には「＋１」を出力し、「０００．００１１」の場合には「−３」をシフト値として出力する。このためには、「１」が立っている最上位ビット位置が整数項の最下位ビットを起点として整数項側にあれば正のシフト値、小数項側にあれば負のシフト値として検出を行えば良い。そして、このシフト値に基づいて入力基数ビット列用のシフタ２０は入力基数ビット列Ｘのシフト処理を行う。具体的には、シフト値が正の場合には右シフト処理、負の場合には左シフト処理を実施する。
【００４５】
また、インクリメンタ２２は、選択乗算ビット列Ｚの整数項Ｚｉｎｔに「１」を加算して出力し、インバートシフタ２３はこのインクリメンタ２２の値に基づいて上記シフタ２０とは逆方向へのシフト処理を実施するものである。これにより、出力ビット列の小数点位置を元の入力ビット列Ｘと同様の小数点位置に移動させることができ、同様の小数点位置のビット列を出力することができる。なお、上記インクリメンタ２２において「１」を加算するのは、小数項Ｚｆｒｃを用いて２の累乗テーブルを参照する際に省略されてしまう整数項「１」を補うためである。これ以外の動作は実施の形態１と同様であり説明を省略する。
【００４６】
これにより、指数ビット列変換手段などが不要となり、構成の簡略化、高速処理化を図ることができる効果がある。
【００４７】
【発明の効果】
以上のように、この発明によれば、入力基数ビット列と入力指数ビット列とからなる入力数値の累乗演算を実施する累乗演算装置において、上記入力基数ビット列に対して２を底とする対数演算を実施してこの入力基数ビット列の対数ビット列を出力する対数演算部と、当該対数ビット列と上記入力指数ビット列とを乗算して第一乗算値を出力する乗算器と、上記対数ビット列に対して上記入力指数ビット列に基づくビットシフト処理を行って第二乗算値を出力するビット演算部と、上記入力指数ビット列が２を基数とする整数累乗の数であるか否かを判定し、その判定が正しい場合には第二乗算値選択信号を出力する指数判定部と、上記第一乗算値および第二乗算値が入力され、上記第二乗算値選択信号が入力された場合には第二乗算値を選択乗算値として出力し、それ以外の場合には第一乗算値を選択乗算値として出力する乗算値選択部と、上記選択乗算値に対して２を基数項とする指数演算を実施してそれを上記入力数値の累乗演算結果として出力する指数演算部とを備えるので、入力指数ビット列が２を基数とする整数累乗の数である場合には、ビット演算部による演算結果を用いて入力数値の累乗演算結果を出力することができる。
【００４８】
従って、例えば、入力指数ビット列が「１／２」となる開平演算、入力指数ビット列が「−１」となる逆数演算、入力指数ビット列が「−１／２」となる正規化演算などの演算処理においては乗算器を用いずにビット演算部を用いて累乗演算結果を出力することができるので、このような一般的に多用されるこのような累乗演算処理を特別に高速化させることにより、累乗演算速度を実質的に高速化することができる効果がある。
【００４９】
この発明によれば、対数演算部が、入力基数ビット列が基数仮数値と基数指数値とからなる浮動小数点データ形式で入力されるとともに、その基数仮数値を乗算器の小数点位置と一致するように指数オフセット値だけシフトさせるとともに、そのシフトさせた基数仮数値と２を底とする対数演算テーブルとを用いてこの基数仮数値の対数値を出力する仮数処理手段と、上記基数指数値から上記指数オフセット値を減算して指数減算値を出力する指数処理手段と、上記基数仮数値の対数値とこの指数減算値とに基づいて上記入力基数ビット列の固定小数点形式の対数値を生成する固定基数ビット列生成手段とを備え、この対数値を上記入力基数ビット列の対数ビット列として出力するので、基数仮数値と基数指数値とからなる浮動小数点データ形式の数値を入力基数ビット列として入力し、この入力基数ビット列の累乗を演算することができる効果がある。
【００５０】
この発明によれば、対数演算部が、ネイピア数の対数値を保持する固定基数ビット列保持手段と、入力基数ビット列がネイピア数であるか否かを判断し、その判定が正しい場合には固定データ選択信号を出力する基数判定手段と、固定基数ビット列生成手段の出力値および固定基数ビット列保持手段の保持値とが入力され、固定データ選択信号が入力された場合には当該保持値を入力基数ビット列の対数ビット列として出力し、それ以外の場合には固定基数ビット列生成手段の出力値を入力基数ビット列の対数ビット列として出力する基数出力選択部とを備えるので、ネイピア数が入力されれば基数判定手段から固定データ選択信号が出力され、基数出力選択部から直ちにネイピア値の対数値が出力されることとなり、指数演算における基数項として頻繁に用いられるネイピア数の乗算演算において対数演算テーブルの検索時間を削減して更に累乗演算速度を実質的に高速化することができる効果がある。
【００５１】
この発明によれば、入力指数ビット列をその小数点位置が乗算器の小数点位置と一致するようにシフトさせる仮数処理手段を備えるので、浮動小数点データ形式の数値を入力指数ビット列として入力し、この入力指数ビット列を用いて累乗を演算することができる効果がある。
【図面の簡単な説明】
【図１】  この発明の実施の形態１による累乗演算装置の構成を示すブロック図である。
【図２】  この発明の実施の形態２による累乗演算装置の構成を示すブロック図である。
【図３】  従来の累乗演算装置の構成を示すブロック図である。
【符号の説明】
１  乗算器、２  基数ビット列変換部（対数演算部）、３  指数ビット列変換手段（仮数処理手段）、４  指数判定手段（指数判定部）、５  ビット演算器（ビット演算部）、６  指数値選択部（乗算値選択部）、７  逆変換部（指数演算部）、８  基数仮数項変換手段（仮数処理手段）、９  基数指数項変換手段（指数処理手段）、１０  固定基数ビット列生成手段、１１  固定基数ビット列保持手段、１２  基数判定手段、１３  基数出力選択部、１４  シフタ、１５  ビット反転器、１６  ビット演算選択部、１７  小数項逆変換手段、１８  整数項逆変換手段、１９  出力ビット列生成手段、２０  入力基数ビット列用のシフタ（仮数処理手段）、２１  基数判定手段、２２  インクリメンタ、２３  インバートシフタ。
【図１】
0004274633.tif 000003
【図２】
0004274633.tif 000004
【図３】
0004274633.tif 000005