JP5894120B2 - ゼロサイクルロード - Google Patents
ゼロサイクルロード Download PDFInfo
- Publication number
- JP5894120B2 JP5894120B2 JP2013125333A JP2013125333A JP5894120B2 JP 5894120 B2 JP5894120 B2 JP 5894120B2 JP 2013125333 A JP2013125333 A JP 2013125333A JP 2013125333 A JP2013125333 A JP 2013125333A JP 5894120 B2 JP5894120 B2 JP 5894120B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- load
- load instruction
- rename
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 claims description 92
- 238000000034 method Methods 0.000 claims description 34
- 230000004044 response Effects 0.000 claims description 26
- 238000013507 mapping Methods 0.000 claims description 24
- 238000012797 qualification Methods 0.000 claims description 7
- 230000001419 dependent effect Effects 0.000 claims description 6
- 238000012546 transfer Methods 0.000 claims description 6
- 230000008859 change Effects 0.000 description 12
- 239000012536 storage buffer Substances 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 239000000872 buffer Substances 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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
-
- 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, look ahead
- G06F9/3824—Operand accessing
- G06F9/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
-
- 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, 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, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- 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, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
Description
STORE [r10+4], r7 // Address operands are r10 and 4.
MOV r12, r16
LOAD r14, [r10+4] // Address operands are r10 and 4.
SUB r2, r6, r14 // For r14, use forwarded data from
// store op's source operand, r7.
ADD r11, r14, r13 // For r14, use forwarded data from
// store op's source operand, r7.
STORE [r10+4], r7 // Address operands are r10 and 4.
ADD r19, r24, r18
ADD r7, r20, r21 // Store op source operand is
// modified.
LOAD r14, [r10+4] // Address operands are r10 and 4.
SUB r2, r6, r14 // For r14, use forwarded data from
// store op's source operand, r7.
ADD r7, r14, r13 // For r14, use forwarded data from
// store op's source operand, r7.
ADD r14, r22, r25 // The load op destination operand is
// overwritten. During commit stage,
// return physical register number
// shared by r7&r14 to the free list.
110:マイクロプロセッサ
112:プロセッサコア
114:物理的レジスタ
116:キャッシュメモリサブシステム
118:インターフェイスロジック
120:メモリコントローラ
122:メモリバス
130:ディスクメモリ
140:DRAM
150a、b:周辺装置
202:アドレスセレクト
204:i−キャッシュ
606:次フェッチプレディクタ
208:分岐方向プレディクタ
210:デコードユニット
212:コントロールフロー評価
214:再ネームイントラグループ依存性検出
216:MD検出器
218:マッパー
220:レジスタ再ネームユニット
222:再ネームコントロールロジック・アレイ
224:RDA
230:物理的レジスタ
240:ディスパッチキュー
242:マイクロコード
250:スケジューラ
260:実行コア
270:リオーダーバッファ
272:記憶バッファ
Claims (20)
- 記憶インストラクションに対するロードインストラクションのメモリ依存性を決定するように構成されたメモリ依存性検出器であって、前記記憶インストラクションはソースレジスタ識別子(ID)及び記憶アドレスの識別情報を含み、前記ロードインストラクションはソースアドレスの識別情報及び行先レジスタIDを含む、メモリ依存性検出器と、
前記記憶インストラクションのソースレジスタIDに再ネームレジスタIDをマップするレジスタ再ネームユニットであって、
前記決定されたメモリ依存性の指示を受け取り且つ前記ロードインストラクションをゼロサイクルロード動作へ変換するための資格付け条件が満足されたと決定するのに応答して、
前記再ネームレジスタIDを前記ロードインストラクションの前記行先レジスタIDにマップし、及び
前記ロードインストラクションが前記ロードインストラクションのソースアドレスに関連したデータを読み取るのを防止する、
ように構成されたレジスタ再ネームユニットと、
を備えたプロセッサ。 - 前記ロードインストラクションが前記ソースアドレスに関連したデータを読み取るのを防止するために、前記レジスタ再ネームユニットは、メモリ依存性が決定されること、及びメモリ依存性が正しいと検証されること、の少なくとも一方の後、前記ロードインストラクションは完了されるように指示される、請求項1に記載のプロセッサ。
- 前記再ネームレジスタIDを前記ロードインストラクションの行先レジスタIDにマップするのに応答して、前記再ネームレジスタは、前記再ネームレジスタIDが1つより多いレジスタにマップされることを示す前記再ネームレジスタIDに関連した複写カウントを記憶するように構成される、請求項2に記載のプロセッサ。
- 前記資格付け条件が満足されたと決定することは、少なくとも、
前記記憶インストラクションのソースアドレスに関連するデータを修正する前記記憶インストラクションと前記ロードインストラクションとの間の介在するインストラクションがないこと、
を決定することを含む、請求項3に記載のプロセッサ。 - 前記レジスタ再ネームユニットは、更に、
行先オペランドレジスタIDが前記再ネームレジスタIDに指定されたインストラクションをコミットする準備ができたことを検出し、及び
前記再ネームレジスタIDが複写されたことを決定するのに応答して前記再ネームレジスタIDがフリーリストへ返送されるのを防止する、
ように構成された、請求項3に記載のプロセッサ。 - 前記インストラクションは、前記ロードインストラクション、前記記憶インストラクション、及びプログラム順序で前記ロードインストラクションと前記記憶インストラクションとの間にあるインストラクション、のうちの少なくとも1つである、請求項5に記載のプロセッサ。
- 前記レジスタ再ネームユニットは、更に、再ネームレジスタIDに現在マップされていないアーキテクチャー的レジスタIDが再ネームレジスタIDへマップされるたびに複写カウントをインクリメントするように構成された、請求項5に記載のプロセッサ。
- 前記プロセッサは、更に、前記メモリ依存性が正しくないとの決定に応答して、前記ロードインストラクション、及びプログラム順序で前記ロードインストラクションより若いプログラムインストラクションを再生するように構成されたロード/記憶ユニットを備えた、請求項5に記載のプロセッサ。
- 前記プロセッサは、更に、前記記憶インストラクションのソースオペランドに関連したデータを、前記ロードインストラクションより(プログラム順序で)若く且つそれに依存するインストラクションへ転送するように構成された物理的レジスタファイルを備えた、請求項5に記載のプロセッサ。
- 所与の記憶インストラクションに対する所与のロードインストラクションのメモリ依存性を検出する段階であって、前記記憶インストラクションはソースレジスタ識別子(ID)及び記憶アドレスの識別情報を含み、前記ロードインストラクションはソースアドレスの識別情報及び行先レジスタIDを含む、段階と、
前記記憶インストラクションのソースレジスタIDに再ネームレジスタIDをマップする段階と、
前記メモリ依存性の指示を受け取り且つ前記ロードインストラクションをゼロサイクルロード動作へ変換するための資格付け条件が満足されたと決定するのに応答して、
前記再ネームレジスタ識別子を前記ロードインストラクションの行先レジスタIDにマップする段階と、及び
前記ロードインストラクションが前記ロードインストラクションのソースアドレスに関連したデータを読み取るのを防止する段階と、
を含む方法。 - 前記ロードインストラクションがソースアドレスに関連したデータを読み取るのを防止するために、前記方法は、メモリ依存性が決定されること、及びメモリ依存性が正しいと検証されること、の少なくとも一方の後に、前記ロードインストラクションを完了すべきであると指示する段階を含む、請求項10に記載の方法。
- 前記再ネームレジスタIDをロードインストラクションの行先レジスタIDにマップするのに応答して、前記方法は、更に、前記再ネームレジスタIDが1つより多いレジスタにマップされることを示す前記再ネームレジスタIDに関連した複写カウントを記憶する段階を含む、請求項11に記載の方法。
- 前記資格付け条件が満足されたと決定することは、少なくとも、
前記記憶インストラクションの行先アドレスに関連するデータを修正する前記記憶インストラクションと前記ロードインストラクションとの間に介在するインストラクションがないこと、を決定することを含む、請求項12に記載の方法。 - 前記ロードインストラクションより(プログラム順序で)若く且つそれに依存するインストラクションを前記ロードインストラクションと共に発行する段階を更に含む、請求項13に記載の方法。
- メモリ依存性を決定するために、前記方法は、少なくとも、前記記憶インストラクション及び前記ロードインストラクションがアドレスオペランドベースレジスタID及びアドレスオペランド即時値に対して一致する値を有することを決定する段階を更に含む、請求項14に記載の方法。
- 介在するインストラクションが前記記憶インストラクションのアドレスオペランドベースレジスタを即時値更新で変更することを決定するのに応答して、前記方法は、更に、前記ロードインストラクションとのメモリ依存性を決定する前に、前記所与の記憶インストラクションに対するアドレスオペランド即時値の記憶値を調整する段階を含む、請求項15に記載の方法。
- 前記再ネームレジスタIDにマップされた行先レジスタIDを有するインストラクションをコミットする準備ができたことを検出し、及び
前記再ネームレジスタIDが1つより多いレジスタにマップされるとの決定に応答して前記再ネームレジスタIDがフリーリストに返送されるのを防止する、
段階を更に含む請求項13に記載の方法。 - 前記再ネームレジスタIDに現在マップされていないアーキテクチャー的レジスタIDが前記再ネームレジスタIDへマップされるたびに前記複写カウントをインクリメントする段階を更に含む、請求項17に記載の方法。
- デコードされたインストラクションを受け取るように構成された第1インターフェイスであって、前記デコードされたインストラクションはロードインストラクション及び記憶インストラクションを含み、前記記憶インストラクションはソースレジスタ識別子(ID)及び記憶アドレスの識別情報を含み、前記ロードインストラクションはソースアドレスの識別情報及び行先レジスタIDを含む、第1インターフェイスと、
インストラクションをスケジューラへディスパッチするように構成されたディスパッチユニットへの第2インターフェイスと、
前記記憶インストラクションのソースレジスタIDに再ネームレジスタIDをマップし、
前記記憶インストラクションに対する前記ロードインストラクションのメモリ依存性の指示を受け取り且つ前記ロードインストラクションをゼロサイクルロード動作へ変換するための資格付け条件が満足されたと決定するのに応答して、
前記再ネームレジスタIDを前記ロードインストラクションの行先レジスタIDにマップし、及び
前記ロードインストラクションが前記ロードインストラクションのソースアドレスに関連したデータを読み取るのを防止する、
ように構成されたゼロサイクルロードロジックと、
を備えたレジスタ再ネームユニット。 - 前記資格付け条件が満足されたと決定することは、少なくとも、
前記記憶インストラクションのソースアドレスに関連するデータを修正する前記記憶インストラクションと前記ロードインストラクションとの間に介在するインストラクションがないこと、及び
を決定することを含む、請求項19に記載のレジスタ再ネームユニット。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/517,865 | 2012-06-14 | ||
US13/517,865 US9996348B2 (en) | 2012-06-14 | 2012-06-14 | Zero cycle load |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014002735A JP2014002735A (ja) | 2014-01-09 |
JP5894120B2 true JP5894120B2 (ja) | 2016-03-23 |
Family
ID=48607065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013125333A Active JP5894120B2 (ja) | 2012-06-14 | 2013-06-14 | ゼロサイクルロード |
Country Status (8)
Country | Link |
---|---|
US (1) | US9996348B2 (ja) |
EP (1) | EP2674856B1 (ja) |
JP (1) | JP5894120B2 (ja) |
KR (1) | KR101497807B1 (ja) |
CN (1) | CN103514009B (ja) |
BR (1) | BR102013014996B1 (ja) |
TW (1) | TWI537824B (ja) |
WO (1) | WO2013188120A2 (ja) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2011018B1 (en) | 2006-04-12 | 2016-07-13 | Soft Machines, Inc. | Apparatus and method for processing an instruction matrix specifying parallel and dependent operations |
EP2122461A4 (en) | 2006-11-14 | 2010-03-24 | Soft Machines Inc | DEVICE AND METHOD FOR PROCESSING COMMUNICATIONS IN A MULTITHREAD ARCHITECTURE WITH CONTEXT CHANGES |
CN103250131B (zh) | 2010-09-17 | 2015-12-16 | 索夫特机械公司 | 包括用于早期远分支预测的影子缓存的单周期多分支预测 |
US9274793B2 (en) | 2011-03-25 | 2016-03-01 | Soft Machines, Inc. | Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines |
KR101639853B1 (ko) | 2011-05-20 | 2016-07-14 | 소프트 머신즈, 인크. | 복수의 엔진에 의해 명령어 시퀀스들의 실행을 지원하기 위한 자원들 및 상호접속 구조들의 비집중 할당 |
EP2783281B1 (en) | 2011-11-22 | 2020-05-13 | Intel Corporation | A microprocessor accelerated code optimizer |
US9047092B2 (en) * | 2012-12-21 | 2015-06-02 | Arm Limited | Resource management within a load store unit |
US9904625B2 (en) | 2013-03-15 | 2018-02-27 | Intel Corporation | Methods, systems and apparatus for predicting the way of a set associative cache |
US10140138B2 (en) | 2013-03-15 | 2018-11-27 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
US9569216B2 (en) | 2013-03-15 | 2017-02-14 | Soft Machines, Inc. | Method for populating a source view data structure by using register template snapshots |
WO2014151043A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for emulating a guest centralized flag architecture by using a native distributed flag architecture |
US9811342B2 (en) | 2013-03-15 | 2017-11-07 | Intel Corporation | Method for performing dual dispatch of blocks and half blocks |
WO2014150806A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for populating register view data structure by using register template snapshots |
WO2014150991A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for implementing a reduced size register view data structure in a microprocessor |
US10275255B2 (en) | 2013-03-15 | 2019-04-30 | Intel Corporation | Method for dependency broadcasting through a source organized source view data structure |
US9311084B2 (en) * | 2013-07-31 | 2016-04-12 | Apple Inc. | RDA checkpoint optimization |
US9940229B2 (en) * | 2013-12-17 | 2018-04-10 | Intel Corporation | Technologies for persistent memory programming |
US11068271B2 (en) | 2014-07-28 | 2021-07-20 | Apple Inc. | Zero cycle move using free list counts |
CN106648546A (zh) * | 2016-09-07 | 2017-05-10 | 北京大学 | 用于gpu寄存器分配和并行度管理的协同优化编译方法 |
US11175923B2 (en) * | 2017-02-13 | 2021-11-16 | International Business Machines Corporation | Comparing load instruction address fields to store instruction address fields in a table to delay issuing dependent load instructions |
US10261791B2 (en) * | 2017-02-24 | 2019-04-16 | International Business Machines Corporation | Bypassing memory access for a load instruction using instruction address mapping |
US10838729B1 (en) * | 2018-03-21 | 2020-11-17 | Apple Inc. | System and method for predicting memory dependence when a source register of a push instruction matches the destination register of a pop instruction |
CN108614736B (zh) * | 2018-04-13 | 2021-03-02 | 杭州中天微系统有限公司 | 实现资源索引替换的装置及处理器 |
US11593117B2 (en) * | 2018-06-29 | 2023-02-28 | Qualcomm Incorporated | Combining load or store instructions |
GB2577502B (en) * | 2018-09-26 | 2021-09-08 | Advanced Risc Mach Ltd | An apparatus and method for processing instructions |
CN111258653B (zh) * | 2018-11-30 | 2022-05-24 | 上海寒武纪信息科技有限公司 | 原子访存方法、存储介质、计算机设备、装置和系统 |
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 |
US11294683B2 (en) * | 2020-03-30 | 2022-04-05 | SiFive, Inc. | Duplicate detection for register renaming |
US11966328B2 (en) * | 2020-12-18 | 2024-04-23 | Advanced Micro Devices, Inc. | Near-memory determination of registers |
US11900118B1 (en) * | 2022-08-05 | 2024-02-13 | Apple Inc. | Stack pointer instruction buffer for zero-cycle loads |
US20240103864A1 (en) * | 2022-09-15 | 2024-03-28 | Ventana Micro Systems Inc. | Microprocessor including a decode unit that performs pre-execution of load constant micro-operations |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3852432T2 (de) | 1987-07-01 | 1995-07-13 | Ibm | Befehlssteuerungsvorrichtung für ein Computersystem. |
EP0636256B1 (en) | 1992-03-31 | 1997-06-04 | Seiko Epson Corporation | Superscalar risc processor instruction scheduling |
US5799179A (en) | 1995-01-24 | 1998-08-25 | International Business Machines Corporation | Handling of exceptions in speculative instructions |
US5751983A (en) | 1995-10-03 | 1998-05-12 | Abramson; Jeffrey M. | Out-of-order processor with a memory subsystem which handles speculatively dispatched load operations |
US5926646A (en) | 1997-09-11 | 1999-07-20 | Advanced Micro Devices, Inc. | Context-dependent memory-mapped registers for transparent expansion of a register file |
US6065103A (en) | 1997-12-16 | 2000-05-16 | Advanced Micro Devices, Inc. | Speculative store buffer |
US6122725A (en) | 1998-03-31 | 2000-09-19 | Intel Corporation | Executing partial-width packed data instructions |
US6094716A (en) * | 1998-07-14 | 2000-07-25 | Advanced Micro Devices, Inc. | Register renaming in which moves are accomplished by swapping rename tags |
US6122656A (en) * | 1998-07-31 | 2000-09-19 | Advanced Micro Devices, Inc. | Processor configured to map logical register numbers to physical register numbers using virtual register numbers |
JP3497087B2 (ja) | 1998-12-17 | 2004-02-16 | 富士通株式会社 | 命令制御装置及びその方法 |
EP1050806A1 (en) | 1999-05-03 | 2000-11-08 | STMicroelectronics SA | Memory access address comparison |
US6505293B1 (en) * | 1999-07-07 | 2003-01-07 | Intel Corporation | Register renaming to optimize identical register values |
US6662280B1 (en) | 1999-11-10 | 2003-12-09 | Advanced Micro Devices, Inc. | Store buffer which forwards data based on index and optional way match |
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 |
US7165167B2 (en) | 2003-06-10 | 2007-01-16 | Advanced Micro Devices, Inc. | Load store unit with replay mechanism |
US7111126B2 (en) | 2003-09-24 | 2006-09-19 | Arm Limited | Apparatus and method for loading data values |
KR20070019750A (ko) * | 2004-05-05 | 2007-02-15 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | 로드 동작의 투기적인 결과들을 레지스터 값들에 연결하는메모리 파일을 유효화하기 위한 시스템 및 그 방법 |
US7263600B2 (en) | 2004-05-05 | 2007-08-28 | Advanced Micro Devices, Inc. | System and method for validating a memory file that links speculative results of load operations to register values |
FR2873466A1 (fr) | 2004-07-21 | 2006-01-27 | St Microelectronics Sa | Procede de programmation d'un controleur de dma dans un systeme sur puce et systeme sur puce associe |
US8612944B2 (en) | 2008-04-17 | 2013-12-17 | Qualcomm Incorporated | Code evaluation for in-order processing |
US8533438B2 (en) | 2009-08-12 | 2013-09-10 | Via Technologies, Inc. | Store-to-load forwarding based on load/store address computation source information comparisons |
US8631225B2 (en) | 2010-06-25 | 2014-01-14 | International Business Machines Corporation | Dynamically rewriting branch instructions to directly target an instruction cache location |
-
2012
- 2012-06-14 US US13/517,865 patent/US9996348B2/en active Active
-
2013
- 2013-05-30 WO PCT/US2013/043318 patent/WO2013188120A2/en active Application Filing
- 2013-06-04 EP EP13170357.1A patent/EP2674856B1/en active Active
- 2013-06-13 TW TW102120951A patent/TWI537824B/zh active
- 2013-06-13 KR KR1020130068008A patent/KR101497807B1/ko active IP Right Grant
- 2013-06-14 CN CN201310236291.XA patent/CN103514009B/zh active Active
- 2013-06-14 JP JP2013125333A patent/JP5894120B2/ja active Active
- 2013-06-14 BR BR102013014996-9A patent/BR102013014996B1/pt active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
WO2013188120A3 (en) | 2014-03-06 |
US9996348B2 (en) | 2018-06-12 |
EP2674856A2 (en) | 2013-12-18 |
US20130339671A1 (en) | 2013-12-19 |
CN103514009B (zh) | 2019-10-08 |
EP2674856A3 (en) | 2014-07-23 |
WO2013188120A2 (en) | 2013-12-19 |
TW201411485A (zh) | 2014-03-16 |
BR102013014996B1 (pt) | 2020-12-08 |
BR102013014996A2 (pt) | 2015-08-11 |
TWI537824B (zh) | 2016-06-11 |
CN103514009A (zh) | 2014-01-15 |
JP2014002735A (ja) | 2014-01-09 |
KR101497807B1 (ko) | 2015-03-02 |
KR20130140582A (ko) | 2013-12-24 |
EP2674856B1 (en) | 2019-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5894120B2 (ja) | ゼロサイクルロード | |
US10963248B2 (en) | Handling effective address synonyms in a load-store unit that operates without address translation | |
US9311084B2 (en) | RDA checkpoint optimization | |
US9575754B2 (en) | Zero cycle move | |
US9690625B2 (en) | System and method for out-of-order resource allocation and deallocation in a threaded machine | |
US8429636B2 (en) | Handling dependency conditions between machine instructions | |
US10776113B2 (en) | Executing load-store operations without address translation hardware per load-store unit port | |
US9213551B2 (en) | Return address prediction in multithreaded processors | |
US9122487B2 (en) | System and method for balancing instruction loads between multiple execution units using assignment history | |
US10338928B2 (en) | Utilizing a stack head register with a call return stack for each instruction fetch | |
US8335912B2 (en) | Logical map table for detecting dependency conditions between instructions having varying width operand values | |
US20100274961A1 (en) | Physically-indexed logical map table | |
US11907369B2 (en) | Processor that mitigates side channel attacks by preventing cache memory state from being affected by a missing load operation by inhibiting or canceling a fill request of the load operation if an older load generates a need for an architectural exception | |
US10606593B2 (en) | Effective address based load store unit in out of order processors | |
US20110276760A1 (en) | Non-committing store instructions | |
US11068271B2 (en) | Zero cycle move using free list counts | |
US20130024647A1 (en) | Cache backed vector registers | |
US20190108033A1 (en) | Load-store unit with partitioned reorder queues with single cam port | |
US10838729B1 (en) | System and method for predicting memory dependence when a source register of a push instruction matches the destination register of a pop instruction | |
US20130138888A1 (en) | Storing a target address of a control transfer instruction in an instruction field |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20141010 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20141020 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150120 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150701 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150929 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20151207 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151218 |
|
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: 20160201 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160225 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5894120 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 |