JP3638100B2 - Arithmetic apparatus and arithmetic control method - Google Patents

Arithmetic apparatus and arithmetic control method Download PDF

Info

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
Application number
JP25079899A
Other languages
Japanese (ja)
Other versions
JP2001075779A (en
Inventor
昭彦 大和田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP25079899A priority Critical patent/JP3638100B2/en
Publication of JP2001075779A publication Critical patent/JP2001075779A/en
Application granted granted Critical
Publication of JP3638100B2 publication Critical patent/JP3638100B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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 processor 1 includes a secondary cache 2, an instruction cache 3, a predecode unit 4, an instruction buffer 5, a dispatch unit 6, a load store unit 7, a general register 8, an integer or fixed point arithmetic unit 9, a floating point register 10, and a floating point. It comprises a calculation unit 11 and a data input / output unit 12. Data is supplied from the local interconnect 13. Instructions supplied from the local interconnect 13 are supplied to the dispatch unit 6 via the secondary cache 2, the instruction cache 3, the predecode unit 4, and the instruction buffer 5, and are sent to the integer arithmetic unit 9 and the floating point arithmetic unit 11. give. The data is supplied to the general-purpose register 8 and the floating-point register 10 via the secondary cache 2, the instruction cache 3, and the load / store unit 7, and held. Data to be integer-calculated by the integer arithmetic unit 9 and the integer arithmetic result by the integer arithmetic unit 9 are held in the general-purpose register 8. In addition, data to be subjected to floating-point arithmetic by the floating-point arithmetic unit 11 and floating-point arithmetic results in the floating-point arithmetic unit 11 are held in the floating-point register 10.
[0004]
Further, when the calculation result in the integer calculation unit 9 is calculated by the instruction in the floating-point calculation unit 11, after the data held in the general-purpose register 8 is loaded into the floating-point register 10 via the load / store unit 7, The calculation was performed by the floating point calculator 11.
Further, when the arithmetic result of the floating point arithmetic unit 11 is calculated by the instruction by the integer arithmetic unit 9, the data held in the floating point register 8 is loaded into the general-purpose register 8 via the load register 7 and then the integer. The calculation was performed by the calculator 9.
[0005]
That is, when data is exchanged between the integer arithmetic unit 9 and the floating point arithmetic unit 11, the general-purpose register 8 and the floating point register 10 must be passed through. The integer arithmetic unit 9 may be a fixed point arithmetic unit.
[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 floating point register 104 and a floating point arithmetic unit 105. The floating point register 104 holds floating point data to be used when the floating point arithmetic unit 105 performs an operation relating to the floating point. The floating-point arithmetic unit 105 is supplied with the floating-point data held in the floating-point register 104, and executes a calculation related to the floating point.
[0014]
The floating point arithmetic unit 105 includes staging latches 106-1, 106-2, 107-1, 107-2, 108-1, 108-2, 109, floating point arithmetic units 110, 111, and a multiplexer 112.
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 arithmetic unit 105 for each stage. .
[0015]
The staging latch 106-1 holds the floating point data held in the floating point arithmetic register 104 as the first operation target source1. The staging latch 106-2 holds the floating point data held in the floating point arithmetic register 104 as the second operation target source2. Note that the first and second calculation targets source1 and source2 are operands in the program code.
[0016]
The floating point data held in the staging latch 106-1 is supplied to the floating point arithmetic unit 110 and the multiplexer 112. The floating point data held in the staging latch 106-2 is supplied to the floating point arithmetic unit 110 and the staging latch 107-2.
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 multiplexer 112.
[0017]
The multiplexer 112 selects the floating-point data held in the staging latch 106-1 or the calculation result executed by the floating-point arithmetic unit 110 according to the control signal supplied from the control unit 103 according to the instruction, and performs staging. Supply to the latch 107-1.
The floating point arithmetic unit 110 and the multiplexer 112 constitute a first arithmetic stage ST1 of the floating point arithmetic unit 105.
[0018]
The floating point data held in the staging latch 107-1 is supplied to the staging latch 108-1 and the floating point arithmetic unit 111. The floating point data held in the staging latch 107-2 is supplied to the floating point arithmetic unit 111.
The floating point arithmetic unit 111 performs floating point arithmetic on the floating point data held in the staging latch 107-1 and the floating point data held in the staging latch 107-2. The floating point arithmetic unit 111 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 111 is held in the staging latch 108-2. The floating point arithmetic unit 111 constitutes the second arithmetic stage ST2 of the floating point arithmetic unit 111.
[0019]
The floating point data held in the staging latch 108-2 is held in the staging latch 109. The floating point data held in the staging latch 109 is held in the floating point arithmetic register 104 as a calculation result of the floating point arithmetic unit 105.
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-purpose register 113 and an integer calculator 114. The general-purpose register 113 holds integer data used for integer arithmetic. The integer data held in the general-purpose register 113 is supplied to the integer calculator 114.
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 arithmetic units 119, 120, and multiplexers 121, 122.
[0021]
The staging latch 115-1 holds the integer data held in the general-purpose register 113 as the first calculation target source1. The staging latch 115-2 holds the integer data held in the general-purpose register 113 as the second operation target source2. Note that the first and second calculation targets source1 and source2 are operands in the program code.
[0022]
The integer data held in the staging latch 115-1 is supplied to the integer arithmetic unit 119 and the multiplexer 121. The integer data held in the staging latch 115-2 is supplied to the integer arithmetic unit 119 and the staging latch 116-2.
The integer operation unit 119 is supplied with integer data held in the stage latch 115-1 and integer data held in the staging latch 115-2. The integer arithmetic unit 119 performs integer arithmetic on the integer data held in the stage latch 115-1 and the integer data held in the staging latch 115-2. The operation result of the integer operation unit 119 is supplied to the multiplexer 121. The integer arithmetic unit 119 is controlled in accordance with a control signal supplied from the instruction control unit 103.
[0023]
An integer calculation result in the integer calculation unit 119 is supplied to the multiplexer 121. The multiplexer 121 selects the integer data held in the staging latch 115-1 according to the control signal supplied from the control unit 103 according to the instruction or the calculation result executed by the integer arithmetic unit 119, and the staging latch 116. -1.
[0024]
The integer arithmetic unit 119 and the multiplexer 121 constitute a first arithmetic stage ST1 of the integer arithmetic unit 114.
The integer data held in the staging latch 116-1 is supplied to the staging latch 117-1 and the integer arithmetic unit 120. The integer data held in the staging latch 116-2 is supplied to the integer arithmetic unit 120.
[0025]
The integer arithmetic unit 120 performs integer arithmetic on the integer data held in the staging latch 116-1 and the integer data held in the staging latch 116-2. The integer arithmetic unit 120 is controlled in accordance with a control signal supplied from the instruction control unit 103. An integer operation result in the integer operation unit 120 is held in the staging latch 117-2. The integer arithmetic unit 120 constitutes the second arithmetic stage ST2 of the integer arithmetic unit 120.
[0026]
The integer data held in the staging latches 117-1 and 117-2 is supplied to the multiplexer 122. In addition to the integer data held in the staging latches 117-1 and 117-2, the operation result held in the staging latch 108-2 of the floating-point arithmetic unit 105 is supplied to the multiplexer 122. The multiplexer 122 selects one of the integer data held in the staging latches 117-1 and 117-2 and the operation result held in the staging latch 108-2 of the floating point arithmetic unit 105 according to the set instruction. Select and output.
[0027]
The integer data selected by the multiplexer 122 is supplied to the staging latch 118. Note that the multiplexer 122 constitutes the third arithmetic stage ST3 of the integer arithmetic unit 120.
The integer data held in the staging latch 118 is held in the general-purpose register 113 as an integer calculation result of the integer calculator 114.
[0028]
Next, the control unit 103 will be described.
The control unit 103 includes a dispatch unit 123, staging latches 124 to 126, and instruction decoders 127 to 129.
The dispatch unit 123 issues instructions for the floating point arithmetic unit 105 and the integer arithmetic unit 114. The instruction issued by the dispatch unit 123 is an opcode in the program code.
[0029]
The staging latches 124 to 126 hold instructions flowing in the instruction pipeline path. The staging latch 124 holds the instruction of the first operation stage ST1. The instruction held in the staging latch 124 is supplied to the instruction decoder 127.
[0030]
The instruction decoder 127 decodes the instruction executed in the first operation stage ST1 held in the staging latch 124. The floating point arithmetic unit 110 and the multiplexer 112, and the integer arithmetic unit 119 and the multiplexer 121 are controlled based on the decoding result of the instruction decoder 127.
[0031]
The instruction decoder 128 decodes the instruction executed in the second operation stage ST2 held in the staging latch 125. The floating point arithmetic unit 111 and the rectifying arithmetic unit 120 are controlled by the decoding result of the instruction decoder 128.
The instruction decoder 129 decodes instructions executed in the third operation stage ST3 held in the staging latch 126. The multiplexer 122 is controlled by the decoding result of the instruction decoder 129.
[0032]
In this embodiment, the operation result of the floating point arithmetic unit 105 is supplied to the multiplexer 122 built in the integer arithmetic unit 114, so that it is not necessary to create the multiplexer 122 separately, so that the configuration is simplified. it can.
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 dispatch unit 123 is held in the staging latch 124 for instruction pipeline path. The integer data held in the general-purpose register 113 is held in pipeline path staging latches 115-1 and 115-2 as calculation targets source 1 and source 2 of the integer calculation unit 13.
[0034]
Further, the instruction held in the instruction pipeline path staging latch 124 is decoded by the instruction decoder 127, and if it is an instruction for the integer arithmetic unit 119, the integer arithmetic unit 119 is controlled to execute the arithmetic operation. The instruction decoder 127 controls the selection of the multiplexer 121 based on the decoding result. The calculation result is held in the staging latch 116-1 according to the selection result of the multiplexer 121.
[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 integer arithmetic unit 120, the instruction decoder 12 controls the multiplexer 15 to output the operation target source 1 to the staging latch 116-1.
[0036]
Next, the integer arithmetic unit 120 performs an operation on the operation targets source1 and source2 of the general-purpose register 113 held in the staging latches 116-1 and 116-2 based on the decoding result in the instruction decoder 128, and the staging latch 117-2. The operation result is output for.
The operation result held in the staging latch 116-1 is selected by the multiplexer 122 by the instruction decoded by the instruction decoder 129 through the staging latch 117-1, and selected by the general-purpose register 113 through the staging latch 118. It is reflected in the destination register.
[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 dispatch unit 123 is held in the staging latch 124. In addition, the calculation targets source1 and source2 of the floating point arithmetic unit 110 are read from the floating point register 104 and held in the staging latches 106-1 and 106-2.
[0038]
Next, the instruction held in the staging latch 124 is decoded by the instruction decoder 127. If the instruction decoded by the staging decoder 127 is an instruction for the floating-point arithmetic unit 110, the floating-point arithmetic unit 110 performs an operation. Further, the multiplexer 112 performs selection control according to the instruction decoded by the staging latch. The operation result selected by the multiplexer 112 is held in the staging latch 107-1.
[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 point register 104 through the staging latch 109.
Next, the operation of the floating point arithmetic unit 105 in response to a specific arithmetic instruction (source register: floating point register, destination register: general-purpose register) that is the gist of the present invention will be described.
[0040]
The instruction issued to the floating point arithmetic unit 105 by the dispatch unit 123 is held in the staging latch 124. Further, the operation targets source1 and source2 are read from the floating point register 104 serving as a source register and held in the staging latches 106-1 and 106-2.
Next, the instruction held in the staging latch 124 is decoded by the instruction decoder 127. If the decoding result of the instruction decoder 127 is an instruction for the floating-point arithmetic unit 111, the multiplexer 112 selects the operation target source1 held in the staging latch 106-1. The calculation target source1 selected by the multiplexer 112 is held in the staging latch 107-1.
[0041]
Further, the floating point arithmetic unit 111 performs floating point arithmetic on the operation targets source1 and source2 held in the staging latches 107-1 and 107-2 based on the decoding result of the instruction decoder 128. The calculation result in the floating point calculation unit 111 is held in the staging latch 108-2.
[0042]
Further, the instruction decoder 129 decodes the instruction held in the staging latch 126. The multiplexer 122 selects the calculation result in the floating point arithmetic unit 111 held in the staging latch 108-2 based on the decoding result of the instruction decoder 129.
The calculation result in the floating point arithmetic unit 111 selected by the multiplexer 122 is held in the staging latch 118. The operation result in the floating point arithmetic unit 111 held in the staging latch 118 is reflected in the destination register in the general-purpose register 113.
[0043]
As described above, the calculation result in the floating point arithmetic unit 101 is reflected in the general-purpose register 113 without passing through the floating point arithmetic register 104.
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.
Image plane # 0 shown in FIG. 3 is overlaid on image plane # 1 shown in FIG. 3 to create image plane # 2.
[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 image plane # 0, # 1 is set as the brightness value value0, value1,
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 image plane # 0 is output as the brightness value value2 of the corresponding pixel of the image plane # 2 (step S8).
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 image plane # 1 is output as the brightness value value2 of the corresponding pixel of the image plane # 2 (step S9).
[0050]
The combined image plane # 2 is created by repeating the steps S4 to S9 for each pixel of the image planes # 0, # 1, and # 2 (steps S10 and S11).
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 multiplexer 131 is disposed between the output of the integer arithmetic unit 114 and the general-purpose register 113. The multiplexer 131 is supplied with the operation result of the floating point arithmetic unit 105 and the operation result of the integer arithmetic unit 114. The multiplexer 131 selects either the operation result of the floating point arithmetic unit 105 or the operation result of the integer arithmetic unit 114 according to the instruction, and supplies the selected result to the general-purpose register 113.
[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 multiplexer 133 is provided in the final arithmetic stage of the floating point arithmetic unit 105 and the arithmetic result of the integer arithmetic unit 114 is input to the multiplexer 133. The multiplexer 133 is supplied with the operation result of the floating point arithmetic unit 105 and the operation result of the integer arithmetic unit 114. The multiplexer 133 selects either the operation result of the floating point arithmetic unit 105 or the operation result of the integer arithmetic unit 114 according to the instruction, and supplies the selected result to the floating point register 104.
[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 multiplexer 135 is disposed between the output of the floating point arithmetic unit 105 and the floating point register 104. The multiplexer 135 is supplied with the operation result of the floating point arithmetic unit 105 and the operation result of the integer arithmetic unit 114. The multiplexer 135 selects either the operation result of the floating point arithmetic unit 105 or the operation result of the integer arithmetic unit 114 according to the instruction to the floating point arithmetic unit 105 and supplies the selected result to the floating point register 104.
[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 arithmetic unit 105, and the data held in the general-purpose register 113 can be selected as the operation target source3.
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 arithmetic unit 105.
[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 arithmetic unit 105 to the multiplexer 122 provided at the final arithmetic stage of the integer arithmetic unit 114, and the data held in the general-purpose register 113 to the floating point arithmetic unit. The calculation target source3 is configured to be readable.
[0060]
According to the present embodiment, the calculation result of the floating point arithmetic unit 105 can be directly held in the general purpose register 113 and the data held in the general purpose register 113 can be directly operated by the floating point arithmetic unit 105.
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-point register 104 is read out as an integer arithmetic unit. It may be possible to read as a calculation target (source).
[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-point register 104 can be selected as the calculation target source3. .
[0062]
According to the present embodiment, the operation result of the floating point arithmetic unit 105 can be used as the operation target of the integer arithmetic unit 114 without being moved to the general-purpose register 113.
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 multiplexer 133 is provided in the final arithmetic stage of the floating point arithmetic unit 105 and the arithmetic result of the integer arithmetic unit 114 is input to the multiplexer 133. The multiplexer 133 is supplied with the operation result of the floating point arithmetic unit 105 and the operation result of the integer arithmetic unit 114. The multiplexer 133 selects either the operation result of the floating point arithmetic unit 105 or the operation result of the integer arithmetic unit 114 according to the instruction, and supplies the selected result to the floating point register 104.
[0064]
According to the present embodiment, by reading the data held in the floating point register 104 as the calculation target source3 of the integer arithmetic unit 114, the result of the floating point calculation can be subjected to integer calculation without passing through the general-purpose register 113. Further, by selecting the operation result of the integer arithmetic unit 114 by the multiplexer 133, the integer data can be held in the floating point register 104 and used for the floating point operation, so that the integer data is not passed through the general-purpose register 104. Floating point arithmetic can be performed.
[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 arithmetic device 140 according to the present embodiment is configured such that a multiplexer 141 is provided between the general-purpose register 113 and the integer arithmetic unit 114. The multiplexer 141 is supplied with the data held in the general-purpose register 113 and the calculation result of the floating point arithmetic unit 105. The multiplexer 141 selects either the data held in the general-purpose register 113 or the operation result of the floating point arithmetic unit 105 according to the instruction, and supplies it as the operation target source2 of the integer arithmetic unit 114.
[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 arithmetic unit 105 to the multiplexer 141 provided between the general-purpose register 113 and the integer arithmetic unit 114, and also outputs the arithmetic result of the integer arithmetic unit 114 to the floating point. A configuration is adopted in which the data is supplied to a multiplexer 133 provided in the final calculation stage of the calculator 105.
[0068]
When performing an integer operation on the operation result of the floating point arithmetic unit 105, the multiplexer 141 is controlled by the instruction of the integer arithmetic unit 114, and the operation result of the floating point arithmetic unit 105 is transferred to the integer arithmetic unit 114. Supply as.
Further, when the arithmetic result of the integer arithmetic unit 114 is subjected to floating point arithmetic, the multiplexer 133 is controlled by the instruction of the floating point arithmetic unit 105 so that the arithmetic result of the integer arithmetic unit 114 is supplied to the floating point register 104. .
[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 arithmetic unit 105.
[0070]
According to the present embodiment, the operation result of the integer arithmetic unit 114 can be supplied to the floating point arithmetic unit 105 without passing through the general-purpose register 113 and the floating point register 104 and used for the floating point arithmetic operation.
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 multiplexer 145 is provided in the arithmetic device of the first embodiment. The multiplexer 145 is provided between the floating point register 104 and the floating point arithmetic unit 105. The multiplexer 145 is supplied with the data held in the floating point register 145 and the operation result of the integer arithmetic unit 114.
[0072]
The multiplexer 145 is controlled by the instruction of the floating point arithmetic unit 105 and supplies either the data held in the floating point register 145 or the operation result of the integer arithmetic unit 114 as the operation target source 2 of the floating point arithmetic unit 105.
According to this embodiment, the operation result in the floating point arithmetic unit 105 is held in the general-purpose register 113 without passing through the floating point register 104 by controlling the multiplexer 122 provided in the final arithmetic stage of the integer arithmetic unit 114. The integer calculator 114 can perform integer calculations. Further, by supplying the calculation result of the integer arithmetic unit 114 to the floating point arithmetic unit 105 through the multiplexer 145, the floating point arithmetic can be performed without passing through the floating point register 104 and the general purpose register 113.
[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 claim 2, wherein the calculation means includes a plurality of calculation stages;
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 Claims 1 to 5, one computing means among the plurality of computing means is a floating-point arithmetic unit that performs computation on floating-point data,
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)

演算対象及び演算結果を保持する第1のレジスタファイル手段と、前記第1のレジスタファイル手段に保持される演算対象及び演算結果のデータ形式とは異なるデータ形式の演算対象及び演算結果を保持する第2のレジスタファイル手段と、該第1のレジスタファイル手段に保持された演算対象に対して所定のデータ形式の演算を行い、その演算結果を前記第1のレジスタファイル手段に供給する第1の演算手段と、該第2のレジスタファイル手段に保持された演算対象に対して該第1の演算手段とは異なるデータ形式の演算を行い、その演算結果を前記第2のレジスタファイル手段に供給する第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.
演算対象及び演算結果を保持する第1のレジスタファイル手段と、前記第1のレジスタファイル手段に保持される演算対象及び演算結果のデータ形式とは異なるデータ形式の演算対象及び演算結果を保持する第2のレジスタファイル手段と、該第1のレジスタファイル手段に保持された演算対象に対して所定のデータ形式の演算を行い、その演算結果を前記第1のレジスタファイル手段に供給する第1の演算手段と、該第2のレジスタファイル手段に保持された演算対象に対して該第1の演算手段とは異なるデータ形式の演算を行い、その演算結果を前記第2のレジスタファイル手段に供給する第2の演算手段とを有する演算装置の演算制御方法であって、A first register file means for holding a calculation target and a calculation result; a first register file means for holding a calculation target and a calculation result in a data format different from the data format of the calculation target and the calculation result held in the first register file means; First register file means and a first operation for performing an operation in a predetermined data format on the operation object held in the first register file means and supplying the operation result to the first register file means And a calculation object having a data format different from that of the first calculation means on the calculation target held in the second register file means and supplying the calculation result to the second register file means. An arithmetic control method for an arithmetic device having two arithmetic 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.
JP25079899A 1999-09-03 1999-09-03 Arithmetic apparatus and arithmetic control method Expired - Fee Related JP3638100B2 (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4861030B2 (en) * 2006-03-24 2012-01-25 株式会社東芝 Semiconductor device

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