(57)【要約】  【課題】  高速演算可能な、整数演算および浮動小数点演算の両者を行い、データのフォーマット変換を行う演算装置を提供する。  【解決手段】  整数データの演算を行う整数演算ユニット１１Ａと、浮動小数点演算を行うＦＰ演算ユニット３１Ａとを有し、整数レジスタ（ＩＲ）ファイル１２と浮動小数点レジスタ（ＦＲ）ファイル３２との間でデータ転送を行う際、第１特殊数を変換する変換ユニット５０１と整数／浮動小数点データ変換ユニット５０２でＩＲファイル１２から転送されたデータをＦＰ演算ユニット３１Ａで使用可能なフォーマットに変換し、逆に、ＦＰ演算ユニット３１Ａの演算結果をＦＲファイル３２からＩＲファイル１２に転送する際、第２フォーマット変換ユニット５１１と浮動小数点／整数データ変換ユニット５１２で整数演算ユニット１１Ａで使用可能なフォーマットに変換する。【選択図】    図２
2005115410.tif 000002
【特許請求の範囲】
【請求項１】
整数データの演算を行う整数演算手段と、
該整数演算手段に接続された第１データ保持手段と、
浮動小数点データの演算を行う浮動小数点演算手段と、
該浮動小数点演算手段に接続された第２データ保持手段と、
前記第１データ保持手段と前記第２データ保持手段との間に設けられた変換手段と
を具備し、
前記変換手段は、
前記第１データ保持手段から前記第２データ保持手段に整数データが転送されたとき、該転送された整数データを前記浮動小数点演算手段で演算可能な浮動小数点データに変換する整数／浮動小数点フォーマット変換手段と、
前記第２データ保持手段に記憶されている浮動小数点データを前記第１データ保持手段に転送するとき、該転送すべき浮動小数点データを前記整数演算手段で使用可能な整数データに変換する浮動小数点／整数フォーマット変換手段と
を有し、
前記整数演算手段は前記浮動小数点演算手段で演算させるべきデータを前記第１データ保持手段から前記変換手段を介して前記第２データ保持手段に転送し、前記浮動小数点演算手段を動作させ、
前記浮動小数点演算手段は、前記第２データ保持手段に保持されたデータを用いて浮動小数点演算し、演算結果を前記第２データ保持手段に記憶し、
前記整数演算手段は前記浮動小数点演算手段で演算され前記第２データ保持手段に保持されている結果を前記変換手段を介して前記第１データ保持手段に転送させる、
演算装置。
【請求項２】
前記変換手段は、
前記第１データ保持手段から前記第２データ保持手段に第１特殊数が転送されたとき、該転送された特殊数を前記浮動小数点演算手段で処理可能なフォーマットの数に変換する第１フォーマット変換手段と、
前記第２データ保持手段に記憶されている第２特殊数を前記第１データ保持手段に転送するとき、該転送すべき第２特殊数を前記整数演算手段で使用可能なフォーマットの数に変換する第２フォーマット変換手段と
をさらに有する、
請求項１記載の演算装置。
【請求項３】
前記浮動小数点演算手段はパイプライン構造を有し、浮動小数点演算をパイプライン処理する、
請求項１または２記載の演算装置。
【請求項４】
整数データの演算を行う整数演算手段と、
該整数演算手段に接続された第１データ保持手段と、
浮動小数点演算・変換手段と、
該浮動小数点演算・変換手段に接続された第２データ保持手段と、
前記第１データ保持手段と前記第２データ保持手段との間に設けられた外部変換手段と  を具備し、
前記浮動小数点演算・変換手段は、
浮動小数点データの演算を行う浮動小数点演算手段と、
整数データが入力されたとき、該入力された整数データを前記浮動小数点演算手段で演算可能な浮動小数点データに変換する内部整数／浮動小数点データ変換手段と、
前記浮動小数点演算手段で演算した結果の浮動小数点データを整数データに変換する内部浮動小数点／整数データ変換手段と、
前記浮動小数点演算手段の前段に設けられ、第１特殊数が入力されたとき、該入力された第１特殊数を前記浮動小数点演算手段で処理可能なフォーマットの数に変換する第１内部フォーマット変換手段と、
前記浮動小数点演算手段の後段に設けられ、前記浮動小数点演算手段における演算結果が第２特殊数のとき前記整数演算手段で使用可能なフォーマットの数に変換する第２内部フォーマット変換手段と
を有し、
前記外部変換手段は、
前記第１データ保持手段から前記第２データ保持手段に整数データが転送されたとき、該転送された整数データを前記浮動小数点演算手段で演算可能な浮動小数点データに変換する外部整数／浮動小数点フォーマット変換手段と、
前記第２データ保持手段に記憶されている浮動小数点データを前記第１データ保持手段に転送するとき、該転送すべき浮動小数点データを前記整数演算手段で使用可能な整数データに変換する外部浮動小数点／整数フォーマット変換手段と、
前記第１データ保持手段から前記第２データ保持手段に第１特殊数が転送されたとき、該転送された特殊数を前記浮動小数点演算手段で処理可能なフォーマットの数に変換する第１外部フォーマット変換手段と、
前記第２データ保持手段に記憶されている第２特殊数を前記第１データ保持手段に転送するとき、該転送すべき第２特殊数を前記整数演算手段で使用可能なフォーマットの数に変換する第２外部フォーマット変換手段と
を有し、
前記整数演算手段は、
前記外部変換手段を使用するとき、前記浮動小数点演算手段で演算させるべきデータを前記第１データ保持手段から前記外部変換手段を介して前記第２データ保持手段に転送して前記浮動小数点演算手段を動作させ、
前記外部変換手段を使用しないとき、前記浮動小数点演算手段で演算させるべきデータを前記第１データ保持手段から前記外部変換手段を介さず前記第２データ保持手段に転送して前記浮動小数点演算手段を動作させ、
前記浮動小数点演算手段は、
前記外部変換手段が使用されたとき、前記第２データ保持手段に保持されたデータを用いて前記浮動小数点演算手段で浮動小数点演算させ、演算結果を前記第２データ保持手段に記憶させ、
前記外部変換手段が使用されないとき、必要に応じて前記第１内部フォーマット変換手段でフォーマット変換した結果を用いて前記浮動小数点演算手段を動作させ、その結果を必要に応じて前記第２内部フォーマット変換手段でフォーマット変換し、かつ、前記内部整数／浮動小数点データ変換手段を動作させた結果を用いて前記浮動小数点演算手段で演算させ、演算結果を前記第２データ保持手段に記憶させる、
演算装置。
【請求項５】
整数データの演算を行う整数演算手段と、
該整数演算手段に接続された第１データ保持手段と、
浮動小数点演算・変換手段と、
該浮動小数点演算・変換手段に接続された第２データ保持手段と、
前記第１データ保持手段と前記第２データ保持手段との間に設けられた外部変換手段と  を具備し、
前記浮動小数点演算・変換手段は、
浮動小数点データの演算を行う浮動小数点演算手段と、
整数データが入力されたとき、該入力された整数データを前記浮動小数点演算手段で演算可能な浮動小数点データに変換する内部整数／浮動小数点データ変換手段と、
前記浮動小数点演算手段で演算した結果の浮動小数点データを整数データに変換する内部浮動小数点／整数データ変換手段と、
前記浮動小数点演算手段の前段に設けられ、第１特殊数が入力されたとき、該入力された第１特殊数を前記浮動小数点演算手段で処理可能な数のフォーマットの数に変換する第１内部フォーマット変換手段と、
前記浮動小数点演算手段の後段に設けられ、前記浮動小数点演算手段における演算結果が第２特殊数のとき前記整数演算手段で使用可能なフォーマットの数に変換する第２内部フォーマット変換手段と
を有し、
前記外部変換手段は、
前記第１データ保持手段から前記第２データ保持手段に第１特殊数が転送されたとき、該転送された特殊数を前記浮動小数点演算手段で演算可能な数のフォーマットの数に変換する第１外部フォーマット変換手段と、
前記第２データ保持手段に記憶されている第２特殊数を前記第１データ保持手段に転送するとき、該転送すべき第２特殊数を前記整数演算手段で使用可能なフォーマットの数に変換する第２外部フォーマット変換手段と
を有し、
前記整数演算手段は、
前記外部変換手段を使用するとき、前記浮動小数点演算手段で演算させるべきデータを前記第１データ保持手段から前記外部変換手段を介して前記第２データ保持手段に転送して前記浮動小数点演算手段を動作させ、
前記外部変換手段を使用しないとき、前記浮動小数点演算手段で演算させるべきデータを前記第１データ保持手段から前記外部変換手段を介さず前記第２データ保持手段に転送して前記浮動小数点演算手段を動作させ、
前記浮動小数点演算手段は、
前記外部変換手段が使用されたとき、前記第２データ保持手段に保持されたデータを用いて前記浮動小数点演算手段で浮動小数点演算させ、演算結果を前記第２データ保持手段に記憶させ、
前記外部変換手段が使用されないとき、必要に応じて前記第１内部フォーマット変換手段でフォーマット変換した結果を用いて前記浮動小数点演算手段を動作させ、その結果を必要に応じて前記第２内部フォーマット変換手段でフォーマット変換し、かつ、前記内部整数／浮動小数点データ変換手段を動作させた結果を用いて前記浮動小数点演算手段で演算させ、演算結果を前記第２データ保持手段に記憶させる、
演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は演算装置に関する。
特に、本発明は、整数演算処理と浮動小数点演算処理とを行う演算装置に関する。
【背景技術】
【０００２】
半導体集積回路を１チップ化した演算装置が種々の分野、たとえば、画像データ処理、音声データ処理、フィルタ処理などにおける高速演算処理に使用されている。
そのような演算処理は、通常、整数（Integer 、インテジャー）表記のフォーマット形式のデータ（以下、整数データ）で演算を行う。ただし、たとえば、より精度の高い演算が必要な場合に、あるいは、より複雑な演算が必要な場合には、部分的に浮動小数点（Floating Point) 表記のフォーマットのデータ（以下、浮動小数点データ）で演算を行い、その結果を用いて再び整数表記のフォーマットのデータで演算を行う。
【０００３】
そのような用途の演算装置としては、たとえば、特開平９−１９８２４８号公報に開示されている。
そのような演算装置は、整数演算部と、浮動小数点演算部と、整数レジスタファイルと、浮動小数点レジスタファイルとを有し、これらをバスで接続し、浮動小数点演算部で演算を行うために必要なデータを整数レジスタファイルから浮動小数点レジスタファイルに転送し、浮動小数点演算部で演算した結果を浮動小数点レジスタファイルから整数レジスタファイルに転送するようにしている。
整数演算と浮動小数点演算を行う場合、整数演算部で扱う整数データを浮動小数点演算部で処理可能な浮動小数点データに変換し、逆に、浮動小数点演算部で演算処理した浮動小数点データを整数演算部が処理可能な整数データに変換する必要がある。
このような要望を満たす演算装置の基本構成の例を図１に示す。
【０００４】
図１に図解した演算装置１は、整数演算装置１０と浮動小数点演算装置（Floating Point（ＦＰ）演算装置）３０とを有する。
整数演算装置１０は、整数演算ユニット１１と、整数レジスタファイル（Integer Register（ＩＲ）ファイル）１２と、メモリ・ロード／ストアユニット（Ｌ／ＳＵ）１３と、整数演算ユニット・バス１４と、整数演算ユニット・メモリ１５を有する。
ＦＰ演算装置３０は、浮動小数点演算・変換ユニット（ＦＰ演算・変換ユニット）３１と、浮動小数点レジスタファイル（Floating Point  Register（ＦＲ）ファイル）３２とを有する。
ＦＰ演算・変換ユニット３１は、第１フォーマット変換モジュール（ＦＣ１モジュール）３２１と、浮動小数点演算モジュール（ＦＰ演算モジュール）３２２と、第２フォーマット変換モジュール（ＦＣ２モジュール）３２３と、整数／浮動小数点・浮動小数点／整数データ変換モジュール（Ｉ／ＦＰ・ＦＰ／Ｉ変換モジュール）３２４とを有する。
整数演算ユニット１１と、ＦＲファイル３２と、ＦＰ演算・変換ユニット３１とは制御バス２０を介して接続されている。
【０００５】
整数データの演算処理
整数データの演算を行うとき、整数演算ユニット１１は整数演算ユニット・メモリ１５に記憶されているプログラムの内容に従って、メモリ・ロード／ストアユニット（以下、Ｌ／ＳＵ）１３を介して整数演算ユニット・メモリ（以下、メモリ）１５の所定のアドレスに記憶されている演算に使用する整数データを読み出し、整数演算ユニット１１において整数演算を行い、その結果をＬ／ＳＵ１３を介してメモリ１５の所定のアドレスに記憶する。
【０００６】
浮動小数点データの演算処理
浮動小数点データの演算が必要なとき、整数演算ユニット１１は整数演算ユニット・メモリ１５に記憶されているプログラムの内容に従って、Ｌ／ＳＵ１３を介してメモリ１５からデータを読み出し、一旦、整数レジスタファイル（以下、ＩＲファイル）１２に保存し、ＩＲファイル１２から浮動小数点レジスタファイル（以下、ＦＲファイル）３２に転送し、ＦＲファイル３２に転送したデータを用いてＦＰ演算・変換ユニット３１において浮動小数点演算を行わせる。
【０００７】
ＦＲファイル３２へのデータ転送制御、および、ＦＰ演算・変換ユニット３１の動作制御は、整数演算ユニット・メモリ１５に記憶されているプログラムの内容に従って整数演算ユニット１１から制御バス２０を経由して浮動小数点レジスタファイル制御指令ＦＲ−Ｃおよび浮動小数点演算・変換ユニット制御指令ＦＵ−Ｃを出力することにより遂行する。換言すれば、ＦＲファイル３２は浮動小数点レジスタファイル制御指令ＦＲ−Ｃに従って上記転送処理を行い、ＦＰ演算・変換ユニット３１は浮動小数点演算・変換ユニット制御指令ＦＵ−Ｃに従って浮動小数点演算処理を行う。
【０００８】
ＦＰ演算・変換ユニット３１内の処理を述べる。
ＦＰ演算・変換ユニット３１内の第１フォーマット変換モジュール（以下、ＦＣ１モジュール）３２１、浮動小数点演算モジュール（以下、ＦＰ演算モジュール）３２２、第２フォーマット変換モジュール（以下、ＦＣ２モジュール）３２３、整数／浮動小数点・浮動小数点／整数データ変換モジュール（以下、Ｉ／ＦＰ・ＦＰ／Ｉ変換モジュール）３２４は、整数演算ユニット１１からの浮動小数点演算・変換ユニット制御指令ＦＵ−Ｃに従って下記の処理を行う。
【０００９】
ＦＣ１モジュール３２１は、整数演算ユニット１１から転送されたデータが特殊数でありそのままではＦＰ演算モジュール３２２では処理できない場合、ＦＰ演算モジュール３２２で演算可能なファイルの数に変換する。
特殊数については詳細を後述するが、特殊数とは、そのままでは演算できない数、または、演算を行うと無効となる演算になる可能性のある数をいう。特に、整数演算と浮動小数点演算を併用することにより特殊数の扱いが生ずる。
【００１０】
ＦＰ演算モジュール３２２は浮動小数点演算・変換ユニット制御指令ＦＵ−Ｃで指定された演算処理を行う。ＦＣ２モジュール３２３は、ＦＰ演算モジュール３２２の演算結果が、整数演算ユニット１１では扱えない特殊数の場合、整数演算ユニット１１で扱えるファイルの数に変換する。
【００１１】
Ｉ／ＦＰ・ＦＰ／Ｉ変換モジュール３２４は、整数演算ユニット１１から与えられたデータが整数データの場合、ＦＰ演算モジュール３２２で処理可能な浮動小数点データに変換する。またＩ／ＦＰ・ＦＰ／Ｉ変換モジュール３２４はＦＰ演算モジュール３２２で演算した結果である浮動小数点データを整数演算ユニット１１で処理可能な整数データに変換する。
【００１２】
ＦＰ演算・変換ユニット３１の結果はＦＲファイル３２を介してＩＲファイル１２に転送される。
ＦＲファイル３２に記憶されたデータをＩＲファイル１２へ転送するときは、整数演算ユニット１１から制御バス２０を経由してＦＲファイル３２に浮動小数点レジスタファイル制御指令ＦＲ−Ｃを出力することにより遂行する。換言すれば、ＦＲファイル３２は浮動小数点レジスタファイル制御指令ＦＲ−Ｃに従ってＩＲファイル１２への転送処理を行う。
【特許文献１】特開平９−１９８２４８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
ＦＣ１ユニットモジュール３２１における特殊数のフォーマット変換処理、ＦＣ２モジュール３２３における特殊数のフォーマット変換処理は、特殊数が発生するたびに行われる。
また、Ｉ／ＦＰ・ＦＰ／Ｉ変換モジュール３２４における整数データから浮動小数点データへの変換はＦＰ演算モジュール３２２の演算を行うためにＦＲファイル３２からデータを読み出したときそのデータが整数データのとき毎回行う。
同様にＩ／ＦＰ・ＦＰ／Ｉ変換モジュール３２４における浮動小数点データから整数データへの変換は、ＦＰ演算モジュール３２２の演算結果をＦＲファイル３２に記憶するたびに行う。
【００１４】
このように、ＦＰ演算モジュール３２２の演算のたびに、整数データから浮動小数点データへの変換処理を行うので浮動小数点演算処理の高速化が望めない。
加えて、ＦＣ１モジュール３２１、ＦＣ２モジュール３２３のフォーマット変換処理が行われると浮動小数点演算処理が一層遅くなる。
【００１５】
浮動小数点演算処理の高速化を図る方法として、パイプライン処理が提案されているが、ＦＰ演算モジュール３２２の前後にＦＣ１モジュール３２１およびＦＣ２モジュール３２３が配置されていると、ＦＰ演算モジュール３２２をパイプライン処理することが困難であり、あるいは、パイプライン構造の段数に制限が出てくる。このような点からも演算処理の高速化の実現が困難である。
仮にパイプライン処理可能な演算装置を試みと、回路構成が非常に複雑になる。
【００１６】
本発明の目的は、整数演算と浮動小数点演算を併用する演算装置において、演算処理速度を向上させことにある。
また本発明の目的は、上記演算装置の回路構成を簡単にすることにある。
【課題を解決するための手段】
【００１７】
本発明の第１の観点によれば、整数データの演算を行う整数演算手段と、該整数演算手段に接続された第１データ保持手段と、浮動小数点データの演算を行う浮動小数点演算手段と、該浮動小数点演算手段に接続された第２データ保持手段と、前記第１データ保持手段と前記第２データ保持手段との間に設けられた変換手段とを具備し、
前記変換手段は、前記第１データ保持手段から前記第２データ保持手段に整数データが転送されたとき、該転送された整数データを前記浮動小数点演算手段で演算可能な浮動小数点データに変換する整数／浮動小数点フォーマット変換手段と、前記第２データ保持手段に記憶されている浮動小数点データを前記第１データ保持手段に転送するとき、該転送すべき浮動小数点データを前記整数演算手段で使用可能な整数データに変換する浮動小数点／整数フォーマット変換手段とを有し、
前記整数演算手段は前記浮動小数点演算手段で演算させるべきデータを前記第１データ保持手段から前記変換手段を介して前記第２データ保持手段に転送し、前記浮動小数点演算手段を動作させ、
前記浮動小数点演算手段は、前記第２データ保持手段に保持されたデータを用いて浮動小数点演算し、演算結果を前記第２データ保持手段に記憶し、
前記整数演算手段は前記浮動小数点演算手段で演算され前記第２データ保持手段に保持されている結果を前記変換手段を介して前記第１データ保持手段に転送させる、
演算装置が提供される。
【００１８】
本発明の第２の観点によれば、整数データの演算を行う整数演算手段と、該整数演算手段に接続された第１データ保持手段と、浮動小数点演算・変換手段と、該浮動小数点演算・変換手段に接続された第２データ保持手段と、前記第１データ保持手段と前記第２データ保持手段との間に設けられた外部変換手段とを具備し、
前記浮動小数点演算・変換手段は、浮動小数点データの演算を行う浮動小数点演算手段と、整数データが入力されたとき、該入力された整数データを前記浮動小数点演算手段で演算可能な浮動小数点データに変換する内部整数／浮動小数点データ変換手段と、前記浮動小数点演算手段で演算した結果の浮動小数点データを整数データに変換する内部浮動小数点／整数データ変換手段と、前記浮動小数点演算手段の前段に設けられ、第１特殊数が入力されたとき、該入力された第１特殊数を前記浮動小数点演算手段で処理可能な数のフォーマットの数に変換する第１内部フォーマット変換手段と、前記浮動小数点演算手段の後段に設けられ、前記浮動小数点演算手段における演算結果が第２特殊数のとき前記整数演算手段で使用可能なフォーマットの数に変換する第２内部フォーマット変換手段とを有し、
前記外部変換手段は、前記第１データ保持手段から前記第２データ保持手段に整数データが転送されたとき、該転送された整数データを前記浮動小数点演算手段で演算可能な浮動小数点データに変換する外部整数／浮動小数点フォーマット変換手段と、前記第２データ保持手段に記憶されている浮動小数点データを前記第１データ保持手段に転送するとき、該転送すべき浮動小数点データを前記整数演算手段で使用可能な整数データに変換する外部浮動小数点／整数フォーマット変換手段と、前記第１データ保持手段から前記第２データ保持手段に第１特殊数が転送されたとき、該転送された特殊数を前記浮動小数点演算手段で処理可能な数のフォーマットの数に変換する第１外部フォーマット変換手段と、前記第２データ保持手段に記憶されている第２特殊数を前記第１データ保持手段に転送するとき、該転送すべき第２特殊数を前記整数演算手段で使用可能なフォーマットの数に変換する第２外部フォーマット変換手段とを有し、
前記整数演算手段は、前記外部変換手段を使用するとき、前記浮動小数点演算手段で演算させるべきデータを前記第１データ保持手段から前記外部変換手段を介して前記第２データ保持手段に転送して前記浮動小数点演算手段を動作させ、前記外部変換手段を使用しないとき、前記浮動小数点演算手段で演算させるべきデータを前記第１データ保持手段から前記外部変換手段を介さず前記第２データ保持手段に転送して前記浮動小数点演算手段を動作させ、
前記浮動小数点演算手段は、前記外部変換手段が使用されたとき、前記第２データ保持手段に保持されたデータを用いて前記浮動小数点演算手段で浮動小数点演算させ、演算結果を前記第２データ保持手段に記憶させ、前記外部変換手段が使用されないとき、必要に応じて前記第１内部フォーマット変換手段でフォーマット変換した結果を用いて前記浮動小数点演算手段を動作させ、その結果を必要に応じて前記第２内部フォーマット変換手段でフォーマット変換し、かつ、前記内部整数／浮動小数点データ変換手段を動作させた結果を用いて前記浮動小数点演算手段で演算させ、演算結果を前記第２データ保持手段に記憶させる、
演算装置が提供される。
【００１９】
本発明の第３の観点によれば、整数データの演算を行う整数演算手段と、該整数演算手段に接続された第１データ保持手段と、浮動小数点演算・変換手段と、  該浮動小数点演算・変換手段に接続された第２データ保持手段と、前記第１データ保持手段と前記第２データ保持手段との間に設けられた外部変換手段とを具備し、
前記浮動小数点演算・変換手段は、浮動小数点データの演算を行う浮動小数点演算手段と、整数データが入力されたとき、該入力された整数データを前記浮動小数点演算手段で演算可能な浮動小数点データに変換する内部整数／浮動小数点データ変換手段と、前記浮動小数点演算手段で演算した結果の浮動小数点データを整数データに変換する内部浮動小数点／整数データ変換手段と、前記浮動小数点演算手段の前段に設けられ、第１特殊数が入力されたとき、該入力された第１特殊数を前記浮動小数点演算手段で処理可能な数のフォーマットの数に変換する第１内部フォーマット変換手段と、前記浮動小数点演算手段の後段に設けられ、前記浮動小数点演算手段における演算結果が第２特殊数のとき前記整数演算手段で使用可能なフォーマットの数に変換する第２内部フォーマット変換手段とを有し、
前記外部変換手段は、前記第１データ保持手段から前記第２データ保持手段に第１特殊数が転送されたとき、該転送された特殊数を前記浮動小数点演算手段で処理可能な数のフォーマットの数に変換する第１外部フォーマット変換手段と、前記第２データ保持手段に記憶されている第２特殊数を前記第１データ保持手段に転送するとき、該転送すべき第２特殊数を前記整数演算手段で使用可能なフォーマットの数に変換する第２外部フォーマット変換手段とを有し、
前記整数演算手段は、前記外部変換手段を使用するとき、前記浮動小数点演算手段で演算させるべきデータを前記第１データ保持手段から前記外部変換手段を介して前記第２データ保持手段に転送して前記浮動小数点演算手段を動作させ、前記外部変換手段を使用しないとき、前記浮動小数点演算手段で演算させるべきデータを前記第１データ保持手段から前記外部変換手段を介さず前記第２データ保持手段に転送して前記浮動小数点演算手段を動作させ、
前記浮動小数点演算手段は、前記外部変換手段が使用されたとき、前記第２データ保持手段に保持されたデータを用いて前記浮動小数点演算手段で浮動小数点演算させ、演算結果を前記第２データ保持手段に記憶させ、前記外部変換手段が使用されないとき、必要に応じて前記第１内部フォーマット変換手段でフォーマット変換した結果を用いて前記浮動小数点演算手段を動作させ、その結果を必要に応じて前記第２内部フォーマット変換手段でフォーマット変換し、かつ、前記内部整数／浮動小数点データ変換手段を動作させた結果を用いて前記浮動小数点演算手段で演算させ、演算結果を前記第２データ保持手段に記憶させる、
演算装置が提供される。
【発明の効果】
【００２０】
本発明によれば、演算速度が向上する。
また本発明によれば、回路構成が小さくなる。
さらに本発明によれば、電力消費が少なくなる。その結果として、回路からの発熱が少なくなり、冷却対策も容易になる。
【発明を実施するための最良の形態】
【００２１】
第１実施の形態
図２は本発明の第１実施の形態の演算装置の構成図である。
本発明の第１実施の形態の演算装置１Ａは、整数演算装置１０Ａと、浮動小数点演算装置（ＦＰ演算装置）３０Ａと、変換部５０Ａとを有する。
【００２２】
整数演算装置１０Ａは、整数演算ユニット１１Ａと、整数レジスタファイル（ＩＲファイル）１２と、メモリ・ロード／ストアユニット（Ｌ／ＳＵ）１３と、整数演算ユニット・バス１４と、整数演算ユニット・メモリ（メモリ）１５と、データ出力バス１６と、データ入力バス１７とを有する。
【００２３】
整数演算ユニット１１Ａは図１に図解した整数演算ユニット１１に対応しているが、下記に述べる相違がある。
なお、整数演算ユニット１１Ａと整数演算ユニット１１との相違はハードウエア回路の相違ではなく、実際は、整数演算ユニット１１または整数演算ユニット１１Ａで動作するプログラムの内容の相違であるが、本明細書においては、整数演算ユニット１１と整数演算ユニット１１Ａとの相違として述べる。以下同様である。
整数演算ユニット１１または整数演算ユニット１１Ａで動作するプログラムは整数演算ユニット・メモリ１５に記憶されている。
【００２４】
ＩＲファイル１２、Ｌ／ＳＵ１３、整数演算ユニット・バス１４、メモリ１５、データ出力バス１６およびデータ入力バス１７は図１を参照して述べたものと同様である。
【００２５】
ＦＰ演算装置３０Ａは、浮動小数点演算ユニット（ＦＰ演算ユニット）３１Ａと、浮動小数点レジスタファイル（ＦＲファイル）３２とを有する。
ＦＰ演算ユニット３１Ａは浮動小数点演算モジュール（ＦＰ演算モジュール）３１１を有する。ＦＰ演算モジュール３１１は、図１に図解した浮動小数点演算・変換ユニット３１におけるＦＰ演算モジュール３２２に対応している。
ＦＲファイル３２は図１に図解したＦＲファイル３２に対応している。
なお、ＦＰ演算・変換ユニット３１Ａには、図１を参照して図解した第１フォーマット変換モジュール３２１、第２フォーマット変換モジュール３２３および整数／浮動小数点・浮動小数点／整数データ変換ユニット３２４が設けられていないことに留意されたい。  
【００２６】
ＦＰ演算モジュール３１１は、たとえば、下記の演算を浮動小数点データを用いて行う。
（１）単純な２入力１出力の加減乗除
たとえば、ｃ＝ａ＋ｂ、ｃ＝ａ−ｂ、ｃ＝ａ×ｂ、ｃ＝ａ／ｂ
（２）３入力・１出力演算、たとえば、ｄ＝ａ×ｂ＋ｃ、ｄ＝ａ／ｂ−ｃ
（３）指数関数演算
（４）対数演算
（５）平行根演算
ＦＲファイル３２からＦＰ演算モジュール３１１には同時に最大ｎ個、本実施の形態では、上記３入力・１出力演算が可能なように、３個のデータが同時に読み出し可能に構成されている。ＦＰ演算モジュール３１１からＦＲファイル３２へのデータ出力は１個である。
好ましくは、上述した演算処理の高速化のため、パイプライン構造に構成されている。ＦＰ演算モジュール３１１は、演算モジュール部分のみで構成されているから、通常のパイプライン構築技術でパイプライン処理可能な構成に形成できる。
【００２７】
変換部５０Ａは新規に設けられたものであり、第１フォーマット変換ユニット（ＦＣ１ユニット）５０１と、整数／浮動小数点データ変換ユニット（Ｉ／Ｆ変換ユニット）５０２と、第２フォーマット変換ユニット（ＦＣ２ユニット）５１１と、浮動小数点／整数データ変換ユニット（Ｆ／Ｉ変換ユニット）５１２とを有する。変換部５０Ａ内の各ユニットの詳細は後述する。
変換部５０Ａを本発明において外部変換部と呼び、ＦＣ１ユニット５０１、Ｉ／Ｆ変換ユニット５０２、ＦＣ２ユニット５１１、Ｆ／Ｉ変換ユニット５１２をそれぞれ、本発明において、外部ＦＣ１ユニット５０１、外部Ｉ／Ｆ変換ユニット５０２、外部ＦＣ２ユニット５１１、外部Ｆ／Ｉ変換ユニット５１２と呼ぶ。なお、「外部」の意味は、ＦＰ演算装置３０内のＦＣ１モジュール３２１、ＦＣ２モジュール３２３、Ｉ／ＦＰ・ＦＰ／Ｉ変換モジュール３２４（または、後述する浮動小数点演算・変換ユニット３１Ｂ内のＦＣ１モジュール３１３、ＦＣ２モジュール３１５、Ｉ／ＦＰ・ＦＰ／Ｉ変換モジュール３１４）を、ＦＰ演算装置３０（３１Ｂ）の内部に位置するから「内部」と呼び、区別するためである。
【００２８】
整数演算装置１０Ａの整数演算ユニット１１Ａと、変換部５０Ａと、浮動小数点レジスタファイル３２と、ＦＰ演算ユニット３１Ａとは制御バス２０を介して接続されている。
【００２９】
変換部５０Ａの各ユニットの変換処理内容について述べる。
整数／浮動小数点データ変換ユニット５０２
整数／浮動小数点データ変換ユニット（Ｉ／Ｆ変換ユニット）５０２における整数／浮動小数点フォーマットデータ変換処理とは、整数フォーマットのデータ（整数データ）を浮動小数点フォーマットのデータ（浮動小数点データ）に変換する処理をいう。
図３に浮動小数点データのフォーマットを示す。図３（Ａ）は単精度の浮動小数点データのフォーマットを示し、図３（Ｂ）は倍精度の浮動小数点データのフォーマットを示す。浮動小数点データのフォーマットは、基本的に、１ビットの符号部と、指数部（ゲタバキ（バイアス）指数部）と、仮数部とから構成されている。
【００３０】
Ｉ／Ｆ変換ユニット５０２の処理は、図１を参照して述べた整数／浮動小数点・浮動小数点／整数データ変換ユニット（Ｉ／ＦＰ・ＦＰ／Ｉ変換モジュール）３２４のうちの、整数／浮動小数点データ変換処理と実質的に同じである。しかしながら、Ｉ／Ｆ変換ユニット５０２は、ＦＰ演算装置３０内のＦＰ演算モジュール３２２の演算の処理のたびに動作して変換処理を行うことはせず、その動作タイミングはＩ／ＦＰ・ＦＰ／Ｉ変換モジュール３２４とは全く異なる。Ｉ／Ｆ変換ユニット５０２の動作タイミングについては後述する。
【００３１】
浮動小数点／整数データ変換ユニット５１２
浮動小数点／整数データ変換ユニット（Ｆ／Ｉ変換ユニット）５１２における浮動小数点／整数フォーマットデータ変換処理とは、浮動小数点データを整数データに変換する処理をいう。
Ｆ／Ｉ変換ユニット５１２の処理は、図１を参照して述べたＩ／ＦＰ・ＦＰ／Ｉ変換モジュール３２４のうちの、浮動小数点／整数データ変換処理と実質的に同じである。しかしながら、Ｆ／Ｉ変換ユニット５１２は、Ｉ／Ｆ変換ユニット５０２と同様、ＦＰ演算装置３０内のＦＰ演算モジュール３２２の演算の処理のたびに動作して変換処理を行うことはせず、その動作タイミングはＩ／ＦＰ・ＦＰ／Ｉ変換モジュール３２４とは全く異なる。Ｆ／Ｉ変換ユニット５１２の動作タイミングについては後述する。
【００３２】
特殊数
第１フォーマット変換ユニット５０１および第２フォーマット変換ユニット５１１におけるフォーマット変換について述べる前に、特殊数について述べる。
特殊数とは、その数のままでは演算できない、または、その数を用いて演算を行うと無効となる演算になる可能性のある数を言い、下記に例示する。
図４にＩＥＥＥ７５４に規定された単精度の場合の上記特殊数（本発明の第１特殊数）のフォーマットを示す。
（１）ディノーマル数
（２）非数
（２ａ）シグナル型非数
（２ｂ）クワィエット型非数
（３）無限大
（４）ゼロ
【００３３】
ディノーマル数
ディノーマル数とは、非正規化数の１つであり、正規化数の最小値と０の間を補間する数である。
正規化とは、有効数字をできるだけ稼ぐために仮数の１０の位が必ず０でないようにする操作で、たとえば、１０進数表記の数値「９０」を「９０ｘ１０0 」と表現する。しかしながら、この形式で表現可能な最小値は「±９ｘ１０0 」となり、これより小さな数値はアンダーフローとなるが、これより小さな数値、たとえば、「±９ｘ１０-9」は非正規化数と呼ばれる。
ディノーマル数表記のデータを用いた演算を行う場合、演算ユニットの内部では指数部をマイナスの値にして無理やり正規化し、正規化された値として計算する。また、演算の結果がマイナスの値になった場合、非正規化を行うディノーマル数表記のデータとして出力する。
【００３４】
非数
非数とは数値で表現しない事を示すビットパターンで、ＩＥＥＥ規格では、指数が最大値、仮数が０以外を非数としている。非数としては、たとえば、√−１などがある。
非数には、シグナル型非数とクワィエット型非数とがある。
演算により一旦、非数が発生すると、その非数を被演算項として使用するとその結果も非数となる。演算中に非数が発生すると、たとえば、図４に例示したＩＥＥＥ規格のビットパターンに変換する。
【００３５】
無限大
無限大数を表すフォーマットも特殊であるため、非数と同じような変換処理が必要になる。例示としてＩＥＥＥ規格における無限大のビットパターンを図４に示した。
【００３６】
ゼロ
浮動小数点演算においては、±０×±∞、±０÷±∞などは無効な演算とみなされる。また、０で割り算を行った場合の結果も特殊な扱いとなる。
このような０との演算結果は特殊数値としてみなされて、演算結果が無効とされた場合には特殊な処理が要求される。
【００３７】
内部フォーマット
図５に単精度の場合の内部フォーマットにおける特殊数（本発明の第２特殊数）のフォーマットを示す。
図解した内部フォーマットでは、指数部に符号ビットが、また、クワィエット型非数、シグナル型非数、最大値、ゼロをそれぞれ示すフラグビットが、図４に図解したフォーマットに対して、付加されている。
このような指数部の符号ビットが付加されたことにより、ディノーマル数の数値を計算可能なフォーマットで表すことが出来る。
またフラグビットで非数、最大値、ゼロを示すことにより、従来では３２ビットのＩＥＥＥフォーマットをデコード、エンコードしなければならなかった処理を、本実施の形態においては、４ビットのフラグをデコード、エンコードするだけでよくなった。その結果、処理が８倍高速になった。また回路の規模が１／８に小さくなった。
【００３８】
フォーマット変換処理
フォーマット変換処理とは、上述した特殊数（第１特殊数）、すなわち、そのままでは演算できない、または、演算を行うと無効となる演算になる可能性のある数とされている数値に対して、演算前に演算可能な数値に変換することをいう。
また演算途中でそのような特殊数（第２特殊数）が生じたとき、そのような特殊数を表す演算可能な特定のフォーマットに変換する処理をいう。
本実施の形態におけるフォーマット変換処理は、第１フォーマット変換ユニット５０１で行う第１フォーマット変換処理と、第２フォーマット変換ユニット５１１で行う第２フォーマット変化処理とがある。
【００３９】
第１フォーマット変換ユニット５０１
第１フォーマット変換ユニット（ＦＣ１ユニット）５０１で行う第１フォーマット変換処理は、ＦＰ演算ユニット３１Ａ（ＦＰ演算モジュール３１１）における演算の前に行う第１特殊数についての処理であり、下記に例示した処理を行う。
（１）ディノーマル数を指数部がマイナス値になるように無理やり正規化する処理
（２）ＩＥＥＥの最大値フォーマットを内部最大値フォーマットに変換する処理
（３）ＩＥＥＥの非数フォーマットを内部非数フォーマットに変換する処理
ＦＣ１ユニット５０１の処理は、図１を参照して述べたＦＰ演算装置３０内のＦＣ１モジュール３２１における変換処理と実質的に同じである。しかしながら、ＦＣ１ユニット５０１は、ＦＰ演算装置３０内のＦＰ演算モジュール３２２の演算の処理のたびに動作して変換処理を行うことはせず、その動作タイミングはＦＣ１モジュール３２１とは全く異なる。ＦＣ１ユニット５０１の動作タイミングについては後述する。
【００４０】
第２フォーマット変換ユニット５１１
第２フォーマット変換ユニット５１１で行う第２フォーマット変換処理は、ＦＰ演算ユニット３１Ａ（ＦＰ演算モジュール３１１）における演算結果を整数演算ユニット１１Ａに戻す時に行うで第２特殊数についての処理であり、下記に例示した処理を行う。
（１）指数部がマイナス値である値を非正規化し、ディノーマル数数に変換する処理
（２）内部最大値フォーマットをＩＥＥＥの最大フォーマットに変換する処理
（３）内部非数フォーマットをＩＥＥＥの非数フォーマットに変換する処理
ＦＣ２ユニット５１１の処理は、図１を参照して述べたＦＰ演算装置３０内のＦＣ２モジュール３２３における変換処理と実質的に同じである。しかしながら、ＦＣ２ユニット５１１は、ＦＣ１ユニット５０１と同様、ＦＰ演算装置３０内のＦＰ演算モジュール３２２の演算の処理のたびに動作して変換処理を行うことはせず、その動作タイミングはＦＣ２モジュール３２３とは全く異なる。ＦＣ２ユニット５１１の動作タイミングについては後述する。
【００４１】
図１を参照して述べた演算装置１と図２を参照して述べた演算装置１Ａとは下記の構成の相違がある。
【００４２】
（１）整数レジスタファイル１２と浮動小数点レジスタファイル３２との間に、ＦＣ１ユニット５０１、Ｉ／Ｆ変換ユニット５０２、ＦＣ２ユニット５１１およびＩ／Ｆ変換ユニット５０２を有する変換部５０Ａが付加されている。
【００４３】
（２）ＦＰ演算ユニット３１Ａ内はＦＰ演算モジュール３１１のみであり、簡単化されている。すなわち、ＦＰ演算ユニット３１Ａ内では、図１に図解した浮動小数点演算・変換ユニット３１内のＦＣ１モジュール３２１、ＦＣ２モジュール３２３およびＩ／ＦＰ・ＦＰ／Ｉ変換モジュール３２４における変換処理は行わない。なお、ＦＰ演算モジュール３１１は浮動小数点演算モジュール３２２と同等の処理を行うが、本実施の形態においては、パイプライン処理など浮動小数点演算モジュール３２２では達成困難な処理をも行う。
【００４４】
（３）整数演算ユニット・メモリ１５に記憶されたプログラムに従って行う整数演算ユニット１１Ａの処理は、整数演算を行う機能、メモリ・ロード／ストアユニット１３を介して整数演算ユニット・メモリ１５との間でデータの読み出し／書き込み処理を行う機能においては、整数演算ユニット１１と同様であるが、変換部５０Ａを制御する機能の付加、簡単な構成となったＦＰ演算ユニット３１Ａを制御する機能の変更などの点で整数演算ユニット１１とは異なる。すなわち、整数演算ユニット１１Ａは、変換部５０Ａを制御するため、第１フォーマット変換制御指令ＦＣ１−Ｃ、第２フォーマット変換制御指令ＦＣ２−Ｃ、整数／浮動小数点データ変換制御指令Ｉ／ＦＣ−Ｃおよび浮動小数点／整数データ変換制御指令Ｆ／ＩＣ−Ｃを制御バス２０を介して変換部５０Ａに出力する。
なお、以下に述べる整数演算ユニット１１Ａの動作は全て整数演算ユニット・メモリ１５に記憶されたプログラム処理内容に基づくものである。
【００４５】
以下、演算装置１Ａの動作について述べる。
整数データの演算処理
整数データの演算を行うとき、整数演算ユニット１１Ａは、整数演算ユニット・メモリ１５に記憶されているプログラムの内容に従って、メモリ・ロード／ストアユニット（Ｌ／ＳＵ）１３を介して整数演算ユニット・メモリ（メモリ）１５の所定のアドレスに記憶されている演算に使用する整数データを読み出し、整数演算ユニット１１Ａにおいて整数演算を行い、その結果をＬ／ＳＵ１３を介してメモリ１５の所定のアドレスに記憶する。
【００４６】
浮動小数点データの演算処理
浮動小数点データの演算が必要なとき、整数演算ユニット１１ＡはＬ／ＳＵ１３を介してメモリ１５からデータを読み出し、一旦、整数レジスタファイル（ＩＲファイル）１２に保存し、ＩＲファイル１２から保存したデータを変換部５０Ａの第１フォーマット変換ユニット（ＦＣ１ユニット）５０１および整数／浮動小数点データ変換ユニット（Ｉ／Ｆ変換ユニット）５０２に出力し、第１フォーマット変換制御指令ＦＣ１−Ｃおよび第２フォーマット変換制御指令ＦＣ２−Ｃに基づいて、変換処理を行わせる。
【００４７】
上記ＦＣ１ユニット５０１およびＩ／Ｆ変換ユニット５０２は、変換が必要なとき、上述したそれぞれの変換処理が行われる。
変換の要否について述べる。ＩＲファイル１２から出力されたデータが整数データの場合は、第２フォーマット変換制御指令ＦＣ２−Ｃに基づいてＩ／Ｆ変換ユニット５０２は浮動小数点データへの変換処理を行い、浮動小数点データがＩＲファイル１２から出力された場合は変換は不要であり、Ｉ／Ｆ変換ユニット５０２は第２フォーマット変換制御指令ＦＣ２−Ｃに基づいて変換処理を行わない。同様に、ＩＲファイル１２から出力されたデータが特殊数でなく、フォーマット変換が不要な場合はＦＣ１ユニット５０１は第１フォーマット変換制御指令ＦＣ１−Ｃに基づいてフォーマット変換処理をせず、ＩＲファイル１２から出力されたデータが特殊数のときでフォーマット変換が必要な場合はＦＣ１ユニット５０１は第１フォーマット変換制御指令ＦＣ１−Ｃに基づいてフォーマット変換処理を行う。
【００４８】
上述した変換処理が必要に応じて行われたデータが浮動小数点レジスタファイル（ＦＲファイル）３２に転送されて保存される。
ＦＰ演算ユニット３１ＡのＦＰ演算モジュール３１１は、ＦＲファイル３２に転送したデータを用いて浮動小数点演算を行い、その結果をＦＲファイル３２に所定のアドレスに記憶する。
ＦＰ演算モジュール３１１は好ましくは、パイプライン構造をしており、上記浮動小数点演算を高速で行うことができる。
【００４９】
整数演算ユニット１１ＡはＦＰ演算モジュール３１１で演算した結果を取得したいときは、ＦＲファイル３２に浮動小数点レジスタファイル制御指令ＦＲ−Ｃ、第２フォーマット変換ユニット５１１に第２フォーマット変換制御指令ＦＣ２−Ｃ、Ｆ／Ｉ変換ユニット５１２に浮動小数点／整数データ変換制御指令Ｆ／ＩＣ−Ｃを出力する。
浮動小数点レジスタファイル制御指令ＦＲ−Ｃに基づいてＦＲファイル３２から読み出されたデータは、ＦＣ２ユニット５１１およびＦ／Ｉ変換ユニット５１２に出力されて、必要に応じて、それぞれ、第２特殊数からのフォーマット変換および浮動小数点データから整数データへの変換処理が行われる。変換の要否について述べる。ＦＲファイル３２から出力されたデータが第２特殊数のときはＦＣ２ユニット５１１はフォーマット変換を行い、第２特殊数でないときはＦＣ２ユニット５１１はフォーマット変換を行わない。
ＩＲファイル１２は上記ＦＣ２ユニット５１１およびＦ／Ｉ変換ユニット５１２を通過したデータを入力して保持する。
なお、ＦＣ２ユニット５１１およびＦ／Ｉ変換ユニット５１２を通過したデータは、整数演算ユニット１１Ａの指令に応じて、Ｌ／ＳＵ１３を経由して直接、メモリ１５の所定のアドレスに記憶することもできる。
【００５０】
整数演算ユニット１１Ａは上述してＦＰ演算装置３０Ａにおいて得られたデータを用いて上述した整数データの演算処理を行うことができる。
【００５１】
本実施の形態において、変換部５０Ａの動作制御、ＦＲファイル３２の動作制御およびＦＰ演算・変換ユニット３１Ａの動作制御は、整数演算ユニット・メモリ１５に記憶されているプログラムの内容に従って行う整数演算ユニット１１Ａから制御バス２０を経由して出力される各種制御信号、すなわち、第１フォーマット変換制御指令ＦＣ１−Ｃ、第２フォーマット変換制御指令ＦＣ２−Ｃ、整数／浮動小数点データ変換制御指令Ｉ／ＦＣ−Ｃ、浮動小数点／整数データ変換制御指令Ｆ／ＩＣ−Ｃ、浮動小数点レジスタファイル制御指令ＦＲ−Ｃおよび浮動小数点演算・変換ユニット制御指令ＦＵ−Ｃに基づいて行われる。
【００５２】
上述した第１実施の形態の演算装置１Ａは図１を参照して述べた演算装置１の動作を比較すると下記の相違がある。
【００５３】
（１）図１を参照して述べた演算装置１においては、浮動小数点演算・変換ユニット３１において演算を行うたびに、ＦＣ１モジュール３２１、ＦＣ２モジュール３２３、Ｉ／ＦＰ・ＦＰ／Ｉ変換モジュール３２４における変換処理が行われた。しかしながら、本発明の第１実施の形態の演算装置１Ａにおいては、第１特殊数のフォーマット変換および整数データから浮動小数点データへの変換はＩＲファイル１２からＦＲファイル３２に転送するときだけであり、同様に、第２特殊数のフォーマット変換および浮動小数点データから整数データへの変換は、ＦＲファイル３２からＩＲファイル１２に転送するときだけである。すなわち、本実施の形態においては、ＦＰ演算・変換ユニット３１Ａ内のＦＰ演算モジュール３１１で浮動小数点データの演算を行うたびに、各種フォーマット変換を行う必要がない。その結果としては、ＦＰ演算ユニット３１Ａ内の演算が高速になる。
特に、ＦＰ演算モジュール３１１には、図１に図解したＦＣ１モジュール３２１、ＦＣ２モジュール３２３が前後に位置しておらず、パイプライン構成を取りやすい。そこで、好ましくは、ＦＰ演算モジュール３１１をパイプライン構成にして、演算処理速度をさらに高速にすることができる。
また、浮動小数点演算モジュール３１１の処理は、変換部５０Ａおよび浮動小数点レジスタファイル３２によって整数演算装置１０Ａ側と切断されており、第１特殊数などが突然浮動小数点演算モジュール３１１に入り込むことがない。したがって、浮動小数点演算モジュール３１１における演算によりそのような原因で第２特殊数が発生する可能性が低くなるという利点がある。すなわち、浮動小数点演算モジュール３１１はクローズされた条件で演算処理できる。
【００５４】
（２）ＦＰ演算ユニット３１Ａ内にはＦＰ演算モジュール３１１が存在するだけであるから、パイプライン構造を採用したとしても、ＦＰ演算ユニット３１Ａの回路規模が非常に小さくできる。また、ＦＰ演算ユニット３１Ａの電力消費も低減するので、高速演算を行うＦＰ演算モジュール３１１の冷却対策も容易になる。
【００５５】
（３）変換部５０Ａ内のＦＣ１ユニット５０１、Ｉ／Ｆ変換ユニット５０２、ＦＣ２ユニット５１１、Ｆ／Ｉ変換ユニット５１２は、ＩＲファイル１２とＦＲファイル３２との間でデータの転送が行われるときのみ動作するだけであるから、すなわち、図１のＦＣ１モジュール３２１、ＦＣ２モジュール３２３、Ｉ／ＦＰ・ＦＰ／Ｉ変換モジュール３２４のように演算のたびに動作する必要がないから、その点からも電力消費がさらに低減する。
【００５６】
第２実施の形態
図６を参照して本発明の演算装置の第２実施の形態について述べる。
第２実施の形態の演算装置は、既存の浮動小数点演算装置の活用を確保しながら、第１実施の形態と同様の効果を奏することを目的としたものである。
【００５７】
図６に図解した本発明の第２実施の形態の演算装置１Ｂは、整数演算装置１０Ｂと、ＦＰ演算装置３０Ｂと、変換部５０Ｂとを有する。
整数演算装置１０Ｂは、整数演算ユニット１１Ｂと、ＩＲファイル１２と、Ｌ／ＳＵ１３と、整数演算ユニット・バス１４と、整数演算ユニット・メモリ１５と、データ出力バス１６と、データ入力バス１７とを有する。
ＦＰ演算装置３０Ｂは、ＦＰ演算・変換ユニット３１Ｂと、ＦＲファイル３２とを有する。ＦＰ演算・変換ユニット３１Ｂは、浮動小数点演算モジュール３１１と、第１内部フォーマット変換モジュール３１３と、内部・整数／浮動小数点・浮動小数点／整数データ変換モジュール３１４と、第２内部フォーマット変換モジュール３１５とを有する。
変換部５０Ｂは、第１外部フォーマット変換ユニット５０１と、外部・整数／浮動小数点データ変換ユニット５０２と、第２外部フォーマット変換ユニット５１１と、外部・浮動小数点／整数データ変換ユニット５１２と、第１ゲート５０３と、第２ゲート５１３とを有する。
【００５８】
図２に図解した演算装置１Ａと図６に図解した演算装置１Ｂとの構成の相違を述べる。  （１）変換部５０Ｂには、変換部５０Ａに構成の他、第１ゲート５０３と第２ゲート５１３とが付加されている。
（２）ＦＰ演算・変換ユニット３１Ｂは整数演算ユニット・メモリ１５に記憶されたプログラムの内容に従って、浮動小数点演算モジュール３１１の他に、第１内部フォーマット変換モジュール３１３と、内部・整数／浮動小数点・浮動小数点／整数データ変換モジュール３１４と、第２内部フォーマット変換モジュール３１５が付加されている。
（３）整数演算ユニット１１Ｂは、付加された第１ゲート５０３および第２ゲート５１３の制御を行う第１ゲート制御指令Ｇ１−Ｃおよび第２ゲート制御指令Ｇ２−Ｃを出力する制御機能、および、ＦＰ演算・変換ユニット３１Ｂ内の第１内部フォーマット変換モジュール３１３、内部・整数／浮動小数点・浮動小数点／整数データ変換モジュール３１４、第２内部フォーマット変換モジュール３１５の動作を制御する機能が付加されている。
【００５９】
以下、演算装置１Ｂを既存のプログラムで動作させる場合と、新プログラムで動作させる場合の動作について述べる。
なお、既存のプログラムおよび新プログラムは、整数演算ユニット・メモリ１５に記憶されており、用途に応じて、整数演算ユニット１１Ｂがそれらのプログラムを選択して使用するものとする。
【００６０】
既存プログラムの動作時
ＦＰ演算・変換ユニット３１Ｂは、図１を参照して述べたように、既存のプログラムを使用したとき、ＦＰ演算・変換ユニット３１Ｂの内部で第１特殊数のフォーマット変換、第２特殊数のフォーマット変換、および、整数データから浮動小数点データへの変換およびその逆変換を行うことが可能なため、第１内部フォーマット変換モジュール３１３、第２内部フォーマット変換モジュール３１５および内部・整数／浮動小数点・浮動小数点／整数データ変換モジュール３１４を有する。もちろん、既存のプログラムを使用したときも浮動小数点演算モジュール３１１で演算を行う。
この場合、整数演算ユニット１１Ｂは、第１ゲート制御指令Ｇ１−Ｃおよび第２ゲート制御指令Ｇ２−Ｃを第１ゲート５０３および第２ゲート５１３に出力して、演算装置１ＢとＦＲファイル３２との間を、図１と同様、第１ゲート５０３および第２ゲート５１３を介して、データを直接伝送することが可能にする。換言すれば、既存のプログラムを使用するときは、整数演算ユニット１１Ｂは、変換部５０Ｂ内の第１フォーマット変換ユニット５０１、整数／浮動小数点データ変換ユニット５０２、および、第２フォーマット変換ユニット５１１、浮動小数点／整数データ変換ユニット５１２を動作させない。
これにより、図１を参照して述べたと同様の演算処理が遂行される。
この場合、第１内部フォーマット変換モジュール３１３、内部・整数／浮動小数点・浮動小数点／整数データ変換モジュール３１４、第２内部フォーマット変換モジュール３１５は図１を参照して述べたように、浮動小数点演算モジュール３１１の動作のたびに動作する。
ただし、ＦＰ演算・変換ユニット３１Ｂにおいて、浮動小数点演算モジュール３１１の前後に、第１内部フォーマット変換モジュール３１３、第２内部フォーマット変換モジュール３１５が配置されていないから、浮動小数点演算モジュール３１１をパイプライン構成にすることができ、図１に図解した演算装置１より高速な演算が可能になる。
浮動小数点演算モジュール３１１が高速演算可能なことによる効果は第１実施の形態において述べたことと同様である。
【００６１】
新プログラムの動作時
図２を参照して述べた場合に用いる新プログラムを用いた場合、整数演算ユニット１１Ｂは、第１ゲート制御指令Ｇ１−Ｃおよび第２ゲート制御指令Ｇ２−Ｃを出力して第１ゲート５０３および第２ゲート５１３を通過禁止にする。
他方、ＩＲファイル１２からＦＲファイル３２にデータを転送するとき、整数演算ユニット１１Ｂは、変換部５０Ｂ内の、第１フォーマット変換ユニット５０１および整数／浮動小数点データ変換ユニット５０２を第１フォーマット変換制御指令ＦＣ１−Ｃおよび整数／浮動小数点データ変換制御指令Ｉ／ＦＣ−Ｃを用いて動作させる。また、ＦＲファイル３２からＩＲファイル１２にデータを転送するとき、整数演算ユニット１１Ｂは、変換部５０Ｂ内の第２フォーマット変換ユニット５１１および浮動小数点／整数データ変換ユニット５１２を第２フォーマット変換制御指令ＦＣ２−Ｃおよび浮動小数点／整数データ変換制御指令Ｆ／ＩＣ−Ｃを用いて動作させる。この状態は、図２を参照して述べた第１実施の形態と同様である。
さらに、整数演算ユニット１１Ｂは、ＦＰ演算・変換ユニット３１Ｂ内の浮動小数点演算モジュール３１１のみを動作可能にして、第１内部フォーマット変換モジュール３１３、内部・整数／浮動小数点・浮動小数点／整数データ変換モジュール３１４および第２内部フォーマット変換モジュール３１５を動作させない。この状態は、図２を参照して述べた第１実施の形態と同様である。
【００６２】
以上により、図６を参照して述べた演算装置１Ｂが、図１を参照して述べた演算装置１に使用する既存のプログラムでも動作可能でありながら、図２を参照して述べた新プログラムを用いても動作可能になる。
【００６３】
上述したように、既存プログラムおよび新プログラムを併用可能として演算装置１Ｂにおいても、図１を参照して述べた演算装置１に比較して、浮動小数点演算モジュール３１１の演算処理速度が高くなるという利点がある。
【００６４】
第３実施の形態
図７を参照して本発明の演算装置の第３実施の形態について述べる。
第３実施の形態の演算装置は、第２実施の形態における不要部を削除して、構成を簡略化したものである。
図７に図解した浮動小数点演算・変換ユニット３１Ｂは、図６を参照して述べた浮動小数点演算・変換ユニット３１Ｂと同じである。ＦＰ演算・変換ユニット３１Ｂ内に、第１内部フォーマット変換モジュール３１３、内部・整数／浮動小数点・浮動小数点／整数データ変換モジュール３１４および第２内部フォーマット変換モジュール３１５が存在するので、既存のプログラムを使用したとき、これらの処理を行う変換部５０Ｂは不要である。
他方、新プログラムを用いて図２を参照して述べた演算処理を行うとき、そして、演算装置１Ｂから浮動小数点データをＩＲファイル１２からＦＲファイル３２に転送される場合、整数／浮動小数点データ変換ユニット５０２および浮動小数点／整数データ変換ユニット５１２は不要となる。したがって、図７に図解した演算装置１Ｃにおいて、図６に図解した変換部５０Ｂから整数／浮動小数点データ変換ユニット５０２および浮動小数点／整数データ変換ユニット５１２を削除した変換部５０Ｃとして構成した。
整数演算装置１０Ｃにおける整数演算ユニット１１Ｃは、整数／浮動小数点データ変換ユニット５０２および浮動小数点／整数データ変換ユニット５１２に対する整数／浮動小数点データ変換制御指令Ｉ／ＦＣ−Ｃおよび浮動小数点／整数データ変換制御指令Ｆ／ＩＣ−Ｃの処理をしない分、図６に図解した整数演算ユニット１１Ｂより負担が軽い。換言すれば、整数演算ユニット１１Ｃで動作させ、整数演算ユニット・メモリ１５に記憶してある新プログラムをそのように作成しておく。
【００６５】
その他は図６を参照して述べた第２実施の形態の演算装置１Ｂと同様である。
【００６６】
本発明の実施するに際しては、上述した例示的な実施の形態に限定されず、種々の変形態様をとることができる。
たとえば、図７に図解した演算装置１Ｃにおいては、変換部５０Ｃとして、変換部５０Ｂから、整数／浮動小数点データ変換ユニット５０２および浮動小数点／整数データ変換ユニット５１２を削除した構成を示したが、逆に、特殊数の問題から解放される場合、あるいは、特殊数を無視する場合などは、図６に図解した変換部５０Ｂから第１フォーマット変換ユニット５０１および／または第２フォーマット変換ユニット５１１を削除することもできる。もちろん、この場合、整数／浮動小数点データ変換ユニット５０２および浮動小数点／整数データ変換ユニット５１２は設ける。
【図面の簡単な説明】
【００６７】
【図１】図１は従来の演算装置の構成図である。
【図２】図２は本発明の第１実施の形態の演算装置の構成図である。
【図３】図３は浮動小数点データのフォーマットを示す図である。
【図４】図４は本発明の実施の形態に演算装置に適用する第１特殊数のフォーマットを示す図である。
【図５】図５は本発明の実施の形態に演算装置に適用する第２特殊数のフォーマット（内部フォーマットにおける特殊数）を示す図である。
【図６】図６は本発明の第２実施の形態の演算装置の構成図である。
【図７】図７は本発明の第３実施の形態の演算装置の構成図である。
【符号の説明】
【００６８】
１、１Ａ、１Ｂ、１Ｃ・・演算装置
１０、１０Ａ、１０Ｂ、１０Ｃ・・整数演算装置
１１、１１Ａ、１１Ｂ、１１Ｃ・・整数演算ユニット
１２・・整数レジスタファイル（ＩＲファイル）
１３・・メモリ・ロード／ストアユニット（Ｌ／ＳＵ）
１４・・整数演算ユニット・バス
１５・・整数演算ユニット・メモリ１５  そ１５
３０、３０Ａ、３０Ｂ、３０Ｃ・・浮動小数点演算装置（ＦＰ演算装置）
３１・・浮動小数点演算・変換ユニット（ＦＰ演算・変換ユニット）
３２１・・第１フォーマット変換モジュール（ＦＣ１モジュール）
３２２・・浮動小数点演算モジュール（ＦＰ演算モジュール）
３２３・・第２フォーマット変換モジュール（ＦＣ２モジュール）
３２４・・整数／浮動小数点・浮動小数点／整数データ変換ユニット
（Ｉ／ＦＰ・ＦＰ／Ｉ変換モジュール）
３１Ａ・・浮動小数点演算ユニット（ＦＰ演算ユニット）
３１１・・浮動小数点演算モジュール（ＦＰ演算モジュール）
３１Ｂ・・浮動小数点演算・変換ユニット（ＦＰ演算・変換ユニット）
３１３・・第１内部フォーマット変換モジュール
３１４・・内部・整数／浮動小数点・浮動小数点／整数データ変換モジュ                        ール
３１５・・第２内部フォーマット変換モジュール
３２・・浮動小数点レジスタファイル（ＦＲファイル）
５０Ａ・・変換部
５０１・・第１外部フォーマット変換ユニット（ＦＣ１ユニット）
５０２・・外部整数／浮動小数点データ変換ユニット（Ｉ／Ｆ変換ユニット）
５１１・・第２外部フォーマット変換ユニット（ＦＣ２ユニット）
５１２・・外部浮動小数点／整数データ変換ユニット（Ｆ／Ｉ変換ユニット）
５０Ｂ・・変換部
５０３・・第１ゲート
５１３・・第２ゲート
ＦＵ−Ｃ・・浮動小数点演算・変換ユニット制御指令ＦＵ−Ｃ
ＦＲ−Ｃ・・浮動小数点レジスタファイル制御指令ＦＲ−Ｃ
ＣＮＶ−Ｃ・・変換部制御指令ＣＮＶ−Ｃ
ＦＣ１−Ｃ・・第１フォーマット変換制御指令ＦＣ１−Ｃ
ＦＣ２−Ｃ・・第２フォーマット変換制御指令ＦＣ２−Ｃ
Ｉ／ＦＣ−Ｃ・・整数／浮動小数点データ変換制御指令Ｉ／ＦＣ−Ｃ
Ｆ／ＩＣ−Ｃ・・浮動小数点／整数データ変換制御指令Ｆ／ＩＣ−Ｃ
Ｇ１−Ｃ・・第１ゲート制御指令Ｇ１−Ｃ
Ｇ２−Ｃ・・第２ゲート制御指令Ｇ２−Ｃ
【図１】
2005115410.tif 000003
【図２】
2005115410.tif 000004
【図３】
2005115410.tif 000005
【図４】
2005115410.tif 000006
【図５】
2005115410.tif 000007
【図６】
2005115410.tif 000008
【図７】
2005115410.tif 000009