JP2001100994A - モードを変更する分岐命令を制御する命令処理装置および方法 - Google Patents

モードを変更する分岐命令を制御する命令処理装置および方法

Info

Publication number
JP2001100994A
JP2001100994A JP27623399A JP27623399A JP2001100994A JP 2001100994 A JP2001100994 A JP 2001100994A JP 27623399 A JP27623399 A JP 27623399A JP 27623399 A JP27623399 A JP 27623399A JP 2001100994 A JP2001100994 A JP 2001100994A
Authority
JP
Japan
Prior art keywords
instruction
branch
address
mode information
address mode
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
Application number
JP27623399A
Other languages
English (en)
Other versions
JP3606435B2 (ja
Inventor
Ryuichi Sunayama
竜一 砂山
Aiichiro Inoue
愛一郎 井上
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP27623399A priority Critical patent/JP3606435B2/ja
Priority to US09/528,714 priority patent/US7036003B1/en
Publication of JP2001100994A publication Critical patent/JP2001100994A/ja
Application granted granted Critical
Publication of JP3606435B2 publication Critical patent/JP3606435B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/342Extension of operand address space
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • 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, 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

Abstract

(57)【要約】 【課題】 アウトオブオーダー処理方式において、アド
レスモードを変更する分岐命令を正しく制御し、より高
速な命令処理を行うことが課題である。 【解決手段】 各命令のアドレスモード情報を命令アド
レスの一部として付加し、命令処理の各サイクルにおい
てアドレスモード情報を保持する。ブランチ・ヒストリ
ー15は、分岐先のアドレスモード情報を格納し、命令
フェッチ制御回路13は、複数の命令フェッチポートの
各々に対応するアドレスモード情報を保持する。また、
分岐命令制御回路20は、分岐先のアドレスモード情報
を生成して、分岐命令を制御する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、アウトオブオーダ
ー処理方式を採用した情報処理装置に関する。特に、命
令フェッチにおいてアウトオブオーダー処理を行い、命
令フェッチのために複数のポートを有する情報処理装置
において、モードの変更を伴う分岐命令をハードウェア
で制御する命令処理装置およびその方法に関する。
【0002】
【従来の技術】アウトオブオーダー処理方式を採用した
情報処理装置においては、1つの命令実行の完了を待た
ずに後続の命令列を順次複数のパイプラインに投入し、
それらのパイプラインを用いて命令を実行させることで
性能の向上を図っている。
【0003】しかし、先行している命令の実行結果が後
続の命令の実行に影響を与える場合には、先行している
命令実行が完了しなければ、後続の命令を実行させるこ
とができない。後続の命令の実行に影響を与える命令の
処理が遅ければ、その間、後続の命令は実行できず、先
行の命令実行の完了を待ち続けることになる。これによ
り、パイプラインに乱れが生じ、命令処理の性能の低下
を引き起こす。
【0004】このような命令の代表的なものとして、分
岐命令が挙げられる。分岐命令においては、その実行が
完了するまで分岐が生ずるかどうかが分からず、かつ、
分岐先のターゲットアドレスも分からないため、後続の
命令が待ち状態となり、パイプラインが乱れる。
【0005】そこで、ブランチ・ヒストリー(分岐予測
テーブル)を用いることで、分岐命令の高速化が図られ
ている。分岐命令を実行するときに、ブランチ・ヒスト
リーによる分岐予測を行えば、分岐が生じるかどうかが
判明する前に、後続の命令や分岐先の命令を事前に処理
することができる。
【0006】この処理方式では、分岐命令を実行した結
果、分岐が生じることが判明した場合、分岐先の命令ア
ドレスと分岐命令自身の命令アドレスとを対にしてブラ
ンチ・ヒストリーに登録しておく。そして、命令の実行
にあたって、命令を主記憶装置から取り出すときに、そ
の実行に先立ってブランチ・ヒストリーを検索する。
【0007】このように、ブランチ・ヒストリーには、
以前に分岐が成立した分岐命令の命令アドレスと分岐先
の命令アドレスが対になって登録されている。ブランチ
・ヒストリーに登録されていない分岐命令であって、分
岐が成立したものについては、新たにブランチ・ヒスト
リーに登録する必要がある。また、何らかの要因で分岐
命令の分岐先のターゲットアドレスが変更されている場
合は、ブランチ・ヒストリーを検索して得られた分岐先
のターゲットアドレスは無効となる。
【0008】ブランチ・ヒストリーのエントリのうち、
次の何れかに該当するエントリについては、分岐予測が
外れる可能性が高いとされ、ブランチ・ヒストリーから
削除される。 (1)分岐が成立するとの予測が2回連続で外れた場
合。 (2)分岐が成立するとの予測が外れ、かつ、その分岐
先のターゲットアドレスも誤っていた場合。 (3)ある命令が実際には分岐命令ではないにもかかわ
らず、誤って登録されていた場合。
【0009】また、分岐が成立するとの予測が外れたと
きや、分岐先のターゲットアドレスが誤っていたとき、
それらの情報をターゲット別に保存しておく必要があ
る。
【0010】
【発明が解決しようとする課題】しかしながら、上述し
た従来の命令処理には、次のような問題がある。従来の
命令処理装置では、アドレス空間のビットサイズを表す
アドレスモードがソフトウェア依存で決定され、命令の
実行に伴ってアドレスモードが変更される場合がある。
しかし、アドレスモードの変更を伴う分岐命令の分岐予
測を行おうとしたとき、分岐先のアドレスモードを予測
するための機構がないため、分岐先の命令アドレスしか
予測することができなかった。このため、変更されたア
ドレスモードに基づいて分岐先命令列のプリフェッチを
行うことができず、正しい命令処理が行われないことが
あった。
【0011】また、分岐先の命令アドレスをアドレスジ
ェネレータで計算して求める際にも、分岐先のアドレス
モードを求めることはできなかった。また、複数の命令
フェッチポートを有する命令処理装置において、あるポ
ートで命令のプリフェッチを行い、その後、別のポート
でのシーケンシャルな命令フェッチに復帰しようとした
とき、それぞれのポートにおけるアドレスモードが異な
れば、正しい命令処理が行われなかった。
【0012】このように、従来の命令処理装置では、ア
ドレスモードが変更されたとき正しい命令処理が行われ
ないことがある。このため、マイクロプログラムによる
制御が必要になり、制御に必要なクロック数が増大する
という問題があった。
【0013】本発明の課題は、アウトオブオーダー処理
方式を採用した情報処理装置において、より高速な命令
処理を行う命令処理装置およびその方法を提供すること
である。
【0014】
【課題を解決するための手段】図1は、本発明の命令処
理装置の原理図である。本発明の第1の局面において、
命令処理装置は、保持手段1、分岐命令制御手段2、お
よび転送手段3を備える。保持手段1は、フェッチされ
た命令のアドレスモード情報を命令アドレスとともに保
持する。分岐命令制御手段2は、フェッチされた命令が
分岐命令であるとき、アドレスモード情報を用いて分岐
命令の制御を行う。転送手段3は、分岐命令が実行され
るとき、保持手段1に保持されたアドレスモード情報を
分岐命令制御手段2に転送する。
【0015】フェッチされた命令のアドレスモード情報
は、命令アドレスとともに保持手段1に保持され、転送
手段3により、分岐命令制御手段2に転送される。分岐
命令制御手段2は、転送されたアドレスモード情報を用
いて分岐命令を制御する。
【0016】このような命令処理装置によれば、フェッ
チされた分岐命令のアドレスモード情報が命令フェッチ
パイプラインから命令実行パイプラインへ自動的に転送
される。そして、分岐命令制御手段2は、その分岐命令
がアドレスモードを変更する命令であるときは、分岐命
令により指定された変更後のアドレスモードを分岐先の
アドレスモードとして採用し、その分岐命令がアドレス
モードを変更しない命令であるときは、転送されたアド
レスモード情報を分岐先のアドレスモードとして採用す
ることができる。
【0017】したがって、分岐先の正しいアドレスモー
ドが自動的に決定されるので、マイクロプログラムによ
る制御が不要になり、命令処理が高速化される。また、
本発明の第2の局面において、命令処理装置は、保持手
段1、フェッチ手段4、および制御手段5を備える。フ
ェッチ手段4は、命令をフェッチする。保持手段1は、
フェッチされた各命令のアドレスモード情報を命令アド
レスの一部として保持する。制御手段5は、保持された
アドレスモード情報に基づいて各命令の命令処理を制御
する。
【0018】フェッチ手段4によりフェッチされた命令
のアドレスモード情報は、命令アドレスの一部として保
持手段1に保持され、制御手段5は、保持されたアドレ
スモード情報を用いて命令処理を制御する。
【0019】このような命令処理装置によれば、フェッ
チされた各命令のアドレスモード情報を命令アドレスの
一部として保持することができ、アドレスモード情報専
用のレジスタ等を新たに設ける必要がない。そして、制
御手段5は、命令がアドレスモードを変更する分岐命令
であるときは、分岐命令により指定された変更後のアド
レスモードを分岐先のアドレスモードとして採用し、そ
の命令がアドレスモードを変更しない分岐命令であると
きは、保持されたアドレスモード情報を分岐先のアドレ
スモードとして採用することができる。
【0020】したがって、分岐先の正しいアドレスモー
ドが自動的に決定されるので、マイクロプログラムによ
る制御が不要になり、命令処理が高速化される。また、
本発明の第3の局面において、命令処理装置は、保持手
段1、フェッチ手段4、および複数の命令フェッチポー
トを備え、アウトオブオーダー方式で命令フェッチを行
う。保持手段1は、各ポート毎に、命令フェッチ要求が
発行されたときのアドレスモード情報を命令アドレスと
ともに保持する。フェッチ手段4は、使用されるポート
に対応するアドレスモード情報に基づいて、命令フェッ
チを行う。
【0021】命令フェッチパイプラインにおいて命令フ
ェッチ要求が発行されたとき、フェッチされる命令のア
ドレスモード情報と命令アドレスが、使用されるポート
に対応付けられて保持手段1に保持される。そして、フ
ェッチ手段4は、使用されるポートに対応するアドレス
モード情報に基づいて命令アドレスを解釈し、命令をフ
ェッチする。
【0022】このような命令処理装置によれば、複数の
命令フェッチポートのそれぞれに対してアドレスモード
情報を指定することができる。このため、分岐先の命令
列のプリフェッチのためにポートの切り替えが起こった
としても、各ポートの正しいアドレスモードが自動的に
決定される。したがって、マイクロプログラムによる制
御が不要になり、命令処理が高速化される。
【0023】例えば、図1の保持手段1および転送手段
3は、後述する図2の命令アドレスレジスタ11、命令
アドレス生成回路12、命令フェッチ制御回路13、命
令バッファ16、デコーダ17、分岐先アドレス生成回
路19、および分岐命令制御回路20に対応し、分岐命
令制御手段2は、分岐命令制御回路20に対応する。
【0024】また、例えば、フェッチ手段4は、命令ア
ドレスレジスタ11、命令アドレス生成回路12、およ
び命令フェッチ制御回路13に対応し、制御手段5は、
命令制御回路18、分岐先アドレス生成回路19、分岐
命令制御回路20、PSW(Program-Status-Word )制
御回路21に対応する。
【0025】
【発明の実施の形態】以下、図面を参照しながら、本発
明の実施の形態を詳細に説明する。本実施形態において
は、アドレスモードの変更を伴う分岐命令の分岐予測を
行うため、分岐先の命令アドレスとともに分岐先のアド
レスモード情報をブランチ・ヒストリーに保持する。例
えば、分岐先のアドレスモード情報を持つビットが分岐
先命令アドレスの一部として保持される。そして、分岐
命令制御部において、分岐予測を行ったときの分岐先ア
ドレスが正しいか否かを判定すると同時に、分岐先のア
ドレスモードが正しく指定されているか否かも判定す
る。
【0026】分岐先のアドレスモード情報を持つビット
の生成は、分岐命令制御部で行われる。分岐命令制御部
は、分岐命令がアドレスモードを変更する命令であるか
否かを判断し、アドレスモードを変更する命令であれ
ば、命令のデコード後に、どのアドレスモードに変更す
るのかという情報を得る。そして、得られたアドレスモ
ードを、分岐先のアドレスモードを指定するビット(ア
ドレスモード指定ビット)にセットする。
【0027】また、分岐命令がアドレスモードを変更し
ない命令であれば、分岐先のアドレスモードは変わらな
いので、アドレスモード指定ビットには、分岐元の分岐
命令と同じアドレスモードをセットする。
【0028】なお、分岐命令制御部でアドレスモード指
定ビットを生成する代わりに、分岐先アドレス生成回路
で、分岐先アドレスを生成すると同時にアドレスモード
指定ビットを生成してもよい。
【0029】また、命令処理装置が複数の命令フェッチ
ポートを保有し、命令フェッチをアウトオブオーダ方式
で処理する場合、ポートが変る度にポートに対応したア
ドレスモードを指定する必要があるが、従来の装置で
は、ポート毎にアドレスモードを保持していなかった。
【0030】そこで、本実施形態の装置では、ポート毎
にアドレスモードを保持するようにする。これにより、
例えば、あるポートで命令プリフェッチを行い、その
後、別のポートでのシーケンシャルな命令フェッチに復
帰しようとしたとき、それぞれのポートのアドレスモー
ドが異なっていても、正しい命令処理が行われる。
【0031】図2は、本発明の命令処理装置の構成図で
ある。図2の命令処理装置は、命令アドレスレジスタ1
1、命令アドレス生成回路12、命令フェッチ制御回路
13、命令キャッシュ14、ブランチ・ヒストリー1
5、命令バッファ16、デコーダ17、命令制御回路1
8、分岐先アドレス生成回路19、分岐命令制御回路2
0、およびPSW(Program-Status-Word )制御回路2
1を備える。
【0032】このうち、命令アドレスレジスタ11、命
令アドレス生成回路12、命令フェッチ制御回路13、
命令キャッシュ14、およびブランチ・ヒストリー15
は、命令フェッチパイプラインの回路に対応し、命令バ
ッファ16、デコーダ17、命令制御回路18、分岐先
アドレス生成回路19、分岐命令制御回路20、および
PSW制御回路21は、命令実行パイプラインの回路に
対応する。
【0033】命令フェッチパイプラインは、命令アドレ
ス発行サイクル(IA)、テーブルサイクル(IT)、
バッファサイクル(IB)、および結果サイクル(I
R)を含み、命令実行パイプラインは、デコードサイク
ル(D)、アドレス計算サイクル(A)、実行サイクル
(E)、およびライトサイクル(W)を含む。
【0034】また、命令アドレスレジスタ11、命令ア
ドレス生成回路12、および命令フェッチ制御回路13
は、命令フェッチ回路を構成し、それぞれ、A、B、お
よびCの3つの命令フェッチポートを持つ。この命令フ
ェッチ回路は、例えば、動作開始時にポートAを使用し
て命令フェッチを行い、命令のプリフェッチを行う場合
に別のポートに切り替える。
【0035】命令キャッシュ14は、命令フェッチ制御
回路13から発行された命令アドレスに対応する命令コ
ードを命令バッファ16に出力し、ブランチ・ヒストリ
ー15は、過去において分岐が成立した分岐命令のアド
レスとそのときの分岐先のアドレスを対にして保持す
る。
【0036】デコーダ17は、命令バッファ16に保持
された命令コードをデコードし、得られた情報を命令制
御回路18、分岐先アドレス生成回路19、および分岐
命令制御回路20に渡す。命令制御回路18は、分岐命
令以外の命令に関する制御を行い、分岐先アドレス生成
回路19は、分岐先の命令アドレスとアドレスモードを
生成し、分岐命令制御回路20は、分岐命令に関する制
御を行う。また、PSW制御回路21は、PSWを保持
する。
【0037】また、使用されるアドレスモードには、3
1ビットモードと24ビットモードの2つがある。ここ
では、図3に示すように、アドレスモードは命令アドレ
スの一部として扱われ、命令アドレスのビット〈0〉が
アドレスモード指定ビットになる。
【0038】このアドレスモード指定ビットは、命令の
アドレスモードとして、すべての命令アドレスのビット
〈0〉に付加され、すべてのサイクルにおいて命令アド
レスとともに保持される。例えば、アドレスモード指定
ビットが論理“1”のときは31ビットモードを表し、
それが論理“0”のときは24ビットモードを表す。
【0039】以下の説明では、図3に示した拡張された
命令アドレスのうち、アドレスモード指定ビット以外の
部分を命令アドレスまたはアドレスと呼ぶことにする。
このアドレスモード指定ビットを用いた場合、ブランチ
・ヒストリー15のエントリのフォーマットは、図4に
示すようになる。
【0040】図4において、分岐命令アドレス31と分
岐先アドレス32は互いに対応付けられている。そし
て、分岐命令アドレス31には、分岐命令の処理に用い
られるアドレスモードを指定するアドレスモード指定ビ
ット33が付加され、分岐先アドレス32には、分岐先
命令の処理に用いられるアドレスモードを指定するアド
レスモード指定ビット34が付加されている。
【0041】図5は、図2の命令処理装置の動作を示す
フローチャートである。命令フェッチ制御回路13は、
生成された命令アドレスをブランチ・ヒストリー15に
与え、ブランチ・ヒストリー15は、与えられた命令ア
ドレスをキーとして対応するエントリを検索する(ステ
ップS1)。
【0042】命令アドレスがブランチ・ヒストリー15
にヒットしなければ、分岐先命令のプリフェッチは行わ
れない。そして、分岐命令制御回路20において分岐す
ることが確定すると(ステップS2)、分岐命令制御回
路20は、分岐先アドレス生成回路19から、分岐先ア
ドレスと分岐先アドレスモードを受け取り、分岐先のア
ドレスモード指定ビットを生成する(ステップS3)。
そして、分岐先アドレスと分岐先アドレスモード指定ビ
ットを命令フェッチ制御回路13に送る。
【0043】命令フェッチ制御回路13は、分岐命令制
御回路20から受け取った分岐先アドレスと分岐先アド
レスモードに基づいて、分岐先の命令フェッチを行う
(ステップS4)。
【0044】また、命令アドレスがブランチ・ヒストリ
ー15にヒットすれば、別のポートを用いて分岐先命令
のプリフェッチが行われる。そして、分岐命令制御回路
20において分岐することが確定すると(ステップS
5)、分岐命令制御回路20は、分岐先アドレス生成回
路19から、分岐先アドレスと分岐先アドレスモードを
受け取り、分岐先のアドレスモード指定ビットを生成す
る(ステップS6)。
【0045】次に、分岐命令制御回路20は、ブランチ
・ヒストリー15により予測された分岐先アドレスと分
岐先アドレスモード指定ビットが正しいか否かを判定す
る(ステップS7)。それらが正しければ、予測が成功
したものとみなして、分岐先命令の処理を続行する(ス
テップS8)。それらが正しくなければ、予測が失敗し
たものとみなして、命令フェッチ制御回路13に分岐先
命令の再フェッチを指示する(ステップS9)。
【0046】また、ステップS5において分岐しないこ
とが確定すると、命令フェッチ制御回路13に分岐先命
令列のプリフェッチを停止するように指示する(ステッ
プS10)。これにより、命令フェッチ制御回路13
は、フェッチポートを元のポートに戻して、分岐命令の
後続命令列の処理を続行する。
【0047】図6は、このような命令処理に用いられる
信号を示している。命令フェッチ制御回路13は、信号
+IAR〈0:31,P0:P3〉を命令キャッシュ1
4に出力し、命令キャッシュ14は、対応する命令コー
ドを命令バッファ16に出力する。信号+IAR〈0:
31,P0:P3〉のうち、+IAR〈0〉はアドレス
モード指定ビットに対応し、+IAR〈1:31〉は命
令アドレスに対応し、+IAR〈P0:P3〉は、+I
AR〈0:31〉のパリティビットに対応する。
【0048】また、命令フェッチ制御回路13は、信号
+IAR〈0〉を命令バッファ16に出力し、命令バッ
ファ16は、その信号を+D_IAR〈0〉として、デ
コーダ17に出力する。
【0049】また、命令バッファ16は、分岐命令の命
令アドレスを表す信号+D_BR_IAR〈0:31,
P0:P3〉を保持しており、この信号を分岐命令制御
回路20に出力する。この信号は、デコーダ17経由で
分岐命令制御回路20に転送してもよく、命令バッファ
16から、直接、分岐命令制御回路20に転送してもよ
い。命令キャッシュ14から出力された命令コードが分
岐命令に対応する場合、信号+D_IAR〈0〉は信号
+D_BR_IAR〈0〉に一致する。
【0050】デコーダ17は、分岐命令のオペランドの
1つとして指定されたアドレスモードを表す信号+A_
ADRS_MODEを、分岐先アドレス生成のためのデ
ータを表す信号+OP_DATAとともに、分岐先アド
レス生成回路19に出力する。この信号+A_ADRS
_MODEは、分岐先命令のアドレスモードを表してい
る。
【0051】分岐先アドレス生成回路19は、受け取っ
た信号から分岐先命令のアドレスを表す信号+EAG2
〈1:31,P0:P3〉を生成し、分岐先命令のアド
レスモードを表す信号+A_BSM_31BIT_AD
RS_MODEとともに、分岐命令制御回路20に出力
する。また、分岐命令のアドレスモード指定ビットを表
す信号+D_BR_IAR〈0〉をデコーダ17から受
け取り、それに基づいて、分岐先の命令アドレスのマス
ク処理等を行う。
【0052】分岐命令制御回路20は、ブランチ・ヒス
トリー15から、予測された分岐先命令のアドレスおよ
びアドレスモード指定ビットを表す信号+BRHIS_
TIAR〈0:31,P0:P3〉を受け取り、その信
号を分岐先アドレス生成回路19からの信号と比較し
て、予測結果が正しいか否かを判定する。
【0053】そして、予測結果が正しければ、予測され
た分岐先の処理の続行を命令フェッチ制御回路13に指
示する。また、予測結果が正しくなければ、正しい分岐
先命令のアドレスおよびアドレスモード指定ビットを表
す信号+RSBR_TIAR〈0:31,P0:P3〉
と命令再フェッチ要求を、命令フェッチ制御回路13に
送る。
【0054】次に、図7から図12までを参照しなが
ら、図2の命令処理装置の構成と動作についてより詳細
に説明する。最初の命令フェッチおよび割り込みによる
再スタート時には、命令フェッチ制御回路13は、PS
W制御回路21からアドレスモードの情報を取得して、
それを命令フェッチ回路のアドレスモード指定ビットに
セットする。これにより、命令アドレスレジスタ11、
命令アドレス生成回路12、および命令フェッチ制御回
路13のそれぞれにアドレスモードがセットされる。
【0055】図7は、命令アドレス生成回路12内でア
ドレスモード指定ビットを保持する回路を示している。
図7のラッチ回路41、42、43は、それぞれ、ポー
トA、ポートB、ポートCのアドレスモード指定ビット
とフェッチすべき命令アドレスを保持する。各ラッチ回
路の入力信号+IF_EAG〈0:31〉は、生成され
たアドレスモード指定ビットと命令アドレスを表し、出
力信号+IARA〈0:31〉、+IARB〈0:3
1〉、および+IARC〈0:31〉は、図6の信号+
IAR〈0:31〉に対応する。
【0056】スタート時に使用される命令フェッチポー
トがAである場合、命令フェッチ要求が発行された時の
アドレスモードが、随時、ポートAに入力され、ポート
のクリア要求が発行されるまで保持される。アドレスモ
ードは、命令フェッチ要求が発行される度に更新される
ので、途中でアドレスモードが変更されれば、変更され
たアドレスモードが保持される。
【0057】次に、命令フェッチポートが切り替わった
場合の動作について説明する。ここでは、一例として、
分岐予測に伴う命令プリフェッチのための命令フェッチ
ポートの切り替えについて説明する。
【0058】分岐命令の分岐予測において、命令フェッ
チ制御回路13は、フェッチした命令アドレスをブラン
チ・ヒストリー15で検索し、過去にそのアドレスの命
令が分岐していたか否かを調べる。分岐していれば、ど
のアドレスに分岐していたかを調べ、分岐先の命令アド
レスに対する命令フェッチ要求を発行する。
【0059】このとき、分岐先の命令アドレスを予測す
るのと同時に、分岐先のアドレスモードも予測する必要
がある。本実施形態では、図3、4に示したように、ア
ドレスモードをアドレスの一部として扱うことで、両者
を同時に予測することを可能にしている。
【0060】一般に、ブランチ・ヒストリー15による
分岐予測および予測分岐先の命令フェッチは命令デコー
ドの前に行われるので、予測した命令が本当に分岐命令
であるのか否か、分岐命令であっても実際に分岐が成立
するのか否か、予測した分岐先命令アドレスが正しいの
か否かは分からない。したがって、現在使用中のポート
とは別の命令フェッチポートを用いて、予測分岐先の命
令フェッチを行う必要がある。
【0061】なお、分岐等が発生せずに、後続の命令列
が順に実行される場合、つまり、シーケンシャルな命令
フェッチが行われる場合は、ポートの切り替えは行われ
ないものとする。
【0062】まず、分岐予測が行われ、命令のプリフェ
ッチが行われ、命令のデコード後に分岐が確定し、さら
に、予測した分岐先の命令アドレスが当たっていた場合
を考える。これは、図5のステップS8の動作が行われ
る場合に相当する。
【0063】この場合、分岐後の命令フェッチは、切り
替わったポート(ここでは、ポートB)を使用して行わ
れる。また、分岐予測に基づく分岐先の命令プリフェッ
チは、シーケンシャルな命令フェッチとは異なるポート
を用いて行われる。ここでは、シーケンシャルな命令フ
ェッチではポートAが使用され、分岐先の命令プリフェ
ッチではポートBが使用される。
【0064】このとき、命令フェッチ制御回路13は、
ポートAとポートBにおいて、それぞれのアドレスモー
ド指定ビットを保持している。分岐命令のデコード後
に、分岐命令の分岐が確定し、予測した分岐先の命令ア
ドレスが正しいと判明したとき、ポートBがポートAに
代わってシーケンシャルな命令フェッチポートとなる。
この時点で、命令フェッチ回路は、ポートAのアドレス
モードを保持する必要がなくなる。
【0065】次に、分岐予測が行われ、命令のプリフェ
ッチが行われ、命令のデコード後に分岐が確定し、さら
に、予測した分岐先の命令アドレスが外れていた場合を
考える。これは、図5のステップS9の動作が行われる
場合に相当する。この場合の動作は、命令のプリフェッ
チまでは、上述の場合と同様である。
【0066】命令のデコード後に分岐が確定し、予測し
た分岐先の命令アドレスが間違っていると判明したと
き、分岐先の命令フェッチをやり直す必要がある。この
とき、命令フェッチ制御回路13は、分岐先アドレス生
成回路19により生成された分岐先アドレスと分岐命令
制御回路20により生成された分岐先のアドレスモード
指定ビットを使用して、命令の再フェッチを行う。これ
により、一旦、命令フェッチ回路のすべてのポートがク
リアされ、命令フェッチが行われる。
【0067】次に、分岐予測が行われ、命令のプリフェ
ッチが行われ、命令のデコード後に分岐しないことが確
定した場合を考える。これは、図5のステップS10の
動作が行われる場合に相当する。この場合の動作は、命
令のプリフェッチまでは、上述の場合と同様である。
【0068】命令のデコード後に、予測した命令が分岐
しなかったとき、すなわち、予測した命令が分岐命令で
はなかったとき、もしくは予測した命令が分岐命令であ
ったが分岐条件が満たされなかったときは、シーケンシ
ャルな命令フェッチが行われていた元のポート(ここで
は、ポートA)において、再び、シーケンシャルな命令
フェッチが再開される。
【0069】このとき、命令フェッチ要求で使用される
アドレスモード指定ビットとしては、命令フェッチ制御
回路13のポートAに保持されたものが使用される。ま
た、分岐予測に基づいて命令のプリフェッチが行われた
ポート(ここでは、ポートB)はクリアされる。
【0070】分岐予測に伴う命令プリフェッチのための
命令フェッチポートの切り替えが行われたときは、以上
の動作によりアドレスモード指定ビットがセットされ
る。次に、分岐先のアドレスモード指定ビットの生成回
路について説明する。
【0071】分岐命令がアドレスモードを変更する命令
である場合、図8に示すような回路により、その分岐命
令が指定するアドレスモードの信号が生成される。図8
では、BSMという命令に対する信号が示されており、
この回路は分岐命令アドレス生成回路19内に設けられ
る。
【0072】図8において、入力信号+A_BSMは、
論理“1”のとき、アドレスモードを変更する指示を表
し、論理“0”のとき、アドレスモードを変更しない指
示を表す。また、入力信号+BR2_BIT32は、論
理“1”のとき、31ビットモードを表し、論理“0”
のとき、24ビットモードを表す。
【0073】また、入力信号−BR2_BIT32は、
信号+BR2_BIT32の否定に対応し、論理“1”
のとき、24ビットモードを表し、論理“0”のとき、
31ビットモードを表す。これらの入力信号は、分岐命
令アドレス生成回路19内において、図6の信号+A_
ADRS_MODEから生成される。
【0074】AND回路51は、信号+A_BSMと−
BR2_BIT32の論理積を信号+A_BSM_24
BIT_ADRS_MODEとして出力する。したがっ
て、出力信号+A_BSM_24BIT_ADRS_M
ODEは、論理“1”のとき、アドレスモードが24ビ
ットモードに変更されることを表す。
【0075】また、AND回路52は、信号+A_BS
Mと+BR2_BIT32の論理積を信号+A_BSM
_31BIT_ADRS_MODEとして出力する。し
たがって、出力信号+A_BSM_31BIT_ADR
S_MODEは、論理“1”のとき、アドレスモードが
31ビットモードに変更されることを表す。
【0076】ところで、アドレスモードが24ビットモ
ードと31ビットモードの2通りしかない場合は、信号
+A_BSM_24BIT_ADRS_MODEと+A
_BSM_31BIT_ADRS_MODEのいずれか
一方のみでも、命令処理の制御が可能である。そこで、
図6では、信号+A_BSM_31BIT_ADRS_
MODEのみが分岐命令制御回路20に出力されてい
る。
【0077】また、分岐命令自身のアドレスモードの信
号は、分岐命令制御回路20内で、図9に示すような回
路により生成される。図9のラッチ回路61は、図6の
信号+D_BR_IAR〈0〉をラッチし、信号+RS
BR_31BIT_ADRS_MODEとして出力す
る。信号+RSBR_31BIT_ADRS_MODE
は、論理“1”のとき、分岐命令のアドレスモードが3
1ビットモードであることを表す。
【0078】図10は、分岐先のアドレスモード指定ビ
ットを生成する回路を示している。この回路は、分岐命
令制御回路20内に設けられ、実行される分岐命令がア
ドレスモードを変更する命令であるか否かに従って、ア
ドレスモード指定ビットを生成する。
【0079】アドレスモードを変更する命令である場合
は、分岐先アドレス生成回路19から受け取った、分岐
命令が指定するアドレスモードの信号をアドレスモード
指定ビットとしてセットし、アドレスモードを変更しな
い命令である場合は、分岐命令のアドレスモードを、そ
のままアドレスモード指定ビットとしてセットする。
【0080】図10において、入力信号+RSBR_B
SM_VALは、論理“1”のとき、デコードされた分
岐命令がアドレスモードを変更する命令であることを表
す。また、入力信号−RSBR_BSM_VALは、信
号+RSBR_BSM_VALの否定に相当し、論理
“1”のとき、デコードされた分岐命令がアドレスモー
ドを変更しない命令であることを表す。これらの入力信
号は、デコーダ17によるデコード結果から生成され
る。
【0081】AND回路71は、信号+RSBR_BS
M_VALと図8の信号+A_BSM_31BIT_A
DRS_MODEの論理積をOR回路73に出力する。
また、AND回路72は、信号−RSBR_BSM_V
ALと図9の信号+RSBR_31BIT_ADRS_
MODEの論理積をOR回路73に出力する。そして、
OR回路73は、これらの2つのAND回路の出力の論
理和を、分岐先のアドレスモード指定ビットを表す信号
+EAG2〈0〉として出力する。
【0082】したがって、出力信号+EAG2〈0〉
は、論理“1”のとき、分岐先のアドレスモードが31
ビットモードであることを表し、論理“0”のとき、分
岐先のアドレスモードが24ビットモードであることを
表す。
【0083】この信号+EAG2〈0〉が図6の分岐先
アドレスを表す信号+EAG2〈1:31〉に付加され
て、信号+EAG2〈0:31,P0:P3〉が生成さ
れる。信号+EAG2〈0:31,P0:P3〉は、分
岐先のアドレスモード指定ビットと分岐先アドレスを表
し、分岐命令制御回路20内に保持される。
【0084】次に、予測した分岐先の命令アドレスとア
ドレスモード指定ビットが正しいか否かを判定する回路
について説明する。図11は、このような判定を行う回
路を示しており、この回路は分岐命令制御回路20内に
設けられる。図11において、入力信号+BRHIS_
TIAR〈0:31,P0:P3〉は、分岐予測により
予測された分岐先アドレスと分岐先アドレスモード指定
ビットを表す。
【0085】EXNOR回路81は、信号+EAG2
〈0:31,P0:P3〉と+BRHIS_TIAR
〈0:31,P0:P3〉をビット毎に比較し、対応す
る2つのビットの排他的論理和の否定を表す信号を出力
する。ここでは、アドレスモード指定ビットがアドレス
の一部として扱われるので、アドレスモード指定ビッ
ト、分岐先アドレス、およびパリティが、同時に比較さ
れる。
【0086】また、AND回路82は、EXNOR回路
81が出力したすべてのビットの比較結果(〈0〉,
〈1〉,...,〈P3〉)の論理積を、信号+RSB
R_TIAR_MATCHとして出力する。
【0087】したがって、アドレスモード指定ビット、
分岐先アドレス、およびパリティのすべてが一致した場
合、信号+RSBR_TIAR_MATCHは論理
“1”となる。この場合、分岐命令制御回路20は、分
岐予測が当たったものと判断し、そのまま処理を続行す
る。
【0088】しかし、いずれかのビットが一致しなけれ
ば、この信号が論理“0”となり、分岐予測が失敗した
と判断される。この場合、分岐命令制御回路20は、分
岐先アドレス生成回路19で生成された分岐先アドレス
と分岐命令制御回路20で生成されたアドレスモード指
定ビットを、図6の信号+RSBR_TIAR〈0:3
1,P0:P3〉として命令フェッチ制御回路13に出
力する。これにより、分岐先の命令フェッチがやり直さ
れる。
【0089】また、分岐命令制御回路20は、分岐命令
の制御が終了するとき、その分岐命令がアドレスモード
を変更する分岐命令であるか否かを判定し、判定結果を
PSW制御回路21に出力する。これにより、アドレス
モードを変更する分岐命令についての情報がPSW制御
回路21に保持されるので、どのような命令によりアド
レスモードが変更されたかを認識しながら命令処理装置
を制御することができる。
【0090】また、分岐命令制御回路20は、分岐先の
命令再フェッチ要求を出すとき、分岐先の命令アドレス
とともにアドレスモード指定ビットをPSW制御回路2
1に出力する。これにより、分岐先の命令アドレスと同
時に分岐先のアドレスモードもPSW制御回路21に保
持されるので、そのアドレスモードに基づいて命令処理
装置を制御することができる。
【0091】図12は、このようなPSW制御回路21
への出力信号を生成する回路を示している。この回路
は、分岐命令制御回路20内に設けられる。図12にお
いて、入力信号+RSBR_TAKENは、論理“1”
のとき、分岐命令が実際に分岐したことを表す。
【0092】AND回路91は、信号+RSBR_TI
AR〈0:31,P0:P3〉と+RSBR_TAKE
Nの論理積を、信号+COMPLETE_RSBR_T
IAR〈0:31,P0:P3〉として出力する。した
がって、この出力信号は、分岐命令が実行され分岐した
ときの分岐先のアドレスモード指定ビットと命令アドレ
スを表す。
【0093】また、AND回路92は、図10の信号+
RSBR_BSM_VALと+RSBR_TAKENの
論理積を、信号+COMPLETE_RSBR_BSM
として出力する。したがって、この出力信号は、論理
“1”のとき、分岐命令が分岐したときに実行された命
令がアドレスモードを変更する分岐命令BSMであるこ
とを表す。
【0094】これらの出力信号+COMPLETE_R
SBR_TIAR〈0:31,P0:P3〉と+COM
PLETE_RSBR_BSMは、制御信号としてPS
W制御回路21に出力される。
【0095】従来の命令処理装置では、分岐予測の際
に、分岐先のアドレスモードを予測することができず、
分岐先アドレスを計算する際に、分岐先命令のアドレス
モードを生成することができなかった。また、複数の命
令フェッチポートを有する場合、アドレスモードをポー
ト毎に保持していなかったので、ポートの切り替えが起
こったとき、分岐先のアドレスモードを変更する命令を
ハードウェアで正確に制御することができなかった。こ
のため、従来の装置では、マイクロプログラムによる制
御を必要としていた。
【0096】これに対して、本発明の命令処理装置で
は、すべての命令の命令アドレスに対して、そのアドレ
スモード情報を命令アドレスの一部として付加し、すべ
てのサイクルにおいてアドレスモード情報を保持してい
る。このため、どのサイクルにおいても、保持されたア
ドレスモード情報に基づいて、ハードウェアで正確な制
御を行うことができる。
【0097】例えば、分岐予測に基づいて、アドレスモ
ードの変更を伴う分岐命令の分岐先命令列のプリフェッ
チを行うとき、変更後のアドレスモードに基づいて正し
いフェッチ動作を行うことができる。また、分岐先の命
令アドレスをアドレスジェネレータで計算する際、同時
に分岐先のアドレスモードを生成することができる。
【0098】さらに、複数の命令フェッチポートを有す
る場合、アドレスモードをポート毎に保持しているた
め、ポートの切り替えが起こったときでも、切り替え後
のポートのアドレスモードに基づいて正しいフェッチ動
作を行うことができる。
【0099】このように、アドレスモードの変更を伴う
分岐命令がハードウェアにより正確に制御されるため、
マイクロプログラムによる制御が不要になり、命令実行
時に必要なクロック数を大幅に削減することができる。
したがって、命令処理装置の処理速度が大幅に向上す
る。
【0100】以上説明した実施形態においては、24ビ
ットモードと31ビットモードの2つのアドレスモード
が使用されているが、3つ以上のアドレスモードが使用
される場合でも、複数のアドレスモード指定ビットを用
いることで、同様の制御を行うことができる。
【0101】また、本発明は、アドレスモード以外に
も、命令フェッチ時に決定されるべき情報処理装置の任
意のモードに対して適用される。例えば、コンピュータ
の動作仕様書に規定されたESA(enterprise systems
architecture )モード等の動作モードを変更する分岐
命令を処理する場合、すべての命令の命令アドレスに対
して、その動作モードを指定する情報を命令アドレスの
一部として付加し、すべてのサイクルにおいてその情報
を保持しておけばよい。これにより、任意のサイクルに
おいて、保持された動作モード情報に基づいた制御が可
能になる。
【0102】
【発明の効果】本発明によれば、アウトオブオーダー処
理方式を採用した情報処理装置において、モードの変更
を伴う命令をハードウェアにより正確に制御することが
可能になる。したがって、命令処理が高速化される。
【図面の簡単な説明】
【図1】本発明の命令処理装置の原理図である。
【図2】命令処理装置の構成図である。
【図3】アドレスモード指定ビットを示す図である。
【図4】ブランチ・ヒストリーのエントリのフォーマッ
トを示す図である。
【図5】命令処理装置の動作フローチャートである。
【図6】命令処理に用いられる信号を示す図である。
【図7】アドレスモード保持回路を示す図である。
【図8】第1のアドレスモード生成回路を示す図であ
る。
【図9】第2のアドレスモード生成回路を示す図であ
る。
【図10】アドレスモード指定ビット生成回路を示す図
である。
【図11】判定回路を示す図である。
【図12】制御信号生成回路を示す図である。
【符号の説明】
1 保持手段 2 分岐命令制御手段 3 転送手段 4 フェッチ手段 5 制御手段 11 命令アドレスレジスタ 12 命令アドレス生成回路 13 命令フェッチ制御回路 14 命令キャッシュ 15 ブランチ・ヒストリー 16 命令バッファ 17 デコーダ 18 命令制御回路 19 分岐先アドレス生成回路 20 分岐命令制御回路 21 PSW制御回路 31 分岐命令アドレス 32 分岐先アドレス 33、34 アドレスモード指定ビット 41、42、43、61 ラッチ回路 51、52、71、72、82、91、92 AND回
路 73 OR回路 81 EXNOR回路

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 フェッチされた命令のアドレスモード情
    報を命令アドレスとともに保持する保持手段と、 前記フェッチされた命令が分岐命令であるとき、前記ア
    ドレスモード情報を用いて該分岐命令の制御を行う分岐
    命令制御手段と、 前記分岐命令が実行されるとき、前記保持手段に保持さ
    れたアドレスモード情報を前記分岐命令制御手段に転送
    する転送手段とを備えることを特徴とする命令処理装
    置。
  2. 【請求項2】 前記分岐命令制御手段は、前記分岐命令
    の分岐先のアドレスモード情報を分岐先の命令アドレス
    とともに保持することを特徴とする請求項1記載の命令
    処理装置。
  3. 【請求項3】 前記分岐命令制御手段は、前記分岐命令
    のアドレスモード情報に基づいて前記分岐先のアドレス
    モード情報を生成することを特徴とする請求項2記載の
    命令処理装置。
  4. 【請求項4】 前記分岐命令制御手段は、前記分岐先の
    アドレスモード情報と命令アドレスを用いて、分岐予測
    により予測された分岐先のアドレスモード情報と命令ア
    ドレスが正しいか否かを判定することを特徴とする請求
    項2記載の命令処理装置。
  5. 【請求項5】 前記分岐命令制御手段は、分岐先の命令
    フェッチ要求を出すとき、前記分岐先のアドレスモード
    情報と命令アドレスを指定する信号を出力することを特
    徴とする請求項2記載の命令処理装置。
  6. 【請求項6】 前記分岐命令制御手段は、前記分岐命令
    の制御が終了するとき、該分岐命令がアドレスモードを
    変更する分岐命令であるか否かを表す信号を出力するこ
    とを特徴とする請求項1記載の命令処理装置。
  7. 【請求項7】 分岐命令のアドレスモード情報と命令ア
    ドレスと、分岐先のアドレスモード情報と命令アドレス
    とを対応付けて格納し、前記フェッチされた分岐命令の
    分岐予測を行うブランチ・ヒストリー手段をさらに備え
    ることを特徴とする請求項1記載の命令処理装置。
  8. 【請求項8】 前記アドレスモード情報を用いて前記分
    岐命令の分岐先の命令アドレスを生成する分岐先アドレ
    ス生成手段をさらに備え、前記転送手段は、該分岐命令
    が実行されるとき、前記保持手段に保持されたアドレス
    モード情報を該分岐先アドレス生成手段に転送すること
    を特徴とする請求項1記載の命令処理装置。
  9. 【請求項9】 フェッチされた命令のモード情報を命令
    アドレスとともに保持する保持手段と、 前記フェッチされた命令が分岐命令であるとき、前記モ
    ード情報を用いて該分岐命令の制御を行う分岐命令制御
    手段と、 前記分岐命令が実行されるとき、前記保持手段に保持さ
    れたモード情報を前記分岐命令制御手段に転送する転送
    手段とを備えることを特徴とする命令処理装置。
  10. 【請求項10】 命令をフェッチするフェッチ手段と、 フェッチされた各命令のモード情報を命令アドレスの一
    部として保持する保持手段と、 保持されたモード情報に基づいて各命令の命令処理を制
    御する制御手段とを備えることを特徴とする命令処理装
    置。
  11. 【請求項11】 複数の命令フェッチポートを有し、ア
    ウトオブオーダー方式で命令フェッチを行う命令処理装
    置であって、 各ポート毎に、命令フェッチ要求が発行されたときのモ
    ード情報を命令アドレスとともに保持する保持手段と、 使用されるポートに対応するモード情報に基づいて、命
    令フェッチを行うフェッチ手段とを備えることを特徴と
    する命令処理装置。
  12. 【請求項12】 各命令をフェッチするときに決定され
    るべき情報処理装置のモード情報を、命令アドレスの一
    部として扱い、 命令をフェッチし、 フェッチされた命令の命令処理の各サイクルにおいて、
    該フェッチされた命令のモード情報を保持し、 保持されたモード情報に基づいて、該フェッチされた命
    令の命令処理を制御することを特徴とする命令処理方
    法。
JP27623399A 1999-09-29 1999-09-29 モードを変更する分岐命令を制御する命令処理装置および方法 Expired - Fee Related JP3606435B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP27623399A JP3606435B2 (ja) 1999-09-29 1999-09-29 モードを変更する分岐命令を制御する命令処理装置および方法
US09/528,714 US7036003B1 (en) 1999-09-29 2000-03-20 Instruction processing device and method for controlling branch instruction accompanied by mode change

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27623399A JP3606435B2 (ja) 1999-09-29 1999-09-29 モードを変更する分岐命令を制御する命令処理装置および方法

Publications (2)

Publication Number Publication Date
JP2001100994A true JP2001100994A (ja) 2001-04-13
JP3606435B2 JP3606435B2 (ja) 2005-01-05

Family

ID=17566561

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27623399A Expired - Fee Related JP3606435B2 (ja) 1999-09-29 1999-09-29 モードを変更する分岐命令を制御する命令処理装置および方法

Country Status (2)

Country Link
US (1) US7036003B1 (ja)
JP (1) JP3606435B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7971034B2 (en) * 2008-03-19 2011-06-28 International Business Machines Corporation Reduced overhead address mode change management in a pipelined, recycling microprocessor
US9911008B2 (en) 2010-05-25 2018-03-06 Via Technologies, Inc. Microprocessor with on-the-fly switching of decryption keys
US9798898B2 (en) 2010-05-25 2017-10-24 Via Technologies, Inc. Microprocessor with secure execution mode and store key instructions
US9967092B2 (en) 2010-05-25 2018-05-08 Via Technologies, Inc. Key expansion logic using decryption key primitives
US9892283B2 (en) 2010-05-25 2018-02-13 Via Technologies, Inc. Decryption of encrypted instructions using keys selected on basis of instruction fetch address
US8700919B2 (en) 2010-05-25 2014-04-15 Via Technologies, Inc. Switch key instruction in a microprocessor that fetches and decrypts encrypted instructions
US10564973B2 (en) * 2015-11-20 2020-02-18 Arm Limited Apparatus and method for sharing branch information storage entries between threads that share an address translation regime

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0752390B2 (ja) * 1985-05-07 1995-06-05 株式会社日立製作所 命令処理装置
JPS61278935A (ja) 1985-06-04 1986-12-09 Nec Corp 処理モ−ド変更方式
WO1987005417A1 (en) * 1986-02-28 1987-09-11 Nec Corporation Instruction prefetch control apparatus
JPS63298633A (ja) 1987-05-29 1988-12-06 Fujitsu Ltd パイプライン処理装置における命令フェッチ制御方式
JPH01269131A (ja) * 1988-04-20 1989-10-26 Hitachi Ltd 命令先行制御方式
JPH04245334A (ja) 1991-01-31 1992-09-01 Hitachi Ltd 情報処理装置の命令先読み制御方式
DE69231451T2 (de) * 1991-03-11 2001-05-10 Mips Tech Inc Rückwärts kompatible Rechnerarchitektur mit erweiterten Wortbreiten und Adressraum
US5442756A (en) * 1992-07-31 1995-08-15 Intel Corporation Branch prediction and resolution apparatus for a superscalar computer processor
GB9412487D0 (en) * 1994-06-22 1994-08-10 Inmos Ltd A computer system for executing branch instructions
US5963721A (en) * 1995-12-29 1999-10-05 Texas Instruments Incorporated Microprocessor system with capability for asynchronous bus transactions
US5752259A (en) * 1996-03-26 1998-05-12 Advanced Micro Devices, Inc. Instruction cache configured to provide instructions to a microprocessor having a clock cycle time less than a cache access time of said instruction cache
US5754811A (en) * 1996-10-08 1998-05-19 Putrino; Michael Instruction dispatch queue for improved instruction cache to queue timing
US6427204B1 (en) * 1999-06-25 2002-07-30 International Business Machines Corporation Method for just in-time delivery of instructions in a data processing system

Also Published As

Publication number Publication date
US7036003B1 (en) 2006-04-25
JP3606435B2 (ja) 2005-01-05

Similar Documents

Publication Publication Date Title
US6185676B1 (en) Method and apparatus for performing early branch prediction in a microprocessor
US4858104A (en) Preceding instruction address based branch prediction in a pipelined processor
EP0180725B1 (en) Instruction prefetch operation for branch instructions
JP2744890B2 (ja) ブランチ予測式データ処理装置および動作方法
US5805877A (en) Data processor with branch target address cache and method of operation
KR100571322B1 (ko) 파이프라인식 프로세서에서의 예외 취급 방법, 장치 및시스템
JPH0557616B2 (ja)
JP2006520964A (ja) 分岐ターゲットに基づいて分岐予測をするための方法および装置
JP2006520964A5 (ja)
JP4009248B2 (ja) 分岐予測装置および分岐予測方法
US7017026B2 (en) Generating lookahead tracked register value based on arithmetic operation indication
US5146570A (en) System executing branch-with-execute instruction resulting in next successive instruction being execute while specified target instruction is prefetched for following execution
JP3606435B2 (ja) モードを変更する分岐命令を制御する命令処理装置および方法
JP5154763B2 (ja) 複数の命令セットデータ処理システム内の条件付分岐命令エンコーディング
JP3839755B2 (ja) 命令制御方法及びプロセッサ
JP2001060152A (ja) 分岐予測を抑止する情報処理装置および方法
JP3723019B2 (ja) サブルーチンリターン相当の命令の分岐予測を行う装置および方法
JP2004038338A (ja) 分岐予測機構を有する情報処理装置
JP2577023B2 (ja) 情報処理装置のアドレス拡張制御方式
JPH07262006A (ja) 分岐ターゲットアドレスキャッシュを備えたデータプロセッサ
JPS62224829A (ja) 命令キヤツシユ制御方式
JP2772100B2 (ja) 並列命令フェッチ機構
JP2001236225A (ja) 演算装置及び分岐予測方法並びに情報処理装置
JPWO2004107163A1 (ja) 分岐予測機構を持つ命令制御装置及びその制御方法
JPH06332698A (ja) 情報処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040727

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040830

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: 20040928

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040930

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071015

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081015

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081015

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091015

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091015

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101015

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101015

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111015

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111015

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121015

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121015

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131015

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees