JP5154763B2 - 複数の命令セットデータ処理システム内の条件付分岐命令エンコーディング - Google Patents

複数の命令セットデータ処理システム内の条件付分岐命令エンコーディング Download PDF

Info

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
Application number
JP2006095476A
Other languages
English (en)
Other versions
JP2006285996A (ja
Inventor
リチャード・ロイ・グリセンスウェイト
マシュー・ポール・エルウッド
デヴィッド・ジョン・ブッチャー
Original Assignee
アーム・リミテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by アーム・リミテッド filed Critical アーム・リミテッド
Publication of JP2006285996A publication Critical patent/JP2006285996A/ja
Application granted granted Critical
Publication of JP5154763B2 publication Critical patent/JP5154763B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative 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

本発明はデータ処理システムに関する。より具体的には、本発明は複数のプログラム命令セットをサポートするデータ処理システムに関する。
複数の命令セットのプログラム命令に対するネイティブ制御下でデータ処理操作可能なデータ処理システムを使用することが知られている。そのようなシステムの一例として、英国ケンブリッジのARMリミテッドにより製造されたARM/Thumb命令セットをサポートするマイクロプロセッサ設計が挙げられる。これらのマイクロプロセッサは、32ビットのARM命令を実行するARM状態と16ビット又は32ビットのThumb命令を実行するThumb状態とで動作可能である。ARM/Thumb命令の命令セットが関連付けられる一方で、使用される命令エンコーディングが異なり、通常分離した命令デコーダが各命令セットに提供される。
そのようなシステムの高度にパイプライン化された装置内では、命令のデコーディングがパイプライン上のいくつかの異なる段階で発生しうる。例えば、あるデコーディングは、分岐予測と関連したパイプラインで初期に発生しうる。こういった環境では、初期のパイプライン段階でそれら命令に基づき適切に動作させるだけでなく、パイプライン上を通過する命令に関連してプロセッサのカレント状態を追跡しなければならないため、余計に負担がかかる。
1態様によると、本発明はデータ処理装置を提供し、前記装置は、第1命令セットの命令エンコーディングに従いデータ処理動作を制御するためにプログラム命令をデコードするよう第1状態と、第2命令セットの命令エンコーディングに従いデータ処理動作を制御するためにプログラム命令をデコードするよう第2状態とで動作可能な命令デコーダを具備し、少なくとも前記第1命令セットの条件付分岐命令と前記第2命令セットの条件付分岐命令とが、実質的に共通の命令エンコーディングを共有することを特徴とする。
命令エンコーディングは、命令/動作を実行するようプロセッサを制御するために、実行するプログラマにより選択された命令/動作とプロセッサに供給されたビットパターンとの間にマッピングを提供する。複数の命令セットをサポートするシステム内では、それぞれがプロセッサの状態毎にアクティブとなり、分離した命令エンコーディングを使用すると、少なくとも第1命令セットの条件付分岐命令及び第2命令セットの条件付分岐命令が実質的に共通の命令エンコーディングを共有している場合に好都合であることが現在の技術で知られている。性能上の理由として、条件付分岐命令は、命令パイプラインの初期段階で頻繁に、例えばパイプラインストールを低減しようとして予測に制約されやすくなる等識別に制約されやすくシステムの振る舞いを左右するような働きをする。これら条件付分岐命令に対し実質的に共通の命令エンコーディングを使用することで、パイプライン内で初期にこれら条件付分岐命令に基づくアクションをサポートすることが必要とされるオーバヘッドで有利な低減を可能とする。所定の命令により指定された動作の僅少な差異は、命令エンコーディングを変更しないとみなされ、例えば各種命令セットのLDR Rd、[Rm、Rn]命令は、Rm+Rn又はRm+Rn*4のいずれか一方でアドレスを計算してもよい。これは、実質的に同じデコーディングハードウェアでデコードされうるため、実質的に共通のエンコーディングとみなされることはいうまでもない。実質的に共通のエンコーディングを共有するのは条件付分岐命令だけかもしれないが、各種設計目的を考えると、条件付及び無条件分岐命令の両方が実質的に共通のエンコーディングを共有できることはいうまでもない。
プロセッサの各種状態でアクティブな各種命令セットが、それら全ての分岐命令エンコーディングを共有できる一方で、所定の分岐命令が命令セットのどれか1つで正当化されうるだけなので、命令エンコーディングビットスペースを最も有効に利用する必要がない。これに従い、ある実施態様では、第2命令セットが第1命令セットで各種データ処理動作に対応する命令エンコーディングを有する少なくとも1つの無条件分岐命令を含む。
故に、命令セットのうち1つで必要とされうるだけの所定タイプの無条件分岐命令は、他の命令セットにとってより有益な各種データ処理動作のためにその命令エンコーディングビットスペースを再利用することができる。
2つの命令セット間の関係は、可変な機能上のオーバラップ及び使用中の命令エンコーディング間のオーバラップを提供しうる。1つの効果的な実装としては、2つの命令セットの命令エンコーディング間に高い共通性があり、それにより、両命令セットにより通常必要とされるそれら処理動作のためにシステム内でリソース再利用を可能とし、なおかつ、各命令セットは、他の命令セットにおけるその命令セット及び各種処理動作のために独自の処理動作に対応する少なくとも所定の命令エンコーディングを備えている。
使用中の命令セット間をスイッチするためにシステムの状態間のスイッチングは、1つ以上の状態ビットを記憶するカレントプロセッサ状態レジスタにより好適に制御される。
各種命令セット内で条件付分岐命令に関して共通のエンコーディングを共有する実用性は、様々な利点を有する一方で、分岐予測メカニズムの動作を最も左右しそうな命令のエンコーディングが共有されることから分かるように、そのような分岐予測メカニズムはその時、システムが第1状態又は第2状態か否かに関係なく作動しうるため、分岐予測メカニズムを有するシステムでは特に役立つ。無条件分岐命令は常にテイク(Taken)されるため、それらは容易に予測され同じ問題に直面しない。
そのような分岐予測メカニズムは:分岐先バッファ;以前出現した分岐命令のシーケンスに関して各分岐結果を示すヒストリ値を記憶する1つ以上のヒストリレジスタ;及びその他を含むような、様々な形式を有することができる。分岐予測メカニズム内でヒストリ値を含み、かつ命令エンコーディングが第1命令セットで各種データ処理動作に対応している少なくとも1つの無条件分岐命令を含む第2命令セットを有するシステムにおいて、ヒストリ値がそのような無条件分岐命令について更新されない場合に好都合である。テイクされたものを除く(例えば、プリディケーション命令によりテイクされない)そのような無条件分岐命令は、統計上稀であり、それによりヒストリ値でのこの正確性欠如は重要ではなく実装を容易にする。
他の態様によると、本発明はデータ処理方法を提供し、前記方法は、第1状態で、第1命令セットの命令エンコーディングに従いデータ処理動作を制御するようプログラム命令をデコードし、かつ第2状態で、第2命令セットの命令エンコーディングに従いデータ処理動作を制御するようプログラム命令をデコードすることを具備し、少なくとも前記第1命令セットの条件付分岐命令と前記第2命令セットの条件付分岐命令とが、実質的に共通の命令エンコーディングを共有するものであることを特徴とする。
本発明の補足的態様は、2つの命令セットからそれぞれ少なくとも1つの命令を含むコンピュータプログラム等の、上記技術に従い動作するようデータ処理装置を制御するコンピュータプログラムを含むコンピュータプログラム製品を提供することである。コンピュータプログラム製品は例えば、物理的媒体により含まれてもよいし、送信されてもよい。
本発明の上述した目的と他の目的、特長及び利点は、添付図面を参照して以下に詳述した実施態様から明らかとなろう。
図1は、命令デコーダ12(分離した命令デコーダを各命令セットに使用してもよい。)の制御下で全て作動するマルチプライヤ6、シフタ8及びアダー10を使用するレジスタバンク4内に記憶されているデータ値に基づきデータ処理動作をなしうるデータ処理システム2を説明している。図1は簡易表示であって、マイクロプロセッサのような、通常のデータ処理システムはさらに多くの回路素子を包含する。命令デコーダ12は、それ自体分離した素子として提供される必要はないが、その命令デコーディングは、他の回路素子/ブロック内でなされてもよい。そのような代替は、本明細書中に含まれる。プログラム命令は、メモリシステムから命令フェッチユニット16により命令パイプライン14へフェッチされる。命令パイプライン14内のプログラム命令は、レジスタバンク4、マルチプライヤ6、シフタ8及びアダー10を設定する制御信号を発生するために命令デコーダ12によりデコードされる。
カレントプロセッサ状態レジスタ11は、現在アクティブな複数の命令セットのいずれかに対応するデータ処理システム2の状態を示す1つ以上の状態ビットを含む値を記憶する。これらの命令セットは、第1命令セット及び第2命令セットでもよい。またシステムは、2個より多い命令セットを有しうる。カレント状態に応じて、命令デコーダ12は、命令パイプライン14内でプログラム命令をインタープリトしかつ適切な制御信号を発生するために各種命令エンコーディングを使用する。本技術において第1命令セット及び第2命令セットはそれぞれ、各種命令セットエンコーディングを有するが、これらは、条件付分岐命令に対する共通の命令エンコーディングを有するように各命令セットの少なくとも条件付分岐命令に関してオーバラップしている。
図2は、第1命令セットと第2命令セットとのエンコーディング間の関係を説明しているベン図である。説明のように、命令セット間の共通部分は、各命令セットの少なくとも条件付分岐命令を含む。その結合部分は、少なくとも1つのプリディケーション命令(後述する)だけでなく少なくともいくつかの無条件分岐命令も含む。各命令セットは、他の命令セットで存在しないか又は別個使用されている特定の処理動作に対応する命令エンコーディングを含む固有部分を有する。例示では、第2命令セットは、少なくともいくつかの固有の無条件分岐命令を含む。全ての非条件付分岐命令のエンコーディングが共通しかつ共通部分の範囲にあることも他の実施態様において可能である。
図3は、命令フェッチユニット16内の分岐予測メカニズムを概略的に説明している。命令キャッシュ17は、フェッチアドレスレジスタ18内に記憶されているフェッチアドレスから命令をフェッチする。フェッチアドレスレジスタ18は、プログラム命令が命令パイプライン14に発行される時それらプログラム命令と関連付けられるアドレスを示すプログラムカウンタ値を記憶する。命令キャッシュ17は、パイプラインに発行される僅少なプログラム命令を局所的に記憶する小型のキャッシュである。プログラム命令と関連付けられたフェッチアドレス(プログラムカウンタ値)は、それらが関連するプログラム命令と共に命令パイプラインに伝達される。実際、命令キューが提供されてもよいが、これは、紙面の都合上本明細書中に説明されていない。
本発明の当業者なら分かるように、先行する命令の最終結果が確定する前に命令フェッチユニット16は、命令をプリフェッチしてこれらを命令パイプライン14に発行する。従って、フェッチされた命令のシーケンスは、先のプログラムフローの予測に基づいている。プログラムフローは通常シーケンシャルであるが、分岐命令はこれを変更できるため、分岐命令が識別され、予測が先の分岐に関係なくなされることが重要である。
図3で説明されている分岐命令メカニズムは、プログラムフロー内で以前出現した分岐命令のシーケンスのテイクされた又はテイクされなかった結果を記憶するグローバルヒストリレジスタ20を含む。このパターン結果は、出現した分岐命令を識別するために、及びその出現した分岐命令に対するテイク存否予測を記憶できるグローバルヒストリバッファ22(他の可能な実施態様では複数のヒストリバッファ又はレジスタを有してもよい)にアドレス指定するために使用される。グローバルヒストリバッファ22のアドレス指定は、命令アドレスの一部に依存してもよい。グローバルヒストリレジスタ20はその時、予測された結果を用いてヒストリ更新回路31で更新され、次回フェッチされる条件付分岐命令と以前出現した分岐の結果との間の相関関係に基づく次回出現する条件付分岐命令に対する結果を予測するために使用される。グローバルヒストリ値を更新する試みにより予測精度が明らかに向上する。行われた予測が不適当と判明した場合、その時グローバルヒストリレジスタ値20は引続き訂正され、グローバルヒストリバッファ内に記憶された予測が修復される。所望の予測ヒステリシス度を提供するために、予測は例えば、強い分岐成立状態(strongly taken)又は弱い分岐成立状態(weakly taken)、弱い分岐不成立状態(weakly not taken)及び強い分岐不成立状態(strongly not taken)のようにマルチレベルにすることができる。
分岐予測のもう1つの態様では、出現した分岐先命令の分岐先アドレスを可能な限り迅速に確定し、又は少なくとも予測できる。分岐先アドレスは、関連した分岐命令がフェッチされる時に確定されなくてもよいが、その分岐命令が以前出現した場合、その時分岐先は、その分岐命令により以前使用された分岐先と同一であることを十分に予測させる。従って、分岐先バッファ24は、分岐先アドレス又はテイクされた分岐をキャッシュするような働きをする。これらのキャッシュされた分岐先アドレスはその時、予測された分岐先アドレスに基づく分岐先位置からプリフェッチユニットが命令のフェッチを開始できるよう使用されうる。
分岐識別回路26は、その部分的ハードワイヤードなデコーディングに基づくプログラム命令ストリームでフェッチされた分岐命令を識別するような働きをする。これらの分岐命令は、両方の命令セットに共通な条件付分岐命令及び無条件分岐命令を含む。(共通しない無条件分岐命令エンコーディングはデコードされないが、それらが稀にプリディケートされた場合にはテイクされないだけである。)このデコーディングは、第1及び第2命令セットが共通のエンコーディングを共有するために簡略化される。分岐命令識別回路26はまた、他の分岐予測メカニズムが関連する分岐命令について以前出現したことを示さない場合に使用されるいずれかの分岐命令形式で出現した分岐命令に関してテイクされなかったインディケーションをデフォルトする。分岐命令識別回路26による分岐命令の識別はまた、グローバルヒストリレジスタ20、グローバルヒストリバッファ22及び分岐先バッファ24のアクションをトリガーするために使用されて前述した命令フェッチアドレスレジスタ18内に記憶された命令フェッチアドレスに基づいてそれらの各種参照及び更新をなす。予測生成回路30は、分岐のテイクされた予測を命令パイプラインに発行する。(命令セット内にプリディケーション命令が無い場合、無条件分岐はその時、そのような分岐が予測されずにテイクされた場合にフラッシュされるため、分岐命令識別回路26によりデコードされる必要がない。予測されたものがテイクされた場合、分岐先バッファ24はその時、テイクされた結果を生成してグローバルヒストリレジスタ20に転送する。)
図4は、任意数の次のプログラム命令(それ自身が条件付であってもなくてもよい)をプリディケートする(例えば、条件をレンダリングする)ために使用されうるプリディケーション命令ITを概略的に説明している。プリディケーション命令ITは、自身の演算を制御する条件コードccを指定する。これらの条件コードは、ゼロフラグの状態、キャリーフラグの状態等にすることができる。IT命令はまた、プリディケートされた個々のプログラム命令が条件コードがパス時又は条件コードがフェイル時のいずれかに関係なく実行されることに関するインディケーションと共にプリディケートする次のプログラム命令の数を指定する。
本発明の実施態様が添付図面を参照して本明細書中に詳述されたが、本発明がそれらの態様のみに限定されず、当業者によって、特許請求の範囲で定義されている本発明の範囲及び精神から逸脱することなく、そこに様々な変更や改良をもたらしうることが理解されよう。
図1は、処理動作を制御するために対応する命令セットをそれぞれ有する複数の状態をサポートするデータ処理装置を概略的に説明している。 図2は、第1命令セットと第2命令セットとの間の関係を説明しているベン図である。 図3は、図1のシステム内で分岐予測メカニズムを概略的に説明している図である。 図4は、プリディケーション命令を概略的に説明している図である。
符号の説明
12 命令デコーダ
14 パイプライン
18 フェッチアドレス
20 グローバルヒストリレジスタ
31 ヒストリ更新

Claims (22)

  1. データ処理装置であって、前記装置は:
    第1命令セットの命令エンコーディングに従いデータ処理動作を制御するためにプログラム命令をデコードするよう第1状態と、第2命令セットの命令エンコーディングに従いデータ処理動作を制御するためにプログラム命令をデコードするよう第2状態とで動作可能な命令デコーダを具備し;
    少なくとも前記第1命令セットの条件付分岐命令と前記第2命令セットの条件付分岐命令とが、共通の命令エンコーディングを共有し、前記第2命令セットは、固有の(命令エンコーディングが前記第1命令セットとは共通でない)無条件分岐命令を有することを特徴とする装置。
  2. 前記第2命令セットは、前記第1命令セットで各種データ処理動作に対応する命令エンコーディングを有する少なくとも1つの無条件分岐命令を含むことを特徴とする請求項1に記載の装置。
  3. 前記第1命令セットは、前記第2命令セットによりサポートされていないデータ処理動作に対応する1つ以上のプログラム命令を有し、前記第2命令セットは、前記第1命令セットによりサポートされていないデータ処理動作に対応する1つ以上のプログラム命令を有することを特徴とする請求項1に記載の装置。
  4. 前記第1状態で動作しかつ前記第1エンコーディングに従いプログラム命令をデコードするか又は前記第2状態で動作しかつ前記第2エンコーディングに従いプログラム命令をデコードするよう前記命令デコーダを制御する1つ以上の状態ビットを記憶するカレントプロセッサ状態レジスタを具備することを特徴とする請求項1に記載の装置。
  5. 分岐予測メカニズムを具備し、前記共通の命令エンコーディングは、前記装置が前記第1状態又は前記第2状態のいずれでも無関係に前記分岐予測メカニズムを動作可能とすることを特徴とする請求項1に記載の装置。
  6. 前記分岐予測メカニズムは、以前出現しテイクされた分岐命令のアドレスを記憶するよう動作可能な分岐先バッファを含むことを特徴とする請求項5に記載の装置。
  7. 前記分岐予測メカニズムは、以前出現した分岐命令のシーケンスに関して各分岐結果を示すヒストリ値を記憶する少なくとも1つのヒストリレジスタを含み、前記分岐予測メカニズムが、前記ヒストリ値の更新のために予測されずテイクされなかった分岐命令を識別するようプログラム命令を少なくとも部分的にデコードするよう動作可能であることを特徴とする請求項6に記載の装置。
  8. 前記第2命令セットは、前記第1命令セットで各種データ処理動作に対応する命令エンコーディングを有する少なくとも1つの無条件分岐命令を含み、前記ヒストリ値が、前記第1命令セットで各種データ処理動作に対応する命令エンコーディングを有する任意のプリディケーションによりテイクされなかった無条件分岐命令について更新されないことを特徴とする請求項7に記載の装置。
  9. 前記第1命令セット及び前記第2命令セットの少なくとも1つは、1つ以上の次のプログラム命令をプリディケートするよう動作可能な1つ以上のプリディケーション命令を含むことを特徴とする請求項1に記載の装置。
  10. 前記第1命令セットと前記第2命令セットの共通の命令エンコーディングを共有する命令には、前記両命令セットの条件付分岐命令に加えて前記両命令セットの無条件分岐命令も含まれることを特徴とする請求項1に記載の装置。
  11. データ処理方法であって、前記方法は:
    第1状態で、第1命令セットの命令エンコーディングに従いデータ処理動作を制御するためにプログラム命令を命令デコーダによってデコードし、かつ
    第2状態で、第2命令セットの命令エンコーディングに従いデータ処理動作を制御するためにプログラム命令を命令デコーダによってデコードすることを具備し;
    少なくとも前記第1命令セットの条件付分岐命令と前記第2命令セットの条件付分岐命令とが、共通の命令エンコーディングを共有し、前記第2命令セットは、固有の(命令エンコーディングが前記第1命令セットとは共通でない)無条件分岐命令を有するものであることを特徴とする方法。
  12. 前記第2命令セットは、前記第1命令セットで各種データ処理動作に対応する命令エンコーディングを有する少なくとも1つの無条件分岐命令を含むものであることを特徴とする請求項11に記載の方法。
  13. 前記第1命令セットは、前記第2命令セットによりサポートされていないデータ処理動作に対応する1つ以上のプログラム命令を有し、前記第2命令セットは、前記第1命令セットによりサポートされていないデータ処理動作に対応する1つ以上のプログラム命令を有するものであることを特徴とする請求項11に記載の方法。
  14. カレントプロセッサ状態レジスタは、前記第1状態及び前記第2状態のうち1つで動作を選択するために1つ以上の状態ビットを記憶するものであることを特徴とする請求項11に記載の方法。
  15. 前記共通の命令エンコーディングは、前記A方法が前記第1状態又は前記第2状態のいずれでも無関係に分岐予測メカニズムを動作可能とするものであることを特徴とする請求項11に記載の方法。
  16. 前記分岐予測メカニズムは、以前出現しテイクされていない分岐命令のアドレスを記憶するよう動作可能な分岐先バッファを含むものであることを特徴とする請求項15に記載の方法。
  17. 前記分岐予測メカニズムは、以前出現した分岐命令のシーケンスに関して各分岐結果を示すヒストリ値を記憶する少なくとも1つのヒストリレジスタを含み、前記分岐予測メカニズムが、前記ヒストリ値を更新するために予測されずテイクされなかった分岐予測を識別するようプログラム命令を少なくとも部分的にデコードするよう動作可能であることを特徴とする請求項16に記載の方法。
  18. 前記第2命令セットは、前記第1命令セットで各種データ処理動作に対応する命令エンコーディングを有する少なくとも1つの無条件分岐命令を含み、前記ヒストリ値が、前記第1命令セットで各種データ処理動作に対応する命令エンコーディングを有する任意のプリディケーションによりテイクされなかった無条件分岐命令について更新されないものであることを特徴とする請求項17に記載の方法。
  19. 前記第1命令セット及び前記第2命令セットの少なくとも1つは、1つ以上の次のプログラム命令をプリディケートするよう動作可能な1つ以上のプリディケーション命令を含むものであることを特徴とする請求項11に記載の方法。
  20. 前記第1命令セットと前記第2命令セットの共通の命令エンコーディングを共有する命令には、前記両命令セットの条件付分岐命令に加えて前記両命令セットの無条件分岐命令も含まれるものであることを特徴とする請求項11に記載の方法。
  21. 請求項11に記載の方法に従いデータを処理するためにデータ処理装置を制御するよう動作可能なコンピュータプログラムを記録したコンピュータ読取可能な記録媒体。
  22. データ処理装置であって、前記装置は:
    第1命令セットの命令エンコーディングに従いデータ処理動作を制御するためにプログラム命令をデコードするよう第1状態と、第2命令セットの命令エンコーディングに従いデータ処理動作を制御するためにプログラム命令をデコードするよう第2状態とで動作する命令デコーダ手段を具備し;
    少なくとも前記第1命令セットの条件付分岐命令と前記第2命令セットの条件付分岐命令とは、共通の命令エンコーディングを共有し、前記第2命令セットは、固有の(命令エンコーディングが前記第1命令セットとは共通でない)無条件分岐命令を有することを特徴とする装置。
JP2006095476A 2005-04-01 2006-03-30 複数の命令セットデータ処理システム内の条件付分岐命令エンコーディング Active JP5154763B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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