JPH0490027A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH0490027A
JPH0490027A JP20648790A JP20648790A JPH0490027A JP H0490027 A JPH0490027 A JP H0490027A JP 20648790 A JP20648790 A JP 20648790A JP 20648790 A JP20648790 A JP 20648790A JP H0490027 A JPH0490027 A JP H0490027A
Authority
JP
Japan
Prior art keywords
instruction
buffer
branch
branch destination
group
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.)
Pending
Application number
JP20648790A
Other languages
English (en)
Inventor
Hisayoshi Kato
久佳 加藤
Katsumi Hayashida
克己 林田
Nobuyuki Shimura
志村 伸之
Masahiko Tagami
田上 正彦
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
Hitachi Computer Engineering Co Ltd
Original Assignee
Hitachi Ltd
Hitachi Computer Engineering Co 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, Hitachi Computer Engineering Co Ltd filed Critical Hitachi Ltd
Priority to JP20648790A priority Critical patent/JPH0490027A/ja
Publication of JPH0490027A publication Critical patent/JPH0490027A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野] 本発明は情報処理装置に係り、特に命令先読み制御の情
報処理装置において、主記憶装置などから先読みした命
令群をスタックする命令バッファを有効に利用すること
により、応答の遅い主記憶装置などへの命令アクセス要
求を少なくする技術に関する。
〔従来の技術〕
高速処理を目的とした情報処理装置では、主記憶装置な
どから命令群を次々に先読みして命令バッファにスタッ
クしておき、該命令バッファから命令レジスタへの命令
の設定、解読、実行などが所謂パイプラインで処理され
る。
一般に命令バッファは、分岐判定時の分岐不成立側スト
リームと分岐成立側ストリームとで分けて使われ、主記
憶装置などから現走行ストリーム(分岐不成立側ストリ
ーム)の命令群を次々に読み出して一方の命令バッファ
にスタックし、それから命令を切り出して命令レジスタ
にセットし、該命令が分岐命令であると解読されると、
主記憶装置などから、分岐先ストリームの命令群を読み
出して他方の命令バッファにスタックして分岐判定を待
ち、分岐判定が成立すると、現走行ストリームが切り替
わり、その後はこの他方の命令バッファから命令を切り
出して命令レジスタにセットしていく。この場合、従来
技術では、分岐成立により現走行ストリームが切り替わ
ると、それまで現走行ストリーム側だった分岐不成立側
の命令バッファの命令群は二度と使われることはなかっ
た。
又、分岐命令により分岐成立側のストリームに用意され
た命令バッファの命令群は、分岐不成立した場合も二度
使われることはなかった。
なお、この種の命令先読み制御の情報処理装置に関連の
ある公知文献としては、例えば特開昭55−82357
号公報が挙げられる。
〔発明が解決しようとする課題〕
上記従来技術は、分岐命令の飛び先命令がすでに命令バ
ッファにある場合のことを考慮しておらず、分岐命令の
解読に伴い無駄な主記憶装置なとへの命令読出し要求を
出しており、パイプライン処理している時の演算処理ス
テージからの主記憶装置などへのアクセス要求が、この
無駄な命令読み出し要求と競合して、演算処理ステージ
からのアクセス要求が待され、性能低下につながるとい
う問題があった。
本発明の目的は、命令バッファにすでに分岐先命令や後
続の命令群がある場合、それを有効に使うことで、主記
憶装置などへの無駄な命令読出し要求を出さず、演算処
理ステージからのアクセス要求との競合を軽減して性能
向上をはかることにある。
〔課題を解決するための手段〕
上記目的を達成するために、請求項(1)及び(2)は
、記憶装置から先読みして命令バッファに保持されてい
る命令群のアドレスを登録するアドレス登録手段と、分
岐命令を解読した場合、その分岐先アドレスにより前記
アドレス登録手段を検索し、前記命令バッファに分岐先
命令が保持されていることを検知すると、当該分岐先命
令あるいは当該分岐先命令と後続の命令群の記憶装置か
らの先読みを省略する制御手段とを設けたことを特徴と
する 請求項(3)は、現走行ストリームの命令群を保持する
命令バッファに分岐先命令が保持されている場合は、そ
の命令バッファ側の内容を分岐先ストリームの命令群を
保持する命令バッファ側に転送した後、当該分岐先命令
以降あるいは当該分岐先命令とその後続の命令群以降の
命令群を記憶装置から読み出し、該分岐先ストリームの
命令バッファに送ることを特徴とする 請求項(4)は、命令バッファに保持する命令群を可変
とすることを特徴とする。
〔作 用〕
分岐命令を解読し、その分岐先命令が既に命令バッファ
にあると、該分岐先命令あるいはそれに続く命令群以降
の命令群を記憶装置から読み出し、命令バッファ内の該
分岐先命令あるいはそれに続く命令群の後にスタックす
る。分岐先成立時には、ストリームを切換えると同時に
、該命令バッファ内の既にある分岐先命令に読出しポイ
ンタを合せ。
命令レジスタへ命令を切り出す。これにより、主記憶装
置などへ無駄な命令読出し要求を出さないですむ。
〔実施例] 以下、本発明の一実施例を第1図乃至第3図により説明
する。
第1図は本発明の一実施例のブロック図を示したもので
ある。図中、101は命令及びデータを記憶している主
記憶装置である。本実施例では、1つのブロックは8バ
イトからなり、主記憶装置101から命令がブロック単
位(即ち、8バイトの命令群)に読み出されるとする。
102及びlO3は主記憶装置101から読み出された
命令群をストリームごとにスタックする命令バッファで
あり、ここではそれぞれ4つのブロックからなるとする
。即ち、命令バッファ102,103には、それぞれス
トリームごとに、1つのブロックが8バイトで4つのブ
ロックの命令群がスタック可能である。112は命令バ
ッファ102,103にスタックされた命令群について
、ブロック対応にそのブロックの先頭アドレスを登録す
るブロック先頭アドレス登録バッファである。117は
命令バッファ102,103のブロック群の使用可/不
可を制御するモードレジスタである。該モードレジスタ
117は2ビツトよりなり、例えば′OO″の場合、命
令バッファ102,103のブロックOのみ使用可、′
11”の場合、ブロックO〜3が全て使用可を示す。
104及び105は命令バッファ102,1.03から
それぞれ命令を切り出すアライナ、113は該アライナ
104,105に命令の切出しポイントを指示するポイ
ント制御回路である。106はアライナ104,105
で切り出された命令がセットされる命令レジスタ、10
7は分岐命令の分岐先アドレスを計算するアドレス加算
器、108は命令を解読する命令デコーダである。10
9はブロック先頭アドレス登録バッファ112を検索し
、アビレス加算器107の出力と比較する検索回路であ
る。110は分岐命令を実行し、分岐の成立/不成立を
判定する分岐判定回路である。
IIIは全体の制御回路、114〜116はセレクタで
ある。
以下に第1図の動作を説明する。ここで命令バッファ1
02,103はそれぞれ4つのブロック0〜3が全て使
用可とし、命令バッファ102を0ストリーム側、命令
バッファ103を1ストリーム側とする。
今、Oストリーム側の命令バッファ102を分岐不成立
側とすると、該命令バッファ102にはセレクタ115
を通して次々に8バイトの命令群をブロックごとに主記
憶装置101から読み出してスタックされる。それと同
時に、ブロック対応にそのブロックの先頭アドレスがブ
ロック先頭アドレス登録バッファ112に登録される。
この主記憶装置101への読出し要求、セレクタ115
の制御、ブロック先頭アドレス登録バッファ112への
アドレス登録制御は制御回路111がおこなう。命令バ
ッファ102にスタックされた命令群からポイント制御
回路113により示されるポイントの命令がアライナ1
04を通して命令レジスタ106ヘセツトされ、これが
命令デコーダ1o8におくられて解読される。そして、
制御回路111によりポイント制御回路113が更新さ
れ、命令バッファ102から命令レジスタ106へ次の
命令がセットされる。これを繰返し、命令バッファ10
2の1つのブロックの命令がすべて命令レジスタ106
にセットされると、制御回路111から主記憶装置10
1へ読出し要求が出され、ブロック先頭アドレス登録バ
ッファ112に現在登録済の4つのブロックに続くブロ
ックの命令群が主記憶装置101がら読み出され、命令
バッファ102の処理済ブロックに新たにセットされる
そして、このブロックの先頭アドレスが、ブロック先頭
アドレス登録バッファ112の上記命令バッファ102
における当該ブロックに対応したブロックに登録される
以上の動作を繰り返しおこない、命令レジスタ106に
分岐命令がセットされ、命令デコーダ1o8で分岐命令
が解読された場合、レジスタ制御回路111は、分岐命
令の分岐先アドレスをアドレス加算器107で計算せし
め、その結果を使って検索回路109でブロック先頭ア
ドレス登録バッファ112を検索して、分岐先命令が命
令バッファ102,103に登録されているが否かを調
べる。登録されていない場合は、従来どおり、主記憶装
置101に制御回路111から読み込み要求を出して、
1ストリーム側の命令バッファ103へ分岐先命令群を
1ブロツクずつ次々とスタックする。その後、分岐判定
回路110で分岐が成立しなければ、○ストリーム側の
命令バッファ102を使用して、いままでどおりの動作
を繰返し、分岐が成立すれば、セレクタ114はOスト
リーム側から1ストリーム側に期変えられ、命令バッフ
ァ103の命令群から、ポイント制御回路113により
示されるポイントの命令が次々にアライナ105を通っ
て命令レジスタ106ヘセツトされ、命令デコーダ10
8で解読される。この分岐成立の場合、今度は1ストリ
ーム側の命令バッファ103が分岐不成立側として使わ
れるようになり、今までOストリーム側の命令バッファ
102でおこなわれた動作が次の分岐成立まで繰返され
る。
このようにして、1ストリーム側の命令バッファ103
が使われている時、命命デコーダ108で分岐命令が解
読され、検索回路109での検索結果、分岐先命令が、
この現在分岐不成立側として使っているlストリーム側
の命令バッファ103にすでに登録されている場合、制
御回路111は、命令バッファ103の各ブロックの内
容をセレクタ115を通してOストリーム側の命令バッ
ファ102の対応するブロックに転送し、同時に、それ
らに対応するブロック先頭アドレスを、ブロック先頭ア
ドレス登録バッファ112内の命令バッファ102対応
の各ブロックにセットし直す。
そして、制御回路111は主記憶装置101に読出し要
求を出し、命令バッファ103から命令バッファ102
へ転送した分岐成立時に使う命令群の後続の命令群を読
出して命令バッファ102へ格納する。
第2図は、lストリーム側(現在の分岐不成立側)の命
令バッファ103に分岐先命令があって、該命令バッフ
ァ103の内容をOストリーム側(分岐成立時に使う側
)の命令バッファ102へ転送し、その後、主記憶装置
101にどのような読出し要求を出し、主記憶装置10
1からの命令群を命令バッファ102のどのブロックか
ら格納するかを示したものである。
今、分岐命令が解読された時、lストリーム側の命令バ
ッファ103のブロックO〜3に対応する各ブロック先
頭アドレスは、第2図(a)の如くであったとする。こ
れは、命令バッファ103のブロック1,2.3には、
それぞれ108〜115番地、116〜123番地、1
24〜131番地の命令が格納され、さらにブロック0
には、次の132〜139番地の命令が格納されている
ことを示している。「ム」印は解読された分岐命令の所
、「△」印は検索された分岐先命令の所である。このl
ストリーム側の命令バッファ103の内容をOストリー
ム側の命令バッファ102に転送すると、該命令バッフ
ァ102の各ブロックとブロック先頭アドレス登録バッ
ファ112の登録アドレスの対応は、第2図(b)のよ
うになる。
従って、制御回路111は、分岐成立時に使う側である
命令バッファ102について、分岐先命令のあるブロッ
ク3とそれに続くブロック○を残して、主記憶装置10
1に140番地からの8バイト、さらに148番地から
の8バイトの読出し要求を次々に出し、ブロック1、ブ
ロック2(第2図(b)の斜線部分)に140番地以降
の命令群をスタックする。同時に、ブロック先頭アドレ
ス登録バッファ112の該当ブロックも更新する。
第2図(C)は、更新後の命令バッファ102の各ブロ
ックとブロック先頭アドレス登録バッファ112の登録
アドレスの対応関係を示している。
これにより、分岐成立時に使う命令群が命令バッファ1
02にセットでき、以後は分岐判定を待つことになる。
そして、分岐判定の結果、分岐不成立の場合は、第2図
(a)の1ストリーム側の命令バッファ1030[ムJ
印以降の命令が引き続いて使われ、分岐成立の場合は、
0ストリーム側の命令バッファ102に切り変わり、第
2図(c)の「△」印の所の命令(分岐先命令)から使
われることになる。
なお、命令バッファ103から命令バッファlO2へ命
令群がすべて転送される前に、分岐成立の判定が出た場
合には、この命令バッファ間の命令群転送と並行して命
令レジスタ106へ分岐先命令をセットするようにすれ
ばよい。
次に、1ストリーム側(分岐不成立側)の命令バッファ
103が使われている時、分岐命令が解読され1分岐先
命令がOストリーム側(分岐成立時に使う側)の命令バ
ッファ102にすでに登録されている場合について、第
3図により説明する。
第3図(a)は、■ストリーム側の命令バッファ103
の各ブロックとブロック先頭アドレス登録バッファ11
2の登録アドレスの対応を示したもので、解読された分
岐命令の所を「ム」印で示す。これは第2図(a)と同
じである。この時、Oストリーム側の命令バッファ10
2の各ブロックとブロック先頭アドレス登録バッファ1
12の登録アドレスとの対応は第3図(b)の如くで、
該命令バッファ102のブロック3の「△」印の所に分
岐先命令がすでに登録されているとする。
この場合、命令バッファ間の命令群の転送はなく、制御
回路111は、分岐成立時に使う側である命令バッファ
102について、分岐先命令のあるブロック3とそれに
続くブロックOを残して、主記憶装置101に240番
地からの8バイト、さらに248番地からの8バイトの
読出し要求を次々に出し、ブロックl、ブロック2(第
3図(b)の斜線部分)に240番地以降の命令群をス
タックする。同時に、ブロック先頭アドレス登録バッフ
ァ112の該当ブロックも更新する。第3図(C)は、
更新後の命令バッファ102の各ブロックとブロック先
頭アドレス登録バッファ112の登録アドレスの対応関
係である。
これにより、分岐成立時に使う命令群が命令バッファ1
02にセットでき、その後、分岐判定を待つことになる
。分岐判定後の動作は第2図のケースと同様であるので
説明を省略する。
なお、分岐先命令が分岐成立側の命令バッファと分岐不
成立側の命令バッファの両方にある場合は、制御回路1
11は、分岐先命令のブロックにつづく命令群を登録し
ているブロック数の多い方を、分岐成立時に使う側の命
令バッファとして処理する。両方とも同じブロック数の
場合は命令バッファ間の転送をしないですむ側を分岐成
立側の命令バッファとして処理する。
さらに、モードレジスタ117の値を変えることにより
、命令バッファ102,103の各ストリームのブロッ
クの数を変えることができる。この場合、ブロック先頭
アドレスバッファ112も命令バッファ102,103
の使用するブロックに対応して同様に変化させる。
また、第1図の実施例では、主記憶装置からブロックご
とに命令群を読み出すとしたが、主記憶装置の写しを保
持しているバッファメモリやワークメモリなどの所謂キ
ャッシュメモリを対象に命令群を読み出し、命令バッフ
ァにスタックする場合も同様に適用可能である。
[発明の効果] 本発明によれば、分岐命令の分岐先命令が命令バッファ
内にすでにある場合、記憶装置へ無駄な命令読出し要求
を出さずにすみ、また、分岐成立時、記憶装置からの応
答を待たずに、命令レジスタへ分岐先命令をセットでき
る。さらに、パイプライン処理している演算ステージと
の記憶装置への要求競合も少なくなり、データ処理性能
の向上に効果がある。
また、分岐不成立ストリーム側と分岐成立ストリーム側
の命令バッファ間にデータ転送バスをもうけ、分岐先命
令が分岐成立時で使う命令バッファ側にない場合、それ
に分岐先命令のある命令バッファよりブロック転送する
ことにより、命令バッファ内の命令群の有効利用がある
さらに、命令バッファに保持する命令群(ブロック群)
を可変にすることにより、汎用性が増し、種々のシステ
ム構成に適用可能になる。
【図面の簡単な説明】
第1図は本発明の一実施例のブロック図、第2図は分岐
不成立側ストリーム用命令バッファに分岐先命令があっ
てそれを分岐成立時に使う命令バッファに転送して主記
憶装置へとの部分を要求するかを表わした図、第3図は
分岐成立時に使う命令バッファに分岐先命令があって主
記憶装置へどの部分を要求するかを表わした図である。 l○1・・・主記憶装置、 102.103・・・命令バッファ、 104.105・・・アライナ− 106・・・命令レジスタ、 107・・・アドレス加算器、 108・・・命令デコーダ、  109・・・検索回路
、110・・・分岐判定回路、  111・・・制御回
路、112・・・ブロック先頭アドレス登録バッファ、
113・・・ポイント制御回路、 114.115,116・・・セレクタ、第1 第2図 第3 (リ ム フ゛ロッノ晃、シ9 71’+2懐11’77112θ0000r32000
001400000Crt4800CX)0124Δ

Claims (4)

    【特許請求の範囲】
  1. (1)記憶装置から命令群を先読みして命令バッファに
    保持し、該命令バッファから命令を切り出して命令レジ
    スタに設定し、それを解読し実行する命令先読み制御の
    情報処理装置において、前記命令バッファに保持されて
    いる命令群のアドレスを登録するアドレス登録手段と、 分岐命令を解読した場合、その分岐先アドレスにより前
    記アドレス登録手段を検索し、前記命令バッファに分岐
    先命令が保持されていることを検知すると、当該分岐先
    命令の記憶装置からの先読みを省略する制御手段とを有
    することを特徴とする情報処理装置。
  2. (2)前記制御手段は、前記命令バッファに分岐先命令
    及びその後続の命令群が保持されている場合には、当該
    分岐先命令及びその後続の命令群の記憶装置からの先読
    みを省略することを特徴とする請求項(1)記載の情報
    処理装置。
  3. (3)前記命令バッファは、現走行ストリームの命令群
    を保持する第1の命令バッファと、分岐先ストリームの
    命令群を保持する第2の命令バッファとからなり、 前記制御手段は、前記第1の命令バッファに分岐先命令
    が保持されていることを検知すると、該第1の命令バッ
    ファの内容を前記第2の命令バッファに転送した後、当
    該分岐先命令以降の命令群あるいは当該分岐先命令とそ
    の後続の命令群以降の命令群を記憶装置から読み出して
    、該第2の命令バッファに送り、前記第2の命令バッフ
    ァに分岐先命令が保持されていることを検知すると、当
    該分岐先命令以降の命令群あるいは当該分岐先命令とそ
    の後続の命令群以降の命令群を記憶装置から読み出して
    直接該第2の命令バッファに送ることを特徴とする請求
    項(1)あるいは(2)記載の情報処理装置。
  4. (4)前記命令バッファに保持する命令群は可変である
    ことを特徴とする請求項(1)、(2)あるいは(3)
    記載の情報処理装置。
JP20648790A 1990-08-03 1990-08-03 情報処理装置 Pending JPH0490027A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP20648790A JPH0490027A (ja) 1990-08-03 1990-08-03 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20648790A JPH0490027A (ja) 1990-08-03 1990-08-03 情報処理装置

Publications (1)

Publication Number Publication Date
JPH0490027A true JPH0490027A (ja) 1992-03-24

Family

ID=16524190

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20648790A Pending JPH0490027A (ja) 1990-08-03 1990-08-03 情報処理装置

Country Status (1)

Country Link
JP (1) JPH0490027A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006227777A (ja) * 2005-02-16 2006-08-31 Renesas Technology Corp データ処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006227777A (ja) * 2005-02-16 2006-08-31 Renesas Technology Corp データ処理装置
JP4737592B2 (ja) * 2005-02-16 2011-08-03 ルネサスエレクトロニクス株式会社 データ処理装置

Similar Documents

Publication Publication Date Title
EP0180725B1 (en) Instruction prefetch operation for branch instructions
JPH063584B2 (ja) 情報処理装置
JPH0490027A (ja) 情報処理装置
JPS63172343A (ja) 命令先取り方式
EP0292188A2 (en) Cache system
JPS6022376B2 (ja) キャッシュメモリ制御装置
JPH0326862B2 (ja)
JPH0552539B2 (ja)
JP3013996B2 (ja) 情報処理装置
JP2687765B2 (ja) 分岐予測方式
JPH0248733A (ja) 情報処理装置
US8117383B2 (en) Hardware accelerator based method and device for string searching
JPS63136229A (ja) 命令取出し装置
JPH10507550A (ja) メモリ・データを処理する方法と装置及びこの装置を含む通信装置
JPS59218692A (ja) ロジカルバツフア記憶制御方式
JPH10111798A (ja) 情報処理装置
JPS59158442A (ja) 命令読出し制御方法
JPS5991554A (ja) 分岐方向予測を行なう命令先取り装置
JPS6057440A (ja) 情報処理装置
JPH01193938A (ja) 命令先読み装置
JPS60118932A (ja) 命令再先取り制御方式
JPH04266140A (ja) アドレス変換バッファ装置
JPH02259945A (ja) ストア処理方式
JPH08286914A (ja) メモリ制御装置
JPH04167026A (ja) 分岐制御装置