JP2020501242A - ストリーム長予測を使用する分岐予測器検索限定 - Google Patents
ストリーム長予測を使用する分岐予測器検索限定 Download PDFInfo
- Publication number
- JP2020501242A JP2020501242A JP2019527211A JP2019527211A JP2020501242A JP 2020501242 A JP2020501242 A JP 2020501242A JP 2019527211 A JP2019527211 A JP 2019527211A JP 2019527211 A JP2019527211 A JP 2019527211A JP 2020501242 A JP2020501242 A JP 2020501242A
- Authority
- JP
- Japan
- Prior art keywords
- branch
- search
- predictor
- branch predictor
- stream
- 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
- 238000000034 method Methods 0.000 claims abstract description 26
- 230000001960 triggered effect Effects 0.000 claims abstract description 9
- 239000000872 buffer Substances 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 12
- 238000012546 transfer Methods 0.000 claims description 11
- 230000036316 preload Effects 0.000 claims description 8
- 238000010586 diagram Methods 0.000 abstract description 16
- VZDUQPHKUBZMLW-UHFFFAOYSA-N 1-(benzenesulfonyl)-4-chloro-2-nitrobenzene Chemical compound [O-][N+](=O)C1=CC(Cl)=CC=C1S(=O)(=O)C1=CC=CC=C1 VZDUQPHKUBZMLW-UHFFFAOYSA-N 0.000 description 74
- 101100004714 Schizosaccharomyces pombe (strain 972 / ATCC 24843) btb1 gene Proteins 0.000 description 74
- 101100004715 Schizosaccharomyces pombe (strain 972 / ATCC 24843) btb2 gene Proteins 0.000 description 54
- 238000004891 communication Methods 0.000 description 13
- 230000002085 persistent effect Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 101000924379 Heliothis virescens Membrane alanyl aminopeptidase Proteins 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 239000004744 fabric Substances 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 210000003813 thumb Anatomy 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002028 premature Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000007787 solid Substances 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/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/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
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 (20)
- コンピュータ実装方法であって、
プロセッサのストリーム・ベース・インデックス・アクセラレータ予測器によって、命令アドレスと命令ストリームを終了させる行われる分岐との間の予測ストリーム長を決定することと、
前記命令アドレスと前記予測ストリーム長とによって境界される検索範囲内の1つまたは複数のエントリにおける分岐予測を見つけるために前記プロセッサの階層的非同期先読み分岐予測器の第1のレベルの分岐予測器を検索することと、
前記検索範囲内の前記分岐予測を見つけるのに失敗することに基づいて前記階層的非同期先読み分岐予測器の第2のレベルの分岐予測器の検索をトリガすることと
を含む、コンピュータ実装方法。 - 前記第1のレベルの分岐予測器が、分岐ターゲット・バッファと分岐ターゲット・バッファ・プリロード・テーブルとを備える、請求項1に記載のコンピュータ実装方法。
- 前記第2のレベルの分岐予測器の前記検索に基づいて、複数の分岐を前記第2のレベルの分岐予測器から前記分岐ターゲット・バッファまたは前記分岐ターゲット・バッファ・プリロード・テーブルに転送することをさらに含む、請求項2に記載のコンピュータ実装方法。
- 前記階層的非同期先読み分岐予測器の前記第2のレベルの分岐予測器の前記検索をトリガすることが、デフォルトの検索の深さに達する前に実施される、請求項1に記載のコンピュータ実装方法。
- 前記階層的非同期先読み分岐予測器の前記第2のレベルの分岐予測器の前記検索が、デフォルトの検索の深さを超えて拡張される、請求項1に記載のコンピュータ実装方法。
- 前記ストリーム・ベース・インデックス・アクセラレータ予測器が前記予測ストリーム長を正しく予測し前記正しい予測が使用される回数に基づいて精度カウンタを更新することをさらに含む、請求項1に記載のコンピュータ実装方法。
- 前記精度カウンタが精度閾値超であることを決定することに基づいて前記検索範囲の使用を有効にすることと、
前記精度カウンタが前記精度閾値未満であることを決定することに基づいて前記検索範囲の使用を無効にし、デフォルトの検索の深さの使用を有効にすることと
をさらに含む、請求項6に記載のコンピュータ実装方法。 - システムであって、
命令アドレスと命令ストリームを終了させる行われる分岐との間の予測ストリーム長を決定するように動作可能であるプロセッサのストリーム・ベース・インデックス・アクセラレータ予測器と、
第1のレベルの分岐予測器および第2のレベルの分岐予測器を備える前記プロセッサの階層的非同期先読み分岐予測器と
を備え、前記階層的非同期先読み分岐予測器が、
前記命令アドレスと前記予測ストリーム長とによって境界される検索範囲内の1つまたは複数のエントリにおける分岐予測を見つけるために前記第1のレベルの分岐予測器を検索し、
前記検索範囲内の前記分岐予測を見つけるのに失敗することに基づいて前記第2のレベルの分岐予測器の検索をトリガするように動作可能である、システム。 - 前記第1のレベルの分岐予測器が、分岐ターゲット・バッファと分岐ターゲット・バッファ・プリロード・テーブルとを備える、請求項8に記載のシステム。
- 前記階層的非同期先読み分岐予測器が、前記第2のレベルの分岐予測器の前記検索に基づいて複数の分岐を前記第2のレベルの分岐予測器から前記分岐ターゲット・バッファまたは前記分岐ターゲット・バッファ・プリロード・テーブルに転送するように動作可能である、請求項9に記載のシステム。
- 前記階層的非同期先読み分岐予測器の前記第2のレベルの分岐予測器の前記検索が、デフォルトの検索の深さに達する前にトリガされる、請求項8に記載のシステム。
- 前記階層的非同期先読み分岐予測器の前記第2のレベルの分岐予測器の前記検索が、デフォルトの検索の深さを超えて拡張される、請求項8に記載のシステム。
- 精度カウンタが、前記ストリーム・ベース・インデックス・アクセラレータ予測器が前記予測ストリーム長を正しく予測し前記正しい予測が使用される回数に基づいて更新される、請求項8に記載のシステム。
- 前記精度カウンタが精度閾値超であることを決定することに基づいて、前記検索範囲の使用が有効にされ、前記精度カウンタが前記精度閾値未満であることを決定することに基づいて、前記検索範囲の使用が無効にされ、デフォルトの検索の深さの使用が有効にされる、請求項13に記載のシステム。
- プログラム命令が具現化されたコンピュータ可読記憶媒体を備えるコンピュータ・プログラム製品であって、前記コンピュータ可読記憶媒体が、一時的信号それ自体ではなく、前記プログラム命令が、プロセッサによって、
前記プロセッサのストリーム・ベース・インデックス・アクセラレータ予測器によって、命令アドレスと命令ストリームを終了させる行われる分岐との間の予測ストリーム長を決定することと、
前記命令アドレスと前記予測ストリーム長とによって境界される検索範囲内の1つまたは複数のエントリにおける分岐予測を見つけるために前記プロセッサの階層的非同期先読み分岐予測器の第1のレベルの分岐予測器を検索することと、
前記検索範囲内の前記分岐予測を見つけるのに失敗することに基づいて前記階層的非同期先読み分岐予測器の第2のレベルの分岐予測器の検索をトリガすることと
を含む方法を前記プロセッサに実施させるように実行可能である、コンピュータ・プログラム製品。 - 前記第1のレベルの分岐予測器が、分岐ターゲット・バッファと分岐ターゲット・バッファ・プリロード・テーブルとを備える、請求項15に記載のコンピュータ・プログラム製品。
- 前記プログラム命令により、前記プロセッサが、
前記第2のレベルの分岐予測器の前記検索に基づいて複数の分岐を前記第2のレベルの分岐予測器から前記分岐ターゲット・バッファまたは前記分岐ターゲット・バッファ・プリロード・テーブルに転送することをさらに実施する、請求項16に記載のコンピュータ・プログラム製品。 - 前記階層的非同期先読み分岐予測器の前記第2のレベルの分岐予測器の前記検索をトリガすることが、デフォルトの検索の深さに達する前に実施される、請求項15に記載のコンピュータ・プログラム製品。
- 前記階層的非同期先読み分岐予測器の前記第2のレベルの分岐予測器の前記検索が、デフォルトの検索の深さを超えて拡張される、請求項15に記載のコンピュータ・プログラム製品。
- 前記プログラム命令により、前記プロセッサが、
前記ストリーム・ベース・インデックス・アクセラレータ予測器が前記予測ストリーム長を正しく予測し前記正しい予測が使用される回数に基づいて精度カウンタを更新することと、
前記精度カウンタが精度閾値超であることを決定することに基づいて前記検索範囲の使用を有効にすることと、
前記精度カウンタが前記精度閾値未満であることを決定することに基づいて前記検索範囲の使用を無効にし、デフォルトの検索の深さの使用を有効にすることと
をさらに実施する、請求項15に記載のコンピュータ・プログラム製品。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/376,847 US10394559B2 (en) | 2016-12-13 | 2016-12-13 | Branch predictor search qualification using stream length prediction |
US15/376,847 | 2016-12-13 | ||
PCT/EP2017/081131 WO2018108574A1 (en) | 2016-12-13 | 2017-12-01 | Branch predictor search qualification using stream length prediction |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020501242A true JP2020501242A (ja) | 2020-01-16 |
JP7034159B2 JP7034159B2 (ja) | 2022-03-11 |
Family
ID=60569917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019527211A Active JP7034159B2 (ja) | 2016-12-13 | 2017-12-01 | ストリーム長予測を使用する分岐予測器検索限定 |
Country Status (7)
Country | Link |
---|---|
US (1) | US10394559B2 (ja) |
JP (1) | JP7034159B2 (ja) |
CN (1) | CN109791494B (ja) |
DE (1) | DE112017005014B4 (ja) |
GB (1) | GB2571899B (ja) |
TW (1) | TWI651648B (ja) |
WO (1) | WO2018108574A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11550588B2 (en) * | 2018-08-22 | 2023-01-10 | Advanced Micro Devices, Inc. | Branch target filtering based on memory region access count |
US11614944B2 (en) * | 2020-11-09 | 2023-03-28 | Centaur Technology, Inc. | Small branch predictor escape |
US11556474B1 (en) | 2021-08-19 | 2023-01-17 | International Business Machines Corporation | Integrated semi-inclusive hierarchical metadata predictor |
US11928471B2 (en) | 2021-08-19 | 2024-03-12 | International Business Machines Corporation | Metadata predictor |
US11782919B2 (en) | 2021-08-19 | 2023-10-10 | International Business Machines Corporation | Using metadata presence information to determine when to access a higher-level metadata table |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000105699A (ja) * | 1998-08-31 | 2000-04-11 | Stmicroelectronics Inc | 命令レベル並列性を増加させるためのリザベ―ションステ―ション |
US20130339695A1 (en) * | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Asynchronous lookahead second level branch target buffer |
JP2016507092A (ja) * | 2013-01-15 | 2016-03-07 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 分岐予測のための信頼性閾値ベースの対抗分岐パス実行 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5507028A (en) * | 1992-03-30 | 1996-04-09 | International Business Machines Corporation | History based branch prediction accessed via a history based earlier instruction address |
US5574871A (en) | 1994-01-04 | 1996-11-12 | Intel Corporation | Method and apparatus for implementing a set-associative branch target buffer |
US6076141A (en) * | 1996-01-24 | 2000-06-13 | Sun Microsytems, Inc. | Look-up switch accelerator and method of operating same |
US6092187A (en) | 1997-09-19 | 2000-07-18 | Mips Technologies, Inc. | Instruction prediction based on filtering |
US6185675B1 (en) * | 1997-10-24 | 2001-02-06 | Advanced Micro Devices, Inc. | Basic block oriented trace cache utilizing a basic block sequence buffer to indicate program order of cached basic blocks |
US6263427B1 (en) | 1998-09-04 | 2001-07-17 | Rise Technology Company | Branch prediction mechanism |
US6339822B1 (en) * | 1998-10-02 | 2002-01-15 | Advanced Micro Devices, Inc. | Using padded instructions in a block-oriented cache |
US7082520B2 (en) | 2002-05-09 | 2006-07-25 | International Business Machines Corporation | Branch prediction utilizing both a branch target buffer and a multiple target table |
US7873818B2 (en) * | 2008-02-22 | 2011-01-18 | International Business Machines Corporation | System and method for search area confined branch prediction |
US8443176B2 (en) * | 2008-02-25 | 2013-05-14 | International Business Machines Corporation | Method, system, and computer program product for reducing cache memory pollution |
US8543796B2 (en) * | 2008-11-05 | 2013-09-24 | Intel Corporation | Optimizing performance of instructions based on sequence detection or information associated with the instructions |
US9235419B2 (en) | 2012-06-11 | 2016-01-12 | International Business Machines Corporation | Branch target buffer preload table |
US9250912B2 (en) * | 2012-06-12 | 2016-02-02 | International Business Machines Corporation | Fast index tree for accelerated branch prediction |
US9280351B2 (en) | 2012-06-15 | 2016-03-08 | International Business Machines Corporation | Second-level branch target buffer bulk transfer filtering |
KR102077753B1 (ko) | 2013-10-25 | 2020-04-07 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | 레벨 1 명령 캐시 및 분기 예측 유닛에서의 대역폭 증가 |
US9563430B2 (en) | 2014-03-19 | 2017-02-07 | International Business Machines Corporation | Dynamic thread sharing in branch prediction structures |
US20170046159A1 (en) * | 2015-08-14 | 2017-02-16 | Qualcomm Incorporated | Power efficient fetch adaptation |
-
2016
- 2016-12-13 US US15/376,847 patent/US10394559B2/en not_active Expired - Fee Related
-
2017
- 2017-11-09 TW TW106138706A patent/TWI651648B/zh active
- 2017-12-01 CN CN201780060505.9A patent/CN109791494B/zh active Active
- 2017-12-01 GB GB1909974.6A patent/GB2571899B/en active Active
- 2017-12-01 WO PCT/EP2017/081131 patent/WO2018108574A1/en active Application Filing
- 2017-12-01 DE DE112017005014.6T patent/DE112017005014B4/de active Active
- 2017-12-01 JP JP2019527211A patent/JP7034159B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000105699A (ja) * | 1998-08-31 | 2000-04-11 | Stmicroelectronics Inc | 命令レベル並列性を増加させるためのリザベ―ションステ―ション |
US20130339695A1 (en) * | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Asynchronous lookahead second level branch target buffer |
JP2016507092A (ja) * | 2013-01-15 | 2016-03-07 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 分岐予測のための信頼性閾値ベースの対抗分岐パス実行 |
Also Published As
Publication number | Publication date |
---|---|
DE112017005014T5 (de) | 2019-07-11 |
TW201823969A (zh) | 2018-07-01 |
GB201909974D0 (en) | 2019-08-28 |
CN109791494A (zh) | 2019-05-21 |
GB2571899A (en) | 2019-09-11 |
TWI651648B (zh) | 2019-02-21 |
GB2571899B (en) | 2021-07-21 |
US20180165094A1 (en) | 2018-06-14 |
JP7034159B2 (ja) | 2022-03-11 |
CN109791494B (zh) | 2023-08-11 |
US10394559B2 (en) | 2019-08-27 |
WO2018108574A1 (en) | 2018-06-21 |
DE112017005014B4 (de) | 2023-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7034159B2 (ja) | ストリーム長予測を使用する分岐予測器検索限定 | |
US10185570B2 (en) | Dynamic thread sharing in branch prediction structures | |
US10613869B2 (en) | Branch target address provision | |
US10042776B2 (en) | Prefetching based upon return addresses | |
JPH03147022A (ja) | 分岐命令処理装置および処理方法 | |
US10795683B2 (en) | Predicting indirect branches using problem branch filtering and pattern cache | |
US10642619B2 (en) | Branch prediction using multi-way pattern history table (PHT) and global path vector (GPV) | |
KR101081674B1 (ko) | 워킹 글로벌 히스토리 레지스터를 이용하기 위한 시스템 및 방법 | |
JP2003005956A (ja) | 分岐予測装置、プロセッサ、及び分岐予測方法 | |
US11163573B2 (en) | Hierarchical metadata predictor with periodic updates | |
US10423420B2 (en) | Stream based branch prediction index accelerator for multiple stream exits | |
US11099849B2 (en) | Method for reducing fetch cycles for return-type instructions | |
US10691460B2 (en) | Pointer associated branch line jumps for accelerated line jumps | |
US8909907B2 (en) | Reducing branch prediction latency using a branch target buffer with a most recently used column prediction | |
US9639370B1 (en) | Software instructed dynamic branch history pattern adjustment | |
KR20170001602A (ko) | 마이크로 프로세서의 프론트 엔드 및 이를 이용한 컴퓨터 구현 방법 | |
US10430195B2 (en) | Stream based branch prediction index accelerator with power prediction | |
US11194575B2 (en) | Instruction address based data prediction and prefetching | |
US11182165B2 (en) | Skip-over offset branch prediction | |
US11151054B2 (en) | Speculative address translation requests pertaining to instruction cache misses | |
US7343481B2 (en) | Branch prediction in a data processing system utilizing a cache of previous static predictions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200624 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210727 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210831 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211129 |
|
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: 20220222 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220301 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7034159 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |