JP2000515276A - スーパースカラマイクロプロセッサのための非ブロッキングロードを実現するロード/ストアユニットおよびロード/ストアバッファから非ブロッキング的にロードを選択する方法 - Google Patents
スーパースカラマイクロプロセッサのための非ブロッキングロードを実現するロード/ストアユニットおよびロード/ストアバッファから非ブロッキング的にロードを選択する方法Info
- Publication number
- JP2000515276A JP2000515276A JP10505959A JP50595998A JP2000515276A JP 2000515276 A JP2000515276 A JP 2000515276A JP 10505959 A JP10505959 A JP 10505959A JP 50595998 A JP50595998 A JP 50595998A JP 2000515276 A JP2000515276 A JP 2000515276A
- Authority
- JP
- Japan
- Prior art keywords
- load
- store
- memory
- buffer
- memory operation
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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)
- Software Systems (AREA)
- Theoretical Computer Science (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
Claims (1)
- 【特許請求の範囲】 1.スーパースカラマイクロプロセッサにおける非ブロッキングのロードメモリ 動作を実現するためのロード/ストアユニットであって、 未決のメモリ動作に関する情報を記憶するように構成される複数の記憶ロケー ションを含むバッファを含み、前記バッファはさらに、前記情報を受取るように 構成される入力ポートを含み、前記バッファはさらに、データキャッシュにデー タアクセスコマンドを伝えるよう構成されるデータキャッシュポートを含み、前 記複数の記憶ロケーションの各々はミスビットを備えるよう構成されており、前 記ミスビットは、前記メモリ動作が前記データキャッシュにアクセスし前記デー タキャッシュをミスするクロックサイクルの間セットされるよう構成されており 、前記ロード/ストアユニットはさらに 前記バッファに結合される出力制御ユニットを含み、前記出力制御ユニットは 前記バッファ内の前記複数の記憶ロケーション内に記憶されるメモリ動作を選択 するよう構成されており、前記出力制御ユニットはさらに、前記動作に関連のあ るデータアクセスコマンドを前記データキャッシュへ与えるよう構成される、ロ ード/ストアユニット。 2.前記バッファはメモリ動作のための記憶ロケーションの線形アレイとして構 成される、請求項1に記載のロード/ストアユニット。 3.前記出力制御ユニットは固定優先順位方式に従って前記バッファから前記メ モリ動作を選択するよう構成される。請求項1に記載のロード/ストアユニット 。 4.前記出力制御ユニットは、 投機的ではないストアメモリ動作には高い優先順位が与えられ、 投機的ではなく、かつ前記データキャッシュへの以前のアクセスを介して前記 データキャッシュをミスすることが知られているメモリ動作には中間の優先順位 が与えられ、 以前に前記データキャッシュにアクセスしたことがないロードメモリ動作には 低い優先順位が与えられる 方式に従って、前記バッファから前記メモリ動作を選択するよう構成される、 請求項1に記載のロード/ストアユニット。 5.前記出力制御ユニットはリオーダバッファにより提供されるポインタを備え るよう構成され、前記ポインタは前記メモリ動作の投機的状態を示すよう構成さ れる、請求項4に記載のロード/ストアユニット。 6.前記出力制御ユニットはさらに、前記リオーダバッファにより提供される前 記ポインタにより投機的であることが示されている以前のロードメモリ動作が、 前記以前のメモリ動作と関連付けられた前記ミスビットがセットされているクロ ックサイクルの間、ロードメモリ動作を選択するよう構成される、請求項5に記 載のロード/ストアユニット。 7.前記複数の記憶ロケーションのうちの1つが前記入力ポートからメモリ動作 を受取る第2のクロックサイクルの間に、前記記憶ロケーションに記憶された前 記ミスビットがリセットされる、請求項1に記載のロード/ストアユニット。 8.前記複数の記憶ロケーションの各々に記憶される前記ミスビットは、前記デ ータキャッシュがメインメモリから転送される複数のバイトで更新される第2の クロックサイクルの間にリセットされる、請求項1に記載のロード/ストアユニ ット。 9.前記バッファは、投機的で、かつ関連付けられた前記ミスビットがセットさ れた状態のミスメモリ動作を、前記メモリ動作がメインメモリから前記データキ ャッシュへ複数のバイトを転送するのに選択されるクロックサイクルまで記憶す るよう構成される、請求項1に記載のロード/ストアユニット。 10.ロード/ストアバッファに記憶された第1のメモリ動作が投機的で、かつ データキャッシュをミスすることが知られているクロックサイクルの間に、前記 データキャッシュにアクセスするため、前記ロード/ストアバッファに記憶され る第2のメモリ動作を選択するための方法であって、 前記第1のメモリ動作を調べて前記第1のメモリ動作に関連付けされたミスビ ットがセットされていることを判定するステップと、 前記第1のメモリ動作と関連付けされた前記ミスビットがセットされているこ とを理由に前記第2のメモリ動作を選択するステップとを含む、方法。 11.前記第1のメモリ動作が前記データキャッシュにアクセスし、ミスするこ とがわかったクロックサイクルの間、前記第1のメモリ動作に関連のある前記ミ スビットをセットするステップをさらに含む、請求項10に記載の方法。 12.前記第1のメモリ動作が前記ロード/ストアバッファに記憶されるクロッ クサイクルの間に、前記第1のメモリ動作と関連のある前記ミスビットをリセッ トするステップをさらに含む、請求項10に記載の方法。 13.複数のバイトがメインメモリから前記データキャッシュへ転送されるクロ ックサイクルの間、前記第1のメモリ動作と関連のある前記ミスビットをリセッ トするステップをさらに含む、請求項10に記載の方法。 14.前記第1のメモリ動作が非投機的であることが示されかつ複数のバイトを メインメモリから前記データキャッシュへ転送するよう選択されるクロックサイ クルまで、前記第1のメモリ動作を前記ロード/ストアバッファ内に記憶するス テップをさらに含む、請求項10に記載の方法。 15.前記リセットするステップの後の第2のクロックサイクルの間、前記デー タキャッシュにアクセスするため前記第1のメモリ動作を選択するステップをさ らに含む、請求項13に記載の方法。 16.スーパースカラマイクロプロセッサにおける非ブロッキングロードメモリ 動作を実現するためのロード/ストアユニットであって、 複数の記憶ロケーションを含むバッファを含み、前記複数の記憶ロケーション の各々はミスビットを備えるよう構成され、前記ミスビットは、あるメモリ動作 がデータキャッシュにアクセスし前記データキャッシュをミスするクロックサイ クルの間、セットされるよう構成されており、前記ロード/ストアユニットはさ らに 前記バッファに結合される出力制御ユニットを含む、ロード/ストアユニット 。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/US1996/011844 WO1998002804A1 (en) | 1996-07-16 | 1996-07-16 | Load/store unit and method for non-blocking completion of loads in a superscalar microprocessor |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2000515276A true JP2000515276A (ja) | 2000-11-14 |
| JP3732234B2 JP3732234B2 (ja) | 2006-01-05 |
Family
ID=22255474
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP50595998A Expired - Fee Related JP3732234B2 (ja) | 1996-07-16 | 1996-07-16 | スーパースカラマイクロプロセッサのための非ブロッキングロードを実現するロード/ストアユニットおよびロード/ストアバッファから非ブロッキング的にロードを選択する方法 |
Country Status (4)
| Country | Link |
|---|---|
| EP (1) | EP1005672B1 (ja) |
| JP (1) | JP3732234B2 (ja) |
| DE (1) | DE69638271D1 (ja) |
| WO (1) | WO1998002804A1 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007207238A (ja) * | 2006-02-02 | 2007-08-16 | Internatl Business Mach Corp <Ibm> | 非同期式パイプラインのためのデータ・キャッシュ・ミスをアウト・オブ・オーダ方式で処理するための装置及び方法 |
| JP2015533442A (ja) * | 2012-11-02 | 2015-11-24 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | ストア再生ポリシー |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6662280B1 (en) * | 1999-11-10 | 2003-12-09 | Advanced Micro Devices, Inc. | Store buffer which forwards data based on index and optional way match |
| TWI646422B (zh) | 2012-06-15 | 2019-01-01 | 英特爾股份有限公司 | 在處理器中之免消歧義失序載入/儲存佇列方法、微處理器、和非暫態性電腦可讀取儲存媒體 |
| EP2862069A4 (en) | 2012-06-15 | 2016-12-28 | Soft Machines Inc | INSTRUCTION DEFINITION FOR IMPLEMENTING LOAD MEMORY TRANSFER AND OPTIMIZATION |
| CN104583957B (zh) | 2012-06-15 | 2018-08-10 | 英特尔公司 | 具有无消歧乱序加载存储队列的重新排序的推测性指令序列 |
| CN104823168B (zh) | 2012-06-15 | 2018-11-09 | 英特尔公司 | 用于实现从由加载存储重新排序和优化导致的推测性转发遗漏预测/错误中恢复的方法和系统 |
| CN107748673B (zh) | 2012-06-15 | 2022-03-25 | 英特尔公司 | 包括虚拟加载存储队列的处理器和系统 |
| EP2862062B1 (en) | 2012-06-15 | 2024-03-06 | Intel Corporation | A virtual load store queue having a dynamic dispatch window with a distributed structure |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5222223A (en) * | 1989-02-03 | 1993-06-22 | Digital Equipment Corporation | Method and apparatus for ordering and queueing multiple memory requests |
| US5185871A (en) * | 1989-12-26 | 1993-02-09 | International Business Machines Corporation | Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions |
| US5455924A (en) * | 1993-02-09 | 1995-10-03 | Intel Corporation | Apparatus and method for partial execution blocking of instructions following a data cache miss |
-
1996
- 1996-07-16 EP EP96925347A patent/EP1005672B1/en not_active Expired - Lifetime
- 1996-07-16 DE DE69638271T patent/DE69638271D1/de not_active Expired - Lifetime
- 1996-07-16 JP JP50595998A patent/JP3732234B2/ja not_active Expired - Fee Related
- 1996-07-16 WO PCT/US1996/011844 patent/WO1998002804A1/en not_active Ceased
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007207238A (ja) * | 2006-02-02 | 2007-08-16 | Internatl Business Mach Corp <Ibm> | 非同期式パイプラインのためのデータ・キャッシュ・ミスをアウト・オブ・オーダ方式で処理するための装置及び方法 |
| JP2015533442A (ja) * | 2012-11-02 | 2015-11-24 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | ストア再生ポリシー |
Also Published As
| Publication number | Publication date |
|---|---|
| EP1005672A1 (en) | 2000-06-07 |
| JP3732234B2 (ja) | 2006-01-05 |
| DE69638271D1 (de) | 2010-11-18 |
| EP1005672B1 (en) | 2010-10-06 |
| WO1998002804A1 (en) | 1998-01-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5802588A (en) | Load/store unit implementing non-blocking loads for a superscalar microprocessor and method of selecting loads in a non-blocking fashion from a load/store buffer | |
| US5761712A (en) | Data memory unit and method for storing data into a lockable cache in one clock cycle by previewing the tag array | |
| JP4699666B2 (ja) | インデックスおよび任意選択的ウェイ一致に基づいてデータをフォワードするストアバッファ | |
| JP3542021B2 (ja) | セット予測によりセット連想キャッシュの遅延を少なくする方法及び装置 | |
| US6151662A (en) | Data transaction typing for improved caching and prefetching characteristics | |
| US5944815A (en) | Microprocessor configured to execute a prefetch instruction including an access count field defining an expected number of access | |
| US5845323A (en) | Way prediction structure for predicting the way of a cache in which an access hits, thereby speeding cache access time | |
| US7213126B1 (en) | Method and processor including logic for storing traces within a trace cache | |
| US6321326B1 (en) | Prefetch instruction specifying destination functional unit and read/write access mode | |
| US5446850A (en) | Cross-cache-line compounding algorithm for scism processors | |
| US7257699B2 (en) | Selective execution of deferred instructions in a processor that supports speculative execution | |
| US6427192B1 (en) | Method and apparatus for caching victimized branch predictions | |
| EP0106667A2 (en) | Central processing unit | |
| KR19990072271A (ko) | 고성능의추론적인오정렬로드연산 | |
| US20070050592A1 (en) | Method and apparatus for accessing misaligned data streams | |
| US20030074530A1 (en) | Load/store unit with fast memory data access mechanism | |
| JP2003515214A (ja) | 計算を狭いオペランドで実施するための方法と装置 | |
| US5893146A (en) | Cache structure having a reduced tag comparison to enable data transfer from said cache | |
| US7293161B1 (en) | Deferring loads and stores when a load buffer or store buffer fills during execute-ahead mode | |
| JP3794918B2 (ja) | 復帰選択ビットを用いて分岐予測のタイプを分類する分岐予測 | |
| US7484080B2 (en) | Entering scout-mode when stores encountered during execute-ahead mode exceed the capacity of the store buffer | |
| JP3732234B2 (ja) | スーパースカラマイクロプロセッサのための非ブロッキングロードを実現するロード/ストアユニットおよびロード/ストアバッファから非ブロッキング的にロードを選択する方法 | |
| US6175909B1 (en) | Forwarding instruction byte blocks to parallel scanning units using instruction cache associated table storing scan block boundary information for faster alignment | |
| US20080282050A1 (en) | Methods and arrangements for controlling memory operations | |
| EP0912926B1 (en) | Unified load/store unit for a superscalar microprocessor and method of operating the same |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050201 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050428 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050620 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050729 |
|
| 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: 20050913 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051012 |
|
| 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: 20091021 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091021 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101021 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111021 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111021 Year of fee payment: 6 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
| S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111021 Year of fee payment: 6 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121021 Year of fee payment: 7 |
|
| LAPS | Cancellation because of no payment of annual fees |