(57)【特許請求の範囲】
【請求項１】
演算対象及び演算結果を保持する第１のレジスタファイル手段と、前記第１のレジスタファイル手段に保持される演算対象及び演算結果のデータ形式とは異なるデータ形式の演算対象及び演算結果を保持する第２のレジスタファイル手段と、該第１のレジスタファイル手段に保持された演算対象に対して所定のデータ形式の演算を行い、その演算結果を前記第１のレジスタファイル手段に供給する第１の演算手段と、該第２のレジスタファイル手段に保持された演算対象に対して該第１の演算手段とは異なるデータ形式の演算を行い、その演算結果を前記第２のレジスタファイル手段に供給する第２の演算手段とを有する演算装置であって、
前記第２のレジスタファイル手段に保持された演算対象を、前記第１のレジスタファイル手段を経由せずに前記第１の演算手段の演算対象として供給することを特徴とする演算装置。
【請求項２】
演算対象及び演算結果を保持する第１のレジスタファイル手段と、前記第１のレジスタファイル手段に保持される演算対象及び演算結果のデータ形式とは異なるデータ形式の演算対象及び演算結果を保持する第２のレジスタファイル手段と、該第１のレジスタファイル手段に保持された演算対象に対して所定のデータ形式の演算を行い、その演算結果を前記第１のレジスタファイル手段に供給する第１の演算手段と、該第２のレジスタファイル手段に保持された演算対象に対して該第１の演算手段とは異なるデータ形式の演算を行い、その演算結果を前記第２のレジスタファイル手段に供給する第２の演算手段とを有する演算装置の演算制御方法であって、
前記第２のレジスタファイル手段に保持された演算対象を、前記第１のレジスタファイル手段を経由せずに前記第１の演算手段の演算対象として供給することを特徴とする演算制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は演算装置及び演算制御方法に係り、特に、整数演算器あるいは固定小数点演算器および浮動小数点演算器あるいはグラフィックス演算器などの演算器が並列に内蔵された演算装置及び演算制御方法に関する。
従来、整数あるいは固定小数点演算器の他に浮動小数点演算器あるいはグラフィックス演算器、および、汎用レジスタの他に浮動小数点レジスタやグラフィックスレジスタを有するプロセッサでは、整数演算器あるいは固定小数点演算器は汎用レジスタをソースレジスタ及びディスティネーションレジスタとして固定使用し、また、浮動小数点演算器あるいはグラフィックス演算器は浮動小数点レジスタあるいはグラフィックスレジスタをソースレジスタおよびディスティネーションレジスタとして固定使用していた。
【０００２】
このため、大小比較など浮動小数点演算の結果を用いて整数データを出力結果とするような命令や整数演算の結果である汎用レジスタの値を浮動小数点演算のソースとして用いたりする命令など、システムの高スループット化に寄与する柔軟で高効率な命令セットは実現できなかった。
【０００３】
【従来の技術】
図１に従来の一例のブロック構成図を示す。
プロセッサ１は、２次キャッシュ２、命令キャッシュ３、プリデコードユニット４、インストラクションバッファ５、ディスパッチユニット６、ロードストアユニット７、汎用レジスタ８、整数あるいは固定小数点演算部９、浮動小数点レジスタ１０、浮動小数点演算部１１、データ入出力部１２から構成される。データはローカルインタコネクト１３から供給される。ローカルインタコネクト１３から供給されたインストラクションは、２次キャッシュ２、命令キャッシュ３、プリデコードユニット４、インストラクションバッファ５を介してディスパッチユニット６に供給され、整数演算部９、浮動小数点演算部１１にインストラクションを与える。データは２次キャッシュ２、命令キャッシュ３、ロードストアユニット７を介して汎用レジスタ８、浮動小数点レジスタ１０に供給され、保持される。  整数演算部９で整数演算しようとするデータ及び整数演算部９での整数演算結果は汎用レジスタ８に保持される。また、浮動小数点演算部１１で浮動小数点演算しようとするデータ及び浮動小数点演算部１１での浮動小数点演算結果は、浮動小数点レジスタ１０に保持される。
【０００４】
また、インストラクションにより整数演算部９での演算結果を浮動小数点演算部１１で演算する場合には、汎用レジスタ８に保持されたデータをロードストアユニット７を介して浮動小数点レジスタ１０にロードした後、浮動小数点演算器１１で演算を行っていた。
さらに、インストラクションにより浮動小数点演算部１１での演算結果を整数演算部９で演算する場合には、浮動小数点レジスタ８に保持されたデータをロードレジスタ７を介して汎用レジスタ８にロードした後、整数演算器９で演算を行っていた。
【０００５】
すなわち、整数演算部９と浮動小数点演算部１１とでデータをやり取りする場合には、汎用レジスタ８及び浮動小数点レジスタ１０を必ず通過させる必要があった。なお、上記整数演算部９は固定小数点演算装置であってもよい。
【０００６】
【発明が解決しようとする課題】
しかるに、従来の技術では、整数あるいは固定小数点演算器の使用できるレジスタは汎用レジスタ、浮動小数点演算器あるいはグラフィックス演算器の使用できるレジスタはそれぞれ浮動小数点レジスタあるいはグラフィックスレジスタと固定されていたので、例えば、浮動小数点演算器の結果を整数演算器あるいは固定小数点演算器で使用したい場合は、ディスティネーションとして指定した浮動小数点レジスタの値をメモリにストアしてからソースとして指定した汎用レジスタにロードするか、メモリレイテンシがシステムの高スループット化の障害となっていた。
【０００７】
本発明は上記の点に鑑みてなされたもので、複数の演算器間でのデータのやり取りを効率よく行える演算装置及び演算制御方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
本発明は、演算対象及び演算結果を保持する第１のレジスタファイル手段と、第１のレジスタファイル手段に保持される演算対象及び演算結果のデータ形式とは異なるデータ形式の演算対象及び演算結果を保持する第２のレジスタファイル手段と、第１のレジスタファイル手段に保持された演算対象に対して所定のデータ形式の演算を行い、その演算結果を第１のレジスタファイル手段に供給する第１の演算手段と、第２のレジスタファイル手段に保持された演算対象に対して第１の演算手段とは異なるデータ形式の演算を行い、その演算結果を第２のレジスタファイル手段に供給する第２の演算手段とを有する演算装置であって、第２のレジスタファイル手段に保持された演算対象を、第１のレジスタファイル手段を経由せずに第１の演算手段の演算対象として供給することを特徴とする。
【００１１】
本発明によれば、浮動小数点演算器やグラフィック演算器での演算結果が整数、あるいは固定小数点になり、次に整数演算あるいは固定小数点演算を行えばよいときなどに、浮動少数点演算器やグラフィック演算器での演算結果を整数あるいは固定小数点演算器やグラフィック演算器のレジスタに供給して、整数あるいは固定小数点演算を行うことができるため、浮動少数点演算器やグラフィック演算器のレジスタと整数あるいは固定小数点演算器のレジスタとの間でデータをやり取りする必要がなく、演算処理の高スループット化が期待できる。
【００１２】
【発明の実施の形態】
図２、図３は本発明の第１実施例のブロック構成図を示す。
本実施例の演算装置１００は、浮動小数点演算部１０１、及び、整数演算部１０２、制御部１０３を含む。演算装置１００は、第１〜第３演算ステージＳＴ１〜ＳＴ３の演算ステージを有する。
【００１３】
まず、浮動小数点演算部１０１について説明する。
浮動小数点演算部１０１は、浮動小数点レジスタ１０４、及び、浮動小数点演算器１０５から構成される。浮動小数点レジスタ１０４は、浮動小数点演算器１０５で浮動小数点に関する演算する際に使用する浮動小数点データを保持する。浮動小数点演算器１０５には、浮動小数点レジスタ１０４に保持された浮動小数点データが供給され、浮動小数点に関する演算を実行する。
【００１４】
浮動小数点演算器１０５は、ステージングラッチ１０６−１、１０６−２、１０７−１、１０７−２、１０８−１、１０８−２、１０９、浮動小数点演算ユニット１１０、１１１、マルチプレクサ１１２から構成される。
ステージングラッチ１０６−１、１０６−２、１０７−１、１０７−２、１０８−１、１０８−２、１０９は、浮動小数点演算器１０５内部のパイプラインパスに流れる浮動小数点データをステージ毎に保持する。
【００１５】
ステージングラッチ１０６−１は、浮動小数点演算レジスタ１０４に保持された浮動小数点データを第１の演算対象source1 として保持する。ステージングラッチ１０６−２は、浮動小数点演算レジスタ１０４に保持された浮動小数点データを第２の演算対象source2 として保持する。なお、第１及び第２の演算対象source1 、source2 はプログラムコードにおけるオペランド（operand ）である。
【００１６】
ステージングラッチ１０６−１に保持された浮動小数点データは、浮動小数点演算ユニット１１０及びマルチプレクサ１１２に供給される。また、ステージングラッチ１０６−２に保持された浮動小数点データは、浮動小数点演算ユニット１１０及びステージングラッチ１０７−２に供給される。
浮動小数点演算ユニット１１０は、ステージングラッチ１０６−１、１０６−２に保持された浮動小数点データに対して浮動小数点演算を実行する。なお、浮動小数点演算ユニット１１０は、インストラクション制御部１０３から供給される制御信号に応じて演算が制御される。浮動小数点演算ユニット１１０での浮動小数点演算結果は、マルチプレクサ１１２に供給される。
【００１７】
マルチプレクサ１１２は、インストラクションに応じて制御部１０３から供給される制御信号に応じてステージングラッチ１０６−１に保持された浮動小数点データ又は浮動小数点演算ユニット１１０で実行された演算結果を選択して、ステージングラッチ１０７−１に供給する。
上記浮動小数点演算ユニット１１０及びマルチプレクサ１１２が、浮動小数点演算装置１０５の第１演算ステージＳＴ１を構成する。
【００１８】
ステージングラッチ１０７−１に保持された浮動小数点データは、ステージングラッチ１０８−１及び浮動小数点演算ユニット１１１に供給される。また、ステージングラッチ１０７−２に保持された浮動小数点データは、浮動小数点演算ユニット１１１に供給される。
浮動小数点演算ユニット１１１は、ステージングラッチ１０７−１に保持された浮動小数点データ及びステージングラッチ１０７−２に保持された浮動小数点データに対して浮動小数点演算を実行する。なお、浮動小数点演算ユニット１１１は、インストラクション制御部１０３から供給される制御信号に応じて演算が制御される。浮動小数点演算ユニット１１１での浮動小数点演算結果は、ステージングラッチ１０８−２に保持される。浮動小数点演算ユニット１１１が浮動小数点演算ユニット１１１の第２演算ステージＳＴ２を構成する。
【００１９】
ステージングラッチ１０８−２に保持された浮動小数点データは、ステージングラッチ１０９に保持される。また、ステージングラッチ１０９に保持された浮動小数点データは、浮動小数点演算装置１０５の演算結果として浮動小数点演算レジスタ１０４に保持される。
また、ステージングラッチ１０８−２に保持された浮動小数点データは、整数演算部１０２に供給される。
【００２０】
整数演算部１０２は、汎用レジスタ１１３及び整数演算器１１４から構成される。汎用レジスタ１１３は、整数演算に使用する整数データを保持する。汎用レジスタ１１３に保持された整数データは、整数演算器１１４に供給される。
次に、整数演算器１１４について説明する。
整数演算器１１４は、ステージングラッチ１１５−１、１１５−２、１１６−１、１１６−２、１１７−１、１１７−２、１１８、整数演算ユニット１１９、１２０、マルチプレクサ１２１、１２２から構成される。
【００２１】
ステージングラッチ１１５−１は、汎用レジスタ１１３に保持された整数データを第１の演算対象source1 として保持する。ステージングラッチ１１５−２は、汎用レジスタ１１３に保持された整数データを第２の演算対象source2 として保持する。なお、第１及び第２の演算対象source1 、source2 はプログラムコードにおけるオペランド（operand ）である。
【００２２】
ステージングラッチ１１５−１に保持された整数データは、整数演算ユニット１１９及びマルチプレクサ１２１に供給される。また、ステージングラッチ１１５−２に保持された整数データは、整数演算ユニット１１９及びステージングラッチ１１６−２に供給される。
整数演算ユニット１１９には、ステージラッチ１１５−１に保持された整数データ及びステージングラッチ１１５−２に保持された整数データが供給される。整数演算ユニット１１９は、ステージラッチ１１５−１に保持された整数データ及びステージングラッチ１１５−２に保持された整数データに整数演算を実行する。整数演算ユニット１１９の演算結果はマルチプレクサ１２１に供給される。なお、整数演算ユニット１１９は、インストラクション制御部１０３から供給される制御信号に応じて演算が制御される。
【００２３】
整数演算ユニット１１９での整数演算結果は、マルチプレクサ１２１に供給される。マルチプレクサ１２１は、インストラクションに応じて制御部１０３から供給される制御信号に応じてステージングラッチ１１５−１に保持された整数データ又は整数演算ユニット１１９で実行された演算結果を選択して、ステージングラッチ１１６−１に供給する。
【００２４】
上記整数演算ユニット１１９及びマルチプレクサ１２１が、整数演算装置１１４の第１演算ステージＳＴ１を構成する。
ステージングラッチ１１６−１に保持された整数データは、ステージングラッチ１１７−１及び整数演算ユニット１２０に供給される。また、ステージングラッチ１１６−２に保持された整数データは、整数演算ユニット１２０に供給される。
【００２５】
整数演算ユニット１２０は、ステージングラッチ１１６−１に保持された整数データ及びステージングラッチ１１６−２に保持された整数データに対して整数演算を実行する。なお、整数演算ユニット１２０は、インストラクション制御部１０３から供給される制御信号に応じて演算が制御される。整数演算ユニット１２０での整数演算結果は、ステージングラッチ１１７−２に保持される。整数演算ユニット１２０が整数演算ユニット１２０の第２演算ステージＳＴ２を構成する。
【００２６】
ステージングラッチ１１７−１、１１７−２に保持された整数データは、マルチプレクサ１２２に供給される。マルチプレクサ１２２には、ステージングラッチ１１７−１、１１７−２に保持された整数データの他に、前述した浮動小数点演算器１０５のステージングラッチ１０８−２に保持された演算結果が供給される。マルチプレクサ１２２は、設定されたインストラクションに応じてステージングラッチ１１７−１、１１７−２に保持された整数データ、浮動小数点演算器１０５のステージングラッチ１０８−２に保持された演算結果のうちのいずれかを選択し、出力する。
【００２７】
マルチプレクサ１２２で選択された整数データは、ステージングラッチ１１８に供給される。なお、マルチプレクサ１２２が整数演算ユニット１２０の第３演算ステージＳＴ３を構成する。
ステージングラッチ１１８に保持された整数データは、整数演算器１１４の整数演算結果として汎用レジスタ１１３に保持される。
【００２８】
次に制御部１０３について説明する。
制御部１０３は、ディスパッチユニット１２３、ステージングラッチ１２４〜１２６、インストラクションデコーダ１２７〜１２９から構成される。
ディスパッチユニット１２３は、浮動小数点演算器１０５及び整数演算器１１４に対するインストラクションを発行する。ディスパッチユニット１２３で発行されるインストラクションは、プログラムコードにおけるオペコード（opecode ）である。
【００２９】
ステージングラッチ１２４〜１２６は、インストラクションパイプラインパスに流れるインストラクションを保持する。ステージングラッチ１２４は、第１演算ステージＳＴ１のインストラクションを保持する。ステージングラッチ１２４に保持されたインストラクションはインストラクションデコーダ１２７に供給される。
【００３０】
インストラクションデコーダ１２７は、ステージングラッチ１２４に保持された第１演算ステージＳＴ１で実行されるインストラクションをデコードする。インストラクションデコーダ１２７でのデコード結果により浮動小数点演算ユニット１１０及びマルチプレクサ１１２、並びに、整数演算ユニット１１９及びマルチプレクサ１２１が制御される。
【００３１】
インストラクションデコーダ１２８は、ステージングラッチ１２５に保持された第２演算ステージＳＴ２で実行されるインストラクションをデコードする。インストラクションデコーダ１２８でのデコード結果により浮動小数点演算ユニット１１１及び整流演算ユニット１２０が制御される。
インストラクションデコーダ１２９は、ステージングラッチ１２６に保持された第３演算ステージＳＴ３で実行されるインストラクションをデコードする。インストラクションデコーダ１２９でのデコード結果によりマルチプレクサ１２２が制御される。
【００３２】
なお、本実施例では、浮動小数点演算器１０５の演算結果を整数演算器１１４に内蔵されたマルチプレクサ１２２に供給することにより、別途、外部にマルチプレクサ１２２を作成する必要がないので、構成を簡略化できる。
次に、本実施例の動作について説明する。
まず、通常の整数演算命令に対する整数演算器１１４の動作を説明する。
【００３３】
ディスパッチユニット１２３により整数演算器１１４に対して発行されたインストラクションは、インストラクションパイプラインパス用ステージングラッチ１２４に保持される。また、汎用レジスタ１１３に保持された整数データは、整数演算ユニット１３の演算対象source1 、source2 としてパイプラインパス用ステージングラッチ１１５−１、１１５−２に保持される。
【００３４】
また、インストラクションパイプラインパス用ステージングラッチ１２４に保持されたインストラクションはインストラクションデコーダ１２７によってデコードされ、整数演算ユニット１１９に対する命令であれば、整数演算ユニット１１９を制御し、演算を実行する。また、インストラクションデコーダ１２７はデコード結果によりマルチプレクサ１２１の選択制御を行なう。マルチプレクサ１２１の選択結果に応じて演算結果がステージングラッチ１１６−１に保持される。
【００３５】
また、ステージングラッチ１１５−２に保持された演算結果はステージングラッチ１１６−２に出力される。インストラクションデコーダ１２８におけるデコード結果が整数演算ユニット１２０に対するインストラクションであれば、インストラクションデコーダ１２はマルチプレクサ１５の選択制御を行なうことにより、演算対象source1 をステージングラッチ１１６−１に出力する。
【００３６】
次にインストラクションデコーダ１２８におけるデコード結果により整数演算ユニット１２０はステージングラッチ１１６−１、１１６−２に保持されている汎用レジスタ１１３の演算対象source1 、source2 に対して演算を実行し、ステージングラッチ１１７−２に対して演算結果の出力を行なう。
ステージングラッチ１１６−１に保持された演算結果は、ステージングラッチ１１７−１を通ってインストラクションデコーダ１２９によってデコードされたインストラクションによりマルチプレクサ１２２で選択され、ステージングラッチ１１８を通って、汎用レジスタ１１３で選択されたディスティネーションレジスタに反映される。
【００３７】
次に、通常の浮動小数点演算命令に対する浮動小数点演算器１０１の動作を説明する。
ディスパッチユニット１２３により浮動小数点演算器１０１に対して発行されたインストラクションは、ステージングラッチ１２４に保持される。また、浮動小数点演算ユニット１１０の演算対象source1 、source2 は、浮動小数点レジスタ１０４から読み出され、ステージングラッチ１０６−１、１０６−２に保持される。
【００３８】
次に、ステージングラッチ１２４に保持されたインストラクションはインストラクションデコーダ１２７によってデコードされる。浮動小数点演算ユニット１１０は、ステージングデコーダ１２７によってデコードされたインストラクションが浮動小数点演算ユニット１１０に対するインストラクションであれば、演算を実行する。さらに、マルチプレクサ１１２は、ステージングラッチによってデコードされたインストラクションに応じて選択制御を行なう。マルチプレクサ１１２によって選択された演算結果は、ステージングラッチ１０７−１に保持される。
【００３９】
また、ステージングラッチ１０７−１に保持された演算結果は、ステージングラッチ１０８−１に保持される。ステージングラッチ１０８−１に保持された演算結果は、ステージングラッチ１０９を通って浮動小数点レジスタ１０４のディスティネーションレジスタに反映される。
次に、本発明の趣旨である特定の演算命令（ソースレジスタ：浮動小数点レジスタ、ディステイネーションレジスタ：汎用レジスタ）に対する浮動小数点演算器１０５の動作を説明する。
【００４０】
ディスパッチユニット１２３により浮動小数点演算器１０５に対して発行されたインストラクションは、ステージングラッチ１２４に保持される。また、演算対象source1 、source2 は、ソースレジスタとなる浮動小数点レジスタ１０４から読み出されて、ステージングラッチ１０６−１、１０６−２に保持される。
次に、ステージングラッチ１２４に保持されたインストラクションは、インストラクションデコーダ１２７によってデコードされる。インストラクションデコーダ１２７のデコード結果が浮動小数点演算ユニット１１１に対する命令であれば、マルチプレクサ１１２をステージングラッチ１０６−１に保持された演算対象source1 を選択する。マルチプレクサ１１２で選択された演算対象source1 は、ステージングラッチ１０７−１に保持される。
【００４１】
また、浮動小数点演算ユニット１１１は、インストラクションデコーダ１２８でのデコード結果によりステージングラッチ１０７−１、１０７−２に保持された演算対象source1 、source2 に対して浮動小数点演算を実行する。浮動小数点演算ユニット１１１での演算結果は、ステージングラッチ１０８−２に保持される。
【００４２】
また、インストラクションデコーダ１２９は、ステージングラッチ１２６に保持されたインストラクションをデコードする。マルチプレクサ１２２は、インストラクションデコーダ１２９のデコード結果によりステージングラッチ１０８−２に保持された浮動小数点演算ユニット１１１での演算結果を選択する。
マルチプレクサ１２２により選択された浮動小数点演算ユニット１１１での演算結果は、ステージングラッチ１１８に保持される。ステージングラッチ１１８に保持された浮動小数点演算ユニット１１１での演算結果は、汎用レジスタ１１３内のディスティネーションレジスタに反映される。
【００４３】
以上により、浮動小数点演算器１０１での演算結果は、浮動小数点演算レジスタ１０４を通ることなく、汎用レジスタ１１３に反映される。
次に、上記の演算制御による性能の改善効果について説明する。
ここでは、グラフィックスアプリケーションの動作例について説明する。例えば、グラフィックスアプリケーションにおいて２枚のイメージ・プレーンがあり、あるグラフィックスアルゴリズムにより、これらの２枚のイメージプレーンをオーバレイ（重ね合わせ）して１枚のイメージプレーンを合成する動作について図面とともに説明する。
【００４４】
図３、図４に本発明の一実施例のグラフィックスアプリケーションにおける動作説明図、図５に本発明の一実施例のグラフィックスアプリケーションのフローチャートを示す。
図３に示すイメージプレーン＃１上に図３に示すイメージプレーン＃０をオーバレイし、イメージプレーン＃２を作成する。
【００４５】
まず、図４に示すようにイメージプレーン＃０、＃１、＃２の画素の位置ｘ、ｙ、マスク値ｍｓｋ及び、関数pixvalcomp（float a ，float b ）を整数型、各画素（pixel ）の３２ビット色データを各８ビットから構成されるα値（透過率）、Ｒ（赤）、Ｇ（緑）、Ｂ（青）のｌｏｎｇ型（３２ビット整数型）のデータとし、処理により算出される明度値value を浮動小数点型のデータとして定義する（ステップＳ１）。図４（Ａ）は画素のデータ形式、図４（Ｂ）は明度値value のデータ形式、図４（Ｃ）はマスク値のデータ形式を示す。
【００４６】
次に、イメージプレーン＃０、＃１上の処理位置を指定する（ステップＳ２、Ｓ３）。
次に、それぞれのイメージプレーン＃０、＃１の各画素の明度値value を明度値value0、value1として、式
value ＝（Ｒ＋Ｇ＋Ｂ）×α／１９５０７５                ・・・（１）
から各イメージプレーンにおける各画素の正規化された３２ビット単精度浮動小数点型、すなわち、フロート（float ）型の明度値を算出する（ステップＳ４、Ｓ５）。
【００４７】
次に, 指定された位置の画素に対して関数pixvalcomp（value0，value1）によりマスク値ｍｓｋを計算する（ステップＳ６）。
関数pixvalcomp（ａ，ｂ）は、指示値ａが指示値ｂより大きい場合（ａ＞ｂ）は、１６ビット整数型（ｉｎｔ型）の整数値「１」、指示値ａが指示値ｂより小さい場合（ａ＜ｂ）は、１６ビット整数型の整数値「０」を出力する関数である。
【００４８】
すなわち、
value0＞value1の場合には、pixvalcomp（value0，value1）＝１
value0＜value1の場合には、pixvalcomp（value0，value1）＝０
を１６ビット整数型整数値として出力する。
ステップＳ６の算出結果のマスク値ｍｓｋが「０」か、「１」かを判定する（ステップＳ７）。
【００４９】
ステップＳ７で、マスク値ｍｓｋが「１」のとき、すなわち、
pixvalcomp（value0，value1）＝１
のときには、イメージプレーン＃２の対応する画素の明度値value2としてイメージプレーン＃０の対応する画素の明度値value0を出力する（ステップＳ８）。
また、ステップＳ７で、マスク値ｍｓｋが「０」のとき、すなわち、
pixvalcomp（value0，value1）＝０
のときには、イメージプレーン＃２の対応する画素の明度値value2としてイメージプレーン＃１の対応する画素の明度値value1を出力する（ステップＳ９）。
【００５０】
上記ステップＳ４〜Ｓ９の手順をイメージプレーン＃０、＃１、＃２の画素毎に繰り返し行うことにより、合成されたイメージプレーン＃２を作成する（ステップＳ１０、Ｓ１１）。
このとき、ステップＳ６、Ｓ７、Ｓ８、Ｓ９に示すような処理のように関数pixvalcomp（float a ，float b ）のように「float a 」、「float b 」のような浮動小数点型変数を引数として整数型変数を戻り値とするような演算を行う場合、つまり、浮動小数点レジスタに保持された浮動小数点データを浮動小数点演算した結果を汎用レジスタに出力するような場合、上記のようなハードウェア構成をとることにより浮動小数点レジスタから汎用レジスタへのコピーや型変換を行う必要がなくなるため、システム性能が向上する。
【００５１】
なお、本実施例では、浮動小数点演算器の出力結果を整数演算器に内蔵したマルチプレクサに供給するようにしたが、外部に別途マルチプレクサを配置するようにしてもよい。
図６は本発明の第２実施例のブロック構成図を示す。同図中、図２と同一構成部分には同一符号を付し、その説明は省略する。
【００５２】
本実施例の演算装置１３０は、整数演算器１１４の出力と汎用レジスタ１１３との間にマルチプレクサ１３１を配置した構成とされている。マルチプレクサ１３１には、浮動小数点演算器１０５の演算結果と整数演算器１１４の演算結果とが供給されている。マルチプレクサ１３１は、インストラクションに応じて浮動小数点演算器１０５の演算結果又は整数演算器１１４の演算結果のいずれかを選択して、汎用レジスタ１１３に供給する。
【００５３】
また、第１、第２実施例では、浮動小数点演算器の演算結果を汎用レジスタに供給できるようにしたが、整数演算器の演算結果を浮動小数点レジスタに供給できるようにしてもよい。
図７は本発明の第３実施例のブロック構成図を示す。同図中、図２と同一構成部分には同一符号を付し、その説明は省略する。
【００５４】
本実施例の演算装置１３２は、浮動小数点演算器１０５の最終演算ステージにマルチプレクサ１３３を設け、マルチプレクサ１３３に整数演算器１１４の演算結果を入力した構成としてなる。マルチプレクサ１３３には、浮動小数点演算器１０５の演算結果と整数演算器１１４の演算結果とが供給されている。マルチプレクサ１３３は、インストラクションに応じて浮動小数点演算器１０５の演算結果又は整数演算器１１４の演算結果のいずれかを選択して、浮動小数点レジスタ１０４に供給する。
【００５５】
なお、第３実施例では、整数演算器の出力結果を浮動小数点演算器に内蔵したマルチプレクサに供給するようにしたが、外部に別途マルチプレクサを配置するようにしてもよい。図８は本発明の第４実施例のブロック構成図を示す。同図中、図２と同一構成部分には同一符号を付し、その説明は省略する。
【００５６】
本実施例の演算装置１３４は、浮動小数点演算器１０５の出力と浮動小数点レジスタ１０４との間にマルチプレクサ１３５を配置した構成とされている。マルチプレクサ１３５には、浮動小数点演算器１０５の演算結果と整数演算器１１４の演算結果とが供給されている。マルチプレクサ１３５は、浮動小数点演算器１０５へのインストラクションに応じて浮動小数点演算器１０５の演算結果又は整数演算器１１４の演算結果のいずれかを選択して、浮動小数点レジスタ１０４に供給する。
【００５７】
また、第１〜第４実施例では、浮動小数点演算器又は整数演算器の演算結果を選択的に浮動小数点レジスタ又は整数レジスタに供給するようにしたが、浮動小数点レジスタ又は整数レジスタに保持されたデータを浮動小数点演算器又は整数演算器の演算対象として入力するようにしてもよい。
図９は本発明の第５実施例のブロック構成図を示す。同図中、図２と同一構成部分には同一符号を付し、その説明は省略する。
【００５８】
本実施例の演算装置１３６は、浮動小数点演算器１０５の演算対象として３つの演算対象source1 、source2 、source3 を設け、演算対象source3 として汎用レジスタ１１３に保持されたデータを選択可能な構成としている。
本実施例によれば、汎用レジスタ１３６に保持された整数データを浮動小数点演算器１０５の演算対象として用いることができる。
【００５９】
なお、第１実施例と第５実施例とを組み合わせた構成も考えられる。
図１０は本実施例の第６実施例のブロック構成図を示す。同図中、図２と同一構成部分には同一符号を付し、その説明は省略する。
本実施例の演算装置１３７は、浮動小数点演算器１０５の演算結果を整数演算器１１４の最終演算ステージに設けられたマルチプレクサ１２２に供給するとともに、汎用レジスタ１１３に保持されたデータを浮動小数点演算器１０５の演算対象source3 として、読み出し可能な構成とした。
【００６０】
本実施例によれば、浮動小数点演算器１０５の演算結果を直接汎用レジスタ１１３に保持できるとともに、汎用レジスタ１１３に保持されたデータを浮動小数点演算器１０５で直接演算することができる。
なお、第５、第６実施例では、汎用レジスタに保持されたデータを浮動小数点演算器の演算対象（ソース）として読み出せるようにしたが、浮動小数点レジスタ１０４に保持されたデータを整数演算器の演算対象（ソース）として読み出せるようにしてもよい。
【００６１】
図１１は本発明の第７実施例のブロック構成図を示す。同図中、図２と同一構成部分には同一符号を付し、その説明は省略する。
本実施例の演算装置１３８は、整数演算器１１４に演算対象として３つのを演算対象source1 、source2 、source3 を設け、演算対象source3 として浮動小数点レジスタ１０４に保持されたデータを選択可能な構成としている。
【００６２】
本実施例によれば、浮動小数点演算器１０５での演算結果を汎用レジスタ１１３に移動させることなく、整数演算器１１４の演算対象とすることができる。
なお、浮動小数点演算器の演算結果と整数演算器の演算結果とを相互に利用できるようにすることもできる。
図１２は本発明の第８実施例のブロック構成図を示す。同図中、図１１と同一構成部分には同一符号を付し、その説明は省略する。
【００６３】
本実施例の演算装置１３２は、浮動小数点演算器１０５の最終演算ステージにマルチプレクサ１３３を設け、マルチプレクサ１３３に整数演算器１１４の演算結果を入力した構成としてなる。マルチプレクサ１３３には、浮動小数点演算器１０５の演算結果と整数演算器１１４の演算結果とが供給されている。マルチプレクサ１３３は、インストラクションに応じて浮動小数点演算器１０５の演算結果又は整数演算器１１４の演算結果のいずれかを選択して、浮動小数点レジスタ１０４に供給する。
【００６４】
本実施例によれば、浮動小数点レジスタ１０４に保持されたデータを整数演算器１１４の演算対象source3 として読み出すことにより浮動小数点演算の結果を汎用レジスタ１１３を通さずに整数演算することができる。また、マルチプレクサ１３３により整数演算器１１４の演算結果を選択することにより、整数データを浮動小数点レジスタ１０４に保持して、浮動小数点演算に用いることができるため、整数データを汎用レジスタ１０４を通さずに浮動小数点演算することができる。
【００６５】
なお、第１実施例では、浮動小数点演算器の演算結果を整数演算器の最終演算ステージに設けられたマルチプレクサに供給し、マルチプレクサを制御することにより、浮動小数点演算器の演算結果を汎用レジスタに保持して、整数演算を可能としたが、浮動小数点演算器の演算結果を直接、整数演算器に供給して整数演算するようにすることもできる。
【００６６】
図１３は本発明の第９実施例のブロック構成図を示す。同図中、図２と同一構成部分には同一符号を付し、その説明は省略する。
本実施例の演算装置１４０は、汎用レジスタ１１３と整数演算器１１４との間にマルチプレクサ１４１を設けた構成とされている。マルチプレクサ１４１には汎用レジスタ１１３に保持されたデータ及び浮動小数点演算器１０５の演算結果が供給される。マルチプレクサ１４１は、インストラクションに応じて汎用レジスタ１１３に保持されたデータ又は浮動小数点演算器１０５の演算結果のいずれかを選択して、整数演算器１１４の演算対象source2 として供給する。
【００６７】
なお、第９実施例と第３実施例とを組み合わせることにより整数演算器の演算結果と汎用レジスタを通さずに浮動小数点演算器に供給できる。
図１４は本発明の第１０実施例のブロック構成図を示す。同図中、図７及び図１３と同一構成部分には同一符号を付し、その説明は省略する。
本実施例の演算装置１４２は、浮動小数点演算器１０５の演算結果を汎用レジスタ１１３と整数演算器１１４との間に設けれたマルチプレクサ１４１に供給するとともに、整数演算器１１４の演算結果を浮動小数点演算器１０５の最終演算ステージに設けられたマルチプレクサ１３３に供給する構成とする。
【００６８】
浮動小数点演算器１０５の演算結果を整数演算するときには、整数演算器１１４のインストラクションによりマルチプレクサ１４１を制御して、浮動小数点演算器１０５の演算結果を整数演算器１１４に整数演算器１１４の演算対象source2 として供給する。
また、整数演算器１１４の演算結果を浮動小数点演算するときには、浮動小数点演算器１０５のインストラクションによりマルチプレクサ１３３を制御して整数演算器１１４の演算結果を浮動小数点レジスタ１０４に供給されるように制御する。
【００６９】
なお、第９実施例では、浮動小数点演算器の演算結果を整数演算器の演算対象として供給するようにしたが、整数演算器の演算結果を浮動小数点演算器の演算対象として供給するようにしてもよい。
図１５は本発明の第１１実施例のブロック構成図を示す。
本実施例の演算装置１４３は、整数演算器１１４の演算結果を浮動小数点演算器１０５の演算対象source2 として供給する構成とする。
【００７０】
本実施例によれば、整数演算器１１４の演算結果を汎用レジスタ１１３及び浮動小数点レジスタ１０４を通さずに浮動小数点演算器１０５に供給し、浮動小数点演算に用いることができる。
なお、第１実施例と第９実施例とを組み合わせた構成も考えられる。
図１６は本発明の第１２実施例のブロック構成図を示す。同図中、図２と同一構成部分には同一符号を付し、その説明は省略する。
【００７１】
本実施例の演算装置１４４は、第１実施例の演算装置にマルチプレクサ１４５を設けた構成とされている。マルチプレクサ１４５は、  浮動小数点レジスタ１０４と浮動小数点演算器１０５との間に設けれる。マルチプレクサ１４５には、浮動小数点レジスタ１４５に保持されたデータが供給されるとともに、整数演算器１１４の演算結果が供給される。
【００７２】
マルチプレクサ１４５は、浮動小数点演算器１０５のインストラクションにより制御され、浮動小数点レジスタ１４５に保持されたデータ又は整数演算器１１４の演算結果のいずれかを浮動小数点演算器１０５の演算対象source2 として供給する。
本実施例によれば、浮動小数点演算器１０５での演算結果を、整数演算器１１４の最終演算ステージに設けられたマルチプレクサ１２２を制御することにより浮動小数点レジスタ１０４を通さずに汎用レジスタ１１３に保持でき、整数演算器１１４で整数演算させることができる。また、整数演算器１１４での演算結果を、マルチプレクサ１４５を通して浮動小数点演算器１０５に供給することにより、浮動小数点レジスタ１０４及び汎用レジスタ１１３を通さずに浮動小数点演算させることができる。
【００７３】
なお、整数演算器と浮動小数点演算器とのデータの流れは上記第１〜第１２実施例の構成に限定されるものではない。
さらに、本実施例の整数演算器を固定小数点演算器で構成しても同様の作用効果を奏することができる。
また、本実施例は、以下発明を含むものである。
【００７４】
請求項２において、前記演算手段は、複数の演算ステージと、
前記複数の演算ステージでの演算結果のうち所定の演算結果を選択する第１の選択手段とを有し、
前記データ制御手段は、前記一の演算手段の演算結果を前記他の演算手段の前記第１の選択手段に供給し、前記他の演算手段の前記選択手段により前記一の演算手段の演算結果を選択させることにより前記他の演算手段に対応した前記データ保持手段に保持することを特徴とする演算装置。
【００７５】
さらに、請求項１〜５において、前記複数の演算手段のうち一の演算手段は、浮動小数点データに対して演算を行う浮動少数点演算器であり、
前記複数の演算手段のうち他の演算手段は、整数データに対して演算を行う整数演算器であることを特徴とする演算装置。
また、請求項１〜５において、前記複数の演算手段のうち一の演算手段は、グラフィックスデータに対して演算を行うグラフィックス演算器であり、
前記複数の演算手段のうち他の演算手段は、整数データに対して演算を行う整数演算器であることを特徴とする演算装置。
【００７６】
さらに、請求項６において、前記一の演算手段の演算結果と前記他の演算手段とのいずれかを選択し、前記他の演算手段に対応した前記データ保持手段に保持させることを特徴とする演算制御方法。
また、請求項６〜１０において、前記複数の演算手段のうち一の演算手段は、浮動小数点データに対して演算を行う浮動少数点演算器であり、
前記複数の演算手段のうち他の演算手段は、整数データあるいは固定小数点データに対して演算を行う整数あるいは固定小数点演算器であり、
前記一の演算手段の演算結果が整数となるときに、前記一の演算手段の演算結果を前記他の演算手段に供給することを特徴とする演算制御方法。
【００７７】
さらに、請求項６〜１１において、前記複数の演算手段のうち一の演算手段は、グラフィックスデータに対して演算を行うグラフィックス演算器であり、
前記複数の演算手段のうち他の演算手段は、整数データあるいは固定小数点データに対して演算を行う整数あるいは固定小数点演算器であり、
前記一の演算手段の演算結果が整数となるときに、前記一の演算手段の演算結果を前記他の演算手段に供給することを特徴とする演算制御方法。
【００７８】
【発明の効果】
本発明によれば、浮動小数点演算器やグラフィック演算器での演算結果が整数になり、次に整数あるいは固定小数点演算を行えばよいときなどに、浮動少数点演算器やグラフィック演算器での演算結果を整数データあるいは固定小数点データとし整数あるいは固定小数点演算器やグラフィック演算器のレジスタや整数あるいは固定小数点演算器に供給して、整数演算を行うことができるため、浮動少数点演算器やグラフィック演算器のレジスタと整数あるいは固定小数点演算器のレジスタとの間でデータをやり取りする必要がなく、演算処理の高スループット化が期待できる等の特長を有する。
【図面の簡単な説明】
【図１】従来の一例のブロック構成図である。
【図２】本発明の第１実施例のブロック構成図である。
【図３】本発明の第１実施例のグラフィックスアプリケーションにおける動作説明図である。
【図４】本発明の第１実施例のグラフィックスアプリケーションにおける動作説明図である。
【図５】本発明の第１実施例のグラフィックスアプリケーションのフローチャートである。
【図６】本発明の第２実施例のブロック構成図である。
【図７】本発明の第３実施例のブロック構成図である。
【図８】本発明の第４実施例のブロック構成図である。
【図９】本発明の第５実施例のブロック構成図である。
【図１０】本発明の第６実施例のブロック構成図である。
【図１１】本発明の第７実施例のブロック構成図である。
【図１２】本発明の第８実施例のブロック構成図である。
【図１３】本発明の第９実施例のブロック構成図である。
【図１４】本発明の第１０実施例のブロック構成図である。
【図１５】本発明の第１１実施例のブロック構成図である。
【図１６】本発明の第１２実施例のブロック構成図である。
【符号の説明】
１００、１３０、１３２、１３４、１３６、１３７、１３８、１３９、１４０、１４２、１４３、１４４  演算装置
１０１  浮動小数点演算部
１０２  整数演算部
１０３  制御部
１０４  浮動小数点レジスタ
１０５  浮動小数点演算器
１１３  汎用レジスタ
１１４  整数演算器
【図１】
0003638100.tif 000002
【図２】
0003638100.tif 000003
【図３】
0003638100.tif 000004
【図４】
0003638100.tif 000005
【図５】
0003638100.tif 000006
【図６】
0003638100.tif 000007
【図７】
0003638100.tif 000008
【図８】
0003638100.tif 000009
【図９】
0003638100.tif 000010
【図１０】
0003638100.tif 000011
【図１１】
0003638100.tif 000012
【図１２】
0003638100.tif 000013
【図１３】
0003638100.tif 000014
【図１４】
0003638100.tif 000015
【図１５】
0003638100.tif 000016
【図１６】
0003638100.tif 000017