JP2003517679A - 分離された条件及びアドレスを有する分岐命令 - Google Patents

分離された条件及びアドレスを有する分岐命令

Info

Publication number
JP2003517679A
JP2003517679A JP2001545956A JP2001545956A JP2003517679A JP 2003517679 A JP2003517679 A JP 2003517679A JP 2001545956 A JP2001545956 A JP 2001545956A JP 2001545956 A JP2001545956 A JP 2001545956A JP 2003517679 A JP2003517679 A JP 2003517679A
Authority
JP
Japan
Prior art keywords
instruction
default
processor
destination address
address
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.)
Withdrawn
Application number
JP2001545956A
Other languages
English (en)
Inventor
ファーレル エル オストラー
アントニー エフ ダゲール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Philips Electronics NV
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 Philips Electronics NV filed Critical Philips Electronics NV
Publication of JP2003517679A publication Critical patent/JP2003517679A/ja
Withdrawn legal-status Critical Current

Links

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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 一般に分岐/ジャンプ命令と関連付けられたパラメータの分離を支援するプロセッサアーキテクチャが提供される。明示的な宛先アドレスを含まないジャンプ命令が与えられ、明示的なテスト条件を含まない他のジャンプ命令が与えられる。本発明によれば、処理システムは、特定の命令により明確に制御されないプロセッサ内のあらゆる制御要素に「デフォルト」値を与える。分岐又は呼び出し命令の場合、分岐又は呼び出しを行うために与えられるデフォルト宛先アドレスは、以前の命令により与えられた宛先アドレスである。続いて生じる又は代替の分岐又は呼び出し命令は、デフォルトアドレスが異なるアドレスに設定されるまで、この同じアドレスに分岐する。同様に、多くの場合、条件付き分岐、呼び出し又は復帰命令のような条件テストの結果を決定するために使用されるデフォルト条件は、以前の命令の中で指定された最後の条件である。本発明の上記及び他の目的を支援するために、条件付き命令の実行の前に、条件テストを行うことも可能である。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】
本発明は、コンピュータシステムの分野に関し、特にプロセッサ命令セットに
関する。
【0002】
【従来の技術】
コンピュータシステムは、プログラムフローを制御するために「分岐」命令を
利用する。プロセッサと、プログラム命令を含むメモリとを有する通常のコンピ
ュータシステムにおいて、プロセッサは、メモリ内の各プログラム命令を順次に
、1度に1つの命令ずつ実行する。分岐命令は、メモリ内の指定された位置にあ
るプログラム命令を実行するために使用され、これにより、順次のメモリ位置に
おける命令のデフォルトの実行を変更する。条件付き分岐は、所与の条件に依存
して、命令を順次に処理し続け、又はメモリ内の指定された位置に分岐するため
に使用される。条件がテストされ、その条件が真である場合、コンピュータプロ
セッサは、指定されたアドレスにおいて実行を続行し、そうでなければ、プロセ
ッサは、次の順次の位置において実行を続行する。
【0003】 更に、多くのコンピュータシステムにおいては、サブルーチン又は関数「call
(呼び出し)」及び対応する「return(復帰)」のような他の制御フロー命令が
利用可能である。(記述を容易にするため、関数は、以下においてサブルーチン
のサブセットとみなす。)分岐命令と同様に、サブルーチン「呼び出し」は、指
定された位置にあるプログラム命令を実行するために使用される。また、分岐命
令とは異なり、呼び出し命令は、呼び出し命令の位置のあとの次の順次の命令の
アドレス(「復帰アドレス」)をプロセッサに記憶させる。このように、対応す
るサブルーチン「復帰」命令は、記憶された復帰アドレスにおける実行をプロセ
ッサに続行させる。条件付き呼び出し命令及び復帰命令は、上述した条件付き分
岐命令と同様に動作する。
【0004】 通常の分岐命令及び呼び出し命令は、命令を分岐又は呼び出し命令として識別
する演算コード(opコード、オペコード)と、次の命令が位置するアドレスと
の2つの項目を含む。他方、通常の復帰命令は、演算コードを含むだけである。
宛先アドレスに分岐するべきか、又は条件付き命令の後の次の順次の命令に関し
て続行するべきかを決定するために使用される(複数の)代替条件を識別するた
めに代替の演算コードが使用されることを除いて、通常の条件付き分岐、呼び出
し及び復帰命令は、無条件分岐、呼び出し及び復帰命令と同様である。
【0005】 一般に、アプリケーションプログラムは、多くの分岐及びサブルーチン呼び出
しを含み、同じ宛先アドレスへの分岐及びサブルーチン呼び出しが、繰り返し使
用される。例えば、「ケース選択」プログラミングコンストラクトは、例えば所
得税準備アプリケーションプログラムにおける「ステータス申請」パラメータ(
独身、既婚且つ共同申請、既婚且つ個別申請等)のような所与のパラメータの値
に依存して、プログラム命令の異なるセグメントが実行されることを可能にする
。所与のパラメータの値に対応するプログラムのそれぞれの異なるセグメント内
で、異なる決定された引数、異なるサブルーチンの組み合わせ又は順序、異なる
条件の組等を具えるにもかかわらず、同じサブルーチンが呼び出されることがあ
る。通常の分岐又は呼び出しコマンドはそれぞれ宛先アドレスを含む必要がある
ので、一般のプログラムには、かなりの量のアドレス冗長が存在する。サブルー
チン復帰命令は、このアドレス冗長の不利益を受けないが、サブルーチン呼び出
しから復帰を生じさせることに使用を制限される。
【0006】 更に、一般のプログラムアプリケーション内の条件付き命令の評価には問題が
ありうる。一般のプロセッサは、「フラグ」の組を有し、条件付き命令は、これ
らのフラグのうち1つ又は複数の状態に依存して、例えば分岐、復帰又は呼び出
しのような演算を行う。異なる命令は、異なるフラグの状態に影響を与える。例
えば、ある命令は、すべてのフラグに影響を与えるが、ある命令はフラグに影響
を与えず、他の命令は、選択フラグに影響を与える等である。各フラグの状態の
可能性のある変化がもたらす影響を徹底的に評価することなく、フラグに影響を
与える命令を使用するプログラムに変更がなされると、一般のプログラミング「
バグ」が発生する。追加された命令は、意図されたフラグ設定命令と同じフラグ
状態を結果的に生じさせることがあるので、このエラーは直ちに検出されないこ
とがあり、また、エラーの影響がこの変更に関連付けられないことがある。
【0007】 一般の高性能コンピュータシステムにおいて、命令は、メモリからプリフェッ
チされるので、プロセッサが次の命令を実行する準備ができるとすぐに、命令が
、実行のためにプロセッサに利用可能となる。一般のプリフェッチ演算において
、システムは、システムメモリからの順次の命令のブロックを、プロセッサに局
所的なメモリのブロックにプリフェッチするので、直ちにプロセッサに利用可能
となる。分岐が発生すると、メモリ内の分岐命令のあとに続く以前にプリフェッ
チされた命令は、指定された宛先アドレスにおけるメモリからの命令と置き換え
られる。この置き換えは、プロセッサがシステムメモリから次の命令を待つ間の
性能コストをもたらす。多くのシステムは、「ルックアヘッド」能力を含む。そ
の中で、プリフェッチ演算子は、制御の次の分岐を識別するために実行されるプ
ログラムコードにおいてルックアヘッドを行う。無条件分岐が検出されると、プ
リフェッチ演算子は、指定された宛先アドレスから情報をプリフェッチし、その
結果、分岐コマンドが処理された直後にその情報をプロセッサに供給することが
できる。条件付き分岐命令についてのプリフェッチの使用は、かなり複雑である
。分岐命令の後に実行される次の命令が、宛先アドレスにおける命令であるか、
又は分岐命令のすぐ後に続く命令であるか分からないからである。十分な局所メ
モリが利用可能な場合、システムメモリの双方の領域から命令のセグメントがプ
リフェッチされる。代替として、又はこの多重プリフェッチ技法に加えて、実行
される可能性のある命令をプリフェッチするために予測技法が頻繁に使用される
。多くの場合、条件の状態は、実質的には予測不可能であるので、上記のような
予測技法は高い程度の多様性をもつ。
【0008】
【発明が解決しようとする課題】
本発明の目的は、コンピュータシステムの効率を高めることである。本発明の
別の目的は、コンピュータシステム上で動作するプログラムの信頼性及び保全性
を向上させることである。本発明の更に別の目的は、プリフェッチシステムの予
測側面を改善することである。本発明の更に別の目的は、プログラム開発の作業
を軽減することである。
【0009】
【課題を解決するための手段】
これら及び他の目的は、一般に分岐命令に関連付けられるパラメータの分離(
デカップリング)を支援するアーキテクチャを提供することにより達成される。
明示的な宛先アドレスを含まない分岐及び呼び出し命令が与えられ、明示的なテ
スト条件を含まない分岐、呼び出し及び復帰命令が与えられる。本発明によれば
、処理システムは、特定の命令により明確に制御されないプロセッサ内のあらゆ
る制御要素に「デフォルト」値を与える。分岐又は呼び出し命令の場合、分岐又
は呼び出しを行うために与えられるデフォルト宛先アドレスは、以前の命令によ
り与えられた宛先アドレスである。続いて生じる又は代替の分岐又は呼び出し命
令は、デフォルトアドレスが別の異なるアドレスに設定されるまで、この同じア
ドレスに分岐する。同様に、多くの場合、例えば条件付き分岐、呼び出し又は復
帰命令のような条件テストの結果を決定するために使用されるデフォルト条件は
、以前の命令の中で指定された最後の条件である。本発明の上記の及び他の目的
を更に支援するため、条件テストが、条件付き命令の実行の前に行われてもよい
。分岐、呼び出し又は復帰を生じさせる命令から、条件及び/又は宛先アドレス
の指定を分離することにより、これらの命令は、例えばプログラムが分岐する又
は復帰する先のルーチンによる処理に備えてレジスタ又はメモリ素子を変更する
ような、他の演算を行うことができる。更に、続いて生じるデフォルト宛先アド
レスを設定するための明示的手段を設け、条件フラグを予め評価するための明示
的手段を設けることにより、プログラム開発費及び維持費が低減されることを期
待することができるとともに、条件付き分岐の結果及び宛先アドレスを予測する
ことに関連付けられる多様性が低減されることも期待することができる。
【0010】
【発明の実施の形態】 本発明は、添付の図面を参照して例示により詳細に説明される。図面を通して
、同じ参照符号は、同様の又は対応する特徴又は機能を示している。
【0011】 図1は、本発明による分岐命令から条件及び宛先アドレスの分離を行う例示の
処理システム100のブロック図を示している。当業者であれば、この開示を考
慮して、同様の結果をもたらすために代替の実施例を定めることができることが
分かるであろう。図1の例において、命令110は、プログラムメモリ160か
ら供給され、この命令は、処理回路150の演算を制御するマイクロコード命令
155を供給するために、マッパ/デフォルト装置140により復号化される。
マイクロコード命令155に応じて、処理回路150は、レジスタ170又はメ
モリ180に含まれるデータついて所望の演算を行う。処理回路150は更に、
それぞれの処理サイクルにおいてそれぞれの次の命令アドレス151を決定する
。この次の命令アドレスにより、それぞれの次の命令110が、プログラムメモ
リ160から得られる。
【0012】 通常のプロセッサと同様に、マイクロコード命令155は、処理回路150内
のそれぞれの切り替え及び状態装置を制御する制御ビット155bを含む。すな
わち、例えば処理回路150は、一般に状態マシンを有し、マイクロコード命令
155が、この状態マシンへの入力刺激を供給する。状態マシンは、次の状態へ
の遷移を制御するとともに、この状態マシンからの出力信号の生成を制御する。
例えば、マイクロコード命令155は、データがレジスタ170のうちの1つか
ら受け取られるか、メモリ180内の位置に書き込まれ、又はそこから読み込ま
れるかなどを決定する制御ビットを含む。制御ビット155bは更に、レジスタ
170又はメモリ180から受け取られるデータについて実施される加算、減算
、シフト等の演算を決定し、また、他の制御ビット155bが演算により影響を
受けるかどうかについて決定する。マイクロコード命令155は、更に、「定数
」領域k155aを含む。この定数領域k155aは、一般に、様々なアプリケ
ーションにおいて使用される。例えば、領域k155aは、絶対形式又は相対形
式で、分岐又は呼び出し命令の上記の宛先アドレスを含むことができる。領域k
155aは更に、レジスタ170又はメモリ180に含まれるデータについての
上記の数値演算に使用される定数を含むことができる。
【0013】 この実施例において、多くのプロセッサの実施例と同様に、命令110には、
マイクロコード命令155内の制御要素155a及び155bより少ないビット
がある。それぞれの命令は、通常、その命令を行うのに十分な情報を含むように
フォーマットされている。特に、通常の処理装置設計において、分岐又は呼び出
し命令は、絶対アドレス、又は現在の命令アドレス151に対するオフセット若
しくは相対アドレスとして、宛先アドレスの明示的な指示を含む。
【0014】 本発明の原理によれば、マッパ/デフォルト装置140は、現在の命令110
により明示的に制御されない制御要素155a及び155bにデフォルト値を与
える。このように、以前の命令は、分岐又は呼び出し命令の宛先アドレス、又は
条件付き分岐、呼び出し又は復帰命令についてテストされるべき条件等の項目を
指定することができる。実際上、マッパ/デフォルト装置140が、続いて生じ
る命令における使用のために以前の命令からの宛先アドレスが保存されることを
可能にする場合、マッパ/デフォルト装置140は、明示的な宛先アドレスを含
まないあらゆる命令によりアクセス可能である「デフォルト宛先アドレス」レジ
スタを含む。同様に、本発明によるマッパ/デフォルト装置140は、明示的な
条件指定を含まないあらゆる命令によりアクセス可能である「条件」レジスタを
与える。
【0015】 図2は、本発明による実施例における使用のための8個の異なる命令フォーマ
ット201−208の組の一例を示している。各命令のフォーマット領域210
は、その対応するフォーマット201−208を識別する。フォーマット201
は、データ処理演算に良く適したフォーマットの一例を示している。ここに参照
により盛り込まれる同時係属中の米国特許出願第09/466,405号「Simpl
e Algorithmic Cryptography Engine」(出願日17.12.1999)は、1
つの命令サイクル内の複数演算を可能にする処理システムを開示している。上記
の特許出願と一貫して、図1に示すように、選択レジスタ170が、メモリ18
0をアドレスするために使用される。命令フォーマット201は、メモリ212
領域を通して、アドレスされたメモリ素子が書き込まれる又は読み出されること
を可能にする。命令フォーマット201は更に、データ演算213領域を通して
、様々な算術及び論理(シフト)演算が、取り出されたメモリ素子上に実施され
ることを可能にする。命令フォーマット201は、A更新214及びB更新21
5領域を通して、アドレスされたレジスタがロード、インクリメント、デクリメ
ント又はシフトなど更新されることを可能にする。すなわち、上記の特許出願に
よれば、データがメモリから取り出され、演算され、その結果がレジスタに格納
され、別のレジスタがインクリメントされ、これらがすべて同じ命令110の中
で行われることが可能である。
【0016】 命令フォーマット202は、通常の分岐又は呼び出し命令に実質的に対応して
おり、以下、これらを「ジャンプ」命令と呼ぶ。フォーマット202の領域「K
11」223は、宛先アドレスを指定するために使用される定数を与え、この例
では11ビットの定数である。領域「ジャンプ」224は、呼び出し、分岐、復
帰、相対、絶対などのジャンプのタイプを規定する。領域「条件」225は、も
しあれば条件付きジャンプを制御する条件を規定する。条件が真である場合、次
の命令アドレス(図1の151)は、ゼロ拡張のK11領域223に含まれるア
ドレスである。そうでなければ、次の命令アドレス151は、現在の命令110
のアドレスの後の次の順次アドレスである。上記の特許出願によれば、命令フォ
ーマット202は、「メモリ」222の領域を通して、同じ命令サイクルの間の
メモリ演算(記憶、取り出し)を可能にする。これにより、例えば宛先アドレス
におけるルーチンの開始に備えてデータ項目を取り出し、又は条件付き分岐によ
り制御されるサイクルの終わりにデータ項目を記憶することなどを容易にする。
【0017】 本発明によれば、命令セットは、宛先アドレスの明示的な指定なくジャンプ2
34領域を含むことを可能にするフォーマット203を有する。宛先アドレスの
明示的な指定なくジャンプを許すことにより、命令は、データ演算213領域に
関して上述したように、データ項目についての演算を制御するデータ演算233
の領域のような他の演算を含むことができる。ジャンプ234領域を含む同じ命
令の中にデータ演算233領域を設けることにより、領域234を通してジャン
プする先のプロシージャに備えて、新しいデータ値を計算することができ、又は
、例えばサブルーチンからの復帰ジャンプの際に関数値を計算し、メモリ180
(図1)に記憶することができる。
【0018】 フォーマット204は、ジャンプ命令と並行に追加機能を与える。図示するよ
うに、フォーマット204は、条件領域に代わって、B更新215領域と同様の
B更新245領域を有する。これは、ジャンプ命令と並行に選択レジスタが更新
されることを可能にする。続いて生じるジャンプについてデータ項目を用意し、
又はサブルーチンから復帰の際に計算されたデータ項目を記憶することに加えて
、この更新領域245を使用して、例えば分岐してループの開始に戻る同じ命令
の間のループインデックスをインクリメントすることができる。ジャンプコマン
ドから宛先アドレス及び/又は条件テストを分離することにより与えられるジャ
ンプコマンドとの並列演算の有用性の付加的な使用は、当業者にはこの開示を考
慮して明らかであろう。
【0019】 フォーマット205−208は、この分離の他の変形例である。フォーマット
205及び208には、条件領域255、285が、対応するジャンプ領域なし
に与えられている。このように、別の命令225、235、255、285がデ
フォルト条件をリセットするまで、すべての続いて生じるジャンプ命令を制御す
るデフォルト条件を指定することが可能である。フォーマット206、207及
び208には、続いて生じるジャンプ命令についてのデフォルト宛先アドレスを
指定するために使用することができる定数領域265、275、283が与えら
れている。利用される特定の規則に依存して、これらの定数領域は、絶対アドレ
ス又は相対アドレスのいずれかを与えるために利用することができる。本発明に
よれば、デフォルト宛先アドレスが、別の命令202、206、207、208
により変更されるまで、領域223、265、275、283の各々により指定
されるデフォルト宛先アドレスは、他の領域と共に、すべての続いて生じるジャ
ンプ命令の宛先を制御する。フォーマット207は、ジャンプ274領域及びデ
フォルト宛先アドレスを設定する定数領域275を与えているが、ジャンプを制
御する条件は、指定されていない。フォーマット203−208のそれぞれにお
いて、各命令の中の様々な並列演算を可能にすることにより、ジャンプ、条件及
びアドレス領域の分離は、例えば上述したデータ演算213領域、A更新214
領域、及びB更新215領域のような1つ又は複数の他の領域が命令の中に含ま
れ、タスクを行うのに必要とされる命令の数を最適化し、及び/又はタスクの実
行のスピードを最適化することを可能にする。
【0020】 図1に示したマッパ/デフォルト装置140は、上記の分離された演算を支援
するために命令処理技法の実施例を与えている。図1に示すように、命令110
の各ビットは、マイクロコード命令155内の対応する制御要素にマップされる
。マッパ/デフォルト装置140は、命令110の所与のフォーマット110a
に依存して、制御領域110bの各ビットを、対応する制御ビット155bに振
り向ける複数の選択器141−149を有する。マッパ/デフォルト装置140
は、命令110のフォーマット110aに依存して、命令110の同じビット位
置からの異なる領域を、マイクロコード命令155の異なる制御要素155a、
155bに振り向ける。マッパ/デフォルト装置140は、更に、マイクロコー
ド命令155の各制御要素155a、155bについてデフォルト制御値を与え
ることにより、命令110からのマッピングを通して制御されないマイクロコー
ド命令155の他の制御要素を適切に制御する。すなわち、例えば、例示の命令
フォーマット201、203は、マイクロコード命令155内にk 155aの
値を設定するための定数領域を含まない。好適な実施例において、命令110内
の指定された定数領域が無い場合のデフォルト解釈は、ヌル演算である。すなわ
ち、指定された定数値がない場合、値k155aは同じままである。代替として
、図2のフォーマット206に示すように、短い6−ビットのkの値が、領域K
6 265に与えられるとき、k 155a制御要素についてのデフォルト値は、
K6 265領域の符号拡張値である。例えばフォーマット203のジャンプ2
34領域を通した続いて生じる相対ジャンプ命令は、この符号付き値k 155
aを使用して、現在の命令アドレス151にこの値k 155aを追加すること
により宛先アドレスを計算することができる。
【0021】 好適な実施例において、各制御要素155に関連付けられたマルチプレクサ/
選択器141−149の出力信号は、フォーマット領域210の内容に依存し、
その入力信号は、利用可能なデフォルトオプションに依存する。マイクロコード
命令155の各制御要素155a、155bについてのデフォルト値又は条件の
選択肢は、いかなる値又は条件であってもよい。しかしながら、好適な実施例に
おいて、デフォルト値及び条件は、当業者によって、仮定される値に見合うよう
に選ばれる。すなわち、例えば、データ定数K11 223が与えられるときの
高位ビットのゼロ化と、短い定数K6 265が与えられるときの高位ビットの
符号拡張とは、当業者による適当なデフォルトであると仮定される。同様に、ジ
ャンプ234領域の欠如に対応する制御ビットの組のデフォルト条件は、1つの
命令によるプログラムカウンタの前進に対応すると仮定される。すなわち、ジャ
ンプ234領域を含まないフォーマット201を有する命令が受け取られるとき
、デフォルト解釈モジュール140は、欠如する領域234に対応するマクロ命
令155に適切な制御要素を設定する。これにより、組141−149の中の対
応する選択器は、次の命令アドレス151のインクリメントを行うために適当な
入力を選択するように設定され、従って、明示的な命令領域がない場合に、一貫
した、予測できる論理的影響を与える。
【0022】 本発明の別の側面によれば、フラグ211領域は、分離されたジャンプ命令の
使用を更に容易にする制御ビットを含む。処理システムの分野において一般的で
あるように、処理回路は、特定の演算の結果を表す「ステータスフラグ」の組を
含む。これらのステータスフラグは、例えば数値演算の結果がゼロであるときに
アサートされる「0」フラグ、数値演算の結果がオーバーフローをもたらすとき
にアサートされる「キャリー」フラグ等を含む。この設定された制御ビットを有
する続いて生じる命令が実行されるまで、フラグ211ビットの1つは、決定さ
れたフラグ値の保存を行う「フラグ更新」制御ビットである。このように、「Br
anch if Carry(キャリーの場合分岐する)」のような条件が実行されるとき、
その結果は、以前の命令において更新されたフラグにより決定される。
【0023】 フラグ211領域内の別の制御ビットが、条件付きジャンプ命令における続い
て生じる使用のため、条件テストの結果を「条件保存」レジスタに保存する。例
示のフォーマット202、203及び205は、例えば条件領域225、235
及び255をそれぞれ含む。条件領域225、235、255は、ゼロフラグが
設定されているか、キャリーフラグが設定されているか、などをテストするため
の特定の条件指定を含む。「条件保存」制御ビットが設定されている場合、条件
付きジャンプ命令における続いて生じる使用のため、テストされた条件の結果が
、「条件保存」レジスタに保存される。好適な実施例において、「条件保存」制
御ビットが設定されているときはいつも、条件付きジャンプ命令について利用す
るために条件の選択を制御するデフォルト制御ビット155bが、この「条件保
存」レジスタを選択するために設定される。
【0024】 プロセッサの状態の他の変化を通して、それらの状態を維持する1つ又は複数
のフラグを与えることにより、多数の利点が達成されうる。上述したように、好
適な実施例において、持続的な(複数の)フラグを変更するためには命令内の「
フラグ更新」又は「条件保存」制御ビットの明示的な設定が必要とされるので、
プログラム更新の間の条件フラグの軽率な変更の可能性は低減される、また、条
件付き分岐が実行される前に持続的な条件フラグが変わらない可能性はかなり高
く、多くの場合は変わらないと確定できるので、条件付き分岐のための条件の事
前決定は、非常に効果的なプリフェッチ演算を可能にする。更に、持続的なフラ
グの事前設定は、フラグの条件が設定されている(複数の)データ項目が、続い
て生じる条件付き命令に影響を及ぼすことなく必要に応じて変わることを可能に
する。
【0025】 上述したものは、単に、本発明の原理を説明しているにすぎない。当業者であ
れば、ここに明示的に記述も図示もしていないが、本発明の原理を具体化し且つ
その精神及び範囲内にあるさまざまな装置を工夫することができることが分かる
であろう。例えば、本発明の原理は、利用される特定のプロセッサアーキテクチ
ャによらず、デフォルト宛先アドレスを保持するように構成された別の「宛先ア
ドレスレジスタ」を設けることにより実現することもできる。すなわち、マイク
ロコード及び状態マシンアーキテクチャが、分離された制御条件を利用するため
の適切な実施例としてここに示されているが、ここに示される原理は、分離され
た情報を記憶するための特定の装置を有することにより、いかなるプロセッサア
ーキテクチャにおいても具体化することができる。これら及び他のシステム構成
及び最適化機能は、当業者にはこの開示を考慮して明らかであり、また、以下の
請求項の範囲内に含まれるものである。
【図面の簡単な説明】
【図1】本発明による処理システムの一例を示す図。
【図2】本発明による命令セットフォーマットの一例を示す図。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ダゲール アントニー エフ オランダ国 5656 アーアー アインドー フェン プロフ ホルストラーン 6 Fターム(参考) 5B033 BA01 BD02 BE00 CA03 CA09 DD05 EA06 EA09

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】メモリに記憶されたプログラム命令を実行するプロセッサであ
    って、 デフォルト宛先アドレスを含むデフォルトレジスタを有し、 前記プログラム命令が、 前記デフォルト宛先アドレスを形成するために、前記プロセッサに、指定され
    たアドレスを前記デフォルトレジスタにロードさせる第1の命令と、 そののち、前記メモリ内の、前記デフォルトレジスタに含まれる前記デフォル
    ト宛先アドレスに位置するプログラム命令を前記プロセッサに実行させる第2の
    命令と、 を含む、プロセッサ。
  2. 【請求項2】前記第2の命令が、条件テストを含むとともに、前記条件テス
    トの結果に依存して、前記デフォルト宛先アドレスに位置するプログラム命令を
    前記プロセッサに実行させる、請求項1に記載のプロセッサ。
  3. 【請求項3】前記デフォルトレジスタが更に、デフォルト条件テストを含み
    、 前記第2の命令が、前記デフォルトレジスタに含まれる前記デフォルト条件テ
    ストの結果に依存して、前記デフォルト宛先アドレスに位置するプログラム命令
    を前記プロセッサに実行させる、請求項1に記載のプロセッサ。
  4. 【請求項4】前記第2の命令が更に、以前の条件テストの結果に依存して、
    前記デフォルト宛先アドレスに位置するプログラム命令を前記プロセッサに実行
    させる、請求項1に記載のプロセッサ。
  5. 【請求項5】前記デフォルトレジスタが更に、デフォルト条件テストを含み
    、 前記プログラム命令が更に、前記デフォルトレジスタに含まれる前記デフォル
    ト条件テストの結果に依存して、別の指定されたアドレスに位置するプログラム
    命令を前記プロセッサに実行させる第3の命令を含む、請求項1に記載のプロセ
    ッサ。
  6. 【請求項6】メモリに記憶されたプログラム命令を実行するプロセッサであ
    って、 デフォルト条件テストを含むデフォルトレジスタを有し、 前記プログラム命令が、 前記デフォルト条件テストを形成するために、前記プロセッサに、指定された
    条件を前記デフォルトレジスタにロードさせる第1の命令と、 そののち、前記デフォルト条件テストの結果に基づいて、前記メモリ内の宛先
    アドレスに位置するプログラム命令を前記プロセッサに実行させる第2の命令と
    、 を含む、プロセッサ。
  7. 【請求項7】プログラム命令のシーケンスを制御する方法であって、 宛先アドレスを指定する第1の命令を実行し、 前記宛先アドレスが次の命令アドレスになるようにする第2の命令を実行し、 前記次の命令アドレスに位置する第3の命令を実行すること、 を含む方法。
  8. 【請求項8】更に、前記第2の命令を実行する前に、条件テストを指定する
    第4の命令を実行することを含み、 前記第2の命令が実行されるとき、前記宛先アドレスが前記次の命令アドレス
    になるようにすることは、前記条件テストの結果に依存する、請求項7に記載の
    方法。
  9. 【請求項9】更に、前記第2の命令を実行する前に、条件テストの結果を保
    存することを含み、 前記第2の命令を実行するとき、前記宛先アドレスが前記次の命令アドレスに
    なるようにすることは、前記条件テストの結果に依存する、請求項7に記載の方
    法。
JP2001545956A 1999-12-17 2000-12-05 分離された条件及びアドレスを有する分岐命令 Withdrawn JP2003517679A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/466,405 1999-12-17
US09/466,405 US6820193B1 (en) 1999-12-17 1999-12-17 Branch instructions with decoupled condition and address
PCT/EP2000/012260 WO2001044930A2 (en) 1999-12-17 2000-12-05 Branch instructions with default test condition and target address

Publications (1)

Publication Number Publication Date
JP2003517679A true JP2003517679A (ja) 2003-05-27

Family

ID=23851628

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001545956A Withdrawn JP2003517679A (ja) 1999-12-17 2000-12-05 分離された条件及びアドレスを有する分岐命令

Country Status (6)

Country Link
US (1) US6820193B1 (ja)
EP (1) EP1183600A2 (ja)
JP (1) JP2003517679A (ja)
KR (1) KR100764261B1 (ja)
TW (1) TW504643B (ja)
WO (1) WO2001044930A2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7191430B2 (en) * 2001-09-24 2007-03-13 Hewlett-Packard Development Company, L.P. Providing instruction execution hints to a processor using break instructions
US9128701B2 (en) * 2011-04-07 2015-09-08 Via Technologies, Inc. Generating constant for microinstructions from modified immediate field during instruction translation

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3577189A (en) * 1969-01-15 1971-05-04 Ibm Apparatus and method in a digital computer for allowing improved program branching with branch anticipation reduction of the number of branches, and reduction of branch delays
EP0365188B1 (en) 1988-10-18 1996-09-18 Hewlett-Packard Company Central processor condition code method and apparatus
GB9412487D0 (en) * 1994-06-22 1994-08-10 Inmos Ltd A computer system for executing branch instructions
US5664135A (en) * 1994-09-28 1997-09-02 Hewlett-Packard Company Apparatus and method for reducing delays due to branches
JP2857600B2 (ja) * 1995-05-11 1999-02-17 松下電器産業株式会社 プロセッサ及びプログラム翻訳装置
US5857104A (en) * 1996-11-26 1999-01-05 Hewlett-Packard Company Synthetic dynamic branch prediction

Also Published As

Publication number Publication date
WO2001044930A2 (en) 2001-06-21
EP1183600A2 (en) 2002-03-06
TW504643B (en) 2002-10-01
US6820193B1 (en) 2004-11-16
WO2001044930A3 (en) 2001-11-15
KR20010102188A (ko) 2001-11-15
KR100764261B1 (ko) 2007-10-05

Similar Documents

Publication Publication Date Title
JP3816961B2 (ja) バーチャルマシン命令を処理するためのデータ処理装置
US5926646A (en) Context-dependent memory-mapped registers for transparent expansion of a register file
EP0768602B1 (en) Variable word length VLIW-instruction processor
KR100208889B1 (ko) 병렬처리장치 및 병렬처리방법
US5828875A (en) Unroll of instructions in a micro-controller
JP5638108B2 (ja) 処理スケジューリング方法、コンピュータおよびコンピュータプログラム
US6438679B1 (en) Multiple ISA support by a processor using primitive operations
US6304954B1 (en) Executing multiple instructions in multi-pipelined processor by dynamically switching memory ports of fewer number than the pipeline
US10740105B2 (en) Processor subroutine cache
US5940876A (en) Stride instruction for fetching data separated by a stride amount
JPH0785223B2 (ja) デジタル・コンピュータ及び分岐命令実行方法
JP2001243069A (ja) 分岐予測装置及び分岐予測方法
US6145075A (en) Apparatus and method for executing a single-cycle exchange instruction to exchange contents of two locations in a register file
EP0982655A2 (en) Data processing unit and method for executing instructions of variable lengths
CN101371223B (zh) 运算数的提早有条件选择
JP2006522398A (ja) パイプライン型命令プロセッサにおけるバイパスの使用
KR100974401B1 (ko) 주소 레지스터의 내용을 스와핑하기 위한 방법 및 장치
US8074061B2 (en) Executing micro-code instruction with delay field and address of next instruction which is decoded after indicated delay
US6161171A (en) Apparatus for pipelining sequential instructions in synchronism with an operation clock
JP2003517679A (ja) 分離された条件及びアドレスを有する分岐命令
US7472264B2 (en) Predicting a jump target based on a program counter and state information for a process
EP0716376B1 (en) A pipeline processor with reduced interlocks caused by branch instructions
JPH03204030A (ja) コンピュータ用プロセツサ
US20090119492A1 (en) Data Processing Apparatus and Method for Handling Procedure Call Instructions
JP3060917B2 (ja) プロセッサ

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070323

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071204

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080422

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20090910