JP3638100B2 - Arithmetic apparatus and arithmetic control method - Google Patents
Arithmetic apparatus and arithmetic control method Download PDFInfo
- Publication number
- JP3638100B2 JP3638100B2 JP25079899A JP25079899A JP3638100B2 JP 3638100 B2 JP3638100 B2 JP 3638100B2 JP 25079899 A JP25079899 A JP 25079899A JP 25079899 A JP25079899 A JP 25079899A JP 3638100 B2 JP3638100 B2 JP 3638100B2
- Authority
- JP
- Japan
- Prior art keywords
- arithmetic unit
- integer
- floating point
- calculation
- result
- 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
Landscapes
- Complex Calculations (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は演算装置及び演算制御方法に係り、特に、整数演算器あるいは固定小数点演算器および浮動小数点演算器あるいはグラフィックス演算器などの演算器が並列に内蔵された演算装置及び演算制御方法に関する。
従来、整数あるいは固定小数点演算器の他に浮動小数点演算器あるいはグラフィックス演算器、および、汎用レジスタの他に浮動小数点レジスタやグラフィックスレジスタを有するプロセッサでは、整数演算器あるいは固定小数点演算器は汎用レジスタをソースレジスタ及びディスティネーションレジスタとして固定使用し、また、浮動小数点演算器あるいはグラフィックス演算器は浮動小数点レジスタあるいはグラフィックスレジスタをソースレジスタおよびディスティネーションレジスタとして固定使用していた。
【0002】
このため、大小比較など浮動小数点演算の結果を用いて整数データを出力結果とするような命令や整数演算の結果である汎用レジスタの値を浮動小数点演算のソースとして用いたりする命令など、システムの高スループット化に寄与する柔軟で高効率な命令セットは実現できなかった。
【0003】
【従来の技術】
図1に従来の一例のブロック構成図を示す。
プロセッサ1は、2次キャッシュ2、命令キャッシュ3、プリデコードユニット4、インストラクションバッファ5、ディスパッチユニット6、ロードストアユニット7、汎用レジスタ8、整数あるいは固定小数点演算部9、浮動小数点レジスタ10、浮動小数点演算部11、データ入出力部12から構成される。データはローカルインタコネクト13から供給される。ローカルインタコネクト13から供給されたインストラクションは、2次キャッシュ2、命令キャッシュ3、プリデコードユニット4、インストラクションバッファ5を介してディスパッチユニット6に供給され、整数演算部9、浮動小数点演算部11にインストラクションを与える。データは2次キャッシュ2、命令キャッシュ3、ロードストアユニット7を介して汎用レジスタ8、浮動小数点レジスタ10に供給され、保持される。 整数演算部9で整数演算しようとするデータ及び整数演算部9での整数演算結果は汎用レジスタ8に保持される。また、浮動小数点演算部11で浮動小数点演算しようとするデータ及び浮動小数点演算部11での浮動小数点演算結果は、浮動小数点レジスタ10に保持される。
【0004】
また、インストラクションにより整数演算部9での演算結果を浮動小数点演算部11で演算する場合には、汎用レジスタ8に保持されたデータをロードストアユニット7を介して浮動小数点レジスタ10にロードした後、浮動小数点演算器11で演算を行っていた。
さらに、インストラクションにより浮動小数点演算部11での演算結果を整数演算部9で演算する場合には、浮動小数点レジスタ8に保持されたデータをロードレジスタ7を介して汎用レジスタ8にロードした後、整数演算器9で演算を行っていた。
【0005】
すなわち、整数演算部9と浮動小数点演算部11とでデータをやり取りする場合には、汎用レジスタ8及び浮動小数点レジスタ10を必ず通過させる必要があった。なお、上記整数演算部9は固定小数点演算装置であってもよい。
【0006】
【発明が解決しようとする課題】
しかるに、従来の技術では、整数あるいは固定小数点演算器の使用できるレジスタは汎用レジスタ、浮動小数点演算器あるいはグラフィックス演算器の使用できるレジスタはそれぞれ浮動小数点レジスタあるいはグラフィックスレジスタと固定されていたので、例えば、浮動小数点演算器の結果を整数演算器あるいは固定小数点演算器で使用したい場合は、ディスティネーションとして指定した浮動小数点レジスタの値をメモリにストアしてからソースとして指定した汎用レジスタにロードするか、メモリレイテンシがシステムの高スループット化の障害となっていた。
【0007】
本発明は上記の点に鑑みてなされたもので、複数の演算器間でのデータのやり取りを効率よく行える演算装置及び演算制御方法を提供することを目的とする。
【0008】
【課題を解決するための手段】
本発明は、演算対象及び演算結果を保持する第1のレジスタファイル手段と、第1のレジスタファイル手段に保持される演算対象及び演算結果のデータ形式とは異なるデータ形式の演算対象及び演算結果を保持する第2のレジスタファイル手段と、第1のレジスタファイル手段に保持された演算対象に対して所定のデータ形式の演算を行い、その演算結果を第1のレジスタファイル手段に供給する第1の演算手段と、第2のレジスタファイル手段に保持された演算対象に対して第1の演算手段とは異なるデータ形式の演算を行い、その演算結果を第2のレジスタファイル手段に供給する第2の演算手段とを有する演算装置であって、第2のレジスタファイル手段に保持された演算対象を、第1のレジスタファイル手段を経由せずに第1の演算手段の演算対象として供給することを特徴とする。
【0011】
本発明によれば、浮動小数点演算器やグラフィック演算器での演算結果が整数、あるいは固定小数点になり、次に整数演算あるいは固定小数点演算を行えばよいときなどに、浮動少数点演算器やグラフィック演算器での演算結果を整数あるいは固定小数点演算器やグラフィック演算器のレジスタに供給して、整数あるいは固定小数点演算を行うことができるため、浮動少数点演算器やグラフィック演算器のレジスタと整数あるいは固定小数点演算器のレジスタとの間でデータをやり取りする必要がなく、演算処理の高スループット化が期待できる。
【0012】
【発明の実施の形態】
図2、図3は本発明の第1実施例のブロック構成図を示す。
本実施例の演算装置100は、浮動小数点演算部101、及び、整数演算部102、制御部103を含む。演算装置100は、第1〜第3演算ステージST1〜ST3の演算ステージを有する。
【0013】
まず、浮動小数点演算部101について説明する。
浮動小数点演算部101は、浮動小数点レジスタ104、及び、浮動小数点演算器105から構成される。浮動小数点レジスタ104は、浮動小数点演算器105で浮動小数点に関する演算する際に使用する浮動小数点データを保持する。浮動小数点演算器105には、浮動小数点レジスタ104に保持された浮動小数点データが供給され、浮動小数点に関する演算を実行する。
【0014】
浮動小数点演算器105は、ステージングラッチ106−1、106−2、107−1、107−2、108−1、108−2、109、浮動小数点演算ユニット110、111、マルチプレクサ112から構成される。
ステージングラッチ106−1、106−2、107−1、107−2、108−1、108−2、109は、浮動小数点演算器105内部のパイプラインパスに流れる浮動小数点データをステージ毎に保持する。
【0015】
ステージングラッチ106−1は、浮動小数点演算レジスタ104に保持された浮動小数点データを第1の演算対象source1 として保持する。ステージングラッチ106−2は、浮動小数点演算レジスタ104に保持された浮動小数点データを第2の演算対象source2 として保持する。なお、第1及び第2の演算対象source1 、source2 はプログラムコードにおけるオペランド(operand )である。
【0016】
ステージングラッチ106−1に保持された浮動小数点データは、浮動小数点演算ユニット110及びマルチプレクサ112に供給される。また、ステージングラッチ106−2に保持された浮動小数点データは、浮動小数点演算ユニット110及びステージングラッチ107−2に供給される。
浮動小数点演算ユニット110は、ステージングラッチ106−1、106−2に保持された浮動小数点データに対して浮動小数点演算を実行する。なお、浮動小数点演算ユニット110は、インストラクション制御部103から供給される制御信号に応じて演算が制御される。浮動小数点演算ユニット110での浮動小数点演算結果は、マルチプレクサ112に供給される。
【0017】
マルチプレクサ112は、インストラクションに応じて制御部103から供給される制御信号に応じてステージングラッチ106−1に保持された浮動小数点データ又は浮動小数点演算ユニット110で実行された演算結果を選択して、ステージングラッチ107−1に供給する。
上記浮動小数点演算ユニット110及びマルチプレクサ112が、浮動小数点演算装置105の第1演算ステージST1を構成する。
【0018】
ステージングラッチ107−1に保持された浮動小数点データは、ステージングラッチ108−1及び浮動小数点演算ユニット111に供給される。また、ステージングラッチ107−2に保持された浮動小数点データは、浮動小数点演算ユニット111に供給される。
浮動小数点演算ユニット111は、ステージングラッチ107−1に保持された浮動小数点データ及びステージングラッチ107−2に保持された浮動小数点データに対して浮動小数点演算を実行する。なお、浮動小数点演算ユニット111は、インストラクション制御部103から供給される制御信号に応じて演算が制御される。浮動小数点演算ユニット111での浮動小数点演算結果は、ステージングラッチ108−2に保持される。浮動小数点演算ユニット111が浮動小数点演算ユニット111の第2演算ステージST2を構成する。
【0019】
ステージングラッチ108−2に保持された浮動小数点データは、ステージングラッチ109に保持される。また、ステージングラッチ109に保持された浮動小数点データは、浮動小数点演算装置105の演算結果として浮動小数点演算レジスタ104に保持される。
また、ステージングラッチ108−2に保持された浮動小数点データは、整数演算部102に供給される。
【0020】
整数演算部102は、汎用レジスタ113及び整数演算器114から構成される。汎用レジスタ113は、整数演算に使用する整数データを保持する。汎用レジスタ113に保持された整数データは、整数演算器114に供給される。
次に、整数演算器114について説明する。
整数演算器114は、ステージングラッチ115−1、115−2、116−1、116−2、117−1、117−2、118、整数演算ユニット119、120、マルチプレクサ121、122から構成される。
【0021】
ステージングラッチ115−1は、汎用レジスタ113に保持された整数データを第1の演算対象source1 として保持する。ステージングラッチ115−2は、汎用レジスタ113に保持された整数データを第2の演算対象source2 として保持する。なお、第1及び第2の演算対象source1 、source2 はプログラムコードにおけるオペランド(operand )である。
【0022】
ステージングラッチ115−1に保持された整数データは、整数演算ユニット119及びマルチプレクサ121に供給される。また、ステージングラッチ115−2に保持された整数データは、整数演算ユニット119及びステージングラッチ116−2に供給される。
整数演算ユニット119には、ステージラッチ115−1に保持された整数データ及びステージングラッチ115−2に保持された整数データが供給される。整数演算ユニット119は、ステージラッチ115−1に保持された整数データ及びステージングラッチ115−2に保持された整数データに整数演算を実行する。整数演算ユニット119の演算結果はマルチプレクサ121に供給される。なお、整数演算ユニット119は、インストラクション制御部103から供給される制御信号に応じて演算が制御される。
【0023】
整数演算ユニット119での整数演算結果は、マルチプレクサ121に供給される。マルチプレクサ121は、インストラクションに応じて制御部103から供給される制御信号に応じてステージングラッチ115−1に保持された整数データ又は整数演算ユニット119で実行された演算結果を選択して、ステージングラッチ116−1に供給する。
【0024】
上記整数演算ユニット119及びマルチプレクサ121が、整数演算装置114の第1演算ステージST1を構成する。
ステージングラッチ116−1に保持された整数データは、ステージングラッチ117−1及び整数演算ユニット120に供給される。また、ステージングラッチ116−2に保持された整数データは、整数演算ユニット120に供給される。
【0025】
整数演算ユニット120は、ステージングラッチ116−1に保持された整数データ及びステージングラッチ116−2に保持された整数データに対して整数演算を実行する。なお、整数演算ユニット120は、インストラクション制御部103から供給される制御信号に応じて演算が制御される。整数演算ユニット120での整数演算結果は、ステージングラッチ117−2に保持される。整数演算ユニット120が整数演算ユニット120の第2演算ステージST2を構成する。
【0026】
ステージングラッチ117−1、117−2に保持された整数データは、マルチプレクサ122に供給される。マルチプレクサ122には、ステージングラッチ117−1、117−2に保持された整数データの他に、前述した浮動小数点演算器105のステージングラッチ108−2に保持された演算結果が供給される。マルチプレクサ122は、設定されたインストラクションに応じてステージングラッチ117−1、117−2に保持された整数データ、浮動小数点演算器105のステージングラッチ108−2に保持された演算結果のうちのいずれかを選択し、出力する。
【0027】
マルチプレクサ122で選択された整数データは、ステージングラッチ118に供給される。なお、マルチプレクサ122が整数演算ユニット120の第3演算ステージST3を構成する。
ステージングラッチ118に保持された整数データは、整数演算器114の整数演算結果として汎用レジスタ113に保持される。
【0028】
次に制御部103について説明する。
制御部103は、ディスパッチユニット123、ステージングラッチ124〜126、インストラクションデコーダ127〜129から構成される。
ディスパッチユニット123は、浮動小数点演算器105及び整数演算器114に対するインストラクションを発行する。ディスパッチユニット123で発行されるインストラクションは、プログラムコードにおけるオペコード(opecode )である。
【0029】
ステージングラッチ124〜126は、インストラクションパイプラインパスに流れるインストラクションを保持する。ステージングラッチ124は、第1演算ステージST1のインストラクションを保持する。ステージングラッチ124に保持されたインストラクションはインストラクションデコーダ127に供給される。
【0030】
インストラクションデコーダ127は、ステージングラッチ124に保持された第1演算ステージST1で実行されるインストラクションをデコードする。インストラクションデコーダ127でのデコード結果により浮動小数点演算ユニット110及びマルチプレクサ112、並びに、整数演算ユニット119及びマルチプレクサ121が制御される。
【0031】
インストラクションデコーダ128は、ステージングラッチ125に保持された第2演算ステージST2で実行されるインストラクションをデコードする。インストラクションデコーダ128でのデコード結果により浮動小数点演算ユニット111及び整流演算ユニット120が制御される。
インストラクションデコーダ129は、ステージングラッチ126に保持された第3演算ステージST3で実行されるインストラクションをデコードする。インストラクションデコーダ129でのデコード結果によりマルチプレクサ122が制御される。
【0032】
なお、本実施例では、浮動小数点演算器105の演算結果を整数演算器114に内蔵されたマルチプレクサ122に供給することにより、別途、外部にマルチプレクサ122を作成する必要がないので、構成を簡略化できる。
次に、本実施例の動作について説明する。
まず、通常の整数演算命令に対する整数演算器114の動作を説明する。
【0033】
ディスパッチユニット123により整数演算器114に対して発行されたインストラクションは、インストラクションパイプラインパス用ステージングラッチ124に保持される。また、汎用レジスタ113に保持された整数データは、整数演算ユニット13の演算対象source1 、source2 としてパイプラインパス用ステージングラッチ115−1、115−2に保持される。
【0034】
また、インストラクションパイプラインパス用ステージングラッチ124に保持されたインストラクションはインストラクションデコーダ127によってデコードされ、整数演算ユニット119に対する命令であれば、整数演算ユニット119を制御し、演算を実行する。また、インストラクションデコーダ127はデコード結果によりマルチプレクサ121の選択制御を行なう。マルチプレクサ121の選択結果に応じて演算結果がステージングラッチ116−1に保持される。
【0035】
また、ステージングラッチ115−2に保持された演算結果はステージングラッチ116−2に出力される。インストラクションデコーダ128におけるデコード結果が整数演算ユニット120に対するインストラクションであれば、インストラクションデコーダ12はマルチプレクサ15の選択制御を行なうことにより、演算対象source1 をステージングラッチ116−1に出力する。
【0036】
次にインストラクションデコーダ128におけるデコード結果により整数演算ユニット120はステージングラッチ116−1、116−2に保持されている汎用レジスタ113の演算対象source1 、source2 に対して演算を実行し、ステージングラッチ117−2に対して演算結果の出力を行なう。
ステージングラッチ116−1に保持された演算結果は、ステージングラッチ117−1を通ってインストラクションデコーダ129によってデコードされたインストラクションによりマルチプレクサ122で選択され、ステージングラッチ118を通って、汎用レジスタ113で選択されたディスティネーションレジスタに反映される。
【0037】
次に、通常の浮動小数点演算命令に対する浮動小数点演算器101の動作を説明する。
ディスパッチユニット123により浮動小数点演算器101に対して発行されたインストラクションは、ステージングラッチ124に保持される。また、浮動小数点演算ユニット110の演算対象source1 、source2 は、浮動小数点レジスタ104から読み出され、ステージングラッチ106−1、106−2に保持される。
【0038】
次に、ステージングラッチ124に保持されたインストラクションはインストラクションデコーダ127によってデコードされる。浮動小数点演算ユニット110は、ステージングデコーダ127によってデコードされたインストラクションが浮動小数点演算ユニット110に対するインストラクションであれば、演算を実行する。さらに、マルチプレクサ112は、ステージングラッチによってデコードされたインストラクションに応じて選択制御を行なう。マルチプレクサ112によって選択された演算結果は、ステージングラッチ107−1に保持される。
【0039】
また、ステージングラッチ107−1に保持された演算結果は、ステージングラッチ108−1に保持される。ステージングラッチ108−1に保持された演算結果は、ステージングラッチ109を通って浮動小数点レジスタ104のディスティネーションレジスタに反映される。
次に、本発明の趣旨である特定の演算命令(ソースレジスタ:浮動小数点レジスタ、ディステイネーションレジスタ:汎用レジスタ)に対する浮動小数点演算器105の動作を説明する。
【0040】
ディスパッチユニット123により浮動小数点演算器105に対して発行されたインストラクションは、ステージングラッチ124に保持される。また、演算対象source1 、source2 は、ソースレジスタとなる浮動小数点レジスタ104から読み出されて、ステージングラッチ106−1、106−2に保持される。
次に、ステージングラッチ124に保持されたインストラクションは、インストラクションデコーダ127によってデコードされる。インストラクションデコーダ127のデコード結果が浮動小数点演算ユニット111に対する命令であれば、マルチプレクサ112をステージングラッチ106−1に保持された演算対象source1 を選択する。マルチプレクサ112で選択された演算対象source1 は、ステージングラッチ107−1に保持される。
【0041】
また、浮動小数点演算ユニット111は、インストラクションデコーダ128でのデコード結果によりステージングラッチ107−1、107−2に保持された演算対象source1 、source2 に対して浮動小数点演算を実行する。浮動小数点演算ユニット111での演算結果は、ステージングラッチ108−2に保持される。
【0042】
また、インストラクションデコーダ129は、ステージングラッチ126に保持されたインストラクションをデコードする。マルチプレクサ122は、インストラクションデコーダ129のデコード結果によりステージングラッチ108−2に保持された浮動小数点演算ユニット111での演算結果を選択する。
マルチプレクサ122により選択された浮動小数点演算ユニット111での演算結果は、ステージングラッチ118に保持される。ステージングラッチ118に保持された浮動小数点演算ユニット111での演算結果は、汎用レジスタ113内のディスティネーションレジスタに反映される。
【0043】
以上により、浮動小数点演算器101での演算結果は、浮動小数点演算レジスタ104を通ることなく、汎用レジスタ113に反映される。
次に、上記の演算制御による性能の改善効果について説明する。
ここでは、グラフィックスアプリケーションの動作例について説明する。例えば、グラフィックスアプリケーションにおいて2枚のイメージ・プレーンがあり、あるグラフィックスアルゴリズムにより、これらの2枚のイメージプレーンをオーバレイ(重ね合わせ)して1枚のイメージプレーンを合成する動作について図面とともに説明する。
【0044】
図3、図4に本発明の一実施例のグラフィックスアプリケーションにおける動作説明図、図5に本発明の一実施例のグラフィックスアプリケーションのフローチャートを示す。
図3に示すイメージプレーン#1上に図3に示すイメージプレーン#0をオーバレイし、イメージプレーン#2を作成する。
【0045】
まず、図4に示すようにイメージプレーン#0、#1、#2の画素の位置x、y、マスク値msk及び、関数pixvalcomp(float a ,float b )を整数型、各画素(pixel )の32ビット色データを各8ビットから構成されるα値(透過率)、R(赤)、G(緑)、B(青)のlong型(32ビット整数型)のデータとし、処理により算出される明度値value を浮動小数点型のデータとして定義する(ステップS1)。図4(A)は画素のデータ形式、図4(B)は明度値value のデータ形式、図4(C)はマスク値のデータ形式を示す。
【0046】
次に、イメージプレーン#0、#1上の処理位置を指定する(ステップS2、S3)。
次に、それぞれのイメージプレーン#0、#1の各画素の明度値value を明度値value0、value1として、式
value =(R+G+B)×α/195075 ・・・(1)
から各イメージプレーンにおける各画素の正規化された32ビット単精度浮動小数点型、すなわち、フロート(float )型の明度値を算出する(ステップS4、S5)。
【0047】
次に, 指定された位置の画素に対して関数pixvalcomp(value0,value1)によりマスク値mskを計算する(ステップS6)。
関数pixvalcomp(a,b)は、指示値aが指示値bより大きい場合(a>b)は、16ビット整数型(int型)の整数値「1」、指示値aが指示値bより小さい場合(a<b)は、16ビット整数型の整数値「0」を出力する関数である。
【0048】
すなわち、
value0>value1の場合には、pixvalcomp(value0,value1)=1
value0<value1の場合には、pixvalcomp(value0,value1)=0
を16ビット整数型整数値として出力する。
ステップS6の算出結果のマスク値mskが「0」か、「1」かを判定する(ステップS7)。
【0049】
ステップS7で、マスク値mskが「1」のとき、すなわち、
pixvalcomp(value0,value1)=1
のときには、イメージプレーン#2の対応する画素の明度値value2としてイメージプレーン#0の対応する画素の明度値value0を出力する(ステップS8)。
また、ステップS7で、マスク値mskが「0」のとき、すなわち、
pixvalcomp(value0,value1)=0
のときには、イメージプレーン#2の対応する画素の明度値value2としてイメージプレーン#1の対応する画素の明度値value1を出力する(ステップS9)。
【0050】
上記ステップS4〜S9の手順をイメージプレーン#0、#1、#2の画素毎に繰り返し行うことにより、合成されたイメージプレーン#2を作成する(ステップS10、S11)。
このとき、ステップS6、S7、S8、S9に示すような処理のように関数pixvalcomp(float a ,float b )のように「float a 」、「float b 」のような浮動小数点型変数を引数として整数型変数を戻り値とするような演算を行う場合、つまり、浮動小数点レジスタに保持された浮動小数点データを浮動小数点演算した結果を汎用レジスタに出力するような場合、上記のようなハードウェア構成をとることにより浮動小数点レジスタから汎用レジスタへのコピーや型変換を行う必要がなくなるため、システム性能が向上する。
【0051】
なお、本実施例では、浮動小数点演算器の出力結果を整数演算器に内蔵したマルチプレクサに供給するようにしたが、外部に別途マルチプレクサを配置するようにしてもよい。
図6は本発明の第2実施例のブロック構成図を示す。同図中、図2と同一構成部分には同一符号を付し、その説明は省略する。
【0052】
本実施例の演算装置130は、整数演算器114の出力と汎用レジスタ113との間にマルチプレクサ131を配置した構成とされている。マルチプレクサ131には、浮動小数点演算器105の演算結果と整数演算器114の演算結果とが供給されている。マルチプレクサ131は、インストラクションに応じて浮動小数点演算器105の演算結果又は整数演算器114の演算結果のいずれかを選択して、汎用レジスタ113に供給する。
【0053】
また、第1、第2実施例では、浮動小数点演算器の演算結果を汎用レジスタに供給できるようにしたが、整数演算器の演算結果を浮動小数点レジスタに供給できるようにしてもよい。
図7は本発明の第3実施例のブロック構成図を示す。同図中、図2と同一構成部分には同一符号を付し、その説明は省略する。
【0054】
本実施例の演算装置132は、浮動小数点演算器105の最終演算ステージにマルチプレクサ133を設け、マルチプレクサ133に整数演算器114の演算結果を入力した構成としてなる。マルチプレクサ133には、浮動小数点演算器105の演算結果と整数演算器114の演算結果とが供給されている。マルチプレクサ133は、インストラクションに応じて浮動小数点演算器105の演算結果又は整数演算器114の演算結果のいずれかを選択して、浮動小数点レジスタ104に供給する。
【0055】
なお、第3実施例では、整数演算器の出力結果を浮動小数点演算器に内蔵したマルチプレクサに供給するようにしたが、外部に別途マルチプレクサを配置するようにしてもよい。図8は本発明の第4実施例のブロック構成図を示す。同図中、図2と同一構成部分には同一符号を付し、その説明は省略する。
【0056】
本実施例の演算装置134は、浮動小数点演算器105の出力と浮動小数点レジスタ104との間にマルチプレクサ135を配置した構成とされている。マルチプレクサ135には、浮動小数点演算器105の演算結果と整数演算器114の演算結果とが供給されている。マルチプレクサ135は、浮動小数点演算器105へのインストラクションに応じて浮動小数点演算器105の演算結果又は整数演算器114の演算結果のいずれかを選択して、浮動小数点レジスタ104に供給する。
【0057】
また、第1〜第4実施例では、浮動小数点演算器又は整数演算器の演算結果を選択的に浮動小数点レジスタ又は整数レジスタに供給するようにしたが、浮動小数点レジスタ又は整数レジスタに保持されたデータを浮動小数点演算器又は整数演算器の演算対象として入力するようにしてもよい。
図9は本発明の第5実施例のブロック構成図を示す。同図中、図2と同一構成部分には同一符号を付し、その説明は省略する。
【0058】
本実施例の演算装置136は、浮動小数点演算器105の演算対象として3つの演算対象source1 、source2 、source3 を設け、演算対象source3 として汎用レジスタ113に保持されたデータを選択可能な構成としている。
本実施例によれば、汎用レジスタ136に保持された整数データを浮動小数点演算器105の演算対象として用いることができる。
【0059】
なお、第1実施例と第5実施例とを組み合わせた構成も考えられる。
図10は本実施例の第6実施例のブロック構成図を示す。同図中、図2と同一構成部分には同一符号を付し、その説明は省略する。
本実施例の演算装置137は、浮動小数点演算器105の演算結果を整数演算器114の最終演算ステージに設けられたマルチプレクサ122に供給するとともに、汎用レジスタ113に保持されたデータを浮動小数点演算器105の演算対象source3 として、読み出し可能な構成とした。
【0060】
本実施例によれば、浮動小数点演算器105の演算結果を直接汎用レジスタ113に保持できるとともに、汎用レジスタ113に保持されたデータを浮動小数点演算器105で直接演算することができる。
なお、第5、第6実施例では、汎用レジスタに保持されたデータを浮動小数点演算器の演算対象(ソース)として読み出せるようにしたが、浮動小数点レジスタ104に保持されたデータを整数演算器の演算対象(ソース)として読み出せるようにしてもよい。
【0061】
図11は本発明の第7実施例のブロック構成図を示す。同図中、図2と同一構成部分には同一符号を付し、その説明は省略する。
本実施例の演算装置138は、整数演算器114に演算対象として3つのを演算対象source1 、source2 、source3 を設け、演算対象source3 として浮動小数点レジスタ104に保持されたデータを選択可能な構成としている。
【0062】
本実施例によれば、浮動小数点演算器105での演算結果を汎用レジスタ113に移動させることなく、整数演算器114の演算対象とすることができる。
なお、浮動小数点演算器の演算結果と整数演算器の演算結果とを相互に利用できるようにすることもできる。
図12は本発明の第8実施例のブロック構成図を示す。同図中、図11と同一構成部分には同一符号を付し、その説明は省略する。
【0063】
本実施例の演算装置132は、浮動小数点演算器105の最終演算ステージにマルチプレクサ133を設け、マルチプレクサ133に整数演算器114の演算結果を入力した構成としてなる。マルチプレクサ133には、浮動小数点演算器105の演算結果と整数演算器114の演算結果とが供給されている。マルチプレクサ133は、インストラクションに応じて浮動小数点演算器105の演算結果又は整数演算器114の演算結果のいずれかを選択して、浮動小数点レジスタ104に供給する。
【0064】
本実施例によれば、浮動小数点レジスタ104に保持されたデータを整数演算器114の演算対象source3 として読み出すことにより浮動小数点演算の結果を汎用レジスタ113を通さずに整数演算することができる。また、マルチプレクサ133により整数演算器114の演算結果を選択することにより、整数データを浮動小数点レジスタ104に保持して、浮動小数点演算に用いることができるため、整数データを汎用レジスタ104を通さずに浮動小数点演算することができる。
【0065】
なお、第1実施例では、浮動小数点演算器の演算結果を整数演算器の最終演算ステージに設けられたマルチプレクサに供給し、マルチプレクサを制御することにより、浮動小数点演算器の演算結果を汎用レジスタに保持して、整数演算を可能としたが、浮動小数点演算器の演算結果を直接、整数演算器に供給して整数演算するようにすることもできる。
【0066】
図13は本発明の第9実施例のブロック構成図を示す。同図中、図2と同一構成部分には同一符号を付し、その説明は省略する。
本実施例の演算装置140は、汎用レジスタ113と整数演算器114との間にマルチプレクサ141を設けた構成とされている。マルチプレクサ141には汎用レジスタ113に保持されたデータ及び浮動小数点演算器105の演算結果が供給される。マルチプレクサ141は、インストラクションに応じて汎用レジスタ113に保持されたデータ又は浮動小数点演算器105の演算結果のいずれかを選択して、整数演算器114の演算対象source2 として供給する。
【0067】
なお、第9実施例と第3実施例とを組み合わせることにより整数演算器の演算結果と汎用レジスタを通さずに浮動小数点演算器に供給できる。
図14は本発明の第10実施例のブロック構成図を示す。同図中、図7及び図13と同一構成部分には同一符号を付し、その説明は省略する。
本実施例の演算装置142は、浮動小数点演算器105の演算結果を汎用レジスタ113と整数演算器114との間に設けれたマルチプレクサ141に供給するとともに、整数演算器114の演算結果を浮動小数点演算器105の最終演算ステージに設けられたマルチプレクサ133に供給する構成とする。
【0068】
浮動小数点演算器105の演算結果を整数演算するときには、整数演算器114のインストラクションによりマルチプレクサ141を制御して、浮動小数点演算器105の演算結果を整数演算器114に整数演算器114の演算対象source2 として供給する。
また、整数演算器114の演算結果を浮動小数点演算するときには、浮動小数点演算器105のインストラクションによりマルチプレクサ133を制御して整数演算器114の演算結果を浮動小数点レジスタ104に供給されるように制御する。
【0069】
なお、第9実施例では、浮動小数点演算器の演算結果を整数演算器の演算対象として供給するようにしたが、整数演算器の演算結果を浮動小数点演算器の演算対象として供給するようにしてもよい。
図15は本発明の第11実施例のブロック構成図を示す。
本実施例の演算装置143は、整数演算器114の演算結果を浮動小数点演算器105の演算対象source2 として供給する構成とする。
【0070】
本実施例によれば、整数演算器114の演算結果を汎用レジスタ113及び浮動小数点レジスタ104を通さずに浮動小数点演算器105に供給し、浮動小数点演算に用いることができる。
なお、第1実施例と第9実施例とを組み合わせた構成も考えられる。
図16は本発明の第12実施例のブロック構成図を示す。同図中、図2と同一構成部分には同一符号を付し、その説明は省略する。
【0071】
本実施例の演算装置144は、第1実施例の演算装置にマルチプレクサ145を設けた構成とされている。マルチプレクサ145は、 浮動小数点レジスタ104と浮動小数点演算器105との間に設けれる。マルチプレクサ145には、浮動小数点レジスタ145に保持されたデータが供給されるとともに、整数演算器114の演算結果が供給される。
【0072】
マルチプレクサ145は、浮動小数点演算器105のインストラクションにより制御され、浮動小数点レジスタ145に保持されたデータ又は整数演算器114の演算結果のいずれかを浮動小数点演算器105の演算対象source2 として供給する。
本実施例によれば、浮動小数点演算器105での演算結果を、整数演算器114の最終演算ステージに設けられたマルチプレクサ122を制御することにより浮動小数点レジスタ104を通さずに汎用レジスタ113に保持でき、整数演算器114で整数演算させることができる。また、整数演算器114での演算結果を、マルチプレクサ145を通して浮動小数点演算器105に供給することにより、浮動小数点レジスタ104及び汎用レジスタ113を通さずに浮動小数点演算させることができる。
【0073】
なお、整数演算器と浮動小数点演算器とのデータの流れは上記第1〜第12実施例の構成に限定されるものではない。
さらに、本実施例の整数演算器を固定小数点演算器で構成しても同様の作用効果を奏することができる。
また、本実施例は、以下発明を含むものである。
【0074】
請求項2において、前記演算手段は、複数の演算ステージと、
前記複数の演算ステージでの演算結果のうち所定の演算結果を選択する第1の選択手段とを有し、
前記データ制御手段は、前記一の演算手段の演算結果を前記他の演算手段の前記第1の選択手段に供給し、前記他の演算手段の前記選択手段により前記一の演算手段の演算結果を選択させることにより前記他の演算手段に対応した前記データ保持手段に保持することを特徴とする演算装置。
【0075】
さらに、請求項1〜5において、前記複数の演算手段のうち一の演算手段は、浮動小数点データに対して演算を行う浮動少数点演算器であり、
前記複数の演算手段のうち他の演算手段は、整数データに対して演算を行う整数演算器であることを特徴とする演算装置。
また、請求項1〜5において、前記複数の演算手段のうち一の演算手段は、グラフィックスデータに対して演算を行うグラフィックス演算器であり、
前記複数の演算手段のうち他の演算手段は、整数データに対して演算を行う整数演算器であることを特徴とする演算装置。
【0076】
さらに、請求項6において、前記一の演算手段の演算結果と前記他の演算手段とのいずれかを選択し、前記他の演算手段に対応した前記データ保持手段に保持させることを特徴とする演算制御方法。
また、請求項6〜10において、前記複数の演算手段のうち一の演算手段は、浮動小数点データに対して演算を行う浮動少数点演算器であり、
前記複数の演算手段のうち他の演算手段は、整数データあるいは固定小数点データに対して演算を行う整数あるいは固定小数点演算器であり、
前記一の演算手段の演算結果が整数となるときに、前記一の演算手段の演算結果を前記他の演算手段に供給することを特徴とする演算制御方法。
【0077】
さらに、請求項6〜11において、前記複数の演算手段のうち一の演算手段は、グラフィックスデータに対して演算を行うグラフィックス演算器であり、
前記複数の演算手段のうち他の演算手段は、整数データあるいは固定小数点データに対して演算を行う整数あるいは固定小数点演算器であり、
前記一の演算手段の演算結果が整数となるときに、前記一の演算手段の演算結果を前記他の演算手段に供給することを特徴とする演算制御方法。
【0078】
【発明の効果】
本発明によれば、浮動小数点演算器やグラフィック演算器での演算結果が整数になり、次に整数あるいは固定小数点演算を行えばよいときなどに、浮動少数点演算器やグラフィック演算器での演算結果を整数データあるいは固定小数点データとし整数あるいは固定小数点演算器やグラフィック演算器のレジスタや整数あるいは固定小数点演算器に供給して、整数演算を行うことができるため、浮動少数点演算器やグラフィック演算器のレジスタと整数あるいは固定小数点演算器のレジスタとの間でデータをやり取りする必要がなく、演算処理の高スループット化が期待できる等の特長を有する。
【図面の簡単な説明】
【図1】従来の一例のブロック構成図である。
【図2】本発明の第1実施例のブロック構成図である。
【図3】本発明の第1実施例のグラフィックスアプリケーションにおける動作説明図である。
【図4】本発明の第1実施例のグラフィックスアプリケーションにおける動作説明図である。
【図5】本発明の第1実施例のグラフィックスアプリケーションのフローチャートである。
【図6】本発明の第2実施例のブロック構成図である。
【図7】本発明の第3実施例のブロック構成図である。
【図8】本発明の第4実施例のブロック構成図である。
【図9】本発明の第5実施例のブロック構成図である。
【図10】本発明の第6実施例のブロック構成図である。
【図11】本発明の第7実施例のブロック構成図である。
【図12】本発明の第8実施例のブロック構成図である。
【図13】本発明の第9実施例のブロック構成図である。
【図14】本発明の第10実施例のブロック構成図である。
【図15】本発明の第11実施例のブロック構成図である。
【図16】本発明の第12実施例のブロック構成図である。
【符号の説明】
100、130、132、134、136、137、138、139、140、142、143、144 演算装置
101 浮動小数点演算部
102 整数演算部
103 制御部
104 浮動小数点レジスタ
105 浮動小数点演算器
113 汎用レジスタ
114 整数演算器[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an arithmetic device and an arithmetic control method, and more particularly to an arithmetic device and an arithmetic control method in which arithmetic units such as an integer arithmetic unit, a fixed point arithmetic unit, a floating point arithmetic unit, or a graphics arithmetic unit are incorporated in parallel.
Conventionally, in a processor having a floating point arithmetic unit or graphics arithmetic unit in addition to an integer or fixed point arithmetic unit and a floating point register or graphics register in addition to a general purpose register, the integer arithmetic unit or fixed point arithmetic unit is a general purpose unit. The registers are fixedly used as the source register and the destination register, and the floating point arithmetic unit or the graphics arithmetic unit uses the floating point register or the graphics register as the source register and the destination register.
[0002]
For this reason, system instructions such as instructions that use the result of floating-point operations such as large and small comparisons to output integer data, and instructions that use the value of a general-purpose register that is the result of integer operations as the source of floating-point operations, etc. A flexible and highly efficient instruction set that contributes to high throughput could not be realized.
[0003]
[Prior art]
FIG. 1 shows a block diagram of a conventional example.
The
[0004]
Further, when the calculation result in the
Further, when the arithmetic result of the floating point
[0005]
That is, when data is exchanged between the integer
[0006]
[Problems to be solved by the invention]
However, in the prior art, the registers that can be used by integer or fixed-point arithmetic units are fixed as general-purpose registers, and the registers that can be used by floating-point arithmetic units or graphics arithmetic units are fixed as floating-point registers or graphics registers, respectively. For example, if you want to use the result of a floating-point arithmetic unit with an integer arithmetic unit or a fixed-point arithmetic unit, whether the value of the floating-point register specified as the destination is stored in memory and then loaded into the general-purpose register specified as the source Memory latency has been an obstacle to high throughput of the system.
[0007]
The present invention has been made in view of the above points, and an object thereof is to provide an arithmetic device and an arithmetic control method capable of efficiently exchanging data between a plurality of arithmetic units.
[0008]
[Means for Solving the Problems]
The present invention comprises a first register file means for holding a calculation target and a calculation result; The data format is different from the data format of the operation target and operation result held in the first register file means. The second register file means for holding the calculation target and the calculation result, and the calculation of a predetermined data format are performed on the calculation target held in the first register file means. The operation result is supplied to the first register file means. An operation in a data format different from that of the first calculation means is performed on the calculation object held in the first calculation means and the second register file means. The operation result is supplied to the second register file means. An arithmetic device having a second arithmetic means, wherein the arithmetic object held in the second register file means is supplied as an arithmetic object of the first arithmetic means without going through the first register file means. Ruko And features.
[0011]
According to the present invention, when a calculation result in a floating point arithmetic unit or a graphic arithmetic unit becomes an integer or a fixed point, and then an integer operation or a fixed point operation may be performed, a floating point arithmetic unit or a graphic Since the operation result of the arithmetic unit can be supplied to an integer or a register of a fixed-point arithmetic unit or a graphic arithmetic unit to perform integer or fixed-point arithmetic, the register of the floating-point arithmetic unit or graphic arithmetic unit and the integer or There is no need to exchange data with the register of the fixed-point arithmetic unit, and high processing throughput can be expected.
[0012]
DETAILED DESCRIPTION OF THE INVENTION
2 and 3 are block diagrams showing the first embodiment of the present invention.
The arithmetic device 100 of this embodiment includes a floating point arithmetic unit 101, an integer arithmetic unit 102, and a control unit 103. The arithmetic device 100 has first to third arithmetic stages ST1 to ST3.
[0013]
First, the floating point arithmetic unit 101 will be described.
The floating point arithmetic unit 101 includes a
[0014]
The floating point
The staging latches 106-1, 106-2, 107-1, 107-2, 108-1, 108-2, 109 hold the floating point data flowing in the pipeline path inside the floating point
[0015]
The staging latch 106-1 holds the floating point data held in the floating point
[0016]
The floating point data held in the staging latch 106-1 is supplied to the floating point arithmetic unit 110 and the
The floating point arithmetic unit 110 performs floating point arithmetic on the floating point data held in the staging latches 106-1 and 106-2. The floating point arithmetic unit 110 is controlled in accordance with a control signal supplied from the instruction control unit 103. The floating point arithmetic result in the floating point arithmetic unit 110 is supplied to the
[0017]
The
The floating point arithmetic unit 110 and the
[0018]
The floating point data held in the staging latch 107-1 is supplied to the staging latch 108-1 and the floating point
The floating point
[0019]
The floating point data held in the staging latch 108-2 is held in the
The floating point data held in the staging latch 108-2 is supplied to the integer arithmetic unit 102.
[0020]
The integer calculation unit 102 includes a general-
Next, the integer calculator 114 will be described.
The integer arithmetic unit 114 includes staging latches 115-1, 115-2, 116-1, 116-2, 117-1, 117-2, 118, integer
[0021]
The staging latch 115-1 holds the integer data held in the general-
[0022]
The integer data held in the staging latch 115-1 is supplied to the
The
[0023]
An integer calculation result in the
[0024]
The
The integer data held in the staging latch 116-1 is supplied to the staging latch 117-1 and the
[0025]
The
[0026]
The integer data held in the staging latches 117-1 and 117-2 is supplied to the
[0027]
The integer data selected by the
The integer data held in the
[0028]
Next, the control unit 103 will be described.
The control unit 103 includes a
The
[0029]
The staging latches 124 to 126 hold instructions flowing in the instruction pipeline path. The staging
[0030]
The
[0031]
The instruction decoder 128 decodes the instruction executed in the second operation stage ST2 held in the
The
[0032]
In this embodiment, the operation result of the floating point
Next, the operation of this embodiment will be described.
First, the operation of the integer arithmetic unit 114 in response to a normal integer arithmetic instruction will be described.
[0033]
The instruction issued to the integer arithmetic unit 114 by the
[0034]
Further, the instruction held in the instruction pipeline
[0035]
The calculation result held in the staging latch 115-2 is output to the staging latch 116-2. If the decoding result in the instruction decoder 128 is an instruction for the
[0036]
Next, the
The operation result held in the staging latch 116-1 is selected by the
[0037]
Next, the operation of the floating point arithmetic unit 101 in response to a normal floating point arithmetic instruction will be described.
The instruction issued to the floating point arithmetic unit 101 by the
[0038]
Next, the instruction held in the
[0039]
In addition, the calculation result held in the staging latch 107-1 is held in the staging latch 108-1. The operation result held in the staging latch 108-1 is reflected in the destination register of the floating
Next, the operation of the floating point
[0040]
The instruction issued to the floating point
Next, the instruction held in the
[0041]
Further, the floating point
[0042]
Further, the
The calculation result in the floating point
[0043]
As described above, the calculation result in the floating point arithmetic unit 101 is reflected in the general-
Next, the performance improvement effect by the above arithmetic control will be described.
Here, an operation example of the graphics application will be described. For example, there are two image planes in a graphics application, and an operation of overlaying (superimposing) these two image planes using a certain graphics algorithm to synthesize one image plane will be described with reference to the drawings. .
[0044]
FIGS. 3 and 4 are diagrams for explaining the operation of the graphics application according to the embodiment of the present invention. FIG. 5 is a flowchart of the graphics application according to the embodiment of the present invention.
[0045]
First, as shown in FIG. 4, the pixel positions x and y, the mask value msk, and the function pixvalcomp (float a, float b) of the image planes # 0, # 1, and # 2 are integer types, and each pixel (pixel) The 32-bit color data is calculated as a long type (32-bit integer type) data of alpha value (transmittance), R (red), G (green), and B (blue) composed of 8 bits each. The brightness value value is defined as floating point type data (step S1). 4A shows the data format of the pixel, FIG. 4B shows the data format of the brightness value value, and FIG. 4C shows the data format of the mask value.
[0046]
Next, processing positions on the image planes # 0 and # 1 are designated (steps S2 and S3).
Next, the brightness value value of each pixel of each
value = (R + G + B) × α / 195075 (1)
From the normalized 32-bit single-precision floating point type, that is, float type brightness value of each pixel in each image plane (steps S4 and S5).
[0047]
Next, the mask value msk is calculated by the function pixvalcomp (value0, value1) for the pixel at the designated position (step S6).
In the function pixvalcomp (a, b), when the instruction value a is larger than the instruction value b (a> b), the 16-bit integer type (int type) integer value “1” and the instruction value a is smaller than the instruction value b. The case (a <b) is a function that outputs a 16-bit integer type integer value “0”.
[0048]
That is,
If value0> value1, pixvalcomp (value0, value1) = 1
If value0 <value1, pixvalcomp (value0, value1) = 0
Is output as a 16-bit integer type integer value.
It is determined whether the mask value msk of the calculation result in step S6 is “0” or “1” (step S7).
[0049]
In step S7, when the mask value msk is “1”, that is,
pixvalcomp (value0, value1) = 1
In this case, the brightness value value0 of the corresponding pixel of the
In step S7, when the mask value msk is “0”, that is,
pixvalcomp (value0, value1) = 0
In this case, the brightness value value1 of the corresponding pixel of the
[0050]
The combined
At this time, floating point type variables such as "float a" and "float b" are used as arguments as in the function pixvalcomp (float a, float b) as shown in steps S6, S7, S8, and S9. When performing an operation that uses an integer variable as a return value, that is, when outputting the result of floating-point data stored in a floating-point register to a general-purpose register, the hardware configuration described above This eliminates the need for copying and type conversion from the floating-point register to the general-purpose register, thus improving system performance.
[0051]
In the present embodiment, the output result of the floating point arithmetic unit is supplied to the multiplexer built in the integer arithmetic unit. However, a multiplexer may be separately provided outside.
FIG. 6 shows a block diagram of the second embodiment of the present invention. In the figure, the same components as in FIG.
[0052]
The arithmetic device 130 of this embodiment is configured such that a
[0053]
In the first and second embodiments, the calculation result of the floating point arithmetic unit can be supplied to the general-purpose register. However, the calculation result of the integer arithmetic unit may be supplied to the floating point register.
FIG. 7 shows a block diagram of a third embodiment of the present invention. In the figure, the same components as in FIG.
[0054]
The arithmetic device 132 of this embodiment has a configuration in which a
[0055]
The first 3 fruits In the embodiment, the output result of the integer arithmetic unit is supplied to the multiplexer built in the floating point arithmetic unit. However, a multiplexer may be separately provided outside. FIG. 8 shows a block diagram of a fourth embodiment of the present invention. In the figure, the same components as in FIG.
[0056]
The arithmetic unit 134 of this embodiment is configured such that a
[0057]
In the first to fourth embodiments, the calculation result of the floating point arithmetic unit or the integer arithmetic unit is selectively supplied to the floating point register or the integer register, but is held in the floating point register or the integer register. Data may be input as a calculation target of a floating point arithmetic unit or an integer arithmetic unit.
FIG. 9 shows a block diagram of the fifth embodiment of the present invention. In the figure, the same components as in FIG.
[0058]
The arithmetic device 136 of this embodiment is provided with three operation sources source1, source2, and source3 as the operation targets of the floating point
According to the present embodiment, the integer data held in the general-purpose register 136 can be used as a calculation target of the floating point
[0059]
A configuration combining the first embodiment and the fifth embodiment is also conceivable.
FIG. 10 shows a block diagram of the sixth embodiment of the present embodiment. In the figure, the same components as in FIG.
The arithmetic unit 137 according to the present embodiment supplies the arithmetic result of the floating point
[0060]
According to the present embodiment, the calculation result of the floating point
In the fifth and sixth embodiments, the data held in the general-purpose register can be read out as the calculation target (source) of the floating-point arithmetic unit. However, the data held in the floating-
[0061]
FIG. 11 shows a block diagram of a seventh embodiment of the present invention. In the figure, the same components as in FIG.
The arithmetic unit 138 according to the present embodiment is configured such that the integer arithmetic unit 114 is provided with three calculation targets source1, source2, and source3 as calculation targets, and the data held in the floating-
[0062]
According to the present embodiment, the operation result of the floating point
Note that the calculation result of the floating-point arithmetic unit and the calculation result of the integer arithmetic unit can be mutually used.
FIG. 12 shows a block diagram of an eighth embodiment of the present invention. In the figure, the same components as those in FIG. 11 are denoted by the same reference numerals, and description thereof is omitted.
[0063]
The arithmetic device 132 of this embodiment has a configuration in which a
[0064]
According to the present embodiment, by reading the data held in the floating
[0065]
In the first embodiment, the calculation result of the floating point arithmetic unit is supplied to the multiplexer provided at the final arithmetic stage of the integer arithmetic unit, and the control result of the floating point arithmetic unit is stored in the general-purpose register by controlling the multiplexer. However, it is also possible to perform integer arithmetic by directly supplying the arithmetic result of the floating point arithmetic unit to the integer arithmetic unit.
[0066]
FIG. 13 shows a block diagram of a ninth embodiment of the present invention. In the figure, the same components as in FIG.
The
[0067]
By combining the ninth embodiment and the third embodiment, the operation result of the integer arithmetic unit and the general-purpose register can be supplied to the floating point arithmetic unit.
FIG. 14 shows a block diagram of a tenth embodiment of the present invention. In the figure, the same components as those in FIGS. 7 and 13 are denoted by the same reference numerals, and the description thereof is omitted.
The arithmetic unit 142 according to this embodiment supplies the arithmetic result of the floating point
[0068]
When performing an integer operation on the operation result of the floating point
Further, when the arithmetic result of the integer arithmetic unit 114 is subjected to floating point arithmetic, the
[0069]
In the ninth embodiment, the calculation result of the floating point arithmetic unit is supplied as the calculation target of the integer arithmetic unit. However, the calculation result of the integer arithmetic unit is supplied as the calculation target of the floating point arithmetic unit. Also good.
FIG. 15 shows a block diagram of an eleventh embodiment of the present invention.
The arithmetic unit 143 of this embodiment is configured to supply the arithmetic result of the integer arithmetic unit 114 as the arithmetic target source2 of the floating point
[0070]
According to the present embodiment, the operation result of the integer arithmetic unit 114 can be supplied to the floating point
A configuration combining the first embodiment and the ninth embodiment is also conceivable.
FIG. 16 is a block diagram of the twelfth embodiment of the present invention. In the figure, the same components as in FIG.
[0071]
The arithmetic device 144 of this embodiment is configured such that a
[0072]
The
According to this embodiment, the operation result in the floating point
[0073]
The data flow between the integer arithmetic unit and the floating point arithmetic unit is not limited to the configuration of the first to twelfth embodiments.
Further, even if the integer arithmetic unit of the present embodiment is constituted by a fixed point arithmetic unit, the same effect can be obtained.
Further, the present embodiment includes the following inventions.
[0074]
The calculation means according to
First selection means for selecting a predetermined calculation result among the calculation results at the plurality of calculation stages;
The data control means supplies the calculation result of the one calculation means to the first selection means of the other calculation means, and the calculation result of the one calculation means is obtained by the selection means of the other calculation means. An arithmetic unit characterized in that the data is held in the data holding unit corresponding to the other arithmetic unit by being selected.
[0075]
Furthermore, in
The other computing means among the plurality of computing means is an integer computing unit that performs computation on integer data.
Moreover, in Claims 1-5, one calculating means among the said several calculating means is a graphics calculator which calculates with respect to graphics data,
The other computing means among the plurality of computing means is an integer computing unit that performs computation on integer data.
[0076]
Further, in claim 6, the calculation result of the one calculation means and the other calculation means are selected and held in the data holding means corresponding to the other calculation means Control method.
Further, in claims 6 to 10, one of the plurality of computing means is a floating-point arithmetic unit that performs computation on floating-point data,
The other calculation means among the plurality of calculation means is an integer or fixed-point arithmetic unit that performs calculation on integer data or fixed-point data,
An arithmetic control method, comprising: supplying an arithmetic result of the one arithmetic means to the other arithmetic means when an arithmetic result of the one arithmetic means is an integer.
[0077]
Further, in claims 6 to 11, one of the plurality of computing means is a graphics computing unit for computing graphics data.
The other calculation means among the plurality of calculation means is an integer or fixed-point arithmetic unit that performs calculation on integer data or fixed-point data,
An arithmetic control method, comprising: supplying an arithmetic result of the one arithmetic means to the other arithmetic means when an arithmetic result of the one arithmetic means is an integer.
[0078]
【The invention's effect】
According to the present invention, when a calculation result in a floating point arithmetic unit or a graphic arithmetic unit becomes an integer and an integer or a fixed point arithmetic is performed next, an arithmetic operation in a floating point arithmetic unit or a graphic arithmetic unit is performed. The result can be converted into integer data or fixed-point data and supplied to an integer or fixed-point arithmetic unit or graphic arithmetic unit register or integer or fixed-point arithmetic unit to perform integer arithmetic, so floating-point arithmetic units or graphic operations There is no need to exchange data between the register of the calculator and the register of the integer or fixed-point arithmetic unit, and a high throughput of the arithmetic processing can be expected.
[Brief description of the drawings]
FIG. 1 is a block diagram of a conventional example.
FIG. 2 is a block diagram of a first embodiment of the present invention.
FIG. 3 is an operation explanatory diagram of the graphics application according to the first embodiment of this invention.
FIG. 4 is an operation explanatory diagram of the graphics application according to the first embodiment of this invention.
FIG. 5 is a flowchart of the graphics application according to the first embodiment of the present invention.
FIG. 6 is a block diagram of a second embodiment of the present invention.
FIG. 7 is a block diagram of a third embodiment of the present invention.
FIG. 8 is a block diagram of a fourth embodiment of the present invention.
FIG. 9 is a block diagram of a fifth embodiment of the present invention.
FIG. 10 is a block diagram of a sixth embodiment of the present invention.
FIG. 11 is a block diagram of a seventh embodiment of the present invention.
FIG. 12 is a block diagram of an eighth embodiment of the present invention.
FIG. 13 is a block diagram of a ninth embodiment of the present invention.
FIG. 14 is a block diagram of a tenth embodiment of the present invention.
FIG. 15 is a block diagram of an eleventh embodiment of the present invention.
FIG. 16 is a block diagram of a twelfth embodiment of the present invention.
[Explanation of symbols]
100, 130, 132, 134, 136, 137, 138, 139, 140, 142, 143, 144
101 Floating point arithmetic unit
102 Integer operation part
103 Control unit
104 Floating point register
105 Floating point arithmetic unit
113 General-purpose registers
114 integer arithmetic unit
Claims (2)
前記第2のレジスタファイル手段に保持された演算対象を、前記第1のレジスタファイル手段を経由せずに前記第1の演算手段の演算対象として供給することを特徴とする演算装置。A first register file means for holding an operation target and an operation result, and a first register file means for holding an operation object and an operation result in a data format different from the data format of the operation object and the operation result held in the first register file means . and second register file means, have row operations in a predetermined data format with respect to the operation target held in the first register file means, the first and supplies the calculation result to the first register file means and calculating means, have the row calculation of different data format than the first calculating means with respect to the operation target held in the second register file means, supplies the operation result to the second register file means to a computing device and a second computing means,
Wherein the operation target held in the second register file means, computing device, wherein the benzalkonium be supplied as an operation target of the first calculating means without passing through said first register file means.
前記第2のレジスタファイル手段に保持された演算対象を、前記第1のレジスタファイル手段を経由せずに前記第1の演算手段の演算対象として供給することを特徴とする演算制御方法。A calculation control method, characterized in that the calculation target held in the second register file means is supplied as the calculation target of the first calculation means without going through the first register file means.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25079899A JP3638100B2 (en) | 1999-09-03 | 1999-09-03 | Arithmetic apparatus and arithmetic control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25079899A JP3638100B2 (en) | 1999-09-03 | 1999-09-03 | Arithmetic apparatus and arithmetic control method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001075779A JP2001075779A (en) | 2001-03-23 |
JP3638100B2 true JP3638100B2 (en) | 2005-04-13 |
Family
ID=17213216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP25079899A Expired - Fee Related JP3638100B2 (en) | 1999-09-03 | 1999-09-03 | Arithmetic apparatus and arithmetic control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3638100B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4861030B2 (en) * | 2006-03-24 | 2012-01-25 | 株式会社東芝 | Semiconductor device |
-
1999
- 1999-09-03 JP JP25079899A patent/JP3638100B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001075779A (en) | 2001-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI402766B (en) | Graphics processor | |
US9442723B2 (en) | Method and apparatus for integral image computation instructions | |
US9792115B2 (en) | Super multiply add (super MADD) instructions with three scalar terms | |
US11256504B2 (en) | Apparatus and method for complex by complex conjugate multiplication | |
US10037210B2 (en) | Apparatus and method for vector instructions for large integer arithmetic | |
EP3798823A1 (en) | Apparatuses, methods, and systems for instructions of a matrix operations accelerator | |
US9910670B2 (en) | Instruction set for eliminating misaligned memory accesses during processing of an array having misaligned data rows | |
US11301581B2 (en) | Instruction execution that broadcasts and masks data values at different levels of granularity | |
US10922077B2 (en) | Apparatuses, methods, and systems for stencil configuration and computation instructions | |
US9785436B2 (en) | Apparatus and method for efficient gather and scatter operations | |
US11409525B2 (en) | Apparatus and method for vector multiply and accumulate of packed words | |
US10552154B2 (en) | Apparatus and method for multiplication and accumulation of complex and real packed data elements | |
US10749502B2 (en) | Apparatus and method for performing horizontal filter operations | |
US20030097389A1 (en) | Methods and apparatus for performing pixel average operations | |
US20060218380A1 (en) | Add-shift-round instruction with dual-use source operand for DSP | |
JP3638100B2 (en) | Arithmetic apparatus and arithmetic control method | |
US20060218377A1 (en) | Instruction with dual-use source providing both an operand value and a control value | |
US11768681B2 (en) | Apparatus and method for vector multiply and accumulate of packed bytes | |
US6128725A (en) | Microprocessor with an instruction for setting or clearing a bit field | |
US20200104100A1 (en) | Apparatus and method for multiplication and accumulation of complex values | |
US20220100507A1 (en) | Apparatuses, methods, and systems for instructions to convert 16-bit floating-point formats | |
US20190102183A1 (en) | Apparatus and method for multiplication and accumulation of complex and real packed data elements | |
JP3547316B2 (en) | Processor | |
JPH06324867A (en) | Information processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040419 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040427 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040628 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040907 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041105 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20041118 |
|
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: 20050105 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050106 |
|
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: 20080121 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090121 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100121 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110121 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110121 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120121 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130121 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130121 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140121 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |