JP2014002735A - ゼロサイクルロード - Google Patents
ゼロサイクルロード Download PDFInfo
- Publication number
- JP2014002735A JP2014002735A JP2013125333A JP2013125333A JP2014002735A JP 2014002735 A JP2014002735 A JP 2014002735A JP 2013125333 A JP2013125333 A JP 2013125333A JP 2013125333 A JP2013125333 A JP 2013125333A JP 2014002735 A JP2014002735 A JP 2014002735A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- given
- memory
- load instruction
- 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
- 230000015654 memory Effects 0.000 claims abstract description 98
- 238000000034 method Methods 0.000 claims abstract description 35
- 230000001419 dependent effect Effects 0.000 claims abstract description 9
- 230000004044 response Effects 0.000 claims description 24
- 230000008859 change Effects 0.000 claims description 13
- 238000012797 qualification Methods 0.000 claims description 7
- 238000012546 transfer Methods 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 abstract description 2
- 238000013507 mapping Methods 0.000 description 20
- 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
- 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 or 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 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/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 or 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
【解決手段】プロセッサ内のレジスタ再ネームユニットは、デコードされたロードインストラクションがゼロサイクルロード動作へ変換する資格があるかどうか決定する。もしそうであれば、コントロールロジックは、古い依存の記憶インストラクションのソースオペランドに関連した物理的レジスタ識別子をロードインストラクションの行先オペランドに指定する。更に、レジスタ再ネームユニットは、ロードインストラクションがメモリから記憶インストラクションのソースオペランドに関連したデータを読み取るのを防止するようにロードインストラクションをマークする。複写再ネーミングのために、このデータは、物理的レジスタファイルから、ロードインストラクションより若く且つそれに依存するインストラクションへ転送される。
【選択図】図2
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に指定し、及び
前記所与のロードインストラクションがメモリからソースオペランドに関連したデータを読み取るのを防止する、
ように構成されたレジスタ再ネームユニットと、
を備えたプロセッサ。 - 前記所与のロードインストラクションがメモリからソースオペランドに関連したデータを読み取るのを防止するために、前記レジスタ再ネームユニットは、メモリ依存性が決定されること、及びメモリ依存性が正しいと検証されること、の少なくとも一方の後、所与のロードインストラクションを完了すべきであることを指示するように構成された、請求項1に記載のプロセッサ。
- 前記再ネームレジスタIDを所与のロードインストラクションの行先オペランドレジスタIDに指定するのに応答して、前記レジスタ再ネームユニットは、更に、前記再ネームレジスタIDに関連した複写カウントを記憶するように構成される、請求項2に記載のプロセッサ。
- 前記資格付け条件が満足されたと決定することは、少なくとも、
プログラム順序で前記所与の記憶インストラクションと所与のロードインストラクションとの間のインストラクションが、前記所与の記憶インストラクションのソースオペランドレジスタIDに等しい行先オペランドレジスタIDを有すること、及び
前記所与の記憶インストラクションがまだリタイアしていないこと、
を決定することを含む、請求項3に記載のプロセッサ。 - 前記レジスタ再ネームユニットは、更に、
行先オペランドレジスタIDがレジスタ再ネームIDに指定されたインストラクションをコミットする準備ができたことを検出し、及び
前記再ネームレジスタIDが複写されたことを決定するのに応答して前記再ネームレジスタIDがフリーリストへ返送されるのを防止する、
ように構成された、請求項3に記載のプロセッサ。 - 前記インストラクションは、所与のロードインストラクション、所与の記憶インストラクション、及びプログラム順序で所与のロードインストラクションと所与の記憶インストラクションとの間にあるインストラクション、のうちの少なくとも1つである、請求項5に記載のプロセッサ。
- 前記レジスタ再ネームユニットは、更に、再ネームレジスタIDに現在マップされていないアーキテクチャー的レジスタIDが再ネームレジスタIDへマップされるたびに複写カウントをインクリメントするように構成された、請求項5に記載のプロセッサ。
- 前記プロセッサは、更に、前記メモリ依存性が正しくないとの決定に応答して、前記所与のロードインストラクション、及びプログラム順序で前記所与のロードインストラクションより若いプログラムインストラクションを再生するように構成されたロード/記憶ユニットを備えた、請求項5に記載のプロセッサ。
- 前記プロセッサは、更に、前記所与の記憶インストラクションのソースオペランドに関連したデータを、前記所与のロードインストラクションより(プログラム順序で)若く且つそれに依存するインストラクションへ転送するように構成された物理的レジスタファイルを備えた、請求項5に記載のプロセッサ。
- 所与の記憶インストラクションに対する所与のロードインストラクションのメモリ依存性を決定し、
前記メモリ依存性の指示を受け取り且つ資格付け条件が満足されたと決定するのに応答して、
前記所与の記憶インストラクションのソースオペランドレジスタIDに関連した再ネームレジスタ識別子(ID)を前記所与のロードインストラクションの行先オペランドレジスタIDに指定し、及び
前記所与のロードインストラクションがメモリからソースオペランドに関連したデータを読み取るのを防止する、
段階を含む方法。 - 前記所与のロードインストラクションがメモリからソースオペランドに関連したデータを読み取るのを防止するために、前記方法は、メモリ依存性が決定されること、及びメモリ依存性が正しいと検証されること、の少なくとも一方の後に、所与のロードインストラクションを完了すべきであると指示する段階を含む、請求項10に記載の方法。
- 前記再ネームレジスタIDを所与のロードインストラクションの行先オペランドレジスタIDに指定するのに応答して、前記方法は、更に、前記再ネームレジスタIDに関連した複写カウントを記憶する段階を含む、請求項11に記載の方法。
- 前記資格付け条件が満足されたと決定することは、少なくとも、
前記所与の記憶インストラクションと所与のロードインストラクションとの間に介在するインストラクションが、前記所与の記憶インストラクションのソースオペランドレジスタIDに等しい行先オペランドレジスタIDを有すること、及び
前記所与の記憶インストラクションがまだリタイアしていないこと、
を決定することを含む、請求項12に記載の方法。 - 前記所与のロードインストラクションより(プログラム順序で)若く且つそれに依存するインストラクションを前記所与のロードインストラクションと共に発行する段階を更に含む、請求項13に記載の方法。
- メモリ依存性を決定するために、前記方法は、少なくとも、前記所与の記憶インストラクション及び所与のロードインストラクションがアドレスオペランドベースレジスタID及びアドレスオペランド即時値に対して一致する値を有することを決定する段階を更に含む、請求項14に記載の方法。
- 介在するインストラクションが前記所与の記憶インストラクションのアドレスオペランドベースレジスタを即時値更新で変更することを決定するのに応答して、前記方法は、更に、前記所与のロードインストラクションとのメモリ依存性を決定する前に、前記所与の記憶インストラクションに対するアドレスオペランド即時値の記憶値を調整する段階を含む、請求項15に記載の方法。
- インストラクションをコミットする準備ができたことを検出し、インストラクションの行先オペランドレジスタIDがレジスタ再ネームIDに指定され、及び
前記再ネームレジスタIDが複写されるとの決定に応答して前記再ネームレジスタIDがフリーリストに返送されるのを防止する、
段階を更に含む請求項13に記載の方法。 - 前記再ネームレジスタIDに現在マップされていない所与のアーキテクチャー的レジスタIDが前記再ネームレジスタIDへマップされるたびに前記複写カウントをインクリメントする段階を更に含む、請求項17に記載の方法。
- デコードされたインストラクションを受け取るように構成された第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 true JP2014002735A (ja) | 2014-01-09 |
JP5894120B2 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 |
---|---|---|---|---|
US8327115B2 (en) | 2006-04-12 | 2012-12-04 | Soft Machines, Inc. | Plural matrices of execution units for processing matrices of row dependent instructions in single clock cycle in super or separate mode |
EP2527972A3 (en) | 2006-11-14 | 2014-08-06 | Soft Machines, Inc. | Apparatus and method for processing complex instruction formats in a multi- threaded architecture supporting various context switch modes and virtualization schemes |
KR101685247B1 (ko) | 2010-09-17 | 2016-12-09 | 소프트 머신즈, 인크. | 조기 원거리 분기 예측을 위한 섀도우 캐시를 포함하는 단일 사이클 다중 분기 예측 |
EP2689326B1 (en) | 2011-03-25 | 2022-11-16 | Intel Corporation | Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines |
TWI603198B (zh) | 2011-05-20 | 2017-10-21 | 英特爾股份有限公司 | 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行 |
WO2013077876A1 (en) | 2011-11-22 | 2013-05-30 | Soft Machines, Inc. | A microprocessor accelerated code optimizer |
US9047092B2 (en) * | 2012-12-21 | 2015-06-02 | Arm Limited | Resource management within a load store unit |
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 |
CN105247484B (zh) | 2013-03-15 | 2021-02-23 | 英特尔公司 | 利用本地分布式标志体系架构来仿真访客集中式标志体系架构的方法 |
WO2014150806A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for populating register view data structure by using register template snapshots |
US9904625B2 (en) | 2013-03-15 | 2018-02-27 | Intel Corporation | Methods, systems and apparatus for predicting the way of a set associative cache |
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 |
US9811342B2 (en) | 2013-03-15 | 2017-11-07 | Intel Corporation | Method for performing dual dispatch of blocks and half blocks |
US9569216B2 (en) | 2013-03-15 | 2017-02-14 | Soft Machines, Inc. | Method for populating a source view data structure by using register template snapshots |
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 |
US12001843B2 (en) * | 2022-09-15 | 2024-06-04 | Ventana Micro Systems Inc. | Microprocessor including a decode unit that performs pre-execution of load constant micro-operations |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6065103A (en) * | 1997-12-16 | 2000-05-16 | Advanced Micro Devices, Inc. | Speculative store buffer |
JP2000181715A (ja) * | 1998-12-17 | 2000-06-30 | Fujitsu Ltd | 命令制御装置及びその方法 |
JP2005532613A (ja) * | 2002-04-30 | 2005-10-27 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | ロード操作の推測結果をレジスタ値にリンクするためのシステムおよび方法 |
JP2007503661A (ja) * | 2003-06-10 | 2007-02-22 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | リプレイ機構を備えた読み出し/書き込みユニット |
JP2007536626A (ja) * | 2004-05-05 | 2007-12-13 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | ロードオペレーションの投機的な結果をレジスタ値にリンクするメモリファイルを検証するためのシステムおよび方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3852432T2 (de) | 1987-07-01 | 1995-07-13 | Ibm | Befehlssteuerungsvorrichtung für ein Computersystem. |
DE69311330T2 (de) | 1992-03-31 | 1997-09-25 | Seiko Epson Corp., Tokio/Tokyo | Befehlsablauffolgeplanung von einem risc-superskalarprozessor |
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 |
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 |
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 |
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 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | 로드 동작의 투기적인 결과들을 레지스터 값들에 연결하는메모리 파일을 유효화하기 위한 시스템 및 그 방법 |
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 JP JP2013125333A patent/JP5894120B2/ja active Active
- 2013-06-14 CN CN201310236291.XA patent/CN103514009B/zh active Active
- 2013-06-14 BR BR102013014996-9A patent/BR102013014996B1/pt active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6065103A (en) * | 1997-12-16 | 2000-05-16 | Advanced Micro Devices, Inc. | Speculative store buffer |
JP2000181715A (ja) * | 1998-12-17 | 2000-06-30 | Fujitsu Ltd | 命令制御装置及びその方法 |
JP2005532613A (ja) * | 2002-04-30 | 2005-10-27 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | ロード操作の推測結果をレジスタ値にリンクするためのシステムおよび方法 |
JP2007503661A (ja) * | 2003-06-10 | 2007-02-22 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | リプレイ機構を備えた読み出し/書き込みユニット |
JP2007536626A (ja) * | 2004-05-05 | 2007-12-13 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | ロードオペレーションの投機的な結果をレジスタ値にリンクするメモリファイルを検証するためのシステムおよび方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103514009A (zh) | 2014-01-15 |
TW201411485A (zh) | 2014-03-16 |
EP2674856A3 (en) | 2014-07-23 |
EP2674856B1 (en) | 2019-08-21 |
KR20130140582A (ko) | 2013-12-24 |
BR102013014996B1 (pt) | 2020-12-08 |
JP5894120B2 (ja) | 2016-03-23 |
BR102013014996A2 (pt) | 2015-08-11 |
WO2013188120A2 (en) | 2013-12-19 |
KR101497807B1 (ko) | 2015-03-02 |
WO2013188120A3 (en) | 2014-03-06 |
US20130339671A1 (en) | 2013-12-19 |
EP2674856A2 (en) | 2013-12-18 |
US9996348B2 (en) | 2018-06-12 |
CN103514009B (zh) | 2019-10-08 |
TWI537824B (zh) | 2016-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5894120B2 (ja) | ゼロサイクルロード | |
US10776113B2 (en) | Executing load-store operations without address translation hardware per load-store unit port | |
US10963248B2 (en) | Handling effective address synonyms in a load-store unit that operates without address translation | |
US9311084B2 (en) | RDA checkpoint optimization | |
US9690625B2 (en) | System and method for out-of-order resource allocation and deallocation in a threaded machine | |
US7711935B2 (en) | Universal branch identifier for invalidation of speculative instructions | |
US9213551B2 (en) | Return address prediction in multithreaded processors | |
US8429636B2 (en) | Handling dependency conditions between machine instructions | |
US9122487B2 (en) | System and method for balancing instruction loads between multiple execution units using assignment history | |
US9575754B2 (en) | Zero cycle move | |
US8335912B2 (en) | Logical map table for detecting dependency conditions between instructions having varying width operand values | |
US10338928B2 (en) | Utilizing a stack head register with a call return stack for each instruction fetch | |
US20100274961A1 (en) | Physically-indexed logical map table | |
US20100332806A1 (en) | Dependency matrix for the determination of load dependencies | |
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 | |
US10310859B2 (en) | System and method of speculative parallel execution of cache line unaligned load instructions | |
US20110276760A1 (en) | Non-committing store instructions | |
US20130024647A1 (en) | Cache backed vector registers | |
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 | |
US20160026463A1 (en) | Zero cycle move using free list counts | |
US20130138888A1 (en) | Storing a target address of a control transfer instruction in an instruction field | |
US11625479B2 (en) | Virtually-tagged data cache memory that uses translation context to make entries allocated during execution under one translation context inaccessible during execution under another translation context | |
US8504805B2 (en) | Processor operating mode for mitigating dependency conditions between instructions having different operand sizes |
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 |