JPWO2012132214A1 - プロセッサ及びその命令処理方法 - Google Patents
プロセッサ及びその命令処理方法 Download PDFInfo
- Publication number
- JPWO2012132214A1 JPWO2012132214A1 JP2013507100A JP2013507100A JPWO2012132214A1 JP WO2012132214 A1 JPWO2012132214 A1 JP WO2012132214A1 JP 2013507100 A JP2013507100 A JP 2013507100A JP 2013507100 A JP2013507100 A JP 2013507100A JP WO2012132214 A1 JPWO2012132214 A1 JP WO2012132214A1
- Authority
- JP
- Japan
- Prior art keywords
- branch
- instruction
- fetch
- information
- 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 claims abstract description 9
- 238000000034 method Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 17
- 238000013519 translation Methods 0.000 description 4
- 230000007704 transition Effects 0.000 description 3
- 101100290389 Schizosaccharomyces pombe (strain 972 / ATCC 24843) ceg1 gene Proteins 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length 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/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3816—Instruction alignment, e.g. cache line crossing
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)
- Executing Machine-Instructions (AREA)
Abstract
Description
実行した分岐命令が成立(Taken)すると、すなわち予測ヒットすると、Strongly Taken(11)状態をそのまま維持する。実行した分岐命令が不成立(Not Taken)であれば、すなわち予測ミスであれば、Weakly Taken(10)に遷移する。
実行した分岐命令が成立(Taken)すると(予測ヒット)、Strongly Taken(11)に遷移する。実行した分岐命令が不成立(Not Taken)である(予測ミス)、Strongly Not-Taken(00)に遷移する。
実行した分岐命令が成立(Taken)すると(予測ヒット)、Strongly Taken(11)に遷移する。
実行した分岐命令が不成立(Not Taken)であると(予測ミス)、Strongly Not-Taken(00)に遷移する。
実行した分岐命令が成立(Taken)すると(予測ヒット)、Weakly Not-Taken(01)に遷移する。実行した分岐命令が不成立(Not Taken)であれば(予測ミス)、Strongly Not-Taken(00)状態をそのまま維持する。
11 実行ユニット
12 BTAC
13 分岐予測ユニット
14 フェッチユニット
15 命令メモリ
16 命令キュー
17 デコード&ディスパッチユニット
e1 分岐元PC
e2 分岐先PC
e3 予測情報
e4 QC情報
E1 実行PC
E2 実行先PC
E3 実行結果
E4 フェッチライン境界情報
Claims (6)
- 分岐命令を含む可変長命令セットを実行するプロセッサであって、
分岐命令の分岐先情報と、前記分岐命令がフェッチラインの境界上にあることを示す境界情報とが格納された分岐情報テーブルと、
前記分岐情報テーブルを参照し、分岐命令を含む可変長命令セットの分岐予測を行う分岐予測ユニットと、
前記分岐予測結果に基づき命令をフェッチするフェッチユニットとを有し、
前記分岐予測ユニットは、前記分岐情報テーブルを参照し、前記フェッチユニットにフェッチさせる命令に前記境界情報がある場合は、続く次のフェッチラインもフェッチさせた後で前記分岐先情報にしたがって分岐予測先をフェッチさせる、プロセッサ。 - 同一サイクルで前記キャッシュの検索及び前記分岐先情報の取得が可能な場合、前記分岐命令がフェッチライン境界上にある場合に当該分岐先情報を一時的に格納するバッファを更に有し、
前記分岐予測ユニットは、前記分岐情報テーブルを参照し、前記フェッチユニットにフェッチさせる命令に前記境界情報がある場合は、前記フェッチユニットが続く次のフェッチラインをフェッチするまで前記分岐先情報を保持する、請求項1記載のプロセッサ。 - 前記分岐情報テーブルは、分岐命令の分岐元アドレス、分岐先アドレス、実際に分岐したか否かを示す予測情報、及び前記境界情報を有する、請求項1又は2記載のプロセッサ。
- 前記分岐命令は、所定の条件が成立したときのみ分離する条件付き分岐命令である、請求項1乃至3のいずれか1項記載のプロセッサ。
- 前記フェッチユニットによりフェッチされた命令を出力する命令メモリと、
前記命令メモリから出力された命令群をデコードするデコードユニットと、
デコードされた命令を実行する実行ユニットとを有し、
前記分岐情報テーブルは、前記実行ユニットから出力される実行アドレス、実行結果、実行先アドレス及びフェッチライン境界情報の情報に基づき更新される、請求項3記載のプロセッサ。 - 分岐命令を含む可変長命令セットを実行するプロセッサの命令処理方法であって、
分岐命令の分岐先情報と、前記分岐命令がフェッチラインの境界上にあることを示す境界情報とが格納された分岐情報テーブルを参照し、分岐命令を含む可変長命令セットの分岐予測を行う分岐予測工程と、
前記分岐予測結果に基づき命令をフェッチするフェッチ工程とを有し、
前記分岐予測工程では、前記分岐情報テーブルを参照し、前記フェッチ工程にてフェッチさせる命令に前記境界情報がある場合は、続く次のフェッチラインもフェッチさせた後で前記分岐先情報にしたがって分岐予測先をフェッチさせる、プロセッサの命令処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013507100A JP5696210B2 (ja) | 2011-03-31 | 2012-02-24 | プロセッサ及びその命令処理方法 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011078561 | 2011-03-31 | ||
JP2011078561 | 2011-03-31 | ||
JP2013507100A JP5696210B2 (ja) | 2011-03-31 | 2012-02-24 | プロセッサ及びその命令処理方法 |
PCT/JP2012/001276 WO2012132214A1 (ja) | 2011-03-31 | 2012-02-24 | プロセッサ及びその命令処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2012132214A1 true JPWO2012132214A1 (ja) | 2014-07-24 |
JP5696210B2 JP5696210B2 (ja) | 2015-04-08 |
Family
ID=46930010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013507100A Expired - Fee Related JP5696210B2 (ja) | 2011-03-31 | 2012-02-24 | プロセッサ及びその命令処理方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20140019722A1 (ja) |
EP (1) | EP2693333A4 (ja) |
JP (1) | JP5696210B2 (ja) |
WO (1) | WO2012132214A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9690587B2 (en) * | 2014-04-08 | 2017-06-27 | International Business Machines Corporation | Variable updates of branch prediction states |
CN112540795A (zh) | 2019-09-23 | 2021-03-23 | 阿里巴巴集团控股有限公司 | 指令处理装置和指令处理方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5574871A (en) * | 1994-01-04 | 1996-11-12 | Intel Corporation | Method and apparatus for implementing a set-associative branch target buffer |
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. |
TW357318B (en) * | 1997-03-18 | 1999-05-01 | Ind Tech Res Inst | Branching forecast and reading device for unspecified command length extra-purity pipeline processor |
US6647490B2 (en) * | 1999-10-14 | 2003-11-11 | Advanced Micro Devices, Inc. | Training line predictor for branch targets |
US7203824B2 (en) * | 2001-07-03 | 2007-04-10 | Ip-First, Llc | Apparatus and method for handling BTAC branches that wrap across instruction cache lines |
WO2004069860A2 (en) * | 2003-02-03 | 2004-08-19 | The Scripps Research Institute | Isg15-conjugated proteins |
US7328332B2 (en) * | 2004-08-30 | 2008-02-05 | Texas Instruments Incorporated | Branch prediction and other processor improvements using FIFO for bypassing certain processor pipeline stages |
US20060200655A1 (en) * | 2005-03-04 | 2006-09-07 | Smith Rodney W | Forward looking branch target address caching |
US7917731B2 (en) * | 2006-08-02 | 2011-03-29 | Qualcomm Incorporated | Method and apparatus for prefetching non-sequential instruction addresses |
US20080040576A1 (en) * | 2006-08-09 | 2008-02-14 | Brian Michael Stempel | Associate Cached Branch Information with the Last Granularity of Branch instruction in Variable Length instruction Set |
-
2012
- 2012-02-24 JP JP2013507100A patent/JP5696210B2/ja not_active Expired - Fee Related
- 2012-02-24 US US14/006,950 patent/US20140019722A1/en not_active Abandoned
- 2012-02-24 WO PCT/JP2012/001276 patent/WO2012132214A1/ja active Application Filing
- 2012-02-24 EP EP12765299.8A patent/EP2693333A4/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP2693333A4 (en) | 2015-08-05 |
JP5696210B2 (ja) | 2015-04-08 |
US20140019722A1 (en) | 2014-01-16 |
WO2012132214A1 (ja) | 2012-10-04 |
EP2693333A1 (en) | 2014-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7437537B2 (en) | Methods and apparatus for predicting unaligned memory access | |
US7278012B2 (en) | Method and apparatus for efficiently accessing first and second branch history tables to predict branch instructions | |
JP3845043B2 (ja) | 命令フェッチ制御装置 | |
US7444501B2 (en) | Methods and apparatus for recognizing a subroutine call | |
KR101081674B1 (ko) | 워킹 글로벌 히스토리 레지스터를 이용하기 위한 시스템 및 방법 | |
JP5815596B2 (ja) | プロシージャリターンシーケンスを加速するための方法およびシステム | |
JP2009536770A (ja) | ブロックに基づく分岐先アドレスキャッシュ | |
JP2010501913A (ja) | 可変長命令セット内の分岐命令の最後の粒度(granularity)と関連付けられたキャッシュ分岐情報 | |
US9710269B2 (en) | Early conditional selection of an operand | |
US20050216713A1 (en) | Instruction text controlled selectively stated branches for prediction via a branch target buffer | |
US20040225866A1 (en) | Branch prediction in a data processing system | |
JP5696210B2 (ja) | プロセッサ及びその命令処理方法 | |
US7519799B2 (en) | Apparatus having a micro-instruction queue, a micro-instruction pointer programmable logic array and a micro-operation read only memory and method for use thereof | |
US20080065870A1 (en) | Information processing apparatus | |
US20090070569A1 (en) | Branch prediction device,branch prediction method, and microprocessor | |
TW200409024A (en) | Processor including branch prediction mechanism for far jump and far call instructions | |
JP4728877B2 (ja) | マイクロプロセッサおよびパイプライン制御方法 | |
US10318303B2 (en) | Method and apparatus for augmentation and disambiguation of branch history in pipelined branch predictors | |
JP5093237B2 (ja) | 命令処理装置 | |
JP3765111B2 (ja) | 分岐登録命令を有するプロセッサ | |
US7343481B2 (en) | Branch prediction in a data processing system utilizing a cache of previous static predictions | |
KR20080000944A (ko) | 파이프라인 구조를 갖는 프로세서 및 그 제어방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140722 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140912 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20141104 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141222 |
|
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: 20150127 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150209 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5696210 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |