JP5573038B2 - マルチスレッドプロセッサ及びプログラム - Google Patents
マルチスレッドプロセッサ及びプログラム Download PDFInfo
- Publication number
- JP5573038B2 JP5573038B2 JP2009172204A JP2009172204A JP5573038B2 JP 5573038 B2 JP5573038 B2 JP 5573038B2 JP 2009172204 A JP2009172204 A JP 2009172204A JP 2009172204 A JP2009172204 A JP 2009172204A JP 5573038 B2 JP5573038 B2 JP 5573038B2
- Authority
- JP
- Japan
- Prior art keywords
- thread
- instruction
- counter
- program
- executed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000006870 function Effects 0.000 claims description 10
- 238000000034 method Methods 0.000 description 31
- 238000010586 diagram Methods 0.000 description 14
- 239000000872 buffer Substances 0.000 description 10
- 101150071111 FADD gene Proteins 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
Images
Landscapes
- Advance Control (AREA)
Description
例えば、VLIW(Very Long Instruction Word)と称されるプロセッサでは、複数の命令語(例えば、演算命令、ロード命令など)を1つの超長命令(VLIW)にパックし、これら複数の命令語を同時に実行する。この場合、プログラムのコンパイル時に、命令間の順序関係やデータ依存関係を解析し、同時に実行することが可能な命令群を抽出する。
これにより、ランタイムオーバーヘッド無しに、複数命令の同時実行による性能向上を実現している。
マルチスレッドプロセッサにおけるスレッドの切り替え方式として、複数のスレッドをクロックサイクル単位に切り替える細粒度マルチスレッディング方式(Fine grained multithreading)、複数のスレッドの内から、同時に実行可能な命令を抽出して実行する同時マルチスレッディング方式(Simultaneous multithreading)、及びキャッシュミスのような長いストールが発生した場合にのみ、実行するスレッドを切り替える粗粒度マルチスレッディング(Coarse grained multithreading)方式などが提案されている。
このため、前述の特許文献1に開示された技術と同様に、命令間の依存関係をハードウェアで検知し、この検出をトリガーとして、実行するスレッドの切り替えを行い、異なるスレッドの実行を継続する実装が考えられる(図6参照)。
同図に示す従来のマルチスレッドプロセッサは、スレッドの命令流を制御するプログラムカウンタ91(PC0〜PC3 )と、実行するスレッドを選択するスレッド選択部92と、命令メモリから命令を読み出す命令フェッチ部93と、命令を実行する命令実行部94と、命令間のオペランド依存関係を検出する依存検知部95と、から構成される。
図6に示すプロセッサは、近年の他のプロセッサと同様に、動作周波数の向上を実現するため複数のパイプラインステージから構成されている。
同図に例示するプログラムは、演算結果が得られるまでの遅延が長い浮動少数点命令(fmul/fadd/fsub)を実行するものであり、fmulのデスティネーション(r[1] と、faddのソースオペランド(r[1])間に依存関係が存在する場合である。
図6に示すプロセッサで、図7に例示するプログラムを実行すると、実行するスレッドは、図8に示すように切り替わる。
図6に示すプロセッサでは、命令実行部で実行中の命令(図8に示すスレッド1のfmul)のデスティネーション番号と、命令フェッチ部がフェッチ済みの命令(図8に示すスレッド1のfadd)のソースオペランド番号を、依存検知部95(図6)が比較することにより、依存検知部95は、命令間の依存関係を検知する。
同図に示すマルチスレッドプロセッサは、図6に示すマルチスレッドプロセッサを拡張したマルチスレッドプロセッサであり、前述のスレッド切り替えに伴って、1サイクルの間、有効な命令を実行することができなくなる状態の発生を防ぐための実装を備える。
図9に示すマルチスレッドプロセッサでは、図6に示すマルチスレッドプロセッサに、スレッド毎の命令バッファ96と、命令選択部97とが追加されており、依存検知部95の接続先としては、スレッド選択部91に加えて、命令選択部97が追加されている。
しかし、命令バッファ96の、各スレッドに対応する単位バッファの各々は、2サイクル分以上の命令をバッファできるものであることが必要となる。スレッド切り替えの判断を行った時点では、命令バッファ96からは、切り替える前のスレッドの命令が読み出されている。このため、命令バッファ96が1サイクル分の命令のみをバッファする場合では、スレッドを切り替えた直後のサイクルでは、命令バッファ96から、実行可能な命令を読み出すことができないことになる。
図9に示す従来のマルチスレッドプロセッサは、演算結果が得られるまでの遅延が長い命令の場合には、データ依存の有無に関わらず、必ずスレッドを切り替えるように制御している。しかし、こうした構成の場合は、図10に示すような、遅延サイクルを利用したプログラミングができない。何故なら、データ依存の有無に関わらず、必ずスレッドを切り替えるように制御すると、遅延が長い命令(図10に示すスレッド1のfmul)の遅延サイクルに、データ依存の無い命令(図10に示すスレッド1のfadd)を配置できる場合であっても、スレッドの切り替えが行われてしまうことになるからである。
また、他に実行可能なスレッドが無い場合などには、有効な命令を継続して実行することができない。
但し、本発明の実施の形態は、下記の実施の形態に限定されることはなく、本発明の技術的範囲に属する限り、他の様々な形態をとり得る。
同図に示す本発明の実施形態に係るマルチスレッドプロセッサは、実行する命令の命令語内部に設けられたスレッド切り替えフラグに基づいて、実行するスレッドを切り替えることを特徴とする。
図1に示す本実施形態のマルチスレッドプロセッサは、基本構成として、スレッドの命令流を制御するプログラムカウンタ1(PC0〜PC3)と、実行するスレッドを選択するスレッド選択部2と、スレッド選択部2が選択したスレッドのプログラムカウンタ値に基づき、命令メモリ(図示は省略)から命令を読み出す命令フェッチ部3と、命令フェッチ部3が読み出した命令を実行する命令実行部4、とを備える。
また、本実施形態のマルチスレッドプロセッサは、近年のプロセッサと同様、動作周波数の向上を実現するために、複数のパイプラインステージから構成されるものとする。
さらに、図1に示す本実施形態のマルチスレッドプロセッサでは、命令フェッチステージと命令実行ステージとの2つのパイプラインステージを備えた構成を示しているが、一般に、本発明に係るマルチスレッドプロセッサは、必ずしも、このような構成に限るものではなく、プロセッサを構成するパイプラインステージの数は、任意である。
同図に示すように、本実施形態に係るマルチスレッドプロセッサで用いられる命令形式は、実行する命令の種類を指定するオペコード(Opcode)と、演算の対象データを指定するソースオペランド(r1/r2) と、演算結果の保存先を指定するデスティネーション(r3)と、実行するスレッドの切り替えを指示するスレッド切り替えフラグ(tcf)と、を含む。
まず、命令フェッチ部3は、スレッド選択部2から指定されたアドレスに従って、図2に示す命令形式の命令を、命令メモリ(図示は省略)からフェッチする。その後、命令フェッチ部3は、フェッチした命令の命令語の内部に設けられたスレッド切り替えフラグ(tcf)がアクティブである場合に、実行するスレッドの切り替えをスレッド選択部2に要求する(より具体的には、内部フラグ(図示は省略)のスレッド切り替え要求をアクティブに設定する)。
スレッド選択部2は、内部フラグのスレッド切り替え要求がアクティブであることを検知し、現在実行しているスレッドに対応するプログラムカウンタとは、別のプログラムカウンタからのアドレスを選択し、前記アドレスを命令フェッチ部3へと送出する。
図3では、図1に示すマルチスレッドプロセッサにおいて、前述の図7に示すプログラムを実行した場合に、実行するスレッドがどのように切り替わるかを示している。
前述の図7に示すプログラム例の場合、fmul命令の命令語内部に設けられたスレッド切り替えフラグがアクティブに設定される。また、図3に示すIa-bは、スレッドaのb 番目の命令を示す。
以下、図1〜3を参照しながら、図4に示すフローチャート図を使用して、本実施形態に係るマルチスレッドプロセッサが実行する命令の、命令語中に設けられたスレッド切り替えフラグ(tcf)を設定する処理の手順を説明する。
また、この専用のプログラムは、前記のコンパイラ自体に含ませることも可能であり、さらに、コンパイラの実行後に実行される他のベーシックソフトに含ませることも可能である。ここでは、この専用のプログラムは、前記コンパイラ等のベーシックソフトに含まれているものとして説明する。
(ステップS1)
まず、入力となるアセンブルプログラム、またはマシン語プログラム、または中間言語記述における各命令に対して、各命令の演算結果を得るのに、N(>0)サイクルの遅延を生じるか否かを検査する。このため、ステップS1では、命令列を出力するコンパイラ等のベーシックソフトが、一時変数Sに1を代入し、以後、1番目の命令から順に、(一時変数Sの値)番目の命令を検査する用意をする。
次に、ステップS2では、前記コンパイラ等のベーシックソフトが、(一時変数Sの値)番目の命令が、演算結果を得るのにN(>0)サイクルの遅延が生じるか否かを検証し、演算結果を得るのにN(>0)サイクルの遅延が生じない場合には、一時変数Sの新しい値を、(一時変数Sの値)+1番目とするために、ステップS10に移る。他方、演算結果を得るのにN(>0)サイクルの遅延が生じる場合は、ステップS3に進む。
(ステップS3)
ステップS3では、前記コンパイラ等のベーシックソフトが、一時変数Tに1を代入し、かつ一時変数Cに0を代入し、(一時変数Sの値)に後続する命令間のオペランド依存関係を検証する準備を行う。
次に、ステップS4では、前記コンパイラ等のベーシックソフトが、(S+1)番目から(S+N)番目の各命令が、S番目の命令の演算結果を利用するか否かを検証し、(S+1)番目から( S+N)番目の各命令が、S番目の命令の演算結果を利用しない場合はステップS5に進む。他方、(S+1)番目から(S+N)番目の各命令が、S番目の命令の演算結果を利用する場合はステップS6に移る。
(ステップS5)
ステップS5では、前記コンパイラ等のベーシックソフトが、一時変数Cの値に1を加え、ステップS6に進む。
ステップS6では、前記コンパイラ等のベーシックソフトが、一時変数Tの値に1を加え、ステップS7に進む。
(ステップS7)
ステップS7では、前記コンパイラ等のベーシックソフトが、T>Nか否かを検証し、T>NであればステップS8に進む。他方、T>Nでない場合はステップS4に戻る。
(ステップS8)
ステップS8では、前記コンパイラ等のベーシックソフトが、C<(N/2)か否かを検証し、C<(N/2)であればステップS9に進む。他方、C<(N/2)でない場合はステップS10に移る。
ステップS9では、前記コンパイラ等のベーシックソフトが、S番目の命令のスレッド切り替えフラグ(tcf)をアクティブに設定し、ステップS10に進む。
(ステップS10)
ステップS10では、前記コンパイラ等のベーシックソフトが、一時変数Sの値に1を加え、ステップS11に進む。
(ステップS11)
ステップS11では、前記コンパイラ等のベーシックソフトが、S≧プログラムの命令数か否かを検証し、S≧プログラムの命令数でなければステップS2に戻る。他方、S≧プログラムの命令数であれば直ちに処理を終了する。
この検査を(S+N)番目の各命令に対して、順次行い、S番目の命令の演算結果を利用しない命令の数(C)に基づき、S番目の命令のスレッド切り替えフラグ(tcf)の設定を行うものである。また、利用しない命令の数(C)が、演算結果が得られるまでのサイクル数(N)の半分より小さければ、S番目の命令のスレッド切り替えフラグ(tcf)をアクティブに設定するのである。以上の処理を、プログラム中の全命令に対して行う。
このようにして、各命令のスレッド切り替えフラグ(tcf)を設定することができる。
同図に示すマルチスレッドプロセッサは、実行する命令の命令語内部に設けられたスレッド切り替えフラグに基づき、実行するスレッドを切り替えるマルチスレッドプロセッサである。
図5に示すように、本発明の実施形態に係るマルチスレッドプロセッサの1実施例としてのマルチスレッドプロセッサは、スレッドの命令流を制御するプログラムカウンタ1(PC0〜PC3)と、スレッド毎に、スレッドが実行されないサイクル数をカウントするスレッドカウンタ10(TC0〜TC3)と、実行するスレッドを選択するスレッド選択部2と、スレッド選択部が選択したスレッドのプログラムカウンタ値に基づき、命令メモリから命令を読み出す命令フェッチ部3と、後述するNOP置換部12が送出する命令を実行する命令実行部4と、NOP(None Operation)命令を送出するNOP11と、スレッド選択部2の指示に基づいてフェッチされた命令をNOP命令に置き換えるNOP置換部12と、から構成される。
さらに、図5に示すマルチスレッドプロセッサでは、命令フェッチステージと命令実行ステージとの2つのステージを示しているが、一般に、本発明に係るマルチスレッドプロセッサは、必ずしも、この実施例に限定されるものではない。プロセッサを構成するパイプラインステージの数は任意である。
図5に示すマルチスレッドプロセッサは、図1に示したマルチスレッドプロセッサと同様に、図2に示す命令形式の命令を実行し、フェッチされた命令の命令語内部に設けられたスレッド切り替えフラグ(tcf)がアクティブである場合に、スレッド選択部2が、実行するスレッドを切り替える。その際に、スレッド選択部2は、各スレッドに対応するスレッドカウンタ10のカウント値に基づき、次に選択するスレッドを決定する。具体的には、スレッドカウンタ10のカウント値が0であるスレッドを、次に実行するスレッドとして選択する。
スレッドが切り替えられる際に、スレッドカウンタ10に格納される所定の値は、元々実行していたスレッドにおいて、最後にフェッチされた命令のオペコード(Opcode)に基づき決定される。例えば、あるオペコードに該当する命令が、演算結果を得るのにN(>0)サイクルの遅延が生じる場合には、所定の値として、(N−1)の値がスレッドカウンタに格納される。このため、スレッドカウンタ10に格納される所定の値は、当該オペコードに基づいて制御されるセレクタ(図示は省略)によって選択され、該選択された値がスレッドカウンタに供給される。
一方、NOP置換部12は、スレッド選択部2からの制御に基づき、命令フェッチ部3が読み出した命令を、NOP(None OPeration)命令に置き換える。具体的には、スレッドを切り替える際に、スレッド選択部2が、他に実行可能なスレッドが無いことを検知した場合に、スレッド選択部2は、NOP命令への置き換えを、NOP置換部12に対して要求する(より具体的には、NOP置換要求を示す内部フラグをアクティブに設定する) 。なお、スレッド選択部2は、実行中のスレッド以外に、スレッドカウンタ10のカウント値が0である実行待ちのスレッドが、1つも無い場合に、他に実行可能なスレッドが無いと判断する。
2 スレッド選択部
3 命令フェッチ部
4 命令実行部
10 スレッドカウンタ
12 NOP置換部
Claims (6)
- 複数のパイプラインステージを備え、所定の細粒度に複数個のスレッドを切り替えられるマルチスレッドプロセッサであって、
スレッド毎の命令流を制御するプログラムカウンタと、
前記プログラムカウンタの1つを選択するスレッド選択手段と、
前記スレッド選択手段が選択したプログラムカウンタの値に基づいて命令をフェッチする命令フェッチ手段と、
前記命令フェッチ手段から送出された前記命令を実行する命令実行手段と
を備え、
前記命令には、実行スレッドの切り替えを要求するためのスレッド切り替えフラグを命令語内部に含み、
前記スレッド切り替えフラグは、演算結果を得るのに所定値サイクルの遅延が生じる命令において、当該遅延サイクル中に存在する、当該演算結果を利用しない命令の数が、前記所定値サイクルの数よりも小さい場合に、実行スレッドの切り替えを要求することを指示するアクティブに設定され、
前記命令フェッチ手段は、フェッチした命令の命令語内部に含む、前記スレッド切り替えフラグが、アクティブに設定されている場合には、実行スレッドの切り替えを要求する指示を前記スレッド選択手段に伝達し、
前記スレッド選択手段は、該指示に基づいて、現在実行しているスレッドに対応するプログラムカウンタとは別のプログラムカウンタからのアドレスを選択して前記命令フェッチ手段に送出する
ことを特徴とするマルチスレッドプロセッサ。 - スレッド毎に、スレッドが実行されないサイクル数をカウントするスレッドカウンタと、
前記命令フェッチ手段がフェッチした命令をNOP命令に置き換えるNOP置換手段と
を更に備え、
前記スレッド選択手段は、実行するスレッドを切り替える際に、前記スレッドカウンタのカウンタ値が0である実行待ちのスレッドを次に実行するスレッドとして選択し、前記スレッドカウンタのカウンタ値が0である実行待ちのスレッドが1つもない場合に、NOP命令への置き換えを前記NOP置換手段に要求する
ことを特徴とする請求項1に記載のマルチスレッドプロセッサ。 - 前記スレッドカウンタは、初期値として0を格納し、スレッドが切り替えられると、実行されていたスレッドに対応するスレッドカウンタは、実行されていたスレッドにおいて最後にフェッチされた命令のオペコードに基づいて決定される所定値を設定し、該所定値を、対応するスレッドが選択されていないサイクル毎に、0になるまでデクリメントし、
前記最後にフェッチされた命令のオペコードに基づいて決定される所定値は、該命令の演算結果を得るのに必要な遅延サイクル数に基づく値である
ことを特徴とする請求項2に記載のマルチスレッドプロセッサ。 - 複数のパイプラインステージを備え、所定の細粒度に複数個のスレッドを切り替えられるマルチスレッドプロセッサとして機能させるプログラムであって、
前記マルチスレッドプロセッサを、
スレッド毎の命令流を制御するプログラムカウンタ、
前記プログラムカウンタの1つを選択するスレッド選択手段、
前記スレッド選択手段が選択したプログラムカウンタの値に基づいて命令をフェッチする命令フェッチ手段、
前記命令フェッチ手段から送出された前記命令を実行する命令実行手段
として機能させ、
前記命令には、実行スレッドの切り替えを要求するためのスレッド切り替えフラグを命令語内部に含み、
前記スレッド切り替えフラグは、演算結果を得るのに所定値サイクルの遅延が生じる命令において、当該遅延サイクル中に存在する、当該演算結果を利用しない命令の数が、前記所定値サイクルの数よりも小さい場合に、実行スレッドの切り替えを要求することを指示するアクティブに設定され、
前記命令フェッチ手段は、フェッチした命令の命令語内部に含む、前記スレッド切り替えフラグが、アクティブに設定されている場合には、実行スレッドの切り替えを要求する指示を前記スレッド選択手段に伝達し、
前記スレッド選択手段は、該指示に基づいて、現在実行しているスレッドに対応するプログラムカウンタとは別のプログラムカウンタからのアドレスを選択して前記命令フェッチ手段に送出する
ように機能させることを特徴とするプログラム。 - 前記マルチスレッドプロセッサを、
スレッド毎に、スレッドが実行されないサイクル数をカウントするスレッドカウンタ、
前記命令フェッチ手段がフェッチした命令をNOP命令に置き換えるNOP置換手段
として更に機能させ、
前記スレッド選択手段は、実行するスレッドを切り替える際に、前記スレッドカウンタのカウンタ値が0である実行待ちのスレッドを次に実行するスレッドとして選択し、前記スレッドカウンタのカウンタ値が0である実行待ちのスレッドが1つもない場合に、NOP命令への置き換えを前記NOP置換手段に要求する
ように機能させることを特徴とする請求項4に記載のプログラム。 - 前記スレッドカウンタは、初期値として0を格納し、スレッドが切り替えられると、実行されていたスレッドに対応するスレッドカウンタは、実行されていたスレッドにおいて最後にフェッチされた命令のオペコードに基づいて決定される所定値を設定し、該所定値を、対応するスレッドが選択されていないサイクル毎に、0になるまでデクリメントし、
前記最後にフェッチされた命令のオペコードに基づいて決定される所定値は、該命令の演算結果を得るのに必要な遅延サイクル数に基づく値である
ように機能させることを特徴とする請求項5に記載のプログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009172204A JP5573038B2 (ja) | 2009-07-23 | 2009-07-23 | マルチスレッドプロセッサ及びプログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009172204A JP5573038B2 (ja) | 2009-07-23 | 2009-07-23 | マルチスレッドプロセッサ及びプログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2011028440A JP2011028440A (ja) | 2011-02-10 |
| JP5573038B2 true JP5573038B2 (ja) | 2014-08-20 |
Family
ID=43637135
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2009172204A Expired - Fee Related JP5573038B2 (ja) | 2009-07-23 | 2009-07-23 | マルチスレッドプロセッサ及びプログラム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP5573038B2 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20150019349A (ko) * | 2013-08-13 | 2015-02-25 | 삼성전자주식회사 | 다중 쓰레드 실행 프로세서 및 이의 동작 방법 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS61233838A (ja) * | 1985-04-09 | 1986-10-18 | Nec Corp | 情報処理装置 |
| JP3569014B2 (ja) * | 1994-11-25 | 2004-09-22 | 富士通株式会社 | マルチコンテキストをサポートするプロセッサおよび処理方法 |
| US6330584B1 (en) * | 1998-04-03 | 2001-12-11 | Mmc Networks, Inc. | Systems and methods for multi-tasking, resource sharing and execution of computer instructions |
| KR100498482B1 (ko) * | 2003-01-27 | 2005-07-01 | 삼성전자주식회사 | 명령어수에 수행 주기 회수를 가중치로 사용하여 쓰레드를페치하는 동시 다중 쓰레딩 프로세서 및 그 방법 |
-
2009
- 2009-07-23 JP JP2009172204A patent/JP5573038B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2011028440A (ja) | 2011-02-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101109029B1 (ko) | 연산 장치 | |
| US7269712B2 (en) | Thread selection for fetching instructions for pipeline multi-threaded processor | |
| US5724565A (en) | Method and system for processing first and second sets of instructions by first and second types of processing systems | |
| US9286072B2 (en) | Using register last use infomation to perform decode-time computer instruction optimization | |
| US6061710A (en) | Multithreaded processor incorporating a thread latch register for interrupt service new pending threads | |
| CN101681261B (zh) | 运算处理装置及其控制方法 | |
| JP5081143B2 (ja) | マルチスレッド化されたプロセッサ内で低消費電力モードを自動的に呼び出すための装置及び方法 | |
| US8650554B2 (en) | Single thread performance in an in-order multi-threaded processor | |
| JP5173714B2 (ja) | マルチスレッドプロセッサ及びその割り込み処理方法 | |
| US8301870B2 (en) | Method and apparatus for fast synchronization and out-of-order execution of instructions in a meta-program based computing system | |
| CN101238425B (zh) | 使用低功率虚拟线程的软件指定的电源性能管理装置和方法 | |
| JP5666473B2 (ja) | マルチスレッド式データ処理システム | |
| JP2008525921A (ja) | オペレーティング・システム介入なしにos隔離シーケンサー上でスレッドをスケジューリングする機構 | |
| US20090249037A1 (en) | Pipeline processors | |
| CN101763251A (zh) | 多线程微处理器的指令译码缓冲装置 | |
| CN108920190B (zh) | 用于确定从其恢复指令执行的恢复点的装置和方法 | |
| US11366669B2 (en) | Apparatus for preventing rescheduling of a paused thread based on instruction classification | |
| WO2002006959A1 (en) | Instruction fetch and dispatch in multithreaded system | |
| EP2159691B1 (en) | Simultaneous multithreaded instruction completion controller | |
| JP2020091751A (ja) | 演算処理装置および演算処理装置の制御方法 | |
| US20060259741A1 (en) | Controlling out of order execution pipelines issue tagging | |
| KR102379886B1 (ko) | 벡터 명령 처리 | |
| JP5573038B2 (ja) | マルチスレッドプロセッサ及びプログラム | |
| JP5696210B2 (ja) | プロセッサ及びその命令処理方法 | |
| JP5104862B2 (ja) | 命令実行制御装置及び命令実行制御方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120606 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130918 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130924 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140408 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140514 |
|
| 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: 20140603 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140616 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5573038 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |