JP2005532613A - ロード操作の推測結果をレジスタ値にリンクするためのシステムおよび方法 - Google Patents
ロード操作の推測結果をレジスタ値にリンクするためのシステムおよび方法 Download PDFInfo
- Publication number
- JP2005532613A JP2005532613A JP2004502138A JP2004502138A JP2005532613A JP 2005532613 A JP2005532613 A JP 2005532613A JP 2004502138 A JP2004502138 A JP 2004502138A JP 2004502138 A JP2004502138 A JP 2004502138A JP 2005532613 A JP2005532613 A JP 2005532613A
- Authority
- JP
- Japan
- Prior art keywords
- load
- tag
- result
- register
- addressing pattern
- 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
- 238000000034 method Methods 0.000 title claims description 14
- 230000015654 memory Effects 0.000 claims abstract description 154
- 230000004044 response Effects 0.000 claims description 28
- 230000001419 dependent effect Effects 0.000 claims description 26
- 238000012545 processing Methods 0.000 description 37
- 239000000872 buffer Substances 0.000 description 16
- 238000010586 diagram Methods 0.000 description 11
- 238000006073 displacement reaction Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 9
- 230000009977 dual effect Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000001427 coherent effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- 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/3824—Operand accessing
- G06F9/383—Operand prefetching
-
- 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/3842—Speculative instruction execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
本発明は様々な変更や代替形態が可能であるが、本発明の個別の実施形態は、各図面において例示として示されたものであり、ここでは詳細に説明されている。しかしながら、ここで行われている実施形態の説明は、本発明を開示された特定の形態に限定することを意図するものではなく、逆に、本発明は、添付の特許請求の範囲により定義されるような本発明の精神や範囲の範疇であるすべての変更、均等物、及び代替物を含むものであることは理解すべきである。本明細書中の見出しは文章構成のためのものに過ぎず、本明細書の説明または特許請求の範囲を限定または解釈のために用いるべきものではないことに注意されたい。さらに、本明細書において用いられる「できる」という用語は、許可的な意味合い(つまり、そのような可能性を持つ、または可能である)に用いられ、強制的な意味合いではない(つまり、しなければいけない)ことに注意すべきである。「含む」という用語およびその派生語は「含むが、それに限定されない」ことを意味する。「接続される」という用語は「直接的または間接的に接続される」ことを意味し、「結合される」という用語は「直接的または間接的に結合される」ことを意味する。
MOVE EBX,[EDX+EAX−変位A] (ロード1)
MOVE ECX,[EDX+EAX−変位A] (ロード2)
MOVE[EDX+EAX−変位A],EAX (ストア1)
これらの操作のそれぞれはプログラム順序における1以上の介在操作によって分離することができる。図示するように、これら3つの操作のそれぞれは、EDX+EAX−変位Aという同じアドレッシングパターンを含む。
ADD EBX,EBX (加算1)
MOVE [アドレッシングパターンA],EBX (ストア1)
ADD [アドレッシングパターンA],ECX (加算2)
を含む。
これらの命令は隣接した命令であってもよい(例えば、プログラムの順番においてそれらが相互に連続していてもよい)。これらの命令は、実行コア124での実行のために、次の要素の操作に分離することができる(物理アドレスに変換された論理アドレスとともに示す)。
ADD PR2,PR2,PR1 (加算1)
MOVE[アドレッシングパターンA],PR2 (ストア1)
MOV PR3,[アドレッシングパターンA] (加算1へのロード)
ADD PR4,PR3,PR5 (加算2への加算)
MOV[アドレッシングパターンA],PR4 (加算2に対するストア)
要素ロード、加算(add)および加算2のストア操作が発送される前に、ディスパッチユニット104は推測結果へのリンクを許しうるシーケンス中のいずれかの要素操作相互になんらかの依存性がないかを検出することができる。さらに、ストア1によって記憶されたデータはロードの推測結果に結びつけることができる(例えば、メモリファイルによって)。介在する操作が存在しないので、ディスパッチユニットは、同じ発送サイクルにおけるロード操作と加算操作(両方の操作は同じ命令から導かれる)の間の依存性を検出するのに必要なすべての情報を持つことができる。これら2つの依存性に基づいて、ディスパッチユニット104はストア1、PR2によって記憶されたデータのタグを加算2の一部として実行されたロード操作の推測結果に結びつけることができる。それによって、この推測リンクは、ディスパッチユニットが加算2の一部として実行された加算演算のソースをPR2で記憶された値に結びつけることを可能にする。従って、ディスパッチユニットは、PR2がその加算のためのオペランドの一つのソースとして投機的に用いられていること、しかしそのPR3はそのオペランドに対しては非推測ソースであることの表示を出力することができる。従って、一実施形態では、ディスパッチユニットから出力される操作およびオペランド識別子は次のように指定される。
ADD PR2,PR2,PR1 (加算1)
MOV[アドレッシングパターンA],PR2 (ストア1)
MOV PR3,[アドレッシングパターンA] (加算2のためのロード)
ADD PR4,PR2*,PR3,PR5 (加算2についての加算、PR2はECXについての推測ソース、PR3はECXについての非推測ソース)
MOV[アドレッシングパターンA],PR4 (加算2についての記憶)
ADD PR2,PR1,PR1 (加算1)
STORE[アドレッシングパターンA],PR2 (ストア1)
LOAD PR3,[アドレッシングパターンA] (ロード1)
ADD PR4,PR3,PR3 (加算2)
このシーケンスでは、指定された操作を1以上の介在操作によって分離することが可能である。しかしながら、どの介在操作もアドレッシングパターンAにおいて使用される値を変更せず、またはアドレッシングパターンAから計算されたアドレスおよびPR2に記憶されているデータ値を変更しないことが明らかであると仮定すると、PR2に記憶されているデータ値とアドレッシングパターンAから計算されたアドレスに記憶されたデータ値との間に推測リンクが検出される。
Claims (10)
- 第1アドレッシングパターン(206)および第1タグ(208)を記憶するように構成されたエントリ(220)を含み、前記エントリ内に含まれる前記第1アドレッシングパターンをロード操作の第2アドレッシングパターンと比較するように構成され、もし前記第2アドレッシングパターンが前記エントリに記憶されている前記第1アドレッシングパターンに合致するときは前記第1タグによって指定されるデータ値を前記ロード操作の推定結果にリンクするように構成されているメモリファイル(132)と、
前記メモリファイルに結合され、前記ロード操作に依存する第2操作を実行するときは、前記推測結果にアクセスするように構成される実行コア(124)とを備えるシステム。 - 前記第1タグを前記第2操作のための推測オペランドソースタグとして転送する手段をさらに備える、請求項1記載のシステム。
- 前記データ値を結果バスに転送し、前記データ値は前記ロード操作の前記結果であることを示すための手段をさらに含む、請求項1記載のシステム。
- 前記メモリファイルは、前記第1タグを前記ロード操作のための推測ソースオペランドタグとして出力することにより、前記第1タグによって指定された前記データ値を前記ロード操作の結果に投機的にリンクするように構成されている、請求項1記載のシステム。
- 前記第1アドレッシングパターンはストア操作のアドレッシングパターンの一部であり、前記ストア操作は前記ロード操作よりも早いプログラム順序で発生する、請求項1記載のシステム。
- 前記ロード操作の前記推測結果が前記第1タグによって指定される前記データ値に正しくリンクされているかどうかの表示を出力するように構成されたロード/ストアユニットをさらに備える、請求項1記載のシステム。
- 前記ロード/ストアユニットは、結果バス(130)に前記ロード操作の結果タグ出力することにより、前記ロード操作の前記推測結果が前記データ値に誤ってリンクされていることの表示を出力するように構成されている、請求項6記載のシステム。
- 前記メモリファイルは、前記エントリに含まれる前記第1アドレッシングパターンをストア操作の第3アドレッシングパターンと比較するように構成され、もし前記第3アドレッシングパターンが前記第1アドレッシングパターンに合致するときは、前記メモリファイルは前記第1タグを前記ストア操作のソースオペランドを指定するのに用いた第2タグで置換するように構成されている、請求項1記載のシステム。
- 第1操作の第1アドレッシングパターンを第2操作の第2アドレッシングパターンと比較するステップであって、前記第2操作は前記第1操作よりも早いプログラム順序において発生するステップと、
前記第1アドレッシングパターンが前記第2アドレッシングパターンに合致するときに、前記第2操作のためのオペランドのタグによって指定されるデータ値を前記第1操作の推測結果にリンクするステップと、
前記第1操作の結果に応じて、オペランドソースを有する第3操作を実行するステップとを含み、
前記実行するステップは前記タグによって指定される前記データ値にアクセスするステップを含む方法。 - システムメモリ(200)と、
前記システムメモリに結合されたマイクロプロセッサ(100)とを備えたコンピュータシステムであって、前記マイクロプロセッサは、
第1アドレッシング(206)パターンおよび第1タグを記憶するように構成されたエントリ(220)を含み、前記エントリ内に含まれる前記第1アドレッシング(208)パターンをロード操作の第2アドレッシングパターンと比較するように構成され、もし前記第2アドレッシングパターンが前記エントリに記憶されている前記第1アドレッシングパターンに合致するときは前記第1タグによって指定されるデータ値を前記ロード操作の推定結果にリンクするように構成されているメモリファイル(132)と、
前記メモリファイルに結合され、前記ロード操作に依存する第2操作を実行するときは、前記推測結果にアクセスするように構成される実行コア(124)とを含む、コンピュータシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/135,496 US7028166B2 (en) | 2002-04-30 | 2002-04-30 | System and method for linking speculative results of load operations to register values |
PCT/US2002/041313 WO2003093982A1 (en) | 2002-04-30 | 2002-12-20 | System and method for linking speculative results of load operations to register values |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007248917A Division JP2008033955A (ja) | 2002-04-30 | 2007-09-26 | ロード操作の推測結果をレジスタ値にリンクするためのシステムおよび方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005532613A true JP2005532613A (ja) | 2005-10-27 |
JP4105684B2 JP4105684B2 (ja) | 2008-06-25 |
Family
ID=29399219
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004502138A Expired - Fee Related JP4105684B2 (ja) | 2002-04-30 | 2002-12-20 | ロード操作の推測結果をレジスタ値にリンクするためのシステムおよび方法 |
JP2007248917A Pending JP2008033955A (ja) | 2002-04-30 | 2007-09-26 | ロード操作の推測結果をレジスタ値にリンクするためのシステムおよび方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007248917A Pending JP2008033955A (ja) | 2002-04-30 | 2007-09-26 | ロード操作の推測結果をレジスタ値にリンクするためのシステムおよび方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7028166B2 (ja) |
EP (1) | EP1504340A1 (ja) |
JP (2) | JP4105684B2 (ja) |
KR (1) | KR100958705B1 (ja) |
CN (1) | CN1307538C (ja) |
AU (1) | AU2002367915A1 (ja) |
TW (1) | TWI260541B (ja) |
WO (1) | WO2003093982A1 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007536626A (ja) * | 2004-05-05 | 2007-12-13 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | ロードオペレーションの投機的な結果をレジスタ値にリンクするメモリファイルを検証するためのシステムおよび方法 |
JP2013515306A (ja) * | 2009-12-22 | 2013-05-02 | インターナショナル・ビジネス・マシーンズ・コーポレーション | アウトオブオーダー型マイクロプロセッサにおけるオペランド・ストア・比較ハザードの予測及び回避 |
JP2014002735A (ja) * | 2012-06-14 | 2014-01-09 | Apple Inc | ゼロサイクルロード |
US11068271B2 (en) | 2014-07-28 | 2021-07-20 | Apple Inc. | Zero cycle move using free list counts |
US11200062B2 (en) | 2019-08-26 | 2021-12-14 | Apple Inc. | History file for previous register mapping storage and last reference indication |
US11416254B2 (en) | 2019-12-05 | 2022-08-16 | Apple Inc. | Zero cycle load bypass in a decode group |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7028166B2 (en) | 2002-04-30 | 2006-04-11 | Advanced Micro Devices, Inc. | System and method for linking speculative results of load operations to register values |
US7222226B1 (en) | 2002-04-30 | 2007-05-22 | Advanced Micro Devices, Inc. | System and method for modifying a load operation to include a register-to-register move operation in order to forward speculative load results to a dependent operation |
US7089400B1 (en) | 2002-08-29 | 2006-08-08 | Advanced Micro Devices, Inc. | Data speculation based on stack-relative addressing patterns |
US20040123081A1 (en) * | 2002-12-20 | 2004-06-24 | Allan Knies | Mechanism to increase performance of control speculation |
US7024537B2 (en) | 2003-01-21 | 2006-04-04 | Advanced Micro Devices, Inc. | Data speculation based on addressing patterns identifying dual-purpose register |
US7343477B1 (en) * | 2003-12-29 | 2008-03-11 | Sun Microsystems, Inc. | Efficient read after write bypass |
US7555634B1 (en) | 2004-04-22 | 2009-06-30 | Sun Microsystems, Inc. | Multiple data hazards detection and resolution unit |
US7937569B1 (en) * | 2004-05-05 | 2011-05-03 | Advanced Micro Devices, Inc. | System and method for scheduling operations using speculative data operands |
US7415597B2 (en) | 2004-09-08 | 2008-08-19 | Advanced Micro Devices, Inc. | Processor with dependence mechanism to predict whether a load is dependent on older store |
US7634641B2 (en) | 2005-03-18 | 2009-12-15 | Sun Microsystems, Inc. | Method and apparatus for using multiple threads to spectulatively execute instructions |
US7571304B2 (en) | 2005-03-18 | 2009-08-04 | Sun Microsystems, Inc. | Generation of multiple checkpoints in a processor that supports speculative execution |
US7624253B2 (en) * | 2006-10-25 | 2009-11-24 | Arm Limited | Determining register availability for register renaming |
US20100070730A1 (en) * | 2008-09-17 | 2010-03-18 | Sebastian Pop | Minimizing memory access conflicts of process communication channels |
JP5419761B2 (ja) * | 2010-03-12 | 2014-02-19 | アズビル株式会社 | デバイス制御装置およびcpu |
US8549504B2 (en) * | 2010-09-25 | 2013-10-01 | Intel Corporation | Apparatus, method, and system for providing a decision mechanism for conditional commits in an atomic region |
US8825933B2 (en) * | 2011-11-30 | 2014-09-02 | Andes Technology Corporation | Bus apparatus with default speculative transactions and non-speculative extension |
US9679342B2 (en) * | 2013-07-12 | 2017-06-13 | Arm Limited | Result data stream coding for repeating workloads |
US9946651B2 (en) * | 2014-12-13 | 2018-04-17 | Via Alliance Semiconductor Co., Ltd | Pattern detector for detecting hangs |
WO2016092347A1 (en) * | 2014-12-13 | 2016-06-16 | Via Alliance Semiconductor Co., Ltd. | Distributed hang recovery logic |
CN105934743B (zh) | 2014-12-13 | 2019-06-04 | 上海兆芯集成电路有限公司 | 一种微处理器及在其中检测arb的模式的方法 |
WO2016092345A1 (en) * | 2014-12-13 | 2016-06-16 | Via Alliance Semiconductor Co., Ltd. | Logic analyzer for detecting hangs |
US10884747B2 (en) | 2017-08-18 | 2021-01-05 | International Business Machines Corporation | Prediction of an affiliated register |
US10719328B2 (en) | 2017-08-18 | 2020-07-21 | International Business Machines Corporation | Determining and predicting derived values used in register-indirect branching |
US10884745B2 (en) | 2017-08-18 | 2021-01-05 | International Business Machines Corporation | Providing a predicted target address to multiple locations based on detecting an affiliated relationship |
US10908911B2 (en) | 2017-08-18 | 2021-02-02 | International Business Machines Corporation | Predicting and storing a predicted target address in a plurality of selected locations |
US11150904B2 (en) | 2017-08-18 | 2021-10-19 | International Business Machines Corporation | Concurrent prediction of branch addresses and update of register contents |
US10534609B2 (en) | 2017-08-18 | 2020-01-14 | International Business Machines Corporation | Code-specific affiliated register prediction |
US11150908B2 (en) | 2017-08-18 | 2021-10-19 | International Business Machines Corporation | Dynamic fusion of derived value creation and prediction of derived values in a subroutine branch sequence |
US10884746B2 (en) | 2017-08-18 | 2021-01-05 | International Business Machines Corporation | Determining and predicting affiliated registers based on dynamic runtime control flow analysis |
US10713050B2 (en) | 2017-09-19 | 2020-07-14 | International Business Machines Corporation | Replacing Table of Contents (TOC)-setting instructions in code with TOC predicting instructions |
US10884929B2 (en) | 2017-09-19 | 2021-01-05 | International Business Machines Corporation | Set table of contents (TOC) register instruction |
US10620955B2 (en) | 2017-09-19 | 2020-04-14 | International Business Machines Corporation | Predicting a table of contents pointer value responsive to branching to a subroutine |
US10705973B2 (en) | 2017-09-19 | 2020-07-07 | International Business Machines Corporation | Initializing a data structure for use in predicting table of contents pointer values |
US10896030B2 (en) | 2017-09-19 | 2021-01-19 | International Business Machines Corporation | Code generation relating to providing table of contents pointer values |
US11061575B2 (en) | 2017-09-19 | 2021-07-13 | International Business Machines Corporation | Read-only table of contents register |
US10725918B2 (en) | 2017-09-19 | 2020-07-28 | International Business Machines Corporation | Table of contents cache entry having a pointer for a range of addresses |
US10620961B2 (en) * | 2018-03-30 | 2020-04-14 | Intel Corporation | Apparatus and method for speculative conditional move operation |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61294550A (ja) * | 1985-06-21 | 1986-12-25 | Nec Corp | 電子計算機におけるデ−タ読取書込制御方式 |
JPH03154947A (ja) * | 1989-11-13 | 1991-07-02 | Nec Corp | 情報処理装置 |
US5778219A (en) * | 1990-12-14 | 1998-07-07 | Hewlett-Packard Company | Method and system for propagating exception status in data registers and for detecting exceptions from speculative operations with non-speculative operations |
US5428807A (en) * | 1993-06-17 | 1995-06-27 | Digital Equipment Corporation | Method and apparatus for propagating exception conditions of a computer system |
US5584009A (en) * | 1993-10-18 | 1996-12-10 | Cyrix Corporation | System and method of retiring store data from a write buffer |
US5452426A (en) * | 1994-01-04 | 1995-09-19 | Intel Corporation | Coordinating speculative and committed state register source data and immediate source data in a processor |
US6237082B1 (en) * | 1995-01-25 | 2001-05-22 | Advanced Micro Devices, Inc. | Reorder buffer configured to allocate storage for instruction results corresponding to predefined maximum number of concurrently receivable instructions independent of a number of instructions received |
US5892936A (en) * | 1995-10-30 | 1999-04-06 | Advanced Micro Devices, Inc. | Speculative register file for storing speculative register states and removing dependencies between instructions utilizing the register |
US6108769A (en) * | 1996-05-17 | 2000-08-22 | Advanced Micro Devices, Inc. | Dependency table for reducing dependency checking hardware |
US5781752A (en) * | 1996-12-26 | 1998-07-14 | Wisconsin Alumni Research Foundation | Table based data speculation circuit for parallel processing computer |
US6021485A (en) * | 1997-04-10 | 2000-02-01 | International Business Machines Corporation | Forwarding store instruction result to load instruction with reduced stall or flushing by effective/real data address bytes matching |
US5845103A (en) * | 1997-06-13 | 1998-12-01 | Wisconsin Alumni Research Foundation | Computer with dynamic instruction reuse |
US6065103A (en) * | 1997-12-16 | 2000-05-16 | Advanced Micro Devices, Inc. | Speculative store buffer |
US6044430A (en) * | 1997-12-17 | 2000-03-28 | Advanced Micro Devices Inc. | Real time interrupt handling for superscalar processors |
US6112296A (en) * | 1997-12-18 | 2000-08-29 | Advanced Micro Devices, Inc. | Floating point stack manipulation using a register map and speculative top of stack values |
US6175910B1 (en) * | 1997-12-19 | 2001-01-16 | International Business Machines Corportion | Speculative instructions exection in VLIW processors |
JPH11212788A (ja) * | 1998-01-28 | 1999-08-06 | Toshiba Corp | プロセッサのデータ供給装置 |
US6202204B1 (en) * | 1998-03-11 | 2001-03-13 | Intel Corporation | Comprehensive redundant load elimination for architectures supporting control and data speculation |
US6108770A (en) * | 1998-06-24 | 2000-08-22 | Digital Equipment Corporation | Method and apparatus for predicting memory dependence using store sets |
US6463580B1 (en) * | 1998-11-18 | 2002-10-08 | Intel Corporation | Parallel processing utilizing highly correlated data values |
US6349382B1 (en) * | 1999-03-05 | 2002-02-19 | International Business Machines Corporation | System for store forwarding assigning load and store instructions to groups and reorder queues to keep track of program order |
US6658554B1 (en) * | 1999-03-09 | 2003-12-02 | Wisconsin Alumni Res Found | Electronic processor providing direct data transfer between linked data consuming instructions |
US6266744B1 (en) * | 1999-05-18 | 2001-07-24 | Advanced Micro Devices, Inc. | Store to load forwarding using a dependency link file |
US6662280B1 (en) | 1999-11-10 | 2003-12-09 | Advanced Micro Devices, Inc. | Store buffer which forwards data based on index and optional way match |
US6438673B1 (en) * | 1999-12-30 | 2002-08-20 | Intel Corporation | Correlated address prediction |
US6643767B1 (en) * | 2000-01-27 | 2003-11-04 | Kabushiki Kaisha Toshiba | Instruction scheduling system of a processor |
DE10121792C2 (de) * | 2000-05-26 | 2003-09-25 | Ibm | Universelle Ladeadresse/Wertevorhersageschema |
US7028166B2 (en) | 2002-04-30 | 2006-04-11 | Advanced Micro Devices, Inc. | System and method for linking speculative results of load operations to register values |
JP4222280B2 (ja) * | 2004-09-16 | 2009-02-12 | ヤマハ株式会社 | 演奏情報出力装置及び楽器及び演奏情報を出力するための方法及び該方法をコンピュータで実行するためのプログラム。 |
-
2002
- 2002-04-30 US US10/135,496 patent/US7028166B2/en not_active Expired - Fee Related
- 2002-12-12 EP EP02807365A patent/EP1504340A1/en not_active Withdrawn
- 2002-12-20 JP JP2004502138A patent/JP4105684B2/ja not_active Expired - Fee Related
- 2002-12-20 KR KR1020047017543A patent/KR100958705B1/ko not_active IP Right Cessation
- 2002-12-20 WO PCT/US2002/041313 patent/WO2003093982A1/en active Application Filing
- 2002-12-20 CN CNB028288734A patent/CN1307538C/zh not_active Expired - Fee Related
- 2002-12-20 AU AU2002367915A patent/AU2002367915A1/en not_active Abandoned
-
2003
- 2003-04-04 TW TW092107696A patent/TWI260541B/zh not_active IP Right Cessation
-
2007
- 2007-09-26 JP JP2007248917A patent/JP2008033955A/ja active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007536626A (ja) * | 2004-05-05 | 2007-12-13 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | ロードオペレーションの投機的な結果をレジスタ値にリンクするメモリファイルを検証するためのシステムおよび方法 |
JP2013515306A (ja) * | 2009-12-22 | 2013-05-02 | インターナショナル・ビジネス・マシーンズ・コーポレーション | アウトオブオーダー型マイクロプロセッサにおけるオペランド・ストア・比較ハザードの予測及び回避 |
JP2015228237A (ja) * | 2009-12-22 | 2015-12-17 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | アウトオブオーダー型マイクロプロセッサにおけるオペランド・ストア比較ハザードの予測及び回避 |
US9430235B2 (en) | 2009-12-22 | 2016-08-30 | International Business Machines Corporation | Predicting and avoiding operand-store-compare hazards in out-of-order microprocessors |
JP2014002735A (ja) * | 2012-06-14 | 2014-01-09 | Apple Inc | ゼロサイクルロード |
KR101497807B1 (ko) * | 2012-06-14 | 2015-03-02 | 애플 인크. | 제로 사이클 로드 |
US9996348B2 (en) | 2012-06-14 | 2018-06-12 | Apple Inc. | Zero cycle load |
US11068271B2 (en) | 2014-07-28 | 2021-07-20 | Apple Inc. | Zero cycle move using free list counts |
US11200062B2 (en) | 2019-08-26 | 2021-12-14 | Apple Inc. | History file for previous register mapping storage and last reference indication |
US11416254B2 (en) | 2019-12-05 | 2022-08-16 | Apple Inc. | Zero cycle load bypass in a decode group |
Also Published As
Publication number | Publication date |
---|---|
AU2002367915A8 (en) | 2003-11-17 |
JP4105684B2 (ja) | 2008-06-25 |
TWI260541B (en) | 2006-08-21 |
WO2003093982A8 (en) | 2004-05-13 |
WO2003093982A1 (en) | 2003-11-13 |
TW200305821A (en) | 2003-11-01 |
KR20050013544A (ko) | 2005-02-04 |
US7028166B2 (en) | 2006-04-11 |
CN1625733A (zh) | 2005-06-08 |
CN1307538C (zh) | 2007-03-28 |
JP2008033955A (ja) | 2008-02-14 |
KR100958705B1 (ko) | 2010-05-18 |
EP1504340A1 (en) | 2005-02-09 |
AU2002367915A1 (en) | 2003-11-17 |
US20040177236A1 (en) | 2004-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4105684B2 (ja) | ロード操作の推測結果をレジスタ値にリンクするためのシステムおよび方法 | |
JP3866261B2 (ja) | ロード/ストア操作をバイパスするために投機的ソースオペランドを使用するシステムおよび方法 | |
US7263600B2 (en) | System and method for validating a memory file that links speculative results of load operations to register values | |
US6950925B1 (en) | Scheduler for use in a microprocessor that supports data-speculative execution | |
US7415597B2 (en) | Processor with dependence mechanism to predict whether a load is dependent on older store | |
US7024537B2 (en) | Data speculation based on addressing patterns identifying dual-purpose register | |
US7165167B2 (en) | Load store unit with replay mechanism | |
US7363470B2 (en) | System and method to prevent in-flight instances of operations from disrupting operation replay within a data-speculative microprocessor | |
US7222226B1 (en) | System and method for modifying a load operation to include a register-to-register move operation in order to forward speculative load results to a dependent operation | |
US7197630B1 (en) | Method and system for changing the executable status of an operation following a branch misprediction without refetching the operation | |
US7937569B1 (en) | System and method for scheduling operations using speculative data operands | |
US7266673B2 (en) | Speculation pointers to identify data-speculative operations in microprocessor | |
KR20070019750A (ko) | 로드 동작의 투기적인 결과들을 레지스터 값들에 연결하는메모리 파일을 유효화하기 위한 시스템 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051205 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060919 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060926 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20061218 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20061225 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070326 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070529 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070926 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20071108 |
|
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: 20080304 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080327 |
|
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: 20110404 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |