(57)【特許請求の範囲】
【請求項１】
２つのオペランドを保持する機能を有するオペランド保持部と、
固定小数点形式の２つのオペランドを固定小数点加減算する機能と、
浮動小数点形式の２つのオペランドを固定小数点形式とみなして減算する機能と、
浮動小数点形式の２つのオペランドの桁合わせ後の仮数部を絶対値減算する機能と
を有する絶対値加算部と、
浮動小数点形式の２つのオペランドの指数部および符号部の値に応じた比較情報を生成する機能を有する比較部と、
前記比較部によって生成された比較情報に基づいて、前記オペランド保持部によって保持された２つのオペランドのうち一方を選択する機能を有するオペランド選択部と
を備え、
前記オペランド保持部は、
前記絶対値加算部によって前記減算がなされるタイミングで、２つのオペランドを保持し、
前記比較部は、
前記指数部の値がともに所定の範囲内であって、かつ、前記符号部の値が同一であるときは、絶対値加算部による減算結果の符号値を比較情報として生成し、２つのオペランドの指数部の値が所定の範囲内であって、かつ、２つのオペランドの符号部の値が異なるときは、予め定めた規則に従って比較情報を生成し、
前記絶対値加算部は、
浮動小数点形式のオペランドを固定小数点形式の２進整数とすることによって、浮動小数点形式の２つのオペランドを固定小数点形式とみなして減算することを特徴とする演算装置。
【請求項２】
浮動小数点形式の２つのオペランドを固定小数点形式として減算する減算手段と、
前記減算手段によって前記減算がなされるタイミングで、２つのオペランドを保持する保持手段と、
浮動小数点形式の２つのオペランドの指数部および符号部の値に応じた比較情報を生成する比較情報生成手段と、
前記比較情報生成手段によって生成された前記比較情報に基づいて、前記保持手段によって保持された２つのオペランドのうち一方を選択するオペランド選択手段と
を有し、
前記比較情報生成手段は、
前記指数部の値がともに所定の範囲内であって、かつ、前記符号部の値が同一であるときは、前記減算手段による減算結果の符号値を比較情報として生成し、
前記減算手段は、
浮動小数点形式のオペランドを固定小数点形式の２進整数とすることによって、浮動小数点形式の２つのオペランドを固定小数点形式として減算することを特徴とする演算方法。
【請求項３】
演算装置のコンピュータに、
浮動小数点形式の２つのオペランドを固定小数点形式として減算する減算ステップと、
前記減算ステップによって前記減算がなされるタイミングで、２つのオペランドをオペランド保持部に保持する保持ステップと、
浮動小数点形式の２つのオペランドの指数部および符号部の値に応じた比較情報を生成する比較情報生成ステップと、
前記比較情報生成ステップによって生成された前記比較情報に基づいて、前記オペランド保持部によって保持された２つのオペランドのうち一方を選択するオペランド選択ステップと
を実行させるプログラムであって、
前記比較情報生成ステップは、
前記指数部の値がともに所定の範囲内であって、かつ、前記符号部の値が同一であるときは、前記減算ステップによる減算結果の符号値を比較情報として生成し、
前記減算ステップは、
浮動小数点形式のオペランドを固定小数点形式の２進整数とすることによって、浮動小数点形式の２つのオペランドを固定小数点形式として減算することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算装置、演算方法及びプログラムに関する。特に、本発明は、スーパーコンピュータのベクトル計算機における演算装置、演算方法及びプログラムに関する。
【背景技術】
【０００２】
通常、演算装置において、入力オペランドＡおよび入力オペランドＢを入力して浮動小数点検索演算を行う場合、入力オペランドＡおよび入力オペランドＢを一旦保持し、入力オペランドＡと入力オペランドＢとの比較情報（比較結果）に基づいて、保持している入力オペランドＡ、Ｂのうち大きい方（または小さい方）を選択する。図４は、一般的な演算装置の一例である浮動小数点検索演算装置２００のブロック図である。浮動小数点検索演算装置２００は、入力オペランドＡおよび入力オペランドＢに対し、固定小数点加減算、浮動小数点加減算、浮動小数点検索演算の各演算を行う。
【０００３】
オペランド保持部２０１は、浮動小数点検索演算時に、入力オペランドＡおよび入力オペランドＢを保持する。
【０００４】
形式分解部２１０は、固定小数点加減算時には、入力オペランドＡおよび入力オペランドＢの各々について、固定小数点形式の入力オペランドＡおよび入力オペランドＢを出力する。形式分解部２１０は、浮動小数点加減算時または浮動小数点検索演算時には、入力オペランドＡおよび入力オペランドＢの各々について、指数部と仮数部とに分解して出力する。
【０００５】
指数差算出部２２０は、固定小数点加減算時には、固定小数点形式である入力オペランドＡおよび入力オペランドＢを出力する。指数差算出部２２０は、浮動小数点加減算時または浮動小数点検索演算時には、形式分解部２１０によって分解された入力オペランドＡおよび入力オペランドＢの指数部の差を出力する。
【０００６】
桁合わせ部２３０は、固定小数点加減算時には、固定小数点形式である入力オペランドＡおよび入力オペランドＢを出力する。桁合わせ部２３０は、浮動小数点加減算時または浮動小数点検索演算時には、指数差算出部２２０によって出力された入力オペランドＡと入力オペランドＢの指数部の差の値に応じて（差の値分）、入力オペランドＡ、Ｂのうち小さい方の仮数部を右シフトし、右シフト後の仮数部と大きい方の仮数部とを出力する。つまり、桁合わせ部２３０は、浮動小数点加減算時または浮動小数点検索演算時には、桁合わせ後の仮数部を出力する。
【０００７】
絶対値加算部２４０は、固定小数点加減算時には、６４ビットの２進整数としてＡ−Ｂを演算して出力する。絶対値加算部２４０は、浮動小数点加減算時または浮動小数点検索演算時には、桁合わせ後の浮動小数点仮数部について｜Ａ−Ｂ｜を演算して出力する。また、絶対値加算部２４０は、浮動小数点検索演算時において、上記浮動小数点仮数部についてＡ−Ｂの減算結果の符号が正である場合、例えば被減数（Ａ）を大、減数（Ｂ）を小としたときの比較結果を示す比較情報を生成し出力する。
【０００８】
オペランド選択部２４２は、比較情報の生成時、即ち、浮動小数点検索演算時に、絶対値加算部２４０によって生成された比較情報に基づいて、オペランド保持部２０１によって保持された入力オペランドＡ、Ｂのうち大きい方（または小さい方）を選択する。
【０００９】
形式整列部２９０は、固定小数点加減算時には、絶対値加算部２４０からの出力結果（Ａ−Ｂ）を浮動小数点検索演算装置２００の演算結果として出力する。形式整列部２９０は、浮動小数点検索演算時には、オペランド選択部２４２からの出力結果（ＡまたはＢ）を浮動小数点検索演算装置２００の演算結果として出力する。形式整列部２９０は、浮動小数点加減算時には、絶対値加算部２４０からの仮数加算結果を正規化・丸め処理した仮数部と、指数差算出部２２０からの指数算出結果を符号生成・指数計算処理した指数部とを整列して浮動小数点検索演算装置２００の演算結果として出力する。
【００１０】
また、パイプライン制御方式の情報処理装置において、後続の条件付き分岐命令の処理の高速化を目的とし、浮動小数点演算命令の処理結果の比較結果を予測する制御方式が開示されている（引用文献１参照）。  
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開昭６４−４２７３２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、浮動小数点検索演算装置２００では、浮動小数点検索演算時に、浮動小数点検索演算装置２００が入力オペランドＡ、Ｂを取得してから入力オペランドＡ、Ｂをオペランド選択部２４２が取得する迄の間、入力オペランドＡ、Ｂをオペランド保持部２０１において保持しておく必要があるが、近年の高周波設計においては演算器の演算時間は大きくなる傾向にあって、演算時間が大きいほど入力オペランドのオペランド保持部２０１のＨＷ量が大きくなるという問題がある。
【００１３】
なお、浮動小数点検索演算時においては、絶対値加算部２４０は入力オペランドＡ、Ｂを用いずに比較情報を生成するため、絶対値加算部２４０は入力オペランドＡ、Ｂを取得していない（入力オペランドＡ、Ｂは、形式分解部２１０において指数部と仮数部とに分解され、桁合わせ部２３０においてビット加工（右シフト）され絶対値加算部２４０に出力される）。従って、浮動小数点検索演算時には、オペランド選択部２４２にて参照される入力オペランドＡ、Ｂを、形式分解部２１０によって分解される前にオペランド保持部２０１において保持しておく必要がある。
【課題を解決するための手段】
【００１４】
上記問題を解決するために、本発明の一態様である演算装置は、２つのオペランドを保持する機能を有するオペランド保持部と、固定小数点形式の２つのオペランドを固定小数点加減算する機能と、浮動小数点形式の２つのオペランドを固定小数点形式とみなして減算する機能と、浮動小数点形式の２つのオペランドの桁合わせ後の仮数部を絶対値減算する機能とを有する絶対値加算部と、浮動小数点形式の２つのオペランドの指数部および符号部の値に応じた比較情報を生成する機能を有する比較部と、前記比較部によって生成された比較情報に基づいて、前記オペランド保持部によって保持された２つのオペランドのうち一方を選択する機能を有するオペランド選択部とを備え、前記オペランド保持部は、前記絶対値加算部によって前記減算がなされるタイミングで、２つのオペランドを保持し、前記比較部は、前記指数部の値がともに所定の範囲内であって、かつ、前記符号部の値が同一であるときは、絶対値加算部による減算結果の符号値を比較情報として生成し、２つのオペランドの指数部の値が所定の範囲内であって、かつ、２つのオペランドの符号部の値が異なるときは、予め定めた規則に従って比較情報を生成することを特徴とする。例えば、前記絶対値加算部は、浮動小数点形式のオペランドを固定小数点形式の２進整数とすることによって、浮動小数点形式の２つのオペランドを固定小数点形式とみなして減算してもよい。
【００１５】
上記問題を解決するために、本発明の他の態様である演算方法は、浮動小数点形式の２つのオペランドを固定小数点形式として減算する減算手段と、前記減算手段によって前記減算がなされるタイミングで、２つのオペランドを保持する保持手段と、浮動小数点形式の２つのオペランドの指数部および符号部の値に応じた比較情報を生成する比較情報生成手段と、前記比較情報生成手段によって生成された前記比較情報に基づいて、前記保持手段によって保持された２つのオペランドのうち一方を選択するオペランド選択手段とを有し、前記比較情報生成手段は、前記指数部の値がともに所定の範囲内であって、かつ、前記符号部の値が同一であるときは、前記減算手段による減算結果の符号値を比較情報として生成することを特徴とする。
【００１６】
上記問題を解決するために、本発明の他の態様であるプログラムは、演算装置のコンピュータに、浮動小数点形式の２つのオペランドを固定小数点形式として減算する減算ステップと、前記減算ステップによって前記減算がなされるタイミングで、２つのオペランドをオペランド保持部に保持する保持ステップと、浮動小数点形式の２つのオペランドの指数部および符号部の値に応じた比較情報を生成する比較情報生成ステップと、前記比較情報生成ステップによって生成された前記比較情報に基づいて、前記オペランド保持部によって保持された２つのオペランドのうち一方を選択するオペランド選択ステップとを実行させるプログラムであって、前記比較情報生成ステップは、前記指数部の値がともに所定の範囲内であって、かつ、前記符号部の値が同一であるときは、前記減算ステップによる減算結果の符号値を比較情報として生成することを特徴とする。
【発明の効果】
【００１７】
本発明によれば、浮動小数点検索演算時において、入力オペランドＡ、Ｂを保持しておく時間を短縮することができる。従って、入力オペランドＡ、Ｂを保持しておくオペランド保持部のＨＷ量を削減することができる。
【００１８】
つまり、本発明では、浮動小数点減算による比較結果をオペランド選択部において利用する比較情報とするのではなく、オペランドを固定小数点と見なし固定小数点減算による比較結果を比較情報としたため、絶対値加算部は、桁合わせ部から入力オペランドＡ、Ｂを取得する（絶対値加算部は減算処理時に入力オペランドＡ、Ｂを保持する）。従って、浮動小数点検索演算時には、オペランド選択部にて参照される入力オペランドＡ、Ｂを、絶対値加算部が入力オペランドＡ、Ｂを取得するタイミングからオペランド保持部において保持すればよく、入力オペランドＡ、Ｂを保持しておく時間が短縮する。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態による浮動小数点検索演算装置１００のブロック図である。
【図２】固定小数点形式の一例として６４ビット符号付き整数と、浮動小数点形式の一例としてＩＥＥＥ倍精度データ形式とを示す。
【図３】浮動小数点検索演算装置１００の動作の一例を示すフローチャートである。
【図４】従来の浮動小数点検索演算装置２００のブロック図である。
【発明を実施するための形態】
【００２０】
以下、本発明の一実施形態について図面を参照して説明する。図１は、本発明の一実施形態による浮動小数点検索演算装置１００のブロック図である。図２は、固定小数点形式の一例として６４ビット符号付き整数と、浮動小数点形式の一例としてＩＥＥＥ倍精度データ形式とを示す。具体的には、図２（ａ）は固定小数点形式の一例として６４ビット符号付き整数、図２（ｂ）は浮動小数点形式の一例としてＩＥＥＥ倍精度データ形式を示す。図２において、Ｓは符号部、Ｅは指数部、Ｆは仮数部である。
【００２１】
ＩＥＥＥ倍精度データ形式において、０＜Ｅ＜２０４７のときに通常数であるものとする。なお、Ｅ＝２０４７のときはｑＮａＮ（ｑｕｉｅｔ  Ｎｏｔ  ａ  ＮｕｍＢｅｒ：ｑｕｉｅｔ型非数）、ｓＮａＮ（ｓｉｇｎａｌｉｎｇ  Ｎｏｔ  ａ  ＮｕｍＢｅｒ：ｓｉｇｎａｌｉｎｇ型非数）、∞（Ｉｎｆｉｎｉｔｅ：無限大）は特殊数として規定され、Ｅ＝０のときは０（Ｚｅｒｏ（零））、ｄｅＮｏｒｍａｌ（微小数）が特殊数として規定されている（ＩＥＥＥ７５４規格）。
【００２２】
浮動小数点検索演算装置１００は、図１に示すように、オペランド保持部１０１、形式分解部１１０、指数差算出部１２０、桁合わせ部１３０、絶対値加算部１４０、比較部１５０、オペランド選択部１５２、形式整列部１９０を含んで構成される。
【００２３】
オペランド保持部１０１は、浮動小数点検索演算時に、入力オペランドＡおよび入力オペランドＢを保持する。具体的には、オペランド保持部１０１は、浮動小数点検索演算時に、桁合わせ部１３０から絶対値加算部１４０へ出力される入力オペランドＡおよび入力オペランドＢを保持する。換言すれば、オペランド保持部１０１は、絶対値加算部１４０によって減算がなされるタイミングで、入力オペランドＡおよび入力オペランドＢを保持し始める。
【００２４】
形式分解部１１０は、固定小数点加減算時には、入力オペランドＡおよび入力オペランドＢの各々について、固定小数点形式の入力オペランドＡおよび入力オペランドＢを指数差算出部１２０に出力する。形式分解部１１０は、浮動小数点検索演算時には、入力オペランドＡおよび入力オペランドＢの各々について、浮動小数点形式の入力オペランドＡおよび入力オペランドＢ、並びに、固定小数点形式とみなした入力オペランドＡおよび入力オペランドＢを指数差算出部１２０に出力する。形式分解部１１０は、浮動小数点加減算時には、入力オペランドＡおよび入力オペランドＢの各々について、指数部と仮数部とに分解して指数差算出部１２０に出力する。  
【００２５】
指数差算出部１２０は、固定小数点加減算時には、入力オペランドＡおよび入力オペランドＢの各々について、固定小数点形式の入力オペランドＡおよび入力オペランドＢを桁合わせ部１３０に出力する。指数差算出部１２０は、浮動小数点検索演算時には、入力オペランドＡおよび入力オペランドＢの各々について、浮動小数点形式の入力オペランドＡおよび入力オペランドＢを比較部１５０に出力し、固定小数点形式とみなされた入力オペランドＡおよび入力オペランドＢを桁合わせ部１３０に出力する。指数差算出部１２０は、浮動小数点加減算時には、形式分解部１１０によって分解された入力オペランドＡおよび入力オペランドＢの指数部の差を桁合わせ部１３０に出力する。
【００２６】
桁合わせ部１３０は、固定小数点加減算時には、入力オペランドＡおよび入力オペランドＢの各々について、固定小数点形式の入力オペランドＡおよび入力オペランドＢを絶対値加算部１４０に出力する。桁合わせ部１３０は、浮動小数点検索演算時には、入力オペランドＡおよび入力オペランドＢの各々について、固定小数点形式とみなされた入力オペランドＡおよび入力オペランドＢを絶対値加算部１４０に出力する。また、桁合わせ部１３０は、浮動小数点検索演算時には、固定小数点形式とみなされた入力オペランドＡおよび入力オペランドＢをオペランド保持部１０１に出力する。
【００２７】
なお、浮動小数点検索演算時に、指数差算出部１２０が浮動小数点形式の入力オペランドＡおよび入力オペランドＢを桁合わせ部１３０に出力し、桁合わせ部１３０は、浮動小数点形式の入力オペランドＡおよび入力オペランドＢをオペランド保持部１０１に出力するようにしてもよい。
【００２８】
桁合わせ部１３０は、浮動小数点加減算時には、指数差算出部１２０によって出力された入力オペランドＡと入力オペランドＢの指数部の差の値に応じて（差の値分）、入力オペランドＡ、Ｂのうち小さい方の仮数部を右シフトし、右シフト後の仮数部と大きい方の仮数部とを絶対値加算部１４０に出力する。つまり、桁合わせ部１３０は、浮動小数点加減算時には、桁合わせ後の仮数部を出力する。
【００２９】
絶対値加算部１４０は、固定小数点加減算時には、６４ビットの２進整数としてＡ−Ｂを演算して出力する。絶対値加算部１４０は、浮動小数点検索演算時には、固定小数点形式として、６４ビットの２進整数としてＡ−Ｂを演算し、減算結果（Ａ−Ｂ）の符号値（最上位ビット）を比較部１５０に出力する。絶対値加算部１４０は、浮動小数点加減算時には、桁合わせ後の浮動小数点仮数部について｜Ａ−Ｂ｜を演算して出力する。
【００３０】
比較部１５０は、浮動小数点検索演算時に、浮動小数点形式の入力オペランドＡおよび入力オペランドＢの指数部および符号部の値に応じた比較情報（比較結果）を生成する。即ち、比較部１５０は、減算処理を行わず入力オペランドＡ、Ｂの符号および指数値に基づいて、比較情報（比較結果）を生成する。
【００３１】
具体的には、比較部１５０は、入力オペランドＡおよび入力オペランドＢの指数部の値が所定の範囲内（例えば、０＜Ｅ＜２０４７）であって、かつ、入力オペランドＡおよび入力オペランドＢの符号部の値が同一であるときは、絶対値加算部１４０が入力オペランドＡおよび入力オペランドＢを固定小数点形式として減算した減算結果の符号値を比較情報として生成する。即ち、比較部１５０は、入力オペランドＡおよび入力オペランドＢが通常数かつ同符号であるときは、絶対値加算部１４０から取得した減算結果（Ａ−Ｂ）の符号値を比較情報として生成する。
【００３２】
また、比較部１５０は、入力オペランドＡおよび入力オペランドＢの指数部の値が所定の範囲内（例えば、０＜Ｅ＜２０４７）であって、かつ、入力オペランドＡおよび入力オペランドＢの符号部の値が異なるときは、予め定めた規則に従って比較情報を生成する。即ち、比較部１５０は、入力オペランドＡおよび入力オペランドＢが通常数かつ異符号であるときは、予め定めた規則に従って比較情報を生成する。例えば、比較部１５０は、Ａ≧Ｂであるときに値が０、Ａ＜Ｂであるときに値が１である比較情報を生成する。つまり、比較部１５０は、入力オペランドＡに着目し、入力オペランドＡの符号値が０（即ち、入力オペランドＡの値が正）であるときは０、入力オペランドＡの符号値が１（即ち、入力オペランドＡの値が負）であるときは１、とする比較情報を生成する。なお、比較部１５０は、入力オペランドＡではなく入力オペランドＢに着目し、入力オペランドＢの符号値が０（Ａ＜Ｂ）であるときは０、入力オペランドＢの符号値が１であるときは（Ａ≧Ｂ）であるときは１、とする比較情報を生成してもよい。
【００３３】
また、比較部１５０は、入力オペランドＡではなく入力オペランドＢの指数部の値が所定の範囲内（例えば、０＜Ｅ＜２０４７）でないとき、即ち、入力オペランドＡおよび入力オペランドＢが特殊数のときは、「ＩＥＥＥ７５４規格で定められる比較結果」またはこのときの符号値に従って、例えば、「Ａ≧Ｂのときは０、Ａ＜Ｂのときは１」とする比較情報を生成し出力する。
【００３４】
なお、上記「ＩＥＥＥ７５４規格で定められる比較結果」とは、例えば、同符号の∞同士の比較は一致（比較結果は０）、同符号の０同士の比較は一致（比較結果は０）、ｓＮａＮおよびｑＮａＮとの比較は不能（比較結果は無効演算例外）とするものである。
【００３５】
オペランド選択部１５２は、比較情報の生成時、即ち、浮動小数点検索演算時に、比較部１５０によって生成された比較情報に基づいて、オペランド保持部１０１によって保持された入力オペランドＡ、Ｂのうち大きい方（または小さい方）を選択し出力する。
【００３６】
形式整列部１９０は、固定小数点加減算時には、絶対値加算部１４０からの出力結果（Ａ−Ｂ）を浮動小数点検索演算装置１００の演算結果として出力する。形式整列１９０は、浮動小数点検索演算時には、オペランド選択部１５２からの出力結果（入力オペランドＡまたは入力オペランドＢ）を浮動小数点検索演算装置１００の演算結果として出力する。形式整列部１９０は、浮動小数点加減算時には、絶対値加算部１４０からの仮数加算結果を正規化・丸め処理した仮数部と、指数差算出部１２０からの指数算出結果を符号生成・指数計算処理した指数部とを整列して浮動小数点検索演算装置１００の演算結果として出力する。  
【００３７】
以上の様に、浮動小数点検索演算装置１００は、浮動小数点検索演算時には、減算処理をすることなく、入力オペランドＡおよび入力オペランドＢの指数部等の値に基づいて、入力オペランドＡと入力オペランドＢとを浮動小数点比較し、入力オペランドＡ、Ｂのうち大きい方（または小さい方）を選択する。なお、浮動小数点検索演算時において、入力オペランドＡおよび入力オペランドＢが通常数かつ同符号であるときに、浮動小数点形式のＩＥＥＥ倍精度データ形式を固定小数点形式の６４ビット符号付き整数として減算した減算結果（符号値である比較結果）は、符号位置が同一、かつ、以降のビットの指数部と仮数部が２進整数の連結であって、値の重みは指数が大きいため、浮動小数点減算の結果（符号値である比較結果）と同一となる。  
【００３８】
以下、図３に示すフローチャートを用いて浮動小数点検索演算装置１００の浮動小数点検索演算時の動作を説明する。なお、図３に示すフローチャートは、形式分解部１１０が外部から入力オペランドＡおよび入力オペランドＢを取得することにより開始する。
【００３９】
図３において、入力オペランドＡおよび入力オペランドＢを取得した形式分解部１１０は、入力オペランドＡおよび入力オペランドＢを指数差算出１２０に出力する（ステップＳ１０）。
【００４０】
指数差算出１２０は、形式分解部１１０から入力オペランドＡおよび入力オペランドＢを取得し、桁合わせ部１３０および比較部１５０に出力する（ステップＳ２０）。
【００４１】
桁合わせ部１３０は、指数差算出１２０から入力オペランドＡおよび入力オペランドＢを取得し、絶対値加算部１４０およびオペランド保持部１０１に出力する（ステップＳ３０）。
【００４２】
オペランド保持部１０１は、桁合わせ部１３０から入力オペランドＡおよび入力オペランドＢを取得し、オペランド選択部１５２に出力する迄（本ステップＳ４０からステップＳ７０間）の当該入力オペランドＡおよび入力オペランドＢを保持する（ステップ４０）。
【００４３】
絶対値加算部１４０は、桁合わせ部１３０から固定小数点形式とみなされた入力オペランドＡおよび入力オペランドＢを取得し、固定小数点減算（Ａ−Ｂ）し、減算結果の符号値を比較部１５０に出力する（ステップＳ５０）。具体的には、絶対値加算部１４０は、６４ビットの２進整数としてＡ−Ｂを演算し、減算結果（Ａ−Ｂ）の符号値（最上位ビット）を比較部１５０に出力する。
【００４４】
比較部１５０は、指数差算出１２０から入力オペランドＡおよび入力オペランドＢを取得し、絶対値加算部１４０から減算結果（Ａ−Ｂ）の符号値を取得する。次いで、比較部１５０は、入力オペランドＡおよび入力オペランドＢの指数部（Ｅ）および符号部（Ｓ）の値に応じた比較情報を生成する（ステップＳ６０）。比較部１５０は、生成した比較情報をオペランド選択部１５２に出力する。
【００４５】
具体的には、比較部１５０は、入力オペランドＡおよび入力オペランドＢが通常数かつ同符号であるときは、絶対値加算部１４０から取得した減算結果（Ａ−Ｂ）の符号値を比較情報として生成する。即ち、比較部１５０は、減算結果（Ａ−Ｂ）の符号値が０（正の値、即ちＡ≧Ｂ）であれば、値が０である比較情報を生成し、減算結果（Ａ−Ｂ）の符号値が１（負の値、即ちＡ＜Ｂ）であれば、値が１である比較情報を生成する。
【００４６】
また、比較部１５０は、入力オペランドＡおよび入力オペランドＢが通常数かつ異符号であるときは、入力オペランドＡの符号値を比較情報として生成する（ステップＳ６０）。即ち、比較部１５０は、入力オペランドＡの値が正であって入力オペランドＢの値が負であるときは（入力オペランドＡの符号値は０であって入力オペランドＢの符号値は１であるときは）、入力オペランドＡ、Ｂのうち値が大きい入力オペランドＡの符号値０を値とする比較情報を生成し、入力オペランドＡの値が負であって入力オペランドＢの値が正であるときは（入力オペランドＡの符号値は１であって入力オペランドＢの符号値は０であるときは）、入力オペランドＡ、Ｂのうち値が小さい入力オペランドＡの符号値１を値とする比較情報を生成する。つまり、比較部１５０は、Ａ≧Ｂであるときに値が０、Ａ＜Ｂであるときに値が１である比較情報を生成する。
【００４７】
また、比較部１５０は、入力オペランドＡおよび入力オペランドＢが特殊数のとき、ＩＥＥＥ７５４規格で定められる比較結果の符号値を比較情報として生成する（ステップＳ６０）。例えば、比較部１５０は、「ＩＥＥＥ７５４規格で定められる比較結果」として  
減算する組み合わせで無効演算例外を発する場合は”０”を、ｑＮＡＮと通常数との組み合わせの場合は”０”を、∞同士、０同士で一致と見なす場合は”０”を、∞と０の組み合わせでは正しい符号を持った∞の符号を、比較情報として生成する。  
【００４８】
オペランド選択部１５２は、比較部１５０から比較情報を取得し、比較情報に基づいて、オペランド保持部１０１によって保持された入力オペランドＡ、Ｂのうち大きい方のオペランドを選択する（ステップＳ７０）。具体的には、オペランド選択部１５２は、比較情報が０であるときは入力オペランドＡを選択し、比較情報が１であるときは入力オペランドＢを選択する。オペランド選択部１５２は、選択した入力オペランドＡまたは入力オペランドＢを形式整列部１９０に出力する。
【００４９】
形式整列部１９０は、オペランド選択部１５２からの出力結果（入力オペランドＡまたは入力オペランドＢ）を浮動小数点検索演算装置１００の演算結果として出力する（ステップＳ８０）。そして、本フローチャートは終了する。  
【００５０】
なお、ステップＳ７０において、オペランド選択部１５２は、比較情報に基づいて、オペランド保持部１０１によって保持された入力オペランドＡ、Ｂのうち大きい方ではなく小さい方のオペランドを選択してもよい。
【００５１】
なお、浮動小数点加減算時には、浮動小数点検索演算装置１００は、図１において説明した様に、形式分解部１１０、指数差算出部１２０、桁合わせ部１３０、絶対値加算部１４０、正規化・丸め処理、形式整列部１９０を経て演算結果が算出されるが、フローチャートによる説明は省略する。また、固定小数点加減算時には、浮動小数点検索演算装置１００は、図１において説明した様に、形式分解部１１０、指数差算出部１２０、桁合わせ部１３０、絶対値加算部１４０、形式整列部１９０を経て演算結果が算出されるが、フローチャートによる説明は省略する。
【００５２】
以上、本実施形態によれば、浮動小数点検索演算時において、入力オペランドＡ、Ｂを保持しておく時間を短縮することができる。従って、入力オペランドＡ、Ｂを保持しておくオペランド保持部のＨＷ量を削減することができる。つまり、本実施形態によれば、浮動小数点減算による比較結果をオペランド選択部において利用する比較情報とするのではなく、オペランドを固定小数点と見なし固定小数点減算による比較結果を比較情報としたため、絶対値加算部１４０は、桁合わせ部１３０から入力オペランドＡ、Ｂを取得する（絶対値加算部１４０は減算処理時に入力オペランドＡ、Ｂを保持する）。従って、浮動小数点検索演算時には、オペランド選択部１５２にて参照される入力オペランドＡ、Ｂを、絶対値加算部１４０が入力オペランドＡ、Ｂを取得するタイミングからオペランド保持部１０１において保持すればよく、入力オペランドＡ、Ｂを保持しておく時間が短縮する。
【００５３】
なお、本発明の一実施形態による浮動小数点検索演算装置１００の各処理を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、本発明の一実施形態による浮動小数点検索演算装置１００の各処理に係る上述した種々の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【００５４】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００５５】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００５６】
１００  浮動小数点検索演算装置
１０１  オペランド保持部  
１１０  形式分解部
１２０  指数差算出部
１３０  桁合わせ部
１４０  絶対値加算部
１５０  比較部
１５２  オペランド選択部
１９０  形式整列部
【図１】
0005610508.tif 000002
【図２】
0005610508.tif 000003
【図３】
0005610508.tif 000004
【図４】
0005610508.tif 000005