JP6744423B2 - プロセッサベースシステム内のロード経路履歴に基づくアドレス予測テーブルを使用したロードアドレス予測の実現 - Google Patents
プロセッサベースシステム内のロード経路履歴に基づくアドレス予測テーブルを使用したロードアドレス予測の実現 Download PDFInfo
- Publication number
- JP6744423B2 JP6744423B2 JP2018550596A JP2018550596A JP6744423B2 JP 6744423 B2 JP6744423 B2 JP 6744423B2 JP 2018550596 A JP2018550596 A JP 2018550596A JP 2018550596 A JP2018550596 A JP 2018550596A JP 6744423 B2 JP6744423 B2 JP 6744423B2
- Authority
- JP
- Japan
- Prior art keywords
- load
- address prediction
- load address
- instruction
- address
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 17
- 238000004891 communication Methods 0.000 claims description 10
- 230000001413 cellular effect Effects 0.000 claims description 2
- 238000005457 optimization Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 10
- 230000001419 dependent effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000002411 adverse Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000006249 magnetic particle Substances 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000000246 remedial effect Effects 0.000 description 1
- 101150100657 rsef-1 gene Proteins 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000000007 visual effect Effects 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
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
-
- 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
- G06F9/3832—Value prediction for operands; operand history buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- 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
- 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
- G06F9/3848—Speculative instruction execution using hybrid branch prediction, e.g. selection between prediction techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/452—Instruction code
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)
Description
本出願は、その全体が参照により本明細書に組み込まれている、2016年3月31日に出願した「PROVIDING LOAD ADDRESS PREDICTIONS USING ADDRESS PREDICTION TABLES BASED ON LOAD PATH HISTORY IN PROCESSOR-BASED SYSTEMS」と題する米国特許出願第15/087,069号の優先権を主張するものである。
102 ロードアドレス予測エンジン
104 メモリインターフェース1
106 システムメモリ
108 命令キャッシュ
110 システムデータキャッシュ
112 実行パイプライン
114 フロントエンド命令パイプライン
116 バックエンド命令パイプライン
118 フェッチ/復号パイプラインステージ、ステージ
120 命令キューステージ、ステージ
122 リネームステージ、ステージ
124 レジスタアクセスステージ、ステージ
126 予約ステージ、ステージ
128 ディスパッチステージ、ステージ
130 実行ステージ、ステージ
132 レジスタファイル
134(0)〜134(X) レジスタ
136 アーキテクチャレジスタ
138 レジスタマップテーブル
140 ロードアドレス予測テーブル
142 矢印
144 矢印
146 双方向矢印
200 ロードアドレス予測テーブル
202(0)〜202(Y) ロードアドレス予測テーブルエントリ
204 予測器タグフィールド、フィールド
206 メモリアドレスフィールド、フィールド
208 信頼値フィールド、フィールド
210 信頼しきい値フィールド、フィールド
212 キャッシュウェイフィールド、フィールド
300 ロード命令
302 矢印
304 識別子
306 実メモリアドレス
308 テーブルインデックス
310 予測器タグ
312 ロード経路経歴
314 矢印
316 矢印
318 矢印
320 矢印
322 分岐方向履歴
324 矢印
326 矢印
328 分岐経路履歴
330 矢印
332 矢印
334 矢印
336 矢印
338 メモリアドレス
340 矢印
342 検索データ
344 矢印
346 プリフェッチデータ
348 矢印
350 矢印
352 矢印
500 プロセッサベースシステム
502 CPU
504 プロセッサ
506 キャッシュメモリ
508 システムバス
510 メモリコントローラ
512 メモリシステム
514 入力デバイス
516 出力デバイス
518 ネットワークインターフェースデバイス
520 ディスプレイコントローラ
522 ネットワーク
524(0)〜524(N) メモリユニット
526 ディスプレイ
528 ビデオプロセッサ
Claims (15)
- 各々が予測器タグフィールドとメモリアドレスフィールドとを備える、複数のロードアドレス予測テーブルエントリを記憶するように構成されたロードアドレス予測テーブルを備えた、プロセッサのロードアドレス予測エンジンであって、
ロード命令を受信し、
前記ロード命令に関する識別子およびロード経路履歴インジケータに基づいて、テーブルインデックスおよび予測器タグを生成し、
前記予測器タグが、前記複数のロードアドレス予測テーブルエントリのうちの、前記テーブルインデックスに対応する、ロードアドレス予測テーブルエントリの予測器タグフィールド内に存在するかどうかを判定し、
前記予測器タグが、前記複数のロードアドレス予測テーブルエントリのうちの、前記テーブルインデックスに対応する、前記ロードアドレス予測テーブルエントリの前記予測器タグフィールド内に存在するとの判定に応答して、前記ロード命令に関する予測されるメモリアドレスとして、前記ロードアドレス予測テーブルエントリのメモリアドレスフィールドからメモリアドレスを提供する
ように構成される、ロードアドレス予測エンジン。 - 分岐方向履歴、もしくは分岐経路履歴、またはそれらの組合せに基づいて、前記テーブルインデックスおよび前記予測器タグを生成するようにさらに構成される、請求項1に記載のロードアドレス予測エンジン。
- 前記ロード命令に関する前記予測されるメモリアドレスが前記プロセッサのシステムデータキャッシュ内に存在するかどうかを判定し、
前記ロード命令に関する前記予測されるメモリアドレスが前記プロセッサの前記システムデータキャッシュ内に存在するとの判定に応答して、
前記予測されるメモリアドレスに関するデータを前記システムデータキャッシュから検索し、
前記検索したデータを、データ値予測として、前記プロセッサの実行パイプラインのバックエンド命令パイプラインに提供し、
前記ロード命令に関する前記予測されるメモリアドレスが前記プロセッサの前記システムデータキャッシュ内に存在しないとの判定に応答して、
前記予測されるメモリアドレスに対応するデータを前記プロセッサのシステムメモリからプリフェッチし、
前記プリフェッチしたデータを前記プロセッサの前記システムデータキャッシュ内に記憶する
ようにさらに構成される、請求項1に記載のロードアドレス予測エンジン。 - 前記複数のロードアドレス予測テーブルエントリのうちの各ロードアドレス予測テーブルエントリが、信頼値フィールドをさらに備え、
前記ロードアドレス予測エンジンが、前記ロードアドレス予測テーブルエントリの前記信頼値フィールドが前記ロードアドレス予測エンジンの信頼しきい値フィールドを超えることにさらに応答して、前記ロード命令に関する前記予測されるメモリアドレスとして、前記ロードアドレス予測テーブルエントリの前記メモリアドレスフィールドの前記メモリアドレスを提供するように構成される
請求項3に記載のロードアドレス予測エンジン。 - 前記ロード命令の実行に続いて、
前記予測器タグが、前記複数のロードアドレス予測テーブルエントリのうちの、前記テーブルインデックスに対応する、前記ロードアドレス予測テーブルエントリの前記予測器タグフィールド内に存在するとの判定に応答して、
前記ロード命令の実メモリアドレスが前記ロード命令に関する前記予測されるメモリアドレスに整合するかどうかを判定し、
前記ロード命令の前記実メモリアドレスが前記ロード命令に関する前記予測されるメモリアドレスに整合するとの判定に応答して、前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリの前記信頼値フィールドを増分し、
前記ロード命令の前記実メモリアドレスが前記ロード命令に関する前記予測されるメモリアドレスに整合しないとの判定に応答して、前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリの前記信頼値フィールドをリセットし、
前記予測器タグが、前記複数のロードアドレス予測テーブルエントリのうちの、前記テーブルインデックスに対応する、前記ロードアドレス予測テーブルエントリの前記予測器タグフィールド内に存在しないとの判定に応答して、
前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリの前記信頼値フィールドが非ゼロであるかどうか判定し、
前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリの前記信頼値フィールドが非ゼロであるとの判定に応答して、前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリの前記信頼値フィールドを減分し、
前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリの前記信頼値フィールドがゼロ(0)であるとの判定に応答して、前記予測器タグおよび前記ロード命令に関する前記実メモリアドレスを用いて、前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリを初期化する
ようにさらに構成される、請求項4に記載のロードアドレス予測エンジン。 - 前記複数のロードアドレス予測テーブルエントリのうちの各ロードアドレス予測テーブルエントリが、キャッシュウェイフィールドをさらに備え、
前記ロードアドレス予測エンジンが、前記複数のロードアドレス予測テーブルエントリのうちの、前記テーブルインデックスに対応する、前記ロードアドレス予測テーブルエントリの前記キャッシュウェイフィールドに基づいて、前記ロード命令に関する前記予測されるメモリアドレスが前記プロセッサの前記システムデータキャッシュ内に存在するかどうかを判定するように構成される
請求項3に記載のロードアドレス予測エンジン。 - 前記ロード命令に関する前記予測されるメモリアドレスとして、前記ロードアドレス予測テーブルエントリの前記メモリアドレスフィールドの前記メモリアドレスをメモリディスアンビギュエーションのために前記プロセッサのバックエンド命令パイプラインに提供するように構成される、請求項1に記載のロードアドレス予測エンジン。
- 集積回路(IC)に統合される、請求項1に記載のロードアドレス予測エンジン。
- セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、スマートフォン、タブレット、ファブレット、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、ポータブルデジタルビデオプレーヤ、および自動車からなるグループから選択されるデバイスに統合される、請求項1に記載のロードアドレス予測エンジン。
- ロードアドレス予測を提供するための方法であって、
プロセッサのロードアドレス予測エンジンによって、ロード命令を受信するステップと、
前記ロード命令に関する識別子およびロード経路履歴インジケータに基づいて、テーブルインデックスおよび予測器タグを生成するステップと、
前記予測器タグが、前記ロードアドレス予測エンジンのロードアドレス予測テーブルの複数のロードアドレス予測テーブルエントリのうちの、前記テーブルインデックスに対応する、ロードアドレス予測テーブルエントリの予測器タグフィールド内に存在するかどうかを判定するステップと、
前記予測器タグが、前記複数のロードアドレス予測テーブルエントリのうちの、前記テーブルインデックスに対応する、前記ロードアドレス予測テーブルエントリの前記予測器タグフィールド内に存在するとの判定に応答して、前記ロード命令に関する予測されるメモリアドレスとして、前記ロードアドレス予測テーブルエントリのメモリアドレスフィールドからメモリアドレスを提供するステップと
を含む、方法。 - 前記テーブルインデックスおよび前記予測器タグを生成するステップが、分岐方向履歴、もしくは分岐経路履歴、またはそれらの組合せにさらに基づく、請求項10に記載の方法。
- 前記ロード命令に関する前記予測されるメモリアドレスが前記プロセッサのシステムデータキャッシュ内に存在するかどうかを判定するステップと、
前記ロード命令に関する前記予測されるメモリアドレスが前記プロセッサの前記システムデータキャッシュ内に存在するとの判定に応答して、
前記予測されるメモリアドレスに関するデータを前記システムデータキャッシュから検索するステップと、
前記検索したデータを、データ値予測として、前記プロセッサの実行パイプラインのバックエンド命令パイプラインに提供するステップと、
前記ロード命令に関する前記予測されるメモリアドレスが前記プロセッサの前記システムデータキャッシュ内に存在しないとの判定に応答して、
前記予測されるメモリアドレスに対応するデータを前記プロセッサのシステムメモリからプリフェッチするステップと、
前記プリフェッチしたデータを前記プロセッサの前記システムデータキャッシュ内に記憶するステップと
をさらに含む、請求項10に記載の方法。 - 前記複数のロードアドレス予測テーブルエントリのうちの各ロードアドレス予測テーブルエントリが、信頼値フィールドをさらに備え、
前記ロード命令に関する前記予測されるメモリアドレスとして、前記ロードアドレス予測テーブルエントリの前記メモリアドレスフィールドの前記メモリアドレスを提供するステップが、前記ロードアドレス予測テーブルエントリの前記信頼値フィールドが前記ロードアドレス予測エンジンの信頼しきい値フィールドを超えることにさらに応答する
請求項12に記載の方法。 - 前記ロード命令の実行に続いて、
前記予測器タグが、前記複数のロードアドレス予測テーブルエントリのうちの、前記テーブルインデックスに対応する、前記ロードアドレス予測テーブルエントリの前記予測器タグフィールド内に存在するとの判定に応答して、
前記ロード命令の実メモリアドレスが前記ロード命令に関する前記予測されるメモリアドレスに整合するかどうかを判定するステップと、
前記ロード命令の前記実メモリアドレスが前記ロード命令に関する前記予測されるメモリアドレスに整合するとの判定に応答して、前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリの前記信頼値フィールドを増分するステップと、
前記ロード命令の前記実メモリアドレスが前記ロード命令に関する前記予測されるメモリアドレスに整合しないとの判定に応答して、前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリの前記信頼値フィールドをリセットするステップと、
前記予測器タグが、前記複数のロードアドレス予測テーブルエントリのうちの、前記テーブルインデックスに対応する、前記ロードアドレス予測テーブルエントリの前記予測器タグフィールド内に存在しないとの判定に応答して、
前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリの前記信頼値フィールドが非ゼロであるかどうか判定するステップと、
前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリの前記信頼値フィールドが非ゼロであるとの判定に応答して、前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリの前記信頼値フィールドを減分するステップと、
前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリの前記信頼値フィールドがゼロ(0)であるとの判定に応答して、前記ロード命令に関する前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリを初期化するステップと
をさらに含む、請求項13に記載の方法。 - コンピュータ実行可能命令を記憶した非一時的コンピュータ可読記録媒体であって、前記コンピュータ実行可能命令が、プロセッサによって実行されると、前記プロセッサに、
ロード命令を受信させ、
前記ロード命令に関する識別子およびロード経路履歴インジケータに基づいて、テーブルインデックスおよび予測器タグを生成させ、
前記予測器タグが、ロードアドレス予測テーブルの複数のロードアドレス予測テーブルエントリのうちの、前記テーブルインデックスに対応する、ロードアドレス予測テーブルエントリの予測器タグフィールド内に存在するかどうかを判定させ、
前記予測器タグが、前記複数のロードアドレス予測テーブルエントリのうちの、前記テーブルインデックスに対応する、前記ロードアドレス予測テーブルエントリの前記予測器タグフィールド内に存在するとの判定に応答して、前記ロード命令に関する予測されるメモリアドレスとして、前記ロードアドレス予測テーブルエントリのメモリアドレスフィールドからメモリアドレスを提供させる、
非一時的コンピュータ可読記録媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/087,069 US11709679B2 (en) | 2016-03-31 | 2016-03-31 | Providing load address predictions using address prediction tables based on load path history in processor-based systems |
US15/087,069 | 2016-03-31 | ||
PCT/US2017/020357 WO2017172232A1 (en) | 2016-03-31 | 2017-03-02 | Providing load address predictions using address prediction tables based on load path history in processor-based systems |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2019514110A JP2019514110A (ja) | 2019-05-30 |
JP2019514110A5 JP2019514110A5 (ja) | 2020-03-26 |
JP6744423B2 true JP6744423B2 (ja) | 2020-08-19 |
Family
ID=58358898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018550596A Expired - Fee Related JP6744423B2 (ja) | 2016-03-31 | 2017-03-02 | プロセッサベースシステム内のロード経路履歴に基づくアドレス予測テーブルを使用したロードアドレス予測の実現 |
Country Status (9)
Country | Link |
---|---|
US (1) | US11709679B2 (ja) |
EP (1) | EP3436930B1 (ja) |
JP (1) | JP6744423B2 (ja) |
KR (1) | KR20180127379A (ja) |
CN (1) | CN108780398B (ja) |
BR (1) | BR112018069818A2 (ja) |
CA (1) | CA3016029A1 (ja) |
TW (1) | TW201737068A (ja) |
WO (1) | WO2017172232A1 (ja) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10235176B2 (en) * | 2015-12-17 | 2019-03-19 | The Charles Stark Draper Laboratory, Inc. | Techniques for metadata processing |
US10936713B2 (en) | 2015-12-17 | 2021-03-02 | The Charles Stark Draper Laboratory, Inc. | Techniques for metadata processing |
US11281586B2 (en) * | 2017-05-09 | 2022-03-22 | Andes Technology Corporation | Processor and way prediction method thereof |
US10645133B2 (en) * | 2017-07-12 | 2020-05-05 | Loon Llc | Method and system for delivering content over transient access networks |
US10503648B2 (en) * | 2017-12-12 | 2019-12-10 | Advanced Micro Devices, Inc. | Cache to cache data transfer acceleration techniques |
TWI794405B (zh) | 2018-02-02 | 2023-03-01 | 美商查爾斯塔克德拉普實驗室公司 | 用於政策執行處理的系統及方法 |
EP3746921B1 (en) | 2018-02-02 | 2023-12-27 | Dover Microsystems, Inc. | Systems and methods for policy linking and/or loading for secure initialization |
US11797398B2 (en) | 2018-04-30 | 2023-10-24 | Dover Microsystems, Inc. | Systems and methods for checking safety properties |
US10838731B2 (en) * | 2018-09-19 | 2020-11-17 | Qualcomm Incorporated | Branch prediction based on load-path history |
EP3877874A1 (en) | 2018-11-06 | 2021-09-15 | Dover Microsystems, Inc. | Systems and methods for stalling host processor |
US11841956B2 (en) | 2018-12-18 | 2023-12-12 | Dover Microsystems, Inc. | Systems and methods for data lifecycle protection |
US10929142B2 (en) * | 2019-03-20 | 2021-02-23 | International Business Machines Corporation | Making precise operand-store-compare predictions to avoid false dependencies |
US11243774B2 (en) | 2019-03-20 | 2022-02-08 | International Business Machines Corporation | Dynamic selection of OSC hazard avoidance mechanism |
US11829763B2 (en) | 2019-08-13 | 2023-11-28 | Apple Inc. | Early load execution via constant address and stride prediction |
US10896041B1 (en) * | 2019-09-25 | 2021-01-19 | Microsoft Technology Licensing, Llc | Enabling early execution of move-immediate instructions having variable immediate value sizes in processor-based devices |
US11204771B2 (en) * | 2019-10-24 | 2021-12-21 | Arm Limited | Methods and apparatus for handling processor load instructions |
US11194575B2 (en) * | 2019-11-07 | 2021-12-07 | International Business Machines Corporation | Instruction address based data prediction and prefetching |
GB2592661B (en) * | 2020-03-05 | 2022-05-11 | Advanced Risc Mach Ltd | An apparatus and method for performing branch prediction |
TWI768547B (zh) * | 2020-11-18 | 2022-06-21 | 瑞昱半導體股份有限公司 | 管線式電腦系統與指令處理方法 |
US11630670B2 (en) | 2021-07-21 | 2023-04-18 | Apple Inc. | Multi-table signature prefetch |
US20230176973A1 (en) * | 2021-12-08 | 2023-06-08 | Arm Limited | Replacement control for candidate producer-consumer relationships trained for prefetch generation |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5287467A (en) | 1991-04-18 | 1994-02-15 | International Business Machines Corporation | Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit |
US6108775A (en) | 1996-12-30 | 2000-08-22 | Texas Instruments Incorporated | Dynamically loadable pattern history tables in a multi-task microprocessor |
JPH10260834A (ja) | 1997-03-18 | 1998-09-29 | Fujitsu Ltd | ロードアドレス予測装置および並列処理装置およびそのロードアドレス予測方法 |
US5941981A (en) | 1997-11-03 | 1999-08-24 | Advanced Micro Devices, Inc. | System for using a data history table to select among multiple data prefetch algorithms |
US6230260B1 (en) | 1998-09-01 | 2001-05-08 | International Business Machines Corporation | Circuit arrangement and method of speculative instruction execution utilizing instruction history caching |
US6438673B1 (en) | 1999-12-30 | 2002-08-20 | Intel Corporation | Correlated address prediction |
DE10121792C2 (de) * | 2000-05-26 | 2003-09-25 | Ibm | Universelle Ladeadresse/Wertevorhersageschema |
US6868491B1 (en) | 2000-06-22 | 2005-03-15 | International Business Machines Corporation | Processor and method of executing load instructions out-of-order having reduced hazard penalty |
US7062638B2 (en) | 2000-12-29 | 2006-06-13 | Intel Corporation | Prediction of issued silent store operations for allowing subsequently issued loads to bypass unexecuted silent stores and confirming the bypass upon execution of the stores |
US6907520B2 (en) | 2001-01-11 | 2005-06-14 | Sun Microsystems, Inc. | Threshold-based load address prediction and new thread identification in a multithreaded microprocessor |
JP3594081B2 (ja) | 2001-01-23 | 2004-11-24 | 日本電気株式会社 | 情報処理装置 |
JP4030314B2 (ja) | 2002-01-29 | 2008-01-09 | 富士通株式会社 | 演算処理装置 |
US6976147B1 (en) | 2003-01-21 | 2005-12-13 | Advanced Micro Devices, Inc. | Stride-based prefetch mechanism using a prediction confidence value |
US7430650B1 (en) | 2004-06-17 | 2008-09-30 | Richard Ross | Generating a set of pre-fetch address candidates based on popular sets of address and data offset counters |
US7917731B2 (en) | 2006-08-02 | 2011-03-29 | Qualcomm Incorporated | Method and apparatus for prefetching non-sequential instruction addresses |
US7856548B1 (en) * | 2006-12-26 | 2010-12-21 | Oracle America, Inc. | Prediction of data values read from memory by a microprocessor using a dynamic confidence threshold |
US7640420B2 (en) | 2007-04-02 | 2009-12-29 | Intel Corporation | Pre-fetch apparatus |
US8392651B2 (en) * | 2008-08-20 | 2013-03-05 | Mips Technologies, Inc. | Data cache way prediction |
US8533438B2 (en) | 2009-08-12 | 2013-09-10 | Via Technologies, Inc. | Store-to-load forwarding based on load/store address computation source information comparisons |
US9189432B2 (en) * | 2010-11-15 | 2015-11-17 | Arm Limited | Apparatus and method for predicting target storage unit |
US9146739B2 (en) | 2012-06-14 | 2015-09-29 | International Business Machines Corporation | Branch prediction preloading |
US20140173294A1 (en) | 2012-12-14 | 2014-06-19 | Broadcom Corporation | Techniques for emulating an eeprom device |
US9367468B2 (en) | 2013-01-15 | 2016-06-14 | Qualcomm Incorporated | Data cache way prediction |
GB2511949B (en) | 2013-03-13 | 2015-10-14 | Imagination Tech Ltd | Indirect branch prediction |
US9244827B2 (en) | 2013-09-25 | 2016-01-26 | Intel Corporation | Store address prediction for memory disambiguation in a processing device |
US9606805B1 (en) | 2015-10-19 | 2017-03-28 | International Business Machines Corporation | Accuracy of operand store compare prediction using confidence counter |
US10437595B1 (en) | 2016-03-15 | 2019-10-08 | Apple Inc. | Load/store dependency predictor optimization for replayed loads |
US10353819B2 (en) * | 2016-06-24 | 2019-07-16 | Qualcomm Incorporated | Next line prefetchers employing initial high prefetch prediction confidence states for throttling next line prefetches in a processor-based system |
-
2016
- 2016-03-31 US US15/087,069 patent/US11709679B2/en active Active
-
2017
- 2017-03-02 CA CA3016029A patent/CA3016029A1/en not_active Abandoned
- 2017-03-02 EP EP17711898.1A patent/EP3436930B1/en active Active
- 2017-03-02 TW TW106106784A patent/TW201737068A/zh unknown
- 2017-03-02 BR BR112018069818A patent/BR112018069818A2/pt not_active IP Right Cessation
- 2017-03-02 WO PCT/US2017/020357 patent/WO2017172232A1/en active Application Filing
- 2017-03-02 JP JP2018550596A patent/JP6744423B2/ja not_active Expired - Fee Related
- 2017-03-02 CN CN201780016881.8A patent/CN108780398B/zh active Active
- 2017-03-02 KR KR1020187028217A patent/KR20180127379A/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
EP3436930B1 (en) | 2020-05-20 |
US11709679B2 (en) | 2023-07-25 |
WO2017172232A1 (en) | 2017-10-05 |
JP2019514110A (ja) | 2019-05-30 |
CN108780398B (zh) | 2022-06-07 |
CA3016029A1 (en) | 2017-10-05 |
EP3436930A1 (en) | 2019-02-06 |
TW201737068A (zh) | 2017-10-16 |
CN108780398A (zh) | 2018-11-09 |
US20170286119A1 (en) | 2017-10-05 |
BR112018069818A2 (pt) | 2019-01-29 |
KR20180127379A (ko) | 2018-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6744423B2 (ja) | プロセッサベースシステム内のロード経路履歴に基づくアドレス予測テーブルを使用したロードアドレス予測の実現 | |
US10353819B2 (en) | Next line prefetchers employing initial high prefetch prediction confidence states for throttling next line prefetches in a processor-based system | |
US9830152B2 (en) | Selective storing of previously decoded instructions of frequently-called instruction sequences in an instruction sequence buffer to be executed by a processor | |
US11068273B2 (en) | Swapping and restoring context-specific branch predictor states on context switches in a processor | |
EP3433728B1 (en) | Providing references to previously decoded instructions of recently-provided instructions to be executed by a processor | |
EP3221784B1 (en) | Providing loop-invariant value prediction using a predicted values table, and related apparatuses, methods, and computer-readable media | |
US9697127B2 (en) | Semiconductor device for controlling prefetch operation | |
JP6271572B2 (ja) | 実行パイプラインバブルを低減するためにサブルーチンリターンのための分岐ターゲット命令キャッシュ(btic)エントリを確立すること、ならびに関連するシステム、方法、およびコンピュータ可読媒体 | |
US10614007B2 (en) | Providing interrupt service routine (ISR) prefetching in multicore processor-based systems | |
JP2017537408A (ja) | アウトオブオーダー(ooo)プロセッサにおける早期命令実行を提供すること、ならびに関連する装置、方法、およびコンピュータ可読媒体 | |
JP6317339B2 (ja) | レジスタ関連優先度に基づく実行パイプラインへの命令の発行、ならびに関係する命令処理回路、プロセッサシステム、方法、およびコンピュータ可読媒体 | |
US20160077836A1 (en) | Predicting literal load values using a literal load prediction table, and related circuits, methods, and computer-readable media | |
US20220043908A1 (en) | Mitigation of return stack buffer side channel attacks in a processor | |
US20190065060A1 (en) | Caching instruction block header data in block architecture processor-based systems | |
JP2018523241A (ja) | パント回避テーブル(pat)を使用したコンピュータプロセッサ内のメモリ命令パントの予測 | |
US20160291981A1 (en) | Removing invalid literal load values, and related circuits, methods, and computer-readable media | |
US20210089308A1 (en) | Systems and methods for processing instructions having wide immediate operands | |
US20190294443A1 (en) | Providing early pipeline optimization of conditional instructions in processor-based systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181002 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200214 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200214 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20200605 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20200622 |
|
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: 20200706 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200730 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6744423 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |