JP2008538251A - 投機的分岐予測最適化のためのシステム及びその方法 - Google Patents
投機的分岐予測最適化のためのシステム及びその方法 Download PDFInfo
- Publication number
- JP2008538251A JP2008538251A JP2008505339A JP2008505339A JP2008538251A JP 2008538251 A JP2008538251 A JP 2008538251A JP 2008505339 A JP2008505339 A JP 2008505339A JP 2008505339 A JP2008505339 A JP 2008505339A JP 2008538251 A JP2008538251 A JP 2008538251A
- Authority
- JP
- Japan
- Prior art keywords
- branch prediction
- speculative branch
- processor
- instructions
- depth
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 18
- 238000005457 optimization Methods 0.000 title description 6
- 230000007423 decrease Effects 0.000 claims abstract description 3
- 230000000737 periodic effect Effects 0.000 claims description 8
- 230000003247 decreasing effect Effects 0.000 claims description 2
- 238000011002 quantification Methods 0.000 claims 2
- 230000003044 adaptive effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001419 dependent 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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
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)
Abstract
Description
一方、投機的分岐予測は、最初の条件分岐予測が選ばれなかった場合に、パイプラインは、その投機的分岐予測に関係した命令をプリフェッチしてキャッシュ及び/又はパイプライン自体にロードする際の時間及び電力の双方を浪費してしまうという点で不利となる場合がある。その結果、プロセッサは、パイプラインに誤った予測や分岐の実行を強いるために、また、誤って予測された分岐の実行に起因するデータを除去又は無視するために、エネルギー及び時間を浪費してしまう。
この平均CPIは、命令サイクルについてのプロセッサの投機的分岐予測効率を示すものとして、深度調整モジュール206へ信号204として出力することができる。信号204において出力された平均CPIに基づいて、深度調整モジュール206は、プリフェッチモジュール104に利用可能な投機的分岐予測深度をインクリメントするのか、それともデクリメントするかどうかを判断することができる。
ここで、現在の命令サイクルの平均CPIが前の命令サイクルの平均CPIよりも大きいときは、利用可能な深度をデクリメントすることができ、逆に、現在の命令サイクルの平均CPIが前の命令サイクルの平均CPIよりも小さいときは、深度調整モジュール206は、プリフェッチモジュール104によって使用される利用可能な投機的分岐予測深度をインクリメントすることができる。代替的に、深度調整モジュール206は、CPI値を1つ又は2つ以上のしきい値と比較することに基づいて、プリフェッチモジュール104によって使用される新しい利用可能な投機的分岐予測深度値を求めることもできる。このように、深度調整モジュール206は、所与のアプリケーションに使用される投機的分岐予測深度の有効性を評価するために、或る命令サイクルの平均CPIを前の命令サイクルの平均CPIと比較することに基づいて、利用可能な投機的分岐予測深度を動的に調整することができる。
Claims (10)
- プロセッサによる1つ又は2つ以上の命令の実行中に発生する周期パルス数を定量化し、
前記周期パルス数を所定の値と比較することに基づいて、分岐予測の利用可能な深度を調整する、方法。 - 前記周期パルス数の定量化では、1命令当たりの前記パルスの比率が求められる、請求項1に記載の方法。
- 前記周期パルス数の定量化では、所定数の命令に対する該周期パルス数を求める、請求項1に記載の方法。
- 前記分岐予測の利用可能な深度の調整に従って、前記所定数の命令を調整する、請求項1に記載の方法。
- 前記所定数の命令の調整では、前記分岐予測の利用可能な深度を減少させることに応じて、前記所定数の命令を増加させる、請求項4に記載の方法。
- 前記所定数の命令の調整では、前記分岐予測の利用可能な深度を増加させることに応じて、前記所定数の命令を減少させる、請求項5に記載の方法。
- 前記所定数の命令は、所定の最小数の命令及び所定の最大数の命令によって設定された範囲内に維持される、請求項6に記載の方法。
- 前記分岐予測は、投機的分岐予測を含む、請求項1に記載の方法。
- プロセッサの命令実行効率を定量化するように動作可能な第1の部分(202)と、
前記命令実行効率に基づいて、利用可能な投機的分岐予測深度を調整する第2の部分(206)と
を備える、システム。 - 前記第1の部分(202)は、周期信号を受け取る第1の入力(124)と、命令の実行に応じてアサートされる命令カウント信号を受け取る第2の入力(126)と、実行された命令数と比較される前記周期信号のパルス数の第1の表示を提供する出力(204)とを有し、前記第1の表示は、前記命令実行効率を表す、請求項9に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/098,153 US8001363B2 (en) | 2005-04-04 | 2005-04-04 | System for speculative branch prediction optimization and method thereof |
PCT/US2006/010150 WO2006107581A2 (en) | 2005-04-04 | 2006-03-21 | System for speculative branch prediction optimization and method thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008538251A true JP2008538251A (ja) | 2008-10-16 |
Family
ID=36696018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008505339A Pending JP2008538251A (ja) | 2005-04-04 | 2006-03-21 | 投機的分岐予測最適化のためのシステム及びその方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US8001363B2 (ja) |
EP (1) | EP1866747B1 (ja) |
JP (1) | JP2008538251A (ja) |
KR (1) | KR20070116848A (ja) |
CN (1) | CN100573444C (ja) |
DE (1) | DE602006006429D1 (ja) |
TW (1) | TWI403953B (ja) |
WO (1) | WO2006107581A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021536611A (ja) * | 2018-08-29 | 2021-12-27 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | 分岐信頼スロットル |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI258078B (en) * | 2003-10-07 | 2006-07-11 | Via Tech Inc | Pre-fetch controller and method thereof |
US9304773B2 (en) * | 2006-03-21 | 2016-04-05 | Freescale Semiconductor, Inc. | Data processor having dynamic control of instruction prefetch buffer depth and method therefor |
US7711935B2 (en) * | 2007-04-30 | 2010-05-04 | Netlogic Microsystems, Inc. | Universal branch identifier for invalidation of speculative instructions |
KR100957241B1 (ko) * | 2008-03-14 | 2010-05-12 | 손영전 | 조작 신호 빈도수에 의한 집단 명령 제어 방법 및 장치 |
GB2461902B (en) * | 2008-07-16 | 2012-07-11 | Advanced Risc Mach Ltd | A Method and apparatus for tuning a processor to improve its performance |
CN102750219B (zh) * | 2011-04-22 | 2015-05-20 | 清华大学 | 基于cpu硬件性能监控计数器的cpi精确测量方法 |
US9582284B2 (en) * | 2011-12-01 | 2017-02-28 | International Business Machines Corporation | Performance of processors is improved by limiting number of branch prediction levels |
KR101711388B1 (ko) | 2013-01-28 | 2017-03-02 | 삼성전자주식회사 | 파이프라인에서 블럭을 스케줄하는 컴파일 방법 및 장치 |
CN104966228B (zh) * | 2015-06-15 | 2018-05-25 | 昆明理工大学 | 一种基于arima与lssvm模型的cpi组合预测方法 |
US10255100B2 (en) * | 2015-12-03 | 2019-04-09 | International Business Machines Corporation | Performance optimization engine for processor parameter adjustment |
US10318303B2 (en) | 2017-03-28 | 2019-06-11 | Oracle International Corporation | Method and apparatus for augmentation and disambiguation of branch history in pipelined branch predictors |
CN110825442B (zh) * | 2019-04-30 | 2021-08-06 | 成都海光微电子技术有限公司 | 一种指令预取方法及处理器 |
US11163683B2 (en) | 2019-08-01 | 2021-11-02 | International Business Machines Corporation | Dynamically adjusting prefetch depth |
US11301386B2 (en) | 2019-08-01 | 2022-04-12 | International Business Machines Corporation | Dynamically adjusting prefetch depth |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10240526A (ja) * | 1997-02-27 | 1998-09-11 | Fujitsu Ltd | 分岐予測装置 |
JP2001092659A (ja) * | 1999-09-17 | 2001-04-06 | Nec Corp | 投機実行命令例外制御方式 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IE940855A1 (en) * | 1993-12-20 | 1995-06-28 | Motorola Inc | Data processor with speculative instruction fetching and¹method of operation |
US6092187A (en) | 1997-09-19 | 2000-07-18 | Mips Technologies, Inc. | Instruction prediction based on filtering |
US6523110B1 (en) * | 1999-07-23 | 2003-02-18 | International Business Machines Corporation | Decoupled fetch-execute engine with static branch prediction support |
US6574727B1 (en) * | 1999-11-04 | 2003-06-03 | International Business Machines Corporation | Method and apparatus for instruction sampling for performance monitoring and debug |
US6691220B1 (en) * | 2000-06-06 | 2004-02-10 | International Business Machines Corporation | Multiprocessor speculation mechanism via a barrier speculation flag |
US6728873B1 (en) * | 2000-06-06 | 2004-04-27 | International Business Machines Corporation | System and method for providing multiprocessor speculation within a speculative branch path |
US6748522B1 (en) * | 2000-10-31 | 2004-06-08 | International Business Machines Corporation | Performance monitoring based on instruction sampling in a microprocessor |
US7865747B2 (en) * | 2000-10-31 | 2011-01-04 | International Business Machines Corporation | Adaptive issue queue for reduced power at high performance |
US7024545B1 (en) * | 2001-07-24 | 2006-04-04 | Advanced Micro Devices, Inc. | Hybrid branch prediction device with two levels of branch prediction cache |
-
2005
- 2005-04-04 US US11/098,153 patent/US8001363B2/en active Active
-
2006
- 2006-03-21 JP JP2008505339A patent/JP2008538251A/ja active Pending
- 2006-03-21 DE DE602006006429T patent/DE602006006429D1/de active Active
- 2006-03-21 KR KR1020077022609A patent/KR20070116848A/ko not_active Application Discontinuation
- 2006-03-21 EP EP06739082A patent/EP1866747B1/en not_active Not-in-force
- 2006-03-21 WO PCT/US2006/010150 patent/WO2006107581A2/en active Application Filing
- 2006-03-21 CN CNB2006800110452A patent/CN100573444C/zh active Active
- 2006-03-22 TW TW095109805A patent/TWI403953B/zh not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10240526A (ja) * | 1997-02-27 | 1998-09-11 | Fujitsu Ltd | 分岐予測装置 |
JP2001092659A (ja) * | 1999-09-17 | 2001-04-06 | Nec Corp | 投機実行命令例外制御方式 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021536611A (ja) * | 2018-08-29 | 2021-12-27 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | 分岐信頼スロットル |
JP7430173B2 (ja) | 2018-08-29 | 2024-02-09 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 分岐信頼スロットル |
Also Published As
Publication number | Publication date |
---|---|
DE602006006429D1 (de) | 2009-06-04 |
EP1866747A2 (en) | 2007-12-19 |
KR20070116848A (ko) | 2007-12-11 |
EP1866747B1 (en) | 2009-04-22 |
US8001363B2 (en) | 2011-08-16 |
TW200703093A (en) | 2007-01-16 |
CN101156133A (zh) | 2008-04-02 |
US20060224872A1 (en) | 2006-10-05 |
WO2006107581A2 (en) | 2006-10-12 |
TWI403953B (zh) | 2013-08-01 |
WO2006107581A3 (en) | 2007-02-22 |
CN100573444C (zh) | 2009-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008538251A (ja) | 投機的分岐予測最適化のためのシステム及びその方法 | |
JP5335946B2 (ja) | 電力的に効率的な命令プリフェッチ機構 | |
US7979725B2 (en) | Computer power conservation apparatus and method that controls speculative execution by adjusting branch confidence threshold based on processor load | |
CN104978284B (zh) | 处理器子程序高速缓冲存储器 | |
JP5579694B2 (ja) | 復帰スタックを管理する方法および装置 | |
US20070260853A1 (en) | Switching processor threads during long latencies | |
JP2009501961A (ja) | 予測的なプロセッサコンポーネントサスペンドのためのシステム及びその方法 | |
JP2022500777A (ja) | ループ終了予測を用いたプロセッサのループモードの促進又は抑制 | |
US7941646B2 (en) | Completion continue on thread switch based on instruction progress metric mechanism for a microprocessor | |
US7130991B1 (en) | Method and apparatus for loop detection utilizing multiple loop counters and a branch promotion scheme | |
US9489204B2 (en) | Method and apparatus for precalculating a direct branch partial target address during a misprediction correction process | |
US10324727B2 (en) | Memory dependence prediction | |
WO2002050667A2 (en) | Speculative register adjustment | |
CN117632262A (zh) | 分支预测方法及系统、分支预测器、处理器和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090310 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20100421 |
|
RD05 | Notification of revocation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7425 Effective date: 20100902 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120314 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120808 |