JP2014182829A - 直接依存命令及びネストされた依存命令のためのスケジューラー内の推測的ソース準備をリセットする効果的な方法 - Google Patents

直接依存命令及びネストされた依存命令のためのスケジューラー内の推測的ソース準備をリセットする効果的な方法 Download PDF

Info

Publication number
JP2014182829A
JP2014182829A JP2014051609A JP2014051609A JP2014182829A JP 2014182829 A JP2014182829 A JP 2014182829A JP 2014051609 A JP2014051609 A JP 2014051609A JP 2014051609 A JP2014051609 A JP 2014051609A JP 2014182829 A JP2014182829 A JP 2014182829A
Authority
JP
Japan
Prior art keywords
instruction
source
dependent instruction
dependent
nested
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
Application number
JP2014051609A
Other languages
English (en)
Other versions
JP2014182829A5 (ja
JP6148191B2 (ja
Inventor
Iyengar Ravi
ラヴィ・イェンガー
Gene Burgess Bradley
ブラッドリー・ジーン・バージェス
Kumar Dubey Sandeep
サンディープ・クマール・ドゥベイ
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2014182829A publication Critical patent/JP2014182829A/ja
Publication of JP2014182829A5 publication Critical patent/JP2014182829A5/ja
Application granted granted Critical
Publication of JP6148191B2 publication Critical patent/JP6148191B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

【課題】パワー及び時間が節約される命令処理装置及び方法を提供する。
【解決手段】命令処理方法は、依存命令の生成命令によって前記依存命令のソースを推測的にウェークアップする段階と、前記依存命令によってネストされた依存命令のソースを前記依存命令にしたがって推測的にウェークアップする段階と、前記依存命令の前記ソースと前記ネストされた依存命令の前記ソースとがアクセス準備になったことを示すように前記依存命令の前記ソースのソース準備ビットをセッティングし、前記ネストされた依存命令の前記ソースのソース準備ビットをセッティングする段階と、前記生成命令が取消されることと予想される取消時間に基づいて前記依存命令の取消タイマーをセッティングし、前記ネストされた依存命令の前記ソースの取消タイマーをセッティングする段階と、前記依存命令及び前記ネストされた依存命令を同時に取消す段階と、を含む。
【選択図】図3

Description

本発明の態様は命令(instructions)を取消し、ソース準備状態(source−ready state)をリセットする装置及び方法に関し、さらに詳細には取消タイマー(cancel timer)を利用して直接依存命令(direct dependent instruction)及びネストされた依存命令(nested dependent instruction)を取消し、ソース準備ビット(source ready bits)をリセットする装置及び方法に関する。
現在のマイクロプロセッサは命令(instruction)の推測的なスケジューリング(speculative scheduling)技術を採択している。マイクロプロセッサのスケジューラー内の生成命令(producer instruction)がロードミス(load misses)、欠陥(faults)、データ誤謬(data hazards)等の原因によって取消される時、前記生成命令によって推測的にウェークアップ(wake up)された“ソース準備(source ready)”状態の依存命令は再び選択されることできるようにスケジューラーでリセットされる必要がある。ここで、依存命令(dependent instructions)はダイレクト命令(direct instructions)又は非ダイレクト(indirect)命令であり得、非ダイレクト命令はネストされた(nested)命令であり得る。
従来には生成命令が取消された時、スケジューラーの依存命令の“ソース準備”状態をリセットするための方法として取消された生成命令の目的タッグ(destination tags)がスケジューラー内のすべての命令のソースタッグ(source tags)と比較する方法が使用された。仮に取消された生成命令の目的タッグとスケジューラー内のいずれか1つの命令のソースタッグとがマッチングされれば、スケジューラーはスケジューラー内の依存命令のソース準備状態をリセットする。
しかし、前記の比較方法はスケジューラー内のすべての命令に対して遂行されなければならないので、比較動作を遂行するのに時間及びパワーが多く消耗され、マイクロプロセッサのリソース(resource)を多く使用する問題がある。
米国特許公開第2010/0332806号公報 米国特許第8,239,661号公報
本発明は構造が簡単であり、パワー及び時間が節約される命令処理装置及び方法を提供することにある。
本発明の態様による複数の命令の処理方法は、依存命令の生成命令によって前記依存命令のソースを推測的にウェークアップする段階と、前記依存命令によってネストされた依存命令のソースを前記依存命令にしたがって推測的にウェークアップする段階と、前記依存命令の前記ソースと前記ネストされた依存命令の前記ソースとがアクセス準備になったことを示すように前記依存命令の前記ソースのソース準備ビットをセッティングし、前記ネストされた依存命令の前記ソースのソース準備ビットをセッティングする段階と、前記生成命令が取消されることと予想される取消時間に基づいて前記依存命令の取消タイマーをセッティングし、前記ネストされた依存命令の前記ソースの取消タイマーをセッティングし、前記取消タイマーは、各々前記ソース準備ビットがセッティングされた時、カウントダウンを始まる段階と、仮に前記依存命令の前記ソースの前記取消タイマー及び前記ネストされた依存命令の前記ソースの前記取消タイマーが満了され、前記生成命令が取消された場合に前記依存命令及び前記ネストされた依存命令を同時に取消す段階と、を含む。
態様として、前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとは、前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとが所定値に到達した時に満了される。
態様として、前記所定値は、0ではない。
態様として、仮に前記依存命令と前記ネストされた依存命令とが再びウェークアップされなければ、前記依存命令と前記ネストされた依存命令とが選択(pick)される準備にならないことを示すように前記依存命令の前記ソースの前記ソース準備ビットと前記ネストされた依存命令の前記ソースの前記ソース準備ビットとをリセットする段階をさらに含む。
態様として、前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとをリセットする段階をさらに含む。
態様として、前記リセットする段階は、前記依存命令と前記ネストされた依存命令とを同時に取消す段階が遂行された後に遂行される。
態様として、前記依存命令が前記生成命令によって推測的にウェークアップされた後、所定時間が経過された後に前記ネストされた依存命令は、前記依存命令によってウェークアップされ、前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとは、前記取消時間に基づいて互に異なる値を有するようにセッティングされる。
態様として、前記依存命令が前記生成命令によって推測的にウェークアップされ、所定時間が経過された後に前記ネストされた依存命令は、前記依存命令によってウェークアップされ、前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとは、前記取消時間に基づいて互に異なる値を有するように設定される。
態様として、前記生成命令は、推測的に選択される。
態様として、前記生成命令が取消されることと予想される前記取消時間は、前記生成命令によって前記依存命令の前記ソースを推測的にウェークアップする時間から前記取消が前記生成命令のために主張されることと予想されるクロックサイクルの数に基づいて決定される。
本発明の態様による命令処理装置は、スケジューリング動作の遂行のために生成命令を選択するスケジューラーと、コントローラと、を含み、前記コントローラは、前記依存命令の生成命令によって依存命令のソースを推測的にウェークアップし、前記依存命令によって、ネストされた依存命令のソースを前記依存命令にしたがって推測的にウェークアップし、前記依存命令の前記ソースと前記ネストされた依存命令の前記ソースとがアクセス準備がされたことを示すように、前記依存命令の前記ソースのソース準備ビットをセッティングし、前記ネストされた依存命令の前記ソースのソース準備ビットをセッティングし、前記生成命令が取消されることと予想される取消時間に基づいて前記依存命令の取消タイマーと前記ネストされた依存命令の前記ソースの取消タイマーとが各々前記ソース準備ビットがセッティングされた時、カウントダウンを開始するようにセッティングし、仮に前記依存命令の前記ソースの前記取消タイマー及び前記ネストされた依存命令の前記ソースの前記取消タイマーが満了され、前記生成命令が取消された場合に前記依存命令及び前記ネストされた依存命令を同時に取消す。
態様として、前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとは、前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとが所定値に到達した時に満了される。
態様として、前記所定値は、0ではない。
態様として、前記コントローラは、仮に前記依存命令と前記ネストされた依存命令とが再びウェークアップされなければ、前記依存命令と前記ネストされた依存命令とが選択(pick)される準備にならないことを示すように前記依存命令の前記ソースの前記ソース準備ビットと前記ネストされた依存命令の前記ソースの前記ソース準備ビットとをリセットする。
態様として、前記コントローラは、前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとをリセットする。
態様として、前記コントローラは、前記依存命令と前記ネストされた依存命令とを同時に取消した後に前記依存命令の前記ソースの前記ソース準備ビットと前記ネストされた依存命令の前記ソースの前記ソース準備ビットとをリセットする。
態様として、前記依存命令が前記生成命令によって推測的にウェークアップされ、所定時間が経過された後に前記ネストされた依存命令は、前記依存命令によってウェークアップされ、前記コントローラは、互に異なる値を有するように前記取消時間に基づいて前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとをセッティングする。
態様として、前記依存命令が前記生成命令によって推測的にウェークアップされ、所定時間が経過された後に前記ネストされた依存命令は、前記依存命令によってウェークアップされ、前記コントローラは、互に異なる値を有するように前記取消時間に基づいて前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとをセッティングする。
態様として、前記生成命令は、推測的に選択される。
態様として、前記コントローラは、クロックサイクルの数に基づいて前記生成命令によって前記依存命令の前記ソースを推測的にウェークアップする時間から前記生成命令が取消されることと予想される前記取消時間を決定する。
態様として、前記依存命令の前記ソースの前記ソース準備ビット、前記ネストされた依存命令の前記ソースの前記ソース準備ビット、前記依存命令の前記ソースの前記取消タイマー、及び前記ネストされた依存命令の前記ソースの前記取消タイマーは、前記スケジューラーのエントリにセッティングされる。
本発明の技術的思想にしたがう態様は依存命令のメーン生成命令から1つの取消指示(cancel indication)を使用することによって、簡単であり、パワー及び時間を節約することができる依存命令及びネストされた命令を同時に取消し、依存命令のソース−準備状態をリセットする方法を提供する。
本発明の実施形態によるプロセッサの一部構造を示す図面である。 本発明の実施形態による動作実行スケジューリングのためのプロセッサのスケジューラー内の命令のエントリを示す図面である。 本発明の実施形態によるソース準備ビットのセッティング及びリセッティング処理を示す図面である。 本発明の実施形態による各々取消タイマーとして動作する2つの依存命令及び1つの生成命令を含む命令パイプラインを示す図面である。 本発明の技術的思想の実施形態による図4の取消及びリセッティング動作を説明する順序図である。
本発明の長所及び特徴、そしてそれを達成する方法は添付される図面と共に詳細に後術されている実施形態を通じて説明される。しかし、本発明はここで説明される実施形態に限定されなく、他の形態に具体化されることもあり得る。本実施形態は本発明が属する技術分野で通常の知識を有する者に本発明の技術的思想を容易に実施できるように詳細に説明するために提供されることである。
図面において、本発明の実施形態は図示された特定形態に制限されることではなく説明を明確するために誇張されたことである。また、明細書の全体に掛けて同一の参照番号で表示された部分は同一の構成要素を示す。本明細書で‘及び/又は’という表現は前後に羅列された構成要素の中で少なくとも1つを含む意味に使用される。また、‘連結される/結合される’という表現は他の構成要素と直接的に連結させるか、或いは他の構成要素を通じて間接的に連結されることを含む意味として使用される。本明細書で単数形は文句で特別に言及しない限り複数形も含む。また、明細書で使用される‘含む’又は‘包含する’と言及された構成要素、段階、動作、及び素子は1つ以上の他の構成要素、段階、動作、素子、及び装置の存在又は追加を意味する。
図1は本発明の実施形態によるプロセッサの一部構造を示す図面である。図1のプロセッサはデコーダー101、再命名器(renamer)102、スケジューラー103、及びコントローラ104を含む。図1のプロセッサは多様なタイプのプロセッサに適用され得る。例えば、本発明の実施形態において、図1のプロセッサはマルチ−コアプロセッサ(multiple−core processor)に適用され得る。図1のプロセッサはフェッチャー(fetcher)、キャッシュ(cache)、遂行ユニット等のように広く公知された構造をさらに包含することができ、本図面では本発明の実施形態を明確に説明するために前記広く公知された構造が省略された。
図1のプロセッサにおいて、メモリ(図示せず)からの命令がフェッチャー(図示せず)によってデコーダー101にフェッチ(fetch)される。デコーダー101は命令を下位レベル、具体的なマイクロ動作(micro−operations;以下、micro−ops)によってデコーディングする。したがって、命令のストリーム(stream)がマイクロ動作(micro−ops)にマッピングされる。デコーディングされたマイクロ動作は複数のソース(source)又は複数の目的地(destinations)の名前を変更する再命名器102に送られ、以後スケジュール動作を遂行するようにスケジューラー103に送られる。1つのマイクロ動作は一般的に2つ又は3つのソースオペランド(source operand、又は原始オペランド)を有し、1つ又は2つの目的地オペランド(destination operand)を有する。ソースオペランドはソースデータ(source data)を含むレジスターを明示するのに使用され、目的地オペランドはマイクロ動作の結果が書き込まれたレジスターを明示するのに使用される。再命名器102はマイクロ動作のソースレジスター(source registers)及び/又は目的地レジスター(destination registers)の名前を変更する。レジスター名前変更は、例えばマイクロ動作の故障の時に読出し後書込み危険(write−after−read hazards)、書込み後書込み危険(write−after−write hazards)のようなデータ危険(data hazards)を無くすための技術である。スケジューラー103はマイクロ動作を選択し、マイクロ動作順序の本来の順序にしたがうか、或いはしたがわない順序にマイクロ動作の実行をスケジューリングする。コントローラ104はスケジューラー103の全般的な動作を制御する。たとえコントローラ104が1つの分離された要素として図示されているが、コントローラ104はスケジューラー103と結合された1つの要素として具現され得る。
図2は本発明の実施形態による動作実行スケジューリングのためのプロセッサのスケジューラー内の命令のエントリ(entry)を示す図面である。ここで、スケジューラーは図1で言及されたスケジューラー103であり得る。
図2に示したように、本発明の実施形態にしたがって、生成命令100、生成命令101、生成命令100、101に依存する依存命令200がスケジューラー103内に位置する。たとえ図2では単なる生成命令100、101のみが図示されているが、依存命令200は依存命令200のソース(sources)の数にしたがって他の生成命令に依存することができ、依存命令200の他のソースは他の生成命令に依存することができる。依存命令200がスケジューラー103内に在る時、スケジューラー103は本発明の実施形態にしたがって依存命令200のソース当たりソース準備フィールド(source ready field)15及び取消タイマーフィールド(cancel timer field)16を割当する。ソース準備フィールド15はソース準備ビット(source ready field)を含み、取消タイマーフィールド16は取消時間(cancel timer)又は取消時間値(cancel timer value)を含む。本実施形態において、ソース準備ビットと取消タイマーとは依存命令にこの2つのフィールドが割当された時点にはセット(set)されなく、“0”を維持する。しかし、ソース準備ビットは準備(ready)状態に、例えば“1”にセッティングされ、取消タイマーは生成命令が推測的に(speculatively)依存命令をウェークアップ(wake up)する時、以下で説明されるようにコントローラ104によって所定の値(predetermined value)にセッティングされる。
依存命令200が生成命令100、101によって推測的にウェークアップされ(又は、例えば、前記説明されたように依存命令200のソースの数に基づいた追加的な生成命令によって推測的にウェークアップされる)、ソースディペンダンシー(source dependency)がソース命令200の各ソースと合う時、コントローラ104はスケジューラー103内の依存命令の各ソースのためのソース準備フィールド15のソース準備ビットをセットする。例えば、生成命令100、101が推測的に依存命令200をウェークアップし、ソースディペンダンシーが依存命令200の各ソースと合う時、コントローラ104は各ソースのソースデータが何回のサイクル(cycles)の間に利用可能であることを示すように各ソースのソース準備ビットを“1”の値にセットする。そうでない場合に各ソースのソース準備ビットの値は“0”を維持する。この場合、例えば、ソースディペンダンシーが依存命令200の各ソースと互に異なる時点に合うことがあり得る。依存命令のすべてのソースに対してソース準備ビットが“1”の値にセットされれば、依存命令100は実行のためにスケジューラー103から選択する準備になったことと考慮される。
ソース準備ビットのセッティングに加えて、生成命令100、101が依存命令200を推測的にウェークアップし、ソースディペンダンシーが依存命令200の各ソースと合う時、コントローラ204は依存命令200の各ソースのための取消タイマーフィールド16内の取消タイマーを所定値にセットする。取消タイマーはコントローラ104によって依存命令200の取消時間(又は取消タイミング)を制御するのに使用され、取消された依存命令200の各ソースのソース準備ビットをリセッティング(reset)するのに使用される。取消タイマーに対して設定された予め定まれた所定時間値が経過され、生成命令100がスケジューリングから取消される時、依存命令200は依存命令200が取消され、依存命令200の各ソースのためのソース準備ビットと取消タイマーとはリセットされて依存命令200は後に再び選択されて利用することができるようになる。ここで、本発明の実施形態による取消タイマーの予め定まれた所定時間は生成命令100を取消すのに必要とすることと予想される時間に対応するサイクルに該当するように設定され得る。
生成命令100、101に依存する依存命令200の各ソースに対する予め定まれた時間値をセットする取消タイマーはソース準備ビットが依存命令のソースのためにセットされれば、時間が流れ始める。仮に取消タイマーが満了される時、生成命令が取消されれば、以後の依存命令は取消され、依存命令の各ソースに対するソース準備ビットと取消タイマーとはリセットされる。仮に生成命令が取消されなく、実行のためにスケジュールされれば、取消タイマーは依存命令のスケジューリングに影響を及ばない。
本発明の実施形態において、依存命令200を取消すために言及された取消タイマーはスケジューラー103内の依存命令200の各ソースをセットすることと説明された。しかし、取消タイマーが命令の取消のための目的にセットされる限り、取消タイマーは命令の各ソースのためにセットするのに使用されないことがあり、スケジューラー103のリソース(resource)を節約するために各命令をセットするのに使用され得る。
図3は本発明の実施形態によるソース準備ビットのセッティング及びリセッティング処理を示す図面である。
ここで、生成命令(Producer−1)及び依存命令は図1で説明されたプロセッサのスケジューラー103内に位置する。この実施形態において、依存命令は1つのシングルソースを有することと仮定される。また、この実施形態において、ソースのための取消タイマーは依存命令がウェークアップされる時点から生成命令(Producer−1)が取消されるのに必要である所要される時間に対応するサイクルの数に基づいてセットされる。取消タイマーはまた予め定まれた取消タイマーの満了値にしたがってセットされ、これは取消タイマーが予め定まれた最小タイマー満了値に到達する時、生成命令(Producer−1)によって要請された取消動作が意図された自分の命令取消動作であることを判断することを可能であるようにする。言い換えれば、生成命令の取消タイマーは取消タイマーが予め定まれた取消タイマー満了値に到達する時、満了される。したがって、仮に生成命令(Pruducer−1)の取消のために所要されるサイクルの数がN−1であれば、取消タイマーはNに設定される。例えば、取消のために所要されるサイクルが3サイクル(例えば、N−1サイクル)であれば、取消タイマーは4(例えば、Nサイクル)に設定され得、予め定まれた最小タイマーの満了値は“1”である。したがって、取消タイマーが予め定まれた取消タイマー満了値“1”に到達する時、例えば、N−1サイクルが経過され、生成命令(Producer−1)が取消される時、依存命令は同様に取消され、以後、ソースのソース準備ビットはリセットされる。前記の例を使用して、仮に3サイクル(例えば、N−1サイクル)が経過され、取消タイマーが初期に4(例えば、N)にセッティングされれば、予め定まれた取消タイマーの満了値は“1”に到達する。予め定まれた取消タイマー満了値に到達する時、生成命令(Producer−1)は要請された取消が自分に対する意図された取消命令であることを判断することができる。たとえ前記の実施形態において、予め定まれた取消タイマーの満了値が“1”に選択されたが、他の0ではない(non−zero)取消タイマー満了値が選択され得る。例えば、仮に取消するのに所要されるサイクルが3サイクル(例えば、N−2サイクル)であれば、取消タイマーは5(例えば、N)に設定され得る。取消タイマーが3サイクルの以後に“2”の値に到達する時、即ち予め定まれた取消タイマー満了値である“2”の値に到達する時、生成命令(Procuder−1)は要請された取消が自らに対する取消命令であることを判断することができる。ここで、Nの値は所定の自然数であり得る。
図3を参照すれば、図1のプロセッサのクロックサイクルの観点でスケジューラー103内のソース準備ビットと取消タイマーセッティング及びリセッティング処理動作が下のように説明される。
サイクル0(Cycle0)で、生成命令(Producer−1)と依存命令とがスケジューラー103内に位置し、ソース準備フィールドと取消タイマーフィールドとが依存命令に割当される。仮に生成命令(Producer−1)がスケジューラー103で選択されなければ、スケジューラー103の各フィールド内のソース準備ビットと取消タイマーとはセットされなく、したがって、それらの値は“0”を維持する。サイクル0の間に、仮に生成命令(Producer−1)がスケジューラー103で選択され、生成命令(Producer−1)が推測的に依存命令をウェークアップすれば、ソース準備ビットがセットされ、ソース準備ビットがセットされることと同時又はその直前や直後に取消タイマーもやはりサイクル0が終了される際にはセットされる。
サイクル1(Cycle1)で、生成命令(Producer−1)が選択され、生成命令(Producer−1)が推測的に依存命令をウェークアップしたので、依存命令のソースのためのソース準備ビットは“1”にセットされて依存命令が選択される準備になったことを示す。また、取消タイマーもやはり依存命令のソースのためにNにセットされ、予め定まれた取消タイマーの満了値は“1”であり得る。ソースのための取消タイマーNはサイクルの数に基づき、サイクルの数は先に説明されたように予め定まれた取消タイマー満了値の観点で生成命令(Producer−1)が取消されるのに所要される時間に対応する。取消タイマーはウェークアップする(waking up)時点でからカウントダウン(count down)を開始し、予め定まれた取消タイマーの満了値に到達する時に満了される。例えば、N−1サイクルが超過される時、取消タイマーによって予め定まれた取消タイマーの満了値“1”に到達したことを示される。
サイクルN(CycleN)で、仮に取消タイマーが満了(例えば、予め定まれた取消タイマー満了値に到達)され、生成命令(Producer−1)に対する取消が発生すれば、依存命令は再びウェークアップされる時まで選択される準備にならなかった状態になる。したがって、サイクルNが終了される時に、依存命令のソースのためのソース準備ビットと取消タイマーとは、例えば、“0”の値にリセットされて依存命令が再びウェークアップされる時まで選択される準備にならなかった状態であることを示す。
サイクルN+1(CycleN+1)で、ソース準備ビットと取消タイマーとは“0”を維持するので、依存命令は再びウェークアップされない。
前記本発明の実施形態は依存命令のソースのためのソース準備ビットをリセットするために単なるソース当たり小さい容量の取消タイマーを必要とする。これはソース準備セットをリセットするために従来に要求された最小になった命令の目的地タッグとそれらの依存命令とをスケジューラー103内のすべての命令のソースタッグと比較しなければならない多い数の比較動作が必要としないこと意味する。
一方、本発明の技術的な思想の実施形態は図4で説明されるように生成命令の直接依存命令(direct dependent instruction)のみでなく、非直接依存命令(indirect dependent instruction)に対しても適用され得る。非直接依存命令はシャドー依存命令(shadow dependent instruction)であると称される。
図4は本発明の実施形態による各々の取消タイマーとして動作する2つの依存命令及び1つの生成命令を含む命令パイプラインを示す図面である。
図4で、パイプラインは生成命令である生成命令A(LDR R1、[R0])、生成命令Aに依存する直接依存命令である依存命令B(ADD R2、R1、5)、依存命令Bに依存する非直接依存命令であるシャドー依存命令C(ADD R3、R2、10)を含む。非直接依存命令であるシャドー依存命令Cはまたネストされた依存命令であると称される。したがって、シャドー依存命令Cは生成命令Aに対してシャドーディペンダンシー(shadow dependency)又はネストされたディペンダンシー(nested dependency)を有する。依存命令Bとシャドー依存命令Cとは取消動作を直接的にトリガー(trigger)しないシングルサイクルレイテンシ命令(single cycle latency instruction)であることと描写され、反面に生成命令Aはサイクル#5(cycle#5)で取消されることができるマルチサイクルレイテンシ命令(multi cycle latency instruction)であることと描写される。
以下では、本発明の技術的思想の実施形態にしたがって図4に図示された命令パイプライン内の依存命令の取消動作及び依存命令のためのソース準備ビットのリセット動作が図1乃至図3を参照して説明される。図5は本発明の技術的思想の実施形態による図4の取消及びリセッティング動作を説明する順序図である。
本実施形態において、依存命令Bとシャドー依存命令Cとは各々1つのシングルソースを有していることと仮定され、予め定まれた所定の取消タイマー値は“1”であると仮定される。図5に示したように、サイクル#3で、生成命令A(LDR R1、[R0])は推測的に依存命令B(ADD R2、R1、5)をウェークアップして依存命令BがソースデータR1をフォワーディングソースパス(forwadring path)から獲得(grab)するようにする(S100段階)。
その後、同一のサイクル#3で、ソースのためのソース準備ビットと取消タイマーとが依存命令Bのためにセットされる(S200段階)。依存命令Bのための取消タイマーは生成命令Aによって依存命令Bがウェークアップされる時点から生成命令Aが取消されるのに所要される時間に対応するサイクルの数に基づいて設定される。本発明の実施形態において、取消タイマーはサイクル#5に相応する“2”に設定される。依存命令Bのためのソース準備ビット及び取消タイマーが設定された直後、依存命令Bのための取消タイマーは時間が流れ始める。
以後、依存命令Bはシャドー依存命令C(ADD R3、R2、10)をサイクル#4でウェークアップしてフォワーディングパスからソースデータR2を獲得(grab)するようにする(S300段階)。
その後、サイクル#4で、ソースのためのソース準備ビットと取消タイマーとがシャドー依存命令Cのためにセットされる(S400段階)。シャドー依存命令Cのための取消タイマーは依存命令Bによってシャドー依存命令Cがウェークアップされた時点から生成命令Aによって取消動作が遂行されるのに所要される時間に相応するサイクルの数に基づいて設定される。本実施形態で、取消タイマーはサイクル#5に相応する“1”に設定される。シャドー依存命令Cのためにソース準備ビットと取消タイマーとが設定された直後、シャドー依存命令Cのソースのための取消タイマーは時間が流れ始める。
以後、サイクル#5で、生成命令Aが取消されたか、そして依存命令B及びシャドー依存命令Cのための取消タイマーが相応するサイクル#5で予め定まれた取消タイマー満了値“1”に相応するか否かが判断される(S500段階)。
仮に生成命令Aが取消され、取消タイマーが相応するサイクル#5で予め定まれた値“1”に対応すれば、依存命令B及びシャドー依存命令Cは全て同時に取消され、依存命令B及びシャドー依存命令Cのためのソース準備ビットと取消タイマーはリセットされる(S600段階)。しかし、仮に生成命令Aが取消サイクル#5で取消されなければ、生成命令Aと依存命令B及びシャドー依存命令Cを含んで生成命令Aの依存命令が遂行される(S700段階)。
前記例示的に説明された実施形態による命令の取消及びソースリセットスキームは単なる各依存命令の取消タイマー及びそれらの基礎生成命令(例えば、図4の生成命令A)の取消因子(cancel indicator)を観察することによって複数の依存命令及び/又は複数のシャドー依存命令に同時に適用され得る。前記の実施形態において、仮に生成命令に対する取消要請があり、依存命令のための取消タイマーが予め定まれた取消タイマー値を満足すれば、すべての依存命令及びネストされた依存命令が取消され、それらのソース準備ビット及び取消タイマーが実質的に同時にリセットされる。命令取消に基づいた取消タイマー及びソース準備ビットリセットのこのような簡単な接近方法は命令タッグ及びそれらの依存命令タッグを比較しなければならない従来の高費用の比較方法の必要性を消滅させ、したがって、プロセッサの命令プロセスによるパワー消耗を最小化する。
上述した説明は例示的なこととして理解されなければならなく、本発明の技術的思想はこれに限定されない。例えば、ソース準備ビットと取消タイマーとの例示的な値は何らかの数としても設定され得る。ソース準備ビット及び取消タイマーの実質的なビットサイズ(又は幅)は何らかの値としても設定され得る。また、先に説明されたサイクルの数はやはり何らかの数としても設定され得る。さらに、前記の例が推測的な命令(speculative instructions)の主要実施形態として説明されたが、本発明で開示された内容はこれに限定されなく、他のタイプの命令に対しても適用され得る。また、前記の実施形態で依存命令が1つのシングルソースを有することと仮定されたが、本発明の技術的思想は2つ又はその以上のソースを有する依存命令に対しても適用され得る。このような変更、応用、追加、改善は発明の技術的な思想の範囲にあるはずである。したがって、本発明の技術的な思想は前記の実施形態に制限されることではなく、本出願の請求項及び請求項の範囲内の他の実施形態やはり本発明の技術的な思想に含まれることが理解できる。
本発明の実施形態を説明するために使用された用語の中で“1つ”又は“シングル”という用語はそれが明確に制限する場合を除いては単数のことの以外に複数の要素を指すこともあり得る。本発明の技術的な思想を逸脱しない範囲内で他の類似であるか、或いは非類似な変更が可能である。したがって、本発明の技術的な思想は添付された請求項のみでなく、異なる方式の請求項が可能である。
101・・・デコーダー
102・・・再命名器
103・・・スケジューラー
104・・・コントローラ
Entry・・・エントリ
Producer instruction・・・生成命令
dependent instruction・・・依存命令
source ready field・・・ソース準備フィールド
cancel timer field・・・取消タイマーフィールド

Claims (21)

  1. 依存命令の生成命令によって前記依存命令のソースを推測的にウェークアップする段階と、
    前記依存命令によってネストされた依存命令のソースを前記依存命令にしたがって推測的にウェークアップする段階と、
    前記依存命令の前記ソースと前記ネストされた依存命令の前記ソースとがアクセス準備になったことを示すように前記依存命令の前記ソースのソース準備ビットをセッティングし、前記ネストされた依存命令の前記ソースのソース準備ビットをセッティングする段階と、
    前記生成命令が取消されることと予想される取消時間に基づいて前記依存命令の取消タイマーをセッティングし、前記ネストされた依存命令の前記ソースの取消タイマーをセッティングし、前記取消タイマーは、各々前記ソース準備ビットがセッティングされた時、カウントダウンを始まる段階と、
    仮に前記依存命令の前記ソースの前記取消タイマー及び前記ネストされた依存命令の前記ソースの前記取消タイマーが満了され、前記生成命令が取消された場合に前記依存命令及び前記ネストされた依存命令を同時に取消す段階と、を含む複数の命令の処理方法。
  2. 前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとは、前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとが所定値に到達した時に満了される請求項1に記載の複数の命令の処理方法。
  3. 前記所定値は、0ではない請求項2に記載の複数の命令の処理方法。
  4. 仮に前記依存命令と前記ネストされた依存命令とが再びウェークアップされなければ、前記依存命令と前記ネストされた依存命令とが選択される準備にならないことを示すように前記依存命令の前記ソースの前記ソース準備ビットと前記ネストされた依存命令の前記ソースの前記ソース準備ビットとをリセットする段階をさらに含む請求項1に記載の複数の命令の処理方法。
  5. 前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとをリセットする段階をさらに含む請求項4に記載の複数の命令の処理方法。
  6. 前記リセットする段階は、前記依存命令と前記ネストされた依存命令とを同時に取消す段階が遂行された後に遂行される請求項4に記載の複数の命令の処理方法。
  7. 前記依存命令が前記生成命令によって推測的にウェークアップされた後、所定時間が経過された後に前記ネストされた依存命令は、前記依存命令によってウェークアップされ、
    前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとは、前記取消時間に基づいて互に異なる値を有するようにセッティングされる請求項6に記載の複数の命令の処理方法。
  8. 前記依存命令が前記生成命令によって推測的にウェークアップされ、所定時間が経過された後に前記ネストされた依存命令は、前記依存命令によってウェークアップされ、
    前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとは、前記取消時間に基づいて互に異なる値を有するように設定される請求項1に記載の複数の命令の処理方法。
  9. 前記生成命令は、推測的に選択される請求項1に記載の複数の命令の処理方法。
  10. 前記生成命令が取消されることと予想される前記取消時間は、前記生成命令によって前記依存命令の前記ソースを推測的にウェークアップする時間から前記取消が前記生成命令のために主張されることと予想されるクロックサイクルの数に基づいて決定される請求項1に記載の複数の命令の処理方法。
  11. スケジューリング動作の遂行のために生成命令を選択するスケジューラーと、
    コントローラと、を含み、
    前記コントローラは、
    前記依存命令の生成命令によって依存命令のソースを推測的にウェークアップし、
    前記依存命令によって、ネストされた依存命令のソースを前記依存命令にしたがって推測的にウェークアップし、
    前記依存命令の前記ソースと前記ネストされた依存命令の前記ソースとがアクセス準備がされたことを示すように、前記依存命令の前記ソースのソース準備ビットをセッティングし、前記ネストされた依存命令の前記ソースのソース準備ビットをセッティングし、
    前記生成命令が取消されることと予想される取消時間に基づいて前記依存命令の取消タイマーと前記ネストされた依存命令の前記ソースの取消タイマーとが各々前記ソース準備ビットがセッティングされた時、カウントダウンを開始するようにセッティングし、
    仮に前記依存命令の前記ソースの前記取消タイマー及び前記ネストされた依存命令の前記ソースの前記取消タイマーが満了され、前記生成命令が取消された場合に前記依存命令及び前記ネストされた依存命令を同時に取消する命令処理装置。
  12. 前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとは、前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとが所定値に到達した時に満了される請求項11に記載の命令処理装置。
  13. 前記所定値は、0ではない請求項12に記載の命令処理装置。
  14. 前記コントローラは、仮に前記依存命令と前記ネストされた依存命令とが再びウェークアップされなければ、前記依存命令と前記ネストされた依存命令とが選択(pick)される準備にならないことを示すように前記依存命令の前記ソースの前記ソース準備ビットと前記ネストされた依存命令の前記ソースの前記ソース準備ビットとをリセットする請求項11に記載の命令処理装置。
  15. 前記コントローラは、前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとをリセットする請求項14に記載の命令処理装置。
  16. 前記コントローラは、前記依存命令と前記ネストされた依存命令とを同時に取消した後に前記依存命令の前記ソースの前記ソース準備ビットと前記ネストされた依存命令の前記ソースの前記ソース準備ビットとをリセットする請求項14に記載の命令処理装置。
  17. 前記依存命令が前記生成命令によって推測的にウェークアップされ、所定時間が経過された後に前記ネストされた依存命令は、前記依存命令によってウェークアップされ、
    前記コントローラは、互に異なる値を有するように前記取消時間に基づいて前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとをセッティングする請求項16に記載の命令処理装置。
  18. 前記依存命令が前記生成命令によって推測的にウェークアップされ、所定時間が経過された後に前記ネストされた依存命令は、前記依存命令によってウェークアップされ、
    前記コントローラは、互に異なる値を有するように前記取消時間に基づいて前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとをセッティングする請求項11に記載の命令処理装置。
  19. 前記生成命令は、推測的に選択される請求項11に記載の命令処理装置。
  20. 前記コントローラは、クロックサイクルの数に基づいて前記生成命令によって前記依存命令の前記ソースを推測的にウェークアップする時間から前記生成命令が取消されることと予想される前記取消時間を決定する請求項11に記載の命令処理装置。
  21. 前記依存命令の前記ソースの前記ソース準備ビット、前記ネストされた依存命令の前記ソースの前記ソース準備ビット、前記依存命令の前記ソースの前記取消タイマー、及び前記ネストされた依存命令の前記ソースの前記取消タイマーは、前記スケジューラーのエントリにセッティングされる請求項11に記載の命令処理装置。
JP2014051609A 2013-03-15 2014-03-14 直接依存命令及びネストされた依存命令のためのスケジューラー内の推測的ソース準備をリセットする効果的な方法 Active JP6148191B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/836,392 US9424041B2 (en) 2013-03-15 2013-03-15 Efficient way to cancel speculative ‘source ready’ in scheduler for direct and nested dependent instructions
US13/836,392 2013-03-15

Publications (3)

Publication Number Publication Date
JP2014182829A true JP2014182829A (ja) 2014-09-29
JP2014182829A5 JP2014182829A5 (ja) 2017-03-09
JP6148191B2 JP6148191B2 (ja) 2017-06-14

Family

ID=51419119

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014051609A Active JP6148191B2 (ja) 2013-03-15 2014-03-14 直接依存命令及びネストされた依存命令のためのスケジューラー内の推測的ソース準備をリセットする効果的な方法

Country Status (5)

Country Link
US (1) US9424041B2 (ja)
JP (1) JP6148191B2 (ja)
KR (1) KR101985377B1 (ja)
CN (1) CN104049952B (ja)
DE (1) DE102014103282A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180038793A (ko) * 2016-10-07 2018-04-17 삼성전자주식회사 영상 데이터 처리 방법 및 장치
CN106909343B (zh) * 2017-02-23 2019-01-29 北京中科睿芯科技有限公司 一种基于数据流的指令调度方法及装置
CN111124492B (zh) * 2019-12-16 2022-09-20 成都海光微电子技术有限公司 指令生成方法、装置、指令执行方法、处理器及电子设备
CN111399912B (zh) * 2020-03-26 2022-11-22 超睿科技(长沙)有限公司 一种面向多周期指令的指令调度方法、系统及介质
US20220206793A1 (en) * 2020-12-24 2022-06-30 Intel Corporation Methods, systems, and apparatuses for a scalable reservation station implementing a single unified speculation state propagation and execution wakeup matrix circuit in a processor
US11934834B2 (en) * 2021-10-19 2024-03-19 Ampere Computing Llc Instruction scheduling in a processor using operation source parent tracking
US20230315446A1 (en) * 2022-03-30 2023-10-05 Fujitsu Limited Arithmetic processing apparatus and method for arithmetic processing
US20250306999A1 (en) * 2024-03-30 2025-10-02 Advanced Micro Devices, Inc. Apparatuses, systems, and methods for scheduling processor operations

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6792524B1 (en) * 1998-08-20 2004-09-14 International Business Machines Corporation System and method cancelling a speculative branch
JP2006228241A (ja) * 1998-08-24 2006-08-31 Advanced Micro Devices Inc プロセッサ、およびプロセッサにおいて命令演算をスケジューリングするための方法
US20070204135A1 (en) * 2006-02-28 2007-08-30 Mips Technologies, Inc. Distributive scoreboard scheduling in an out-of order processor
JP2008139964A (ja) * 2006-11-30 2008-06-19 Hitachi Ltd データプロセッサ
JP2009181163A (ja) * 2008-01-29 2009-08-13 Kyoto Univ マイクロプロセッサならびにビット・ベクタのエンコーディング方法およびビット・ベクタの生成方法
US20110078697A1 (en) * 2009-09-30 2011-03-31 Smittle Matthew B Optimal deallocation of instructions from a unified pick queue

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778210A (en) 1996-01-11 1998-07-07 Intel Corporation Method and apparatus for recovering the state of a speculatively scheduled operation in a processor which cannot be executed at the speculated time
US6065105A (en) 1997-01-08 2000-05-16 Intel Corporation Dependency matrix
US6988185B2 (en) 2002-01-22 2006-01-17 Intel Corporation Select-free dynamic instruction scheduling
US7130990B2 (en) 2002-12-31 2006-10-31 Intel Corporation Efficient instruction scheduling with lossy tracking of scheduling information
US20070043932A1 (en) 2005-08-22 2007-02-22 Intel Corporation Wakeup mechanisms for schedulers
US7600103B2 (en) 2006-06-30 2009-10-06 Intel Corporation Speculatively scheduling micro-operations after allocation
US8239661B2 (en) 2008-08-28 2012-08-07 International Business Machines Corporation System and method for double-issue instructions using a dependency matrix
US9262171B2 (en) 2009-06-30 2016-02-16 Oracle America, Inc. Dependency matrix for the determination of load dependencies
CN101833435A (zh) * 2010-04-19 2010-09-15 天津大学 基于传输触发架构可配置处理器指令冗余消除方法
US9256428B2 (en) * 2013-02-06 2016-02-09 International Business Machines Corporation Load latency speculation in an out-of-order computer processor

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6792524B1 (en) * 1998-08-20 2004-09-14 International Business Machines Corporation System and method cancelling a speculative branch
JP2006228241A (ja) * 1998-08-24 2006-08-31 Advanced Micro Devices Inc プロセッサ、およびプロセッサにおいて命令演算をスケジューリングするための方法
US20070204135A1 (en) * 2006-02-28 2007-08-30 Mips Technologies, Inc. Distributive scoreboard scheduling in an out-of order processor
JP2008139964A (ja) * 2006-11-30 2008-06-19 Hitachi Ltd データプロセッサ
JP2009181163A (ja) * 2008-01-29 2009-08-13 Kyoto Univ マイクロプロセッサならびにビット・ベクタのエンコーディング方法およびビット・ベクタの生成方法
US20110078697A1 (en) * 2009-09-30 2011-03-31 Smittle Matthew B Optimal deallocation of instructions from a unified pick queue

Also Published As

Publication number Publication date
US20140281431A1 (en) 2014-09-18
CN104049952B (zh) 2018-10-16
CN104049952A (zh) 2014-09-17
KR101985377B1 (ko) 2019-06-03
US9424041B2 (en) 2016-08-23
DE102014103282A1 (de) 2014-09-18
JP6148191B2 (ja) 2017-06-14
KR20140113303A (ko) 2014-09-24

Similar Documents

Publication Publication Date Title
JP6148191B2 (ja) 直接依存命令及びネストされた依存命令のためのスケジューラー内の推測的ソース準備をリセットする効果的な方法
CN112534403B (zh) 微处理器中存储指令融合的系统和方法
US8650554B2 (en) Single thread performance in an in-order multi-threaded processor
JP5571784B2 (ja) プロセッサ、方法、システム、及び、プログラム
US9606806B2 (en) Dependence-based replay suppression
JP5411587B2 (ja) マルチスレッド実行装置、マルチスレッド実行方法
US20060149931A1 (en) Runahead execution in a central processing unit
JP2006351008A (ja) マルチスレッドプロセッサのディスパッチ時にスレッドをブロックする方法、コンピュータプログラム、および装置(精細なマルチスレッドディスパッチロックメカニズム)
US20170017490A1 (en) Execution of micro-operations
GB2563116B (en) Apparatus and method for determining a recovery point from which to resume instruction execution following handling of unexpected change in instruction flow
US20090113178A1 (en) Microprocessor based on event-processing instruction set and event-processing method using the same
US9274829B2 (en) Handling interrupt actions for inter-thread communication
TW201439900A (zh) 用於提前執行操作的指令分類
US7711934B2 (en) Processor core and method for managing branch misprediction in an out-of-order processor pipeline
US7404065B2 (en) Flow optimization and prediction for VSSE memory operations
US20150074378A1 (en) System and Method for an Asynchronous Processor with Heterogeneous Processors
US20080148026A1 (en) Checkpoint Efficiency Using a Confidence Indicator
US20070043932A1 (en) Wakeup mechanisms for schedulers
US10387162B2 (en) Effective address table with multiple taken branch handling for out-of-order processors
US20240103914A1 (en) Dynamically adjusting thread affinitization using hardware-based core availability notifications
US20130019085A1 (en) Efficient Recombining for Dual Path Execution
US10514925B1 (en) Load speculation recovery
US10437596B2 (en) Processor with a full instruction set decoder and a partial instruction set decoder
US20020166042A1 (en) Speculative branch target allocation
Aşılıoğlu et al. LaZy superscalar

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20141226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170202

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170202

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20170202

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170324

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: 20170424

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170518

R150 Certificate of patent or registration of utility model

Ref document number: 6148191

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250