JP2021056598A - 分岐予測回路および命令処理方法 - Google Patents
分岐予測回路および命令処理方法 Download PDFInfo
- Publication number
- JP2021056598A JP2021056598A JP2019176937A JP2019176937A JP2021056598A JP 2021056598 A JP2021056598 A JP 2021056598A JP 2019176937 A JP2019176937 A JP 2019176937A JP 2019176937 A JP2019176937 A JP 2019176937A JP 2021056598 A JP2021056598 A JP 2021056598A
- Authority
- JP
- Japan
- Prior art keywords
- address
- instruction
- branch
- branch prediction
- unit
- 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
- 238000003672 processing method Methods 0.000 title 1
- 238000000034 method Methods 0.000 claims description 32
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000000717 retained 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
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)
Abstract
Description
本発明の第1の実施形態について図を参照して詳細に説明する。図1は、本実施形態の分岐予測回路の構成の概要を示した図である。本発明の分岐予測回路は、分岐先アドレス保存部1と、上位アドレス保存部2と、アドレス生成部3と、分岐制御部4を備えている。分岐先アドレス保存部1は、過去に実行した分岐命令の第1のアドレスと、分岐命令の実行結果として次に実行する命令の第2のアドレスの下位アドレスと、第2のアドレスの上位アドレスの選択に用いる情報および上位アドレスの参照の要否を示す情報を関連づけて保存する。上位アドレス保存部2は、第2のアドレスの上位アドレスを保存する。アドレス生成部3は、新たに実行する命令の第3のアドレスが、分岐先アドレス保存部1が保存している第1のアドレスと一致したときに、上位アドレスの参照が要である場合に第2のアドレスの上位アドレスの選択に用いる情報に対応する上位アドレスを読み出し、分岐先アドレス保存部1が保存している下位アドレスと連結して第2のアドレスを生成する。また、アドレス生成部3は、上位アドレスの参照が否である場合に第3のアドレスの上位アドレスと分岐先アドレス保存部1が保存している下位アドレスを連結して第2のアドレスを生成する。分岐命令実行部4は、アドレス生成部3が生成した第2のアドレスの命令を投機実行する。
本発明の第2の実施形態について図を参照して詳細に説明する。図2は、本実施形態の分岐予測回路の構成を示したブロック図である。本実施形態の分岐予測回路は命令フェッチ部10と、命令キャッシュ部20と、デコーダ部30と、分岐命令スケジューラ部40と、分岐命令実行部50と、分岐予測部60を備えている。
2 上位アドレス保存部
3 アドレス生成部
4 分岐制御部
10 命令フェッチ部
11 プログラムカウンタ
20 命令キャッシュ部
30 デコーダ部
40 分岐命令スケジューラ部
50 分岐命令実行部
60 分岐予測部
61 分岐先バッファ部
62 上位アドレステーブル部
63 分岐予測制御部
101 BPAレジスタ
102 UTAポインタ
Claims (10)
- 過去に実行した分岐命令の第1のアドレスと、前記分岐命令の実行結果として次に実行する命令の第2のアドレスの下位アドレスと、前記第2のアドレスの上位アドレスの選択に用いる情報および前記上位アドレスの参照の要否を示す情報とを関連づけて保存する分岐先アドレス保存手段と、
前記第2のアドレスの上位アドレスを保存する上位アドレス保存手段と、
新たに実行する命令の第3のアドレスが、分岐先アドレス保存手段が保存している前記第1のアドレスと一致したときに、前記上位アドレスの参照が要である場合に前記第2のアドレスの上位アドレスの選択に用いる情報に対応する前記上位アドレスを読み出し、前記分岐先アドレス保存手段が保存している前記下位アドレスと連結して前記第2のアドレスを生成し、前記上位アドレスの参照が否である場合に前記第3のアドレスの上位アドレスと分岐先アドレス保存手段が保存している前記下位アドレスを連結して前記第2のアドレスを生成するアドレス生成手段と、
前記アドレス生成手段が生成した前記第2のアドレスの命令を投機実行する分岐命令実行手段と
を備える分岐予測回路。 - 前記上位アドレス保存手段は、前記第2のアドレスの上位アドレスをアドレステーブルとして保存し、
前記第2のアドレスの上位アドレスの選択に用いる情報は、前記アドレステーブル上の順番を示す情報であることを特徴とする請求項1に記載の分岐予測回路。 - 前記第2のアドレスの上位アドレスの選択に用いる情報が所定の番号であったときに、前記上位アドレスの参照が要であることを示すように設定されていることを特徴とする請求項2に記載の分岐予測回路。
- 前記分岐命令実行手段は、前記第3のアドレスの命令の実行結果として得られた、前記第3のアドレスの命令の次に実行する命令の第4のアドレスと、前記第2のアドレスとを比較し、前記第4のアドレスと前記第2のアドレスが一致しなかったとき、
前記第4のアドレスのデータで、前記分岐先アドレス保存手段と前記上位アドレス保存手段における前記第2のアドレスのデータを更新することを特徴とする請求項1から3いずれかに記載の分岐予測回路。 - 前記分岐命令実行手段は、前記第3のアドレスの命令の実行結果として得られた、前記第3のアドレスの命令の次に実行する命令の第4のアドレスと、前記第2のアドレスとを比較し、前記第4のアドレスと前記第2のアドレスが一致しなかったとき、
前記第2のアドレスの命令の前記投機実行を破棄することを特徴とする請求項1から4いずれかに記載の分岐予測回路。 - 請求項1から5いずれかに記載の分岐予測回路と、
実行する命令のアドレスを命令アドレスとして出力する命令フェッチ手段と、
前記命令フェッチ手段が出力したアドレスの命令を実行する命令実行手段と
を備え、
前記分岐予測回路は、前記命令フェッチ手段が出力した前記アドレスを前記第3のアドレスとして用い、
前記分岐予測回路が前記第2のアドレスを出力したとき、前記命令フェッチ手段は、前記第2のアドレスを前記命令アドレスとして出力するプロセッサ。 - 過去に実行した分岐命令の第1のアドレスと、前記分岐命令の実行結果として次に実行する命令の第2のアドレスの上位アドレスの選択に用いる情報および前記上位アドレスの参照の要否を示す情報と、前記第2のアドレスの下位アドレスとを関連づけて保存し、
前記第2のアドレスの上位アドレスを保存し、
新たに実行する命令の第3のアドレスが、保存している前記第1のアドレスと一致したときに、前記上位アドレスの参照が要である場合に前記第2のアドレスの上位アドレスの選択に用いる情報に対応する前記上位アドレスを読み出し、保存している前記下位アドレスと連結して前記第2のアドレスを生成し、前記上位アドレスの参照が否である場合に前記第3のアドレスの上位アドレスと保存している前記下位アドレスを連結して前記第2のアドレスを生成し、
生成した前記第2のアドレスの命令を投機実行する分岐予測方法。 - 前記第2のアドレスの上位アドレスをアドレステーブルとして保存し、
前記第2のアドレスの上位アドレスの選択に用いる情報は、前記アドレステーブル上の順番を示す情報であることを特徴とする請求項7に記載の分岐予測方法。 - 前記第2のアドレスの上位アドレスの選択に用いる情報が所定の番号であったときに、前記上位アドレスの参照が要であることを示すように設定されていることを特徴とする請求項8に記載の分岐予測方法。
- 前記第3のアドレスの命令の実行結果として得られた、前記第3のアドレスの命令の次に実行する命令の第4のアドレスと、前記第2のアドレスとを比較し、
前記第4のアドレスと前記第2のアドレスが一致しなかったとき、
前記第4のアドレスのデータを用いて、保存されている前記第2のアドレスのデータを更新することを特徴とする請求項7から9いずれかに記載の分岐予測方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019176937A JP7152376B2 (ja) | 2019-09-27 | 2019-09-27 | 分岐予測回路、プロセッサおよび分岐予測方法 |
US17/761,293 US20220350608A1 (en) | 2019-09-27 | 2020-09-02 | Branch prediction circuit and instruction processing method |
PCT/JP2020/033283 WO2021059906A1 (ja) | 2019-09-27 | 2020-09-02 | 分岐予測回路および命令処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019176937A JP7152376B2 (ja) | 2019-09-27 | 2019-09-27 | 分岐予測回路、プロセッサおよび分岐予測方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021056598A true JP2021056598A (ja) | 2021-04-08 |
JP7152376B2 JP7152376B2 (ja) | 2022-10-12 |
Family
ID=75166587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019176937A Active JP7152376B2 (ja) | 2019-09-27 | 2019-09-27 | 分岐予測回路、プロセッサおよび分岐予測方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220350608A1 (ja) |
JP (1) | JP7152376B2 (ja) |
WO (1) | WO2021059906A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220197657A1 (en) * | 2020-12-22 | 2022-06-23 | Intel Corporation | Segmented branch target buffer based on branch instruction type |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007099605A1 (ja) * | 2006-02-28 | 2007-09-07 | Fujitsu Limited | 圧縮したアドレス情報により分岐予測する処理装置 |
US20090249048A1 (en) * | 2008-03-28 | 2009-10-01 | Sergio Schuler | Branch target buffer addressing in a data processor |
JP2013004101A (ja) * | 2011-06-17 | 2013-01-07 | Freescale Semiconductor Inc | データプロセッサ内での分岐先バッファのアドレス指定 |
JP2014109953A (ja) * | 2012-12-03 | 2014-06-12 | Fujitsu Ltd | 演算処理装置、演算処理方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5938761A (en) * | 1997-11-24 | 1999-08-17 | Sun Microsystems | Method and apparatus for branch target prediction |
US6622241B1 (en) * | 2000-02-18 | 2003-09-16 | Hewlett-Packard Development Company, L.P. | Method and apparatus for reducing branch prediction table pollution |
JP2004505345A (ja) * | 2000-07-21 | 2004-02-19 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 分岐ターゲットバッファを有するデータプロセッサ |
US6948053B2 (en) * | 2002-02-25 | 2005-09-20 | International Business Machines Corporation | Efficiently calculating a branch target address |
US7873819B2 (en) * | 2008-01-03 | 2011-01-18 | Freescale Semiconductor, Inc. | Branch target buffer addressing in a data processor |
-
2019
- 2019-09-27 JP JP2019176937A patent/JP7152376B2/ja active Active
-
2020
- 2020-09-02 WO PCT/JP2020/033283 patent/WO2021059906A1/ja active Application Filing
- 2020-09-02 US US17/761,293 patent/US20220350608A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007099605A1 (ja) * | 2006-02-28 | 2007-09-07 | Fujitsu Limited | 圧縮したアドレス情報により分岐予測する処理装置 |
US20090249048A1 (en) * | 2008-03-28 | 2009-10-01 | Sergio Schuler | Branch target buffer addressing in a data processor |
JP2013004101A (ja) * | 2011-06-17 | 2013-01-07 | Freescale Semiconductor Inc | データプロセッサ内での分岐先バッファのアドレス指定 |
JP2014109953A (ja) * | 2012-12-03 | 2014-06-12 | Fujitsu Ltd | 演算処理装置、演算処理方法 |
Non-Patent Citations (1)
Title |
---|
小林 良太郎 他: "2レベル表方式による分岐先バッファ", 情報処理学会論文誌, vol. 第41巻 第5号, JPN6020040106, 15 May 2000 (2000-05-15), JP, pages 1351 - 1359, ISSN: 0004369870 * |
Also Published As
Publication number | Publication date |
---|---|
US20220350608A1 (en) | 2022-11-03 |
WO2021059906A1 (ja) | 2021-04-01 |
JP7152376B2 (ja) | 2022-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4027620B2 (ja) | 分岐予測装置、プロセッサ、及び分岐予測方法 | |
US20050198480A1 (en) | Apparatus and method of controlling instruction fetch | |
TW201423584A (zh) | 提取寬度預測器 | |
US20120089824A1 (en) | Processor and vector load instruction execution method | |
US6910104B2 (en) | Icache-based value prediction mechanism | |
US9465615B2 (en) | Method and apparatus for branch prediction | |
WO2021059906A1 (ja) | 分岐予測回路および命令処理方法 | |
US7613910B2 (en) | Information processing apparatus, method, and computer-readable recording medium for replacing an entry in a memory device | |
WO2012127666A1 (ja) | 演算処理装置、情報処理装置及び演算処理方法 | |
JP3798998B2 (ja) | 分岐予測装置および分岐予測方法 | |
US10853076B2 (en) | Performing at least two branch predictions for non-contiguous instruction blocks at the same time using a prediction mapping | |
EP1622026B1 (en) | Cache memory control unit and cache memory control method | |
US10635591B1 (en) | Systems and methods for selectively filtering, buffering, and processing cache coherency probes | |
KR20220054328A (ko) | 프로세서에서의 인터럽트된 명령어 복구를 위한 레지스터 재명명 맵 테이블(rmt) 상태 복구를 위한 프로세서 재정렬 버퍼(rob)의 순회 최소화 | |
WO2016043271A1 (ja) | プロセッサおよびプロセッサシステム | |
US9575761B2 (en) | System and method for updating an instruction cache following a branch instruction in a semiconductor device | |
JP7077862B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US20200117459A1 (en) | Calculation processing apparatus and method for controlling calculation processing apparatus | |
US9201655B2 (en) | Method, computer program product, and hardware product for eliminating or reducing operand line crossing penalty | |
US11507377B2 (en) | Arithmetic processing circuit and arithmetic processing method | |
US20240118900A1 (en) | Arithmetic processing device and arithmetic processing method | |
US11586444B2 (en) | Processor and pipeline processing method for processing multiple threads including wait instruction processing | |
JP3795055B1 (ja) | 値予測装置、マルチプロセッサシステムおよび値予測方法 | |
US20140068192A1 (en) | Processor and control method of processor | |
US20210124587A1 (en) | Methods and apparatus for handling processor load instructions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190927 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200904 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20201027 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201225 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20210608 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210907 |
|
C60 | Trial request (containing other claim documents, opposition documents) |
Free format text: JAPANESE INTERMEDIATE CODE: C60 Effective date: 20210907 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20210917 |
|
C21 | Notice of transfer of a case for reconsideration by examiners before appeal proceedings |
Free format text: JAPANESE INTERMEDIATE CODE: C21 Effective date: 20210921 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20211021 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20211025 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20211112 |
|
C211 | Notice of termination of reconsideration by examiners before appeal proceedings |
Free format text: JAPANESE INTERMEDIATE CODE: C211 Effective date: 20211116 |
|
C22 | Notice of designation (change) of administrative judge |
Free format text: JAPANESE INTERMEDIATE CODE: C22 Effective date: 20220215 |
|
C22 | Notice of designation (change) of administrative judge |
Free format text: JAPANESE INTERMEDIATE CODE: C22 Effective date: 20220405 |
|
C13 | Notice of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: C13 Effective date: 20220426 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220622 |
|
C22 | Notice of designation (change) of administrative judge |
Free format text: JAPANESE INTERMEDIATE CODE: C22 Effective date: 20220802 |
|
C23 | Notice of termination of proceedings |
Free format text: JAPANESE INTERMEDIATE CODE: C23 Effective date: 20220809 |
|
C03 | Trial/appeal decision taken |
Free format text: JAPANESE INTERMEDIATE CODE: C03 Effective date: 20220906 |
|
C30A | Notification sent |
Free format text: JAPANESE INTERMEDIATE CODE: C3012 Effective date: 20220906 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220929 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7152376 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |