JP5177141B2 - 演算処理装置、演算処理方法 - Google Patents
演算処理装置、演算処理方法 Download PDFInfo
- Publication number
- JP5177141B2 JP5177141B2 JP2009520188A JP2009520188A JP5177141B2 JP 5177141 B2 JP5177141 B2 JP 5177141B2 JP 2009520188 A JP2009520188 A JP 2009520188A JP 2009520188 A JP2009520188 A JP 2009520188A JP 5177141 B2 JP5177141 B2 JP 5177141B2
- Authority
- JP
- Japan
- Prior art keywords
- thread
- instruction
- unit
- buffer
- register
- 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
- 238000003672 processing method Methods 0.000 title claims description 4
- 239000000872 buffer Substances 0.000 claims description 421
- 238000000034 method Methods 0.000 claims description 44
- 230000008569 process Effects 0.000 claims description 21
- 238000010586 diagram Methods 0.000 description 44
- 230000007246 mechanism Effects 0.000 description 8
- 101100532856 Arabidopsis thaliana SDRA gene Proteins 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 101100079124 Arabidopsis thaliana NAC079 gene Proteins 0.000 description 3
- 101100371648 Caenorhabditis elegans usp-14 gene Proteins 0.000 description 3
- 230000010365 information processing Effects 0.000 description 3
- 101150090882 tgt-1 gene Proteins 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- YCOHEPDJLXZVBZ-UHFFFAOYSA-N 2-benzylsulfonyl-1-(1h-indol-3-yl)-1h-isoquinoline Chemical compound C1=CC2=CC=CC=C2C(C=2C3=CC=CC=C3NC=2)N1S(=O)(=O)CC1=CC=CC=C1 YCOHEPDJLXZVBZ-UHFFFAOYSA-N 0.000 description 2
- 101100232404 Arabidopsis thaliana IBR3 gene Proteins 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000007616 round robin method Methods 0.000 description 2
- VLCQZHSMCYCDJL-UHFFFAOYSA-N tribenuron methyl Chemical compound COC(=O)C1=CC=CC=C1S(=O)(=O)NC(=O)N(C)C1=NC(C)=NC(OC)=N1 VLCQZHSMCYCDJL-UHFFFAOYSA-N 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000000700 radioactive tracer Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 230000001629 suppression 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/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
Description
(1)従来例では、マルチスレッド時の命令バッファの割り当てを解決する手段が提示されていない。
(2)単純な拡張方法は、命令バッファのセットをスレッド数の分だけも持つことである。
(3)しかしそのような、システムの一部だけを考慮した手法によれば、ある時間において命令バッファが余剰となっているスレッドと、命令バッファが不足しているスレッドとが生じる可能性があり、効率の悪い結果となる。
(4)効率の悪い使い方で性能を出そうとすると、現在のコンピュータ業界において緊急の課題である、低消費電力化の実現とは逆の方向に向かうことになる。
2 命令フェッチ要求部
3 分岐予測部
4 命令キャッシュ制御ユニット
5 命令フェッチ制御ユニット
6 命令供給制御部
7 命令デコーダ
8 命令バッファ制御部
9 命令フェッチアドレス選択部
11 命令フェッチアドレス保持部
61 セレクタ
62 レジスタ
122 プログラムカウンタ
126 分岐リザベーションユニット
130 プロセス管理ユニット
以下、マルチスレッド方式のシステムにおいて、それぞれのスレッドに無駄なく効率的に命令バッファを割り当てることができる計算機システム(以下、単に処理装置という)の概要を示す。図1に、単純に、命令バッファのセットをスレッド数の分だけも持つシステムの構成を示す。以下、スレッド数が2である場合のマルチスレッドのシステムを例に説明する。
(1)命令バッファ割り当て部はこれまで通り、1つでよい。割り当て部は、次に使用可能な命令バッファを1つ選択するだけでよい。
(2)命令バッファをどちらのスレッドに割り当てるかは、命令フェッチがどのスレッドのものであるかに依存する。
(3)命令フェッチ要求部も、マルチスレッド対応が必要となる。それは、すべての要求の中から、ある優先度によって1つの命令フェッチ要求を選択する方法と、従来の手順にしたがった優先度を決定してスレッドごとに1つを選択した後、別の機構によってスレッドの選択を行って最終的に1つの命令フェッチ要求に絞る方法と、が考えられる。
(4)命令フェッチのスレッドの選択手法は、単純なラウンドロビンによる方法、命令バッファ使用個数の大小比較(命令バッファ使用個数の少ないスレッドを選択)による方法、命令フェッチ後の経過時間順(長く命令フェッチされていないスレッドを優先し、最近命令フェッチされたスレッドの優先度を低くする)、または、優先して選択すべきスレッドをレジスタで設定してもよい。
(5)命令実行部への命令供給対象のスレッドの選択方法は、単純なラウンドロビンによる方法、または、命令バッファ使用個数の大小比較(命令バッファ使用個数の多いスレッドを優先して選択)による方法、命令供給後の経過時間順(長く命令実行部に命令供給されていないスレッドを優先し、最近命令供給されたスレッドの優先度を低くする)または、優先して選択すべきスレッドをレジスタで設定してもよい。
(6)それぞれのスレッドの命令バッファをトレースしていけるように各命令バッファのポインタを設定する。つまり、自分のスレッドの次の命令フェッチ(いつ発行されるか予測困難)でポインタを設定する。それだけで、スレッドごとのポインタチェーンができ上がる。
(7)命令供給は、スレッドごとにポインタチェーンをトレースしていけばよい。ポインタチェーンをトレースしていくための手段は以下に例示できる。
<システムの構成と概要>
図5に、本処理装置の構成図を示す。図6に命令フェッチにおける制御の全体図を示す。本処理装置は、例えば、主記憶装置121に格納された命令を読み出して実行する、いわゆるプログラム内蔵方式のコンピュータである。
図7に、命令フェッチ制御ユニット5の詳細構造と命令フェッチ制御ユニット5に関連する回路の構成を示す。
本処理装置においては、各命令バッファ1は個別に識別番号iを持つ。本実施形態では、識別番号i=0〜7までの合計8つの命令バッファ1があるものとする。また、マルチスレッドのスレッド数はN+1とし、スレッド番号j=0〜Nとする。
(1スレッド内で命令フェッチ要求アドレスの選択)
図9に、命令フェッチアドレス選択部9の詳細を示す。命令フェッチアドレス選択部9は、複数の命令フェッチアドレス保持部11をスレッドごとにそれぞれ個別に有する。そのため、スレッド1、2等を識別する場合には、命令フェッチアドレス保持部(本実施形態のアドレス保持部に相当)11−1、11−2のように示す。また、スレッドを識別することなく、総称する場合には、命令フェッチアドレス保持部11という。
(1)シーケンシャル命令フェッチ要求用レジスタ(非分岐アドレス保持部に相当):
シーケンシャル命令フェッチ要求のアドレスは、現在出力されたある命令フェッチ要求にシーケンシャルに続くアドレスである。そのアドレスは,出力された命令フェッチ要求のアドレス(IF_REQ_ADDRESS)に対して、該命令フェッチで取得され命令バッファ1内に保持される命令列の合計命令長を加算したものとなる。
(2)分岐先命令フェッチ要求用レジスタ(分岐先アドレス保持部に相当):
分岐先命令フェッチ要求のアドレスは、分岐予測部3を備える場合に生成される。分岐先命令フェッチ要求のアドレスは、現在出力されたある命令フェッチ要求で得られる命令列の中に、分岐する分岐命令が予測されときの、その予測分岐先アドレス(IF_TGT_ADDRESS)である。
(3)再命令フェッチ要求用レジスタ(再読み出しアドレス保持部に相当):
再命令フェッチ要求のアドレスは、分岐予測失敗、エラー処理などの理由により、あるスレッドの命令バッファ1がすべて無効になった場合に、新たに命令フェッチを開始するときの再命令フェッチアドレス(REIFCH_ADDRESS)である。ただし、割り込み、あるいは、トラップ等が発生した場合は、プログラムカウンタ122から、再命令フェッチ要求用レジスタに次にフェッチすべきアドレスが供給される。
さらに、本処理装置は、これらのレジスタをスレッド数分もつ。そして、スレッド間で1つの命令キャッシュ102を共有していて、入力受付は1つだけであるなど、同時には1つのフェッチ要求のみ受け付けることができる構成の場合には、複数のスレッドの中から、次の命令フェッチで出力すべきスレッド(IF_REQ_THREAD_ID)を選択する必要がある(第二の選択)。もちろん、本実施形態は、そのような構成のみではなく、同時に複数のフェッチ要求を受け付ける処理装置にも適用できる。スレッドの選択を行う場合の選択の条件を以下のように設定する。
A.現在、命令処理実行状態(ENABLE_PROCESS_THj)にある。
B.分岐予測失敗などによる全キャンセルが発せられていない〜CANCEL_THj)。なお、本実施形態で、”〜”は、否定を表す記号である。
C.命令キャッシュ制御ユニット4が命令フェッチ要求を受け付けることができる〜I$_BUSY_THj)。すなわち、命令キャッシュ102がビジーでない。
D.他のスレッドに比べて、命令バッファ1の使用数が少ない。
選択回路を図10A−10Jに示す。このようにして第一の選択で選択された各スレッドの命令フェッチ要求アドレスに対して、さらに第二の選択を行う。そして最終的に、命令フェッチで使用するアドレス(IF_REQ_ADDRESS)を得る。
THn_VALID
& ( THn <= TH1 | 〜TH1_VALID )
& ( THn <= TH2 | 〜TH2_VALID )
&・・・(中略)・・・
& ( THn <=TH0 | 〜TH0_VALID )
が真の場合である。
較して簡略な回路でスレッドを選択できる。
図7、図9を用いて処理手順を説明する。図9のスレッド1用命令フェッチアドレス保持部11−1、およびスレッド2用命令フェッチアドレス保持部11−2において、IF_SEQ_ADDRESSおよびSEQ_PARENT_IDとあるのは、シーケンシャル命令フェッチ要求用レジスタSEQ1(スレッド1用)、SEQ2(スレッド2用)である(非分岐アドレス保持部に相当する)。また、IF_TGT_ADDRESSおよびTGT_PARENT_IDとあるのは、分岐命令フェッチ要求用レジスタTGT1(スレッド1用)、TGT2(スレッド2用)である(分岐アドレス保持部に相当する)。また、REIFCH_ADDRESS(再命令読み出しアドレス保持部に相当)とあるのは、再命令フェッチ要求時の命令フェッチ先アドレスを保持する。
(スレッドの選択)
以下、命令供給に際して、どのスレッドを選択するかを決定する選択機構の処理を例示する。各々のスレッドで次に投入する命令バッファ1として選ばれているCURRENT_STREAM_ID_THjのバリッドをCURRENT_STREAM_ID_VALID_THjとする。
以下、選択されたスレッドにおいて、命令バッファ1から命令実行部へ命令供給する第一の方法を示す。本実施形態では、命令バッファ1において、各々の命令バッファは8命令分を格納できる。現在、命令供給のために使用しようとしている、または使用中の命令バッファ1を指し示すさらなるポインタをスレッドごとに用意する(CURRENT_STREAM_ID_THj)。また、投入を始める命令が命令バッファ1の先頭から何番目の命令であるかを示すオフセット(NSI_COUNTER_THj)も同時に持つ。このオフセットは、8個のバッファエントリのいずれかを指すことになる。
8個のバッファエントリを使いきって次の8個のバッファエントリからなる命令バッファ1の設定が必要であれば、該命令バッファ1のSEQ_IBR_IDの値によって更新を行う(NSI_COUNTER_THj+命令供給数>=8)。
とができる。
命令バッファ1から命令実行部の命令供給についての第2の方法を示す。
命令デコーダ7は、同時に複数の命令を受けつけることができるが、同一スレッドに限られるものとする。
以下、命令バッファ1の解放(無効化ともいう)について説明する。命令バッファ1の解放は、命令バッファ1の使用後や分岐予測の失敗などで命令バッファ1が不要となったときに行う。
特定スレッドの全命令バッファ1の解放は、それぞれの命令バッファ1の間の関連付けを利用して、順番に行っていく手段も考えられる。つまり、ポインタにしたがってトレースしつつ順番に解放していっても問題はない。解放されたバッファは、どのスレッドが使用してもよい。本出願人が取得済みの日本国特許390806029のような起点保持レジスタを利用してもよい。すなわち、この起点レジスタをスレッドごとに持っていれば、それを起点として解放を始めればよい。
さらにショートループの構成について説明する。日本国特許第3804941号のようなショートループを構成したい場合には、ショートループの起点を保持する起点レジスタをスレッドごとに持つことでそれが実現可能となる。
“p”は、 IBRmに、次の命令バッファ1の分岐先方向のポインタ(IBRm_TGT_IBR_ID)として登録される。さらに、この“p”を、 IF_REQ_THREAD_ID(=j)の示すスレッドの起点レジスタ(START_IBR_ID_THj)に対して、ループの起点として登録する。また、その命令フェッチアドレス“T”をレジスタIARpに登録する。
すべての資源を使うことができる。
(1)他のスレッド用の命令バッファの使用をあきらめる
(2)別途、特別な手段を用いて命令バッファセットをすべて使えるようにする。
という、などの手段を選択することになる。
Claims (21)
- 複数の命令を有するスレッドに含まれる前記命令を実行する実行部と、
前記実行部に命令を供給する供給部と、
複数のエントリに命令を格納するバッファと前記エントリに格納されている命令の次に実行すべき命令を指定するポインタ部を有し、前記供給部から供給される命令を保持するバッファ部と、
前記ポインタ部を制御して、前記命令の次に実行すべき命令を格納する前記バッファ部のバッファに前記次に実行すべき命令が属するスレッドを割り当てるスレッド割り当て部により、第1のバッファに対して、後続の命令が所属する第1のスレッドを割り当て、前記ポイント部によって前記第1のスレッドが割り当てられているバッファ間を接続する第1の系列を形成し、第2のバッファに対して、さらに後続の命令が所属する第2のスレッドを割り当て、前記ポイント部によって前記第2のスレッドが割り当てられているバッファ間を接続する第2の系列を形成する制御部とを有することを特徴とする演算処理装置。 - 前記命令を格納する記憶部と、
前記記憶部の読み出しアドレスからの命令の読み出しと読み出された命令の前記バッファ部への格納を制御する命令フェッチ部と、
次に読み出すべき命令の読み出しアドレスを前記スレッドごとに保持するアドレス保持部と、
前記スレッドごとに設けられたアドレス保持部のうち選択されるべきスレッドを決定するフェッチスレッド決定部と、をさらに備える請求項1に記載の演算処理装置。 - 前記アドレス保持部は、
分岐なしに後続命令を読み出す場合に後続命令の読み出しアドレスを保持する非分岐アドレス保持部と、
分岐命令の実行が予測された分岐先アドレスから後続命令を読み出す場合の読み出しアドレスを保持する分岐先アドレス保持部と、
分岐予測がはずれた場合に後続命令を読み出す場合の読み出しアドレスを保持する再読み出しアドレス保持部と、を有する請求項2に記載の演算処理装置。 - 前記ポインタ部は、分岐なしに後続命令を実行する場合に後続命令を格納するバッファを示す非分岐方向ポインタ部と、分岐命令によって後続命令を実行する場合の分岐先後続命令を格納するバッファを示す分岐方向ポインタ部とを有する請求項1から3のいずれか1項に記載の演算処理装置。
- 前記フェッチスレッド決定部は、使用バッファ数の少ないスレッドを優先して選択する請求項2から4のいずれか1項に記載の演算処理装置。
- 前記命令フェッチ部によってスレッドに含まれる命令が読み出された後の経過時間順に、複数のスレッド間の順序を管理するフェッチ順序管理部をさらに備え、
フェッチスレッド決定部は、前記経過時間の長いスレッドを選択されるべきスレッドに決定する請求項2から5のいずれか1項に記載の演算処理装置。 - 前記フェッチ順序管理部は、実行中の複数のスレッドのスレッド識別情報を前記経過時間順に保持するスレッドレジスタと、
フェッチスレッド決定部によって決定されたスレッドのスレッド識別情報と前記それぞれのスレッドレジスタ内のスレッド識別情報との一致を判定する比較部と、
前記比較部によって前記一致が判定されたスレッド識別情報を前記経過時間順の最後尾のスレッドレジスタに移動するとともに、前記最後尾のスレッドレジスタに移動されたスレッド識別情報を移動前に保持していたスレッドレジスタより後方のスレッドレジスタにそれぞれ保持されていたスレッド識別情報を1つずつ前方に移動するシフト制御部と、を有する請求項6に記載の演算処理装置。 - 前記演算処理装置において同時に処理可能なスレッド数が2に限定されており、
前記フェッチ順序管理部は、
2つのスレッドの使用バッファ数が同数か否かを判定する同数判定部と、
前回命令フェッチがされたスレッドの識別情報を保持する2値保持部と、
前記2つのスレッドの使用バッファ数が同数の場合に、前記2値保持部の情報を反転する反転部と、を有する請求項6に記載の演算処理装置。 - 前記フェッチスレッド決定部は、分岐予測が失敗したことにより実行停止中にあって命令フェッチができないスレッドと、スレッドに対応する処理においてキャッシュへのアクセスが停滞中のスレッドとを除外する除外部を有する請求項2から8のいずれか1項に記載の演算処理装置。
- 前記複数のバッファの系列のうち、前記供給部によって実行部に命令が供給されるべき系列に該当する供給スレッドを決定する供給スレッド決定部をさらに備える請求項1から9のいずれか1項に記載の演算処理装置。
- 前記供給スレッド決定部は、使用バッファ数の多いスレッドを優先して供給スレッドに決定する請求項10に記載の演算処理装置。
- 前記供給部によって実行部に命令が供給された後の経過時間順に、複数のスレッド間の順序を管理する供給順序管理部をさらに備え、
供給スレッド決定部は、前記経過時間の長いスレッドを前記供給スレッドに決定する請求項10または11に記載の演算処理装置。 - 前記供給順序管理部は、実行中の複数のスレッドのスレッド識別情報を前記経過時間順に保持するスレッドレジスタと、
前記供給スレッド決定部によって決定されたスレッドのスレッド識別情報と前記それぞ
れのスレッドレジスタ内のスレッド識別情報との一致を判定する比較部と、
前記比較回路によって、前記一致が判定されたスレッド識別情報を前記経過時間順の最後尾のスレッドレジスタに移動するとともに、前記最後尾に移動されたスレッド識別情報が移動前に保持されていたスレッドレジスタより後方のスレッドレジスタに保持されたスレッド識別情報をそれぞれ1つずつ前方に移動するシフト制御部と、を有する請求項12に記載の演算処理装置。 - 前記演算処理装置において同時に処理可能なスレッド数が2に限定されており、
前記供給順序管理部は、
2つのスレッドの使用バッファ数が同数か否かを判定する同数判定部と、
命令が供給されたスレッドの識別情報を保持する2値保持部と、
前記2つのスレッドの使用バッファ数が同数の場合に、前記2値保持部の情報を反転する反転部と、を有する請求項12に記載の演算処理装置。 - 命令供給中のスレッドの識別情報を保持するトレースレジスタと、
命令供給が待ち状態にあるスレッドの識別情報を保持するトレース待ちレジスタと、
前記トレースレジスタの保持する情報と前記トレース待ちレジスタの保持する情報とを入れ替える入れ替え部と、をさらに有する請求項12から14のいずれか1項に記載の演算処理装置。 - 前記トレース待ちレジスタは複数設けられ、
前記供給スレッド決定部によって決定されたスレッドの識別情報にしたがって、前記トレース待ちレジスタの1つが決定され、
前記入れ替え部は、前記トレースレジスタが保持する情報と前記決定されたトレース待ちレジスタが保持する情報とを入れ替える請求項15に記載の演算処理装置。 - 前記制御部は、命令の保持が不要となったバッファを解放する解放部を有する請求項1から16のいずれか1項に記載の演算処理装置。
- 前記バッファまたはバッファの系列に割り当てられているスレッドの識別情報を保持する識別情報保持をさらに備え、
前記解放部は、いずれかのスレッドに割り当てられたバッファの系列に含まれるバッファで未供給の命令を格納したバッファを解放するキャンセル信号が発せられたときに、前記スレッドを識別する識別情報から解放すべきバッファの選択信号を生成する選択部を有する、請求項17に記載の演算処理装置。 - 前記バッファの系列がループを形成しているときに、その系列のいずれかのバッファを保持する起点レジスタをさらに備え、
前記解放部は、いずれかのスレッドに割り当てられたバッファの系列に含まれるバッファで未供給の命令を格納したバッファを解放するキャンセル信号が発せられたときに、前記そのスレッドに対応する起点レジスタによって示されるバッファを選択して解放する第1の解放処理部と、
前記解放されたバッファと接続関係を定義されたバッファを前記ポインタ部の指定にしたがって、順次解放する第2の解放処理部と、を有する請求項17または18に記載の演算処理装置。 - 前記バッファの系列がループを形成しているときに、その系列のいずれかのバッファを前記スレッドごとに保持する起点レジスタと、
分岐予測がなされた分岐先アドレス、または分岐予測がはずれて分岐予測の結果読み出された命令が無効とされた後に命令の読み出しを開始すべき読み出し開始先アドレスをス
レッドごとに前記起点レジスタに設定する起点設定部と、
分岐予測部で分岐前のアドレスに対して予測された分岐予測先アドレスが前記起点レジスタで保持するアドレスと一致したときに、前記分岐前のアドレスにて読み出された命令を格納するバッファの分岐方向ポインタ部に前記起点レジスタで保持するバッファの識別情報を設定する分岐方向ポインタ設定部とをさらに備える請求項4から19のいずれか1項に記載の演算処理装置。 - 演算処理装置が、複数の命令を有するスレッドに含まれる前記命令を実行するステップと、
前記実行部に命令を供給するステップと、
複数のエントリに命令を格納するバッファと前記エントリに格納されている命令の次に実行すべき命令を指定するポインタ部を有するバッファ部に、前記実行部に供給される命令を保持するステップと、
前記ポインタ部を制御して、前記命令の次に実行すべき命令を格納する前記バッファ部のバッファに前記次に実行すべき命令が属するスレッドを割り当てるスレッド割り当て部により、第1のバッファに対して、後続の命令が所属する第1のスレッドを割り当て、前記ポイント部によって前記第1のスレッドが割り当てられているバッファ間を接続する第1の系列を形成し、第2のバッファに対して、さらに後続の命令が所属する第2のスレッドを割り当て、前記ポイント部によって前記第2のスレッドが割り当てられているバッファ間を接続する第2の系列を形成するステップと、を実行することを特徴とする演算処理方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2007/062412 WO2008155834A1 (ja) | 2007-06-20 | 2007-06-20 | 処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2008155834A1 JPWO2008155834A1 (ja) | 2010-08-26 |
JP5177141B2 true JP5177141B2 (ja) | 2013-04-03 |
Family
ID=40156000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009520188A Active JP5177141B2 (ja) | 2007-06-20 | 2007-06-20 | 演算処理装置、演算処理方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8291195B2 (ja) |
EP (2) | EP2453350B1 (ja) |
JP (1) | JP5177141B2 (ja) |
WO (1) | WO2008155834A1 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5173711B2 (ja) * | 2008-09-30 | 2013-04-03 | ルネサスエレクトロニクス株式会社 | マルチスレッドプロセッサ及びそのハードウェアスレッドのスケジュール方法 |
US9690625B2 (en) * | 2009-06-16 | 2017-06-27 | Oracle America, Inc. | System and method for out-of-order resource allocation and deallocation in a threaded machine |
JP4900449B2 (ja) * | 2009-10-30 | 2012-03-21 | 住友化学株式会社 | メタクリル酸製造用触媒の製造方法及びメタクリル酸の製造方法 |
BR112012013891B1 (pt) * | 2009-12-10 | 2020-12-08 | Royal Bank Of Canada | Sistema para efetuar processamento sincronizado de dados através de múltiplos recursos de computação em rede, método, dispositivo e meio legível por computador |
JP2012257063A (ja) * | 2011-06-09 | 2012-12-27 | Nec Corp | アクセス中継ユニット |
JP5648645B2 (ja) * | 2012-03-02 | 2015-01-07 | 日本電気株式会社 | ベクトル処理装置、ベクトルロード命令実行方法、及びベクトルロード命令実行プログラム |
US9229791B1 (en) * | 2012-08-24 | 2016-01-05 | Qlogic, Corporation | System and method for high speed multiple buffer allocation |
GB2521155B (en) | 2013-12-10 | 2021-06-02 | Advanced Risc Mach Ltd | Configuring thread scheduling on a multi-threaded data processing apparatus |
GB2521151B (en) * | 2013-12-10 | 2021-06-02 | Advanced Risc Mach Ltd | Configurable thread ordering for a data processing apparatus |
US9996354B2 (en) * | 2015-01-09 | 2018-06-12 | International Business Machines Corporation | Instruction stream tracing of multi-threaded processors |
US10430342B2 (en) * | 2015-11-18 | 2019-10-01 | Oracle International Corporation | Optimizing thread selection at fetch, select, and commit stages of processor core pipeline |
US20170337062A1 (en) * | 2016-05-19 | 2017-11-23 | Centipede Semi Ltd. | Single-thread speculative multi-threading |
US11132233B2 (en) * | 2018-05-07 | 2021-09-28 | Micron Technology, Inc. | Thread priority management in a multi-threaded, self-scheduling processor |
GB2580316B (en) * | 2018-12-27 | 2021-02-24 | Graphcore Ltd | Instruction cache in a multi-threaded processor |
CN112540789A (zh) * | 2019-09-23 | 2021-03-23 | 阿里巴巴集团控股有限公司 | 一种指令处理装置、处理器及其处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005309762A (ja) * | 2004-04-21 | 2005-11-04 | Fujitsu Ltd | スレッド切替制御装置。 |
JP3845043B2 (ja) * | 2002-06-28 | 2006-11-15 | 富士通株式会社 | 命令フェッチ制御装置 |
JP2006343872A (ja) * | 2005-06-07 | 2006-12-21 | Keio Gijuku | マルチスレッド中央演算装置および同時マルチスレッディング制御方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5010482A (en) * | 1987-07-02 | 1991-04-23 | Unisys Corp. | Multi-event mechanism for queuing happened events for a large data processing system |
US5900025A (en) * | 1995-09-12 | 1999-05-04 | Zsp Corporation | Processor having a hierarchical control register file and methods for operating the same |
JP3683968B2 (ja) * | 1996-02-09 | 2005-08-17 | 富士通株式会社 | 情報処理装置 |
US6535905B1 (en) * | 1999-04-29 | 2003-03-18 | Intel Corporation | Method and apparatus for thread switching within a multithreaded processor |
US6493741B1 (en) * | 1999-10-01 | 2002-12-10 | Compaq Information Technologies Group, L.P. | Method and apparatus to quiesce a portion of a simultaneous multithreaded central processing unit |
US6988186B2 (en) * | 2001-06-28 | 2006-01-17 | International Business Machines Corporation | Shared resource queue for simultaneous multithreading processing wherein entries allocated to different threads are capable of being interspersed among each other and a head pointer for one thread is capable of wrapping around its own tail in order to access a free entry |
US6898694B2 (en) * | 2001-06-28 | 2005-05-24 | Intel Corporation | High instruction fetch bandwidth in multithread processor using temporary instruction cache to deliver portion of cache line in subsequent clock cycle |
JP3806029B2 (ja) | 2001-12-17 | 2006-08-09 | 株式会社東芝 | 電力託送における発電電力制御装置 |
JP3804941B2 (ja) | 2002-06-28 | 2006-08-02 | 富士通株式会社 | 命令フェッチ制御装置 |
US7310722B2 (en) * | 2003-12-18 | 2007-12-18 | Nvidia Corporation | Across-thread out of order instruction dispatch in a multithreaded graphics processor |
JP2005284749A (ja) * | 2004-03-30 | 2005-10-13 | Kyushu Univ | 並列処理コンピュータ |
US7185178B1 (en) * | 2004-06-30 | 2007-02-27 | Sun Microsystems, Inc. | Fetch speculation in a multithreaded processor |
US8624906B2 (en) * | 2004-09-29 | 2014-01-07 | Nvidia Corporation | Method and system for non stalling pipeline instruction fetching from memory |
US8756605B2 (en) * | 2004-12-17 | 2014-06-17 | Oracle America, Inc. | Method and apparatus for scheduling multiple threads for execution in a shared microprocessor pipeline |
WO2008077283A1 (en) * | 2006-12-27 | 2008-07-03 | Intel Corporation | Pointer renaming in workqueuing execution model |
-
2007
- 2007-06-20 JP JP2009520188A patent/JP5177141B2/ja active Active
- 2007-06-20 WO PCT/JP2007/062412 patent/WO2008155834A1/ja active Application Filing
- 2007-06-20 EP EP12153535.5A patent/EP2453350B1/en active Active
- 2007-06-20 EP EP07767250.9A patent/EP2192483B1/en active Active
-
2009
- 2009-12-14 US US12/654,209 patent/US8291195B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3845043B2 (ja) * | 2002-06-28 | 2006-11-15 | 富士通株式会社 | 命令フェッチ制御装置 |
JP2005309762A (ja) * | 2004-04-21 | 2005-11-04 | Fujitsu Ltd | スレッド切替制御装置。 |
JP2006343872A (ja) * | 2005-06-07 | 2006-12-21 | Keio Gijuku | マルチスレッド中央演算装置および同時マルチスレッディング制御方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2453350A2 (en) | 2012-05-16 |
EP2192483B1 (en) | 2016-04-20 |
US8291195B2 (en) | 2012-10-16 |
EP2453350B1 (en) | 2016-04-27 |
JPWO2008155834A1 (ja) | 2010-08-26 |
EP2192483A1 (en) | 2010-06-02 |
EP2192483A4 (en) | 2011-05-04 |
EP2453350A3 (en) | 2012-06-13 |
WO2008155834A1 (ja) | 2008-12-24 |
US20100100708A1 (en) | 2010-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5177141B2 (ja) | 演算処理装置、演算処理方法 | |
US9965274B2 (en) | Computer processor employing bypass network using result tags for routing result operands | |
US9524164B2 (en) | Specialized memory disambiguation mechanisms for different memory read access types | |
US8082420B2 (en) | Method and apparatus for executing instructions | |
KR100745904B1 (ko) | 동시적 멀티스레드 프로세서에서 파이프라인 길이를변경하기 위한 방법 및 회로 | |
JP2004326785A (ja) | 同時マルチスレッドのための分割分岐履歴テーブルおよびカウント・キャッシュ | |
JP2008084009A (ja) | マルチプロセッサシステム | |
JP5861354B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US20150154022A1 (en) | Soft-Partitioning of a Register File Cache | |
EP2159691B1 (en) | Simultaneous multithreaded instruction completion controller | |
US7725659B2 (en) | Alignment of cache fetch return data relative to a thread | |
JP2004518183A (ja) | マルチスレッド・システムにおける命令のフェッチとディスパッチ | |
JP5128382B2 (ja) | 複数のロード命令を実行するための方法および装置 | |
US10430342B2 (en) | Optimizing thread selection at fetch, select, and commit stages of processor core pipeline | |
US10740102B2 (en) | Hardware mechanism to mitigate stalling of a processor core | |
US20220058025A1 (en) | Throttling while managing upstream resources | |
JP7131313B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
US11907126B2 (en) | Processor with multiple op cache pipelines | |
US20220075624A1 (en) | Alternate path for branch prediction redirect | |
CN115525343A (zh) | 一种并行译码的方法、处理器、芯片及电子设备 | |
GB2556740A (en) | Soft-partitioning of a register file cache |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120828 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121029 |
|
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: 20121211 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121224 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5177141 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |