JP6205966B2 - 演算処理装置及び演算処理装置の制御方法 - Google Patents
演算処理装置及び演算処理装置の制御方法 Download PDFInfo
- Publication number
- JP6205966B2 JP6205966B2 JP2013168910A JP2013168910A JP6205966B2 JP 6205966 B2 JP6205966 B2 JP 6205966B2 JP 2013168910 A JP2013168910 A JP 2013168910A JP 2013168910 A JP2013168910 A JP 2013168910A JP 6205966 B2 JP6205966 B2 JP 6205966B2
- Authority
- JP
- Japan
- Prior art keywords
- branch
- instruction
- address
- index
- history
- 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
- 238000000034 method Methods 0.000 title claims description 13
- 230000015654 memory Effects 0.000 description 30
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 29
- 238000001514 detection method Methods 0.000 description 18
- 238000004364 calculation method Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 10
- 101001135738 Homo sapiens Parathyroid hormone-related protein Proteins 0.000 description 3
- 101000589873 Homo sapiens Parathyroid hormone/parathyroid hormone-related peptide receptor Proteins 0.000 description 3
- 102100032256 Parathyroid hormone/parathyroid hormone-related peptide receptor Human genes 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000010365 information processing Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001360 synchronised 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/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/321—Program or instruction counter, e.g. incrementing
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/323—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
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)
Description
図6は、ウェイ選択信号生成部53の構成例を示す図である。ウェイ選択信号生成部53は、分岐履歴から得られる分岐情報のうち、どのウェイの分岐情報を選択するかを決める。ウェイ選択信号生成部53は、非ハッシュインデックスから得られる分岐情報を用いて選択するウェイを決定する。ここでは簡単のため、分岐履歴に有効な分岐命令のエントリが存在していることで、対応する分岐命令が分岐すると予測するものとして説明する。
42 排他的論理和演算回路(XOR回路)
43 分岐先アドレス予測論理
44 分岐先アドレス選択信号生成論理
45 分岐先アドレス選択論理
46 ウェイ選択信号生成論理
47 分岐情報選択論理
51 分岐履歴
52 分岐予測論理部
53 ウェイ選択信号生成部
54 分岐命令検出部
55 分岐先アドレス生成部
56 分岐情報選択部
58 選択回路
59 排他的論理和演算回路(XOR回路)
Claims (4)
- 命令を実行する命令実行部と、
分岐命令の命令アドレスの一部を第1のインデックスとし、前記命令アドレスの一部と分岐命令を含む複数の命令の実行履歴に応じた変動値との排他的論理和を第2のインデックスとして参照する分岐履歴で、さらに同一のインデックスに対して複数のウェイの分岐情報を記憶する前記分岐履歴を有する分岐履歴記憶部と、
前記第1のインデックスと前記第2のインデックスを用いて前記分岐履歴から読み出した複数のウェイの分岐情報に基づいて分岐予測を行い、分岐予測の結果、分岐が成立すると予測した場合に、読み出した前記複数のウェイの中で分岐成立すると予測したウェイの分岐情報を選択し、前記分岐情報に含まれる予測分岐先アドレスを出力する分岐予測部と、
ある分岐命令に対して、前記分岐予測部が出力した予測分岐先アドレスと、前記命令実行部で分岐命令の演算を実行して得られた分岐先アドレスとが異なり、且つ、前記分岐命令の前記第1のインデックスに対応する分岐履歴の分岐情報に含まれるフラグであってアドレス予測ミスを示す第1のフラグが“1”ではない場合、前記分岐命令の前記第1のインデックスに対応する分岐履歴の分岐情報のうち、分岐先アドレスを演算実行結果のアドレスへ更新し、さらに前記第1のフラグを“1”に設定し、前記分岐予測部が出力した予測分岐先アドレスと前記命令実行部で分岐命令の演算を実行して得られた分岐先アドレスとが異なり、且つ、前記分岐命令の前記第1のインデックスに対応する前記分岐履歴の前記第1のフラグが“1”である場合、前記分岐命令の前記第2のインデックスに対応する分岐履歴の分岐情報のうち、分岐先アドレスを演算実行結果のアドレスへ更新し、前記第1のフラグを“1”に設定し、さらに分岐情報に含まれるフラグであって前記第2のインデックスを用いて分岐情報が更新されたことを示す第2のフラグを“1”に設定する、分岐履歴更新部とを有することを特徴とする演算処理装置。 - 前記分岐履歴において、
複数のインデックスに登録された同一命令アドレスの分岐命令のウェイを同一に揃えることを特徴とする請求項1に記載の演算処理装置。 - 前記分岐予測部は、
前記第1のインデックスを用いて前記分岐履歴を参照して得られた第1の分岐情報に含まれる前記第1のフラグと、前記第2のインデックスを用いて前記分岐履歴を参照して得られた第2の分岐情報に含まれる前記第2のフラグとを用いて、前記第1の分岐情報と前記第2の分岐情報との選択を行い、選択された分岐情報に含まれる前記予測分岐先アドレスを出力することを特徴とする請求項1又は2に記載の演算処理装置。 - 命令を実行する命令実行部と、分岐命令の命令アドレスの一部を第1のインデックスとし、前記命令アドレスの一部と分岐命令を含む複数の命令の実行履歴に応じた変動値との排他的論理和を第2のインデックスとして参照する分岐履歴で、さらに同一のインデックスに対して複数のウェイの分岐情報を記憶する前記分岐履歴を有する分岐履歴記憶部とを有する演算処理装置の制御方法において、
前記演算処理装置が有する分岐予測部が、前記第1のインデックスと前記第2のインデックスを用いて前記分岐履歴から読み出した複数のウェイの分岐情報に基づいて分岐予測を行い、分岐予測の結果、分岐が成立すると予測した場合に、読み出した前記複数のウェイの中で分岐成立すると予測したウェイの分岐情報を選択し、前記分岐情報に含まれる予測分岐先アドレスを出力し、
前記演算処理装置が有する分岐履歴更新部が、ある分岐命令に対して、前記分岐予測部が出力した予測分岐先アドレスと、前記命令実行部で分岐命令の演算を実行して得られた分岐先アドレスとが異なり、且つ、前記分岐命令の前記第1のインデックスに対応する分岐履歴の分岐情報に含まれるフラグであってアドレス予測ミスを示す第1のフラグが“1”ではない場合、前記分岐命令の前記第1のインデックスに対応する分岐履歴の分岐情報のうち、分岐先アドレスを演算実行結果のアドレスへ更新し、さらに前記第1のフラグを“1”に設定し、前記分岐予測部が出力した予測分岐先アドレスと前記命令実行部で分岐命令の演算を実行して得られた分岐先アドレスとが異なり、且つ、前記分岐命令の前記第1のインデックスに対応する前記分岐履歴の前記第1のフラグが“1”である場合、前記分岐命令の前記第2のインデックスに対応する分岐履歴の分岐情報のうち、分岐先アドレスを演算実行結果のアドレスへ更新し、前記第1のフラグを“1”に設定し、さらに分岐情報に含まれるフラグであって前記第2のインデックスを用いて分岐情報が更新されたことを示す第2のフラグを“1”に設定することを特徴とする演算処理装置の制御方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013168910A JP6205966B2 (ja) | 2013-08-15 | 2013-08-15 | 演算処理装置及び演算処理装置の制御方法 |
EP14177534.6A EP2840484A2 (en) | 2013-08-15 | 2014-07-17 | Processor and control method of processor |
US14/340,618 US20150052339A1 (en) | 2013-08-15 | 2014-07-25 | Processor and control method of processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013168910A JP6205966B2 (ja) | 2013-08-15 | 2013-08-15 | 演算処理装置及び演算処理装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015036934A JP2015036934A (ja) | 2015-02-23 |
JP6205966B2 true JP6205966B2 (ja) | 2017-10-04 |
Family
ID=51224732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013168910A Active JP6205966B2 (ja) | 2013-08-15 | 2013-08-15 | 演算処理装置及び演算処理装置の制御方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20150052339A1 (ja) |
EP (1) | EP2840484A2 (ja) |
JP (1) | JP6205966B2 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6354640B2 (ja) | 2015-04-03 | 2018-07-11 | コニカミノルタ株式会社 | 画像形成システム、携帯端末およびプログラム |
US10423777B2 (en) * | 2016-04-14 | 2019-09-24 | Endgame, Inc. | Preventing execution of malicious instructions based on address specified in a branch instruction |
US20190004805A1 (en) * | 2017-06-28 | 2019-01-03 | Qualcomm Incorporated | Multi-tagged branch prediction table |
US11023300B2 (en) | 2017-06-30 | 2021-06-01 | Oracle International Corporation | Governing access to third-party application programming interfaces |
US10902152B2 (en) * | 2017-06-30 | 2021-01-26 | Oracle International Corporation | Restricting plug-in application recipes |
US10706180B2 (en) | 2017-07-07 | 2020-07-07 | Endgame, Inc. | System and method for enabling a malware prevention module in response to a context switch within a certain process being executed by a processor |
US10534609B2 (en) * | 2017-08-18 | 2020-01-14 | International Business Machines Corporation | Code-specific affiliated register prediction |
US11520561B1 (en) | 2018-11-28 | 2022-12-06 | Amazon Technologies, Inc. | Neural network accelerator with compact instruct set |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3335379B2 (ja) | 1992-09-09 | 2002-10-15 | 富士通株式会社 | ブランチ・ヒストリーを持つ命令実行処理装置 |
EP1990713B1 (en) * | 2006-02-28 | 2013-04-10 | Fujitsu Ltd. | Branch predicting device for computer |
-
2013
- 2013-08-15 JP JP2013168910A patent/JP6205966B2/ja active Active
-
2014
- 2014-07-17 EP EP14177534.6A patent/EP2840484A2/en not_active Withdrawn
- 2014-07-25 US US14/340,618 patent/US20150052339A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
EP2840484A2 (en) | 2015-02-25 |
JP2015036934A (ja) | 2015-02-23 |
US20150052339A1 (en) | 2015-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6205966B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US10185570B2 (en) | Dynamic thread sharing in branch prediction structures | |
US20090172360A1 (en) | Information processing apparatus equipped with branch prediction miss recovery mechanism | |
CN109643237B (zh) | 分支目标缓冲器压缩 | |
JP2003005956A (ja) | 分岐予測装置、プロセッサ、及び分岐予測方法 | |
KR101126001B1 (ko) | 정보 처리 장치 및 분기 예측 방법 | |
JPH0619707A (ja) | 情報処理装置 | |
US10642619B2 (en) | Branch prediction using multi-way pattern history table (PHT) and global path vector (GPV) | |
CN109308191B (zh) | 分支预测方法及装置 | |
US9465615B2 (en) | Method and apparatus for branch prediction | |
JP5494832B2 (ja) | 演算処理装置および分岐予測方法 | |
US10379858B2 (en) | Method and apparatus for executing conditional instruction predicated on execution result of predicate instruction | |
US20140025932A1 (en) | Processor, information processing device, and control method of processor | |
US9594564B2 (en) | Arithmetic processing device and control method of arithmetic processing device | |
US10620962B2 (en) | Appratus and method for using predicted result values | |
US20170277538A1 (en) | Speculative multi-threading trace prediction | |
US11113066B2 (en) | Predicting a branch instruction classified as simple or hard to predict based on a confidence counter in a branch type table | |
US11010170B2 (en) | Arithmetic processing apparatus which replaces values for future branch prediction upon wrong branch prediction | |
US7428627B2 (en) | Method and apparatus for predicting values in a processor having a plurality of prediction modes | |
US20090070569A1 (en) | Branch prediction device,branch prediction method, and microprocessor | |
US11507377B2 (en) | Arithmetic processing circuit and arithmetic processing method | |
CN117130666A (zh) | 配置方法、分支预测器、指令识别器和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160510 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20161026 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161129 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170123 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170613 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170801 |
|
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: 20170808 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170821 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6205966 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |