JPWO2008155804A1 - 同時マルチスレッドの命令完了制御装置 - Google Patents
同時マルチスレッドの命令完了制御装置 Download PDFInfo
- Publication number
- JPWO2008155804A1 JPWO2008155804A1 JP2009520145A JP2009520145A JPWO2008155804A1 JP WO2008155804 A1 JPWO2008155804 A1 JP WO2008155804A1 JP 2009520145 A JP2009520145 A JP 2009520145A JP 2009520145 A JP2009520145 A JP 2009520145A JP WO2008155804 A1 JPWO2008155804 A1 JP WO2008155804A1
- Authority
- JP
- Japan
- Prior art keywords
- thread
- entry
- cse
- completion
- instruction
- 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.)
- Granted
Links
- 230000010365 information processing Effects 0.000 claims description 18
- 238000000034 method Methods 0.000 description 44
- 238000010586 diagram Methods 0.000 description 32
- 238000010187 selection method Methods 0.000 description 16
- COCAUCFPFHUGAA-MGNBDDOMSA-N n-[3-[(1s,7s)-5-amino-4-thia-6-azabicyclo[5.1.0]oct-5-en-7-yl]-4-fluorophenyl]-5-chloropyridine-2-carboxamide Chemical compound C=1C=C(F)C([C@@]23N=C(SCC[C@@H]2C3)N)=CC=1NC(=O)C1=CC=C(Cl)C=N1 COCAUCFPFHUGAA-MGNBDDOMSA-N 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 2
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 or 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
-
- 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 or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/507—Low-level
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Advance Control (AREA)
- Programmable Controllers (AREA)
Abstract
Description
本発明の情報処理装置は、命令の実行をパイプラインでアウト・オブ・オーダーで行い、イン・オーダーで命令の実行を完了する情報処理装置において、完了処理と、完了した命令のプログラマブルな資源の更新の制御を行なうために、命令の実行完了に伴う資源更新までの制御を行うためのデータを格納するエントリの記憶領域を備え、各エントリを、同時に実行されるスレッドの数分の、各スレッドに対応する連続領域に分けて格納するコミットスタックエントリ(CSE)手段と、該CSE手段のエントリの中から、完了判別の対象となるエントリのスレッドを1つ選択するスレッド選択手段と、該スレッド選択手段によって選択されたスレッドに対応するCSE手段のエントリの中から、未解放のエントリであり、かつ、最も古いエントリを先頭にして、完了判別の対象となるエントリのコピーを取得する完了対象エントリ手段と、該完了対象エントリ手段のエントリに対して、完了判別を行い、該エントリの命令のプログラマブルな資源の更新を行なう完了判別手段と資源の更新手段を備えることを特徴とする。
1次命令キャッシュ10からフェッチされた命令は、命令バッファ11に入力される。命令バッファ11に格納された命令は、命令デコーダ12でデコードされる。そして、命令デコーダ12でによる命令のデコードの結果にしたがって、アドレス演算用リザベーションステーション13、固定小数点演算用リザベーションステーション14、浮動小数点演算用リザベーションステーション15、分岐命令用リザベーションステーション16に命令が送られる。また、デコードされた全ての命令は、CSE17に送られてCSE17にエントリを生成する。
エントリ選択回路37は、CSE17から、命令完了を判定すべきエントリを選択する。エントリの選択に当たっては、スレッド選択回路36、ポインタレジスタ選択回路35からの信号及び完了対象のスレッドを示す完了対象スレッドIDと、完了判定部39からの信号を用いる。スレッド選択回路36は、完了を判定する命令のスレッドを選択する回路であり、選択結果は、ポインタレジスタ選択回路35、エントリ選択回路37、完了対象エントリ38に与えられる。完了対象エントリ38は、エントリ選択回路37で選択されたCSE17のエントリのコピーを格納する。また、完了対象エントリのみではなく、完了対象スレッドIDも完了対象エントリ38に格納される。完了対象エントリ38に格納された命令は、完了判定部39において、完了判定される。完了判定部39で完了したと判定された命令のスレッドのプログラマブルな資源については、更新が行なわれる。プログラマブルな資源の特定は、完了対象スレッドIDから得られる資源の更新スレッドIDによってなされる。また、完了判定部39の完了判定終了情報は、エントリ選択回路37に入力され、別のエントリの選択の契機とされる。図1について更に説明すると、命令フェッチを行うために、命令フェッチアドレス生成器29で選択された命令アドレスに対して命令フェッチリクエストを発行して、1次命令キャッシュ10からフェッチしてきた命令を命令バッファ11に格納する。命令バッファ11からプログラムの順番通りに命令デコーダ12に命令の供給を行い、命令デコーダ12はプログラムの順番通りに命令のデコードを行う。命令デコーダ12は、デコードする命令の種類に従って、命令の実行を制御する主記憶オペランドアドレス生成用リザベーションステーション(RSA:Reservation Station for Address generate)13、固定小数点演算用リザベーションステーション(RSE:Reservation Station for Execute)14、浮動小数点演算用リザベーションステーション(RSF:Reservation Station for Floating)15、分岐命令用リザベーションステーション(RSBR:Reservation Station for BRanch)16に必要なエントリを作成する。また、全てのデコードされた命令に対して、命令の完了を制御するコミットスタックエントリ(CSE:Commit Stack Entry)17にエントリを作成する。
命令デコーダ12でデコードされた命令は、アドレス演算用リザベーションステーション13、固定小数点演算用リザベーションステーション14、浮動小数点演算用リザベーションステーション15、分岐命令用リザベーションステーション16において実行される。命令の実行によって、実行完了した命令の識別子と共に、実行完了報告が生成され、実行完了エントリ選択回路47、完了対象エントリ選択回路46に与えられる。また、命令デコーダ12から命令識別子選択回路40に命令識別子が与えられ、命令識別子選択回路40で選択された命令識別子が生成エントリ選択回路41と、アドレス演算用リザベーションステーション13、固定小数点演算用リザベーションステーション14、浮動小数点演算用リザベーションステーション15、分岐命令用リザベーションステーション16それぞれに与えられる。
CSEのエントリは、外部から送られてくる動作しているスレッドを示す信号から単一スレッドで動作しているか否かを判断し、動作しているスレッド数の情報を得ることで、動作しているスレッド数分にCSEのエントリを分割して構成される。このときに、CSEのエントリを動作しているスレッド数分に分割するときには、1つのスレッドに対して連続したCSEのエントリの番号で構成するようにエントリを割り当て、割り当てられた全てのスレッドに対して、スレッドの未解放のエントリで最も古いエントリの番号を示すポインタレジスタに、初期値となる番号を格納する。
命令をデコードするステージを命令デコードステージ、次のサイクルでCSEのエントリに格納するステージをエントリ格納ステージ、CSEのエントリからエントリを選択して完了対象エントリに選択されたCSEのエントリのコピーを格納するステージをエントリ選択ステージ、完了対象エントリに対して完了判別を行うステージを完了判別ステージ、プログラマブルな資源の更新を行うステージを資源の更新ステージとする。そして、エントリ選択ステージの1サイクルの前で、完了対象エントリに格納するスレッドを選択するので、エントリ選択ステージの1サイクル前のステージをスレッド選択ステージとする。スレッド選択ステージで選択されたスレッドIDが、次サイクルではエントリ選択ステージ、その次サイクルでは完了判別ステージ、その次サイクルでは資源の更新ステージのスレッドIDを指すことになる。命令デコードから最短で命令を完了して資源の更新を行うときには、エントリ格納ステージとスレッド選択ステージは同じサイクルとなる。
図6において、図3と同じ構成要素には、同じ参照符号を付す。
図7では、ポインタレジスタを陽に示している。ポインタ選択回路A44、B43に与えられるポインタ値は、ポインタレジスタスレッド0(80)と、ポインタレジスタスレッド1(81)に格納されたポインタ値を使う。ポインタレジスタスレッド0(80)とポインタレジスタスレッド1(81)には、ポインタ更新回路51からのポインタ値が格納される。ポインタレジスタスレッド0(80)には、スレッド0に対するポインタ値、ポインタレジスタスレッド1(81)には、スレッド1に対するポインタ値が格納される。ポインタ選択回路A44とポインタ選択回路B43は、スレッド0とスレッド1のいずれかのポインタ値を選択する。ポインタ選択回路B43は、解放エントリのポインタを選択するが、これは、完了対象エントリスレッドIDを取得することによって行なう。完了対象エントリスレッドIDは、ポインタレジスタスレッド0(80)、ポインタレジスタスレッド1(81)に与えられ、新たなポインタ値をポインタ更新回路51から読み込ませる。また、完了対象エントリスレッドIDは、完了判別部39に与えられ、そのIDのスレッドの命令の完了判別を行なうと共に、完了判別が終わった時点で、ポインタ更新回路51に、完了判別が終わった命令のポインタを与える。ポインタ更新回路51には、更に、ポインタ選択回路B43からの解放エントリポインタが与えられ、次の解放エントリポインタの演算に使用される。ポインタ選択回路A44は、命令完了判別を行なうエントリをCSEから取得するためのポインタの選択を行なうが、これは、NEXT完了対象エントリスレッドID(次に、命令完了対象となるエントリのスレッドID)を取得して、スレッドの選択を行なう。
スレッド別に分かれているパイプラインをクリアする信号がパイプライン機構から発行されたとき、クリアする信号を発生したスレッドのCSEのエントリをリセットすることで(ステップS15)、パイプラインをクリアする信号を発行したスレッドのCSEのエントリは全て無効となる。パイプラインをクリアする信号を発生したスレッドのスレッドIDがNEXT完了対象エントリのスレッドIDのときには(ステップS16)、完了対象エントリにVALIDを格納しないことで、パイプラインをクリアする信号を発生したスレッドの完了判別を行わない。一方、スレッドがパイプラインをクリアする信号を発生したスレッドではない場合には、完了対象エントリにスレッドを格納して次サイクルで完了判別を行う。
スレッド選択回路の選択には、大きく分けて3段階の選択がある。この選択のいずれかに当てはまると、次サイクルのNEXT完了対象エントリスレッドIDとなるNEW_NEXT完了対象エントリスレッドIDが決定する。3段階の選択に全て当てはまらない場合には、NEXT完了対象エントリスレッドIDによって示されるスレッドに対する反対スレッドのスレッドIDを、NEW_NEXT完了対象エントリスレッドIDにする。
最も優先度が高い選択は、動作しているスレッドが単一のスレッド動作している場合に、NEW_NEXT完了対象エントリスレッドIDを単一で動作しているスレッドIDにすることである。
命令処理動作が単一のスレッドでない場合、すなわち、2つのスレッドが動作している場合には、2段階目の選択として、次の2つの事象が発生した場合が優先して選択される。
クリア信号を示すのが、+CLEAR_PIPELINE_THREAD_0と1であり、CSEのエントリが1つも有効でない状態を示すのが、+CSE_EMPTY_THREAD_0と1である。エントリが1つも有効でない状態の場合には、反対側のスレッドのエントリが1つも有効でない信号がオフのときに+CLEAR_PIPLINE_OR_CSE_EMPTY_THREAD_0, あるいは、_1がオンとなる。。クリア信号とエントリが1つも有効でない状態のOR信号出力が図11の回路につながり、スレッドを選択する。図13の出力は、それぞれ、スレッド0と、1について、パイプラインクリア信号が発行されているか、CSEのトンリが無効となっている場合を示す信号である。
3段階目の選択(図10における3段階目)については、次の事象が発生しているか否かでNEXT完了対象エントリのスレッドが選択される。未解放の最も古いエントリの実行待ち状態を監視する機能をスレッド選択回路が備え、実行待ち状態のスレッドが存在する場合には、実行待ち状態のスレッドと反対のスレッドにNEW_NEXT完了対象エントリスレッドIDをスレッド選択回路が選択する。
完了対象エントリに対して完了判別を行ったときに、完了対象エントリの先頭のエントリが有効であるが完了判別で完了出来る場合には、プログラマブルな資源の更新をする。完了判別で完了出来ないが、命令が実行待ちではない場合には、次サイクルに移り、新しい完了対象エントリの先頭エントリの完了判別を行う。完了判別で完了できない場合の要因が命令の実行待ち状態であるときには、どの実行待ちであるかを示す情報が実行待ち状態レジスタセット回路から実行待ち状態レジスタに格納される。この実行待ち状態レジスタは、スレッドごとに備えられる。一度実行待ち状態レジスタに実行待ち命令の情報が格納された場合には、実行待ち状態レジスタリセット回路からのリセット信号が発行されるまで、実行待ち状態レジスタが実行待ち命令の情報を保持し続ける。
1つ目の事象は、実行待ち状態レジスタに格納された実行待ち要因の実行が完了した場合であり、この場合にリセット信号が出力され、実行待ち状態レジスタをリセットすることが可能となる。命令の実行が完了した場合には、実行完了報告と命令識別子をCSEに送り、命令識別子が示すエントリの番号に従って実行完了報告をCSEのエントリに格納する。このときに、スレッドごとにあるポインタレジスタの番号と実行完了したときに送られてくる命令識別子が一致した場合には、実行が完了した命令が、スレッドの未解放で最も古いエントリを示すことになるので、実行待ち状態レジスタリセット回路からリセット信号を発行して、実行待ち状態レジスタに格納しないようにする。2つ目の事象は、パイプラインをクリアする信号が発行された場合である。このときにも、クリア信号を発行したスレッドの実行待ち状態レジスタリセット回路からリセット信号を発行する。3つ目の事象は、一定間隔のサイクルで、すべてのスレッドの実行待ち状態レジスタリセット回路から同時にリセット信号を発行する場合である。
図16の回路図は、スレッド0の演算実行待ち状態を表す回路である。この回路は、回路図の下側のセット回路と上側のリセット回路に分かれている。セット側の回路は、完了対象エントリの先頭のエントリが有効であることを示す信号+TOQ_WINDOW_VALID、完了対象エントリのスレッドIDがスレッド0を示している+TOQ_WINDOW_THREAD_ID_0、完了対象エントリの先頭のエントリが演算命令であることを示す信号+TOQ_WINDOW_EU_USEが全てオンの状態であり、完了対象エントリの先頭のエントリの演算実行が完了したことを示す信号+TOQ_WINDOW_EU_COMPがオフのときに、完了対象エントリの先頭のエントリが演算実行待ちであることを示す信号を出力する。また、実行待ち状態レジスタに実行待ち命令の情報がセットされていることを示す信号+TOQ_EU_COMP_WAIT_THREAD_0は実行待ち状態レジスタを再セットするために、完了対象エントリが実行待ちであることを示している信号とORされ、両信号がORされた信号がセット信号となる。
実行待ち状態レジスタが有効な状態であるときに、反対スレッドの実行待ち状態レジスタが有効でない状態であるか、反対スレッドのCSEのエントリが1つでも有効な場合であり、パイプラインをクリアする信号がスレッドに関係なく、発行されていない場合に、実行待ち状態レジスタが有効な状態であるスレッドと反対のスレッドに、NEW_NEXT完了対象エントリスレッドIDを選択する。両スレッドの実行待ち状態レジスタが有効な状態であるときには、この回路では、スレッドを選択することができないようにする。
実行待ち状態レジスタの信号で演算の実行待ちを示している信号+TOQ_EU_COMP_WAIT_THREAD_0と1(スレッド0と1それぞれについて)、分岐命令の実行待ちを示している信号+TOQ_BR_COMP_WAIT_THREAD_0と1(スレッド0と1それぞれについて)、ロード/ストア命令の実行待ちを示している信号+TOQ_FCH_COMP_WAIT_THREAD_0と1(スレッド0と1それぞれについて)の一方のスレッドについて、どれか1つでもオン状態であり、反対スレッド(スレッド0に対するスレッド1、スレッド1に対するスレッド0)の実行待ち状態レジスタの信号(上記、+TOQ_EU_COMP_WAIT_THREAD_0と1、+TOQ_BR_COMP_WAIT_THREAD_0と1、+TOQ_FCH_COMP_WAIT_THREAD_0と1)が1つもオンでなくて、反対スレッドのCSEのエントリが空状態であることを示す信号+CSE_EMPTY_THREAD_0と1がオフであり、さらに、クリアする信号を示す信号+CLEAR_PIPELILE_THREAD_0と1の両方ともオフであるときに成立した信号+TOQ_COMP_WAIT_THREAD_0と1が、命令実行待ちとなっているか否かを示す信号であり、図11の回路につながり、スレッドを選択する。
図19、及び、図20に、CSEのエントリの割り当て方を示す。
スレッド選択回路70で選択されたスレッドの、順番を管理する、選択スレッド番号管理レジスタ71を備える。このレジスタの構成を図21に示す。CSEの各スレッドのエントリ数は、動作しているスレッド数で決められ、各スレッドのエントリには、それぞれスレッド番号を格納している。選択スレッド番号管理レジスタ71のエントリ0に格納されているスレッド番号が、最も長い時間スレッド選択回路で選択されていないスレッドになり、その次に選択されていないスレッド番号がエントリ1に格納されている。このように、エントリ番号が小さいほど、スレッド選択回路で選択されていない時間が長いスレッド番号が格納されている。1番大きいエントリ番号の選択スレッド番号管理レジスタ71のエントリには、最後にスレッド選択回路で選択されたスレッド番号が格納されていることになる。
例として、動作するスレッド数が5スレッドのときを用いて説明する。
このときに、選択スレッド番号管理レジスタは、エントリ0からエントリ4で構成される。ある時点で、選択スレッド番号管理レジスタのエントリ0にスレッド3、エントリ1にスレッド0、エントリ2にスレッド2、エントリ3にスレッド4、エントリ4にスレッド5が格納されている。図23では、スレッド選択回路で、スレッド3が選択されたときを示している。このときに、選択スレッド番号管理レジスタでは、選択されたスレッド3が、最新に選択されたスレッドを格納するエントリ4に格納され、エントリ1から4まで格納されていたスレッド番号が、1つずつ小さいエントリ番号にシフトして格納される。すなわち、スレッド選択回路でスレッド3を選択した後のサイクルでの、選択スレッド番号管理レジスタは、エントリ0にスレッド0、エントリ1にスレッド2、エントリ2にスレッド4、エントリ3にスレッド1、エントリ4にスレッド0が格納されることになる。また、図24では、スレッド選択回路で、スレッド2が選択されたときに、選択スレッド番号管理レジスタは、選択されたスレッド2がエントリ4に格納される。選択されたスレッド2はエントリ2に格納されていたために、エントリ0と1に格納しているスレッド番号については、このサイクルでは移動することはない。エントリ3と4に格納されていたスレッド番号が、1つずつ小さいエントリ番号に格納される。
スレッド選択方法は、スレッド選択回路で選択されていない時間が最も長いスレッド番号を優先して選択することが可能となるようにする。選択スレッド番号管理レジスタのエントリ0には、スレッド選択回路で選択されていない時間が最も長いスレッド番号が格納されている。選択スレッド番号管理レジスタのエントリ0のスレッド番号から順番に見ていくことでスレッドを選択することになる。
エントリ0のスレッド番号のCSEのエントリが空でなく、エントリ0のスレッド番号のクリア信号が発生していない状態であり、エントリ0のスレッド番号の実行待ち状態レジスタが有効でなければ、エントリ0のスレッド番号をNEW_NEXT完了対象エントリスレッドIDとする。エントリ0のスレッド番号のCSEのエントリが空、もしくは、エントリ0のスレッド番号のクリア信号が発生した場合には、エントリ0以外のスレッド番号のCSEのエントリが全て空の場合、もしくは、エントリ0以外のスレッド番号のクリア信号が全て発生している状態である場合にも、エントリ0のスレッド番号をNEW_NEXT完了対象エントリスレッドIDとする。エントリ0のスレッド番号のCSEのエントリが空、もしくは、エントリ0のスレッド番号のクリア信号が発生した場合に、エントリ0以外のスレッド番号のCSEのエントリが有効、もしくは、エントリ0以外のスレッド番号のクリア信号が発生していない状態の場合には、エントリ1のスレッド番号の状態を見ることになる。
Claims (13)
- 命令の実行をパイプラインでアウト・オブ・オーダーで行い、イン・オーダーで命令の実行を完了する情報処理装置において、
命令の完了処理と、完了した命令のプログラマブルな資源の更新を行なうために命令の実行完了に伴う資源更新までの制御を行うためのデータを格納するエントリの記憶領域を備え、各エントリを、同時に実行されるスレッドの数分の、各スレッドに対応する連続領域に分けて格納するコミットスタックエントリ(CSE)手段と、
該CSE手段のエントリの中から、完了判別の対象となるエントリのスレッドを1つ選択するスレッド選択手段と、
該スレッド選択手段によって選択されたスレッドに対応するCSE手段のエントリの中から、未解放のエントリであり、かつ、最も古いエントリを先頭にして、完了判別の対象となるエントリを取得する完了対象エントリ手段と、
該完了対象エントリ手段のエントリに対して、完了判別を行い、該エントリの命令のプログラマブルな資源の更新を行なう完了判別手段と、
を備えることを特徴とする情報処理装置。 - 前記CSE手段は、スレッドの未解放のエントリで最も古いエントリの番号を示すポインタレジスタを、同時に実行されるスレッドの数分備える請求項1に記載の情報処理装置。
- 前記完了判別の対象として取得されるエントリの数は、1マシンサイクルで同時に完了判別可能な最大数であることを特徴とする請求項1に記載の情報処理装置。
- 前記CSE手段は、単一のスレッドのみで前記情報処理装置が動作している場合には、動作中のスレッドに対し、全てのエントリを割り当てて格納することを特徴とする請求項1に記載の情報処理装置。
- パイプラインにクリア信号が発行された場合に、クリア信号が発行されたパイプラインに対応するスレッドの、前記CSE手段のエントリをリセットするリセット手段と、
クリア信号が発行されたスレッドと、前記完了対象エントリ手段に格納されているエントリのスレッドとが一致する場合に、該完了対象エントリ手段のエントリを無効化するエントリ無効化手段と、
該完了対象エントリ手段のエントリが無効化された際に、完了判別処理を無効化する完了判別処理無効化手段と、
クリア信号が発行されたスレッドに対し、前記スレッド選択手段に、スレッドごとに割り当てられている該CSE手段の記憶領域の先頭位置を選択させる初期化手段と、
を更に備えることを特徴とする請求項1に記載の情報処理装置。 - クリア信号が発行されたスレッドと、前記完了対象エントリ手段にCSEのエントリのコピーを格納しようとしているスレッドが一致する場合に、該完了対象エントリ手段のエントリにCSEのエントリのコピーを格納することを無効化する手段、
を更に備えることを特徴とする請求項5に記載の情報処置装置。 - 前記スレッド選択手段は、動作していないスレッドを選択しないことを特徴とする請求項1に記載の情報処理装置。
- 前記スレッド選択手段は、クリア信号が発行されたパイプラインに対応するスレッドは選択しないことを特徴とする請求項1に記載の情報処理装置。
- 前記スレッド選択手段は、対応するエントリが全て無効化されているスレッドは選択しないことを特徴とする請求項1に記載の情報処理装置。
- 実行待ち状態であるために完了判別が完了できないエントリについて、実行待ちである要因を格納し、実行が完了するまで保持する、スレッドごとに設けられたレジスタ手段を更に備えることを特徴とする請求項1に記載の情報処理装置。
- 対応するパイプラインにクリア信号が発行されたスレッドの該レジスタ手段をクリアする第1のクリア手段と、
一定間隔のサイクルで、全ての該レジスタ手段をクリアする第2のクリア手段と、
を更に備えることを特徴とする請求項10に記載の情報処理装置。 - 前記スレッド選択手段は、実行待ち状態が有効なスレッドは選択しないことを特徴とする請求項10に記載の情報処理装置。
- 前記スレッド選択手段は、最も長く選択されていないスレッドから選択することを特徴とする請求項1に記載の情報処理装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2007/000662 WO2008155804A1 (ja) | 2007-06-20 | 2007-06-20 | 同時マルチスレッドの命令完了制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2008155804A1 true JPWO2008155804A1 (ja) | 2010-08-26 |
JP5201140B2 JP5201140B2 (ja) | 2013-06-05 |
Family
ID=40155969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009520145A Expired - Fee Related JP5201140B2 (ja) | 2007-06-20 | 2007-06-20 | 同時マルチスレッドの命令完了制御装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20100095305A1 (ja) |
EP (1) | EP2159691B1 (ja) |
JP (1) | JP5201140B2 (ja) |
WO (1) | WO2008155804A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8166146B2 (en) * | 2008-09-29 | 2012-04-24 | International Business Machines Corporation | Providing improved message handling performance in computer systems utilizing shared network devices |
US9304702B2 (en) | 2014-05-29 | 2016-04-05 | Netapp, Inc. | System and method for parallelized performance data collection in a computing system |
US9256477B2 (en) * | 2014-05-29 | 2016-02-09 | Netapp, Inc. | Lockless waterfall thread communication |
US9477521B2 (en) | 2014-05-29 | 2016-10-25 | Netapp, Inc. | Method and system for scheduling repetitive tasks in O(1) |
CN105592400A (zh) * | 2014-10-24 | 2016-05-18 | 中兴通讯股份有限公司 | 一种应用专有节点的注册方法、通信方法和节点 |
CN108093380B (zh) * | 2016-11-22 | 2022-11-08 | 中兴通讯股份有限公司 | 注册状态的确定方法、装置及系统、cse |
JP7225745B2 (ja) | 2018-12-06 | 2023-02-21 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6535905B1 (en) * | 1999-04-29 | 2003-03-18 | Intel Corporation | Method and apparatus for thread switching within a multithreaded processor |
US6357016B1 (en) * | 1999-12-09 | 2002-03-12 | Intel Corporation | Method and apparatus for disabling a clock signal within a multithreaded processor |
GB0013336D0 (en) * | 2000-06-01 | 2000-07-26 | Sgs Thomson Microelectronics | Forming an executable program |
JP3727887B2 (ja) * | 2002-02-19 | 2005-12-21 | 富士通株式会社 | マルチスレッドプロセッサにおける共有レジスタファイル制御方式 |
FI116166B (fi) * | 2002-06-20 | 2005-09-30 | Nokia Corp | Menetelmä ja järjestelmä sovellusistuntojen suorittamiseksi elektroniikkalaitteessa, ja elektroniikkalaite |
US7472258B2 (en) * | 2003-04-21 | 2008-12-30 | International Business Machines Corporation | Dynamically shared group completion table between multiple threads |
US20050138333A1 (en) * | 2003-12-19 | 2005-06-23 | Samra Nicholas G. | Thread switching mechanism |
US7890734B2 (en) * | 2004-06-30 | 2011-02-15 | Open Computing Trust I & II | Mechanism for selecting instructions for execution in a multithreaded processor |
JP4956891B2 (ja) * | 2004-07-26 | 2012-06-20 | 富士通株式会社 | 演算処理装置,情報処理装置および演算処理装置の制御方法 |
JP2006059068A (ja) * | 2004-08-19 | 2006-03-02 | Matsushita Electric Ind Co Ltd | プロセッサ装置 |
JP2006343872A (ja) * | 2005-06-07 | 2006-12-21 | Keio Gijuku | マルチスレッド中央演算装置および同時マルチスレッディング制御方法 |
KR100806274B1 (ko) * | 2005-12-06 | 2008-02-22 | 한국전자통신연구원 | 멀티 쓰레디드 프로세서 기반의 병렬 시스템을 위한 적응형실행 방법 |
US8407715B2 (en) * | 2007-04-30 | 2013-03-26 | National Tsing Hua University | Live range sensitive context switch procedure comprising a plurality of register sets associated with usage frequencies and live set information of tasks |
-
2007
- 2007-06-20 JP JP2009520145A patent/JP5201140B2/ja not_active Expired - Fee Related
- 2007-06-20 EP EP07790188.2A patent/EP2159691B1/en not_active Not-in-force
- 2007-06-20 WO PCT/JP2007/000662 patent/WO2008155804A1/ja active Application Filing
-
2009
- 2009-12-14 US US12/637,273 patent/US20100095305A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP5201140B2 (ja) | 2013-06-05 |
EP2159691A4 (en) | 2010-10-13 |
EP2159691B1 (en) | 2013-08-28 |
US20100095305A1 (en) | 2010-04-15 |
EP2159691A1 (en) | 2010-03-03 |
WO2008155804A1 (ja) | 2008-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5104863B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US7269712B2 (en) | Thread selection for fetching instructions for pipeline multi-threaded processor | |
JP4610593B2 (ja) | デュアルスレッドプロセッサ | |
JP3716415B2 (ja) | 同時マルチスレッドのための分割分岐履歴テーブルおよびカウント・キャッシュ | |
JP4287799B2 (ja) | プロセッサシステムおよびスレッド切り替え制御方法 | |
JP5177141B2 (ja) | 演算処理装置、演算処理方法 | |
JP5201140B2 (ja) | 同時マルチスレッドの命令完了制御装置 | |
JP5548037B2 (ja) | 命令発行制御装置及び方法 | |
JP3919764B2 (ja) | 例外条件を解消するために同時マルチスレッド・プロセッサでディスパッチ・フラッシュを使用する方法 | |
JP3716414B2 (ja) | 同時マルチスレッド化プロセッサ | |
JP2005182825A5 (ja) | ||
JP4956891B2 (ja) | 演算処理装置,情報処理装置および演算処理装置の制御方法 | |
CN110402434B (zh) | 缓存未命中线程平衡 | |
WO2017163143A1 (en) | Speculative multi-threading trace prediction | |
US20100100709A1 (en) | Instruction control apparatus and instruction control method | |
JP2020091751A (ja) | 演算処理装置および演算処理装置の制御方法 | |
JP5104862B2 (ja) | 命令実行制御装置及び命令実行制御方法 | |
US10430342B2 (en) | Optimizing thread selection at fetch, select, and commit stages of processor core pipeline | |
KR102639414B1 (ko) | 멀티스레딩 프로세서 및 이의 동작 방법 | |
JP6477248B2 (ja) | 演算処理装置及び演算処理装置の処理方法 | |
JP2023540036A (ja) | 分岐予測リダイレクトのための代替パス | |
JP2015184979A (ja) | 演算装置および命令フェッチ方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120717 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120910 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121016 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121214 |
|
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: 20130115 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130128 |
|
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: 20160222 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |