JP6731048B2 - 有用性追跡を用いた補助分岐予測 - Google Patents
有用性追跡を用いた補助分岐予測 Download PDFInfo
- Publication number
- JP6731048B2 JP6731048B2 JP2018524441A JP2018524441A JP6731048B2 JP 6731048 B2 JP6731048 B2 JP 6731048B2 JP 2018524441 A JP2018524441 A JP 2018524441A JP 2018524441 A JP2018524441 A JP 2018524441A JP 6731048 B2 JP6731048 B2 JP 6731048B2
- Authority
- JP
- Japan
- Prior art keywords
- entry
- auxiliary
- branch predictor
- congruence class
- entries
- 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
- 238000012545 processing Methods 0.000 claims description 52
- 238000000034 method Methods 0.000 claims description 42
- 238000009434 installation Methods 0.000 claims description 35
- 230000000153 supplemental effect Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012549 training Methods 0.000 claims description 7
- 230000009467 reduction Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 28
- 230000008569 process Effects 0.000 description 18
- 230000006870 function Effects 0.000 description 17
- 238000007726 management method Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000002657 hormone replacement therapy Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229920000278 polyheptadiyne Polymers 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000003068 static 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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch instructions
-
- 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
- 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/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
-
- 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/3861—Recovery, e.g. branch miss-prediction, exception handling
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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
Claims (21)
- 主要分岐予測器と補助分岐予測器とを備える処理システムにおいて補助分岐予測を管理するための方法であって、
前記主要分岐予測器の予測ミスされたターゲット・アドレスに対応する主要分岐予測器予測ミス・インジケータを受け取ることに基づいて、前記補助分岐予測器の合同クラスを突き止めることと、
前記合同クラスの1つまたは複数の他のエントリに対して最も有用でないレベルに設定された補助有用性レベルを有するエントリを、前記合同クラス中で識別することと、
前記予測ミスされたターゲット・アドレスに対応する補助データを前記エントリにインストールすることと、
前記補助データをインストールすることに基づいて前記エントリの前記補助有用性レベルを初期値にリセットすることと、
その後、前記補助データが前記エントリにインストールされた後で前記エントリに対して前記主要分岐予測器予測ミス・インジケータがセットされたと決定し、かつ、前記補助分岐予測器が前記補助データを使用して分岐を正しく予測したかまたは前記エントリの前記補助有用性レベルが訓練しきい値未満であるかのいずれかであると決定したときに、前記エントリの前記補助有用性レベルを増加させることと、
前記合同クラスのすべてのエントリの前記補助有用性レベルが低減しきい値よりも高いと決定することに基づいて、前記合同クラスのすべてのエントリについて等しく前記補助有用性レベルを低減することと、
前記合同クラスの2つのエントリの前記補助有用性レベルが最大値に達したと決定することに基づいて、前記合同クラスのすべてのエントリについて等しく前記補助有用性レベルを低減することと、
を含む方法。 - 前記主要分岐予測器と前記補助分岐予測器とを検索アドレスに基づいて並列に検索して分岐予測を行うことと、
前記補助分岐予測器のマッチするエントリの前記補助有用性レベルが有用性しきい値よりも高いと決定することに基づいて、前記補助分岐予測器からの、前記検索アドレスに対応する補助予測器分岐ターゲットを選択することと、
前記補助分岐予測器の前記マッチするエントリの前記補助有用性レベルが前記有用性しきい値未満であると決定することに基づいて、前記主要分岐予測器からの、前記検索アドレスに対応する主要予測器分岐ターゲットを選択することと、
をさらに含む、請求項1に記載の方法。 - 前記エントリを前記合同クラス中で識別することがさらに、
前記合同クラス中の複数のエントリの各々が上書きされないよう保護されているか保護されていないかを識別する、前記エントリの各々の保護制限をチェックすることと、
前記合同クラス中の保護されていないエントリのうち、最も有用でないレベルに設定された前記補助有用性レベルを有するエントリを前記合同クラス中で識別することと、
を含む、請求項1に記載の方法。 - 前記補助データのインストール時に前記エントリの前記保護制限を0でない値に初期化することと、
前記エントリの前記補助有用性レベルが保護しきい値を超えると決定することに基づいて、前記エントリの前記保護制限を前記0でない値にリセットすることと、
前記エントリの前記保護制限中に0の値を有することに基づいて、前記エントリを保護されていないものとして識別することと、
前記エントリの前記保護制限中に前記0でない値を有することに基づいて、前記エントリを保護されているものとして識別することと、
保護されている最も有用でないエントリのインストールを防止することに基づいて、前記保護されている最も有用でないエントリの前記保護制限をデクリメントすることと、
をさらに含む、請求項3に記載の方法。 - 前記エントリを前記合同クラス中で識別することがさらに、
無効なエントリがあるかどうか前記合同クラスをチェックすることと、
前記無効なエントリを前記合同クラス中で突き止めることに基づいて、前記無効なエントリを更新に向けたエントリとして識別し、前記エントリの有効性を有効に設定することと、
無効なエントリが前記合同クラス中にないと決定することに基づいて、前記合同クラスの1つまたは複数の他のエントリに対して最も有用でないレベルに設定された前記補助有用性レベルを有する前記エントリを、前記合同クラス中で識別することと、
を含む、請求項3に記載の方法。 - 前記補助分岐予測器への最近成功した複数のインストールのレコードを先行インストール・キューに記憶することと、
前記先行インストール・キュー中でマッチするレコードを突き止めることに基づいて、前記補助分岐予測器への新たなインストールを防止することと、
キュー・リフレッシュ期間の経過後に前記先行インストール・キューを無効化することと、
をさらに含む、請求項1に記載の方法。 - 前記主要分岐予測器の参照元エントリが無効化されたと決定することに基づいて前記補助分岐予測器中の参照先エントリを無効化することであって、前記主要分岐予測器の前記参照元エントリが前記補助分岐予測器中の前記参照先エントリに対応するものである、前記無効化することと、
前記補助分岐予測器中の前記参照先エントリを無効化することに基づいて、前記先行インストール・キュー中の前記参照先エントリのレコードを無効化するかまたは前記先行インストール・キューを完全に無効化することと、
をさらに含む、請求項6に記載の方法。 - 補助分岐予測を管理するための処理システムであって、
複数の主要分岐予測構造を含む主要分岐予測器と、
複数の合同クラスを含む補助分岐予測器であって、前記合同クラスの各々が複数のエントリを含む、前記補助分岐予測器と、
補助インストールおよび更新コントローラとを備え、前記補助インストールおよび更新コントローラが、
前記主要分岐予測器の予測ミスされたターゲット・アドレスに対応する主要分岐予測器予測ミス・インジケータを受け取ることに基づいて、前記補助分岐予測器の合同クラスを突き止めることと、
前記合同クラスの1つまたは複数の他のエントリに対して最も有用でないレベルに設定された補助有用性レベルを有するエントリを、前記合同クラス中で識別することと、
前記予測ミスされたターゲット・アドレスに対応する補助データを前記エントリにインストールすることと、
前記補助データをインストールすることに基づいて前記エントリの前記補助有用性レベルを初期値にリセットすることと、
その後、前記補助データが前記エントリにインストールされた後で前記エントリに対して前記主要分岐予測器予測ミス・インジケータがセットされたと決定し、かつ、前記補助分岐予測器が前記補助データを使用して分岐を正しく予測したかまたは前記エントリの前記補助有用性レベルが訓練しきい値未満であるかのいずれかであると決定したときに、前記エントリの前記補助有用性レベルを増加させることと、
前記合同クラスのすべてのエントリの前記補助有用性レベルが低減しきい値よりも高いと決定することに基づいて、前記合同クラスのすべてのエントリについて等しく前記補助有用性レベルを低減することと、
前記合同クラスの2つのエントリの前記補助有用性レベルが最大値に達したと決定することに基づいて、前記合同クラスのすべてのエントリについて等しく前記補助有用性レベルを低減することと、
を実施するように動作可能である、処理システム。 - 前記主要分岐予測器を検索アドレスに基づいて検索して分岐予測を行う、主要検索およびヒット・コントローラと、
前記主要検索およびビット・コントローラと並列に前記補助分岐予測器を検索する、補助検索およびヒット・コントローラと、
ターゲット・アドレス・セレクタとをさらに備え、前記ターゲット・アドレス・セレクタが、
前記補助分岐予測器のマッチするエントリの前記補助有用性レベルが有用性しきい値よりも高いと決定することに基づいて、前記補助分岐予測器からの、前記検索アドレスに対応する補助予測器分岐ターゲットを選択することと、
前記補助分岐予測器の前記マッチするエントリの前記補助有用性レベルが前記有用性しきい値未満であると決定することに基づいて、前記主要分岐予測器からの、前記検索アドレスに対応する主要予測器分岐ターゲットを選択することと、
を実施するように動作可能である、請求項8に記載の処理システム。 - 前記エントリを前記合同クラス中で識別することがさらに、
前記合同クラス中の複数のエントリの各々が上書きされないよう保護されているか保護されていないかを識別する、前記エントリの各々の保護制限をチェックすることと、
前記合同クラス中の保護されていないエントリのうち、最も有用でないレベルに設定された前記補助有用性レベルを有するエントリを前記合同クラス中で識別することと、
を含む、請求項8に記載の処理システム。 - 前記補助インストールおよび更新コントローラがさらに、
前記補助データのインストール時に前記エントリの前記保護制限を0でない値に初期化することと、
前記エントリの前記補助有用性レベルが保護しきい値を超えると決定することに基づいて、前記エントリの前記保護制限を前記0でない値にリセットすることと、
前記エントリの前記保護制限中に0の値を有することに基づいて、前記エントリを保護されていないものとして識別することと、
前記エントリの前記保護制限中に前記0でない値を有することに基づいて、前記エントリを保護されているものとして識別することと、
保護されている最も有用でないエントリのインストールを防止することに基づいて、前記保護されている最も有用でないエントリの前記保護制限をデクリメントすることと、
を実施するように動作可能である、請求項10に記載の処理システム。 - 前記エントリを前記合同クラス中で識別することがさらに、
無効なエントリがあるかどうか前記合同クラスをチェックすることと、
無効なエントリを前記合同クラス中で突き止めることに基づいて、前記無効なエントリを更新に向けたエントリとして識別し、前記エントリの有効性を有効に設定することと、
無効なエントリが前記合同クラス中にないと決定することに基づいて、前記合同クラスの1つまたは複数の他のエントリに対して最も有用でないレベルに設定された前記補助有用性レベルを有する前記エントリを、前記合同クラス中で識別することと、
を含む、請求項10に記載の処理システム。 - 先行インストール・キューをさらに備え、前記補助インストールおよび更新コントローラがさらに、
前記補助分岐予測器への最近成功した複数のインストールのレコードを前記先行インストール・キューに記憶することと、
前記先行インストール・キュー中でマッチするレコードを突き止めることに基づいて、前記補助分岐予測器への新たなインストールを防止することと、
キュー・リフレッシュ期間の経過後に前記先行インストール・キューを無効化することと、
を実施するように動作可能である、請求項8に記載の処理システム。 - 前記補助インストールおよび更新コントローラがさらに、
前記主要分岐予測器の参照元エントリが無効化されたと決定することに基づいて前記補助分岐予測器中の参照先エントリを無効化することであって、前記主要分岐予測器の前記参照元エントリが前記補助分岐予測器中の前記参照先エントリに対応するものである、前記無効化することと、
前記補助分岐予測器中の前記参照先エントリを無効化することに基づいて、前記先行インストール・キュー中の前記参照先エントリのレコードを無効化するかまたは前記先行インストール・キューを完全に無効化することと、
を実施するように動作可能である、請求項13に記載の処理システム。 - プロセッサに、
主要分岐予測器の予測ミスされたターゲット・アドレスに対応する主要分岐予測器予測ミス・インジケータを受け取ることに基づいて、補助分岐予測器の合同クラスを突き止めることと、
前記合同クラスの1つまたは複数の他のエントリに対して最も有用でないレベルに設定された補助有用性レベルを有するエントリを、前記合同クラス中で識別することと、
前記予測ミスされたターゲット・アドレスに対応する補助データを前記エントリにインストールすることと、
前記補助データをインストールすることに基づいて前記エントリの前記補助有用性レベルを初期値にリセットすることと、
その後、前記補助データが前記エントリにインストールされた後で前記エントリに対して前記主要分岐予測器予測ミス・インジケータがセットされたと決定し、かつ、前記補助分岐予測器が前記補助データを使用して分岐を正しく予測したかまたは前記エントリの前記補助有用性レベルが訓練しきい値未満であるかのいずれかであると決定したときに、前記エントリの前記補助有用性レベルを増加させることと、
前記合同クラスのすべてのエントリの前記補助有用性レベルが低減しきい値よりも高いと決定することに基づいて、前記合同クラスのすべてのエントリについて等しく前記補助有用性レベルを低減することと、
前記合同クラスの2つのエントリの前記補助有用性レベルが最大値に達したと決定することに基づいて、前記合同クラスのすべてのエントリについて等しく前記補助有用性レベルを低減することと、
を行わせる、コンピュータ・プログラム。 - 前記プロセッサに、
前記主要分岐予測器と前記補助分岐予測器とを検索アドレスに基づいて並列に検索して分岐予測を行うことと、
前記補助分岐予測器のマッチするエントリの前記補助有用性レベルが有用性しきい値よりも高いと決定することに基づいて、前記補助分岐予測器からの、前記検索アドレスに対応する補助予測器分岐ターゲットを選択することと、
前記補助分岐予測器の前記マッチするエントリの前記補助有用性レベルが前記有用性しきい値未満であると決定することに基づいて、前記主要分岐予測器からの、前記検索アドレスに対応する主要予測器分岐ターゲットを選択することと、
を行わせる、請求項15に記載のコンピュータ・プログラム。 - 前記エントリを前記合同クラス中で識別することがさらに、
前記合同クラス中の複数のエントリの各々が上書きされないよう保護されているか保護されていないかを識別する、前記エントリの各々の保護制限をチェックすることと、
前記合同クラス中の保護されていないエントリのうち、最も有用でないレベルに設定された前記補助有用性レベルを有するエントリを前記合同クラス中で識別することと、
を含む、請求項15に記載のコンピュータ・プログラム。 - 前記プロセッサに、
前記補助データのインストール時に前記エントリの前記保護制限を0でない値に初期化することと、
前記エントリの前記補助有用性レベルが保護しきい値を超えると決定することに基づいて、前記エントリの前記保護制限を前記0でない値にリセットすることと、
前記エントリの前記保護制限中に0の値を有することに基づいて、前記エントリを保護されていないものとして識別することと、
前記エントリの前記保護制限中に前記0でない値を有することに基づいて、前記エントリを保護されているものとして識別することと、
保護されている最も有用でないエントリのインストールを防止することに基づいて、前記保護されている最も有用でないエントリの前記保護制限をデクリメントすることと、
を行わせる、請求項17に記載のコンピュータ・プログラム。 - 前記エントリを前記合同クラス中で識別することがさらに、
無効なエントリがあるかどうか前記合同クラスをチェックすることと、
前記無効なエントリを前記合同クラス中で突き止めることに基づいて、前記無効なエントリを更新に向けたエントリとして識別し、前記エントリの有効性を有効に設定することと、
無効なエントリが前記合同クラス中にないと決定することに基づいて、前記合同クラスの1つまたは複数の他のエントリに対して最も有用でないレベルに設定された前記補助有用性レベルを有する前記エントリを、前記合同クラス中で識別することと、
を含む、請求項17に記載のコンピュータ・プログラム。 - 前記プロセッサに、
前記補助分岐予測器への最近成功した複数のインストールのレコードを先行インストール・キューに記憶することと、
前記先行インストール・キュー中でマッチするレコードを突き止めることに基づいて、前記補助分岐予測器への新たなインストールを防止することと、
キュー・リフレッシュ期間の経過後に前記先行インストール・キューを無効化することと、
を行わせる、請求項15に記載のコンピュータ・プログラム。 - 前記プロセッサに、
前記主要分岐予測器の参照元エントリが無効化されたと決定することに基づいて前記補助分岐予測器中の参照先エントリを無効化することであって、前記主要分岐予測器の前記参照元エントリが前記補助分岐予測器中の前記参照先エントリに対応するものである、前記無効化することと、
前記補助分岐予測器中の前記参照先エントリを無効化することに基づいて、前記先行インストール・キュー中の前記参照先エントリのレコードを無効化するかまたは前記先行インストール・キューを完全に無効化することと、
を行わせる、請求項20に記載のコンピュータ・プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/969,492 | 2015-12-15 | ||
US14/969,492 US9507598B1 (en) | 2015-12-15 | 2015-12-15 | Auxiliary branch prediction with usefulness tracking |
PCT/IB2016/057406 WO2017103740A1 (en) | 2015-12-15 | 2016-12-07 | Auxiliary branch prediction with usefulness tracking |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018537771A JP2018537771A (ja) | 2018-12-20 |
JP6731048B2 true JP6731048B2 (ja) | 2020-07-29 |
Family
ID=57351942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018524441A Active JP6731048B2 (ja) | 2015-12-15 | 2016-12-07 | 有用性追跡を用いた補助分岐予測 |
Country Status (6)
Country | Link |
---|---|
US (2) | US9507598B1 (ja) |
JP (1) | JP6731048B2 (ja) |
CN (1) | CN108351777B (ja) |
DE (1) | DE112016004441T5 (ja) |
GB (1) | GB2562651B (ja) |
WO (1) | WO2017103740A1 (ja) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9507598B1 (en) * | 2015-12-15 | 2016-11-29 | International Business Machines Corporation | Auxiliary branch prediction with usefulness tracking |
US10936713B2 (en) | 2015-12-17 | 2021-03-02 | The Charles Stark Draper Laboratory, Inc. | Techniques for metadata processing |
US10235176B2 (en) * | 2015-12-17 | 2019-03-19 | The Charles Stark Draper Laboratory, Inc. | Techniques for metadata processing |
US10607137B2 (en) * | 2017-04-05 | 2020-03-31 | International Business Machines Corporation | Branch predictor selection management |
US10261797B2 (en) * | 2017-04-27 | 2019-04-16 | International Business Machines Corporation | Indirect target tagged geometric branch prediction using a set of target address pattern data |
US10902348B2 (en) * | 2017-05-19 | 2021-01-26 | International Business Machines Corporation | Computerized branch predictions and decisions |
US20190004803A1 (en) * | 2017-06-30 | 2019-01-03 | Qualcomm Incorporated | Statistical correction for branch prediction mechanisms |
US10725782B2 (en) * | 2017-09-12 | 2020-07-28 | Qualcomm Incorporated | Providing variable interpretation of usefulness indicators for memory tables in processor-based systems |
US11579886B2 (en) | 2018-01-09 | 2023-02-14 | International Business Machines Corporation | System and method for multi-level classification of branches |
US11113066B2 (en) | 2018-01-09 | 2021-09-07 | International Business Machines Corporation | Predicting a branch instruction classified as simple or hard to predict based on a confidence counter in a branch type table |
US20210042100A1 (en) | 2018-02-02 | 2021-02-11 | Dover Microsystems, Inc. | System and method for translating mapping policy into code |
WO2019152772A1 (en) | 2018-02-02 | 2019-08-08 | The Charles Stark Draper Laboratory, Inc. | Systems and methods for policy execution processing |
US11797398B2 (en) | 2018-04-30 | 2023-10-24 | Dover Microsystems, Inc. | Systems and methods for checking safety properties |
US10620960B2 (en) * | 2018-08-20 | 2020-04-14 | Arm Limited | Apparatus and method for performing branch prediction |
WO2020097179A1 (en) | 2018-11-06 | 2020-05-14 | Dover Microsystems, Inc. | Systems and methods for stalling host processor |
US10949208B2 (en) * | 2018-12-17 | 2021-03-16 | Intel Corporation | System, apparatus and method for context-based override of history-based branch predictions |
US11841956B2 (en) | 2018-12-18 | 2023-12-12 | Dover Microsystems, Inc. | Systems and methods for data lifecycle protection |
ES2802723B2 (es) * | 2019-07-12 | 2021-07-27 | Univ Alcala Henares | Un metodo para el trazado selectivo de la ejecucion de instrucciones, dispositivo de procesamiento relacionado y procesador |
US11928471B2 (en) | 2021-08-19 | 2024-03-12 | International Business Machines Corporation | Metadata predictor |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998008160A1 (en) | 1996-08-20 | 1998-02-26 | Idea Corporation | A method for identifying hard-to-predict branches to enhance processor performance |
JP2000227857A (ja) * | 1999-02-05 | 2000-08-15 | Hitachi Ltd | 分岐先連想記憶方式の情報処理装置 |
US6532521B1 (en) * | 1999-06-30 | 2003-03-11 | International Business Machines Corporation | Mechanism for high performance transfer of speculative request data between levels of cache hierarchy |
US6772325B1 (en) | 1999-10-01 | 2004-08-03 | Hitachi, Ltd. | Processor architecture and operation for exploiting improved branch control instruction |
US6446197B1 (en) | 1999-10-01 | 2002-09-03 | Hitachi, Ltd. | Two modes for executing branch instructions of different lengths and use of branch control instruction and register set loaded with target instructions |
US6560693B1 (en) * | 1999-12-10 | 2003-05-06 | International Business Machines Corporation | Branch history guided instruction/data prefetching |
US6412050B1 (en) * | 1999-12-30 | 2002-06-25 | Intel Corporation | Memory record update filtering |
US7069426B1 (en) * | 2000-03-28 | 2006-06-27 | Intel Corporation | Branch predictor with saturating counter and local branch history table with algorithm for updating replacement and history fields of matching table entries |
US7107437B1 (en) * | 2000-06-30 | 2006-09-12 | Intel Corporation | Branch target buffer (BTB) including a speculative BTB (SBTB) and an architectural BTB (ABTB) |
US7165168B2 (en) * | 2003-01-14 | 2007-01-16 | Ip-First, Llc | Microprocessor with branch target address cache update queue |
US7062607B2 (en) * | 2001-09-24 | 2006-06-13 | Intel Corporation | Filtering basic instruction segments in a processor front-end for power conservation |
US6996678B1 (en) * | 2002-07-31 | 2006-02-07 | Cisco Technology, Inc. | Method and apparatus for randomized cache entry replacement |
US7676663B2 (en) * | 2004-03-09 | 2010-03-09 | International Business Machines Corporation | Method, system and program product for pipelined processor having a branch target buffer (BTB) table with a recent entry queue in parallel with the BTB table |
US7278012B2 (en) * | 2005-06-02 | 2007-10-02 | Qualcomm Incorporated | Method and apparatus for efficiently accessing first and second branch history tables to predict branch instructions |
US7673122B1 (en) | 2005-09-29 | 2010-03-02 | Sun Microsystems, Inc. | Software hint to specify the preferred branch prediction to use for a branch instruction |
US8090934B2 (en) * | 2006-07-11 | 2012-01-03 | Cetin Kaya Koc | Systems and methods for providing security for computer systems |
US7707396B2 (en) * | 2006-11-17 | 2010-04-27 | International Business Machines Corporation | Data processing system, processor and method of data processing having improved branch target address cache |
US7937573B2 (en) * | 2008-02-29 | 2011-05-03 | Freescale Semiconductor, Inc. | Metric for selective branch target buffer (BTB) allocation |
US8639913B2 (en) * | 2008-05-21 | 2014-01-28 | Qualcomm Incorporated | Multi-mode register file for use in branch prediction |
US8171269B2 (en) * | 2009-03-06 | 2012-05-01 | Agere Systems Inc. | Branch target buffer with entry source field for use in determining replacement priority |
US8832418B2 (en) * | 2009-08-28 | 2014-09-09 | Via Technologies, Inc. | Efficient branch target address cache entry replacement |
US8972706B2 (en) * | 2011-05-26 | 2015-03-03 | International Business Machines Corporation | Performance in predicting branches |
US9229723B2 (en) * | 2012-06-11 | 2016-01-05 | International Business Machines Corporation | Global weak pattern history table filtering |
US9262169B2 (en) * | 2012-06-11 | 2016-02-16 | International Business Machines Corporation | Branch prediction table install source tracking |
US9235419B2 (en) * | 2012-06-11 | 2016-01-12 | International Business Machines Corporation | Branch target buffer preload table |
US9250909B2 (en) * | 2012-06-12 | 2016-02-02 | International Business Machines Corporation | Fast index tree for accelerated branch prediction |
US9250912B2 (en) * | 2012-06-12 | 2016-02-02 | International Business Machines Corporation | Fast index tree for accelerated branch prediction |
US9298465B2 (en) | 2012-06-15 | 2016-03-29 | International Business Machines Corporation | Asynchronous lookahead hierarchical branch prediction |
US9891922B2 (en) * | 2012-06-15 | 2018-02-13 | International Business Machines Corporation | Selectively blocking branch prediction for a predetermined number of instructions |
GB2506462B (en) * | 2013-03-13 | 2014-08-13 | Imagination Tech Ltd | Indirect branch prediction |
US9396056B2 (en) * | 2014-03-15 | 2016-07-19 | Intel Corporation | Conditional memory fault assist suppression |
US9507598B1 (en) * | 2015-12-15 | 2016-11-29 | International Business Machines Corporation | Auxiliary branch prediction with usefulness tracking |
-
2015
- 2015-12-15 US US14/969,492 patent/US9507598B1/en active Active
-
2016
- 2016-08-24 US US15/245,280 patent/US9747103B2/en not_active Expired - Fee Related
- 2016-12-07 DE DE112016004441.0T patent/DE112016004441T5/de active Pending
- 2016-12-07 CN CN201680066846.2A patent/CN108351777B/zh active Active
- 2016-12-07 GB GB1811397.7A patent/GB2562651B/en active Active
- 2016-12-07 JP JP2018524441A patent/JP6731048B2/ja active Active
- 2016-12-07 WO PCT/IB2016/057406 patent/WO2017103740A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN108351777A (zh) | 2018-07-31 |
DE112016004441T5 (de) | 2018-06-14 |
GB2562651B (en) | 2019-04-10 |
WO2017103740A1 (en) | 2017-06-22 |
GB2562651A (en) | 2018-11-21 |
GB201811397D0 (en) | 2018-08-29 |
CN108351777B (zh) | 2022-02-18 |
US9507598B1 (en) | 2016-11-29 |
JP2018537771A (ja) | 2018-12-20 |
US20170168825A1 (en) | 2017-06-15 |
US9747103B2 (en) | 2017-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6731048B2 (ja) | 有用性追跡を用いた補助分岐予測 | |
US9378020B2 (en) | Asynchronous lookahead hierarchical branch prediction | |
US10185570B2 (en) | Dynamic thread sharing in branch prediction structures | |
US9471314B1 (en) | Auxiliary perceptron branch predictor with magnitude usage limit | |
US9280351B2 (en) | Second-level branch target buffer bulk transfer filtering | |
US9411598B2 (en) | Semi-exclusive second-level branch target buffer | |
US9626188B2 (en) | Relative offset branching in a fixed-width reduced instruction set computing architecture | |
US9244688B2 (en) | Branch target buffer preload table | |
US10353710B2 (en) | Techniques for predicting a target address of an indirect branch instruction | |
US20150363201A1 (en) | Predicting indirect branches using problem branch filtering and pattern cache | |
US20200167163A1 (en) | Selectively supporting static branch prediction settings only in association with processor-designated types of instructions | |
US9606804B2 (en) | Absolute address branching in a fixed-width reduced instruction set computing architecture | |
US9256436B2 (en) | Branch prediction table install source tracking | |
US20130339683A1 (en) | Instruction filtering | |
US10346172B2 (en) | Caching of perceptron branch patterns using ternary content addressable memory based on a most influential bit location in a branch history vector | |
US11194575B2 (en) | Instruction address based data prediction and prefetching | |
US11663126B1 (en) | Return address table branch predictor | |
US11182165B2 (en) | Skip-over offset branch prediction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180815 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190513 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200324 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200619 |
|
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: 20200630 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200703 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6731048 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |