JP7032647B2 - 演算処理装置及び演算処理装置の制御方法 - Google Patents
演算処理装置及び演算処理装置の制御方法 Download PDFInfo
- Publication number
- JP7032647B2 JP7032647B2 JP2018079011A JP2018079011A JP7032647B2 JP 7032647 B2 JP7032647 B2 JP 7032647B2 JP 2018079011 A JP2018079011 A JP 2018079011A JP 2018079011 A JP2018079011 A JP 2018079011A JP 7032647 B2 JP7032647 B2 JP 7032647B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- rss
- allocation
- decoder
- execution
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 23
- 101000616172 Homo sapiens Splicing factor 3B subunit 3 Proteins 0.000 description 93
- 102100021816 Splicing factor 3B subunit 3 Human genes 0.000 description 93
- 101000590492 Homo sapiens Nuclear fragile X mental retardation-interacting protein 1 Proteins 0.000 description 26
- 102100032428 Nuclear fragile X mental retardation-interacting protein 1 Human genes 0.000 description 26
- 238000010586 diagram Methods 0.000 description 14
- -1 RSE0 Proteins 0.000 description 9
- 239000000872 buffer Substances 0.000 description 8
- 230000015654 memory Effects 0.000 description 8
- 230000007423 decrease Effects 0.000 description 7
- 230000001419 dependent effect Effects 0.000 description 5
- 230000000052 comparative effect Effects 0.000 description 4
- 230000010365 information processing Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
Description
L個(Lは複数でK>L)の入力ポートと、前記実行命令を前記L個の入力ポートを介してキューインする命令キューとをそれぞれ有する第1乃至第4のリザベーションステーション(以下RSと称する)と、
前記第1及び第2のRSをそれぞれが専用に有し、前記第1及び第2のRSそれぞれにキューインされた実行命令をそれぞれが専ら実行する第1及び第2の演算ユニットと、
前記第3及び第4のRSをそれぞれが専用に有し、前記第3及び第4のRS内それぞれにキューインされた実行命令をそれぞれが専ら実行する第1及び第2のロードストアユニット(以下LSユニットと称する)と、
前記命令デコーダの前記K個のデコーダスロットそれぞれが生成するK個の前記実行命令を、前記第1乃至第4のRSのいずれかに割り振るアロケーションユニットとを有し、
前記アロケーションユニットは、
(1)前記実行命令が前記第1及び第2の演算ユニットで実行でき、前記第1及び第2のLSユニットで実行できない第1の命令の場合、前記第1の命令を第1の割振りテーブルに基づいて前記第1または第2のRSに割振り、
(2)前記実行命令が前記第1及び第2のLSユニットで実行でき、前記第1及び第2の演算ユニットで実行できない第2の命令の場合、前記第2の命令を第2の割振りテーブルに基づいて前記第3または第4のRSに割振り、
(3)前記実行命令が前記第1及び第2のLSユニットと前記第1及び第2の演算ユニットとで実行できる第3の命令の場合、前記第3の命令を第3の割振りテーブルに基づいて前記第1乃至第4のRSのいずれかに割振り、
前記第1、第2、第3の割振りテーブルは、前記K個のデコーダスロットそれぞれに対応するK個の割振り先RSを有し、
前記第1の割振りテーブルは、前記K個の割振り先RSを、前記第1及び第2のRSをそれぞれ前記L個以下で、且つ前記第1及び第2のRSの命令キューの空きがより多いとより少ないについて第1の順番の組み合わせで有し、
前記第2の割振りテーブルは、前記K個の割振り先RSを、前記第3及び第4のRSをそれぞれ前記L個以下で、且つ前記第1の順番の組み合わせで有し、
前記第3の割振りテーブルは、前記K個の割振り先RSを、第1の複数デコーダスロットに対して、前記第1の割振りテーブルの前記第1の複数デコーダスロットに対する割振り先RSとし、前記第1の複数デコーダスロットと異なる第2の複数デコーダスロットに対して、前記第2の割振りテーブルの前記第2の複数デコーダスロットに対する割振り先RSとし、且つ前記第1の順番の組み合わせで有する、演算処理装置である。
[プロセッサの構成例]
図2は、本実施の形態におけるプロセッサの構成例を示す図である。図2に示したプロセッサは、演算器として、ロードストアユニットとして動作するオペランドアドレス生成器OP_ADD_GEN(EAGA,EAGB)と、固定小数点演算器EXA,EXBとを有する。オペランドアドレス生成器は、アドレス計算するための加減算回路と、データを格納する1次データキャッシュメモリL1_DCACHEと、キャッシュミスした場合のメインメモリへのアクセス制御ユニットを有する。従って、オペランドアドレス生成器も一種の演算器である。
図3は、本実施の形態における命令デコーダの一例を示す図である。命令デコーダI_DECは、4つのデコーダスロットD0-D3を有する。各デコーダスロットD0-D3は、入力されるフェッチ命令F_INSTをラッチする入力バッファと、フェッチ命令をデコードして実行命令を生成する実行命令生成部13と、実行命令EX_INSTを発行する実行命令発行部14とを有する。実行命令は、フェッチされた命令のオペコードを実行可能にするためのデコード結果を含んだ命令である。例えば、どのリザベーションステーションを使用するか、どの演算器を使用するか、オペランドにどのデータを使用するかなど、演算に必要な情報を含む命令である。実行命令生成部13は、フェッチされた命令オペコードをデコードし、演算実行に必要な情報を得て実行命令を生成する。
図4は、リザベーションステーションの入力ポート数を制限した構成例を示す図である。図4により、前述した改良例(1)について説明する。
Add x0, x0, x0
Add x0, x0, x0
Add x0, x0, x0
Add x0, x0, x0
上記のプログラムでは、アーキテクチャレジスタ内のレジスタx0の値にレジスタx0の値を加算して、同じレジスタx0に書き込む加算命令Addが4回連続する。つまり、4つの加算命令は、それぞれ1つ前の加算命令の加算結果を次の加算命令が入力に利用するという依存性を有する。そこで、一つ前の加算命令の加算結果を、リネーミングレジスタ及びアーキテクチャレジスタを経由せずに、上記のパスB_00を経由して演算器EX_0の入力オペランドに供給すれば、各加算命令の実行サイクルを最短化することができる。
図6は、本実施の形態におけるアロケーションユニットの構成例を示す図である。アロケーションユニットALC_UNTは、命令デコーダI_DECの4つのスロットD0-D3が出力する実行命令をどのリザベーションステーションに割振るかを示す割振りテーブルALC_tableと、割振りテーブルを参照して、各スロットD0-D3の実行命令をどのリザベーションステーションに割振るかを決定する割振り制御部16と、割振り制御部が決定した各スロットD0-D3の割振り先情報に基づいて、各スロットD0-D3の実行命令を割振り先のリザベーションステーションに割振る割振り部17とを有する。
図7は、割振りテーブルの第1の例を示す図である。割振りテーブル内のD0-D3は命令デコーダの4つのスロットを示す。また、割振りテーブルRSE_table1, RSA_table_1, RSX_table_1及びRSX_table_2は、各スロットD0-D3から出力される実行命令が上記のRSE命令、RSA命令、RSX命令かに基づいて選択される割振りテーブルである。これらの割振りテーブルは基本となる割振りテーブルであり、第1の実施の形態で使用される。
RSEm:RSE0,RSE1のうち、空き数が多い方(more)のRS
RSEf:RSE0,RSE1のうち、空き数が少ない方(fewer)のRS
RSAm:RSA0,RSA1のうち、空き数が多い方(more)のRS
RSAf:RSA0,RSA1のうち、空き数が少ない方(fewer)のRS
他の割振りテーブルRSE_table_2, RSA_table_2, RSX_table_3~RSX_table_6については、後の実施の形態で説明する。
(1)割振り対象の実行命令がRSE命令の場合(S3のYES)、割振りテーブルRSE_table_1に基づいて割振り先RSを決定する(S4)。
(2)さらに、割振り対象の実行命令がRSA命令の場合(S5のYES)、割振りテーブルRSA_table_1に基づいて割振り先RSを決定する(S6)。
(3)さらに、割振り対象の実行命令がRSX命令の場合(S7のYES)、割振りテーブルRSX_table_1またはRSX_table_2に基づいて割振り先RSを決定する(S8)。どちらのテーブルにするかは、リザベーションステーションRSE0,RSE1の合計空き数と、RSA0,RSA1の合計空き数とを比較し、RSE側の合計空き数が多ければ、割振りテーブルRSX_table_1を選択する。
そして、RSE,RSA,RSX命令のいずれにも該当しない場合(S7のNO)、RSE、RSAには割り振らない(S9)。このような命令は、分岐命令やNOP(Non Operation)命令などである。
RSE命令用の割振りテーブルRSE_table_1は、各スロットD0-D3に対して、割振り先RSをRSEm/RSEf/RSEm/RSEfとする。これは図7の第1の例である。つまり、スロットD0,D2のRSE命令の割振り先をRSEmとし、スロットD1,D3のRSE命令の割振り先をRSEfとする。また、スロットD0-D3に対して割振り先が全てRSEになっている。そして、割振り先RSとしてRSE0,RSE1を2個以下(RSの入力ポート数2以下)で同数有する。更に、スロットD0-D3に対して、空きが多いRS/空きが少ないRS/空きが多いRS/空きが少ないRSという第1の順番(m/f/m/f)になっている。
図10には示していないが、図7の割振りテーブル例のRSA命令用の割振りテーブルRSA_table_1は、RSE命令用の割振りテーブルTSE_table_1と同様に、スロットD0-D3の順番に、RSAm/RSAf/RSAm/RSAfと、RSAmが2つ、RSAfが2つで、全てRSAになっている。つまり、スロットD0,D2のRSA命令の割振り先をRSAmとし、スロットD1,D3のRSA命令の割振り先をRSAfとする。また、スロットD0-D3に対して割振り先が全てRSAになっている。そして、割振り先RSとしてRSA0,RSA1を2個以下(RSの入力ポート数2以下)で同数有する。更に、空きが多いRS/空きが少ないRS/空きが多いRS/空きが少ないRSという第1の順番(m/f/m/f)になっている。その結果、RSE用テーブルと同じ機能を有する。
一方、RSX命令用の割振りテーブルRSX_table_1は、各スロットD0-D3に対して、割振り先RSをRSEm/RSEf/RSAm/RSAfにする。これも図7に示した例である。つまり、割振り先は、RSEm,RSEf,RSAm,RSAfがそれぞれ1つであり、RSEかRSAかについては、D0-D3に対してRSE/RSE/RSA/RSAという順番(E/E/A/A)になっている。さらに、RSE命令用テーブルとRSA命令用テーブルと同様に、空きが多いRS/空きが少ないRS/空きが多いRS/空きが少ないRSという第1の順番(m/f/m/f)になっている。そして、4つの割振り先RSは、RSE0,RSE1,RSA0,RSA1を同数有する。
同様に、図7の2番目のRSX命令用の割振りテーブルRSX_table_2は、1番目のRSX命令用割振りテーブルRSX_table_1とRSEとRSAの順番が逆に(A/A/ E/E)なっているが、両者は同様にRSEm,RSEf,RSAm,RSAfがそれぞれ1つであり、更に、RSE命令用テーブルとRSA命令用テーブルと同様に、空きが多いRS/空きが少ないRS/空きが多いRS/空きが少ないRSという第1の順番(m/f/m/f)になっている。
そこで、図10のテーブルT1の例を参照すると、スロットD0-D3の4つの命令がどのような組み合わせであっても、同じRSEまたはRSAに3個以上の命令が割り振られることはない。また、同じ命令種別のRS間では、空きが多いRS数と少ないRS数が同じで且つ順番が先のスロット側が空きが多いRS(RSm)であり、同じ命令種別間の命令数が均一化されるようになっている。
第2の実施の形態では、前述の改良(2)に対応して、RSEとRSAの間の割振り命令数を均一化するとともに、RSE0,RSE1,RSA0,RSA1全てで割振り命令数を均一化する割振りテーブルを使用して実行命令の割振りを行う。そのために、アロケーションユニットは、図7または図8の割振りテーブルRSE_table_1, RSA_table_1, RSX_table_1, RSX_table_2に加えて、RSE_table_2, RSA_table_2, RSX_table_3, RSX_table_4, RSX_table_5, RSX_table_6も使用して割振り処理を行う。以下の説明では図7を例にして説明するが、図8の例で割り振っても良い。
(1)割振り対象の実行命令がRSE命令の場合(S3のYES)、RSE割振りテーブルの選択とそれに基づく割振りを実行する(S40)。
(2)さらに、割振り対象の実行命令がRSA命令の場合(S5のYES)、RSA割振りテーブルの選択とそれに基づく割振りを実行する(S60)。
(3)さらに、割振り対象の実行命令がRSX命令の場合(S7のYES)、RSX割振りテーブルの選択とそれに基づく割振りを実行する(S80)。
そして、RSE,RSA,RSX命令のいずれにも該当しない場合(S7のNO)、RSE、RSAには割り振らない(S9)。
図16は、第3の実施の形態における4つの演算器の構成例を示す図である。図16に示した構成例では、オペランドアドレス生成器EAGA,EAGBは、加減算器ADD/SUBとロードストア部LOAD/STOREとを有する。第1の固定小数点演算器EXAは、加減算器ADD/SUBと論理演算器AND/ORと除算器DIVとを有し、そして、第2の固定小数点演算器EXBは、加減算器ADD/SUBと論理演算器AND/ORと乗算器MUL(Multiplexer)とを有する。除算器DIVや乗算器MULは、回路実装コストが高く使用頻度が少ないので、いずれか一方の固定小数点演算器に設けられる例である。
図18は、第4の実施の形態におけるプロセッサの構成例を示す図である。図18において図2と異なる構成は、命令デコーダI_DECとアロケーションユニットALC_UNTとの間に、ループキャッシュLP_CACHEと命令セレクタI_SELとを有することである。命令デコーダI_DECは、図示しないが、図2と同じように4スロットD0-D3を有する。
それぞれが、プログラムのインオーダーでフェッチされたフェッチ命令をデコードし実行命令を生成するK個(Kは複数)のデコーダスロットを有する命令デコーダと、
L個(Lは複数でK>L)の入力ポートと、前記実行命令を前記L個の入力ポートを介してキューインする命令キューとをそれぞれ有する第1乃至第4のリザベーションステーション(以下RSと称する)と、
前記第1及び第2のRSをそれぞれが専用に有し、前記第1及び第2のRSそれぞれにキューインされた実行命令をそれぞれが専ら実行する第1及び第2の演算ユニットと、
前記第3及び第4のRSをそれぞれが専用に有し、前記第3及び第4のRS内それぞれにキューインされた実行命令をそれぞれが専ら実行する第1及び第2のロードストアユニット(以下LSユニットと称する)と、
前記命令デコーダの前記K個のデコーダスロットそれぞれが生成するK個の前記実行命令を、前記第1乃至第4のRSのいずれかに割り振るアロケーションユニットとを有し、
前記アロケーションユニットは、
(1)前記実行命令が前記第1及び第2の演算ユニットで実行でき、前記第1及び第2のLSユニットで実行できない第1の命令の場合、前記第1の命令を第1の割振りテーブルに基づいて前記第1または第2のRSに割振り、
(2)前記実行命令が前記第1及び第2のLSユニットで実行でき、前記第1及び第2の演算ユニットで実行できない第2の命令の場合、前記第2の命令を第2の割振りテーブルに基づいて前記第3または第4のRSに割振り、
(3)前記実行命令が前記第1及び第2のLSユニットと前記第1及び第2の演算ユニットとで実行できる第3の命令の場合、前記第3の命令を第3の割振りテーブルに基づいて前記第1乃至第4のRSのいずれかに割振り、
前記第1、第2、第3の割振りテーブルは、前記K個のデコーダスロットそれぞれに対応するK個の割振り先RSを有し、
前記第1の割振りテーブルは、前記K個の割振り先RSを、前記第1及び第2のRSをそれぞれ前記L個以下で、且つ前記第1及び第2のRSの命令キューの空きがより多いとより少ないについて第1の順番の組み合わせで有し、
前記第2の割振りテーブルは、前記K個の割振り先RSを、前記第3及び第4のRSをそれぞれ前記L個以下で、且つ前記第1の順番の組み合わせで有し、
前記第3の割振りテーブルは、前記K個の割振り先RSを、第1の複数デコーダスロットに対して、前記第1の割振りテーブルの前記第1の複数デコーダスロットに対する割振り先RSとし、前記第1の複数デコーダスロットと異なる第2の複数デコーダスロットに対して、前記第2の割振りテーブルの前記第2の複数デコーダスロットに対する割振り先RSとし、且つ前記第1の順番の組み合わせで有する、演算処理装置。
前記第1の割振りテーブルは、前記K個の割振り先RSを、前記第1及び第2のRSのうち前記命令キューの空きがより多いRSとより少ないRSとを同数で有し、
前記第2の割振りテーブルは、前記K個の割振り先RSを、前記第3及び第4のRSのうち前記命令キューの空きがより多いRSとより少ないRSとを同数で有し、
前記第3の割振りテーブルは、前記K個の割振り先RSを、前記第1及び第2のRSと、前記第3及び第4のRSとを同数で有する、付記1に記載の演算処理装置。
前記第1の順番の組み合わせは、少なくとも前記インオーダーで最先のデコーダスロットに対して前記より多いRSを、前記インオーダーで最後のデコーダスロットに対して前記より少ないRSを有する、付記2に記載の演算処理装置。
前記第3の割振りテーブルは、
(1)前記第1の複数デコーダスロットが、前記インオーダーで最先の複数デコーダスロットで、前記第2の複数デコーダスロットが、前記インオーダーで最後の複数デコーダスロットであるA型第3の割振りテーブルと、
(2)前記第1の複数デコーダスロットが、前記インオーダーで最後の複数デコーダスロットで、前記第2の複数デコーダスロットが、前記インオーダーで最先の複数デコーダスロットであるB型第3の割振りテーブルと、を有し、
前記アロケーションユニットは、
(1)前記第1及び第2のRSの命令キューの空き合計が前記第3及び第4のRSの命令キューの空き合計より多い場合、前記A型第3の割振りテーブルに基づいて前記第3の実行命令を割振り、
(2)前記第1及び第2のRSの命令キューの空き合計が前記第3及び第4のRSの命令キューの空き合計より少ない場合、前記B型第3の割振りテーブルに基づいて前記第3の実行命令を割振る、付記3に記載の演算処理装置。
前記第3の割振りテーブルは、
(1)前記第1の複数デコーダスロットが、前記インオーダーで奇数の複数デコーダスロットで、前記第2の複数デコーダスロットが、前記インオーダーで偶数の複数デコーダスロットであるA型第3の割振りテーブルと、
(2)前記第1の複数デコーダスロットが、前記インオーダーで奇数の複数デコーダスロットで、前記第2の複数デコーダスロットが、前記インオーダーで偶数の複数デコーダスロットであるB型第3の割振りテーブルと、を有し、
前記アロケーションユニットは、
(1)前記第1及び第2のRSの命令キューの空き合計が前記第3及び第4のRSの命令キューの空き合計より多い場合、前記A型第3の割振りテーブルに基づいて前記第3の実行命令を割振り、
(2)前記第1及び第2のRSの命令キューの空き合計が前記第3及び第4のRSの命令キューの空き合計より少ない場合、前記B型第3の割振りテーブルに基づいて前記第3の実行命令を割振る、付記3に記載の演算処理装置。
前記アロケーションユニットは、
前記実行命令が前記第1の命令の場合、前記第1のRSの前記命令キューの空き数と前記第2のRSの前記命令キューの空き数の差分が第1の基準値以上の場合、前記第1の割振りテーブルに代えて、前記K個のデコーダスロット全てに対して前記第1または第2のRSのうち前記命令キューの空きがより多いRSを割振り先にするA型第1の割振りテーブルに基づいて、前記第1の命令(RSE命令)を割り振る、付記1に記載の演算処理装置。
前記アロケーションユニットは、
前記実行命令が前記第2の命令の場合、前記第3のRSの前記命令キューの空き数と前記第4のRSの前記命令キューの空き数の差分が第2の基準値以上の場合、前記第2の割振りテーブルに代えて、前記K個のデコーダスロット全てに対して前記第3または第4のRSのうち前記命令キューの空きがより多いRSを割振り先にするA型第2の割振りテーブルに基づいて、前記第2の命令を割り振る、付記1に記載の演算処理装置。
前記アロケーションユニットは、
前記実行命令が前記第3の命令の場合で、最も前記命令キューの空き数が多い最大空きRSの空き数と、前記最大空きRS以外のRSの空き数との差分が第3の基準値以上の場合に、
(1)前記最大空きRSが前記第1または第2のRSなら、前記A型第3またはB型第3の割振りテーブルに代えて、前記K個のデコーダスロット全てに対して前記第1または第2のRSのうち前記命令キューの空きがより多いRSを割振り先にするE型第3の割振りテーブルに基づいて、前記第3の命令を割り振り、
(2)前記最大空きRSが前記第3または第4のRSなら、前記A型第3またはB型第3の割振りテーブルに代えて、前記K個のデコーダスロット全てに対して前記第3または第4のRSのうち前記命令キューの空きがより多いRSを割振り先にするF型第3の割振りテーブルに基づいて、前記第3の命令を割り振る、付記4または5に記載の演算処理装置。
前記アロケーションユニットは、
前記実行命令が前記第3の命令の場合で、前記第1及び第2のRSの前記命令キューの第1合計空き数と、前記第3及び第4のRSの前記命令キューの第2合計空き数との差分が第4の基準値以上の場合に、
(1)前記第1合計空き数が前記第2合計空き数より多いなら、前記A型第3またはB型第3の割振りテーブルに代えて、前記K個の割振り先RSを、前記第1及び第2のRSのうち前記命令キューの空きがより多いRSとより少ないRSとを同数で、且つ前記より多いRSを前記インオーダーで最先に、前記より少ないRSを前記インオーダーで最後に有するC型第3の割り当てテーブルに基づいて、前記第3の命令を割り振り、
(2)前記第1合計空き数が前記第2合計空き数より少ないなら、前記A型第3またはB型第3の割振りテーブルに代えて、前記K個の割振り先RSを、前記第3及び第4のRSのうち前記命令キューの空きがより多いRSとより少ないRSとを同数で、且つ前記より多いRSを前記インオーダーで最先に、前記より少ないRSを前記インオーダーで最後に有するD型第3の割り当てテーブルに基づいて、前記第3の命令を割り振る、付記8に記載の演算処理装置。
前記アロケーションユニットは、
割振り対象の前記実行命令が、前記インオーダーで1つ前の実行命令と演算の依存関係を有し、前記1つ前の実行命令と同じRSに割振り可能な場合、前記割振り対象の実行命令を、前記割振りテーブルに基づかずに、前記1つ前の実行命令と同じRSに割り振る、付記1に記載の演算処理装置。
前記第1の演算ユニットと前記第2の演算ユニットが、互いに排他的な演算回路を有し、
前記アロケーションユニットは、
前記実行命令が前記第1の演算ユニットで実行可能で前記第2の演算ユニットで実行不能な第1演算ユニット専用命令の場合、前記割振りテーブルに基づかず、前記第1のRSに割り振り、
前記実行命令が前記第1の演算ユニットで実行不能で前記第2の演算ユニットで実行可能な第2演算ユニット専用命令の場合、前記割振りテーブルに基づかず、前記第2のRSに割り振る、付記1に記載の演算処理装置。
それぞれが、プログラムのインオーダーでフェッチされたフェッチ命令をデコードし実行命令を生成するK個(Kは複数)のデコーダスロットを有する命令デコーダと、
L個(Lは複数でK>L)の入力ポートと、前記実行命令を前記L個の入力ポートを介してキューインする命令キューとをそれぞれ有する第1乃至第4のリザベーションステーション(以下RSと称する)と、
前記第1及び第2のRSをそれぞれが専用に有し、前記第1及び第2のRSそれぞれにキューインされた実行命令をそれぞれが専ら実行する第1及び第2の演算ユニットと、
前記第3及び第4のRSをそれぞれが専用に有し、前記第3及び第4のRS内それぞれにキューインされた実行命令をそれぞれが専ら実行する第1及び第2のロードストアユニット(以下LSユニットと称する)と、
前記命令デコーダの前記K個のデコーダスロットそれぞれが生成するK個の前記実行命令を、前記第1乃至第4のRSのいずれかに割り振るアロケーションユニットとを有する演算処理装置の制御方法であって、
前記アロケーションユニットは、
(1)前記実行命令が前記第1及び第2の演算ユニットで実行でき、前記第1及び第2のLSユニットで実行できない第1の命令の場合、前記第1の命令を第1の割振りテーブルに基づいて前記第1または第2のRSに割振り、
(2)前記実行命令が前記第1及び第2のLSユニットで実行でき、前記第1及び第2の演算ユニットで実行できない第2の命令の場合、前記第2の命令を第2の割振りテーブルに基づいて前記第3または第4のRSに割振り、
(3)前記実行命令が前記第1及び第2のLSユニットと前記第1及び第2の演算ユニットとで実行できる第3の命令の場合、前記第3の命令を第3の割振りテーブルに基づいて前記第1乃至第4のRSのいずれかに割振り、
前記第1、第2、第3の割振りテーブルは、前記K個のデコーダスロットそれぞれに対応するK個の割振り先RSを有し、
前記第1の割振りテーブルは、前記K個の割振り先RSを、前記第1及び第2のRS(RSE0/1)をそれぞれ前記L個以下で、且つ前記第1及び第2のRSの命令キューの空きがより多いとより少ないについて第1の順番の組み合わせで有し、
前記第2の割振りテーブルは、前記K個の割振り先RSを、前記第3及び第4のRSをそれぞれ前記L個以下で、且つ前記第1の順番の組み合わせで有し、
前記第3の割振りテーブルは、前記K個の割振り先RSを、第1の複数デコーダスロットに対して、前記第1の割振りテーブルの前記第1の複数デコーダスロットに対する割振り先RSとし、前記第1の複数デコーダスロットと異なる第2の複数デコーダスロットに対して、前記第2の割振りテーブルの前記第2の複数デコーダスロットに対する割振り先RSとし、且つ前記第1の順番の組み合わせで有する、演算処理装置の制御方法。
それぞれが、プログラムのインオーダーでフェッチされたフェッチ命令をデコードし実行命令を生成する命令デコーダと、
入力ポートと、前記実行命令を前記入力ポートを介してキューインする命令キューとをそれぞれ有する第1乃至第4のリザベーションステーション(以下RSと称する)と、
前記第1及び第2のRSをそれぞれが専用に有し、前記第1及び第2のRSそれぞれにキューインされた実行命令をそれぞれが専ら実行する第1及び第2の演算ユニットと、
前記第3及び第4のRSをそれぞれが専用に有し、前記第3及び第4のRS内それぞれにキューインされた実行命令をそれぞれが専ら実行する第1及び第2のロードストアユニット(以下LSユニットと称する)と、
前記命令デコーダが生成するループ内の実行命令を有するループ内実行命令列を一時的に記憶するループキャッシュと、
前記命令デコーダが生成する前記実行命令を、または前記ループキャッシュ内に記憶された前記ループ内実行命令列の実行命令を、前記第1乃至第4のRSのいずれかに割り振るアロケーションユニットと、
前記第1及び第2の演算ユニットの実行結果及び前記第1及び第2のロードストアユニットの演算結果を格納する汎用レジスタファイルとを有し、
前記第1及び第2の演算ユニットは、実行結果を自身の入力に前記汎用レジスタファイルを介さずに供給するバイパス経路を有し、前記実行結果を自身以外の演算ユニットに前記汎用レジスタファイルを介さずに供給するバイパス経路を有さず、
前記第1及び第2のLSユニットは、実行結果を自身の入力に前記汎用レジスタファイルを介さずに供給するバイパス経路を有し、前記実行結果を自身以外のLSユニットに前記汎用レジスタファイルを介さずに供給するバイパス経路を有さず、
前記アロケーションユニットは、
前記ループキャッシュ内の前記ループ内命令列が、1つ前の実行命令の演算結果を次の実行命令の演算に利用する依存関係を持つ連続する複数の実行命令を有するチェイン命令列を含む場合、
前記チェイン命令列が、前記第1の演算ユニットで実行でき、前記第2の演算ユニットと前記第1及び第2のLSユニットで実行できない第1の実行命令を含み、前記第1の演算ユニットで実行できず、前記第2の演算ユニットと前記第1のLSユニットと第2のLSユニットのいずれかで実行できる第2の実行命令を含まない場合、前記チェイン命令列内の実行命令を前記第1のRSに割り振る、演算処理装置。
前記アロケーションユニットは、
前記チェイン命令列が、前記第1のLSユニットまたは前記第2のLSユニットで実行でき、前記第1の演算ユニット及び第2の演算ユニットで実行できない第3の実行命令を含み、前記第1のLSユニット及び第2のLSユニットで実行できず、前記第1の演算ユニット及び第2の演算ユニットのいずれかで実行できる第4の実行命令を含まない場合、前記チェイン命令列内の実行命令を前記第3のRSまたは第4のRSに割り振る、付記13に記載の演算処理装置。
前記アロケーションユニットは、
前記チェイン命令列が、前記第1及び第2の演算ユニットと、前記第1及び第2のLSユニットのいずれかで実行できる汎用実行命令だけを含む場合、前記チェイン命令列内の実行命令を前記第1乃至第4のRSのいずれかの1つのRSに割り振る、付記13に記載の演算処理装置。
EAGA,EAGB:オペランドアドレス生成器
RSA:オペランドアドレス生成器のリザベーションステーション
EXA,EXB:固定小数点演算器
RSE:固定小数点演算器のリザベーションステーション
I_BUF:命令バッファ
I_DEC:命令デコーダ
D0-D3:スロット
ALC_UNT:アロケーションユニット
LP_CACHE:ループキャッシュ
I_SEL:命令セレクタ
IN_PO_0,IN_PO_1:入力ポート
IN_QUE_0,IN_QUE_1:入力キュー
ALC_table:割振りテーブル
Claims (13)
- それぞれが、プログラムのインオーダーでフェッチされたフェッチ命令をデコードし実行命令を生成するK個(Kは複数)のデコーダスロットを有する命令デコーダと、
L個(Lは複数でK>L)の入力ポートと、前記実行命令を前記L個の入力ポートを介してキューインする命令キューとをそれぞれ有する第1乃至第4のリザベーションステーション(以下RSと称する)と、
前記第1及び第2のRSをそれぞれが専用に有し、前記第1及び第2のRSそれぞれにキューインされた実行命令をそれぞれが専ら実行する第1及び第2の演算ユニットと、
前記第3及び第4のRSをそれぞれが専用に有し、前記第3及び第4のRS内それぞれにキューインされた実行命令をそれぞれが専ら実行する第1及び第2のロードストアユニット(以下LSユニットと称する)と、
前記命令デコーダの前記K個のデコーダスロットそれぞれが生成するK個の前記実行命令を、前記第1乃至第4のRSのいずれかに割り振るアロケーションユニットとを有し、
前記アロケーションユニットは、
(1)前記実行命令が前記第1及び第2の演算ユニットで実行でき、前記第1及び第2のLSユニットで実行できない第1の命令の場合、前記第1の命令を第1の割振りテーブルに基づいて前記第1または第2のRSに割振り、
(2)前記実行命令が前記第1及び第2のLSユニットで実行でき、前記第1及び第2の演算ユニットで実行できない第2の命令の場合、前記第2の命令を第2の割振りテーブルに基づいて前記第3または第4のRSに割振り、
(3)前記実行命令が前記第1及び第2のLSユニットと前記第1及び第2の演算ユニットとで実行できる第3の命令の場合、前記第3の命令を第3の割振りテーブルに基づいて前記第1乃至第4のRSのいずれかに割振り、
前記第1、第2、第3の割振りテーブルは、前記K個のデコーダスロットそれぞれに対
応するK個の割振り先RSを有し、
前記第1の割振りテーブルは、前記K個の割振り先RSを、前記第1及び第2のRSをそれぞれ前記L個以下で、且つ前記第1及び第2のRSの命令キューの空きがより多いとより少ないについて第1の順番の組み合わせで有し、
前記第2の割振りテーブルは、前記K個の割振り先RSを、前記第3及び第4のRSをそれぞれ前記L個以下で、且つ前記第1の順番の組み合わせで有し、
前記第3の割振りテーブルは、前記K個の割振り先RSを、第1の複数デコーダスロットに対して、前記第1の割振りテーブルの前記第1の複数デコーダスロットに対する割振
り先RSとし、前記第1の複数デコーダスロットと異なる第2の複数デコーダスロットに対して、前記第2の割振りテーブルの前記第2の複数デコーダスロットに対する割振り先RSとし、且つ前記第1の順番の組み合わせで有する、演算処理装置。 - 前記第1の割振りテーブルは、前記K個の割振り先RSを、前記第1及び第2のRSのうち前記命令キューの空きがより多いRSとより少ないRSとを同数で有し、
前記第2の割振りテーブルは、前記K個の割振り先RSを、前記第3及び第4のRSのうち前記命令キューの空きがより多いRSとより少ないRSとを同数で有し、
前記第3の割振りテーブルは、前記K個の割振り先RSを、前記第1及び第2のRSと、前記第3及び第4のRSとを同数で有する、請求項1に記載の演算処理装置。 - 前記第1の順番の組み合わせは、少なくとも前記インオーダーで最先のデコーダスロットに対して前記より多いRSを、前記インオーダーで最後のデコーダスロットに対して前記より少ないRSを有する、請求項2に記載の演算処理装置。
- 前記第3の割振りテーブルは、
(1)前記第1の複数デコーダスロットが、前記インオーダーで最先の複数デコーダスロットで、前記第2の複数デコーダスロットが、前記インオーダーで最後の複数デコーダスロットであるA型第3の割振りテーブルと、
(2)前記第1の複数デコーダスロットが、前記インオーダーで最後の複数デコーダスロットで、前記第2の複数デコーダスロットが、前記インオーダーで最先の複数デコーダスロットであるB型第3の割振りテーブルと、を有し、
前記アロケーションユニットは、
(1)前記第1及び第2のRSの命令キューの空き合計が前記第3及び第4のRSの命令キューの空き合計より多い場合、前記A型第3の割振りテーブルに基づいて前記第3の実行命令を割振り、
(2)前記第1及び第2のRSの命令キューの空き合計が前記第3及び第4のRSの命令キューの空き合計より少ない場合、前記B型第3の割振りテーブルに基づいて前記第3の実行命令を割振る、請求項3に記載の演算処理装置。 - 前記第3の割振りテーブルは、
(1)前記第1の複数デコーダスロットが、前記インオーダーで偶数の複数デコーダスロットで、前記第2の複数デコーダスロットが、前記インオーダーで奇数の複数デコーダスロットであるA型第3の割振りテーブルと、
(2)前記第1の複数デコーダスロットが、前記インオーダーで奇数の複数デコーダスロットで、前記第2の複数デコーダスロットが、前記インオーダーで偶数の複数デコーダスロットであるB型第3の割振りテーブルと、を有し、
前記アロケーションユニットは、
(1)前記第1及び第2のRSの命令キューの空き合計が前記第3及び第4のRSの命令キューの空き合計より多い場合、前記A型第3の割振りテーブルに基づいて前記第3の実行命令を割振り、
(2)前記第1及び第2のRSの命令キューの空き合計が前記第3及び第4のRSの命令キューの空き合計より少ない場合、前記B型第3の割振りテーブルに基づいて前記第3の実行命令を割振る、請求項3に記載の演算処理装置。 - 前記アロケーションユニットは、
前記実行命令が前記第1の命令の場合、前記第1のRSの前記命令キューの空き数と前記第2のRSの前記命令キューの空き数の差分が第1の基準値以上の場合、前記第1の割振りテーブルに代えて、前記K個のデコーダスロット全てに対して前記第1または第2のRSのうち前記命令キューの空きがより多いRSを割振り先にするA型第1の割振りテーブルに基づいて、前記第1の命令(RSE命令)を割り振る、請求項1に記載の演算処理装置
。 - 前記アロケーションユニットは、
前記実行命令が前記第2の命令の場合、前記第3のRSの前記命令キューの空き数と前記第4のRSの前記命令キューの空き数の差分が第2の基準値以上の場合、前記第2の割振りテーブルに代えて、前記K個のデコーダスロット全てに対して前記第3または第4のRSのうち前記命令キューの空きがより多いRSを割振り先にするA型第2の割振りテーブルに基づいて、前記第2の命令を割り振る、請求項1に記載の演算処理装置。 - 前記アロケーションユニットは、
前記実行命令が前記第3の命令の場合で、最も前記命令キューの空き数が多い最大空きRSの空き数と、前記最大空きRS以外のRSの空き数との差分が第3の基準値以上の場合に、
(1)前記最大空きRSが前記第1または第2のRSなら、前記A型第3またはB型第3の割振りテーブルに代えて、前記K個のデコーダスロット全てに対して前記第1または第2のRSのうち前記命令キューの空きがより多いRSを割振り先にするE型第3の割振りテーブルに基づいて、前記第3の命令を割り振り、
(2)前記最大空きRSが前記第3または第4のRSなら、前記A型第3またはB型第3の割振りテーブルに代えて、前記K個のデコーダスロット全てに対して前記第3または第4のRSのうち前記命令キューの空きがより多いRSを割振り先にするF型第3の割振りテーブルに基づいて、前記第3の命令を割り振る、請求項4または5に記載の演算処理装置。 - 前記アロケーションユニットは、
前記実行命令が前記第3の命令の場合で、前記第1及び第2のRSの前記命令キューの第1合計空き数と、前記第3及び第4のRSの前記命令キューの第2合計空き数との差分が第4の基準値以上の場合に、
(1)前記第1合計空き数が前記第2合計空き数より多いなら、前記A型第3またはB型第3の割振りテーブルに代えて、前記K個の割振り先RSを、前記第1及び第2のRSのうち前記命令キューの空きがより多いRSとより少ないRSとを同数で、且つ前記より多いRSを前記インオーダーで最先に、前記より少ないRSを前記インオーダーで最後に有するC型第3の割り当てテーブルに基づいて、前記第3の命令を割り振り、
(2)前記第1合計空き数が前記第2合計空き数より少ないなら、前記A型第3またはB型第3の割振りテーブルに代えて、前記K個の割振り先RSを、前記第3及び第4のRSのうち前記命令キューの空きがより多いRSとより少ないRSとを同数で、且つ前記より多いRSを前記インオーダーで最先に、前記より少ないRSを前記インオーダーで最後に有するD型第3の割り当てテーブルに基づいて、前記第3の命令を割り振る、請求項8に記載の演算処理装置。 - それぞれが、プログラムのインオーダーでフェッチされたフェッチ命令をデコードし実行命令を生成するK個(Kは複数)のデコーダスロットを有する命令デコーダと、
L個(Lは複数でK>L)の入力ポートと、前記実行命令を前記L個の入力ポートを介してキューインする命令キューとをそれぞれ有する第1乃至第4のリザベーションステーション(以下RSと称する)と、
前記第1及び第2のRSをそれぞれが専用に有し、前記第1及び第2のRSそれぞれにキューインされた実行命令をそれぞれが専ら実行する第1及び第2の演算ユニットと、
前記第3及び第4のRSをそれぞれが専用に有し、前記第3及び第4のRS内それぞれにキューインされた実行命令をそれぞれが専ら実行する第1及び第2のロードストアユニット(以下LSユニットと称する)と、
前記命令デコーダの前記K個のデコーダスロットそれぞれが生成するK個の前記実行命令を、前記第1乃至第4のRSのいずれかに割り振るアロケーションユニットとを有する演算処理装置の制御方法であって、
前記アロケーションユニットは、
(1)前記実行命令が前記第1及び第2の演算ユニットで実行でき、前記第1及び第2のLSユニットで実行できない第1の命令の場合、前記第1の命令を第1の割振りテーブルに基づいて前記第1または第2のRSに割振り、
(2)前記実行命令が前記第1及び第2のLSユニットで実行でき、前記第1及び第2の演算ユニットで実行できない第2の命令の場合、前記第2の命令を第2の割振りテーブルに基づいて前記第3または第4のRSに割振り、
(3)前記実行命令が前記第1及び第2のLSユニットと前記第1及び第2の演算ユニットとで実行できる第3の命令の場合、前記第3の命令を第3の割振りテーブルに基づいて前記第1乃至第4のRSのいずれかに割振り、
前記第1、第2、第3の割振りテーブルは、前記K個のデコーダスロットそれぞれに対
応するK個の割振り先RSを有し、
前記第1の割振りテーブルは、前記K個の割振り先RSを、前記第1及び第2のRS(RSE0/1)をそれぞれ前記L個以下で、且つ前記第1及び第2のRSの命令キューの空きがより多いとより少ないについて第1の順番の組み合わせで有し、
前記第2の割振りテーブルは、前記K個の割振り先RSを、前記第3及び第4のRSをそれぞれ前記L個以下で、且つ前記第1の順番の組み合わせで有し、
前記第3の割振りテーブルは、前記K個の割振り先RSを、第1の複数デコーダスロットに対して、前記第1の割振りテーブルの前記第1の複数デコーダスロットに対する割振
り先RSとし、前記第1の複数デコーダスロットと異なる第2の複数デコーダスロットに対して、前記第2の割振りテーブルの前記第2の複数デコーダスロットに対する割振り先RSとし、且つ前記第1の順番の組み合わせで有する、演算処理装置の制御方法。 - それぞれが、プログラムのインオーダーでフェッチされたフェッチ命令をデコードし実行命令を生成する命令デコーダと、
入力ポートと、前記実行命令を前記入力ポートを介してキューインする命令キューとをそれぞれ有する第1乃至第4のリザベーションステーション(以下RSと称する)と、
前記第1及び第2のRSをそれぞれが専用に有し、前記第1及び第2のRSそれぞれにキューインされた実行命令をそれぞれが専ら実行する第1及び第2の演算ユニットと、
前記第3及び第4のRSをそれぞれが専用に有し、前記第3及び第4のRS内それぞれにキューインされた実行命令をそれぞれが専ら実行する第1及び第2のロードストアユニット(以下LSユニットと称する)と、
前記命令デコーダが生成するループ内の実行命令を有するループ内実行命令列を一時的に記憶するループキャッシュと、
前記命令デコーダが生成する前記実行命令を、または前記ループキャッシュ内に記憶された前記ループ内実行命令列の実行命令を、前記第1乃至第4のRSのいずれかに割り振るアロケーションユニットと、
前記第1及び第2の演算ユニットの実行結果及び前記第1及び第2のロードストアユニ
ットの演算結果を格納する汎用レジスタファイルとを有し、
前記第1及び第2の演算ユニットは、実行結果を自身の入力に前記汎用レジスタファイ
ルを介さずに供給するバイパス経路を有し、前記実行結果を自身以外の演算ユニットに前記汎用レジスタファイルを介さずに供給するバイパス経路を有さず、
前記第1及び第2のLSユニットは、実行結果を自身の入力に前記汎用レジスタファイルを介さずに供給するバイパス経路を有し、前記実行結果を自身以外のLSユニットに前記汎用レジスタファイルを介さずに供給するバイパス経路を有さず、
前記アロケーションユニットは、
前記ループキャッシュ内の前記ループ内実行命令列が、1つ前の実行命令の演算結果を次の実行命令の演算に利用する依存関係を持つ連続する複数の実行命令を有するチェイン命令列を含む場合、
前記チェイン命令列が、前記第1の演算ユニットで実行でき、前記第2の演算ユニットと前記第1及び第2のLSユニットで実行できない第1の実行命令を含み、前記第1の演算ユニットで実行できず、前記第2の演算ユニットと前記第1のLSユニットと第2のLSユニットのいずれかで実行できる第2の実行命令を含まない場合、前記チェイン命令列内の実行命令を前記第1のRSに割り振る、演算処理装置。 - 前記アロケーションユニットは、
前記チェイン命令列が、前記第1のLSユニットまたは前記第2のLSユニットで実行でき、前記第1の演算ユニット及び第2の演算ユニットで実行できない第3の実行命令を含み、前記第1のLSユニット及び第2のLSユニットで実行できず、前記第1の演算ユニット及び第2の演算ユニットのいずれかで実行できる第4の実行命令を含まない場合、前記チェイン命令列内の実行命令を前記第3のRSまたは第4のRSに割り振る、請求項11に記載の演算処理装置。 - 前記アロケーションユニットは、
前記チェイン命令列が、前記第1及び第2の演算ユニットと、前記第1及び第2のLSユニットのいずれかで実行できる汎用実行命令だけを含む場合、前記チェイン命令列内の実行命令を前記第1乃至第4のRSのいずれかの1つのRSに割り振る、請求項11に記載の演算処理装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018079011A JP7032647B2 (ja) | 2018-04-17 | 2018-04-17 | 演算処理装置及び演算処理装置の制御方法 |
US16/361,281 US10983790B2 (en) | 2018-04-17 | 2019-03-22 | Arithmetic processing unit and control method for arithmetic processing unit |
US17/114,549 US11231926B2 (en) | 2018-04-17 | 2020-12-08 | Arithmetic processing unit and control method for arithmetic processing unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018079011A JP7032647B2 (ja) | 2018-04-17 | 2018-04-17 | 演算処理装置及び演算処理装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019185646A JP2019185646A (ja) | 2019-10-24 |
JP7032647B2 true JP7032647B2 (ja) | 2022-03-09 |
Family
ID=68161550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018079011A Active JP7032647B2 (ja) | 2018-04-17 | 2018-04-17 | 演算処理装置及び演算処理装置の制御方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US10983790B2 (ja) |
JP (1) | JP7032647B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11144324B2 (en) * | 2019-09-27 | 2021-10-12 | Advanced Micro Devices, Inc. | Retire queue compression |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002055814A (ja) | 2000-08-08 | 2002-02-20 | Fujitsu Ltd | 適切な発行先に命令を発行する命令発行装置 |
JP2004030424A (ja) | 2002-06-27 | 2004-01-29 | Fujitsu Ltd | 命令処理装置および命令処理方法 |
JP2004038752A (ja) | 2002-07-05 | 2004-02-05 | Fujitsu Ltd | プロセッサ及び命令制御方法 |
JP2004038751A (ja) | 2002-07-05 | 2004-02-05 | Fujitsu Ltd | プロセッサ及び命令制御方法 |
JP2006313422A (ja) | 2005-05-06 | 2006-11-16 | Nec Electronics Corp | 演算処理装置及びデータ転送処理の実行方法 |
US20140373022A1 (en) | 2013-03-15 | 2014-12-18 | Soft Machines, Inc. | Method and apparatus for efficient scheduling for asymmetrical execution units |
JP2018005488A (ja) | 2016-06-30 | 2018-01-11 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5341482A (en) * | 1987-03-20 | 1994-08-23 | Digital Equipment Corporation | Method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions |
CA2123442A1 (en) * | 1993-09-20 | 1995-03-21 | David S. Ray | Multiple execution unit dispatch with instruction dependency |
US5742784A (en) * | 1995-01-25 | 1998-04-21 | International Business Machines Corporation | System for reordering of instructions before placement into cache to reduce dispatch latency |
US6324639B1 (en) * | 1998-03-30 | 2001-11-27 | Matsushita Electric Industrial Co., Ltd. | Instruction converting apparatus using parallel execution code |
US6260138B1 (en) * | 1998-07-17 | 2001-07-10 | Sun Microsystems, Inc. | Method and apparatus for branch instruction processing in a processor |
US6405303B1 (en) * | 1999-08-31 | 2002-06-11 | Advanced Micro Devices, Inc. | Massively parallel decoding and execution of variable-length instructions |
SE0003446L (sv) * | 2000-09-27 | 2002-03-28 | Ericsson Telefon Ab L M | En pipelinemikroprocessor och ett förfarnade relaterande därtill |
US7093111B2 (en) * | 2003-07-31 | 2006-08-15 | International Business Machines Corporation | Recovery of global history vector in the event of a non-branch flush |
US7284029B2 (en) * | 2003-11-06 | 2007-10-16 | International Business Machines Corporation | 4-to-2 carry save adder using limited switching dynamic logic |
US7216141B2 (en) * | 2003-11-06 | 2007-05-08 | International Business Machines Corporaiton | Computing carry-in bit to most significant bit carry save adder in current stage |
US8966223B2 (en) * | 2005-05-05 | 2015-02-24 | Icera, Inc. | Apparatus and method for configurable processing |
EP2159688A4 (en) * | 2007-06-20 | 2011-01-05 | Fujitsu Ltd | INSTRUCTION MANAGEMENT CONTROL AND INSTRUCTION MANUAL CONTROL PROCEDURES |
JP2010257199A (ja) | 2009-04-24 | 2010-11-11 | Renesas Electronics Corp | プロセッサ及びプロセッサにおける命令発行の制御方法 |
US8627044B2 (en) * | 2010-10-06 | 2014-01-07 | Oracle International Corporation | Issuing instructions with unresolved data dependencies |
US9304848B2 (en) * | 2013-01-15 | 2016-04-05 | International Business Machines Corporation | Dynamic accessing of execution elements through modification of issue rules |
CN105993000B (zh) * | 2013-10-27 | 2021-05-07 | 超威半导体公司 | 用于浮点寄存器混叠的处理器和方法 |
-
2018
- 2018-04-17 JP JP2018079011A patent/JP7032647B2/ja active Active
-
2019
- 2019-03-22 US US16/361,281 patent/US10983790B2/en active Active
-
2020
- 2020-12-08 US US17/114,549 patent/US11231926B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002055814A (ja) | 2000-08-08 | 2002-02-20 | Fujitsu Ltd | 適切な発行先に命令を発行する命令発行装置 |
JP2004030424A (ja) | 2002-06-27 | 2004-01-29 | Fujitsu Ltd | 命令処理装置および命令処理方法 |
JP2004038752A (ja) | 2002-07-05 | 2004-02-05 | Fujitsu Ltd | プロセッサ及び命令制御方法 |
JP2004038751A (ja) | 2002-07-05 | 2004-02-05 | Fujitsu Ltd | プロセッサ及び命令制御方法 |
JP2006313422A (ja) | 2005-05-06 | 2006-11-16 | Nec Electronics Corp | 演算処理装置及びデータ転送処理の実行方法 |
US20140373022A1 (en) | 2013-03-15 | 2014-12-18 | Soft Machines, Inc. | Method and apparatus for efficient scheduling for asymmetrical execution units |
JP2018005488A (ja) | 2016-06-30 | 2018-01-11 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US20210089302A1 (en) | 2021-03-25 |
US10983790B2 (en) | 2021-04-20 |
US11231926B2 (en) | 2022-01-25 |
US20190317762A1 (en) | 2019-10-17 |
JP2019185646A (ja) | 2019-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3547482B2 (ja) | 情報処理装置 | |
US9965274B2 (en) | Computer processor employing bypass network using result tags for routing result operands | |
CN100357884C (zh) | 用于处理指令的方法、处理器以及系统 | |
JP3919764B2 (ja) | 例外条件を解消するために同時マルチスレッド・プロセッサでディスパッチ・フラッシュを使用する方法 | |
GB2509974A (en) | Allocating threads to resources using speculation metrics | |
WO2009006607A1 (en) | Dynamically composing processor cores to form logical processors | |
WO2001048599A1 (en) | Method and apparatus for managing resources in a multithreaded processor | |
US11204770B2 (en) | Microprocessor having self-resetting register scoreboard | |
US10372458B2 (en) | Method and apparatus for a self-clocked, event triggered superscalar processor | |
JP7032647B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US11755329B2 (en) | Arithmetic processing apparatus and method for selecting an executable instruction based on priority information written in response to priority flag comparison | |
US11829187B2 (en) | Microprocessor with time counter for statically dispatching instructions | |
US11954491B2 (en) | Multi-threading microprocessor with a time counter for statically dispatching instructions | |
US20230315474A1 (en) | Microprocessor with apparatus and method for replaying instructions | |
US20230350680A1 (en) | Microprocessor with baseline and extended register sets | |
US11829762B2 (en) | Time-resource matrix for a microprocessor with time counter for statically dispatching instructions | |
US20230342153A1 (en) | Microprocessor with a time counter for statically dispatching extended instructions | |
US11829767B2 (en) | Register scoreboard for a microprocessor with a time counter for statically dispatching instructions | |
US20230273796A1 (en) | Microprocessor with time counter for statically dispatching instructions with phantom registers | |
US20230409489A1 (en) | Apparatus and Method for Selecting Dynamic Latency for Level 2 Cache | |
US20240020122A1 (en) | Executing phantom loops in a microprocessor | |
US20230350685A1 (en) | Method and apparatus for a scalable microprocessor with time counter | |
US20230393852A1 (en) | Vector coprocessor with time counter for statically dispatching instructions | |
CN116339969A (zh) | 微操作的自适应动态分派 | |
CN116339489A (zh) | 处理器中微操作的扼制融合的系统、装置和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210113 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20211130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211214 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220107 |
|
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: 20220125 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220207 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7032647 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |