JPH04213727A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH04213727A
JPH04213727A JP40160390A JP40160390A JPH04213727A JP H04213727 A JPH04213727 A JP H04213727A JP 40160390 A JP40160390 A JP 40160390A JP 40160390 A JP40160390 A JP 40160390A JP H04213727 A JPH04213727 A JP H04213727A
Authority
JP
Japan
Prior art keywords
instruction
branch
unit
execution
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.)
Pending
Application number
JP40160390A
Other languages
English (en)
Inventor
Akifumi Nagao
彰文 長尾
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP40160390A priority Critical patent/JPH04213727A/ja
Publication of JPH04213727A publication Critical patent/JPH04213727A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は分岐処理を効率よく実
行する情報処理装置に関するものである。
【0002】
【従来の技術】近年、情報処理装置の実行速度は高周波
数での動作などによって改善が見られるが、動作周波数
の高速化は技術的に困難な点が多いため、周波数に依存
しない情報処理装置の高速化が求められている。以下に
従来の情報処理装置について説明する。
【0003】図9は従来の情報処理装置のブロック図を
示すものである。図9において、1は命令を格納してあ
る記憶部である。2は先行フェッチ部であり、アドレス
を記憶部1に出力し、そのアドレスに対応した命令群を
記憶部1よりフェッチする。3および4は先行フェッチ
部2より先行フェッチした命令群を受け取り、1命令ず
つアドレスの小さい命令から出力していく通常実行用バ
ッファ(以下、SQという)および分岐実行用バッファ
(以下、BQという)で、それぞれ4命令まで格納する
ことができる。SQ3とBQ4のどちらに先行フェッチ
した命令群を格納するかは前記先行フェッチ部2により
選択される。
【0004】5は分岐命令検知部であり、SQ3から出
力される命令が分岐命令であることを検知する。分岐命
令検知部5の出力である分岐命令検知信号は、分岐命令
を検知したときだけHIGHになり、分岐命令以外の命
令の時にはLOWである。前記先行フェッチ部2ではS
Q3からの命令と分岐命令検知信号とを用いて分岐命令
検知信号がLOWの時には先にフェッチした命令群のア
ドレスの次のアドレスから命令群を先行フェッチし、S
Q3に命令群を出力する。分岐命令検知信号がHIGH
の時には次に先行フェッチする命令群のアドレスは、S
Q3からの分岐命令によって指定された分岐先の命令群
のアドレスとなり、記憶部1より分岐先の命令群を読み
出してBQ4に格納する。
【0005】6は命令選択部で、SQ3とBQ4のどち
らから命令を取り出すかを決定し、命令実行部9に命令
を出力する。命令実行部9は、命令を実行し、分岐命令
において分岐条件が成立したかどうかを分岐条件成立信
号として出力する。分岐条件が成立した時にはHIGH
、成立しなかった時にはLOWである。この分岐条件成
立信号は、分岐命令後の先行フェッチする命令群のアド
レスを決定することにも用いられる。命令実行部9での
命令実行時間は命令の種類によらず一定時間であるとす
る。
【0006】以上のように構成された情報処理装置にお
いて、以下その動作について図10を参照しながら説明
していく。先行フェッチ部2は、各バッファ(SQ3と
BQ4)に入っている命令の数が2以下になると命令を
先行フェッチすることとする。ただし、分岐命令後では
、分岐条件成立信号によって条件の成立、不成立が確定
した後で必要なアドレスから必要な命令数だけフェッチ
する。始めは、各バッファ(SQ3とBQ4)ともに命
令を保持していない。先行フェッチ部2においてフェッ
チされた命令群(アドレスnからn+3)がSQ3に出
力され、アドレスnから実行が開始されるものとする。 アドレスn+2の命令が分岐命令、アドレスn+3の命
令がNOP命令であるとする。
【0007】始めにアドレスnの命令がSQ3より出力
される。分岐命令検知部5は、命令の内容が分岐命令で
ないため分岐命令検知信号はLOWである。命令選択部
6においてSQ3の命令が選択され、命令実行部9では
アドレスnの命令の実行が開始される。続いてアドレス
n+1の命令がSQ3より出力され、分岐命令検知部5
は命令の内容が分岐命令でないため分岐命令検知信号は
LOWである。命令選択部6においてSQ3の命令が選
択され、命令実行部9ではアドレスn+1の命令の実行
が開始される。ここで、SQ3の保持している命令数が
2になったので先行フェッチ部2はアドレスn+4から
2命令フェッチし、SQ3に入れる。次にSQ3から出
力されるのはアドレスn+2の命令であり、これは分岐
命令であるので分岐命令検知部5は分岐命令検知信号を
HIGHにする。
【0008】この時先行フェッチ部2は、分岐先アドレ
スをSQ3の命令から計算し、記憶部1より分岐先の命
令群をフェッチし、その命令群をBQ4に出力する。分
岐先のアドレスがmの場合には、アドレスmからm+3
の命令がBQ4に格納される。これと並行して命令選択
部6はSQ3よりアドレスn+2の命令を命令実行部9
に出力し、命令実行部9はアドレスn+2の命令すなわ
ち分岐命令の実行を開始する。命令選択部6は、このあ
とSQ3からアドレスn+3の命令すなわち遅延命令を
命令実行部9に出力する。この後分岐条件が成立したか
どうかが分岐条件成立信号によって知らされ、成立した
場合には次の命令をBQ4より取り出し、アドレスmか
ら命令実行部9に出力する。
【0009】先行フェッチ部2は、分岐条件が成立した
のでアドレスm+4の命令から4命令をフェッチしてそ
れをSQ3に出力する。命令選択部6は、アドレスmか
らm+3までをBQ4より取り出して命令実行部9へ送
り、アドレスm+4以降はSQ3から再度取り出し始め
、命令実行部9へ送る。以後、分岐命令が出現するまで
、SQ3より命令を取り出し、分岐命令によって以上説
明したような動作を繰り返す。
【0010】アドレスn+2の分岐命令で、分岐条件が
成立しなかった場合には、遅延命令を出力した後にSQ
3に格納されている命令数が2個となるため、先行フェ
ッチ部2においてアドレスn+6から2命令を記憶部1
よりフェッチしてSQ3に入れる。命令実行はアドレス
n+4,n+5と進んで行く。
【0011】
【発明が解決しようとする課題】しかしながら、上記の
従来の構成では、遅延命令がNOP命令の場合でも命令
実行部に遅延命令が出力されてしまう。一方、コンパイ
ラ等で作成されたプログラムでは、効率的に生成された
ものでも遅延命令はNOP命令であることが多いため、
分岐命令時には無駄な処理を行うことになりプログラム
実行時間の増大につながる。
【0012】この発明の目的は、分岐処理を効率よく実
行することができる情報処理装置を提供することである
【0013】
【課題を解決するための手段】請求項1記載の情報処理
装置は、分岐命令において分岐条件が成立すれば分岐命
令のすぐ次の命令(以下、遅延命令という)を実行した
後に分岐先に格納されている命令から実行を継続してい
き、分岐命令において分岐条件が成立しなかった場合に
は遅延命令を実行後遅延命令の次の命令から実行を継続
するパイプライン処理方式の情報処理装置であって、命
令を実行する命令実行部と、命令を格納してある記憶部
と、前記記憶部から命令群を読み出し先行フェッチする
先行フェッチ部と、先行フェッチした命令群を一時的に
格納しておく通常実行用バッファおよび分岐実行用バッ
ファと、前記通常実行用バッファに格納されている命令
の内容が分岐命令であることを検知する分岐命令検知部
と、前記通常実行用バッファに格納されている遅延命令
の内容がノーオペレーション命令(以下、NOP命令と
いう)であることを検知するNOP命令検知部と、前記
命令実行部での以前の分岐命令実行結果と前記分岐命令
検知部の検知結果および分岐命令の格納してあるアドレ
スを入力し、分岐命令において分岐条件が成立するか否
かを予測する分岐予測部と、前記分岐命令検知部の検知
信号と前記分岐予測部の予測信号と前記NOP命令検知
部の検知信号とを入力し、分岐命令の次の命令すなわち
遅延命令がNOP命令である場合にはNOP命令を取り
除いた後に分岐予測部の予測信号によって通常実行用バ
ッファと分岐実行用バッファの内容を選択して命令実行
部に命令を出力していく命令選択部とを備えている。
【0014】請求項2記載の情報処理装置は、分岐命令
において分岐条件が成立しなかった時に遅延命令を無効
化する機能(以下、アナル機能という)を分岐命令に付
加した場合に、請求項1に加えて分岐命令を検知したと
きに分岐命令がアナル機能を用いることを検知するアナ
ル検知部を備え、命令選択部においてアナル検知部の出
力をも入力し、分岐予測部が分岐しないと判定した場合
には遅延命令をとり除いて通常実行用バッファからの命
令を命令実行部に出力していくようにしている。
【0015】
【作用】請求項1記載の構成によれば、分岐命令に伴う
遅延命令がNOP命令である場合には、分岐予測部の予
測結果に応じ、分岐すると予測される場合には、命令選
択部が遅延命令を取り除いて分岐先の命令を命令実行部
に出力する。また分岐しないと予測される場合には、命
令選択部が遅延命令を取り除いて遅延命令の次の命令を
命令実行部に出力する。予測結果が外れたときは、実行
済みの命令を無効化し、命令選択部が正しい命令、つま
り遅延命令の次の命令もしくは分岐先の命令を命令実行
部に出力する。
【0016】請求項2記載の構成によれば、分岐命令が
アナル機能を用いることをアナル検知部が検知したとき
は、分岐予測部の予測結果に応じ、アナル機能によって
分岐命令の次の遅延命令が無効化されると予測される場
合には、命令選択部が遅延命令を取り除き、遅延命令の
次の命令を命令実行部に出力する。予測が外れたときは
、実行済みの命令を無効化し、命令選択部が遅延命令を
命令実行部に出力し(NOP命令でない場合)、つづい
て分岐先の命令を命令実行部に出力する。
【0017】
【実施例】以下、この発明の一実施例について、図面を
参照しながら説明する。図1はこの発明の第1の実施例
における情報処理装置のブロック図を示すものである。 図1において、1は命令を格納してある記憶部である。 2は先行フェッチ部であり、アドレスを記憶部1に出力
し、そのアドレスに対応した命令群を記憶部1よりフェ
ッチする。
【0018】3および4は先行フェッチ部2より先行フ
ェッチした命令群を受け取り、1命令ずつアドレスの小
さい命令から出力していく通常実行用バッファおよび分
岐実行用バッファで、それぞれ4命令まで格納すること
ができる。SQ3とBQ4のどちらに先行フェッチした
命令群を格納するかは前記先行フェッチ部2により選択
される。
【0019】5は分岐命令検知部であり、SQ3から出
力される命令が分岐命令であることを検知する。分岐命
令検知部5の出力である分岐命令検知信号は、分岐命令
を検知したときだけHIGHになり、分岐命令以外の命
令の時にはLOWである。前記先行フェッチ部2ではS
Q3から出力される命令と分岐命令検知信号を用いて分
岐命令検知信号がLOWの時には先にフェッチした命令
群のアドレスの次のアドレスから命令群を先行フェッチ
し、SQ3に命令群を出力する。分岐命令検知信号がH
IGHの時には、次に先行フェッチする命令群のアドレ
スはSQ3からの分岐命令から計算した分岐先の命令群
のアドレスとなり記憶部1より分岐先の命令群を読み出
してBQ4に格納する。
【0020】8はNOP命令検知部であり、SQ3から
出力される命令がNOP命令であることを検知する。N
OP命令検知部8の出力であるNOP命令検知信号は、
NOP命令を検知したときだけHIGHになり、NOP
命令以外の命令の時にはLOWである。7は分岐予測部
であり、分岐命令検知信号がHIGHになったときのア
ドレスを分岐命令のアドレスとして記憶し、その分岐命
令における以前の分岐条件の成立状態に基づいて次の分
岐命令の分岐条件が成立するかどうかを予測して分岐予
測信号を出力する。分岐予測信号は分岐すると予測した
ときにはHIGH、分岐しないと予測したときにはLO
Wになる。
【0021】6は命令選択部であり、SQ3とBQ4の
どちらから命令を取り出すかを決定し、命令実行部9に
命令を出力する。この命令選択部6において分岐命令検
知信号とNOP命令検知信号と分岐予測信号と実際に分
岐条件が成立したかどうかを示す信号とを入力し、NO
P命令検知信号がHIGHである場合には分岐予測信号
に従ってNOP命令を取り除いて命令実行部9に命令を
出力する。
【0022】命令実行部9は命令を実行し、分岐命令に
おいて分岐条件が成立したかどうかを分岐条件成立信号
として出力する。条件が成立した時にはHIGH、不成
立の時にはLOWになる。この分岐条件成立信号は先行
フェッチ部2と分岐予測部7に出力される。先行フェッ
チ部2では、分岐命令後に先行フェッチする命令群のア
ドレスを決定することに用いられる。また、分岐予測部
7では次の分岐予測の予測データとなる。命令実行部9
での命令実行時間は命令の種類によらず一定時間である
とする。
【0023】以上のように構成された情報処理装置にお
いて以下その動作を図2ないし図5を参照しながら説明
する。図2は分岐するとの予測が当たったときの動作説
明図であり、図3は分岐するとの予測が外れたときの動
作説明図であり、図4は分岐しないとの予測が当たった
ときの動作説明図であり、図5は分岐しないとの予測が
外れたときの動作説明図である。
【0024】分岐するとの予測が当たったとき(分岐予
測信号がHIGH、分岐条件成立信号がHIGH)の動
作を図2により説明する。先行フェッチ部2は、各バッ
ファ(SQ3とBQ4)に入っている命令の数が2以下
になると命令を先行フェッチし、バッファを満杯の状態
にするものとする。ただし、分岐命令後では、分岐条件
成立信号によって条件の成立、不成立が確定してから必
要なアドレスから必要な命令数だけフェッチする。今、
各バッファともにまったく命令を保持していないとする
【0025】先行フェッチ部2においてフェッチされた
命令群(アドレスnからn+3)がSQ3に出力され、
アドレスnから実行が開始されるものとする。アドレス
n+2の命令が分岐命令、アドレスn+3の命令がNO
P命令であるとする。始めにアドレスnの命令がSQ3
より出力される。分岐命令検知部5は命令の内容が分岐
命令でないため分岐命令検知信号はLOWである。命令
選択部6においてSQ3の命令が選択され、命令実行部
9ではアドレスnの命令の実行が開始される。
【0026】続いてアドレスn+1の命令がSQ3より
出力され、分岐命令検知部5は命令の内容が分岐命令で
ないため分岐命令検知信号はLOWである。命令選択部
6においてSQ3の命令が選択され、命令実行部9では
アドレスn+1の命令の実行が開始される。ここで、S
Q3の保持している命令数が2になったので先行フェッ
チ部2はアドレスn+4から2命令フェッチし、SQ3
に入れる。次にSQ3から出力されるのはアドレスn+
2の命令であり、これは分岐命令であるので分岐命令検
知部5は命令検知信号をHIGHにする。
【0027】この時先行フェッチ部2は、分岐先アドレ
スをSQ3の命令から計算し、記憶部1より分岐先の命
令群をフェッチし、その命令群をBQ4に出力する。分
岐先のアドレスがmの場合には、アドレスmからm+3
の命令がBQ4に格納される。これと並行して命令選択
部6はSQ3よりアドレスn+2の命令を命令実行部9
に出力し、命令実行部9はアドレスn+2の命令すなわ
ち分岐命令の実行を開始する。命令選択部6は、このあ
とアドレスn+3の命令すなわち遅延命令を出力せずに
、このあとBQ4からアドレスmの命令を出力し、命令
実行部9に出力する。この後分岐条件が成立したかどう
かが分岐条件成立信号によって知らされ、成立した場合
には次の命令をBQ4より取り出し、アドレスmから命
令実行部9に出力する。
【0028】先行フェッチ部2は、分岐条件が成立した
のでアドレスm+4の命令から4命令をフェッチしてそ
れをSQ3に出力する。命令選択部6は、アドレスmか
らm+3までをBQ4より取り出して命令実行部9へ送
り、アドレスm+4以降はSQ3から取り出し始め、命
令実行部9へ送る。以後、分岐命令が出現するまで、S
Q3より命令を取り出し、分岐命令によって以上説明し
たような動作を繰り返す。
【0029】分岐するとの予測が外れたとき(分岐予測
信号がHIGH、分岐条件成立信号がLOW)の動作を
図3により説明する。アドレスmの命令を実行するまで
は図2と同じである。アドレスn+2の分岐命令で、分
岐条件が成立しなかった場合には、アドレスmの命令の
実行が無効化され、次にアドレスn+4の命令が命令選
択部6から出力され、命令実行部9へ送られる。この後
にSQ3に格納されている命令数が1個となるため、先
行フェッチ部2においてアドレスn+6から3命令を記
憶部1よりフェッチしてSQ3に入れる。命令実行はア
ドレスn+5,n+6と進んで行く。
【0030】分岐しないとの予測が当たったとき(分岐
予測信号がLOW、分岐条件成立信号がLOW)の動作
を図4により説明する。アドレスn+2の命令(分岐命
令)を実行するまでは図2と同じであり、分岐命令検知
部5は命令検知信号をHIGHにする。命令選択部6か
らはこのあとアドレスn+3の命令すなわち遅延命令は
出力されずに、アドレスn+4の命令が出力され、命令
実行部9へ送られる。この後にSQ3に格納されている
命令数が1個となるため、先行フェッチ部2においてア
ドレスn+6から3命令を記憶部1よりフェッチしてS
Q3に入れる。命令実行はアドレスn+5,n+6と進
んで行く。
【0031】分岐しないとの予測が外れたとき(分岐予
測信号がLOW、分岐条件成立信号がHIGH)の動作
を図5により説明する。分岐条件成立信号が確定するま
では図4と同様である。この場合には、先に命令実行部
9に出力されたアドレスn+4の命令を無効化してBQ
4よりアドレスmの命令を命令実行部9に送る。同時に
先行フェッチ部2は、分岐条件が成立したのでアドレス
m+4の命令から4命令をフェッチしてそれをSQ3に
格納する。その後、命令選択部6はアドレスm+1から
m+3までをBQ4より取り出し、アドレスm+4以降
はSQ3から再度取り出し始める。
【0032】以後分岐命令が出現するまで、SQ3より
命令を取り出し、分岐命令によって以上説明したような
動作を繰り返す。図6はこの発明の第2の実施例のブロ
ック図である。図6において、1は命令を格納してある
記憶部、2は先行フェッチ部でありアドレスを記憶部1
に出力し、そのアドレスに対応した命令群を記憶部1よ
りフェッチする。3,4は先行フェッチ部2より先行フ
ェッチした命令群を受け取り、1命令ずつアドレスの小
さい命令から出力していくバッファで、4命令まで格納
することができる。これらバッファはそれぞれ、通常実
行用バッファ(以下SQ)と分岐実行用バッファ(以下
BQ)である。SQ3とBQ4のどちらのバッファに先
行フェッチした命令群を格納するかは前記先行フェッチ
部2により選択される。
【0033】5は分岐命令検知部でありSQ3から出力
される命令が分岐命令であることを検知する。分岐命令
検知部5の出力である分岐命令検知信号は分岐命令を検
知したときだけHIGHになり、分岐命令以外の命令の
時にはLOWである。前記先行フェッチ部2では、SQ
3からの命令と分岐命令検知信号とを用いて、分岐命令
検知信号がLOWの時には先にフェッチした命令群のア
ドレスの次のアドレスから命令群を先行フェッチし、S
Q3に命令群を出力する。分岐命令検知信号がHIGH
の時には、次に先行フェッチする命令群のアドレスはS
Q3からの分岐命令より計算した分岐先の命令群のアド
レスとなり記憶部1より分岐先の命令群を読み出してB
Q4に格納する。
【0034】8はNOP命令検知部であり、SQ3から
出力される命令がNOP命令であることを検知する。N
OP命令検知部8の出力であるNOP命令検知信号はN
OP命令を検知したときだけHIGHになり、NOP命
令以外の命令の時にはLOWである。10はアナル検知
部でありアナル検知信号を出力する。分岐命令にアナル
機能を使っている場合にはアナル検知信号がHIGHに
なり分岐命令以外の命令および分岐命令でアナル機能を
使っていないときにはLOWになる。
【0035】7は分岐予測部であり、分岐命令のアドレ
スとその分岐命令における以前の分岐条件の成立状態に
基づいて次の分岐命令の分岐条件が成立するかどうかを
予測し、分岐予測信号を出力する。分岐予測信号は、分
岐すると予測する場合にはHIGHになり、分岐しない
と予測する場合にはLOWになる。6は命令選択部であ
りSQ3とBQ4のどちらから命令を取り出すかを決定
し、命令実行部9に命令を出力する。また現在実行中の
命令の1つ前にSQ3より取り出した命令を記憶してお
く機能を持っている。この命令選択部6において分岐命
令検知信号とNOP命令検知信号とアナル検知信号と分
岐予測信号と実際に分岐条件が成立したかどうかを示す
信号とを入力し、NOP命令検知信号がHIGHである
場合には分岐予測信号に従ってNOP命令を取り除いて
命令実行部9に命令を出力する。またアナル検知信号が
HIGHのときには分岐予測信号が分岐しないと判断し
たときには遅延命令を取り除いて命令実行部9に命令を
出力する。
【0036】命令実行部9は命令を実行し、分岐命令に
おいて分岐条件が成立したかどうかを分岐条件成立信号
として出力する。分岐命令成立信号は分岐条件が成立し
た場合にはHIGH、成立しなかった場合にはLOWに
なる。この分岐条件成立信号は先行フェッチ部2と分岐
予測部7に出力される。先行フェッチ部2では分岐命令
後の先行フェッチする命令群のアドレスを決定すること
に用いられる。分岐予測部7では次の分岐予測の予測デ
ータとなる。命令実行部での命令実行時間は命令の種類
によらず一定時間であるとする。
【0037】以上のように構成された情報処理装置にお
いて、以下その動作を図7および図8を参照しながら説
明する。図7は分岐しないとの予測が当たったときの動
作説明図であり、図8は分岐しないとの予測が外れたと
きの動作説明図である。分岐しないとの予測が当たった
とき(分岐予測信号がLOW、分岐条件成立信号がLO
W)の動作を図7により説明する。
【0038】分岐命令におけるアナル機能は、分岐条件
が成立しなかった場合には遅延命令を無効化することを
言うので、分岐予測部7により分岐すると予測された時
および遅延命令がNOP命令である場合には第1の実施
例とまったく同じ動作をする。ここでは分岐予測部7が
分岐しないと予測した場合で遅延命令がNOP命令でな
い場合について説明する。
【0039】先行フェッチ部2は、各バッファ(SQ3
とBQ4)に入っている命令の数が2以下になると命令
を先行フェッチし、バッファ(SQ3とBQ4)を満杯
の状態にするものとする。ただし、分岐命令後では分岐
条件成立信号によって条件の成立、不成立が確定した後
で必要なアドレスから必要な命令数だけフェッチする。 今、各バッファ(SQ3とBQ4)ともにまったく命令
を保持していないとする。先行フェッチ部2においてフ
ェッチされた命令群(アドレスnからn+3)がSQ3
に出力され、アドレスnから実行が開始されるものとす
る。アドレスn+2の命令が分岐命令であり、アナル機
能を使っているとする。
【0040】始めにアドレスnの命令がSQ3より出力
される。分岐命令検知部5は命令の内容が分岐命令でな
いため分岐命令検知信号はLOWである。命令選択部6
においてSQ3の命令が選択され、命令実行部9ではア
ドレスnの命令の実行が開始される。続いてアドレスn
+1の命令がSQ3より出力され、分岐命令検知部5は
命令の内容が分岐命令でないため分岐命令検知信号はL
OWである。命令選択部6においてSQ3の命令が選択
され、命令実行部9ではアドレスn+1の命令の実行が
開始される。ここではSQ3の保持している命令数が2
になったので先行フェッチ部2はアドレスn+4から2
命令フェッチし、SQ3に入れる。次にSQ3から出力
されるのはアドレスn+2の命令であり、これは分岐命
令であるので分岐命令検知部5は命令検知信号をHIG
Hにする。同時にアナル検知部10は分岐命令にアナル
機能が使われているので、出力であるアナル検知信号は
HIGHになる。
【0041】この時先行フェッチ部2は分岐先アドレス
を命令から計算し、記憶部1より分岐先の命令群をフェ
ッチし、その命令群をBQ4に出力する。分岐先のアド
レスがmの場合には、アドレスmからm+3の命令がB
Q4に格納される。これと並行して命令選択部6は分岐
命令が検知されたことを記憶し、SQ3よりアドレスn
+2の命令を命令実行部7に出力し、命令実行部9はア
ドレスn+2の命令すなわち分岐命令の実行を開始する
【0042】次にSQ3よりアドレスn+3の命令が出
力されるが、命令選択部6はアナル検知信号がHIGH
で分岐予測信号がLOWで、分岐しないと予測する場合
には遅延命令を命令実行部9に出力しないため遅延命令
を命令選択部6内に記憶して、SQ3よりアドレスn+
4の命令を取り出し命令実行部9に出力し、命令実行部
9はアドレスn+4の実行を開始する。この後分岐条件
成立信号によって分岐条件が成立したかどうかが判明す
る。もしも分岐条件成立信号がLOWで分岐予測通り分
岐しなかった場合には先行フェッチ部2ではアドレスn
+6より4命令を先行フェッチしてSQ3に格納し、命
令選択部6はSQ3より命令を取り出してアドレスn+
5,n+6と実行していく。
【0043】分岐しないとの予測が外れたとき(分岐予
測信号がLOW、分岐条件成立信号がHIGH)の動作
を図8により説明する。分岐条件成立信号が確定するま
では図7と同様である。この場合には、すでに命令実行
部9に出力したアドレスn+4の命令を無効化し、命令
選択部6に記憶されているアドレスn+3の命令を命令
実行部9に出力する。ここで、先行フェッチ部2は、ア
ドレスm+4から4命令をフェッチしてSQ3に格納す
る。この後mからm+3まではBQ4より命令を取り出
して、m+4以降の命令はSQ3から取り出して命令を
実行していく。
【0044】以後分岐命令が出現するまで、SQ3より
命令を取り出し、分岐命令によって以上説明したような
動作を繰り返す。なお、第1および第2の実施例におい
て、SQ3,BQ4は4つの命令を格納できるとしたが
1つ以上の任意の数でもよい。また分岐命令検知部、N
OP検知部、アナル検知部の入力をSQ3の出力にした
が、SQ3内に格納されている任意の命令を検知対象と
してよい。
【0045】
【発明の効果】請求項1記載の情報処理装置によれば、
分岐命令に伴う遅延命令がNOP命令である場合には、
分岐予測部の予測結果に応じ、分岐すると予測される場
合には、命令選択部が遅延命令を取り除いて分岐先の命
令を命令実行部に出力し、分岐しないと予測される場合
には、命令選択部が遅延命令を取り除いて遅延命令の次
の命令を命令実行部に出力するので、分岐処理を効率よ
く実行することができる。
【0046】請求項2記載の情報処理装置によれば、分
岐命令がアナル機能を用いることをアナル検知部が検知
したときは、分岐予測部の予測結果に応じ、アナル機能
によって分岐命令の次の遅延命令が無効化されると予測
される場合には、命令選択部が遅延命令を取り除き、遅
延命令の次の命令を命令実行部に出力するので、分岐処
理を一層効率よく実行することができる。
【図面の簡単な説明】
【図1】この発明の第1の実施例のブロック図である。
【図2】この発明の第1の実施例における分岐するとの
予測が当たったときの動作説明図である。
【図3】この発明の第1の実施例における分岐するとの
予測が外れたときの動作説明図である。
【図4】この発明の第1の実施例における分岐しないと
の予測が当たったときの動作説明図である。
【図5】この発明の第1の実施例における分岐しないと
の予測が外れたときの動作説明図である。
【図6】この発明の第2の実施例のブロック図である。
【図7】この発明の第2の実施例における分岐しないと
の予測が当たったときの動作説明図である。
【図8】この発明の第2の実施例における分岐しないと
の予測が外れたときの動作説明図である。
【図9】従来の情報処理装置のブロック図である。
【図10】従来の情報処理装置における動作説明図であ
る。
【符号の説明】
1  記憶部 2  先行フェッチ部 3  通常実行用バッファ(SQ) 4  分岐実行用バッファ(BQ) 5  分岐命令検知部 6  命令選択部 7  命令予測部 8  NOP命令検知部 9  命令実行部 10  アナル検知部

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】  分岐命令において分岐条件が成立すれ
    ば分岐命令のすぐ次の命令(以下、遅延命令という)を
    実行した後に分岐先に格納されている命令から実行を継
    続していき、分岐命令において分岐条件が成立しなかっ
    た場合には遅延命令を実行後遅延命令の次の命令から実
    行を継続するパイプライン処理方式の情報処理装置であ
    って、命令を実行する命令実行部と、命令を格納してあ
    る記憶部と、前記記憶部から命令群を読み出し先行フェ
    ッチする先行フェッチ部と、先行フェッチした命令群を
    一時的に格納しておく通常実行用バッファおよび分岐実
    行用バッファと、前記通常実行用バッファに格納されて
    いる命令の内容が分岐命令であることを検知する分岐命
    令検知部と、前記通常実行用バッファに格納されている
    遅延命令の内容がノーオペレーション命令(以下、NO
    P命令という)であることを検知するNOP命令検知部
    と、前記命令実行部での以前の分岐命令実行結果と前記
    分岐命令検知部の検知結果および分岐命令の格納してあ
    るアドレスを入力し、分岐命令において分岐条件が成立
    するか否かを予測する分岐予測部と、前記分岐命令検知
    部の検知信号と前記分岐予測部の予測信号と前記NOP
    命令検知部の検知信号とを入力し、分岐命令の次の命令
    すなわち遅延命令がNOP命令である場合にはNOP命
    令を取り除いた後に分岐予測部の予測信号によって通常
    実行用バッファと分岐実行用バッファの内容を選択して
    命令実行部に命令を出力していく命令選択部とを備えた
    情報処理装置。
  2. 【請求項2】  分岐命令において分岐条件が成立しな
    かった時に遅延命令を無効化する機能(以下、アナル機
    能という)を分岐命令に付加した場合に、請求項1に加
    えて分岐命令を検知したときに分岐命令がアナル機能を
    用いることを検知するアナル検知部を備え、命令選択部
    においてアナル検知部の出力をも入力し、分岐予測部が
    分岐しないと判定した場合には遅延命令をとり除いて通
    常実行用バッファからの命令を命令実行部に出力してい
    く情報処理装置。
JP40160390A 1990-12-12 1990-12-12 情報処理装置 Pending JPH04213727A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP40160390A JPH04213727A (ja) 1990-12-12 1990-12-12 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP40160390A JPH04213727A (ja) 1990-12-12 1990-12-12 情報処理装置

Publications (1)

Publication Number Publication Date
JPH04213727A true JPH04213727A (ja) 1992-08-04

Family

ID=18511437

Family Applications (1)

Application Number Title Priority Date Filing Date
JP40160390A Pending JPH04213727A (ja) 1990-12-12 1990-12-12 情報処理装置

Country Status (1)

Country Link
JP (1) JPH04213727A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7603545B2 (en) 2002-06-28 2009-10-13 Fujitsu Limited Instruction control method and processor to process instructions by out-of-order processing using delay instructions for branching
US7765387B2 (en) 2002-06-28 2010-07-27 Fujitsu Limited Program counter control method and processor thereof for controlling simultaneous execution of a plurality of instructions including branch instructions using a branch prediction mechanism and a delay instruction for branching

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7603545B2 (en) 2002-06-28 2009-10-13 Fujitsu Limited Instruction control method and processor to process instructions by out-of-order processing using delay instructions for branching
US7765387B2 (en) 2002-06-28 2010-07-27 Fujitsu Limited Program counter control method and processor thereof for controlling simultaneous execution of a plurality of instructions including branch instructions using a branch prediction mechanism and a delay instruction for branching

Similar Documents

Publication Publication Date Title
US4858104A (en) Preceding instruction address based branch prediction in a pipelined processor
US7047399B2 (en) Computer system and method for fetching, decoding and executing instructions
JPH04213727A (ja) 情報処理装置
JPS5991551A (ja) 分岐先アドレス予測を行なう命令先取り装置
JP2508021B2 (ja) デ−タ処理装置
JP4092112B2 (ja) 演算処理装置
JP3493110B2 (ja) 高速分岐処理装置
JPS5952349A (ja) 命令先取制御装置
KR20010022065A (ko) 조건부 점프의 취급에 적용된 처리기 및 방법
JPH0991139A (ja) 情報処理装置
JPS6344244A (ja) 情報処理装置
JPH06301538A (ja) 条件分岐命令処理装置
JPS5894037A (ja) 命令の前処理制御装置
JPH05216715A (ja) 関数コール・リターン検出方式
JPH06161750A (ja) 命令フェッチ制御方法及び命令処理装置
JPH05250160A (ja) バッファ制御回路
JPH0235525A (ja) 命令フェッチ制御方法
JPH06124206A (ja) 分岐命令予測処理装置及びその処理方法
JPS6277648A (ja) 命令読出し制御方法
JPS63221428A (ja) デ−タ処理装置
JPH06168120A (ja) 命令先取り装置
JPS6373432A (ja) 情報処理装置
JPH0553807A (ja) 条件分岐命令先行制御方式
JPH04158444A (ja) 情報処理装置
JPH08314720A (ja) 分岐制御システム