JPH0557616B2 - - Google Patents
Info
- Publication number
- JPH0557616B2 JPH0557616B2 JP58159903A JP15990383A JPH0557616B2 JP H0557616 B2 JPH0557616 B2 JP H0557616B2 JP 58159903 A JP58159903 A JP 58159903A JP 15990383 A JP15990383 A JP 15990383A JP H0557616 B2 JPH0557616 B2 JP H0557616B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- associative
- associative key
- 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.)
- Expired - Lifetime
Links
- 238000006073 displacement reaction Methods 0.000 claims description 13
- 230000010365 information processing Effects 0.000 claims description 13
- 238000000034 method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
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
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、複数のターゲツト命令の1つに分岐
する場合でも、分岐先バツフア記憶装置から正し
くターゲツト命令列を出力できる情報処理装置に
関するものである。
する場合でも、分岐先バツフア記憶装置から正し
くターゲツト命令列を出力できる情報処理装置に
関するものである。
〔発明の背景〕
パイプライン計算機では、命令の処理を部分処
理に分解し、個々の部分処理を実行する専用の独
立なユニツトを用意し、連続した複数の命令を工
場の組立てラインのようにオーバーラツプして処
理することにより高速処理を行つている。しか
し、分岐命令が出現すると、パイプラインの流れ
に乱れが生じるため、処理性能が低下する。した
がつて、高速処理を行う計算機の処理性能の向上
のためには、分岐命令の高速処理が必要不可欠で
ある。
理に分解し、個々の部分処理を実行する専用の独
立なユニツトを用意し、連続した複数の命令を工
場の組立てラインのようにオーバーラツプして処
理することにより高速処理を行つている。しか
し、分岐命令が出現すると、パイプラインの流れ
に乱れが生じるため、処理性能が低下する。した
がつて、高速処理を行う計算機の処理性能の向上
のためには、分岐命令の高速処理が必要不可欠で
ある。
分岐命令の出現によつてパイプラインの流れが
乱れる原因は、分岐が立成した場合、ターゲツト
命令語(分岐先命令語)が得られるまでに時間が
かかり、これが得られるまではターゲツト命令語
のデコードを開始できないことである。したがつ
て、分岐命令を高速処理するためには、ターゲツ
ト・フエツチの高速化が必要である。
乱れる原因は、分岐が立成した場合、ターゲツト
命令語(分岐先命令語)が得られるまでに時間が
かかり、これが得られるまではターゲツト命令語
のデコードを開始できないことである。したがつ
て、分岐命令を高速処理するためには、ターゲツ
ト・フエツチの高速化が必要である。
従来、ターゲツト・フエツチの高速化を実現す
るものとして、ルート・メモリが提案されている
(特公昭54−9456号公報『情報処理装置』参照)。
第1図に示すように、ルート・メモリ1は、命令
デコード時に命令アドレス(IA)をキーとして、
次の2つを出力する連想記憶メモリである。
るものとして、ルート・メモリが提案されている
(特公昭54−9456号公報『情報処理装置』参照)。
第1図に示すように、ルート・メモリ1は、命令
デコード時に命令アドレス(IA)をキーとして、
次の2つを出力する連想記憶メモリである。
すなわち、(i)命令アドレスの指す命令が成立す
る分岐命令であるか否かの予測(BA?)、およ
び(ii)成立する分岐命令である場合には、そのター
ゲツト命令語(TI)である。しかし、上記ルー
ト・メモリ1には、次のような問題がある。
る分岐命令であるか否かの予測(BA?)、およ
び(ii)成立する分岐命令である場合には、そのター
ゲツト命令語(TI)である。しかし、上記ルー
ト・メモリ1には、次のような問題がある。
すなわち、命令アドレス(IA)のみをキーと
してルート・メモリ1を参照しているため、1つ
の分岐命令が複数のターゲツト命令のうち、どれ
か1つに分岐する場合を扱うことができないこと
である。つまり第2図に示すように、メイン・ル
ーチン3のA点からサブルーチン(SUBRT)の
先願アドレスに分岐し、これを終了してからター
ゲツト・アドレス4に戻り、その後B点で再び同
一サブルーチン(SUBRT)に分岐して、これを
終了してから戻る場合、ルート・メモリ1にはタ
ーゲツト・アドレス4の命令語が格納されている
ため、正しいターゲツト・アドレス5の命令語に
戻ることができない。
してルート・メモリ1を参照しているため、1つ
の分岐命令が複数のターゲツト命令のうち、どれ
か1つに分岐する場合を扱うことができないこと
である。つまり第2図に示すように、メイン・ル
ーチン3のA点からサブルーチン(SUBRT)の
先願アドレスに分岐し、これを終了してからター
ゲツト・アドレス4に戻り、その後B点で再び同
一サブルーチン(SUBRT)に分岐して、これを
終了してから戻る場合、ルート・メモリ1にはタ
ーゲツト・アドレス4の命令語が格納されている
ため、正しいターゲツト・アドレス5の命令語に
戻ることができない。
本発明の第1の目的は、同じ分岐命令が指定す
る分岐先命令のアドレスがその分岐命令の実行ご
とに変化し得る場合においても、分岐先命令を連
想記憶手段に登録可能にし、かつ再利用可能にし
た情報処理装置を提供することにある。
る分岐先命令のアドレスがその分岐命令の実行ご
とに変化し得る場合においても、分岐先命令を連
想記憶手段に登録可能にし、かつ再利用可能にし
た情報処理装置を提供することにある。
また、本発明の第2の目的は、分岐命令の分岐
先命令を連想記憶手段に登録した後、その分岐命
令の再実行時に、その分岐命令の分岐先命令を高
速に読み出すことが可能な情報処理装置を提供す
ることにある。
先命令を連想記憶手段に登録した後、その分岐命
令の再実行時に、その分岐命令の分岐先命令を高
速に読み出すことが可能な情報処理装置を提供す
ることにある。
本願第1の発明の特徴は、分岐命令のある実行
時に分岐が成功したとき(例えば、第2図のA点
での分岐、あるいはサブルーチンの終り(RTN)
での分岐)、分岐命令のアドレス情報(例えば、
第2図のA点アドレス、あるいはサブルーチンの
終り(RTN)のアドレス)からなる第1の連想
キーと、その分岐先命令のアドレス(例えば、第
2図のサブルーチンの先頭アドレス、あるいA点
のアドレス4ないしB点のアドレス5)を生成す
るための情報からなる第2の連想キーとの組を連
想キーとして、その分岐先命令とともに連想記憶
手段102に記憶させる手段(IC、IR等および
14)と、ある分岐先命令が実行さたときに、そ
の分岐命令のアドレス情報からなる第1の連想キ
ーとその命令が指定する分岐先命令のアドレスを
生成するための情報からなる第2の連想キーとの
組を連想キーとして上記連想記憶手段102に供
給する手段(IC、IR等および14)と、供給さ
れた連想キーと一致する連想キーを有する分岐先
命令が連想記憶手段102から読み出されたと
き、その分岐命令の分岐が成功と予測して、その
分岐命令を実行する手段22とを有することであ
る。
時に分岐が成功したとき(例えば、第2図のA点
での分岐、あるいはサブルーチンの終り(RTN)
での分岐)、分岐命令のアドレス情報(例えば、
第2図のA点アドレス、あるいはサブルーチンの
終り(RTN)のアドレス)からなる第1の連想
キーと、その分岐先命令のアドレス(例えば、第
2図のサブルーチンの先頭アドレス、あるいA点
のアドレス4ないしB点のアドレス5)を生成す
るための情報からなる第2の連想キーとの組を連
想キーとして、その分岐先命令とともに連想記憶
手段102に記憶させる手段(IC、IR等および
14)と、ある分岐先命令が実行さたときに、そ
の分岐命令のアドレス情報からなる第1の連想キ
ーとその命令が指定する分岐先命令のアドレスを
生成するための情報からなる第2の連想キーとの
組を連想キーとして上記連想記憶手段102に供
給する手段(IC、IR等および14)と、供給さ
れた連想キーと一致する連想キーを有する分岐先
命令が連想記憶手段102から読み出されたと
き、その分岐命令の分岐が成功と予測して、その
分岐命令を実行する手段22とを有することであ
る。
また、上記第1の発明のより望ましい実施態様
は、上記第1の連想キーを第1のタイミングで連
想記憶手段102に供給する手段(14、IC等)
と、第2の連想キーをその第1のタイミングより
後の第2のタイミングで連想記憶手段102に供
給する手段(GRB、GRX等)とを有し、上記連
想記憶手段102は、分岐命令のアドレス情報か
らなる第1の連想キーが供給されたときに、これ
に一致する第1の連想キーを有する分岐先命令を
検出する手段(第5図の248,250)と、読
み出すべき分岐命令のアドレスを生成するための
情報からなる第2の連想キーがその後に供給され
たときに、その検出された複数の分岐先命令のう
ち、この供給された第2の連想キー一致する第2
の連想キーを有する一つの分岐先命令を選択して
供給する手段(第4図の32,34)からなる。
は、上記第1の連想キーを第1のタイミングで連
想記憶手段102に供給する手段(14、IC等)
と、第2の連想キーをその第1のタイミングより
後の第2のタイミングで連想記憶手段102に供
給する手段(GRB、GRX等)とを有し、上記連
想記憶手段102は、分岐命令のアドレス情報か
らなる第1の連想キーが供給されたときに、これ
に一致する第1の連想キーを有する分岐先命令を
検出する手段(第5図の248,250)と、読
み出すべき分岐命令のアドレスを生成するための
情報からなる第2の連想キーがその後に供給され
たときに、その検出された複数の分岐先命令のう
ち、この供給された第2の連想キー一致する第2
の連想キーを有する一つの分岐先命令を選択して
供給する手段(第4図の32,34)からなる。
ここで、第1のタイミングは、例えば分岐命令
の実行開始前であり、第2のタイミングを、例え
ば分岐命令の実行開始後である。あるいは、第1
のタイミングは、分岐命令の解読前であり、第2
のタイミングは、分岐命令の解読後と言つてもよ
い。あるいは第1のタイミングは、遅くとも分岐
命令の読み出しのときであり、第2のタイミング
は、分岐命令の読み出し後と言つてもよい。
の実行開始前であり、第2のタイミングを、例え
ば分岐命令の実行開始後である。あるいは、第1
のタイミングは、分岐命令の解読前であり、第2
のタイミングは、分岐命令の解読後と言つてもよ
い。あるいは第1のタイミングは、遅くとも分岐
命令の読み出しのときであり、第2のタイミング
は、分岐命令の読み出し後と言つてもよい。
本願の第2の発明の特徴は、分岐先命令を記憶
する連想記憶手段102に対して、連想キーとし
て、分岐先命令のアドレスを算出するのに使用す
る、分岐先命令が指定するアドレス情報を使用
し、この分岐命令が再実行されたときには、分岐
先命令を連想記憶手段102から読み出すための
連想キーとして、分岐先命令のアドレスを算出す
るのに使用する、分岐命令が指定するアドレス情
報を使用することである。
する連想記憶手段102に対して、連想キーとし
て、分岐先命令のアドレスを算出するのに使用す
る、分岐先命令が指定するアドレス情報を使用
し、この分岐命令が再実行されたときには、分岐
先命令を連想記憶手段102から読み出すための
連想キーとして、分岐先命令のアドレスを算出す
るのに使用する、分岐命令が指定するアドレス情
報を使用することである。
なお、この第2の発明では、分岐命令のアドレ
ス情報を連想キーとして使用するか否かには言及
していない。その意味で、第1の発明とは独立し
た発明である。しかし、いずれの発明も、分岐先
命令のアドレスに関連する情報を連想キーとして
使用し、かつ分岐先命令が連想記憶手段102に
登録されているときには、分岐命令の分岐が成功
したものとして実行するところに共通の特徴があ
る。
ス情報を連想キーとして使用するか否かには言及
していない。その意味で、第1の発明とは独立し
た発明である。しかし、いずれの発明も、分岐先
命令のアドレスに関連する情報を連想キーとして
使用し、かつ分岐先命令が連想記憶手段102に
登録されているときには、分岐命令の分岐が成功
したものとして実行するところに共通の特徴があ
る。
第3図は、本発明による分岐先バツフア記憶装
置と命令処理装置とのインターフエースを示す図
である。
置と命令処理装置とのインターフエースを示す図
である。
命令処理装置100と分岐先バツフア記憶装置
102とは、IC信号線104、DISP信号線10
6、BRN信号線108、GRB信号線110、
GRX信号線112、TKNP信号線114、PTI
信号線118、TI信号線120、およびTKN信
号線122の合計9本の信号線で結合されてい
る。
102とは、IC信号線104、DISP信号線10
6、BRN信号線108、GRB信号線110、
GRX信号線112、TKNP信号線114、PTI
信号線118、TI信号線120、およびTKN信
号線122の合計9本の信号線で結合されてい
る。
本発明の分岐先バツフア記憶装置102は、分
岐命令の命令アドレス、変位情報、分岐命令語の
ターゲツト・アドレスを決定するパラメータ、す
なわち分岐命令中のレジスタ指定情報の指示する
レジスタ値を連想キー(例えば、第2図のサブル
ーチンの終りのアドレスRTNの情報を第1の連
想キー、A点のアドレス4を生成する情報または
B点のアドレス5を生成する情報を第2の連想キ
ーとする)として、その分岐命令のターゲツト命
令語を含む命令語を出力するものである。
岐命令の命令アドレス、変位情報、分岐命令語の
ターゲツト・アドレスを決定するパラメータ、す
なわち分岐命令中のレジスタ指定情報の指示する
レジスタ値を連想キー(例えば、第2図のサブル
ーチンの終りのアドレスRTNの情報を第1の連
想キー、A点のアドレス4を生成する情報または
B点のアドレス5を生成する情報を第2の連想キ
ーとする)として、その分岐命令のターゲツト命
令語を含む命令語を出力するものである。
なお、特定のコンピユータ(例えば、IBM
System/370)では、分岐命令の指示するベー
ス・レジスタ値とインデツクス・レジスタ値と変
位情報により、ターゲツト・アドレスが決定され
るが、本実施例ではこの場合に対応しており、上
記パラメータとしてベース・レジスタ値とインデ
ツクス・レジスタ値を用いている。
System/370)では、分岐命令の指示するベー
ス・レジスタ値とインデツクス・レジスタ値と変
位情報により、ターゲツト・アドレスが決定され
るが、本実施例ではこの場合に対応しており、上
記パラメータとしてベース・レジスタ値とインデ
ツクス・レジスタ値を用いている。
また、ベース・レジスタ値とインデツクス・レ
ジスタ値と分岐命令語中の変位情報との和ではな
く、分岐命令の指示する汎用レジスタの値をター
ゲツト命令のアドレスとする分岐命令に対して、
本実施例を適用する場合には、連想キー(第2の
連想キー)となるベース・レジスタまたはインデ
ツクス・レジスタの値の片方の値をゼロとし、他
方の値を汎用レジスタの値として分岐先バツフア
記憶装置102をアクセスする。
ジスタ値と分岐命令語中の変位情報との和ではな
く、分岐命令の指示する汎用レジスタの値をター
ゲツト命令のアドレスとする分岐命令に対して、
本実施例を適用する場合には、連想キー(第2の
連想キー)となるベース・レジスタまたはインデ
ツクス・レジスタの値の片方の値をゼロとし、他
方の値を汎用レジスタの値として分岐先バツフア
記憶装置102をアクセスする。
分岐先バツフア記憶装置102では、分岐命令
の指すベース・レジスタとインデツクス・レジス
タの値(汎用レジスタの値をターゲツト・アドレ
スとする分岐命令に対しては、汎用レジスタの
値)を連想キー(すなわち、第1の連想キー)と
して用いているので、サブルーチン・リターンの
ように、1つの分岐命令が複数のターゲツト命令
の中のいずれか1つに分岐する場合にも、上記連
想キーが異なるため、これを扱うことができる。
の指すベース・レジスタとインデツクス・レジス
タの値(汎用レジスタの値をターゲツト・アドレ
スとする分岐命令に対しては、汎用レジスタの
値)を連想キー(すなわち、第1の連想キー)と
して用いているので、サブルーチン・リターンの
ように、1つの分岐命令が複数のターゲツト命令
の中のいずれか1つに分岐する場合にも、上記連
想キーが異なるため、これを扱うことができる。
分岐先バツフア記憶装置102を用いると、タ
ーゲツト・フエツチの高速化が達成されるので、
分岐命令が高速に処理できる。そして、分岐命令
の分岐が成功したものとして、つまり分岐命令の
分岐判定の結果を待たないで、分岐先命令を実行
することができる。
ーゲツト・フエツチの高速化が達成されるので、
分岐命令が高速に処理できる。そして、分岐命令
の分岐が成功したものとして、つまり分岐命令の
分岐判定の結果を待たないで、分岐先命令を実行
することができる。
分岐先バツフア記録装置102には、ある分岐
命令の実行時に分岐が成功したときに記憶する。
例えば、第2図の場合には、RTNでA点の4、
またはB点の5へ分岐が成功したときに、分岐命
令アドレスであるサブルーチンSUBRTの終りの
アドレス(RTN)の情報からなる第1の連想キ
ーを記憶し、次に分岐先命令のアドレス4を生成
するための情報からなる第2の連想キー、あるい
は分岐先命令のアドレス5を生成するための情報
からなる第2の連想キーを記憶することになる。
命令の実行時に分岐が成功したときに記憶する。
例えば、第2図の場合には、RTNでA点の4、
またはB点の5へ分岐が成功したときに、分岐命
令アドレスであるサブルーチンSUBRTの終りの
アドレス(RTN)の情報からなる第1の連想キ
ーを記憶し、次に分岐先命令のアドレス4を生成
するための情報からなる第2の連想キー、あるい
は分岐先命令のアドレス5を生成するための情報
からなる第2の連想キーを記憶することになる。
そして、その分岐命令が再度実行されたとき
に、その第1の連想キーと第2の連想キーの組を
連想キーとして分岐先バツフア記憶装置102に
供給し、供給した連想キーと一致する連想キーを
有する分岐先命令が読み出されたとき、その分岐
命令は成功と予測し、読み出した分岐命令を実行
する。第4図は、第3図における命令処理装置の
詳細ブロツク図である。
に、その第1の連想キーと第2の連想キーの組を
連想キーとして分岐先バツフア記憶装置102に
供給し、供給した連想キーと一致する連想キーを
有する分岐先命令が読み出されたとき、その分岐
命令は成功と予測し、読み出した分岐命令を実行
する。第4図は、第3図における命令処理装置の
詳細ブロツク図である。
第4図には、分岐先バツフア102を含む命令
処理装置が記載されている。命令処理装置は、分
岐先バツフア記憶装置102、命令プリフエツチ
回路10、メモリ12、プリフエツチした命令群
をバツフアリングする命令バツフア14、命令レ
ジスタ15、セレクタ11,13、命令レジスタ
15中の命令が分岐命令であるか否かを調べる分
岐命令検出回路30、セレクタ切換回路32、デ
コード切換回路34、汎用レジスタ17、セレク
タ18,19、アドレス加算器20、メモリ2
1、実行ユニツト(演算器)22等から構成され
る。
処理装置が記載されている。命令処理装置は、分
岐先バツフア記憶装置102、命令プリフエツチ
回路10、メモリ12、プリフエツチした命令群
をバツフアリングする命令バツフア14、命令レ
ジスタ15、セレクタ11,13、命令レジスタ
15中の命令が分岐命令であるか否かを調べる分
岐命令検出回路30、セレクタ切換回路32、デ
コード切換回路34、汎用レジスタ17、セレク
タ18,19、アドレス加算器20、メモリ2
1、実行ユニツト(演算器)22等から構成され
る。
次に、全体の動作を説明する。
命令群を読み出す際の命令プリフエツチ・アド
レスを、あらかじめ命令フエツチ・アドレス・ユ
ニツト10に格納しておき、セレクタ11でアド
レス加算器20の出力または命令フエツチ・アド
レス・ユニツト10の上記命令でプリフエツチ・
アドレス出力の一方を選択してメモリ12にアク
セスし、1命令群を命令バツフア14に読み出し
て格納する。命令バツフア14から1命令ずつ命
令レジスタ15に読み出し、命令内の変位情報を
アドレス加算器20の一方の入力として用いるた
め転送する。命令バツフア14から命令レジスタ
15に読み出された命令のアドレスは、IC信号
線104を介して分岐先バツフア記憶装置102
に送出される。同時に、分岐命令語中の変位情報
をDISP信号線106を介して分岐先バツフア記
憶装置102に送出する。なお、TI、IR、
BRN、GRN、GRX、GRB、TKNは、第3図に
示すように、命令処理装置から分岐先バツフア記
憶装置102に情報を転送する回路である。分岐
命令検出回路30は、命令をデコードし、分岐命
令のときにはBRN信号線108に、‘1'を出力
して分岐先バツフア記憶装置102を起動する。
また、汎用レジスタ17のベース・レジスタとイ
ンデツクス・レジスタの各値が、命令レジスタ1
5の中のベース・フイールドとインデツクス・フ
イールドによりセレクタ18,19で選択され、
さらにアドレス加算器20で上記変位情報ととも
に加算されて、その結果が命令フエツチ・アドレ
ス・ユニツト10およびセレクタ11に転送さ
れ、次のターゲツト命令のアドレスとなる。セレ
クタ11に転送されたこのターゲツト命令のアド
レスは、ターゲツト命令語を含む命令群をフエツ
チするために、命令ストレージ・ユニツト12に
入力される。
レスを、あらかじめ命令フエツチ・アドレス・ユ
ニツト10に格納しておき、セレクタ11でアド
レス加算器20の出力または命令フエツチ・アド
レス・ユニツト10の上記命令でプリフエツチ・
アドレス出力の一方を選択してメモリ12にアク
セスし、1命令群を命令バツフア14に読み出し
て格納する。命令バツフア14から1命令ずつ命
令レジスタ15に読み出し、命令内の変位情報を
アドレス加算器20の一方の入力として用いるた
め転送する。命令バツフア14から命令レジスタ
15に読み出された命令のアドレスは、IC信号
線104を介して分岐先バツフア記憶装置102
に送出される。同時に、分岐命令語中の変位情報
をDISP信号線106を介して分岐先バツフア記
憶装置102に送出する。なお、TI、IR、
BRN、GRN、GRX、GRB、TKNは、第3図に
示すように、命令処理装置から分岐先バツフア記
憶装置102に情報を転送する回路である。分岐
命令検出回路30は、命令をデコードし、分岐命
令のときにはBRN信号線108に、‘1'を出力
して分岐先バツフア記憶装置102を起動する。
また、汎用レジスタ17のベース・レジスタとイ
ンデツクス・レジスタの各値が、命令レジスタ1
5の中のベース・フイールドとインデツクス・フ
イールドによりセレクタ18,19で選択され、
さらにアドレス加算器20で上記変位情報ととも
に加算されて、その結果が命令フエツチ・アドレ
ス・ユニツト10およびセレクタ11に転送さ
れ、次のターゲツト命令のアドレスとなる。セレ
クタ11に転送されたこのターゲツト命令のアド
レスは、ターゲツト命令語を含む命令群をフエツ
チするために、命令ストレージ・ユニツト12に
入力される。
ベース・レジスタとインデツクス・レジスタの
値は、GRB信号線110とGRX信号線112に
それぞれ出力され、分岐先バツフア記憶装置10
2に送出される。分岐でない普通の命令のときに
は、アドレス加算器20の出力でオペランド・ス
トレージ21をアクセスし、オペランドを読み出
して実行ユニツト22にこれを与えることにより
実行させる。
値は、GRB信号線110とGRX信号線112に
それぞれ出力され、分岐先バツフア記憶装置10
2に送出される。分岐でない普通の命令のときに
は、アドレス加算器20の出力でオペランド・ス
トレージ21をアクセスし、オペランドを読み出
して実行ユニツト22にこれを与えることにより
実行させる。
分岐先バツフア記憶装置102は、信号線10
4,106,110,112を介して転送された
データを連想キーとして、対応するターゲツト命
令語を含む命令群が分岐先バツフア記憶装置10
2内に登録されているか否かを調べる。登録され
ているときには、分岐先バツフア記憶装置102
はTKNP信号線114に‘1'を出力し、さらに
ターゲツト命令語を含む命令群をRTI信号線11
8に出力する。セレクタ切換回路32は、信号線
114から‘1'を受け取つたとき、点線で示す制
御線を介してセレクタ13に右側入力を選択さ
せ、命令バツフア14にターゲツト命令語を含む
命令群を格納する。
4,106,110,112を介して転送された
データを連想キーとして、対応するターゲツト命
令語を含む命令群が分岐先バツフア記憶装置10
2内に登録されているか否かを調べる。登録され
ているときには、分岐先バツフア記憶装置102
はTKNP信号線114に‘1'を出力し、さらに
ターゲツト命令語を含む命令群をRTI信号線11
8に出力する。セレクタ切換回路32は、信号線
114から‘1'を受け取つたとき、点線で示す制
御線を介してセレクタ13に右側入力を選択さ
せ、命令バツフア14にターゲツト命令語を含む
命令群を格納する。
なお、分岐先バツフア記憶装置102にターゲ
ツト命令語を含む命令群が登録されていないとき
には、分岐先バツフア記憶装置102は、
TKNPS信号線114に‘0'を出力する。
ツト命令語を含む命令群が登録されていないとき
には、分岐先バツフア記憶装置102は、
TKNPS信号線114に‘0'を出力する。
デコード切換回路34は、信号線114を介し
て‘0'が転送されてきたときには、分岐命令が分
岐不成立と予測して信号線40を‘0'にして、命
令バツフア14内の分岐命令の次の命令を命令レ
ジスタ15に切り出し、そのデコードを開始す
る。
て‘0'が転送されてきたときには、分岐命令が分
岐不成立と予測して信号線40を‘0'にして、命
令バツフア14内の分岐命令の次の命令を命令レ
ジスタ15に切り出し、そのデコードを開始す
る。
これに対して、信号線114を介して‘1'が転
送されてきたときには、信号線40を‘1'にして
分岐命令が分岐成立と予測し、信号線118を介
して命令バツフア14に格納されたターゲツト命
令を含む命令群の中のターゲツト命令語を命令レ
ジスタ15に切り出し、そのデコードを開始す
る。
送されてきたときには、信号線40を‘1'にして
分岐命令が分岐成立と予測し、信号線118を介
して命令バツフア14に格納されたターゲツト命
令を含む命令群の中のターゲツト命令語を命令レ
ジスタ15に切り出し、そのデコードを開始す
る。
実行ユニツト22は、上記デコードと並行して
分岐命令を実行する。分岐命令のデコード開始か
ら一定時間後に分岐命令の実行が完了し、分岐命
令の判定結果が得られる。また、それと同時に、
アドレス加算器20からセレクタ11を介して命
令ストレージ・ユニツト12に入力されたターゲ
ツト・アドレスに基づいて、ターゲツト命令語を
含む命令群のフエツチを行う。
分岐命令を実行する。分岐命令のデコード開始か
ら一定時間後に分岐命令の実行が完了し、分岐命
令の判定結果が得られる。また、それと同時に、
アドレス加算器20からセレクタ11を介して命
令ストレージ・ユニツト12に入力されたターゲ
ツト・アドレスに基づいて、ターゲツト命令語を
含む命令群のフエツチを行う。
実行ユニツト22は、分岐不成立のときには
TKN信号線122に‘0'を出力する。また、分
岐成立のときには、TKN信号線122に‘1'を
出力して、分岐先バツフア記憶装置102に転送
する。
TKN信号線122に‘0'を出力する。また、分
岐成立のときには、TKN信号線122に‘1'を
出力して、分岐先バツフア記憶装置102に転送
する。
そして、命令ストレージ・ユニツト12から読
み出されたターゲツト命令語を含む命令群を信号
線120を介して分岐先バツフア記憶装置102
に送出する。
み出されたターゲツト命令語を含む命令群を信号
線120を介して分岐先バツフア記憶装置102
に送出する。
分岐先バツフア記憶装置102は、信号線12
0,122を介して転送されたデータに基づい
て、書き込みサイクル動作を行う。
0,122を介して転送されたデータに基づい
て、書き込みサイクル動作を行う。
本発明における第1番目の重要な機能は、同じ
分岐命令の分岐先命令のアドレスが、その分岐命
令の実行毎に変化する場合でも、分岐先命令を連
想記憶手段に登録可能にしたことである。そし
て、これを再利用可能にすることである。すなわ
ち、分岐先命令のアドレスを生成するための情報
からなる第2の連想キーを連想キーの一部に使用
して、分岐先命令を連想記憶手段に登録すること
により、同じ分岐命令の分岐先命令が複数あり得
る場合でも、現在必要な分岐先命令を正しく連想
記憶装置から読み出せるようにしている。さら
に、分岐命令の分岐が成功した場合に、その分岐
先命令を登録し、分岐命令の再度の実行時に、連
想記憶手段に分岐先命令が登録されている場合
に、その分岐命令の分岐が今回も成功と予測し
て、つまりこの分岐命令の実行により、分岐が成
功したか否かの判定結果が出るのを待たないで、
分岐先命令の実行開始を行う。これにより、分岐
先命令の実行を高速に開始することができる。こ
のように、分岐が成功と予測して分岐先命令を実
行するからには、分岐先命令がいずれの分岐命令
の分岐が成功したものであるかを区別する必要が
ある。このために、実行例では、連想記憶手段に
分岐命令のアドレス情報からなる第1の連想キー
をも登録するようにしている。単に、分岐命令の
アドレスを生成するための情報からなる第2の連
想キーを使用しただけでは、どの分岐命令が成功
したときに実行すべき分岐先命令であるかが判断
できない。
分岐命令の分岐先命令のアドレスが、その分岐命
令の実行毎に変化する場合でも、分岐先命令を連
想記憶手段に登録可能にしたことである。そし
て、これを再利用可能にすることである。すなわ
ち、分岐先命令のアドレスを生成するための情報
からなる第2の連想キーを連想キーの一部に使用
して、分岐先命令を連想記憶手段に登録すること
により、同じ分岐命令の分岐先命令が複数あり得
る場合でも、現在必要な分岐先命令を正しく連想
記憶装置から読み出せるようにしている。さら
に、分岐命令の分岐が成功した場合に、その分岐
先命令を登録し、分岐命令の再度の実行時に、連
想記憶手段に分岐先命令が登録されている場合
に、その分岐命令の分岐が今回も成功と予測し
て、つまりこの分岐命令の実行により、分岐が成
功したか否かの判定結果が出るのを待たないで、
分岐先命令の実行開始を行う。これにより、分岐
先命令の実行を高速に開始することができる。こ
のように、分岐が成功と予測して分岐先命令を実
行するからには、分岐先命令がいずれの分岐命令
の分岐が成功したものであるかを区別する必要が
ある。このために、実行例では、連想記憶手段に
分岐命令のアドレス情報からなる第1の連想キー
をも登録するようにしている。単に、分岐命令の
アドレスを生成するための情報からなる第2の連
想キーを使用しただけでは、どの分岐命令が成功
したときに実行すべき分岐先命令であるかが判断
できない。
本発明では、このように2つの連想キーを使用
して、以上の問題がないようにしている。
して、以上の問題がないようにしている。
さらに、本実施例では、第1のタイミングで予
め複数の分岐先命令を読み出すことができるの
で、それだけ連想記憶手段を早くアクセスするこ
とができ、その結果、最終的に分岐先命令を読み
出すタイミングが早くなり、分岐先命令の実行開
始を早めることが可能である。
め複数の分岐先命令を読み出すことができるの
で、それだけ連想記憶手段を早くアクセスするこ
とができ、その結果、最終的に分岐先命令を読み
出すタイミングが早くなり、分岐先命令の実行開
始を早めることが可能である。
次に、本発明における第2番目に重要な機能を
説明する。
説明する。
ある分岐命令の分岐先命令を連想記憶手段に登
録する場合に、分岐先命令のアドレスを連想キー
として登録すると、その分岐命令が再実行された
ときには、その分岐命令が指定する情報に基づい
て、分岐先命令を算出した後で、算出後の分岐命
令アドレスを連想キーとして連想記憶手段に供給
する必要がある。
録する場合に、分岐先命令のアドレスを連想キー
として登録すると、その分岐命令が再実行された
ときには、その分岐命令が指定する情報に基づい
て、分岐先命令を算出した後で、算出後の分岐命
令アドレスを連想キーとして連想記憶手段に供給
する必要がある。
本発明の場合には、アドレス算出の基となる情
報を連想キーとして供給すればよいため、それだ
け早く連想記憶手段をアクセスすることができ
る。
報を連想キーとして供給すればよいため、それだ
け早く連想記憶手段をアクセスすることができ
る。
さらに、本発明では、連想記憶手段に再実行さ
れた分岐命令の分岐先命令が登録されているとき
には、その分岐命令の分岐が成功と予測して分岐
先命令を実行するので、分岐先命令が早く読み出
された分だけ、より早期にその分岐先命令を実行
することができる。
れた分岐命令の分岐先命令が登録されているとき
には、その分岐命令の分岐が成功と予測して分岐
先命令を実行するので、分岐先命令が早く読み出
された分だけ、より早期にその分岐先命令を実行
することができる。
第5図は、本発明の実施例を示す分岐先バツフ
ア記憶装置の構成図である。
ア記憶装置の構成図である。
分岐先バツフア記憶装置102は、過去に分岐
成立となつた分岐先命令の命令語群を、連想キー
である分岐命令語のアドレス、分岐命令語中の変
位情報、ベース・レジスタとインデツクス・レジ
スタの値とともに記憶している。分岐先バツフア
記憶装置102では、各分岐命令は、その分岐命
令が前回実行されたときと同じ成立/不成立判定
をすると予測し、かつ前回の実行が成立判定のと
きには、そのときのターゲツト命令語と同じもの
が実行されると予測する。従つて、ある分岐命令
の連想キーに対応するターゲツト命令語を含む命
令群が分岐先バツフア記憶装置に記憶されている
ときには、その連想キーの基になつた分岐命令は
成立すると予測され、そうでないときには不成立
と予測される。
成立となつた分岐先命令の命令語群を、連想キー
である分岐命令語のアドレス、分岐命令語中の変
位情報、ベース・レジスタとインデツクス・レジ
スタの値とともに記憶している。分岐先バツフア
記憶装置102では、各分岐命令は、その分岐命
令が前回実行されたときと同じ成立/不成立判定
をすると予測し、かつ前回の実行が成立判定のと
きには、そのときのターゲツト命令語と同じもの
が実行されると予測する。従つて、ある分岐命令
の連想キーに対応するターゲツト命令語を含む命
令群が分岐先バツフア記憶装置に記憶されている
ときには、その連想キーの基になつた分岐命令は
成立すると予測され、そうでないときには不成立
と予測される。
ある分岐命令に対し、分岐先バツフア記憶装置
が不成立と予測して、実際にその分岐命令が分岐
不成立となつた場合には、分岐先バツフア記憶装
置の内容は変化しない。また、あるい分岐命令に
対し、分岐先バツフア記憶装置が不成立と予測し
たにもかかわらず、実際にはその分岐命令が分岐
成立となつた場合には、その分岐命令のターゲツ
ト命令語を含む命令群と連想キーは、対応した分
岐先バツフア記憶装置に新しく記憶される。ある
分岐命令に対し、分岐先バツフア記憶装置が成立
と予測したにもかかわらず、実際にはその分岐命
令が分岐不成立となつた場合には、その分岐命令
のターゲツト命令語を含む命令群および対応する
連想キーは、分岐先バツフア記憶装置から削除さ
れる。さらに、ある分岐命令に対し、分岐先バツ
フア記憶装置が成立と予測して、実際にその分岐
命令が分岐成立となつた場合には、その分岐命令
のターゲツト命令語を含む命令群は、予測時に用
いたターゲツト命令語を含む命令群の上に重ね書
きされる。
が不成立と予測して、実際にその分岐命令が分岐
不成立となつた場合には、分岐先バツフア記憶装
置の内容は変化しない。また、あるい分岐命令に
対し、分岐先バツフア記憶装置が不成立と予測し
たにもかかわらず、実際にはその分岐命令が分岐
成立となつた場合には、その分岐命令のターゲツ
ト命令語を含む命令群と連想キーは、対応した分
岐先バツフア記憶装置に新しく記憶される。ある
分岐命令に対し、分岐先バツフア記憶装置が成立
と予測したにもかかわらず、実際にはその分岐命
令が分岐不成立となつた場合には、その分岐命令
のターゲツト命令語を含む命令群および対応する
連想キーは、分岐先バツフア記憶装置から削除さ
れる。さらに、ある分岐命令に対し、分岐先バツ
フア記憶装置が成立と予測して、実際にその分岐
命令が分岐成立となつた場合には、その分岐命令
のターゲツト命令語を含む命令群は、予測時に用
いたターゲツト命令語を含む命令群の上に重ね書
きされる。
第5図に示すように、分岐先バツフア記憶装置
は、RAM412,236、セレクタ208,2
54,400,442,438、レジスタ20
2,216,218,220,222,238,
262,264、制御回路414およびその他の
組合わせ論理回路から構成される。
は、RAM412,236、セレクタ208,2
54,400,442,438、レジスタ20
2,216,218,220,222,238,
262,264、制御回路414およびその他の
組合わせ論理回路から構成される。
RAM412には、過去に分岐成立となつた分
岐命令の命令アドレスの上位16ビツト、分岐命令
語の変位情報、ベース・レジスタとインデツク
ス・レジスタの値、およびターゲツト命令語を含
む命令群が記憶されている。RAM412は、TI
フイールド、GRBフイールド、GRXフイール
ド、IRフイールド、ICUフイールド、Validフイ
ールドから構成されている。TIフイールドには
上記ターゲツト命令語を含む命令群が、GRBフ
イールドには上記ベース・レジスタの値が、
GRXフイールドには上記インデツクス・レジス
タの値が、IRフイールドには上記分岐命令語中
の変位情報が、ICUフイールドには上記命令アド
レスの上位16ビツトが、それぞれ記憶されてい
る。
岐命令の命令アドレスの上位16ビツト、分岐命令
語の変位情報、ベース・レジスタとインデツク
ス・レジスタの値、およびターゲツト命令語を含
む命令群が記憶されている。RAM412は、TI
フイールド、GRBフイールド、GRXフイール
ド、IRフイールド、ICUフイールド、Validフイ
ールドから構成されている。TIフイールドには
上記ターゲツト命令語を含む命令群が、GRBフ
イールドには上記ベース・レジスタの値が、
GRXフイールドには上記インデツクス・レジス
タの値が、IRフイールドには上記分岐命令語中
の変位情報が、ICUフイールドには上記命令アド
レスの上位16ビツトが、それぞれ記憶されてい
る。
RAM412の各フイールドは、2ロー・
65536(2の16乗)カラム構成となつている。
65536(2の16乗)カラム構成となつている。
RAM412は、読み出し時には、信号線21
0で指定されたカラム全ローが同時に読み出さ
れ、書き込み起動時には、信号線210で指定さ
れたカラムの中で、信号線212で指定されたロ
ーに対して書き込みが行われる。
0で指定されたカラム全ローが同時に読み出さ
れ、書き込み起動時には、信号線210で指定さ
れたカラムの中で、信号線212で指定されたロ
ーに対して書き込みが行われる。
なお、本実施例では、2ロー、65536カラム構
成であるが、任意のロー数、任意のカラム数で構
成できることは勿論である。また、本実施例で
は、分岐命令アドレスの下位16ビツトをカラム・
アドレの決定に用いているが、分岐命令アドレ
ス、分岐命令語中の変位情報、ベース・レジスタ
の値の中のビツトの任意のビツトの組合わせを、
カラム・アドレスの決定に使用することができる
のは明らかである。
成であるが、任意のロー数、任意のカラム数で構
成できることは勿論である。また、本実施例で
は、分岐命令アドレスの下位16ビツトをカラム・
アドレの決定に用いているが、分岐命令アドレ
ス、分岐命令語中の変位情報、ベース・レジスタ
の値の中のビツトの任意のビツトの組合わせを、
カラム・アドレスの決定に使用することができる
のは明らかである。
次に、分岐先バツフア記憶装置の動作の詳細を
説明する。
説明する。
分岐先バツフア記憶装置の動作は、読み出しサ
イクルと書き込みサイクルからなる。
イクルと書き込みサイクルからなる。
(a) 読み出しサイクル
分岐先バツフア記憶装置の読み出しサイクル
の動作は、BRN信号線108を介して‘1'が
制御回路414に転送された時点から開始され
る。制御回路414は、RAM412,236
の読み出しを起動し、セレクタ208に左選択
信号を出す。また、レジスタ202,216,
218,220,222の書き込みを起動す
る。
の動作は、BRN信号線108を介して‘1'が
制御回路414に転送された時点から開始され
る。制御回路414は、RAM412,236
の読み出しを起動し、セレクタ208に左選択
信号を出す。また、レジスタ202,216,
218,220,222の書き込みを起動す
る。
書き込みが起動されたICLIレジスタ202
には、信号線200を介してIC信号線104
の下位16ビツトが書き込まれ、ICUIレジスタ
222には、IC信号線104上の分岐命令ア
ドレスの上位16ビツトが書き込まれる。また、
レジスタ216、レジスタ218、レジスタ2
20には、それぞれGRB信号線110上のベ
ース・レジスタの値、GRX信号線112の上
のインデツクス・レジスタの値、IR信号線1
06上の命令語が書き込まれる。
には、信号線200を介してIC信号線104
の下位16ビツトが書き込まれ、ICUIレジスタ
222には、IC信号線104上の分岐命令ア
ドレスの上位16ビツトが書き込まれる。また、
レジスタ216、レジスタ218、レジスタ2
20には、それぞれGRB信号線110上のベ
ース・レジスタの値、GRX信号線112の上
のインデツクス・レジスタの値、IR信号線1
06上の命令語が書き込まれる。
また、RAM412から信号線204、セレ
クタ208、信号線210を介して伝達された
IC信号線104上の命令アドレスの下位16ビ
ツトで指定されたカラムのデータを、信号線2
40,268,270,272,274,27
6,278,280,282,284,28
6,292,294に出力する。
クタ208、信号線210を介して伝達された
IC信号線104上の命令アドレスの下位16ビ
ツトで指定されたカラムのデータを、信号線2
40,268,270,272,274,27
6,278,280,282,284,28
6,292,294に出力する。
比較器248,250の左側には、信号線1
10,112,106,426,434のデー
タガ入力される。また、比較器248を右側に
は、信号線284,280,276,272,
268のデータが入力される。比較器520右
側には、信号線286,282,278,27
4,270のデータが入力される。比較器24
8,250は、右側入力データと左側データと
が等しいときにロー0一致信号線306、ロー
1一致信号308にそれぞれ‘1'を出力し、等
しくないときには‘0'を出力する。すなわち、
解読された分岐命令アドレスの上位16ビツトベ
ース・レジスタとインデツクス・レジスタの
値、および分岐命令語と、ロー0/ロー1から
読み出したICUフイールド、GRBフイールド、
GRXフイールド、IRフイールドのデータがそ
れぞれが等しく、かつValidフイールドの値が
‘1'に等しければ、比較器248/250は‘
1'を出力し、それ以外では‘0'を出力する。
10,112,106,426,434のデー
タガ入力される。また、比較器248を右側に
は、信号線284,280,276,272,
268のデータが入力される。比較器520右
側には、信号線286,282,278,27
4,270のデータが入力される。比較器24
8,250は、右側入力データと左側データと
が等しいときにロー0一致信号線306、ロー
1一致信号308にそれぞれ‘1'を出力し、等
しくないときには‘0'を出力する。すなわち、
解読された分岐命令アドレスの上位16ビツトベ
ース・レジスタとインデツクス・レジスタの
値、および分岐命令語と、ロー0/ロー1から
読み出したICUフイールド、GRBフイールド、
GRXフイールド、IRフイールドのデータがそ
れぞれが等しく、かつValidフイールドの値が
‘1'に等しければ、比較器248/250は‘
1'を出力し、それ以外では‘0'を出力する。
ロー0かロー1のいずれかのデータが上記の
ように等しい場合、つまり分岐先バツフア記憶
装置に連想キーに対応するターゲツト命令語を
含む命令群が登録されている場合には、ロー0
一致信号線306またはロー1一致信号線30
8が‘1'になり、OR回路256はTKNP信号
線114に‘1'を出力し、汎用コピユータ10
0に転送する。
ように等しい場合、つまり分岐先バツフア記憶
装置に連想キーに対応するターゲツト命令語を
含む命令群が登録されている場合には、ロー0
一致信号線306またはロー1一致信号線30
8が‘1'になり、OR回路256はTKNP信号
線114に‘1'を出力し、汎用コピユータ10
0に転送する。
また、エンコーダ258は、連想キーに対応
するターゲツト命令語を含む命令群が登録され
ているロー番号の2進数をロー番号信号線35
8に出力する。例えば、ロー1に連想キーに対
応するターゲツト命令語が登録されているなら
ば、比較器248,250によりロー1一致信
号308にだけ‘1'が出力され、エンコーダ2
58はロー番号信号線358に‘1'を出力す
る。ロー番号信号線のデータはセレクタ254
に入力され、信号線292,294の中で、登
録されていたローから出ている信号線のデータ
を、PTI信号線118に出力する。例えば、信
号線358に‘1'が出力されているならば、信
号線294のデータがRTI信号線118に出力
される。
するターゲツト命令語を含む命令群が登録され
ているロー番号の2進数をロー番号信号線35
8に出力する。例えば、ロー1に連想キーに対
応するターゲツト命令語が登録されているなら
ば、比較器248,250によりロー1一致信
号308にだけ‘1'が出力され、エンコーダ2
58はロー番号信号線358に‘1'を出力す
る。ロー番号信号線のデータはセレクタ254
に入力され、信号線292,294の中で、登
録されていたローから出ている信号線のデータ
を、PTI信号線118に出力する。例えば、信
号線358に‘1'が出力されているならば、信
号線294のデータがRTI信号線118に出力
される。
ロー0およびロー1のいずれにも、連想キー
に対応するターゲツト命令語を含む命令群が登
録されていない場合には、信号線306,30
8は両方とも‘0'となり、OR回路256は‘
0'をTKNP信号線114に出力し、汎用コン
ピユータ100に転送する。
に対応するターゲツト命令語を含む命令群が登
録されていない場合には、信号線306,30
8は両方とも‘0'となり、OR回路256は‘
0'をTKNP信号線114に出力し、汎用コン
ピユータ100に転送する。
BRN信号線108を介して‘1'が制御回路
414に入力してから、このようにして読み出
しサイクルの動作が行われ、信号線240,4
22,424,114、ロー番号信号線358
にデータが出力される時刻に、制御回路414
はRPLOレジスタ262、ROW#SVレジスタ
264の書き込みを起動する。書き込み起動さ
れたRPLOレジスタ238、レジスタ418,
420、HITSVレジスタ262、ROW#SV
レジスタ264には、信号線114、およびロ
ー0番号信号線358上のデータがそれぞれ書
き込まれる。上記各レジスタに書き込まれたデ
ータは、次に説明する書き込みサイクルで使用
される。
414に入力してから、このようにして読み出
しサイクルの動作が行われ、信号線240,4
22,424,114、ロー番号信号線358
にデータが出力される時刻に、制御回路414
はRPLOレジスタ262、ROW#SVレジスタ
264の書き込みを起動する。書き込み起動さ
れたRPLOレジスタ238、レジスタ418,
420、HITSVレジスタ262、ROW#SV
レジスタ264には、信号線114、およびロ
ー0番号信号線358上のデータがそれぞれ書
き込まれる。上記各レジスタに書き込まれたデ
ータは、次に説明する書き込みサイクルで使用
される。
(b) 書き込みサイクル
RPLOレジスタ238に記憶された再配置制
御データは、信号線242を介して書き込みロ
ー選択回路224に入力される。書み込みロー
選択回路224は、FIFO方式、LRU方式等の
周知の再配置方式を用いて構成されるものであ
り、書き込まれるローを選択し、そのロー番号
を信号線402を介してセレクタ400に入力
する。
御データは、信号線242を介して書き込みロ
ー選択回路224に入力される。書み込みロー
選択回路224は、FIFO方式、LRU方式等の
周知の再配置方式を用いて構成されるものであ
り、書き込まれるローを選択し、そのロー番号
を信号線402を介してセレクタ400に入力
する。
レジスタ418に記憶されていたデータは、
信号線408を介してセレクタ400に入力さ
れる。
信号線408を介してセレクタ400に入力さ
れる。
レジスタ420のデータは、信号線410を
介してセレクタ400に入力される。信号線4
10を介して‘1'が入力されるときには、セレ
クタ400は信号線402のデータを信号線4
36に出力する。信号線410を介して‘0'が
入力されるときには、セレクタ400は信号線
408のデータを信号線436に出力する。
介してセレクタ400に入力される。信号線4
10を介して‘1'が入力されるときには、セレ
クタ400は信号線402のデータを信号線4
36に出力する。信号線410を介して‘0'が
入力されるときには、セレクタ400は信号線
408のデータを信号線436に出力する。
信号線436のデータは、分岐先バツフア記
憶装置にターゲツト命令語を含む命令群と連想
キー(第1の連想キーおよび第2の連想キー)
を新しく記憶するローの番号であり、セレクタ
438に入力される。
憶装置にターゲツト命令語を含む命令群と連想
キー(第1の連想キーおよび第2の連想キー)
を新しく記憶するローの番号であり、セレクタ
438に入力される。
ROW#SVレジスタ264のデータは、信号
線356を介してセレクタ438に入力され
る。
線356を介してセレクタ438に入力され
る。
HITSVレジスタ262のデータは、信号線
354を介してセレクタ348に入力される。
354を介してセレクタ348に入力される。
信号線354を介して‘1'が入力されるとき
には、セレクタ438は信号線356のデータ
を信号線212に出力する。信号線354を介
して‘0'が入力されるときには、セレクタ43
8は、信号線436のデータを信号線212に
出力する。信号線212のデータは、再配置制
御データ更新論理回路246とRAM412に
入力される。信号線212のデータは、書き込
みのサイクルでRAM412に書き込まれるロ
ーの番号である。再配置制御データ更新論理回
路246には、さらにRPLOレジスタ238の
データが信号線242を介して入力される。再
配置制御データ更新論理回路246は、FIFO
方式、LRU方式等の周知の再配置方式を用い
て構成されるものであり、信号線212上の書
き込みロー番号に基づいて信号線242上の再
配置制御データを更新する。更新された再配置
制御データは、信号線234を介してRAM2
36に入力される。
には、セレクタ438は信号線356のデータ
を信号線212に出力する。信号線354を介
して‘0'が入力されるときには、セレクタ43
8は、信号線436のデータを信号線212に
出力する。信号線212のデータは、再配置制
御データ更新論理回路246とRAM412に
入力される。信号線212のデータは、書き込
みのサイクルでRAM412に書き込まれるロ
ーの番号である。再配置制御データ更新論理回
路246には、さらにRPLOレジスタ238の
データが信号線242を介して入力される。再
配置制御データ更新論理回路246は、FIFO
方式、LRU方式等の周知の再配置方式を用い
て構成されるものであり、信号線212上の書
き込みロー番号に基づいて信号線242上の再
配置制御データを更新する。更新された再配置
制御データは、信号線234を介してRAM2
36に入力される。
さらにGRBI信号線224上のベース・レジ
スタの値、GRXI信号線226上のインデツク
ス・レジスタの値、IRI信号線228上の命令
語、ICUI信号線230上の分岐命令アドレス
の上位16ビツトは、それぞれRAM412の
GRBフイールド、GRXフイールド、IRIフイ
ールド、ICUIフイールドに入力される。
スタの値、GRXI信号線226上のインデツク
ス・レジスタの値、IRI信号線228上の命令
語、ICUI信号線230上の分岐命令アドレス
の上位16ビツトは、それぞれRAM412の
GRBフイールド、GRXフイールド、IRIフイ
ールド、ICUIフイールドに入力される。
演算器22では、最終サイクルで分岐命令の
判定を行い、TKN信号線122を介して判定
結果が分岐先バツフア記憶装置に転送され、分
岐成立のときにはさらにTI信号線120を介
してターゲツト命令語が転送される。
判定を行い、TKN信号線122を介して判定
結果が分岐先バツフア記憶装置に転送され、分
岐成立のときにはさらにTI信号線120を介
してターゲツト命令語が転送される。
上記事象に同期して、HITSVレジスタ26
6が‘1'、またはTKN信号線122が‘1'の
ときのみ、セレクタ208に右選択信号が出さ
れ、RAM412の書き込みが起動される。さ
らに、信号線122が‘1'のときにセレクタ4
42に右選択信号が出され、TKN信号線12
2が‘0'のときに左選択信号が出される。
6が‘1'、またはTKN信号線122が‘1'の
ときのみ、セレクタ208に右選択信号が出さ
れ、RAM412の書き込みが起動される。さ
らに、信号線122が‘1'のときにセレクタ4
42に右選択信号が出され、TKN信号線12
2が‘0'のときに左選択信号が出される。
ICLI信号線206上の命令アドレスの下位
16ビツトは、セレクタ208、信号線210を
介してRAM412に入力される。
16ビツトは、セレクタ208、信号線210を
介してRAM412に入力される。
書き込みが起動されたRAM412のGRBフ
イールド、GRXフイールド、IRフイールド、
ICUフイールドには、それぞれGRBI信号線上
のベース・レジスタ値、IR信号線上の命令語、
およびICU信号線上の分岐命令アドレスの上位
16ビツトが、レジスタ262が‘1'のときに、
レジスタ264が示すロー番号のローに書き込
まれる。レジスタ262が‘0'のときには、
LRU方式またはFIFO方式等の公知の再配置方
法の1つを用いて選択されたローに書き込まれ
る。この再配置方法は、本発明には直接の関係
がないため、これ以上の説明は省略する。
イールド、GRXフイールド、IRフイールド、
ICUフイールドには、それぞれGRBI信号線上
のベース・レジスタ値、IR信号線上の命令語、
およびICU信号線上の分岐命令アドレスの上位
16ビツトが、レジスタ262が‘1'のときに、
レジスタ264が示すロー番号のローに書き込
まれる。レジスタ262が‘0'のときには、
LRU方式またはFIFO方式等の公知の再配置方
法の1つを用いて選択されたローに書き込まれ
る。この再配置方法は、本発明には直接の関係
がないため、これ以上の説明は省略する。
HITSVレジスタ262が‘1'であり、かつ
TKN信号線122‘1'のときには、さらに
RAM412のTIフイールドにTI信号線120
のデータが書き込まれる。これにより、読み出
しサイクルで読み出されたターゲツト命令語を
含む命令群の上に、TI信号線120を介して
転送されたターゲツト命令語を含む命令群が重
ね書きされる。
TKN信号線122‘1'のときには、さらに
RAM412のTIフイールドにTI信号線120
のデータが書き込まれる。これにより、読み出
しサイクルで読み出されたターゲツト命令語を
含む命令群の上に、TI信号線120を介して
転送されたターゲツト命令語を含む命令群が重
ね書きされる。
また、HITSVレジスタ262が‘1'であり、
かつTKN信号線122が‘0'のときには、さ
らにValidフイールドに‘0'が書き込まれる。
これにより、読み出しサイクルで読み出された
ターゲツト命令語を含む命令群と、それに対応
する連想キー(第1の連想キーおよび第2の連
想キー)が分岐先バツフア記憶装置から削除さ
れる。
かつTKN信号線122が‘0'のときには、さ
らにValidフイールドに‘0'が書き込まれる。
これにより、読み出しサイクルで読み出された
ターゲツト命令語を含む命令群と、それに対応
する連想キー(第1の連想キーおよび第2の連
想キー)が分岐先バツフア記憶装置から削除さ
れる。
また、HITSVレジスタ262が‘0'であり、
かつTKN信号線122が‘1'のときには、さ
らにTIフイールドにTI信号線120のデータ
が書き込まれ、Validフイールドには‘1'が書
き込まれる。これにより、ターゲツト命令語
と、それに対応する連想キー(第1の連想キー
およびこの後の第2の連想キー)が分岐先バツ
フア記憶装置に新しく記憶される。
かつTKN信号線122が‘1'のときには、さ
らにTIフイールドにTI信号線120のデータ
が書き込まれ、Validフイールドには‘1'が書
き込まれる。これにより、ターゲツト命令語
と、それに対応する連想キー(第1の連想キー
およびこの後の第2の連想キー)が分岐先バツ
フア記憶装置に新しく記憶される。
HITSVレジスタ262とTKN信号線12
2が、ともに‘0'のときには何も行われない。
2が、ともに‘0'のときには何も行われない。
以上のように、本願の第1の発明では、分岐
命令のある実行時に分岐が成功したとき、その
分岐命令のアドレス情報からなる第1の連想キ
ーと、その分岐先命令のアドレスを生成するた
めの情報からなる第2の連想キーとの組を連想
キーとして、その分岐先命令とともに連想記憶
手段に登録し、次にある分岐先命令が実行され
たとき、その分岐命令のアドレス情報からなる
第1の連想キーとその命令が指定する分岐先命
令のアドレスを生成するための情報からなる第
2の連想キーとの組を連想キーとして、連想記
憶手段に供給する。そして、供給された連想キ
ーと一致する連想キーを有する分岐先命令が連
想記憶手段から読み出されたとき、その分岐命
令の分岐が成功と予測し、その分岐先命令を実
行する。
命令のある実行時に分岐が成功したとき、その
分岐命令のアドレス情報からなる第1の連想キ
ーと、その分岐先命令のアドレスを生成するた
めの情報からなる第2の連想キーとの組を連想
キーとして、その分岐先命令とともに連想記憶
手段に登録し、次にある分岐先命令が実行され
たとき、その分岐命令のアドレス情報からなる
第1の連想キーとその命令が指定する分岐先命
令のアドレスを生成するための情報からなる第
2の連想キーとの組を連想キーとして、連想記
憶手段に供給する。そして、供給された連想キ
ーと一致する連想キーを有する分岐先命令が連
想記憶手段から読み出されたとき、その分岐命
令の分岐が成功と予測し、その分岐先命令を実
行する。
また、第1の発明の実施態様では、第1のタ
イミングで、第1の連想キーを連想記憶手段に
供給し、第1のタイミングより後の第2のタイ
ミングで、第2の連想キーを連想記憶手段に供
給する。連想記憶手段は、分岐命令のアドレス
情報からなる第1の連想キーが供給されたと
き、これに一致する第1の連想キーを有する分
岐先命令が複数存在するときには、それらの複
数の分岐先命令を検出する。また、読み出すべ
き分岐先命令のアドレスを生成するため情報か
らなる第2の連想キーがその後に供給されたと
きに、検出された複数の分岐先命令のうち、こ
の供給された第2の連想キーに一致する第2の
連想キーを有する1つの分岐先命令を選択して
供給する。なお、第1の連想キーを連想記憶手
段に供給する第1のタイミングとしては、分岐
命令の実行開始前、あるいは分岐命令の解読
前、あるいは分岐命令の読み出し時であり、一
方、第2の連想キーを連想記憶手段に供給する
第2のタイミングとしては、分岐命令の実行開
始後、あるいは分岐命令の解読後、あるいは分
岐命令の読み出し後である。
イミングで、第1の連想キーを連想記憶手段に
供給し、第1のタイミングより後の第2のタイ
ミングで、第2の連想キーを連想記憶手段に供
給する。連想記憶手段は、分岐命令のアドレス
情報からなる第1の連想キーが供給されたと
き、これに一致する第1の連想キーを有する分
岐先命令が複数存在するときには、それらの複
数の分岐先命令を検出する。また、読み出すべ
き分岐先命令のアドレスを生成するため情報か
らなる第2の連想キーがその後に供給されたと
きに、検出された複数の分岐先命令のうち、こ
の供給された第2の連想キーに一致する第2の
連想キーを有する1つの分岐先命令を選択して
供給する。なお、第1の連想キーを連想記憶手
段に供給する第1のタイミングとしては、分岐
命令の実行開始前、あるいは分岐命令の解読
前、あるいは分岐命令の読み出し時であり、一
方、第2の連想キーを連想記憶手段に供給する
第2のタイミングとしては、分岐命令の実行開
始後、あるいは分岐命令の解読後、あるいは分
岐命令の読み出し後である。
また、本願の第2の発明では、分岐先命令を
記憶する連想記憶手段に対して、連想キーとし
て分岐先命令のアドレスを算出するのに使用す
る情報、つまり分岐命令が指定するアドレス情
報を使用して、この分岐命令が再実行されたと
きには、分岐先命令を連想記憶手段から読み出
すための連想キーとして、分岐先命令のアドレ
スを算出するために使用する情報、つまり分岐
命令が指定するアドレス情報を使用する。
記憶する連想記憶手段に対して、連想キーとし
て分岐先命令のアドレスを算出するのに使用す
る情報、つまり分岐命令が指定するアドレス情
報を使用して、この分岐命令が再実行されたと
きには、分岐先命令を連想記憶手段から読み出
すための連想キーとして、分岐先命令のアドレ
スを算出するために使用する情報、つまり分岐
命令が指定するアドレス情報を使用する。
第1および第2の発明のいずれも、分岐先命
令のアドレスを生成するための情報からなる連
想キーを用いており、かつ分岐先命令が連想記
憶手段に登録されているときには、分岐命令の
分岐が成功と予測して実行する点で共通してい
る。
令のアドレスを生成するための情報からなる連
想キーを用いており、かつ分岐先命令が連想記
憶手段に登録されているときには、分岐命令の
分岐が成功と予測して実行する点で共通してい
る。
以上説明したように、本発明によれば、同じ分
岐命令が指定する分岐先命令のアドレスがその分
岐命令の実行毎に変化する場合でも、分岐先命令
を連想記憶手段に登録することができ、かつ再利
用が可能である。また、分岐命令の分岐先命令を
連想記憶手段に登録した後、その分岐命令の再実
行時に、その分岐命令の分岐先命令を高速に読み
出し、実行することができる。
岐命令が指定する分岐先命令のアドレスがその分
岐命令の実行毎に変化する場合でも、分岐先命令
を連想記憶手段に登録することができ、かつ再利
用が可能である。また、分岐命令の分岐先命令を
連想記憶手段に登録した後、その分岐命令の再実
行時に、その分岐命令の分岐先命令を高速に読み
出し、実行することができる。
第1図および第2図は従来のルート・メモリの
機能を説明する図、第3図は本発明の一実施例を
示す分岐先バツフア記憶装置と命令処理装置との
インターフエースの図、第4図は第3図の詳細ブ
ロツク図、第5図は本発明の一実施例を示す分岐
先バツフア記憶装置のブロツク図である。 10:命令フエツチ・アドレス・ユニツト、1
1,13:セレクタ、12:命令ストレージ、1
4:命令バツフア、15:命令レジスタ、17:
汎用レジスタ、18,19:セレクタ、20:ア
ドレス加算器、21:オペランド・ストレージ、
22:実行ユニツト、30:分岐命令検出回路、
32:セレクタ切換回路、34:デコード切換回
路、100:命令処理装置、102:分岐先バツ
フア記憶装置、104:IC信号線、106:
DISP信号線、108:BRN信号線、110:
GRB信号線、112:GRX信号線、114:
TKNP信号線、116:PTI信号線、120:
TI信号線:122:TKN信号線、412,23
6:RAM、414:制御回路、248,25
0:比較器、208,254,400,442,
438:セレクタ。
機能を説明する図、第3図は本発明の一実施例を
示す分岐先バツフア記憶装置と命令処理装置との
インターフエースの図、第4図は第3図の詳細ブ
ロツク図、第5図は本発明の一実施例を示す分岐
先バツフア記憶装置のブロツク図である。 10:命令フエツチ・アドレス・ユニツト、1
1,13:セレクタ、12:命令ストレージ、1
4:命令バツフア、15:命令レジスタ、17:
汎用レジスタ、18,19:セレクタ、20:ア
ドレス加算器、21:オペランド・ストレージ、
22:実行ユニツト、30:分岐命令検出回路、
32:セレクタ切換回路、34:デコード切換回
路、100:命令処理装置、102:分岐先バツ
フア記憶装置、104:IC信号線、106:
DISP信号線、108:BRN信号線、110:
GRB信号線、112:GRX信号線、114:
TKNP信号線、116:PTI信号線、120:
TI信号線:122:TKN信号線、412,23
6:RAM、414:制御回路、248,25
0:比較器、208,254,400,442,
438:セレクタ。
Claims (1)
- 【特許請求の範囲】 1 連想記憶手段と、ある分岐命令の実行時に分
岐が成功したとき、該分岐命令のアドレス情報か
らなる第1の連想キーと、その分岐先命令のアド
レスを生成するための情報からなる第2の連想キ
ーとの組を連想キーとして、該分岐先命令ととも
に該連想記憶手段に記憶させる手段と、該分岐命
令が再度実行されたときに、該分岐命令のアドレ
ス情報からなる第1の連想キーと該分岐命令が指
定する分岐先命令のアドレスを生成するための情
報からなる第2の連想キーとの組を連想キーとし
て該連想記憶手段に供給する手段と、供給された
連想キーと一致する連想キーを有する分岐先命令
が連想記憶手段から読み出されたとき、該分岐命
令の分岐が成功と予測して、読み出された分岐先
命令を実行する手段とを有することを特徴とする
情報処理装置。 2 前記供給手段は、命令が記憶されているメモ
リから前記再実行された分岐命令を読み出すため
の命令アドレスの一部を該分岐命令の第1の連想
キーとして供給する第1の供給手段と、該分岐命
令が指定する分岐先命令のアドレス情報に基づい
て、オペランド記憶装置から読み出された複数の
オペランドを該分岐命令の第2の連想キーとして
供給する第2の供給手段を有することを特徴とす
る特許請求の範囲第1項記載の情報処理装置。 3 前記分岐命令が指定する分岐先命令のアドレ
ス情報は、ベースレジスタの番号とインデツクス
レジスタの番号と変位からなり、複数の上記アド
レス情報は、オペランド記憶装置として情報処理
装置に設けられた複数のレジスタのうち、該ベー
スレジスタの番号を有する第1のレジスタの内容
と、該インデツクスレジスタの番号を有する第2
のレジスタの内容とからなり、前記第2の供給手
段は、該第1、第2のレジスタの内容を第2の連
想キーとして供給する手段からなることを特徴と
する特許請求の範囲第2項記載の情報処理装置。 4 前記一組の連想キーを供給する手段は、前記
第1の連想キーを第1のタイミングで連想記憶手
段に供給する手段と、前記第2の連想キーを前記
第1のタイミングより後の第2のタイミングで該
連想記憶手段に供給する手段とを有し、該連想記
憶手段は、該第1の連想キーが供給されたとき
に、該第1の連想キーに一致する第1の連想キー
を有する分岐先命令が複数記憶されているときに
は、該複数の分岐先命令を検出する手段と、該第
2の連想キーがその後に供給されたときに、該検
出された複数の分岐先命令のうち、該第2の連想
キーに一致する第2の連想キーを有する一つの分
岐先命令を選択して供給する手段からなることを
特徴とする特許請求の範囲第1項記載の情報処理
装置。 5 前記第1のタイミングは、再実行された分岐
命令の実行開始前であり、前記第2のタイミング
は、該分岐命令の実行開始後であることを特徴と
する特許請求の範囲第4項記載の情報処理装置。 6 前記第1のタイミングは、再実行された分岐
命令の解読前であり、前記第2のタイミングは、
該分岐命令の解読後であることを特徴とする特許
請求の範囲第4項記載の情報処理装置。 7 前記第1のタイミングは、遅くとも再実行さ
れた分岐命令を命令記憶装置から読み出すときで
あり、前記第2のタイミングは、その読み出しの
後であることを特徴とする特許請求の範囲第4項
記載の情報処理装置。 8 前記第2の供給手段は、オペランド記憶装置
として情報処理装置に設けられた複数のレジスタ
のうち、分岐命令が指定するベースレジスタの番
号を有する第1のレジスタの内容と、同じくイン
デツクスレジスタの番号を有する第2のレジスタ
の内容と、該分岐命令に含まれる変位とを供給す
る手段とからなり、前記供給されたオペランドに
基づいて、分岐先命令のアドレスを算出する手段
は、該第1、第2のレジスタの内容と変位とを加
算する手段からなり、前記連想記憶手段に記憶さ
せる手段は、前記第2の供給手段により供給され
た該第1、第2のレジスタの内容の少なくとも一
方を連想キーとして記憶する手段を有し、また再
実行された分岐命令に関して、連想キーを供給す
る手段は、その再実行された分岐命令に対して該
第2の供給手段から供給された、該第1、第2の
レジスタの内容の少なくとも一方を該連想記憶手
段に供給する手段からなることを特徴とする特許
請求の範囲第2項または第3項に記載の情報処理
装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP58159903A JPS6051948A (ja) | 1983-08-31 | 1983-08-31 | 情報処理装置 |
US06/645,672 US4725947A (en) | 1983-08-31 | 1984-08-30 | Data processor with a branch target instruction storage |
EP84110391A EP0135844B1 (en) | 1983-08-31 | 1984-08-31 | A data processor with a branch target instruction storage |
DE8484110391T DE3479251D1 (en) | 1983-08-31 | 1984-08-31 | A data processor with a branch target instruction storage |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP58159903A JPS6051948A (ja) | 1983-08-31 | 1983-08-31 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS6051948A JPS6051948A (ja) | 1985-03-23 |
JPH0557616B2 true JPH0557616B2 (ja) | 1993-08-24 |
Family
ID=15703687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP58159903A Granted JPS6051948A (ja) | 1983-08-31 | 1983-08-31 | 情報処理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US4725947A (ja) |
EP (1) | EP0135844B1 (ja) |
JP (1) | JPS6051948A (ja) |
DE (1) | DE3479251D1 (ja) |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1250667A (en) * | 1985-04-15 | 1989-02-28 | Larry D. Larsen | Branch control in a three phase pipelined signal processor |
US4991080A (en) * | 1986-03-13 | 1991-02-05 | International Business Machines Corporation | Pipeline processing apparatus for executing instructions in three streams, including branch stream pre-execution processor for pre-executing conditional branch instructions |
JP2534662B2 (ja) * | 1986-03-25 | 1996-09-18 | 日本電気株式会社 | 命令キヤツシユ制御方法 |
JPS62293434A (ja) * | 1986-06-12 | 1987-12-21 | Nec Corp | 分岐先予測制御方式 |
JP2534674B2 (ja) * | 1986-07-17 | 1996-09-18 | 日本電気株式会社 | 情報処理装置 |
JPS6336336A (ja) * | 1986-07-30 | 1988-02-17 | Nec Corp | 情報処理装置 |
JPS6421628A (en) * | 1987-07-17 | 1989-01-25 | Mitsubishi Electric Corp | Arithmetic processing unit |
US4901233A (en) * | 1987-07-20 | 1990-02-13 | International Business Machines Corporation | Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries |
US5134561A (en) * | 1987-07-20 | 1992-07-28 | International Business Machines Corporation | Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries |
US4943908A (en) * | 1987-12-02 | 1990-07-24 | International Business Machines Corporation | Multiple branch analyzer for prefetching cache lines |
US4914579A (en) * | 1988-02-17 | 1990-04-03 | International Business Machines Corporation | Apparatus for branch prediction for computer instructions |
US5155818A (en) * | 1988-09-28 | 1992-10-13 | Data General Corporation | Unconditional wide branch instruction acceleration |
US5113515A (en) * | 1989-02-03 | 1992-05-12 | Digital Equipment Corporation | Virtual instruction cache system using length responsive decoded instruction shifting and merging with prefetch buffer outputs to fill instruction buffer |
JP2682217B2 (ja) * | 1989-08-28 | 1997-11-26 | 日本電気株式会社 | マイクロプロセッサ |
US5230068A (en) * | 1990-02-26 | 1993-07-20 | Nexgen Microsystems | Cache memory system for dynamically altering single cache memory line as either branch target entry or pre-fetch instruction queue based upon instruction sequence |
JP2560889B2 (ja) * | 1990-05-22 | 1996-12-04 | 日本電気株式会社 | マイクロプロセッサ |
US5197132A (en) * | 1990-06-29 | 1993-03-23 | Digital Equipment Corporation | Register mapping system having a log containing sequential listing of registers that were changed in preceding cycles for precise post-branch recovery |
US5454090A (en) * | 1990-10-12 | 1995-09-26 | Siemens Aktiengesellschaft | Apparatus for furnishing instructions in a microprocessor with a multi-stage pipeline processing unit for processing instruction phase and having a memory and at least three additional memory units |
EP0480095B1 (de) * | 1990-10-12 | 1998-12-23 | Siemens Aktiengesellschaft | Vorrichtung zur Befehlsbereitstellung in einem Mikroprozessor |
US5265213A (en) * | 1990-12-10 | 1993-11-23 | Intel Corporation | Pipeline system for executing predicted branch target instruction in a cycle concurrently with the execution of branch instruction |
US5276825A (en) * | 1991-03-12 | 1994-01-04 | Chips & Technologies, Inc. | Apparatus for quickly determining actual jump addresses by assuming each instruction of a plurality of fetched instructions is a jump instruction |
JP2984463B2 (ja) * | 1991-06-24 | 1999-11-29 | 株式会社日立製作所 | マイクロコンピュータ |
JP2773471B2 (ja) * | 1991-07-24 | 1998-07-09 | 日本電気株式会社 | 情報処理装置 |
US5434986A (en) * | 1992-01-09 | 1995-07-18 | Unisys Corporation | Interdependency control of pipelined instruction processor using comparing result of two index registers of skip instruction and next sequential instruction |
JP2761688B2 (ja) * | 1992-02-07 | 1998-06-04 | 三菱電機株式会社 | データ処理装置 |
US5442756A (en) * | 1992-07-31 | 1995-08-15 | Intel Corporation | Branch prediction and resolution apparatus for a superscalar computer processor |
US5692167A (en) * | 1992-07-31 | 1997-11-25 | Intel Corporation | Method for verifying the correct processing of pipelined instructions including branch instructions and self-modifying code in a microprocessor |
US5694564A (en) * | 1993-01-04 | 1997-12-02 | Motorola, Inc. | Data processing system a method for performing register renaming having back-up capability |
DE4345028A1 (de) * | 1993-05-06 | 1994-11-10 | Hewlett Packard Co | Vorrichtung zur Reduzierung von Verzögerungen aufgrund von Verzweigungen |
US5623614A (en) * | 1993-09-17 | 1997-04-22 | Advanced Micro Devices, Inc. | Branch prediction cache with multiple entries for returns having multiple callers |
US5664135A (en) * | 1994-09-28 | 1997-09-02 | Hewlett-Packard Company | Apparatus and method for reducing delays due to branches |
US6052801A (en) * | 1995-05-10 | 2000-04-18 | Intel Corporation | Method and apparatus for providing breakpoints on a selectable address range |
JP2987311B2 (ja) * | 1995-05-12 | 1999-12-06 | 松下電器産業株式会社 | プロセッサ及び翻訳装置 |
US5659679A (en) * | 1995-05-30 | 1997-08-19 | Intel Corporation | Method and apparatus for providing breakpoints on taken jumps and for providing software profiling in a computer system |
US6112019A (en) * | 1995-06-12 | 2000-08-29 | Georgia Tech Research Corp. | Distributed instruction queue |
US5740413A (en) * | 1995-06-19 | 1998-04-14 | Intel Corporation | Method and apparatus for providing address breakpoints, branch breakpoints, and single stepping |
US5621886A (en) * | 1995-06-19 | 1997-04-15 | Intel Corporation | Method and apparatus for providing efficient software debugging |
US5905881A (en) * | 1995-11-30 | 1999-05-18 | Unisys Corporation | Delayed state writes for an instruction processor |
US5867699A (en) * | 1996-07-25 | 1999-02-02 | Unisys Corporation | Instruction flow control for an instruction processor |
US5903750A (en) * | 1996-11-20 | 1999-05-11 | Institute For The Development Of Emerging Architectures, L.L.P. | Dynamic branch prediction for branch instructions with multiple targets |
US6189092B1 (en) | 1997-06-30 | 2001-02-13 | Matsushita Electric Industrial Co., Ltd. | Pipeline processor capable of reducing branch hazards with small-scale circuit |
US5974543A (en) * | 1998-01-23 | 1999-10-26 | International Business Machines Corporation | Apparatus and method for performing subroutine call and return operations |
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 |
US6772325B1 (en) * | 1999-10-01 | 2004-08-03 | Hitachi, Ltd. | Processor architecture and operation for exploiting improved branch control instruction |
US9952869B2 (en) | 2009-11-04 | 2018-04-24 | Ceva D.S.P. Ltd. | System and method for using a branch mis-prediction buffer |
US10713048B2 (en) * | 2017-01-19 | 2020-07-14 | International Business Machines Corporation | Conditional branch to an indirectly specified location |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS4845149A (ja) * | 1971-10-09 | 1973-06-28 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3551895A (en) * | 1968-01-15 | 1970-12-29 | Ibm | Look-ahead branch detection system |
JPS549456B2 (ja) * | 1972-07-05 | 1979-04-24 | ||
JPS52116131A (en) * | 1976-03-26 | 1977-09-29 | Toshiba Corp | Microprogram instruction control unit |
US4315314A (en) * | 1977-12-30 | 1982-02-09 | Rca Corporation | Priority vectored interrupt having means to supply branch address directly |
US4430711A (en) * | 1980-05-30 | 1984-02-07 | Signetics Corporation | Central processing unit |
US4399507A (en) * | 1981-06-30 | 1983-08-16 | Ibm Corporation | Instruction address stack in the data memory of an instruction-pipelined processor |
-
1983
- 1983-08-31 JP JP58159903A patent/JPS6051948A/ja active Granted
-
1984
- 1984-08-30 US US06/645,672 patent/US4725947A/en not_active Expired - Fee Related
- 1984-08-31 EP EP84110391A patent/EP0135844B1/en not_active Expired
- 1984-08-31 DE DE8484110391T patent/DE3479251D1/de not_active Expired
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS4845149A (ja) * | 1971-10-09 | 1973-06-28 |
Also Published As
Publication number | Publication date |
---|---|
JPS6051948A (ja) | 1985-03-23 |
US4725947A (en) | 1988-02-16 |
EP0135844A2 (en) | 1985-04-03 |
DE3479251D1 (en) | 1989-09-07 |
EP0135844A3 (en) | 1987-08-26 |
EP0135844B1 (en) | 1989-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0557616B2 (ja) | ||
US5125083A (en) | Method and apparatus for resolving a variable number of potential memory access conflicts in a pipelined computer system | |
US4476525A (en) | Pipeline-controlled data processing system capable of performing a plurality of instructions simultaneously | |
JP3423310B2 (ja) | 仮想アドレス能力が保持され、パイプライン命令ユニットと実効アドレス計算ユニットとを有するcpu | |
US5394530A (en) | Arrangement for predicting a branch target address in the second iteration of a short loop | |
US4827402A (en) | Branch advanced control apparatus for advanced control of a branch instruction in a data processing system | |
US4811215A (en) | Instruction execution accelerator for a pipelined digital machine with virtual memory | |
US5530825A (en) | Data processor with branch target address cache and method of operation | |
EP0689131B1 (en) | A computer system for executing branch instructions | |
JP2744890B2 (ja) | ブランチ予測式データ処理装置および動作方法 | |
EP0180725B1 (en) | Instruction prefetch operation for branch instructions | |
US6081887A (en) | System for passing an index value with each prediction in forward direction to enable truth predictor to associate truth value with particular branch instruction | |
JPH07281895A (ja) | 分岐キャッシュ | |
KR100259306B1 (ko) | 분기 명령 버퍼를 갖는 데이타 프로세서 | |
JP2000172507A (ja) | 命令フェッチ制御装置 | |
JP2010509680A (ja) | ワーキング・グローバル・ヒストリ・レジスタを備えるシステム及び方法 | |
US7346737B2 (en) | Cache system having branch target address cache | |
JPH0743648B2 (ja) | 情報処理装置 | |
EP0550289A2 (en) | A mechanism to detect stores into the instruction stream | |
JP3683439B2 (ja) | 分岐予測を抑止する情報処理装置および方法 | |
JPH09330221A (ja) | マイクロプロセッサにおける早期例外を追跡するシステム及び方法 | |
KR920006770B1 (ko) | 명령을 페치(fetch)하기 위한 제어 시스템 | |
JP3082944B2 (ja) | パイプライン処理装置 | |
JPH0552534B2 (ja) | ||
JPH07200406A (ja) | キャッシュシステム |