JPS6051948A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPS6051948A
JPS6051948A JP58159903A JP15990383A JPS6051948A JP S6051948 A JPS6051948 A JP S6051948A JP 58159903 A JP58159903 A JP 58159903A JP 15990383 A JP15990383 A JP 15990383A JP S6051948 A JPS6051948 A JP S6051948A
Authority
JP
Japan
Prior art keywords
instruction
branch
register
signal
target
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
JP58159903A
Other languages
English (en)
Other versions
JPH0557616B2 (ja
Inventor
Susumu Shonai
庄内 享
Shunichi Torii
俊一 鳥居
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP58159903A priority Critical patent/JPS6051948A/ja
Priority to US06/645,672 priority patent/US4725947A/en
Priority to DE8484110391T priority patent/DE3479251D1/de
Priority to EP84110391A priority patent/EP0135844B1/en
Publication of JPS6051948A publication Critical patent/JPS6051948A/ja
Publication of JPH0557616B2 publication Critical patent/JPH0557616B2/ja
Granted 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 C発明の利用分野〕 本発明は、分鼓先バッファ記憶装置に闘し、特に分肢命
令の処理を高速化するためのバッファ記憶装置に関する
ものである。
〔発明の背景〕
パイプライン計算機では、命令の処理を部分処理に分解
し、個々の部分処理を実行する専用の独立なユニットを
用意し、連続した複数の命令を工場の組立てラインのよ
うにオーバーラツプして処理することKより高速処理を
行っている。しかし、分肢命令が出現すると、パイプラ
インの流れに乱れが生じるため、処理性能が低下する。
したがって、高速処理を行う計算機の処理性能の向上の
ためには、分肢命令の高速処理が必要不可欠である。
分絃命令の出現によってパイプラインの流れが乱れる原
因は、分絃が成立した場合、ターゲット命令語(分肢先
命令語)が得られるまでに時間がかかり、これが得られ
るまではターゲット命令語のデコードを開始できないこ
とである。したがって、分肢命令を高速処理するために
は、ターゲット・フェッチの高速化が必要である。
従来、ターゲット・7エツチの高速化を実現するものと
して、ルート・メモリが提案されている(特公昭54−
9451−公報「情報処理装置」谷型)。
ルート・メモリ1は、第1図に示すように1命令デコ一
ド時に命令アドレス(IA)をキーとして、次の2つを
出力する連想記憶メモリである。
すなわち、(1)命令アドレスの指す命令が成立する分
岐命令であるか否かの予測(BA?)、および(if)
成立する分1命令である場合にけ、そのターゲット命令
語(TI)である。しかし、上記ルート・メモリIKは
、次のような欠点がある。すなわち、命令アドレス(I
A)のみを十−としてルート・メモリ1を論照している
ため、1つの分岐命令が複数のターゲット命令のうちの
どれか1つに分岐する場合を扱うことができないことで
ある。すなわち、第2図に示すように、メイン・ルーチ
ン3のA点からサブルーチン(SUBRT)の先頭アド
レスに分岐し、これを終了してからターゲット・アドレ
ス4に戻り、その後B点で再び同一サブルーチン(8U
BRT)K分岐して、これを終了してから戻る場合、ル
ート・メモリにはターゲット・アドレス養の命令語が格
納されているため、正しいターゲット・アドレス5の命
令語に戻ることができない。
〔発明の目的〕
本発明の目的は、このような従来の欠点を改善し、1つ
の分岐命令が複数のターゲット命令の1つに分岐する場
合にも、正しいターゲット命令列を出力することが可能
な分岐先バッファ記憶装置を提供することKある。
〔発明の概要〕
上記目的を達成するため、本発明の分岐先バッファ記憶
装置は、分岐命令で指定された分岐条件が成立した場合
、上記分岐命令中に含まれるレジスタ指定情報および変
位情報にもとづいたメモリ中のターゲット命令に分岐す
る命令処理装置において、上記分岐命令の命令アドレス
と上記分岐命令のレジスタ指定情報が指示する1つ以上
のレジスタの値および上記変位情報を連想キーとして入
力し、上記分岐命令のターゲット命令語を含む命令群を
出力する連想記憶装置および上記分岐命令で分岐が実行
された場合に1上記分1命令のターゲット命令語を含む
命令群を上記連想記憶装置に登録する手段を有すること
に特徴がある。
〔発明の実施例〕
第3図は、本発明による分岐先バッファ記憶装置と命令
処理装置とのインターフェース図である。
命令処理装置100と分岐先バッファ記憶装置102と
は、IC信@1lil104、DISP信号線106、
BRN信Jij線108、GRB信号線110、GRX
信号[112、TKNP信号線11昼、PTI信J#線
118、TI信号線120およびTKN信号11ii 
122の合計0本の信号線で結合されている。
本発明の分岐先バッファ記憶装置102は、分岐命令の
命令アドレス、変位情報、分岐命令語のターゲット・ア
ドレスt−法定するパラメータ、すなわち分1命令中の
レジスタ指定情報の指示するレジスタ値を連想キーとし
て、その分岐命令のターゲット命令語【含む命令群を出
力するものである。
なお、特定のコンピュータ(例えば、IBM3yst@
m / 370)では、分岐命令の指示するベース・レ
ジスタ値とインデックス・レジスタ値と変位情報により
、ターゲット・アドレスが決定されるが、本実施例はこ
の場合に対応しており、上記パラメータとしてベース・
レジスタ値とインデックス・レジスタ値を用いている。
また、ベース−レジスタ値とインデックス・レジスタ値
と分岐命令語中の変位情報との和ではなく、分岐命令の
指示する汎用レジスタの値をターゲット命令のアドレス
とする分岐命令に対して、本実施例を適用する場合には
、連想キーとなるベース・レジスタまたはインディクス
・レジスタの値の片方の値をゼνとし、他方の値を汎用
レジスタの値として分岐先バッファ記憶をアクセスする
分敲先バッファ記憶装置102では、分岐命令の指すベ
ース・レジスタとインデックス・レジスタの値(汎用レ
ジスタの値をターゲラ)・アドレスとする分岐命令に対
しては、汎用レジスタの値)を連想キーとして用いてい
るので、サブルーチン・リターンのように、1つの分岐
命令が複数のタ−ゲット命令の中のいずれか1つに分岐
する場合にも、上記連想キーが異なるため、これを扱う
ことができる。
分岐先バッファ記憶装置1102 t−用いると、ター
ゲット・7エツチの高速化が達成されるので、分1命令
が高速に処理できる。
第4図は、第3図における命令処理装置の詳細ブロック
図である〇 第4図には、分岐先バッファ102と、命令処理装置η
100が記載されている。命令処理装置100は、命令
フェッチ・アドレス・ユニット10命令ストレージ(メ
モリ1)12、命令バッファ14、命令レジスタ15、
セレクタ11.13、分肢命令検出回路30、セレクタ
切換回路32、デコード切換回路34、汎用レジスタ1
7、セレクタ18,1.9、アドレス加算器20、オペ
ランド・ストレージ(メモリ2)21実行ユニット22
から構成される。
次に1全体の動作を説明する。
命令群を読み出す際の命令プリフェッチ・アドレスを、
あらかじめ命令7エツチ・アドレス・ユニットIOK格
納しておき、セレクタ11でアドレス加算器20の出力
または命令フェッチ・アドレス・ユニット10の上記命
令プリ7エツチ・アドレス出力の一方を選択してメモリ
12にアクセスし、1命令群を命令バッファ14に読み
出して格納する。命令バッファ14から1命令ずつ命令
レジスタ15に読み出し、命令内の変位情報をアドレス
加算器2oの一方の入力として用いるため転送する。命
令バッファ14から命令レジスタ15に読み出された命
令のアドレスは、IC信号線104を介して分岐先バッ
ファ102に送出される。同時に、分肢命令飴中の変位
情報をDISPIC信号線106て分岐先バッファ10
2に送出する。分肢命令検出回路30は命令をデコード
し、分岐命令のときにはBRN信号81108に1”を
出力して分岐先バッファ102を起動する。また、汎用
レジスタ17のペース・レジスタとインデックス・レジ
スタの6値が、命令レジスタ15の中のペース・フィー
ルドとインディクス・フィールドによりセレクタ18.
19で選択され、さらにアドレス加算器20で上記変位
情報とともに加算されて、その結果が命令フェッチ・ア
ドレス・ユニット10およびセレクタ11に転送され、
次のターゲット命令のアドレスとなる。セレクタ11に
転送されたこのターゲット命令のアドレスは、ターゲッ
ト命令@1含む命令群をフェッチするために、命令スト
レージ・ユニット12に入力される。
ペース・レジスタとインデックス・レジスタの値は、G
RB信@線110とGRX信号線112にそれぞれ出力
され、分岐先バッフ7102に送出される。分岐でない
普通の命令のときKは、アドレス加算′a20の出力で
オペランド・ストレージ21t−アクセスし、オペラン
ドを読みth して実行ユニット22にこれを与えるこ
とにより実行させる。
分岐先バッファ102は、@傍線104.106゜11
0.112 を介して転送されたデータを連想キーとし
て、対応するターゲット命令語を含む命令群が分岐先バ
ッファ102内に登録されているか否カを調べる。登録
されているときには、分岐先バッファ102はTKNP
信号線114にl”′を出力し、さらにターゲット命令
語を含む命令群をPTI信号線118に出力する。セレ
クタ切換回路32は、信号線114から“1”を受け取
ったとき、点線で示す制御線を介してセレクタ13に右
側入力を選択させ、命令バッファ14にターゲット命令
語を含む命令群を格納する。
なお、分岐先バッファ102にターゲット命令語を含む
命令群が登録されていないときには、分岐先バッファ記
憶102は、TKNP信号線114K“0″を出力する
デコード切換回路34は、信号線114を介して“O1
″が転送されてきたときには、分岐命令が分肢不成立と
予測して信号線40を“0″”Kして、命令バッファ1
4内の分岐命令の次の命令を命令レジスタ15に切り出
し、そのデコードを開始する。
これに対して、信号、IIi!114を介して“1″が
転送されてきたときには、信号線40を“l”KL、て
分舷命令が分岐成立と予測し、信号[118を介して命
令バッファ14に格納されたターゲット命令を含む命令
群の中のターゲット命令語を命令レジスタ15に切り出
し、そのデコードを開始する。
実行:x、xット22は、上記デコードと並行して分岐
命令の実行を行う。分岐命令のデコード開始から一定時
間後に分岐命令の実行が完了し、分岐命令の判定結果が
得られる。また、それと同時に、アドレス加算器20か
らセレクタ11を介して命令ストレージ・ユニット12
に入力されたターゲット・アドレスにもとづいて、ター
ゲット命令語を含む命令群の7エツチを行う。
実行ユニット22は、分肢不成立のときKはTKN償号
11122に0”を出力する。また、分岐成立のときK
は、TKN信号線122K“1″′を出力して、分岐先
バッファ102に転送する。そして、命令ストレージ・
ユニット12から読み出されたターゲット命令語を含む
命令群を信号! 120を介して分岐先バッファ102
に送出する。
分岐先バッファ記憶102は、信号線120、α1) 122を介して転送されたデータにもとづき、書き込み
サイクル動作を行う。
第5[i!!1は、本発明の実施例を示す分岐先バッフ
ァ記憶装置の構成図である。
分1先バッファ記憶装置は、過去に分舷成1立となった
分岐先命令の命令語群を、連想キーである分鮭命令語の
アドレス、分岐命令語中の変位情報ペース・レジスタと
インデックス・レジスタの値とともに記憶している。分
岐先バッファ記憶Uttでは、各分岐命令は、その分岐
命令が前回実行されたときと同じ成立/不成立判足をす
ると予測し、かつ前回の実行が成立判定のときには、そ
のときのターゲット命令語と同じものが実行されると予
測する。したがって、ある分岐命令の連想キーに対応す
るターゲット命令語を含む命令群が分岐先バッファ記憶
に記憶されているときKは、その連想キーの元になった
分岐命令は成立すると予測され、そうでないときには不
成立と予測される。
ある分岐命令に対し、分岐先バッフ了記憶が不成立と予
測して、実際にその分岐命令が分岐不成αつ 立となった場合には、分岐先バッファの内容は変化しな
い。また、ある分岐命令に対し、分岐先バッファ記憶が
不成立と予測したKも拘らず、実際にはその分岐命令が
分岐成立となった場合には、その分岐命令のターゲット
命令語を含む命令群と連想キーは対応して分岐先バッフ
ァ記憶装置に新しく記憶される。ある分岐命令に対し、
分岐先バッファ記憶が成立と予想したKも拘らず、実際
にはその分岐命令が分岐不成立となった場合には、その
分岐命令のターゲット命令語を含む命令群および対応す
る連想キーは分岐先バッファ記憶から削除される。さら
に、ある分岐命令に対して、分岐先バッファ記憶が成立
と予測して、実際にその分岐命令が分岐成立となった場
合には、その分岐命令のターゲット命令語を含む命令群
は、予測時に用いたターゲット命令語を含む命令群の上
に重ね書きされる。
第5図に示すように、分岐先バッファ記憶は、RAM4
12,236、セレクタ208,254゜400.44
2,438、レジスタ202,216゜218.220
,222,238,262,264、制御回路414お
よびその他の組合わせ論理回路から構成される。
RAM412には、過去に分岐成立となった分岐命令の
命令アドレスの上位12ビット、分岐命令語の変位情報
、ペース・レジスタとインデックス・レジスタの値、お
よびターゲット命令語を含む命令群が記憶されている。
RA F、、4412はTIフィールド、GRBフィー
ルド、G RX ’フィールド、DI SPフィールド
、I CUフィールド、Vajid フィールドから構
成されている。TIフィールドには、上記ターゲット命
令語を含む命令群が、GRBフィールドには上記ペース
・レジスタの値が、GRXフィールドには上記インデッ
クス・レジスタの値が、DISPフィールドには、上記
分岐命令語中の関位情報が、ICU)・f−ルドには上
記命令アドレスの上位12ビツトが記憶されている。
RAM412の各フィールドは、20−・651536
 (2の16乗)カラム構成となっている。
RAM236は、再配置制御データを記憶したRPLフ
ィールドから構成される装置 しては、F I F O ( First In Fi
rst Out )方式、L R U ( Least
 leoentjy Used )方式等の公知技術の
いずれかを用いればよい。
RAM236は、65536カラム構成となっている。
制御回路414は、RAM412,236の読み出し、
書き込み起動、セレクタ208,4.42 の切換え、
レジスタ202,216,218,220,238。
262、264 の沓き込み起動を行う。
RAM412は、読み出し起動時には、信号線210で
指定されたカラムの全ローが同時に読み出され、書き込
み起動時には、信号!210で指定されたカラムの中で
、信号&l212で指定されたローに対して書き込みが
行われる。
なお、本実施例では、2ロー、65536カラム構成で
あるが、任意のp−数、任意のカラム数で構成できるこ
とは勿論である。また、本実施例では、分岐命令アドレ
スの下位16ビツトなカラム・αυ アドレスの決定に用いているが、分妓命令アドレス、分
肢命令語中の変位情報、ベース・レジスタ、インデック
ス・レジスタの値の中のビットの任意のビットの組合わ
せをカラム・アドレスの決定ニ使うことができるのは明
らかである。
次に1分肢先バツファ記憶装置の動作の詳細を説明する
分肢先バツファ記憶の動作は、読み出しサイクルと書き
込みサイクルからなる。
(&)読み出しサイクル 分肢先バツファ記憶の読み出しサイクルの動作は、BR
NR号線108を介して“1”が制御回路414に転送
された時点から開始される。制御回路414は、RAM
412,236の読み出しを起動し、セレクタ208に
左選択信号を出す。また、レジスタ202,216,2
18,220。
222の書き込みを起動する。
書き込みが起動されたICLIレジスタ202には、信
号線200を介してIC信号!!!104の下位16ビ
ツトが書き込まれ、ICUIレジスタα6) 222にはIC信号線104の上位16ビツトが書き込
まれる。また、書き込みが起動されたGRBIRジスタ
216、GIIXIレジスタ218、DISPレジスタ
220には、それぞれGRBR号線110、GRX信号
&1112、DI SP倍信号106のデータが書き込
まれる。
また、読み出しを起動されたlIAM412。
236は、信@線204、セレクタ208、信号線21
0を介して伝達されたIC信号線104の下位12ビツ
トで指定されたカラムのデータを、Ol号対線40,2
68,270,272,274,276。
278、 280, 282, 284, 286, 
292, 294に出力する。
比較器248,250の左側には、信号fil110。
112、106,4.26,434 のデータが入力さ
れる。
比較器24.8の右側には、信号!1284,280。
276、272.268 のデータが入力される。比較
fa25(1)右ill K ハ、信号[286,28
2,278。
274、270 のデータが入力される。比較器248
250は、右側入力データと左側入力データとが等しい
ときに信号!306,308にそれぞれ゜1”を出力し
、等しくないときKはo ” t− In力する。
すなわち、汎用コンピュータから転送された分肢命令ア
ドレスの上位16ビツト、ペース・レジスタとインデッ
クス・レジスタの値、および分肢命+iと、ローQ/$
2−1から読み出したI CU7イールド、GRB7R
ールド、GRX7Rールド、DISPフィールドのデー
タそれぞれが等しく、かつ■171遣フィールドの値が
“1”K等しければ、比較器248/2δ0は“1″を
出力し、それ以外では“0”を出力する。
ロー0かロー1のいずれかのデータが上記のように等し
い場合、すなわち、分肢先バツファに連想キーに対応す
るターゲット命令語を含む命令群が登録されている場合
には、信号線306または308が“1”Kなり、OR
圓絡路256TKNP信号!114に“l”を出力し、
汎用コンピュータ100kc転送する。また、エンコー
ダ258は、連想キ一に対応するターゲット命令語を含
む命令群が登録されているロ一番号の2進数として、信
傍線358に出力する。例えば、ローIK連想キーに対
応するターゲット命令語が登録されているならば、比較
1248,250により信号線308にだけ“1′″が
出力され、エンコーダ2δ8は信号線358に“l”を
出力する。信号lI!i!358のデータはセレクタ2
54に入力され、信号線292゜294の中で、登録さ
れていたローから出ている信・け線のデータをPTI信
号線118に出力し、汎用コンピュータ100K転送す
る。例えば、信@&1358に1”が出力されているな
らば、信号! 294−のデータがPTI信@線118
に出力さし、汎用コンピュータ100に転送される。
ロー0およびロー1のいずれにも、連想キーに対応する
ターゲット命令語を含む命令群が登録されていない場合
には、f目傍線306,308は両方とも“0”となり
、OR回路256は“O1′をTKNP償@線114に
出力し、汎用コンピュータ100に転送する。
さらに1信[!j268,270&Cは、vajidフ
ィールドから読み出されたデータが出力されておα9) す、このデータは最左無効ロ一番号エンコーダ404と
全ロー有効判定論理回路406に入力される。
最左無効ロ一番号エンコーダ404は、■ajidフィ
ールドから読み出されたデータが“OI′であるローの
中で最も小さいロ一番号を2進数にエンコードして信号
線422に出力する。全ロー有効判定論理回路406は
、vaji4フィールドから読み出されたすべてのp−
のデータが1″であるときに、“1′″を信号線424
に出力し、それ以外のときには“0′″を出力する。
BRN信号線108を介して“1″′が制御回路414
に入力してから、このようKして読み出しサイクルの動
作が行われ、信号!240,422゜424.114,
358 Kデータが出力される詩刻に、制御回路414
はRPLOレジスタ238、レジx、*418,420
.HITSVレジスタ262、ROW+SVレジスタ2
64の書き込みを起動する。
書き込みが起動されたRPLOレジスタ238、レジス
タ418,420、HITSV レジX * 262、
C20) ROW+Svレジ;11264には、信号m2+o。
422.424,114,358のデータがそれぞれ書
き込まれる。上記各レジスタKmき込まれたデータは、
次に説明する書き込みサイクルで使用される。
(b) tl!き込みす・Cクル n I’ L Oレジスタ238に記憶された再配置制
御データは、信号線242を介して書き込みロー選択回
路244に人力される。書き込みロー選択回路244は
、FIFO方式、LRU方式等の周知の再配置方式を用
いて構成されるものであり、粛き込まれるローを選択し
、そのp一番号に信号線402を介してセレクタ400
に入力する。
レジスタ418に記憶されていたデータは、信号1fM
4.OBを介してセレクタ400に入力される。
レジスタ420のデータは、信@線410を介してセレ
クタ400に入力される。信号線410【介して“1″
が人力されるときには、セレクタ400はイd@腺40
2のデータを(d@線436に出力する。信号# 4.
10を介して0”が人力されるときKは、セレクタ40
0は信号!408のデータを信号線436に出力する。
信号線436のデータは、分岐先バッフ7にターゲット
命令語を含む命令群と連想キーを新しく記憶するローの
番号であり、セレクタ438に入力される。
1(QW+SVレジスタ264のデータは、信号線35
6を介してセレクタ438に入力される。
HITSVレジスタ262のデータは、信号粗354を
介してセレクタ438に入力される。
信号!354を介して1”が人力されるときKは、セレ
クタ438は信号l5356のデータを信号!1212
に出力する。信号線354を介して“0”が入力される
ときには、セレクタ438は、信号!436のデータを
信号11212に出力する。信号!1i212のデータ
は、再配置制御データ更新論理回路246とRAM41
2に入力される。信号11212のデータは、書さ込み
サイクルでRAM412に書き込まれるp−の番号であ
る。
再配蓋制御データ更新論理回路246には、さらにIt
PLOレジスタ238のデータが信@線242を介して
人力される。再配置制御データ更新論理回路246は、
FIFO方式、LRU方式等の周知の再配置方式を用い
て構成されるものであり、信号41212上の書き込み
ロー(1号に基づいて信号線242上の再配置制御デー
タを更新する。
更新された再配置制御データは、信号fM234を介し
てTtAM236に人力される。
さらに、GItBIレジスタ216、GRXIレジスタ
218、DISPレジスタ220、ICUIレジスタ2
22のデータは、それぞれ信号線224.226,22
8,230′f:介してRAM412のそれぞれGRB
フィールド、GRXフィールド、nl5Pフイールド、
ICUフィールドに入力される。
BRN信号[108を介して“1′″が転送されてから
一定時間後に1汎用コンピユータ100では分ト命令の
実行が完了し、TKN信@線122を介して判定結果が
転送され、分肢成立のときにはさらKTI信号[120
を介してターゲット命令(2の 飴が転送される。
上記事象に同期して、制御回路414は、H■TSVレ
ジスタ262が“l″′またはTKN信号線122が1
″のときのみ、セレクタ206に右選択信号を出し、R
AM412,236の書き込みを起動する。さらに1制
御回路414は、TKN信号8122が1″のときにセ
レクタ232に右選択信号を出し、TKN信号線122
が“O1′のときに左選択信号を出す。
ICLIレジスタ202のデータは、信号線206、セ
レクタ208、信号5210を介してRAM412とR
AM236&c入力される。
書き込みが起動されたRAM412のGRBフィールド
、GRXフィールド、DISPフィールド、ICUフィ
ールドには、それぞれ信号M 224゜226.228
,230 のデータが、信号線210の指示するカラム
でかつ信号線212の指示するp−に書き込まれる。
書き込みが起動されたRAM236には、信号線234
のデータが信号線210の指示するカラ(2り 八KWき込まれる。
HITSVレジX*262が“1″テアリ、カッTKN
信号li!J122が“l”のときKは、さらにRAM
412のTIフィールドにTI信号線120のデータが
書き込まれ、Valiaフィールドには“1”が書き込
まれる。これにより、読み出しサイクルで読み出された
ターゲット命令給を含む命令群の上に、TI信号締12
0を介して転送されたターゲット命令#nを含む命令群
が重ね書ぎされる。
マタ、)fITSVレジX 夕262 カ″1″テあり
、かつTKN信号線122が0”のときには、ざらに■
ajlフィールドに“0″が書き込まれる。これにより
、読み出しサイクルで読み出されたターゲット命令語を
含む命令「−と、それに対応する連想キーが分岐先バッ
ファ記憶から削除される。
また、HITSvレジX タ262カ”O”t’アリ、
かつTKNra号41j122 カ’l”ノドtKハ、
サラKTI7(−/l’ドICTl信号&[120のデ
ータが書き込まれ、Valtaフィールドには’1”が
畜き込まれる。これによって、ターゲット命令語と、そ
れに対応する連想キーが分岐先バッファ記憶に新しく記
憶される。
HITSV レジXタ262.!:TKN信号1ffi
122が、ともにO11のときKは、何も行われない。
〔発明の効果〕
以上説明したように、本発明によれば、分岐先バッファ
記憶では、分岐命令が指示するベース・レジスタとイン
デックス・レジスタの値(汎用レジスタの値をターゲッ
ト・アドレスとする分岐命令に対しては汎用レジスタの
値)を連想キーの1つとして用いるので、サブルーチン
・リターンのように、1つの分岐命令が複数のターゲッ
ト命令の中のどれか1つに分岐する場合にも同じように
扱うことができる。
【図面の簡単な説明】
第1図および第2図は従来のルート・メモリの機能とそ
の欠点を説明する図、第3図は本発明の分岐先バッファ
記憶と命令処理装置とのインターフェース図、第4図は
第3図の詳細ブ四ツタ図、第5図は本発明の実施例を示
す分絃先バッファ記憶装置fのブロック図である。 104:■C信号線、106:DISP信号線、108
 : BRN信号線、110’GILB信号線、112
:GRX信琴線、114 : TKNP信号線、118
:PTI信号線、120;TI信号砿、122:TKN
信号線、412,236:RAM。 414=制御回路、24.8,250:比較器、208
゜254.400,442.438:セレクタ。 c′7+ 266− → リ

Claims (1)

    【特許請求の範囲】
  1. ω分肢命令で指定された分絃条件が成立した場合、上記
    分肢命令中に含まれるレジスタ指定情報および変位情報
    にもとづいたメモリ中のターゲット命令に分肢する命令
    処理装置において、上記分肢命令の命令アドレスと上記
    分肢命令のレジスタ指定情報が指示する1つ以上のレジ
    スタの値および上記変位情報を連想キーとして入力し、
    上記分肢命令のターゲット命令語を含む命令群を出力す
    る連想記憶装置および上記分肢命令で分肢が実行された
    場合に1上記分妓命令のターゲット命令語を含む命令群
    を上記連想記憶装置に登録する手段を有することを特徴
    とする分鼓先バッファ記憶装置0
JP58159903A 1983-08-31 1983-08-31 情報処理装置 Granted JPS6051948A (ja)

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
DE8484110391T DE3479251D1 (en) 1983-08-31 1984-08-31 A 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

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 true JPS6051948A (ja) 1985-03-23
JPH0557616B2 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)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62221036A (ja) * 1986-03-13 1987-09-29 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 計算装置
JPS62224829A (ja) * 1986-03-25 1987-10-02 Nec Corp 命令キヤツシユ制御方式
JPS62293434A (ja) * 1986-06-12 1987-12-21 Nec Corp 分岐先予測制御方式
JPS6324421A (ja) * 1986-07-17 1988-02-01 Nec Corp 情報処理装置
JPS6336336A (ja) * 1986-07-30 1988-02-17 Nec Corp 情報処理装置
JPH01169538A (ja) * 1987-12-02 1989-07-04 Internatl Business Mach Corp <Ibm> 命令事前取出し装置

Families Citing this family (40)

* Cited by examiner, † Cited by third party
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
JPS6421628A (en) * 1987-07-17 1989-01-25 Mitsubishi Electric Corp Arithmetic processing unit
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
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
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
DE59010857D1 (de) * 1990-10-12 1999-02-04 Siemens Ag Vorrichtung zur Befehlsbereitstellung in einem Mikroprozessor
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
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
US5621886A (en) * 1995-06-19 1997-04-15 Intel Corporation Method and apparatus for providing efficient software debugging
US5740413A (en) * 1995-06-19 1998-04-14 Intel Corporation Method and apparatus for providing address breakpoints, branch breakpoints, and single stepping
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4845149A (ja) * 1971-10-09 1973-06-28

Family Cites Families (6)

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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4845149A (ja) * 1971-10-09 1973-06-28

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62221036A (ja) * 1986-03-13 1987-09-29 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 計算装置
JPS62224829A (ja) * 1986-03-25 1987-10-02 Nec Corp 命令キヤツシユ制御方式
JPS62293434A (ja) * 1986-06-12 1987-12-21 Nec Corp 分岐先予測制御方式
JPS6324421A (ja) * 1986-07-17 1988-02-01 Nec Corp 情報処理装置
JPS6336336A (ja) * 1986-07-30 1988-02-17 Nec Corp 情報処理装置
JPH01169538A (ja) * 1987-12-02 1989-07-04 Internatl Business Mach Corp <Ibm> 命令事前取出し装置

Also Published As

Publication number Publication date
EP0135844A3 (en) 1987-08-26
US4725947A (en) 1988-02-16
EP0135844B1 (en) 1989-08-02
JPH0557616B2 (ja) 1993-08-24
EP0135844A2 (en) 1985-04-03
DE3479251D1 (en) 1989-09-07

Similar Documents

Publication Publication Date Title
JPS6051948A (ja) 情報処理装置
US4476525A (en) Pipeline-controlled data processing system capable of performing a plurality of instructions simultaneously
EP0437044B1 (en) Data processing system with instruction tag apparatus
US3949379A (en) Pipeline data processing apparatus with high speed slave store
JPH02153428A (ja) キャッシュ装置と命令読出し装置
JPH0814801B2 (ja) プログラマブルアクセスメモリ
JPH063584B2 (ja) 情報処理装置
GB2234833A (en) Pipelined register write buffer
US4954947A (en) Instruction processor for processing branch instruction at high speed
JPS5917457B2 (ja) 2進化10進訂正装置
US5276853A (en) Cache system
RU2066067C1 (ru) Центральный процессор для многопроцессорной вычислительной системы
US3162841A (en) Instruction counter system
JPS61224051A (ja) バッファメモリ制御方法
JP3132566B2 (ja) 命令先行制御装置
JPS59183434A (ja) 命令先取り制御方式
JPS6023378B2 (ja) 情報処理装置
JPS61170830A (ja) レジスタ参照方法
JP2895892B2 (ja) データ処理装置
JPS6146562A (ja) 配列要素の演算処理方式
JPH0432924A (ja) 最大値検出装置と最小値検出装置
JPS5896346A (ja) 階層型演算方式
JPH01149132A (ja) 並列データ処理制御方法
JPS61100835A (ja) 移動命令論理比較命令処理方式
JPS6347834A (ja) 先行制御方式