JP4009248B2 - 分岐予測装置および分岐予測方法 - Google Patents
分岐予測装置および分岐予測方法 Download PDFInfo
- Publication number
- JP4009248B2 JP4009248B2 JP2003407424A JP2003407424A JP4009248B2 JP 4009248 B2 JP4009248 B2 JP 4009248B2 JP 2003407424 A JP2003407424 A JP 2003407424A JP 2003407424 A JP2003407424 A JP 2003407424A JP 4009248 B2 JP4009248 B2 JP 4009248B2
- Authority
- JP
- Japan
- Prior art keywords
- branch
- prediction
- instruction
- history
- branch prediction
- 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 title claims description 33
- 208000002173 dizziness Diseases 0.000 claims description 24
- 230000007246 mechanism Effects 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 3
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, 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
Description
(1)再命令フェッチとなる分岐命令(前回の予測が間違っていた)
(2)別の分岐予測機構が用いられる分岐命令
(3)グローバルヒストリ100が分岐方向変更と予測した分岐命令
(4)分岐方向以外の状態値(DizzyフラグおよびGiddyフラグの値)変更と予測した分岐命令
同時に完了した複数の分岐命令の分岐情報を受け付ける分岐情報受付手段と、
前記分岐情報受付手段により同時に受け付けられた複数の分岐情報とそれぞれの分岐命令の過去の分岐履歴とに基づいて前記複数の分岐命令の分岐予測を並行して行う並行分岐予測手段と
を備えたことを特徴とする分岐予測装置。
分岐命令を識別する識別子を記憶する識別子記憶手段と、
前記複数の分岐命令のうち前記識別子記憶手段に記憶される識別子と識別子が同一である分岐命令に対して、該分岐命令の過去の分岐履歴および分岐情報に基づいて分岐予測を行う分岐方向予測手段と
を有する分岐予測要素手段を複数備え、該複数の分岐予測要素手段が並行して分岐予測を行うことを特徴とする付記1に記載の分岐予測装置。
前記並行分岐予測手段により並行して行われた複数の分岐予測結果を前記ブランチヒストリに並行して登録する並行登録手段
をさらに備えたことを特徴とする付記1に記載の分岐予測装置。
前記並行分岐予測手段により並行して行われた複数の分岐予測結果のうち所定の数の分岐予測結果を選択する選択手段と、
前記選択手段により選択された所定の数の分岐予測結果を前記ブランチヒストリに登録する選択登録手段と
をさらに備えたことを特徴とする付記1に記載の分岐予測装置。
同時に完了した複数の分岐命令の分岐情報を受け付ける分岐情報受付工程と、
前記分岐情報受付工程により同時に受け付けられた複数の分岐情報とそれぞれの分岐命令の過去の分岐履歴とに基づいて前記複数の分岐命令の分岐予測を並行して行う並行分岐予測工程と
を含んだことを特徴とする分岐予測方法。
分岐命令を識別する識別子を記憶装置から読み出す識別子読出工程と、
前記複数の分岐命令のうち前記識別子読出工程により記憶装置から読み出された識別子と識別子が同一である分岐命令に対して、該分岐命令の過去の分岐履歴および分岐情報に基づいて分岐予測を行う分岐方向予測工程と
を含んだ分岐予測要素工程を並行して複数実行することにより分岐予測を行うことを特徴とする付記12に記載の分岐予測方法。
前記選択工程により選択された所定の数の分岐予測結果を、分岐命令のアドレスと該分岐命令の予測分岐先のアドレスとの対応表を用いて分岐命令の分岐先を予測するブランチヒストリに登録する選択登録工程と
をさらに含んだことを特徴とする付記12に記載の分岐予測方法。
20 命令フェッチ部
30 命令デコーダ
40 分岐リザベーションステーション
50 その他のリザベーションステーション
100,800 グローバルヒストリ
110 グローバルヒストリエントリi
111 タグ部
112,113 比較回路
114 分岐方向予測回路
115,116 AND回路
120 フラグ制御回路
130,140 マージ回路
150 セレクト回路
200 ブランチヒストリ
Claims (8)
- 分岐命令の過去の分岐履歴を用いて分岐予測を行う分岐予測装置であって、
分岐命令のアドレスと該分岐命令の予測分岐先のアドレスとの対応表を用いて分岐命令の分岐先を予測するブランチヒストリと、
同時に完了した複数の分岐命令の分岐情報を受け付ける分岐情報受付手段と、
前記分岐情報受付手段により同時に受け付けられた複数の分岐情報とそれぞれの分岐命令の過去の分岐履歴とに基づいて前記複数の分岐命令が次に実行される場合の分岐予測を並行して行う並行分岐予測手段と、
前記並行分岐予測手段により並行して行われた複数の分岐予測結果のうち、分岐命令に関する所定の優先順位に基づいて、所定の数の分岐予測結果を選択する選択手段と、
前記選択手段により選択された前記所定の数の分岐予測結果を前記ブランチヒストリに登録する選択登録手段と
を備えたことを特徴とする分岐予測装置。 - 前記並行分岐予測手段は、
分岐命令を識別する識別子を記憶する識別子記憶手段と、
前記複数の分岐命令のうち前記識別子記憶手段に記憶される識別子と識別子が同一である分岐命令に対して、該分岐命令の過去の分岐履歴および分岐情報に基づいて分岐予測を行う分岐方向予測手段とを有する分岐予測要素手段を複数備え、
該複数の分岐予測要素手段が並行して分岐予測を行うことを特徴とする請求項1に記載の分岐予測装置。 - 前記識別子記憶手段により記憶される識別子は、分岐命令ごとに異なり、前記分岐方向予測手段は、前記分岐情報受付手段により同時に受け付けられた複数の分岐情報が識別子が同一である分岐命令についての分岐情報であるときは、該複数の分岐情報を順番に受け付けたものとして分岐予測を行うことを特徴とする請求項2に記載の分岐予測装置。
- 前記選択登録手段は、前記選択手段により選択された前記所定の数の分岐予測結果を前記ブランチヒストリに並行して登録することを特徴とする請求項1に記載の分岐予測装置。
- 前記選択手段が選択する分岐予測結果の優先順位は、再命令フェッチとなった分岐命令の分岐予測結果、他の分岐予測機構を更新する分岐予測結果、分岐方向変更と予測された分岐予測結果、前記ブランチヒストリに分岐命令毎に登録される状態を更新する分岐予測結果の順であることを特徴とする請求項1に記載の分岐予測装置。
- 前記他の分岐予測機構は、サブルーチンコールとリターンの無条件分岐命令の対に対して分岐予測を行うことを特徴とする請求項5に記載の分岐予測装置。
- 前記ブランチヒストリに分岐命令毎に登録される状態は、該ブランチヒストリが分岐すると予測して分岐しなかった場合にセットされるDizzyフラグおよび該ブランチヒストリが分岐すると予測して分岐したが分岐先が間違っていた場合にセットされるGiddyフラグであることを特徴とする請求項5に記載の分岐予測装置。
- 分岐命令の過去の分岐履歴を用いて分岐予測を行う分岐予測方法であって、
分岐命令のアドレスと該分岐命令の予測分岐先のアドレスとの対応表を有するブランチヒストリにより分岐命令の分岐先を予測するステップと、
同時に完了した複数の分岐命令の分岐情報を受け付けるステップと、
前記受け付けた複数の分岐情報とそれぞれの分岐命令の過去の分岐履歴とに基づいて前記複数の分岐命令が次に実行される場合の分岐予測を並行して行うステップと、
前記並行して行った複数の分岐予測結果のうち、分岐命令に関する所定の優先順位に基づいて、所定の数の分岐予測結果を選択するステップと、
前記選択した所定の数の分岐予測結果を前記ブランチヒストリに登録するステップと
を含んだことを特徴とする分岐予測方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003407424A JP4009248B2 (ja) | 2003-12-05 | 2003-12-05 | 分岐予測装置および分岐予測方法 |
US10/841,433 US7472263B2 (en) | 2003-12-05 | 2004-05-10 | Method and apparatus for prediction handling multiple branches simultaneously |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003407424A JP4009248B2 (ja) | 2003-12-05 | 2003-12-05 | 分岐予測装置および分岐予測方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005165950A JP2005165950A (ja) | 2005-06-23 |
JP4009248B2 true JP4009248B2 (ja) | 2007-11-14 |
Family
ID=34631751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003407424A Expired - Fee Related JP4009248B2 (ja) | 2003-12-05 | 2003-12-05 | 分岐予測装置および分岐予測方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7472263B2 (ja) |
JP (1) | JP4009248B2 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US7617387B2 (en) * | 2006-09-27 | 2009-11-10 | Qualcomm Incorporated | Methods and system for resolving simultaneous predicted branch instructions |
US7565512B2 (en) * | 2007-02-02 | 2009-07-21 | Kabushiki Kaisha Toshiba | Method, system and apparatus for generation of global branch history |
US7805595B2 (en) * | 2007-04-20 | 2010-09-28 | Arm Limited | Data processing apparatus and method for updating prediction data based on an operation's priority level |
US7849299B2 (en) * | 2008-05-05 | 2010-12-07 | Applied Micro Circuits Corporation | Microprocessor system for simultaneously accessing multiple branch history table entries using a single port |
US8645714B2 (en) | 2010-05-25 | 2014-02-04 | Via Technologies, Inc. | Branch target address cache for predicting instruction decryption keys in a microprocessor that fetches and decrypts encrypted instructions |
US9892283B2 (en) | 2010-05-25 | 2018-02-13 | Via Technologies, Inc. | Decryption of encrypted instructions using keys selected on basis of instruction fetch address |
US9798898B2 (en) | 2010-05-25 | 2017-10-24 | Via Technologies, Inc. | Microprocessor with secure execution mode and store key instructions |
US9967092B2 (en) | 2010-05-25 | 2018-05-08 | Via Technologies, Inc. | Key expansion logic using decryption key primitives |
US9911008B2 (en) | 2010-05-25 | 2018-03-06 | Via Technologies, Inc. | Microprocessor with on-the-fly switching of decryption keys |
WO2012093489A1 (ja) | 2011-01-07 | 2012-07-12 | 富士通株式会社 | 演算処理装置および分岐予測方法 |
CN102520914A (zh) * | 2011-11-04 | 2012-06-27 | 杭州中天微系统有限公司 | 支持多路并行预测的分支预测装置 |
US9395984B2 (en) | 2012-09-12 | 2016-07-19 | Qualcomm Incorporated | Swapping branch direction history(ies) in response to a branch prediction table swap instruction(s), and related systems and methods |
US9348599B2 (en) | 2013-01-15 | 2016-05-24 | International Business Machines Corporation | Confidence threshold-based opposing branch path execution for branch prediction |
JP6273718B2 (ja) * | 2013-08-13 | 2018-02-07 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US10613867B1 (en) * | 2017-07-19 | 2020-04-07 | Apple Inc. | Suppressing pipeline redirection indications |
US10853076B2 (en) * | 2018-02-21 | 2020-12-01 | Arm Limited | Performing at least two branch predictions for non-contiguous instruction blocks at the same time using a prediction mapping |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5434985A (en) * | 1992-08-11 | 1995-07-18 | International Business Machines Corporation | Simultaneous prediction of multiple branches for superscalar processing |
TW345637B (en) | 1994-02-04 | 1998-11-21 | Motorola Inc | Data processor with branch target address cache and method of operation a data processor has a BTAC storing a number of recently encountered fetch address-target address pairs. |
US5758143A (en) * | 1996-10-07 | 1998-05-26 | International Business Machines Corporation | Method for updating a branch history table in a processor which resolves multiple branches in a single cycle |
JP3760041B2 (ja) | 1996-12-09 | 2006-03-29 | 松下電器産業株式会社 | 分岐予測する情報処理装置 |
JP3661727B2 (ja) | 1997-07-10 | 2005-06-22 | 株式会社ダイフク | ピン脱着装置 |
US6151672A (en) | 1998-02-23 | 2000-11-21 | Hewlett-Packard Company | Methods and apparatus for reducing interference in a branch history table of a microprocessor |
US6108773A (en) * | 1998-03-31 | 2000-08-22 | Ip-First, Llc | Apparatus and method for branch target address calculation during instruction decode |
JP2000132391A (ja) | 1998-10-23 | 2000-05-12 | Nec Corp | 分岐予測機構 |
JP3798998B2 (ja) | 2002-06-28 | 2006-07-19 | 富士通株式会社 | 分岐予測装置および分岐予測方法 |
-
2003
- 2003-12-05 JP JP2003407424A patent/JP4009248B2/ja not_active Expired - Fee Related
-
2004
- 2004-05-10 US US10/841,433 patent/US7472263B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2005165950A (ja) | 2005-06-23 |
US20050125646A1 (en) | 2005-06-09 |
US7472263B2 (en) | 2008-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4009248B2 (ja) | 分岐予測装置および分岐予測方法 | |
US7237098B2 (en) | Apparatus and method for selectively overriding return stack prediction in response to detection of non-standard return sequence | |
JP5255367B2 (ja) | 分岐先アドレス・キャッシュを備えたプロセッサおよびデータを処理する方法 | |
TWI386850B (zh) | 用於主動式分支目標位址快取記憶體管理之方法以及裝置 | |
US6550004B1 (en) | Hybrid branch predictor with improved selector table update mechanism | |
US8082428B2 (en) | Methods and system for resolving simultaneous predicted branch instructions | |
KR101081674B1 (ko) | 워킹 글로벌 히스토리 레지스터를 이용하기 위한 시스템 및 방법 | |
JP5734945B2 (ja) | スライドウィンドウブロックベースの分岐ターゲットアドレスキャッシュ | |
US20010020267A1 (en) | Pipeline processing apparatus with improved efficiency of branch prediction, and method therefor | |
JP3565314B2 (ja) | 分岐命令実行制御装置 | |
JP2003005956A (ja) | 分岐予測装置、プロセッサ、及び分岐予測方法 | |
US9411599B2 (en) | Operand fetching control as a function of branch confidence | |
JPH08249181A (ja) | ブランチ予測式データ処理装置および動作方法 | |
US7017030B2 (en) | Prediction of instructions in a data processing apparatus | |
JPH08320788A (ja) | パイプライン方式プロセッサ | |
KR20210058812A (ko) | 소스 오퍼랜드 값들의 예측, 및 명령들의 최적화 처리의 장치 및 방법 | |
JP2004038323A (ja) | 分岐予測装置および分岐予測方法 | |
US7603545B2 (en) | Instruction control method and processor to process instructions by out-of-order processing using delay instructions for branching | |
JP2001236224A (ja) | 分岐予測テーブル汚染の低減方法 | |
US6871275B1 (en) | Microprocessor having a branch predictor using speculative branch registers | |
US6898698B1 (en) | Device predicting a branch of an instruction equivalent to a subroutine return and a method thereof | |
JP2001100994A (ja) | モードを変更する分岐命令を制御する命令処理装置および方法 | |
US6738897B1 (en) | Incorporating local branch history when predicting multiple conditional branch outcomes | |
JP4728877B2 (ja) | マイクロプロセッサおよびパイプライン制御方法 | |
US6745322B1 (en) | Apparatus and method for conditionally flushing a pipeline upon a failure of a test condition |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060525 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061215 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070123 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070323 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070529 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070730 |
|
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: 20070828 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070831 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100907 Year of fee payment: 3 |
|
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: 20100907 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110907 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120907 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120907 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130907 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |