JP5154763B2 - 複数の命令セットデータ処理システム内の条件付分岐命令エンコーディング - Google Patents
複数の命令セットデータ処理システム内の条件付分岐命令エンコーディング Download PDFInfo
- Publication number
- JP5154763B2 JP5154763B2 JP2006095476A JP2006095476A JP5154763B2 JP 5154763 B2 JP5154763 B2 JP 5154763B2 JP 2006095476 A JP2006095476 A JP 2006095476A JP 2006095476 A JP2006095476 A JP 2006095476A JP 5154763 B2 JP5154763 B2 JP 5154763B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- instruction set
- encoding
- data processing
- 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
- 238000012545 processing Methods 0.000 title claims description 43
- 230000007246 mechanism Effects 0.000 claims description 18
- 238000000034 method Methods 0.000 claims description 17
- 239000000872 buffer Substances 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 5
- 238000003672 processing method Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 4
- 210000003813 thumb Anatomy 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000153 supplemental 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- 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/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- 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/30181—Instruction operation extension or modification
- G06F9/30196—Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
-
- 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
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)
Description
14 パイプライン
18 フェッチアドレス
20 グローバルヒストリレジスタ
31 ヒストリ更新
Claims (22)
- データ処理装置であって、前記装置は:
第1命令セットの命令エンコーディングに従いデータ処理動作を制御するためにプログラム命令をデコードするよう第1状態と、第2命令セットの命令エンコーディングに従いデータ処理動作を制御するためにプログラム命令をデコードするよう第2状態とで動作可能な命令デコーダを具備し;
少なくとも前記第1命令セットの条件付分岐命令と前記第2命令セットの条件付分岐命令とが、共通の命令エンコーディングを共有し、前記第2命令セットは、固有の(命令エンコーディングが前記第1命令セットとは共通でない)無条件分岐命令を有することを特徴とする装置。 - 前記第2命令セットは、前記第1命令セットで各種データ処理動作に対応する命令エンコーディングを有する少なくとも1つの無条件分岐命令を含むことを特徴とする請求項1に記載の装置。
- 前記第1命令セットは、前記第2命令セットによりサポートされていないデータ処理動作に対応する1つ以上のプログラム命令を有し、前記第2命令セットは、前記第1命令セットによりサポートされていないデータ処理動作に対応する1つ以上のプログラム命令を有することを特徴とする請求項1に記載の装置。
- 前記第1状態で動作しかつ前記第1エンコーディングに従いプログラム命令をデコードするか又は前記第2状態で動作しかつ前記第2エンコーディングに従いプログラム命令をデコードするよう前記命令デコーダを制御する1つ以上の状態ビットを記憶するカレントプロセッサ状態レジスタを具備することを特徴とする請求項1に記載の装置。
- 分岐予測メカニズムを具備し、前記共通の命令エンコーディングは、前記装置が前記第1状態又は前記第2状態のいずれでも無関係に前記分岐予測メカニズムを動作可能とすることを特徴とする請求項1に記載の装置。
- 前記分岐予測メカニズムは、以前出現しテイクされた分岐命令のアドレスを記憶するよう動作可能な分岐先バッファを含むことを特徴とする請求項5に記載の装置。
- 前記分岐予測メカニズムは、以前出現した分岐命令のシーケンスに関して各分岐結果を示すヒストリ値を記憶する少なくとも1つのヒストリレジスタを含み、前記分岐予測メカニズムが、前記ヒストリ値の更新のために予測されずテイクされなかった分岐命令を識別するようプログラム命令を少なくとも部分的にデコードするよう動作可能であることを特徴とする請求項6に記載の装置。
- 前記第2命令セットは、前記第1命令セットで各種データ処理動作に対応する命令エンコーディングを有する少なくとも1つの無条件分岐命令を含み、前記ヒストリ値が、前記第1命令セットで各種データ処理動作に対応する命令エンコーディングを有する任意のプリディケーションによりテイクされなかった無条件分岐命令について更新されないことを特徴とする請求項7に記載の装置。
- 前記第1命令セット及び前記第2命令セットの少なくとも1つは、1つ以上の次のプログラム命令をプリディケートするよう動作可能な1つ以上のプリディケーション命令を含むことを特徴とする請求項1に記載の装置。
- 前記第1命令セットと前記第2命令セットの共通の命令エンコーディングを共有する命令には、前記両命令セットの条件付分岐命令に加えて前記両命令セットの無条件分岐命令も含まれることを特徴とする請求項1に記載の装置。
- データ処理方法であって、前記方法は:
第1状態で、第1命令セットの命令エンコーディングに従いデータ処理動作を制御するためにプログラム命令を命令デコーダによってデコードし、かつ
第2状態で、第2命令セットの命令エンコーディングに従いデータ処理動作を制御するためにプログラム命令を命令デコーダによってデコードすることを具備し;
少なくとも前記第1命令セットの条件付分岐命令と前記第2命令セットの条件付分岐命令とが、共通の命令エンコーディングを共有し、前記第2命令セットは、固有の(命令エンコーディングが前記第1命令セットとは共通でない)無条件分岐命令を有するものであることを特徴とする方法。 - 前記第2命令セットは、前記第1命令セットで各種データ処理動作に対応する命令エンコーディングを有する少なくとも1つの無条件分岐命令を含むものであることを特徴とする請求項11に記載の方法。
- 前記第1命令セットは、前記第2命令セットによりサポートされていないデータ処理動作に対応する1つ以上のプログラム命令を有し、前記第2命令セットは、前記第1命令セットによりサポートされていないデータ処理動作に対応する1つ以上のプログラム命令を有するものであることを特徴とする請求項11に記載の方法。
- カレントプロセッサ状態レジスタは、前記第1状態及び前記第2状態のうち1つで動作を選択するために1つ以上の状態ビットを記憶するものであることを特徴とする請求項11に記載の方法。
- 前記共通の命令エンコーディングは、前記A方法が前記第1状態又は前記第2状態のいずれでも無関係に分岐予測メカニズムを動作可能とするものであることを特徴とする請求項11に記載の方法。
- 前記分岐予測メカニズムは、以前出現しテイクされていない分岐命令のアドレスを記憶するよう動作可能な分岐先バッファを含むものであることを特徴とする請求項15に記載の方法。
- 前記分岐予測メカニズムは、以前出現した分岐命令のシーケンスに関して各分岐結果を示すヒストリ値を記憶する少なくとも1つのヒストリレジスタを含み、前記分岐予測メカニズムが、前記ヒストリ値を更新するために予測されずテイクされなかった分岐予測を識別するようプログラム命令を少なくとも部分的にデコードするよう動作可能であることを特徴とする請求項16に記載の方法。
- 前記第2命令セットは、前記第1命令セットで各種データ処理動作に対応する命令エンコーディングを有する少なくとも1つの無条件分岐命令を含み、前記ヒストリ値が、前記第1命令セットで各種データ処理動作に対応する命令エンコーディングを有する任意のプリディケーションによりテイクされなかった無条件分岐命令について更新されないものであることを特徴とする請求項17に記載の方法。
- 前記第1命令セット及び前記第2命令セットの少なくとも1つは、1つ以上の次のプログラム命令をプリディケートするよう動作可能な1つ以上のプリディケーション命令を含むものであることを特徴とする請求項11に記載の方法。
- 前記第1命令セットと前記第2命令セットの共通の命令エンコーディングを共有する命令には、前記両命令セットの条件付分岐命令に加えて前記両命令セットの無条件分岐命令も含まれるものであることを特徴とする請求項11に記載の方法。
- 請求項11に記載の方法に従いデータを処理するためにデータ処理装置を制御するよう動作可能なコンピュータプログラムを記録したコンピュータ読取可能な記録媒体。
- データ処理装置であって、前記装置は:
第1命令セットの命令エンコーディングに従いデータ処理動作を制御するためにプログラム命令をデコードするよう第1状態と、第2命令セットの命令エンコーディングに従いデータ処理動作を制御するためにプログラム命令をデコードするよう第2状態とで動作する命令デコーダ手段を具備し;
少なくとも前記第1命令セットの条件付分岐命令と前記第2命令セットの条件付分岐命令とは、共通の命令エンコーディングを共有し、前記第2命令セットは、固有の(命令エンコーディングが前記第1命令セットとは共通でない)無条件分岐命令を有することを特徴とする装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/095,655 | 2005-04-01 | ||
US11/095,655 US7793078B2 (en) | 2005-04-01 | 2005-04-01 | Multiple instruction set data processing system with conditional branch instructions of a first instruction set and a second instruction set sharing a same instruction encoding |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006285996A JP2006285996A (ja) | 2006-10-19 |
JP5154763B2 true JP5154763B2 (ja) | 2013-02-27 |
Family
ID=36100921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006095476A Active JP5154763B2 (ja) | 2005-04-01 | 2006-03-30 | 複数の命令セットデータ処理システム内の条件付分岐命令エンコーディング |
Country Status (4)
Country | Link |
---|---|
US (1) | US7793078B2 (ja) |
JP (1) | JP5154763B2 (ja) |
CN (1) | CN100524207C (ja) |
GB (1) | GB2424731B (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9710384B2 (en) * | 2008-01-04 | 2017-07-18 | Micron Technology, Inc. | Microprocessor architecture having alternative memory access paths |
GB2478731B (en) * | 2010-03-15 | 2013-08-21 | Advanced Risc Mach Ltd | Operand size control |
US20120159127A1 (en) * | 2010-12-16 | 2012-06-21 | Microsoft Corporation | Security sandbox |
KR101642556B1 (ko) * | 2012-09-21 | 2016-07-25 | 인텔 코포레이션 | 이진 번역을 수행하기 위한 방법 및 시스템 |
SG10201705226WA (en) | 2013-09-03 | 2017-07-28 | Fugro Chance Inc | Interactive remote guidance system for seaborne vessels |
US10545765B2 (en) | 2017-05-17 | 2020-01-28 | International Business Machines Corporation | Multi-level history buffer for transaction memory in a microprocessor |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5781750A (en) * | 1994-01-11 | 1998-07-14 | Exponential Technology, Inc. | Dual-instruction-set architecture CPU with hidden software emulation mode |
GB2289354B (en) * | 1994-05-03 | 1997-08-27 | Advanced Risc Mach Ltd | Multiple instruction set mapping |
US5634119A (en) | 1995-01-06 | 1997-05-27 | International Business Machines Corporation | Computer processing unit employing a separate millicode branch history table |
US5742804A (en) | 1996-07-24 | 1998-04-21 | Institute For The Development Of Emerging Architectures, L.L.C. | Instruction prefetch mechanism utilizing a branch predict instruction |
US6108775A (en) * | 1996-12-30 | 2000-08-22 | Texas Instruments Incorporated | Dynamically loadable pattern history tables in a multi-task microprocessor |
US6021489A (en) | 1997-06-30 | 2000-02-01 | Intel Corporation | Apparatus and method for sharing a branch prediction unit in a microprocessor implementing a two instruction set architecture |
US6108776A (en) * | 1998-04-30 | 2000-08-22 | International Business Machines Corporation | Globally or selectively disabling branch history table operations during sensitive portion of millicode routine in millimode supporting computer |
US6418527B1 (en) * | 1998-10-13 | 2002-07-09 | Motorola, Inc. | Data processor instruction system for grouping instructions with or without a common prefix and data processing system that uses two or more instruction grouping methods |
US6446197B1 (en) | 1999-10-01 | 2002-09-03 | Hitachi, Ltd. | Two modes for executing branch instructions of different lengths and use of branch control instruction and register set loaded with target instructions |
US6701426B1 (en) | 1999-10-19 | 2004-03-02 | Ati International Srl | Switching between a plurality of branch prediction processes based on which instruction set is operational wherein branch history data structures are the same for the plurality of instruction sets |
GB2367915B (en) * | 2000-10-09 | 2002-11-13 | Siroyan Ltd | Instruction sets for processors |
EP1387252B1 (en) * | 2002-07-31 | 2019-02-13 | Texas Instruments Incorporated | Instruction prefix to indicate system commands |
GB2402764B (en) | 2003-06-13 | 2006-02-22 | Advanced Risc Mach Ltd | Instruction encoding within a data processing apparatus having multiple instruction sets |
-
2005
- 2005-04-01 US US11/095,655 patent/US7793078B2/en active Active
-
2006
- 2006-02-02 GB GB0602112A patent/GB2424731B/en active Active
- 2006-03-30 JP JP2006095476A patent/JP5154763B2/ja active Active
- 2006-04-03 CN CNB2006100737403A patent/CN100524207C/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US7793078B2 (en) | 2010-09-07 |
US20060224861A1 (en) | 2006-10-05 |
CN100524207C (zh) | 2009-08-05 |
JP2006285996A (ja) | 2006-10-19 |
GB2424731A (en) | 2006-10-04 |
GB0602112D0 (en) | 2006-03-15 |
CN1841315A (zh) | 2006-10-04 |
GB2424731B (en) | 2008-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6898699B2 (en) | Return address stack including speculative return address buffer with back pointers | |
JP3565504B2 (ja) | プロセッサにおける分岐予測方法及びプロセッサ | |
US7159103B2 (en) | Zero-overhead loop operation in microprocessor having instruction buffer | |
US8250349B2 (en) | Branch prediction control device having return address stack and method of branch prediction | |
US4860197A (en) | Branch cache system with instruction boundary determination independent of parcel boundary | |
TWI499975B (zh) | 具有遲滯現象下一個提取預測器之訓練 | |
JP3594506B2 (ja) | マイクロプロセッサの分岐命令予測方法 | |
US7624253B2 (en) | Determining register availability for register renaming | |
US7831817B2 (en) | Two-level branch prediction apparatus | |
CN106681695B (zh) | 提前取出分支目标缓冲器 | |
JP5154763B2 (ja) | 複数の命令セットデータ処理システム内の条件付分岐命令エンコーディング | |
JP2003005956A (ja) | 分岐予測装置、プロセッサ、及び分岐予測方法 | |
JP4727491B2 (ja) | 分岐予測コントロール | |
JP2006520964A (ja) | 分岐ターゲットに基づいて分岐予測をするための方法および装置 | |
US5964869A (en) | Instruction fetch mechanism with simultaneous prediction of control-flow instructions | |
JP2006520964A5 (ja) | ||
US6910104B2 (en) | Icache-based value prediction mechanism | |
JP2007041837A (ja) | 命令プリフェッチ装置及び命令プリフェッチ方法 | |
JP3486690B2 (ja) | パイプライン方式プロセッサ | |
CN106557304B (zh) | 用于预测子程序返回指令的目标的取指单元 | |
JPH1040104A (ja) | 分岐命令の結果予測装置及び方法 | |
JP2004038338A (ja) | 分岐予測機構を有する情報処理装置 | |
JP4728877B2 (ja) | マイクロプロセッサおよびパイプライン制御方法 | |
US20060112262A1 (en) | Branch prediction of unconditionally executed branch instructions | |
WO2002039272A9 (en) | Method and apparatus for reducing branch latency |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080409 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100906 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100914 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101208 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110913 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111201 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120717 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121004 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20121017 |
|
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: 20121106 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121206 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151214 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5154763 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |