JP2008537231A - 条件付き命令が無条件で出力を提供するシステム及び方法 - Google Patents

条件付き命令が無条件で出力を提供するシステム及び方法 Download PDF

Info

Publication number
JP2008537231A
JP2008537231A JP2008506733A JP2008506733A JP2008537231A JP 2008537231 A JP2008537231 A JP 2008537231A JP 2008506733 A JP2008506733 A JP 2008506733A JP 2008506733 A JP2008506733 A JP 2008506733A JP 2008537231 A JP2008537231 A JP 2008537231A
Authority
JP
Japan
Prior art keywords
register
condition
instruction
target
value
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.)
Withdrawn
Application number
JP2008506733A
Other languages
English (en)
Inventor
サートリウス、トマス・アンドリュー
ディーフェンダーファー、ジェームズ・ノリス
ブリッジス、ジェフリー・トッド
ドックサー、ケネス・アラン
マクイルバイン、マイケル・スコット
スミス、ロドニー・ウェイン
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2008537231A publication Critical patent/JP2008537231A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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, look ahead
    • G06F9/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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, 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; CALCULATING OR 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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming

Abstract

【課題】条件付き命令が無条件で出力を提供するシステム及び方法
【解決手段】
1つ以上のオペランドを入力として受け取り、条件が満たされている場合は前記オペランドに関して行われた演算の結果をターゲットに出力し、前記条件が満たされていない場合は出力を提供しないように構成された条件付き命令が、無条件で前記ターゲットに出力を提供するような形で実行される。前記条件付き命令は、前記ターゲットの前値(すなわち、前記ターゲットを更新させた直近の命令によって生成された値)を入手する。前記条件が評価される。前記条件が満たされている場合は、演算が行われ、前記演算の結果が前記ターゲットに出力される。前記条件が満たされていない場合は、前記前値が前記ターゲットに出力される。後続する命令は、条件評価前に、(レジスタに書き込まれるか又は前記命令に転送されるかにかかわらず)オペランドソースとしての前記ターゲットに依存することができる。
【選択図】 図2

Description

本発明は、一般的には、プロセッサ分野に関するものである。本発明は、より具体的には、条件が満たされていない場合は出力を提供しないように構成された条件付き命令を実行するシステム及び方法に関するものである。
マイクロプロセッサは、非常に様々な用途において計算上のタスクを実行する。マイクロプロセッサの設計における1つの共通目標は、ソフトウェアの発展を通じての動作の高速化及び/又は機能増加を考慮した性能の向上である。現代の多くのプロセッサは、各々が複数の実行ステップを有する逐次命令が実行の際にオーバーラップするパイプライン型アーキテクチャを採用している。より高い命令上のスループットを達成させるためには、命令がパイプライン内を連続的に流れるべきである。パイプライン内において命令をストールさせるいずれの状況も、命令のスループットに対して、そしてその結果としてプロセッサの性能に対して、悪影響を及ぼすことになる。
命令は、メモリから入手されたデータに基づいて動作し、その結果をメモリに書き込む。現代のプロセッサは、幾つかの高速かつ高価なメモリ素子、例えばレジスタ、を最高レベルにおいて具備する階層メモリ構造を利用する。メモリ階層は、それよりも低速であるが低コストであるメモリ技術、例えばキャッシュメモリ(SRAM)、ソリッドステート主メモリ(DRAM)、及びディスク(磁気又は光学媒体)、をより下位のレベルにおいて具備する。ポータブル電子デバイス等のアプリケーションに関しては、DRAMは、しばしばメモリ階層の最低レベルである。
多くのプロセッサ命令セットアーキテクチャ(ISA)は、命令間でのデータのやり取り、及びメモリとの間でのデータの受け渡しのために用いられる構成されたレジスタである一組の汎用レジスタ(GPR)を含む。データに関する論理演算及び算術演算を行う命令は、指定されたGPRからオペランドを読み取り、指定されたGPRにその結果を書き込む。同様に、メモリアクセス命令は、メモリに書き込むべきデータをGPRから読み取り、メモリから読み取られたデータをGPRに書き込む。コンパイラは、ソース及びターゲットのGPR識別子を各命令に割り当て、さらに適切な結果が計算されるように命令に順序を付ける。すなわち、命令は、より早い命令が指定されたGPRに結果を格納するように指示し、より遅い命令がさらなる処理のためにこれらのGPRを読み取ってオペランドを入手するように指示することによって正確な結果を保証する「プログラム上の順序で」手配される。
しかしながら、多くのプロセッサは、「アウトオブオーダーで」、すなわち命令のプログラム上の順序以外の順序で命令を実行する。アウトオブオーダーでの実行が生じる事例の一例は、2つ以上の命令を異なる実行パイプラインにおいて並行して実行することができるスーパースカラー設計の場合である。命令が1つのパイプラインにおいてストールした場合は、後続する命令を直ちに実行するために空いているパイプラインに急送することができる。アウトオブオーダーでの実行は、スーパースカラー設計に限定されておらず、単命令発行(single-issue)設計においても発生する可能性がある。いずれの場合においても、アウトオブオーダーでの実行は、一定の問題を引き起こす。
独立した命令は、原プログラム上の順序に関わりなく実行することができる。しかしながら、多くの命令は、「ハザード」と呼ばれるその他の命令への依存性を呈する。データハザードは、命令の順序再設定(例えば、アウトオブオーダーな命令の発行に起因する命令の順序再設定)が依存性に関わっているオペランドへのアクセス順序を変えるときに発生する。該当するデータハザードは、3つの型に分類することができる。次に、プログラム上の順序でjの前にiが生じる2つの命令i及びjについて検討する。
1つの型のデータハザードは、リードアフターライト(RaW)ハザードである。このハザードは、iがjに関するオペランドソースであるターゲットレジスタに書き込むときに生じる。iがレジスタに書き込む前にjが該レジスタの読み取りを試みた場合は、jは、旧値を不適切に取り出す。ライトアフターライト(WaW)ハザードは、両方の命令i及びjが同じターゲットレジスタに書き込み、iによって書き込まれる前にjがそのターゲットへの書き込みを試みるときに発生する。この場合は、これらの書き込みは誤った順序で実行され、jによって書き込まれた値ではなくiによって書き込まれた値をレジスタ内に残す。ライトアフターリード(WaR)ハザードは、iに関するオペランドソースであるターゲットレジスタをiが読み取る前にjが前記レジスタに書き込んだときに発生する。このハザードは、前の命令によって書き込まれた正確な値ではなくjによって書き込まれた新しい値を不正確にiに取り出させる。リードアフターリード(RaR)事例はデータハザードではなく、読み取りはあらゆる順序で行えることに注目すること。
例えば、以下の代表的なコードフラグメントを検討すること。
AND r2,r10,r12 r10の内容とr12の内容との論理ANDをとり、その結果をr2に入れる
ST r2,mem r2の内容をメモリ記憶場所memに格納する
ADD r2,r5,r6 r5及びr6の内容を加算し、合計をr2に入れる
STは、ANDに対するRaW依存性を有する。このデータハザードは、これらの命令をプログラム上の順序で実行するように要求する。さらに、ADDは、STへのRaW依存性を呈する。意味論的には、ADDは、STがr2の読み取りを完了させるまでその結果をr2に書き込むことができない。その他の場合は、STは、ANDの結果を書き込むべきときにADDの結果をメモリに書き込む。WaR及びWaWデータハザードの場合は、1つの命令から次の命令にデータが渡されていないため、真のデータ依存性ではなく名前上の依存性である(唯一の依存性は、他方の命令がこれから読み取るか又は既に書き込んでいるレジスタの内容を壊さないことである)。名前上の依存性は、レジスタ名変更と呼ばれる技術によって解決することができる。
レジスタ名変更システムにおいては、各々が物理レジスタ番号(PRN)を有する大きな一組の物理レジスタが、論理レジスタ番号(LRN)をこれらの物理レジスタに動的に割り当てることによって管理される。LRNは、例えば、論理GPR識別子(r0、r1、r2、...)を具備することができる。好ましいことに、物理レジスタ数は、LRN数、又は構成されたGPR数よりも多い。名前変更テーブル(RT)は、LRNとPRNとの間における動的マッピングを維持する。
パイプライン内の早期において(例えば、復号段階において又は復号段階に続いて)、命令のレジスタアクセス上の特徴が検査され、該命令と関連するLRN(例えば、GPR識別子)がRTを介してPRNに変換される。レジスタに書き込む命令に関しては、新しいLRN−PRNマッピングがRTに記入されてLRNを未使用のPRNにマッピングし、このため、書き込みは、関連づけられた物理レジスタに向けられる(すなわち、LRNの「名前が変更される」)。レジスタを読み取る命令は、RTルックアップを介してそのLRNをPRNに変換する。PRNは、パイプラインにおける有効期間全体を通じてレジスタ読み取り命令と関連づけられた状態を維持する。
レジスタ書き込み命令は、同じLRNに書き込まれている前の値を「壊さない」。(LRNは、新しいPRNに名前が変更されるため)書き込みは、新しい未使用のPRNが対象になる。プログラム上の順序で書き込み命令に後続する命令は、書き込まれた値を得るために同じPRNに向けられる。プログラム上の順序で書き込み命令に先行する命令は、(名前変更作業前に)RTによって異なる物理レジスタにマッピングされており、その物理レジスタへのアクセスを続ける。従って、所定のLRNを書き込む命令は、前の値をLRN(WaR)から読み取る命令又は前の結果をLRN(WaW)に書き込む命令に先行して実行することができる。この方法により、WaR及びWaWの名前ハザードは回避される。
プロセッサが例外、誤って予測された分岐等から回復するのを可能にするため、データが書き込まれる物理レジスタを(さらなる名前変更のために)利用可能であるかどうかに対して制限が課せられる。例えば、LRNは、PRNに名前を変更することができ、第1の命令の結果はLRNに書き込まれ、従ってPRNに書き込むことができる。第2の命令は、PRNに名前が変更されたLRNにデータを書き込むことができ、従って、PRNは、第2の命令の結果を格納する。この場合は、LRNは、第2の命令がコミットするまで(すなわち、該命令及び該命令に先行する全命令の完全な例外検査が実施済みであり、実行を完了させることが保証されるまで)は、他のLRNの名前をPRNに変更するために解放されない。さらに、LRNを参照する第1と第2の命令の間の全命令(すなわち、PRNを読み取る全命令)が、PRNの読み取りを完了させていなければならないか又は最終的にその値を受け取ることが保証されなければならない。その時点で初めてPRNを解放して他のLRNをその名前に変更するために利用可能になる。
上記のコードセグメント例に戻り、AND命令が復号され、LRN r2への書き込みが検出されたときには、RTにおいて物理レジスタ、例えばPRN xにLRN r2が割り当てられる。ANDの結果は、物理レジスタxに書き込まれる。ST命令が復号されるときには、LNR r2からの読み取りが検出され、RTにアクセスされる。LRN r2はPRN xにマッピングされ、このため、ST命令は、物理レジスタxを読み取り(従って、ANDによって書き込まれた結果を入手する)。ADD命令が復号され、LRN r2への書き込みが検出されたときには、LRN r2は、異なる物理レジスタ、例えばPRN yに再度割り当てられる−すなわち「名前が変更される」。LRN r2を読み取る後続の命令は、RTによって物理レジスタyに向けられる。ADDはSTの前に実行でき、STは依然としてPRN xから正確な結果を取り出し、それによってWARハザードが解決されることに注目すること。
レジスタ名変更システムの1つの問題は、条件付き命令の実行から発生する。条件付き命令は、条件が満たされている場合のみに算術演算又は論理演算を行ってその結果を書き込むように構成されている命令である。条件が評価されるまでは(この評価は、パイプラインの深部においてしばしば行われる)、条件付き命令がレジスタに書き込むかどうか決定することができない。条件が満たされていない場合は、条件付き命令は、実効的に、GPRを変更しないNOP、すなわち非演算命令である。条件付き命令がレジスタに書き込むかどうか不確実であるため、後続する命令は、条件が評価されるまでは条件付き命令への依存性が存在するかどうか確認することができない。例えば、以下のコードフラグメントについて検討する。
CMP r1,r12 r1及びr12の内容を比較する(比較結果を反映させるようにコード又はフラグを設定する)
AND r2,r10,r12 r10の内容をr12の内容に論理ANDし、その結果をr2に入れる
SUBEQ r2,r7,r8 前の比較が等しい場合は、r8の内容をr7から減じてその結果をr2に入れる。等しくない場合は、r2は変更されない。
ST r2,mem r2の内容をメモリ記憶場所memに格納する
ADD r2,r5,r6 r5及びr6の内容を加算し、合計をr2に入れる。
この例においては、STは、EQ条件が評価されまでは、SUBEQに関するデータハザードを有するかどうか確認することができない。すなわち、STは、AND又はSUBEQ命令によってr2に書き込まれるかどうかを決定することができない。意味論的には、及び実際には、常にプログラム上の順序で命令を出すプロセッサにおいては、AND及びSUBEQの両方が常に実行され、SUBEQは、r2レジスタの値を更新できる場合とできない場合があり、STは、このことに「留意」せず、単にr2の内容を格納する。しかしながら、アウトオブオーダーな設計においては、プロセッサは、STがAND又はSUBEQのいずれに依存するかを決定しなければならない。
特に、レジスタ名変更システムにおいては、プロセッサは、EQ条件が評価されてSUBEQが実際にr2に書き込むかどうかを決定することができるようになるまで、レジスタ名変更段階の早期においてパイプラインをストールさせなければならない。条件はパイプラインの深部において評価されるため、このことは望ましくないパイプラインのストールを引き起こす。代替として、RTは、SUBEQ命令に関して推測的にr2の名前を新しいPRNに変更することができる。この場合は、RTは、EQ条件が満たされない場合は名前変更を取り消す、すなわち、前に名前が付けられたPRNへのLRN r2のマッピングを復元させるためのメカニズムを有していなければならない。このメカニズムが必要な理由は、条件が満たされない場合は、SUBEQが新しいPRNを実際に書き込まず、RTが定義されていないデータを含む物理レジスタへのLRN r2のマッピングを行うことになるためである。この追加の回路は、RTにおける複雑さを増大させて電力消費量を増大させる。
当業において知られており、その出力が条件評価に依存する1つの型の命令は、条件付き選択である。条件付き選択命令は、常に(すなわち無条件で)結果を書き込むために命令セットアーキテクチャによって定義される。出力が書き込まれるどうかではなく、書き込まれた値のみが条件評価に依存する。例えば、条件付き選択ADD命令 ADDSEQ r2、r3、r4、r5は、EQ条件が満たされている場合にr4とr5の内容を加算してその結果をr2に入れることができる。EQ条件が満たされていない場合は、前記命令は、r3の内容をr2に入れる。この命令は、アーキテクチャ的に及び意味論的に、代替結果(この例においてはr3の読み取り)に関する明示の入力を有する。次に、出力は、条件評価に依存して、演算結果又は代替結果の間で選択する。
条件付き命令は、条件付き選択とは異なる。本明細書において用いられる「条件付き命令」は、条件が満たされている場合に演算の結果をターゲットに書き込み、条件が満たされていない場合はターゲットに書き込まないように構成されている命令である。すなわち、条件が満たされていない場合は、条件付き命令は、実効的にNOPに変換し、レジスタへの書き込みを行わず、オペランド転送環境においてどのような結果も転送しない。条件が評価される(この評価はパイプライン内の遅い段階でしばしば生じる)までレジスタ名変更段階(一般的にはパイプラインの早い段階で生じる)においてプロセッサにパイプラインをストールさせるのは、条件付き命令が出力を提供するかどうかがまさにこのように不確実なことである。条件付き命令が事実上のNOPであるかどうかがわかっているときのみに、後続する命令のデータ依存性を解決することができる。この型の条件付き命令は、現代のプロセッサISAにおいては一般的である。
発明の概要
1つ以上のオペランドを入力として受け取り、条件が満たされている場合はオペランドに関して行われた演算の結果をターゲットに出力し、条件が満たされていない場合は出力を提供しないように構成された条件付き命令が、前記ターゲットに対して無条件で出力を提供するような形で実行される。前記条件付き命令は、前記ターゲットの前の値(すなわち、前記ターゲットを更新させた前記条件付き命令に先行する直近の命令によって生成された値)を入手する。前記条件が評価される。前記条件が満たされている場合は、オペランドに関して行われた演算の結果が前記ターゲットに出力される。前記条件が満たされていない場合は、前記前値が前記ターゲットに出力される。後続する命令は、条件評価前には、(レジスタに書き込まれるか又は命令に転送されるかにかかわらず)オペランドソースとして前記ターゲットに依存することができる。
一実施形態は、パイプラインプロセッサ内における条件付き命令であって、1つ以上のオペランドを入力として受け取り、条件が満たされている場合はオペランドに関して行われた演算の結果をターゲットに出力し、条件が満たされていない場合は出力を提供しないように構成された条件付き命令、を実行する方法に関するものである。1つ以上のオペランド値及び前記ターゲットの前値が受け取られ、条件が評価される。前記条件が満たされている場合は、オペランド値に関する演算が行われて結果値が生成され、前記結果が前記ターゲットに出力される。前記条件が満たされていない場合は、前記の前ターゲット値が前記ターゲットに出力される。
他の実施形態は、論理レジスタを物理レジスタに動的にマッピングするレジスタ名変更システムを採用するパイプラインプロセッサにおいて、条件が満たされている場合は論理ターゲットレジスタに演算結果を書き込み、前記条件が満たされていない場合はいずれのレジスタにも書き込まないように構成された条件付き命令を実行する方法に関するものである。前記論理ターゲットレジスタと関連づけられた第1の物理レジスタから第1の値が読み取られる。前記論理ターゲットレジスタの名前が第2の物理レジスタに変更される。条件が評価される。前記条件が満たされている場合は、演算が行われて結果値が生成され、前記結果値が前記第2の物理レジスタに書き込まれる。前記条件が満たされていない場合は、前記第1の値が前記第2の物理レジスタに書き込まれる。
他の実施形態は、条件が満たされている場合は演算の結果を論理ターゲットレジスタに書き込み、条件が満たされていない場合はいずれのレジスタにも書き込まないように構成された条件付き命令を実行する方法に関するものである。前記方法は、前記論理ターゲットレジスタと関連づけられた第1の物理レジスタから前の値を読み取ることを具備する。
他の実施形態は、条件が満たされている場合は演算の結果を論理ターゲットレジスタに書き込み、条件が満たされていない場合はいずれのレジスタにも書き込まないように構成された条件付き命令を実行する方法に関するものである。前記方法は、前記論理ターゲットレジスタに無条件で値を書き込むことを具備する。
他の実施形態は、複数の物理レジスタと、論理レジスタ識別子を動的にこれらの物理レジスタと関連づけるために動作可能な名前変更テーブルと、を含むプロセッサに関するものである。前記プロセッサは、プログラム上の順序でない順序で命令を実行するために動作可能な命令実行パイプラインも含む。前記パイプラインは、条件の評価前に、条件付き命令に関するターゲットとして及び前記条件付き命令への条件付き依存性を有する命令に関するオペランドソースとして無条件で物理レジスタを割り当てるためにさらに動作可能である。前記条件付き命令は、条件が満たされている場合は演算の結果をターゲットに書き込み、前記条件が満たされていない場合はターゲットに書き込まないように構成されている。
図1は、プロセッサ10の機能ブロック図である。プロセッサ10は、制御論理14に従って命令実行パイプライン12において命令を実行する。パイプライン12は、12a及び12b等の複数の並列パイプラインを有するスーパースカラー設計であることができる。パイプライン12a、12bは、パイプ段階において構成された様々なレジスタ又はラッチ16と、1つ以上の算術論理演算装置(ALU)18と、を含む。名前変更レジスタファイル(RRF)20は、構成された汎用レジスタ(GPR)の数を超える非常に多数の物理レジスタを提供する。RRF20内のレジスタは、プロセッサメモリ階層の最上層を具備し、命令に関する主オペランドソース及び行先ターゲットとして機能する。RRF20には、論理GPR識別子をRRF20内の物理レジスタと動的に関連づける名前変更テーブル(RT)21が関連づけられている。
パイプライン12a、12bは、命令キャッシュ(I−キャッシュ)22から命令をフェッチし、メモリのアドレッシング及び許可は、命令側変換ルックアサイドバッファ(ITLB)24によって管理される。データは、データキャッシュ(ID−キャッシュ)26からアクセスされ、メモリのアドレッシング及び許可は、主変換ルックアサイドバッファ(TLB)28によって管理される。様々な実施形態においては、ITLBは、TLBの一部分のコピーを具備することができる。代替として、ITLB及びTLBは、統合することができる。同様に、プロセッサ10、I−キャッシュ22及びD−キャッシュ26の様々な実施形態は、統合または統一することができる。I−キャッシュ22及び/又はD−キャッシュ26におけるミスは、メモリインタフェース30の制御下で、主(オフチップ)メモリ32へのアクセスを引き起こす。
プロセッサ10は、様々な周辺装置36へのアクセスを制御する入力/出力(I/O)インタフェース34を含むことができる。当業者は、プロセッサ10の様々な変形が可能であることを認識するであろう。例えば、プロセッサ10は、Iキャッシュ又はDキャッシュのいずれか又は両方に関する第2レベル(L2)のキャッシュを含むことができる。さらに、プロセッサ10において描かれている機能ブロックのうちの1つ以上を特定の実施形態から省くことができる。
1つ以上の実施形態により、条件付き命令がレジスタに書き込むかどうか不確実であることは−この不確実性は、条件が評価されるまで解決されない−、パイプライン内におけるストールを引き起こさない。前記不確実性は、ターゲットレジスタに常に(無条件で)書き込む条件付き命令によって取り除かれる。ターゲットレジスタに書き込まれる値は、条件評価に依存する。条件付き命令は、自己のターゲットの前値(すなわち、前記ターゲットを更新させた条件付き命令に先行する直近の命令によって生成された値)を読み取り、条件評価に基づき、前記前値(条件が満たされていない場合)又は演算結果(条件が満たされている場合)をターゲットに書き込む。この方法により、条件付き命令に後続する命令は、条件が評価されるのを待たずに、自己のオペランドのソース−条件付き命令のターゲット−が保証される。特に、レジスタ名変更システムは、条件評価後における正確な値(条件付き演算の結果又は前命令又はメモリへのアクセスの結果)を含むPRNに依存して条件付き命令のターゲットLRNの名前をPRNに変更することができる。
条件付き命令を実行する方法の一実施形態が、図2において流れ図の形で描かれている。条件付き命令は、ターゲットの前値を入力する(ブロック40)。この入力は、命令に割り当てられたターゲットLRN(例えば、GPR識別子)を読み取ることを具備することができ、このことは、レジスタ名変更が採用されている場合は、条件付き命令が復号されるときにRTがLRNをマッピングする先であるPRNを読み取ることに相当する。代替として、オペランド転送動作においては、ターゲットの前値を入力することは、前命令の出力を直接入手することを具備することができる。いずれの場合においても、前値は、前命令又はメモリアクセス動作の結果である。条件付き命令は、本発明の命令実行方法に起因して前値を読み取り、前値は、条件付き命令への構成されたオペランドではない。ターゲットの前値を読み取ることは、図2では方法における第1のステップとして描かれているが、必ずしも必要であるわけではない。ターゲットの前値は、ターゲットの論理識別子の名前変更前のあらゆる時点において、さらには、前値が(例えば、メモリアクセス動作等から)条件付き命令に転送される場合は名前変更後においてさえも読み取ることができる。
条件付き命令に該当する条件が評価される(ブロック42)。この評価は、実行段階等のパイプラインの深部において行うことができる。この理由により、先行技術の条件付き命令が何らかの出力を生成するかどうかは条件評価まで確認できないため、先行技術の条件付き命令は、レジスタ名変更段階においてパイプラインのストールを引き起こした。代替として、条件付き命令によって値が書き込まれることを予想してレジスタ名が変更された場合は、条件が満たされておらず書き込みが行われなかった場合は名前変更動作を取り消さなければならなかった。
条件が満たされている場合は、1つ以上のオペランドが条件付き命令に入力される(ブロック44)。このことは、GPRの読み取り又はオペランド転送命令を含むことができる。オペランド入力ステップは、条件評価に先行することができ、条件が満たされていない場合はオペランドは単に捨てられることに当業者は注目するであろう。オペランドに関する算術演算又は論理演算が行われて(ブロック46)結果が生成され、その結果が出力される(ブロック48)。出力は、LRN(すなわち、RTを通じてLRNと関連づけられているPRN)に書き込むか又は他の命令に直接結果を転送することによって行うことができる。
条件が満たされていない場合は(ブロック42)、条件付き命令は、(同じくターゲットLRNを書き込むことによって又はレジスタ転送によって)ターゲットから入力された前値を出力し(ブロック50)、それによって、条件が満たされていない場合に確実に前値を提供する。図2に描かれている実施形態においては、条件が満たされていない場合はオペランドが読み取られず、演算も行われない。その他の実施形態においては、オペランドの読み取り、さらには演算さえも、オペランドによる条件評価前に行うことができ、生成された結果は、条件が満たされていない場合は単に捨てられる。条件評価にかかわらず条件付き命令は出力を提供することに注目すること(ブロック48、50)。このことは、命令を構成されているとおりに実行する−すなわち、条件が満たされている場合のみに出力を提供し、条件が満たされていない場合は出力(レジスタ書き込み又はオペランド転送)を提供しない先行技術の条件付き命令実行方法とは対照的である。
一実施形態による出力選択が、図3において、上記の代表的なコードフラグメント、特にSUBEQ r2、r7、r8命令、を用いて概略的に描かれている。LRN r2の前値が、RT 21マッピング後にPRN xから読み取られる。この値(又は少なくともPRN識別子)は、パイプラインを進行中は条件付き命令によって維持される。レジスタ名変更システムは、条件評価前にRT 21を更新し、LRN r2を新しい物理レジスタPRN yに変更する。オペランドがr7及びr8から読み取られ、減算演算がALU18において行われる。条件が評価され、評価結果は、前値又は演算結果を条件付き命令のターゲットLRNr2(PRN yに名前が変更されている)に書き込むかどうかを決定する。図3は代表例であるにすぎず、他の実施形態においては、r7及びr8の読み取り及び減算演算は条件が満たされている場合のみに行うことができることを当業者は認識するであろう。
1つ以上の実施形態による条件付き命令の実行は、出力−条件評価に依存して演算の結果又はターゲットの前値のいずれか−を無条件で提供するため、パイプラインは、多くの状況において条件評価を待つためにストールさせる必要がない。例えば、RT 21は、条件評価を待たずに、条件付き命令のターゲットLRNの名前をRRF20内の利用可能な物理レジスタに変更することができる。このLRNを読み取る後続の命令は、条件付き命令によって書き込まれた物理レジスタから適切な結果を入手することが保証される。前記物理レジスタは、演算の結果(条件が満たされている場合)又はレジスタ名変更前にLRNと関連づけられていたPRNからの値(条件が満たされていない場合)のうちのいずれかを含むことになる。従って、パイプラインは、条件評価を待つためにレジスタ名変更段階においてストールする必要がない。
一実施形態においては、オペランド転送は、条件の評価前に、命令のオペランドのうちの1つ以上を条件付き命令によって直接提供できるときに、パイプラインコントローラ14が命令のオペランドのソースを決定するのを可能にすることによって単純化される。当業においてよく知られるように、オペランド転送は、第1の命令によるレジスタへの書き込み及び第2の命令によるレジスタ読み取りを要求せずに、1つの命令の出力が直接他の命令に転送される技術である。先行技術においては、条件付き命令に後続する命令は、条件付き命令によって転送されるか(条件が満たされている場合)又は前命令によって転送され(条件が満たされておらず、条件付き命令が出力を生成しない場合)、従って、条件評価がオペランドソースを決定するのを待たなければならない。出力を無条件で提供することによって、この実施形態の条件付き命令実行方法は、この不確実性を排除し、条件評価前にオペランドのソースに関する判断を行うことを可能にする。特に、条件付き命令実行方法は、無条件で出力を転送するため、パイプラインコントローラ14は、後続する命令に関するオペランドソースとして条件付き命令を信頼できる形で割り当てることができる。前記出力は、前の命令によって条件付き命令に転送された前値(条件が満たされていない場合)又は演算の結果(結果が満たされている場合)であることができる。
本発明は、本明細書においては、本発明の特定の特長、側面及び実施形態に関して説明されているが、数多くの変形、修正、及びその他の実施形態が本発明の広範な適用範囲内にあることが明確になり、このため、あらゆる変形、修正及び実施形態が本発明の適用範囲内にあるとみなすべきである。従って、本明細書の実施形態は、あらゆる点において例示的な実施形態であって制限するものではないと解釈すべきであり、添付される特許請求項の意味及び同等の意味の範囲内にあるすべての変更は、前記請求項内に包含されることが意図されている。
プロセッサの機能ブロック図である。 条件付き命令を実行する方法を描いた流れ図である。 条件付き命令の出力決定を描いた機能ブロック図である。

Claims (23)

  1. パイプライン方式プロセッサにおいて条件付き命令を実行する方法であって、前記条件付き命令は、1つ以上のオペランドを入力として受け取り、条件が満たされている場合は前記オペランドに関する演算の結果をターゲットに出力し、前記条件が満たされていない場合は出力を提供しないように構成され、
    1つ以上のオペランド値を受け取ることと、
    前記ターゲットの前値を受け取ることと、
    条件を評価することと、
    前記条件が満たされている場合は、前記オペランド値に関する演算を行って結果値を生成し、前記結果を前記ターゲットに出力することと、
    前記条件が満たされていない場合は、前記前ターゲット値を前記ターゲットに出力すること、とを具備する、方法。
  2. 前記ターゲットの前値を受け取ることは、前記前値を第1のレジスタから読み取ることを具備する請求項1に記載の方法。
  3. 前記結果又は前記ターゲットの前記前値を出力することは、前記各々の値を第2のレジスタに書き込むことを具備する請求項2に記載の方法。
  4. 前記第1及び第2のレジスタは、レジスタ名変更システムにおける物理レジスタであり、論理レジスタは、前記条件の前記評価前に前記第1のレジスタから前記第2のレジスタに無条件で名前が変更される請求項3に記載の方法。
  5. 前記条件付き命令に後続する命令は、前記条件の評価前にオペランドフェッチに関して無条件で前記第2のレジスタに向けられる請求項4に記載の方法。
  6. 前記ターゲットの前記前値は、以前に実行された命令の出力である請求項1に記載の方法。
  7. 前記結果値又は前記ターゲットの前記前値は、前記各々の値を後続する命令に転送することを具備する請求項1に記載の方法。
  8. 前記条件付き命令は、前記条件の前記評価前に前記後続する命令に関するオペランドソースとして無条件で選択される請求項7に記載の方法。
  9. 論理レジスタを物理レジスタに動的にマッピングするレジスタ名変更システムを採用するパイプライン方式プロセッサにおいて、条件が満たされている場合は演算の結果を論理ターゲットレジスタに書き込み、前記条件が満たされていない場合はいずれのレジスタにも書き込まないように構成された条件付き命令を実行する方法であって、
    前記論理ターゲットレジスタと関連づけられた第1の物理レジスタから第1の値を読み取ることと、
    前記論理ターゲットレジスタの名前を第2の物理レジスタに変更することと、
    条件を評価することと、
    前記条件が満たされている場合は、演算を行って結果値を生成し、前記結果値を前記第2の物理レジスタに書き込むことと、
    前記条件が満たされていない場合は、前記第1の値を前記第2の物理レジスタに書き込むこと、とを具備する、方法。
  10. 前記条件の評価前に、前記条件付き命令に後続する命令に関するオペランドソースとして前記第2の物理レジスタを割り当てることをさらに具備する請求項9に記載の方法。
  11. 条件が満たされている場合は演算の結果を論理ターゲットレジスタに書き込み、前記条件が満たされていない場合はいずれのレジスタにも書き込まないように構成された条件付き命令を実行する方法であって、
    前記論理ターゲットレジスタと関連づけられた第1の物理レジスタから前値を読み取ることを具備する方法。
  12. 前記論理ターゲットレジスタの名前を第2の物理レジスタに変更することをさらに具備する請求項11に記載の方法。
  13. 条件を評価することと、
    前記条件が満たされている場合は、演算を行って結果を生成して前記結果を前記第2の物理レジスタに書き込むことと、
    前記条件が満たされていない場合は、前記前値を前記第2の物理レジスタに書き込むこと、とをさらに具備する請求項12に記載の方法。
  14. 条件が満たされている場合は演算の結果を論理ターゲットレジスタに書き込み、前記条件が満たされていない場合はいずれのレジスタにも書き込まないように構成された条件付き命令を実行する方法であって、
    前記論理ターゲットレジスタに無条件で値を書き込むことを具備する方法。
  15. 前記論理ターゲットレジスタに値を書き込むことは、前記論理ターゲットレジスタと関連づけられた第2の物理レジスタに値を書き込むことを具備する請求項14に記載の方法。
  16. 以前に前記論理ターゲットレジスタと関連づけられた第1の物理レジスタから前値を読み取ることと、前記論理ターゲットレジスタの名前を前記第1の物理レジスタから前記第2の物理レジスタに変更すること、とをさらに具備する請求項14に記載の方法。
  17. 無条件で書き込まれた前記データは、条件が満たされている場合は前記条件付き命令によって行われた演算の結果であり、前記条件が満たされていない場合は前記前値である請求項16に記載の方法。
  18. 前記条件評価前に、前記条件付き命令に後続する命令に関するオペランドソースとして前記第2の物理レジスタを無条件で割り当てることをさらに具備する請求項17に記載の方法。
  19. 複数の物理レジスタと、
    論理レジスタ識別子を前記物理レジスタと動的に関連づけるために動作可能な名前変更テーブルと、
    前記条件の評価前に、プログラム上の順序でない順序で命令を実行するために動作可能であり、条件付き命令に関する前記ターゲットとして及び前記条件付き命令への条件付き依存性を有する命令に関するオペランドソースとして論理レジスタ識別子を無条件で割り当てるために動作可能な命令実行パイプラインと、を具備し、前記条件付き命令は、条件が満たされている場合は演算の結果をターゲットに書き込み、前記条件が満たされていない場合は前記ターゲットに書き込まないように構成されている、プロセッサ。
  20. 前記条件付き命令は、前記論理レジスタ識別子と関連づけられた第1の物理レジスタから前値を読み取るために動作可能である請求項19に記載のプロセッサ。
  21. 前記名前変更テーブルは、前記論理レジスタ識別子の名前を前記第1の物理レジスタから第2の物理レジスタに変更するために動作可能である請求項20に記載のプロセッサ。
  22. 前記条件付き命令は、前記条件が満たされている場合は演算を行って前記第2の物理レジスタに結果を書き込み、前記条件が満たされていない場合は前記第2の物理レジスタに前記前値を書き込むために動作可能である請求項20に記載のプロセッサ。
  23. 前記条件付き命令に後続する命令は、前記条件評価前に前記第2の物理レジスタがオペランドソースとして無条件で割り当てられる請求項22に記載のプロセッサ。
JP2008506733A 2005-04-14 2006-04-14 条件付き命令が無条件で出力を提供するシステム及び方法 Withdrawn JP2008537231A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/106,803 US7624256B2 (en) 2005-04-14 2005-04-14 System and method wherein conditional instructions unconditionally provide output
PCT/US2006/014042 WO2006113420A2 (en) 2005-04-14 2006-04-14 System and method wherein conditional instructions unconditionally provide output

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012097489A Division JP2012212433A (ja) 2005-04-14 2012-04-23 条件付き命令が無条件で出力を提供するシステム及び方法

Publications (1)

Publication Number Publication Date
JP2008537231A true JP2008537231A (ja) 2008-09-11

Family

ID=37016156

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2008506733A Withdrawn JP2008537231A (ja) 2005-04-14 2006-04-14 条件付き命令が無条件で出力を提供するシステム及び方法
JP2012097489A Withdrawn JP2012212433A (ja) 2005-04-14 2012-04-23 条件付き命令が無条件で出力を提供するシステム及び方法
JP2015080190A Active JP6009608B2 (ja) 2005-04-14 2015-04-09 条件付き命令が無条件で出力を提供するシステム及び方法

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2012097489A Withdrawn JP2012212433A (ja) 2005-04-14 2012-04-23 条件付き命令が無条件で出力を提供するシステム及び方法
JP2015080190A Active JP6009608B2 (ja) 2005-04-14 2015-04-09 条件付き命令が無条件で出力を提供するシステム及び方法

Country Status (9)

Country Link
US (1) US7624256B2 (ja)
EP (1) EP1869547B1 (ja)
JP (3) JP2008537231A (ja)
KR (1) KR100953856B1 (ja)
CN (1) CN101194225B (ja)
BR (1) BRPI0610222A2 (ja)
IL (1) IL186632A (ja)
TW (1) TWI317906B (ja)
WO (1) WO2006113420A2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013530450A (ja) * 2010-05-11 2013-07-25 アーム・リミテッド 条件付き比較命令
JP2013539882A (ja) * 2010-10-12 2013-10-28 エイアールエム リミテッド データ要素の条件付き選択
JP2015164048A (ja) * 2005-04-14 2015-09-10 クゥアルコム・インコーポレイテッドQualcomm Incorporated 条件付き命令が無条件で出力を提供するシステム及び方法

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8078846B2 (en) * 2006-09-29 2011-12-13 Mips Technologies, Inc. Conditional move instruction formed into one decoded instruction to be graduated and another decoded instruction to be invalidated
CN101324838A (zh) * 2008-07-31 2008-12-17 华为技术有限公司 一种指令执行方法和装置
US8140780B2 (en) * 2008-12-31 2012-03-20 Micron Technology, Inc. Systems, methods, and devices for configuring a device
JP5072889B2 (ja) * 2009-03-16 2012-11-14 株式会社東芝 事前条件生成装置および事後条件生成装置、ならびにこれらの方法
US9043580B2 (en) 2011-04-07 2015-05-26 Via Technologies, Inc. Accessing model specific registers (MSR) with different sets of distinct microinstructions for instructions of different instruction set architecture (ISA)
US9141389B2 (en) 2011-04-07 2015-09-22 Via Technologies, Inc. Heterogeneous ISA microprocessor with shared hardware ISA registers
US9292470B2 (en) 2011-04-07 2016-03-22 Via Technologies, Inc. Microprocessor that enables ARM ISA program to access 64-bit general purpose registers written by x86 ISA program
US9032189B2 (en) 2011-04-07 2015-05-12 Via Technologies, Inc. Efficient conditional ALU instruction in read-port limited register file microprocessor
US8880857B2 (en) 2011-04-07 2014-11-04 Via Technologies, Inc. Conditional ALU instruction pre-shift-generated carry flag propagation between microinstructions in read-port limited register file microprocessor
US8924695B2 (en) * 2011-04-07 2014-12-30 Via Technologies, Inc. Conditional ALU instruction condition satisfaction propagation between microinstructions in read-port limited register file microprocessor
US9378019B2 (en) 2011-04-07 2016-06-28 Via Technologies, Inc. Conditional load instructions in an out-of-order execution microprocessor
US9317288B2 (en) 2011-04-07 2016-04-19 Via Technologies, Inc. Multi-core microprocessor that performs x86 ISA and ARM ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline
US9128701B2 (en) 2011-04-07 2015-09-08 Via Technologies, Inc. Generating constant for microinstructions from modified immediate field during instruction translation
US9898291B2 (en) 2011-04-07 2018-02-20 Via Technologies, Inc. Microprocessor with arm and X86 instruction length decoders
US9645822B2 (en) 2011-04-07 2017-05-09 Via Technologies, Inc Conditional store instructions in an out-of-order execution microprocessor
US9244686B2 (en) 2011-04-07 2016-01-26 Via Technologies, Inc. Microprocessor that translates conditional load/store instructions into variable number of microinstructions
US9274795B2 (en) 2011-04-07 2016-03-01 Via Technologies, Inc. Conditional non-branch instruction prediction
US9336180B2 (en) 2011-04-07 2016-05-10 Via Technologies, Inc. Microprocessor that makes 64-bit general purpose registers available in MSR address space while operating in non-64-bit mode
US8880851B2 (en) 2011-04-07 2014-11-04 Via Technologies, Inc. Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline
US9146742B2 (en) 2011-04-07 2015-09-29 Via Technologies, Inc. Heterogeneous ISA microprocessor that preserves non-ISA-specific configuration state when reset to different ISA
US9176733B2 (en) 2011-04-07 2015-11-03 Via Technologies, Inc. Load multiple and store multiple instructions in a microprocessor that emulates banked registers
JP6422381B2 (ja) * 2015-03-18 2018-11-14 ルネサスエレクトロニクス株式会社 プロセッサ、プログラムコード変換装置及びソフトウェア
JP7081922B2 (ja) * 2017-12-28 2022-06-07 株式会社バンダイナムコエンターテインメント プログラム、ゲーム装置及びゲームを実行するための方法
CN111209039B (zh) * 2018-11-21 2022-08-02 展讯通信(上海)有限公司 指令处理方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6170052B1 (en) * 1997-12-31 2001-01-02 Intel Corporation Method and apparatus for implementing predicated sequences in a processor with renaming
US20050066151A1 (en) * 2003-09-19 2005-03-24 Sailesh Kottapalli Method and apparatus for handling predicated instructions in an out-of-order processor

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2933027B2 (ja) * 1996-08-30 1999-08-09 日本電気株式会社 複数命令並列発行/実行管理装置
US6009512A (en) * 1997-10-27 1999-12-28 Advanced Micro Devices, Inc. Mechanism for forwarding operands based on predicated instructions
US6449713B1 (en) * 1998-11-18 2002-09-10 Compaq Information Technologies Group, L.P. Implementation of a conditional move instruction in an out-of-order processor
US20020073301A1 (en) * 2000-12-07 2002-06-13 International Business Machines Corporation Hardware for use with compiler generated branch information
US20020112148A1 (en) * 2000-12-15 2002-08-15 Perry Wang System and method for executing predicated code out of order
US6883089B2 (en) * 2000-12-30 2005-04-19 Intel Corporation Method and apparatus for processing a predicated instruction using limited predicate slip
US7624256B2 (en) * 2005-04-14 2009-11-24 Qualcomm Incorporated System and method wherein conditional instructions unconditionally provide output

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6170052B1 (en) * 1997-12-31 2001-01-02 Intel Corporation Method and apparatus for implementing predicated sequences in a processor with renaming
US20050066151A1 (en) * 2003-09-19 2005-03-24 Sailesh Kottapalli Method and apparatus for handling predicated instructions in an out-of-order processor

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015164048A (ja) * 2005-04-14 2015-09-10 クゥアルコム・インコーポレイテッドQualcomm Incorporated 条件付き命令が無条件で出力を提供するシステム及び方法
JP2013530450A (ja) * 2010-05-11 2013-07-25 アーム・リミテッド 条件付き比較命令
US9383999B2 (en) 2010-05-11 2016-07-05 Arm Limited Conditional compare instruction
JP2013539882A (ja) * 2010-10-12 2013-10-28 エイアールエム リミテッド データ要素の条件付き選択
US9753724B2 (en) 2010-10-12 2017-09-05 Arm Limited Conditional selection of data elements
US9983872B2 (en) 2010-10-12 2018-05-29 Arm Limited Conditional selection of data elements

Also Published As

Publication number Publication date
KR100953856B1 (ko) 2010-04-20
IL186632A0 (en) 2008-01-20
TW200705266A (en) 2007-02-01
BRPI0610222A2 (pt) 2010-06-08
WO2006113420A2 (en) 2006-10-26
TWI317906B (en) 2009-12-01
WO2006113420A3 (en) 2006-12-21
JP6009608B2 (ja) 2016-10-19
EP1869547A2 (en) 2007-12-26
CN101194225B (zh) 2013-10-23
KR20070121842A (ko) 2007-12-27
JP2015164048A (ja) 2015-09-10
EP1869547B1 (en) 2016-09-21
CN101194225A (zh) 2008-06-04
US20060236078A1 (en) 2006-10-19
IL186632A (en) 2012-04-30
US7624256B2 (en) 2009-11-24
JP2012212433A (ja) 2012-11-01

Similar Documents

Publication Publication Date Title
JP6009608B2 (ja) 条件付き命令が無条件で出力を提供するシステム及び方法
JP6370829B2 (ja) 誤予測された分岐のためにフラッシュするセグメント化パイプライン
TWI507980B (zh) 最佳化暫存器初始化操作
JP5894120B2 (ja) ゼロサイクルロード
KR100402185B1 (ko) 컴퓨터 처리 시스템에서 순서화된 시퀀스의 명령어를실행하는 방법 및 장치
US7660971B2 (en) Method and system for dependency tracking and flush recovery for an out-of-order microprocessor
US20050247774A1 (en) System and method for validating a memory file that links speculative results of load operations to register values
US9454371B2 (en) Micro-architecture for eliminating MOV operations
KR101154628B1 (ko) 확장형 명령의 구성 명령들 사이에 중간 결과들을 포워딩하는 레지스터 리네이밍 시스템의 사용
US11599359B2 (en) Methods and systems for utilizing a master-shadow physical register file based on verified activation
US7937569B1 (en) System and method for scheduling operations using speculative data operands
EP1150203A2 (en) System and method for handling register dependency in a stack-based pipelined processor
US7783692B1 (en) Fast flag generation
WO2013101323A1 (en) Micro-architecture for eliminating mov operations
KR20170076564A (ko) 레지스터 리네이밍을 사용한 무브 명령어 처리

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110301

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111122

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120222

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120229

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120322

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120329

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20120501

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120529