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

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

Info

Publication number
JP3606435B2
JP3606435B2 JP27623399A JP27623399A JP3606435B2 JP 3606435 B2 JP3606435 B2 JP 3606435B2 JP 27623399 A JP27623399 A JP 27623399A JP 27623399 A JP27623399 A JP 27623399A JP 3606435 B2 JP3606435 B2 JP 3606435B2
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.)
Expired - Fee Related
Application number
JP27623399A
Other languages
English (en)
Other versions
JP2001100994A (ja
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.)
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

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/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 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

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

【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、分岐命令制御手段2、および転送手段3を備える。保持手段1は、フェッチされた命令の命令アドレスを保持するとともに、フェッチ要求が発行されたときのアドレスモード情報をその命令アドレスの一部として保持する。転送手段3は、分岐命令が実行されるとき、保持手段1に保持されたアドレスモード情報を転送する。分岐命令制御手段2は、転送手段3によって転送されたアドレスモード情報を受け取り、そのアドレスモード情報を用いて分岐命令の制御を行う
例えば、図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の命令処理装置は、命令アドレスレジスタ11、命令アドレス生成回路12、命令フェッチ制御回路13、命令キャッシュ14、ブランチ・ヒストリー15、命令バッファ16、デコーダ17、命令制御回路18、分岐先アドレス生成回路19、分岐命令制御回路20、およびPSW(Program−Status−Word )制御回路21を備える。
【0032】
このうち、命令アドレスレジスタ11、命令アドレス生成回路12、命令フェッチ制御回路13、命令キャッシュ14、およびブランチ・ヒストリー15は、命令フェッチパイプラインの回路に対応し、命令バッファ16、デコーダ17、命令制御回路18、分岐先アドレス生成回路19、分岐命令制御回路20、およびPSW制御回路21は、命令実行パイプラインの回路に対応する。
【0033】
命令フェッチパイプラインは、命令アドレス発行サイクル(IA)、テーブルサイクル(IT)、バッファサイクル(IB)、および結果サイクル(IR)を含み、命令実行パイプラインは、デコードサイクル(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】
また、使用されるアドレスモードには、31ビットモードと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において分岐することが確定すると(ステップS5)、分岐命令制御回路20は、分岐先アドレス生成回路19から、分岐先アドレスと分岐先アドレスモードを受け取り、分岐先のアドレスモード指定ビットを生成する(ステップS6)。
【0045】
次に、分岐命令制御回路20は、ブランチ・ヒストリー15により予測された分岐先アドレスと分岐先アドレスモード指定ビットが正しいか否かを判定する(ステップS7)。それらが正しければ、予測が成功したものとみなして、分岐先命令の処理を続行する(ステップS8)。それらが正しくなければ、予測が失敗したものとみなして、命令フェッチ制御回路13に分岐先命令の再フェッチを指示する(ステップS9)。
【0046】
また、ステップS5において分岐しないことが確定すると、命令フェッチ制御回路13に分岐先命令列のプリフェッチを停止するように指示する(ステップS10)。これにより、命令フェッチ制御回路13は、フェッチポートを元のポートに戻して、分岐命令の後続命令列の処理を続行する。
【0047】
図6は、このような命令処理に用いられる信号を示している。命令フェッチ制御回路13は、信号+IAR〈0:31,P0:P3〉を命令キャッシュ14に出力し、命令キャッシュ14は、対応する命令コードを命令バッファ16に出力する。信号+IAR〈0:31,P0:P3〉のうち、+IAR〈0〉はアドレスモード指定ビットに対応し、+IAR〈1:31〉は命令アドレスに対応し、+IAR〈P0:P3〉は、+IAR〈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_ADRS_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は、PSW制御回路21からアドレスモードの情報を取得して、それを命令フェッチ回路のアドレスモード指定ビットにセットする。これにより、命令アドレスレジスタ11、命令アドレス生成回路12、および命令フェッチ制御回路13のそれぞれにアドレスモードがセットされる。
【0055】
図7は、命令アドレス生成回路12内でアドレスモード指定ビットを保持する回路を示している。図7のラッチ回路41、42、43は、それぞれ、ポートA、ポートB、ポートCのアドレスモード指定ビットとフェッチすべき命令アドレスを保持する。各ラッチ回路の入力信号+IF_EAG〈0:31〉は、生成されたアドレスモード指定ビットと命令アドレスを表し、出力信号+IARA〈0:31〉、+IARB〈0:31〉、および+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_24BIT_ADRS_MODEとして出力する。したがって、出力信号+A_BSM_24BIT_ADRS_MODEは、論理“1”のとき、アドレスモードが24ビットモードに変更されることを表す。
【0075】
また、AND回路52は、信号+A_BSMと+BR2_BIT32の論理積を信号+A_BSM_31BIT_ADRS_MODEとして出力する。したがって、出力信号+A_BSM_31BIT_ADRS_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〉をラッチし、信号+RSBR_31BIT_ADRS_MODEとして出力する。信号+RSBR_31BIT_ADRS_MODEは、論理“1”のとき、分岐命令のアドレスモードが31ビットモードであることを表す。
【0078】
図10は、分岐先のアドレスモード指定ビットを生成する回路を示している。この回路は、分岐命令制御回路20内に設けられ、実行される分岐命令がアドレスモードを変更する命令であるか否かに従って、アドレスモード指定ビットを生成する。
【0079】
アドレスモードを変更する命令である場合は、分岐先アドレス生成回路19から受け取った、分岐命令が指定するアドレスモードの信号をアドレスモード指定ビットとしてセットし、アドレスモードを変更しない命令である場合は、分岐命令のアドレスモードを、そのままアドレスモード指定ビットとしてセットする。
【0080】
図10において、入力信号+RSBR_BSM_VALは、論理“1”のとき、デコードされた分岐命令がアドレスモードを変更する命令であることを表す。また、入力信号−RSBR_BSM_VALは、信号+RSBR_BSM_VALの否定に相当し、論理“1”のとき、デコードされた分岐命令がアドレスモードを変更しない命令であることを表す。これらの入力信号は、デコーダ17によるデコード結果から生成される。
【0081】
AND回路71は、信号+RSBR_BSM_VALと図8の信号+A_BSM_31BIT_ADRS_MODEの論理積をOR回路73に出力する。また、AND回路72は、信号−RSBR_BSM_VALと図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〉)の論理積を、信号+RSBR_TIAR_MATCHとして出力する。
【0087】
したがって、アドレスモード指定ビット、分岐先アドレス、およびパリティのすべてが一致した場合、信号+RSBR_TIAR_MATCHは論理“1”となる。この場合、分岐命令制御回路20は、分岐予測が当たったものと判断し、そのまま処理を続行する。
【0088】
しかし、いずれかのビットが一致しなければ、この信号が論理“0”となり、分岐予測が失敗したと判断される。この場合、分岐命令制御回路20は、分岐先アドレス生成回路19で生成された分岐先アドレスと分岐命令制御回路20で生成されたアドレスモード指定ビットを、図6の信号+RSBR_TIAR〈0:31,P0:P3〉として命令フェッチ制御回路13に出力する。これにより、分岐先の命令フェッチがやり直される。
【0089】
また、分岐命令制御回路20は、分岐命令の制御が終了するとき、その分岐命令がアドレスモードを変更する分岐命令であるか否かを判定し、判定結果をPSW制御回路21に出力する。これにより、アドレスモードを変更する分岐命令についての情報がPSW制御回路21に保持されるので、どのような命令によりアドレスモードが変更されたかを認識しながら命令処理装置を制御することができる。
【0090】
また、分岐命令制御回路20は、分岐先の命令再フェッチ要求を出すとき、分岐先の命令アドレスとともにアドレスモード指定ビットをPSW制御回路21に出力する。これにより、分岐先の命令アドレスと同時に分岐先のアドレスモードもPSW制御回路21に保持されるので、そのアドレスモードに基づいて命令処理装置を制御することができる。
【0091】
図12は、このようなPSW制御回路21への出力信号を生成する回路を示している。この回路は、分岐命令制御回路20内に設けられる。図12において、入力信号+RSBR_TAKENは、論理“1”のとき、分岐命令が実際に分岐したことを表す。
【0092】
AND回路91は、信号+RSBR_TIAR〈0:31,P0:P3〉と+RSBR_TAKENの論理積を、信号+COMPLETE_RSBR_TIAR〈0:31,P0:P3〉として出力する。したがって、この出力信号は、分岐命令が実行され分岐したときの分岐先のアドレスモード指定ビットと命令アドレスを表す。
【0093】
また、AND回路92は、図10の信号+RSBR_BSM_VALと+RSBR_TAKENの論理積を、信号+COMPLETE_RSBR_BSMとして出力する。したがって、この出力信号は、論理“1”のとき、分岐命令が分岐したときに実行された命令がアドレスモードを変更する分岐命令BSMであることを表す。
【0094】
これらの出力信号+COMPLETE_RSBR_TIAR〈0:31,P0:P3〉と+COMPLETE_RSBR_BSMは、制御信号としてPSW制御回路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 (11)

  1. フェッチされた命令の命令アドレスを保持するとともに、フェッチ要求が発行されたときのアドレスモード情報を命令アドレスの一部として保持する保持手段と、
    分岐命令が実行されるとき、前記保持手段に保持された前記アドレスモード情報を転送する転送手段と、
    前記転送手段によって転送された前記アドレスモード情報を受け取り、該アドレスモード情報を用いて前記分岐命令の制御を行う分岐命令制御手段
    を備えることを特徴とする命令処理装置。
  2. 前記分岐命令制御手段は、前記分岐命令の分岐先のアドレスモード情報を分岐先の命令アドレスとともに保持することを特徴とする請求項1記載の命令処理装置。
  3. 前記分岐命令制御手段は、前記分岐命令のアドレスモード情報に基づいて前記分岐先のアドレスモード情報を生成することを特徴とする請求項2記載の命令処理装置。
  4. 前記分岐命令制御手段は、前記分岐先のアドレスモード情報と命令アドレスを用いて、分岐予測により予測された分岐先のアドレスモード情報と命令アドレスが正しいか否かを判定することを特徴とする請求項2記載の命令処理装置。
  5. 前記分岐命令制御手段は、分岐先の命令フェッチ要求を出すとき、前記分岐先のアドレスモード情報と命令アドレスを指定する信号を出力することを特徴とする請求項2記載の命令処理装置。
  6. 前記分岐命令制御手段は、前記分岐命令の制御が終了するとき、該分岐命令がアドレスモードを変更する分岐命令であるか否かを表す信号を出力することを特徴とする請求項1記載の命令処理装置。
  7. 分岐命令のアドレスモード情報と命令アドレスと、分岐先のアドレスモード情報と命令アドレスとを対応付けて格納し、前記フェッチされた分岐命令の分岐予測を行うブランチ・ヒストリー手段をさらに備えることを特徴とする請求項1記載の命令処理装置。
  8. 前記アドレスモード情報を用いて前記分岐命令の分岐先の命令アドレスを生成する分岐先アドレス生成手段をさらに備え、前記転送手段は、該分岐命令が実行されるとき、前記保持手段に保持されたアドレスモード情報を該分岐先アドレス生成手段に転送することを特徴とする請求項1記載の命令処理装置。
  9. フェッチされた命令の命令アドレスを保持するとともに、フェッチ要求が発行されたときのモード情報を命令アドレスの一部として保持する保持手段と、
    分岐命令が実行されるとき、前記保持手段に保持された前記モード情報を転送する転送手段と、
    前記転送手段によって転送された前記モード情報を受け取り、該モード情報を用いて前記分岐命令の制御を行う分岐命令制御手段
    を備えることを特徴とする命令処理装置。
  10. 複数の命令フェッチポートを有し、アウトオブオーダー方式で命令フェッチを行う命令処理装置であって、
    各ポート毎に、命令フェッチ要求が発行されたときのモード情報を命令アドレスとともに保持する保持手段と、
    使用されるポートに対応するモード情報に基づいて、命令フェッチを行うフェッチ手段と
    を備えることを特徴とする命令処理装置。
  11. フェッチされた命令の命令アドレスを保持手段に保持するとともに、フェッチ要求が発行されたときのモード情報を該命令アドレスの一部として該保持手段に保持し、
    転送手段が、分岐命令が実行されるとき、前記保持手段に保持された前記モード情報を 分岐命令制御手段に転送し、
    前記分岐命令制御手段が、前記転送手段によって転送された前記モード情報を用いて前記分岐命令の制御を行う
    ことを特徴とする命令処理方法。
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 JP2001100994A (ja) 2001-04-13
JP3606435B2 true 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
US9967092B2 (en) 2010-05-25 2018-05-08 Via Technologies, Inc. Key expansion logic using decryption key primitives
US9798898B2 (en) 2010-05-25 2017-10-24 Via Technologies, Inc. Microprocessor with secure execution mode and store key instructions
US9911008B2 (en) 2010-05-25 2018-03-06 Via Technologies, Inc. Microprocessor with on-the-fly switching of decryption keys
US9892283B2 (en) 2010-05-25 2018-02-13 Via Technologies, Inc. Decryption of encrypted instructions using keys selected on basis of instruction fetch address
US8645714B2 (en) 2010-05-25 2014-02-04 Via Technologies, Inc. Branch target address cache for predicting instruction decryption keys 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 処理モ−ド変更方式
DE3785897T2 (de) * 1986-02-28 1993-09-30 Nec Corp Steuervorrichtung zum vorabruf von befehlen.
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 情報処理装置の命令先読み制御方式
DE69227604T2 (de) * 1991-03-11 1999-06-24 Silicon Graphics Inc Mountain 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
JP2001100994A (ja) 2001-04-13
US7036003B1 (en) 2006-04-25

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
US4775927A (en) Processor including fetch operation for branch instruction with control tag
JP3845043B2 (ja) 命令フェッチ制御装置
JP2744890B2 (ja) ブランチ予測式データ処理装置および動作方法
JPH06236268A (ja) 命令の長さを判定する装置と方法
JPH0557616B2 (ja)
JPH02206837A (ja) パイプライン方式のコンピューターシステムにおける色々な個数の潜在的メモリーアクセス矛盾を解決する方法及び装置
KR20040016829A (ko) 파이프라인식 프로세서에서의 예외 취급 방법, 장치 및시스템
US5313644A (en) System having status update controller for determining which one of parallel operation results of execution units is allowed to set conditions of shared processor status word
JP2018506776A (ja) 選択的ページミス変換プリフェッチによってプログラムメモリコントローラにおけるページ変換ミスレイテンシを隠すこと
JP2006520964A5 (ja)
US5146570A (en) System executing branch-with-execute instruction resulting in next successive instruction being execute while specified target instruction is prefetched for following execution
EP0297943B1 (en) Microcode reading control system
KR100986375B1 (ko) 피연산자의 빠른 조건부 선택
JP2005165950A (ja) 分岐予測装置および分岐予測方法
JP3606435B2 (ja) モードを変更する分岐命令を制御する命令処理装置および方法
JP3834145B2 (ja) ネスト可能な遅延分岐命令を有するマイクロプロセッサを備えたデータ処理装置及びそのマイクロプロセッサを動作させる方法
JP3839755B2 (ja) 命令制御方法及びプロセッサ
JP3723019B2 (ja) サブルーチンリターン相当の命令の分岐予測を行う装置および方法
JP2577023B2 (ja) 情報処理装置のアドレス拡張制御方式
JP2004038338A (ja) 分岐予測機構を有する情報処理装置
JPH07262006A (ja) 分岐ターゲットアドレスキャッシュを備えたデータプロセッサ
JPS62224829A (ja) 命令キヤツシユ制御方式
US8117383B2 (en) Hardware accelerator based method and device for string searching

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