JPH06230968A - 分岐制御装置 - Google Patents

分岐制御装置

Info

Publication number
JPH06230968A
JPH06230968A JP3607593A JP3607593A JPH06230968A JP H06230968 A JPH06230968 A JP H06230968A JP 3607593 A JP3607593 A JP 3607593A JP 3607593 A JP3607593 A JP 3607593A JP H06230968 A JPH06230968 A JP H06230968A
Authority
JP
Japan
Prior art keywords
instruction
branch
branch destination
read
register
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
JP3607593A
Other languages
English (en)
Inventor
Atsushi Kawai
淳 河井
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP3607593A priority Critical patent/JPH06230968A/ja
Publication of JPH06230968A publication Critical patent/JPH06230968A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【目的】 条件に応じた分岐命令が存在するようなプロ
グラムを実行する場合において、効率的なパイプライン
処理を行い、実行時間の短縮を図る。 【構成】 分岐先テーブル6に分岐命令の命令アドレス
と対応させて分岐先命令コードを格納しておく。プログ
ラムシーケンサ1の発生する命令アドレス1Aによりプ
ログラムメモリ2から読み出された命令コード2Aは第
2命令レジスタ14に一時格納され、分岐先テーブル6
から読み出された分岐先命令コードは第1命令レジスタ
13に一時格納される。セレクタ15は命令レジスタ1
3、14の何れか一方の出力を選択して命令デコーダ4
に向け供給する。これにより、分岐先命令をプログラム
メモリ2から読み出すための読み出しフェイズを不要に
し、タイミングのずれなしにパイプライン処理を実行で
きる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、所定の条件に応じて分
岐を行う分岐命令を含むプログラムをパイプライン方式
で実行するコンピュータにおける分岐制御装置に関す
る。
【0002】
【従来の技術】コンピュータプログラムには、プログラ
ムメモリから順に読み出される命令をそのままシーケン
シャルに実行する他、一定の条件に従って他の命令に移
る分岐命令等が含まれる。一方、プログラムメモリから
読み出された命令を実行するためには、その命令を読み
出し、デコードし、実行し、実行結果を格納するといっ
た一定の手順が必要になる。これらの処理はプログラム
の実行クロックに同期して実行される。また、1個の命
令には数クロック分の実行時間が必要となる。
【0003】しかしながら、1個の命令の実行が完了し
た後、次の命令を読み出すような処理を行っていては、
プログラムの処理の高速化を図ることができない。そこ
で、命令を順次呼び出し各命令の処理をそれぞれ並行し
て進め、演算処理速度を速めるパイプライン処理が採用
されている。このパイプライン処理においては、各命令
が常にシーケンシャルに実行されれば支障はないが、分
岐命令が存在する場合、直前の命令の実行結果により次
にどの命令を実行するか条件が異なってくる。従って、
分岐命令が検出されるたびにパイプライン処理を一時停
止することも考えられる。しかしながら、直前の命令の
処理完了まで次の命令の処理を待っていては分岐処理の
多いプログラムの実行速度向上が図れない。このために
分岐が実行されると予測して、予め分岐命令の処理を行
う方法も開発されている(特開昭59−91551号公
報)。
【0004】図2には、このような従来の技術を説明す
るための分岐制御装置ブロック図を示す。この装置に
は、プログラムシーケンサ1、プログラムメモリ2、命
令レジスタ3、命令デコーダ4、命令実行部5、分岐先
テーブル6、選択回路7、ラッチ8及びアンドゲート9
が設けられている。プログラムシーケンサ1はアドレス
カウンタ等から構成され、プログラムメモリ2に格納さ
れた命令の命令アドレス7Aを生成する回路である。命
令レジスタ3は、プログラムメモリ2から読み出された
命令コード2Aを一時格納するためのレジスタである。
命令デコーダ4は命令レジスタ3を介して入力した命令
コード2Aを解読し、命令実行部5に供給するための回
路である。命令実行部5は、命令デコーダ4の出力4A
によって一定の演算処理を行うための回路から構成され
る。なお、命令実行部5からは、分岐命令が実行された
場合、その状態をプログラムシーケンサ1に伝えるため
の状態信号5Aが出力するよう構成されている。
【0005】また分岐先テーブル6は、分岐命令の先行
呼び出しを行うために、分岐命令の分岐アドレスとその
分岐命令による分岐先の命令アドレスとを対応付けて格
納するためのテーブルメモリから構成される。即ち、こ
の分岐先テーブル6には、有効ビットを格納する有効ビ
ット部6−1と、命令アドレスを格納する命令アドレス
部6−2と、分岐命令アドレスを格納する分岐先命令ア
ドレス部6−3が設けられている。命令アドレス部6−
2は、分岐命令のアドレスを格納する部分で、分岐先命
令アドレス部6−3はその分岐命令による分岐先の命令
アドレスを格納する部分である。有効ビット部6−1
は、このようなテーブルのデータがそれぞれ有効かどう
かを示すためのフラグを格納する部分である。分岐先テ
ーブル6には、このような命令アドレスと分岐先命令ア
ドレスとの組み合せが所定の数だけ格納される。
【0006】ラッチ8は、プログラムシーケンサ1から
読み出された命令アドレスを一時的に保持し、分岐先テ
ーブル6に供給するためのレジスタである。選択回路7
は、プログラムシーケンサ1から読み出された命令アド
レス1Aと、分岐先テーブル6から読み出された分岐先
命令アドレス6Aの何れか一方を選択して、プログラム
メモリ2に供給するための回路である。なおこの選択
は、分岐先テーブル6の有効ビット部6−1と命令アド
レス部6−2の出力を取り込むアンドゲート9の出力に
よって制御される。即ち、このアンドゲートは、分岐先
テーブル6にプログラムシーケンサ1から読み出された
分岐命令の命令アドレスが格納されており、更にそのデ
ータが有効であった場合に選択回路7を制御し、分岐先
テーブル6の出力する分岐先命令アドレス6Aをプログ
ラムメモリ2に向け出力するよう動作する。それ以外の
場合、プログラムシーケンサ1の出力が選択回路7を通
じてプログラムメモリ2に出力される構成となってい
る。
【0007】また、この回路は、クロック(CLK)1
1により制御され、このクロックはプログラムシーケン
サ1とラッチ8と命令レジスタ3及び命令実行部5に供
給されるよう構成されている。なお、プログラムシーケ
ンサ1には、命令レジスタ3の出力する分岐先オフセッ
トアドレス3Aが入力するよう構成されている。この信
号は、分岐先テーブル6に命令アドレスが格納されてい
ないような分岐命令が実行された場合、プログラムシー
ケンサ1が分岐先命令アドレスを生成するために利用さ
れる。
【0008】以上の装置は次のように動作する。まず、
プログラムシーケンサ1から命令アドレス1Aが出力さ
れると、その命令が分岐命令でない場合、選択回路7を
通りプログラムメモリ2に命令アドレス7Aとして供給
される。これによってプログラムメモリ2から該当する
命令コード2Aが読み出され、命令レジスタ3に格納さ
れる。これが命令読み出しフェイズである。次の命令デ
コードフェイズにおいては、命令レジスタ3に格納され
た命令コードが命令デコーダ4によって解読され、その
結果が命令実行部5に供給される。次の命令実行フェイ
ズにおいては、命令実行部5が、命令デコーダ4の出力
4Aによりその命令を実行する。
【0009】一方、プログラムシーケンサ1から読み出
された命令アドレスが分岐命令の命令アドレスである場
合には、ラッチ8にその命令アドレスが一時格納され、
次のフェイズで分岐先テーブル6を参照する。もし分岐
先テーブル6に該当する命令アドレスが格納されてお
り、かつ、有効ビットが有効の場合には、対応する分岐
先命令アドレス6Aが選択回路7から命令アドレス7A
として出力され、プログラムメモリ2に入力する。これ
によって、プログラムシーケンサ1から分岐命令の命令
アドレスが読み出されると、その次のクロックで分岐先
命令アドレスが分岐先テーブル6から読み出され、その
分岐命令の解読や実行を待たずにプログラムメモリ2か
ら該当する分岐先命令が読み出される。従って、分岐命
令が命令実行部5において解読され、分岐条件が成立す
れば、すぐに続いて命令デコーダ4において分岐先命令
がデコードされてパイプライン処理が円滑に進められ
る。
【0010】なお、分岐先テーブル6に全ての分岐命令
のアドレスと分岐先命令アドレスとを格納しておくこと
は難しい。分岐先テーブル6の記憶容量に制限があるか
らである。従って、分岐先テーブル6に無い分岐命令の
命令アドレスがプログラムシーケンサ1から読み出され
る場合がある。この場合、先行読み出しは行われず、命
令レジスタ3に格納された分岐命令から分岐先オフセッ
トアドレス3Aを取り出し、プログラムシーケンサ1が
分岐命令アドレスに加算して、分岐先命令アドレスを生
成する。なお状態信号5Aはこのような条件分岐命令の
実行制御に使用される。
【0011】
【発明が解決しようとする課題】ところで、上記のよう
な従来の装置においては、先行読み出しされた分岐先命
令が分岐条件と合致しないために不要になった際、次の
ような問題が生じていた。図3にプログラム例説明図を
示す。この図に示すようなプログラム例によって従来装
置の問題点を説明する。図3(a)は演算命令を示し、
(b)は分岐命令、(c)は分岐なしの場合の分岐先命
令、(d)は分岐ありの場合の分岐先命令を示してい
る。
【0012】図4は、図3に示した命令の具体的な命令
コード説明図である。図3(a)に示す演算命令su
b、r1、r2、r3は、図4(a)に示すような内容
の命令コードである。即ち、subは演算種指定、r1
は第1ソーソオペランド、r2は第2ソーソオペラン
ド、r3はディスティネーションオペランドである。即
ち、この演算命令はレジスタr1の内容からレジスタr
2の内容を減算し、その結果をレジスタr3に格納する
という命令である。
【0013】また、図3の(b)に示す分岐命令br
zero targetは、図4(b)に示す内容の命
令コードである。即ち、brは分岐動作指定、zero
は分岐条件指定、targetは分岐先アドレスオフセ
ットである。即ち、演算命令の実行結果が“0”であっ
た場合には、targetという分岐先命令のアドレス
に分岐せよという内容の命令コードとなる。なお、それ
以外の場合には、図3(c)に示すsucという命令の
実行を行う。先に説明したように、図2に示す分岐先テ
ーブル6には、全ての分岐命令の命令アドレスを格納す
ることができない。従って、分岐先テーブル6の分岐命
令のアドレスを参照した場合、ヒットするケースとミス
ヒットするケースとが生じる。
【0014】図5に分岐命令処理状態説明図を示す。こ
の図に示すように、上記のプログラムを実行する場合、
4種類のケースが生じる。即ち、分岐命令の命令アドレ
スが分岐先テーブルにあってヒットした場合と、分岐先
テーブルになくてミスヒットした場合があり、更に分岐
条件が成立し分岐がある場合と、分岐条件が成立せずシ
ーケンシャル(逐次)に処理が実行される場合とがあ
る。上記のような状態を考慮しながら図2に示す装置の
パイプライン処理の実際を説明する。
【0015】図5に従来装置の処理タイムチャートを示
した。まず、図6(a)は通常の演算処理の処理タイム
チャートである。なおこの図において、Fは命令読み出
しフェイズ、Dは命令デコードフェイズ、Eは命令実行
フェイズ、Wは命令実行結果格納フェイズで、それぞれ
1実行マシンサイクル分の時間で実行される。図6
(a)に示す通常の命令の処理は、既に従来技術の部分
において説明した通り、命令読み出しフェイズFが行わ
れ、命令デコードフェイズDが実行されて、その後命令
実行フェイズEにより命令が実行され、最終的に得られ
た結果が命令実行結果格納フェイズWによりレジスタ等
の内部に格納される。
【0016】また(b)に示すように、例えば図3
(a)に示す演算命令が図6(a)に示すタイミングで
時刻Tから実行された時、図3(b)に示す分岐命令は
図6(b)に示すタイミングで時刻T2に読み出されて
実行される。次に時刻T3で、先に説明した要領で分岐
先テーブル6が参照され、分岐先命令の先行読み出しが
行われる。図6(c)はそのタイミングを示し、図3
(d)に示す分岐先命令が時刻T3に読み出され、その
後フェイズF、D、E、Wが順に実行される。これによ
り、分岐が有り、しかも分岐先テーブルがヒットした場
合には、図6(a)、(b)、(c)に示すように理想
的なパイプライン処理が実行される。
【0017】一方、分岐条件は成立しても、分岐先テー
ブルに先行呼び出しすべき分岐先命令アドレスが存在し
ない場合には、演算命令の命令実行フェイズEが実行さ
れる際に、分岐先命令アドレスが先に説明した要領で生
成され、図6(d)に示すように、時刻T4でその分岐
先命令の読み出しが実行される。次に図6(e)に示す
ケースは、分岐先テーブルに先行読み出しすべき分岐先
アドレスが格納されていた場合であっても、分岐条件が
成立しなかった場合のケースを示している。演算命令は
時刻T3から時刻T4の間の命令実行フェイズEにおい
て実行され、時刻T4でその実行結果が得られる。この
結果は図2に示す命令実行部5から状態信号5Aとして
プログラムシーケンサ1に向け出力される。この時点
で、プログラムシーケンサ1は分岐がないということを
通知され、次の命令をシーケンシャルに読み出すための
命令アドレスを発生し、命令読み出しフェイズFを実行
する。従って、時刻T4以降図3(c)に示す分岐なし
の場合の命令が読み出され、デコードされ実行されるこ
とになる。
【0018】図6(f)は、分岐先テーブルに分岐先命
令アドレスが格納されておらず、また分岐条件も成立し
なかった場合のケースを示す。このケースでは(d)の
ケースと同様に、分岐先命令アドレスの先行読み出しを
行うことができない。従って、時刻T4に最初の演算命
令の命令実行フェイズEが終了し、分岐なしという結論
が通知された後、プログラムシーケンサ1は次の命令読
み出しのための命令アドレスを出力する。上記の各種の
ケースを整理すると、図5に示すように処理クロックの
遅れが結論付けられる。即ち、図6(c)に示した分岐
がある場合であって分岐先テーブルのヒットが生じた場
合にのみ、パイプライン処理のロスが“0”となり、そ
の他の場合には全てパイプライン処理が1マシンサイク
ル時間遅れることになる。従って、プログラムの内容に
よっては平均実行時間が長くなりパイプライン計算機の
性能低下をもたらす。
【0019】本発明は以上の点に着目してなされたもの
で、上記のような条件に応じた分岐命令が存在するよう
なプログラムを実行する場合において、効率的なパイプ
ライン処理を行い、実行時間の短縮を図った分岐制御装
置を提供することを目的とするものである。
【0020】
【課題を解決するための手段】本発明の第1発明は、分
岐命令を含むプログラムを格納したプログラムメモリ
と、このプログラムメモリから読み出された命令を実行
する命令実行部と、前記プログラムメモリとは別に、前
記各分岐命令の実行後読み出されるべき分岐先命令を格
納した分岐先テーブルと、前記分岐先テーブルから読み
出された命令を一時格納する第1命令レジスタと、前記
分岐先テーブルからの分岐先命令読出しと並行して、前
記プログラムメモリからシーケンシャルに読み出された
命令を一時格納する第2命令レジスタと、前記分岐命令
により分岐が成立したときは前記第1命令レジスタの出
力を選択して前記命令実行部へ送り、前記分岐命令によ
り分岐が不成立のときは前記第2命令レジスタの出力を
前記命令実行部へ送るセレクタとを備えたことを特徴と
する分岐制御装置に関する。
【0021】また、第2発明は、分岐命令を含むプログ
ラムを格納したプログラムメモリと、このプログラムメ
モリから読み出された命令を実行する命令実行部と、前
記プログラムメモリとは別に、前記各分岐命令の実行後
読み出されるべき分岐先命令を格納した分岐先テーブル
と、前記分岐先テーブルから読み出された命令を一時格
納する第1命令レジスタと、前記分岐先テーブルからの
分岐先命令読出しと並行して、前記プログラムメモリか
らシーケンシャルに読み出された命令を一時格納する第
2命令レジスタと、分岐先テーブルに該当する分岐先命
令が格納されているときは前記分岐先テーブルの出力を
前記第1命令レジスタに格納し、分岐先テーブルに該当
する分岐先命令が格納されていないときは前記プログラ
ムメモリの出力を前記第1命令レジスタに格納するセレ
クタと、前記分岐命令により分岐が成立したときは前記
第1命令レジスタの出力を選択して前記命令実行部へ送
り、前記分岐命令により分岐が不成立のときは前記第2
命令レジスタの出力を前記命令実行部へ送るセレクタと
を備えたことを特徴とする分岐制御装置に関する。
【0022】
【作用】この装置は、分岐先テーブルに分岐命令の命令
アドレスと対応させて分岐先命令コードを格納してお
く。プログラムシーケンサの発生する命令アドレスによ
りプログラムメモリから読み出された命令コードは、第
2命令レジスタに一時格納され、分岐先テーブルから読
み出された分岐先命令コードは第1命令レジスタに一時
格納される。セレクタは第1命令レジスタと第2命令レ
ジスタの何れか一方の出力を選択して命令デコーダに向
け供給する。これにより、分岐先命令をプログラムメモ
リから読み出すためのフェイズを不要とするので、分岐
有りであってテーブルがミスヒットした場合以外につい
ては、タイミングのずれなしにパイプライン処理を実行
できる。
【0023】即ち、分岐命令がプログラムメモリから読
み出されると、その次のタイミングで分岐先テーブルか
ら分岐先命令コードが読み出され、第1命令レジスタに
格納される。一方、同時にそのタイミングで、シーケン
シャルに読み出されるべき命令コードがプログラムメモ
リから読み出され、第2命令レジスタに格納される。従
って、次に分岐が成立した場合には第1命令レジスタの
出力を選択し、分岐が不成立の場合には第2命令レジス
タの出力を選択する。これにより、パイプライン処理の
タイミングの遅れはなくなる。故に、分岐が成立し分岐
先テーブルがミスヒットして新たに分岐先命令アドレス
を生成しなければならない場合以外はタイミングの遅れ
を生じない。また、分岐先テーブルがミスヒットした場
合に、プログラムメモリから読み出された命令コードを
第1命令レジスタにセレクタを介して格納するようにし
たので、条件分岐が成立しない場合にもタイミングの遅
れが生じない。従って、分岐先テーブルのミスヒットを
防止するために分岐先テーブルに大量の命令アドレスを
格納しておくといった対策が不要になり、分岐先テーブ
ルを必要最小限の容量にすることができて、コストダウ
ンが図れる。
【0024】
【実施例】以下、本発明を図の実施例を用いて詳細に説
明する。図1は本発明の分岐制御装置実施例を示すブロ
ック図である。この装置は、プログラムシーケンサ1
と。、プログラムメモリ2と、命令デコーダ4、命令実
行部5、分岐先テーブル6、ラッチ11、セレクタ1
2、15、第1命令レジスタ13、第2命令レジスタ1
4及びアンドゲート9から構成されている。上記プログ
ラムシーケンサ1、プログラムメモリ2、命令デコーダ
4、命令実行部5及びアンドゲート9の構成は従来装置
と同一であり、それぞれ従来装置と同一の符号を付し
た。
【0025】また、分岐先テーブル6には、有効ビット
部6−1、命令アドレス部6−2及び分岐先命令コード
部6−4が設けられている。有効ビット部6−1は、分
岐先テーブルに格納されたデータの有効無効を示すため
のフラグを格納する部分である。また、命令アドレス部
6−2はプログラム中に含まれる分岐命令の命令アドレ
スを格納する部分である。また分岐先命令コード部6−
4は、本発明において新たに設けられたもので、分岐先
命令コードのアドレスでなく、分岐先命令コードそのも
のを格納する部分である。本発明においては、このよう
に、分岐先テーブル6に命令アドレスと分岐先命令コー
ドを組合わせたテーブルデータが格納される。
【0026】プログラムシーケンサ1の出力する命令ア
ドレス1Aは、プログラムメモリ2に入力する他、ラッ
チ11を介して分岐先テーブル6に入力する構成となっ
ている。また、プログラムメモリ2の出力する命令コー
ド2Aは、第2命令レジスタ14に入力する他、セレク
タ12にも入力する構成となっている。このセレクタ1
2もう一方の端子には、分岐先テーブル6の出力する分
岐先命令コードが入力する構成となっている。このセレ
クタ12の動作はアンドゲート9の出力により制御され
る。このアンドゲート9の構成及び動作は従来装置と同
様であって、分岐先テーブル6がヒットした場合にはセ
レクタ12から分岐先テーブル6の出力する分岐先命令
コードが第1命令レジスタ13に向け出力される。ま
た、それ以外の場合にはプログラムメモリ2から読み出
された命令コード2Aがセレクタ12を介して第1命令
レジスタ13に入力する。
【0027】一方、第1命令レジスタ13と第2命令レ
ジスタ14の出力は何れもセレクタ15に入力する。こ
のセレクタ15は、プログラムシーケンサ1の出力する
選択信号1Bにより制御され、第1命令レジスタ13と
第2命令レジスタ14の何れか一方の出力を命令デコー
ダ4に出力するよう構成されている。またセレクタ15
の出力は、命令デコーダ4に入力する他、その分岐先オ
フセットアドレス15Aがプログラムシーケンサ1に入
力するよう結線されている。また、命令実行部5の出力
は従来装置と同様に状態信号5Aとしてプログラムシー
ケンサ1に入力する構成となっている。
【0028】上記の構成の本発明の装置は次のように動
作する。この実施例の説明においても例えば図3に示す
ようなプログラムが実行されるものとする。図7に本発
明の装置における分岐命令処理状態説明図を示す。この
処理状態は、図5に示すものと同様で、分岐先テーブル
がヒットした場合、ミスヒットした場合について、それ
ぞれ分岐条件が成立した場合と分岐条件が成立せず逐次
命令が読み出された場合とに分けられる。これらの場合
のパイプライン処理の遅れは、本発明においては、図の
(c)(d)(e)(f)の4つのケースの内で(d)
のケースにのみ生じる。その遅れ量は1マシンサイクル
である。
【0029】図8に本発明の装置の処理タイムチャート
を示す。図1と図7及び図8を見ながら本発明の装置の
動作を説明する。まず、図8(a)は通常の演算命令の
処理を示す。この演算命令は例えば図3(a)に示す減
算処理の命令とする。その処理は、命令読み出しフェイ
ズF、命令デコードフェイズD、命令実行フェイズE及
び命令実行結果格納フェイズWから構成される。この動
作自体は従来装置と同様である。
【0030】即ち、図1においてプログラムシーケンサ
1から命令アドレス1Aが読み出されると、これがプロ
グラムメモリ2に入力し該当する命令コード2Aが出力
される。これは第2命令レジスタ14に格納される。そ
して、この命令読み出しフェイズの次の命令デコードフ
ェイズにおいて、セレクタ15が第2命令レジスタ14
の出力を選択し命令デコーダ4に入力する。これによっ
て命令が解析され、その結果4Aが命令実行部5に入力
する。次の命令実行フェイズEでは、命令実行部5でそ
の命令が実行される。そして最後の命令実行結果格納フ
ェイズにおいて実行結果がレジスタ等に格納される。
【0031】図8(a)において演算命令が時刻T1か
ら開始される。また、この次に続く分岐命令は、図8
(b)に示すように、時刻T2から命令読み出しフェイ
ズが開始される。即ち、プログラムシーケンサ1は次の
分岐命令の命令アドレス1Aをプログラムメモリ2に供
給し、直前の演算命令の処理と同様の処理が進められ
る。ここで、先行読み出しのために、分岐命令の命令ア
ドレス1Aはラッチ11に一時格納される。そして、1
マシンサイクルの後分岐先テーブル6に供給されて、命
令アドレス部6−2が参照される。ここで同一の命令ア
ドレスが存在した場合には、分岐先テーブルがヒットし
たとし、有効ビットが有効であれば分岐先命令コードが
セレクタ12に向け出力される。一方、該当する命令ア
ドレスがないかそのデータが無効の場合には分岐先テー
ブルはミスヒットとなる。アンドゲート9は有効ビット
部6−1と命令アドレス部6−2の出力の論理積を取
り、セレクタ12を制御する。従って、分岐先テーブル
がヒットの場合には分岐先テーブル6の出力を選択して
第1命令レジスタ13に供給し、ミスヒットの場合には
プログラムメモリ2の出力を選択して第1命令レジスタ
13に入力する構成となっている。
【0032】ここで図8(c)に示すように、分岐が成
立し、且つ分岐先テーブルがヒットした場合には、分岐
先テーブル6から読み出された分岐先命令コードがセレ
クタ12を介して第1命令レジスタ13に格納される。
一方、同一のタイミングでプログラムシーケンサ1から
シーケンシャルに読み出された命令アドレス1Aがプロ
グラムメモリ2に供給される。従って、例えば図3に示
すプログラムの場合、(b)に示す分岐命令の次のタイ
ミングで、(d)に示す分岐ありの場合の分岐先命令コ
ードは命令レジスタ13に格納され、(c)に示す分岐
なしの場合の命令コードはプログラムメモリ2から読み
出され同時に第2命令レジスタ14に格納される。
【0033】図8(c)(e)及び(f)はそれぞれ、
その場合の命令読み出しフェイズFが何れも時刻T3か
ら開始されている。ここで、次の時刻T4には、演算命
令の命令実行フェイズEが終了し、分岐命令の命令デコ
ードフェイスDが終了したことから、分岐有りか分岐な
しかの結論が得られている。この状態信号5Aは、図1
に示す命令実行部5からプログラムシーケンサ1に入力
し、プログラムシーケンサ1はその内容に従って選択信
号1Bを出力する。これによってセレクタ15は例えば
分岐条件が成立した場合には第1命令レジスタ13に格
納された分岐先命令コードを命令デコーダ4に入力する
ように動作し、逆に分岐条件が不成立の場合には第2命
令レジスタ14に格納された既にシーケンシャルに読み
込まれた命令コードを命令デコーダ4に出力するよう動
作する。従って、図8(c)及び(e)に示すように、
分岐が有りの場合も分岐が無しの場合も何れもその場合
に応じた命令コードが命令デコーダ4により解読され、
同一のタイミングで命令デコードフェイズDが実行され
る。
【0034】また、分岐先テーブル6がミスヒットし更
に分岐がないという結論になった場合には、やはり第2
命令レジスタ14の内容がセレクタ15を通じて命令デ
コーダ4に入力し、図8(e)に示す処理と同様のタイ
ミングで命令デコードフェイズDが進められる。従っ
て、図8(c)(e)(f)に示す何れのケースにおい
ても、それぞれ処理は時刻T3から開始され、パイプラ
イン処理に時間的な遅れが生じない。
【0035】最後に、分岐条件は成立したが分岐先テー
ブル6に該当する命令アドレスが格納されていなかった
ケースを説明する。この場合、直前に解読された分岐命
令の分岐先アドレスオフセット15Aがセレクタ15を
通じてプログラムシーケンサ1に入力する。プログラム
シーケンサ1は、この分岐先アドレスオフセット15A
と分岐命令のアドレスとを加算して分岐先命令アドレス
を生成する。これはプログラムメモリ2に供給され、読
み出された分岐先命令コードはセレクタ12に入力す
る。この時、分岐先テーブル6がミスヒットであること
から、セレクタ12がプログラムメモリ2の出力を選択
し、分岐先命令コードはセレクタ12を通じて第1命令
レジスタ13に格納される。従って、分岐先テーブル6
がミスヒットでプログラムシーケンサ1が生成した分岐
先命令アドレスによってプログラムメモリ2から読み出
された分岐先命令コードは第1命令レジスタ13に格納
される。
【0036】こうして、次のプログラムシーケンサ1か
ら出力される選択信号1Bによって分岐先命令コードが
第1命令レジスタ13からセレクタ15を介して命令デ
コーダ4に向け出力されることになる。このタイミング
は、プログラムメモリ2からの命令読み出しフェイズ
が、1マシンサイクル遅れることから、図8に示す時刻
T4以後にこの命令読み出しフェイズが開始される。従
って、図8の(d)に示すように、分岐が成立し、テー
ブルがミスヒットした場合には、1マシンサイクルの遅
れが生じる。上記セレクタ12を設けることによって、
第1命令レジスタ13には常に分岐先命令コードが格納
され、セレクタ15は分岐命令の成立、不成立に従って
第1命令レジスタ13と第2命令レジスタ14の何れか
一方の出力を選択することによって本発明の装置が正常
に動作する。
【0037】なお、上記の図6に示す従来処理と図8に
示す本発明の装置の処理とを比較すると、本発明の装置
の処理は、分岐が成立しテーブルがミスヒットした場合
にのみ1マシンサイクル分のパイプライン処理が遅れる
のみで、その他の場合はパイプライン処理の遅れを生じ
ない。従って、まず全体として処理の高速化を図ること
ができる。しかも、従来はテーブルがミスヒットした場
合、必ず1マシンサイクルの処理の遅れを生じていた
が、本発明の場合、テーブルがミスヒットしても分岐が
成立しなければ処理の遅れを生じないため、例えば分岐
先テーブルの格納データ量を減少させ、分岐先テーブル
用のメモリをより小さいものにすることも可能になる。
これによって装置を小型化し、或はそのコストダウンを
図ることも可能である。
【0038】本発明は以上の実施例に限定されない。上
記分岐先テーブルの構成やこれがヒットした場合とミス
ヒットした場合の制御信号の取扱等、或はその信号の選
択回路や選択方法は、同様の機能を持つ回路ブロックに
自由に置き換えて差し支えない。
【0039】
【発明の効果】以上説明した本発明の分岐制御装置は、
分岐先テーブルに命令アドレスと共に分岐先命令コード
自体を格納し、これを先行読み出しすることによって、
シーケンシャルに読み出される命令と分岐先命令コード
を同時に読み出し、第1命令レジスタと第2命令レジス
タとにこれらを格納してセレクタで選択するようにした
ので、分岐命令が成立した場合も不成立の場合も、パイ
プライン処理のタイミングに遅れを生じることなく処理
を続行できる。これによって、パイプライン処理の高速
化を図ることができる。
【0040】更に、分岐先テーブルがミスヒットした場
合にプログラムメモリから読み出された分岐先命令コー
ドは、分岐先テーブルの出力を受け入れるセレクタを介
して第1命令レジスタに送り込まれるため、分岐条件が
成立し且つ分岐先テーブルがミスヒットした場合におい
ても、第1命令レジスタを選択し、命令デコーダに分岐
先命令コードを供給することが可能になる。これらによ
って最小限のハードウェアによって効率よいパイプライ
ン処理が可能となる。
【図面の簡単な説明】
【図1】本発明の分岐制御装置実施例を示すブロック図
である。
【図2】従来の分岐制御装置ブロック図である。
【図3】プログラム例説明図である。
【図4】命令コード説明図である。
【図5】従来の分岐命令処理状態説明図である。
【図6】従来装置の処理タイムチャートである。
【図7】本発明の分岐命令処理状態説明図である。
【図8】本発明の装置の処理タイムチャートである。
【符号の説明】
1 プログラムシーケンサ 2 プログラムメモリ 4 命令デコーダ 5 命令実行部 6 分岐先テーブル 12、15 セレクタ 13 第1命令レジスタ 14 第2命令レジスタ

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 分岐命令を含むプログラムを格納したプ
    ログラムメモリと、 このプログラムメモリから読み出された命令を実行する
    命令実行部と、 前記プログラムメモリとは別に、前記各分岐命令の実行
    後読み出されるべき分岐先命令を格納した分岐先テーブ
    ルと、 前記分岐先テーブルから読み出された命令を一時格納す
    る第1命令レジスタと、 前記分岐先テーブルからの分岐先命令読出しと並行し
    て、前記プログラムメモリからシーケンシャルに読み出
    された命令を一時格納する第2命令レジスタと、 前記分岐命令により分岐が成立したときは前記第1命令
    レジスタの出力を選択して前記命令実行部へ送り、前記
    分岐命令により分岐が不成立のときは前記第2命令レジ
    スタの出力を前記命令実行部へ送るセレクタとを備えた
    ことを特徴とする分岐制御装置。
  2. 【請求項2】 分岐命令を含むプログラムを格納したプ
    ログラムメモリと、 このプログラムメモリから読み出された命令を実行する
    命令実行部と、 前記プログラムメモリとは別に、前記各分岐命令の実行
    後読み出されるべき分岐先命令を格納した分岐先テーブ
    ルと、 前記分岐先テーブルから読み出された命令を一時格納す
    る第1命令レジスタと、 前記分岐先テーブルからの分岐先命令読出しと並行し
    て、前記プログラムメモリからシーケンシャルに読み出
    された命令を一時格納する第2命令レジスタと、 分岐先テーブルに該当する分岐先命令が格納されている
    ときは前記分岐先テーブルの出力を前記第1命令レジス
    タに格納し、分岐先テーブルに該当する分岐先命令が格
    納されていないときは前記プログラムメモリの出力を前
    記第1命令レジスタに格納するセレクタと、 前記分岐命令により分岐が成立したときは前記第1命令
    レジスタの出力を選択して前記命令実行部へ送り、前記
    分岐命令により分岐が不成立のときは前記第2命令レジ
    スタの出力を前記命令実行部へ送るセレクタとを備えた
    ことを特徴とする分岐制御装置。
JP3607593A 1993-02-01 1993-02-01 分岐制御装置 Pending JPH06230968A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3607593A JPH06230968A (ja) 1993-02-01 1993-02-01 分岐制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3607593A JPH06230968A (ja) 1993-02-01 1993-02-01 分岐制御装置

Publications (1)

Publication Number Publication Date
JPH06230968A true JPH06230968A (ja) 1994-08-19

Family

ID=12459627

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3607593A Pending JPH06230968A (ja) 1993-02-01 1993-02-01 分岐制御装置

Country Status (1)

Country Link
JP (1) JPH06230968A (ja)

Similar Documents

Publication Publication Date Title
EP0689131B1 (en) A computer system for executing branch instructions
US4858104A (en) Preceding instruction address based branch prediction in a pipelined processor
US5706459A (en) Processor having a variable number of stages in a pipeline
EP1241567B1 (en) Method and apparatus for executing coprocessor instructions
US6058471A (en) Data processing system capable of executing groups of instructions in parallel
KR20040016829A (ko) 파이프라인식 프로세서에서의 예외 취급 방법, 장치 및시스템
US5313644A (en) System having status update controller for determining which one of parallel operation results of execution units is allowed to set conditions of shared processor status word
US5461715A (en) Data processor capable of execution of plural instructions in parallel
JPH02287626A (ja) パイプライン方式の分岐命令制御装置
US5745723A (en) Data processing system capable of execution of plural instructions in parallel
JP3602801B2 (ja) メモリデータアクセス構造およびその方法
JPH06230968A (ja) 分岐制御装置
JP2636192B2 (ja) 情報処理装置
JPH06131180A (ja) 命令処理方式および命令処理装置
JP3100705B2 (ja) マイクロプロセッサ内の命令準備のための装置
JP2925842B2 (ja) パイプライン処理装置
JP3493110B2 (ja) 高速分岐処理装置
KR100515039B1 (ko) 조건부 명령어를 고려한 파이프라인 상태 표시 회로
JP2825315B2 (ja) 情報処理装置
JP5013966B2 (ja) 演算処理装置
JP3668643B2 (ja) 情報処理装置
JP2001034474A (ja) データ処理装置及びデータ処理方法
JP2005134987A (ja) パイプライン演算処理装置
JPH01271842A (ja) 情報処理装置
JPH04195630A (ja) データ処理装置