JPH0338726A - 分岐命令処理装置 - Google Patents
分岐命令処理装置Info
- Publication number
- JPH0338726A JPH0338726A JP17297489A JP17297489A JPH0338726A JP H0338726 A JPH0338726 A JP H0338726A JP 17297489 A JP17297489 A JP 17297489A JP 17297489 A JP17297489 A JP 17297489A JP H0338726 A JPH0338726 A JP H0338726A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- address
- read
- destination 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
Links
- 238000000034 method Methods 0.000 abstract description 22
- 238000010586 diagram Methods 0.000 description 4
- 230000010365 information processing Effects 0.000 description 3
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 238000007664 blowing Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
(産業上の利用分野)
本発明は、情報処理装置のプログラム中で分岐命令が発
生した場合に、これを高速に処理する分岐命令処理装置
に関する。
生した場合に、これを高速に処理する分岐命令処理装置
に関する。
(従来の技術)
一般の情報処理装置においては、記憶部から、その動作
用プログラムを構成する種々の命令を、所定の順に読出
して処理を実行する。命令は、通常、記憶部からシーケ
ンシャルに順に読出されるが、その命令中には、いわゆ
るジャンプ命令等の分岐命令が存在する。プログラムを
実行する場合には、命令の読出しアドレスをシーケンシ
ャルにインクリメントしていく一方、分岐命令が発生し
た場合には、その命令の示す分岐先アドレスを用いて命
令の読出しを行なう。
用プログラムを構成する種々の命令を、所定の順に読出
して処理を実行する。命令は、通常、記憶部からシーケ
ンシャルに順に読出されるが、その命令中には、いわゆ
るジャンプ命令等の分岐命令が存在する。プログラムを
実行する場合には、命令の読出しアドレスをシーケンシ
ャルにインクリメントしていく一方、分岐命令が発生し
た場合には、その命令の示す分岐先アドレスを用いて命
令の読出しを行なう。
第2図は、従来の分岐命令処理装置の一例を示すブロッ
ク図である。
ク図である。
この装置は、上記のように、分岐先アドレス等を発生し
て命令の読出し制御を行なう装置である。
て命令の読出し制御を行なう装置である。
図において、記憶部1には、プログラム2が格納されて
おり、このプログラム2は、多数の命令コード3により
構成されている。プログラム実行中は、命令コード3が
読出されて命令バッファ4に格納され、デコード部5に
より、その命令コードが解読されて命令が実行される。
おり、このプログラム2は、多数の命令コード3により
構成されている。プログラム実行中は、命令コード3が
読出されて命令バッファ4に格納され、デコード部5に
より、その命令コードが解読されて命令が実行される。
この装置には、この他に、次命令読出しアドレス演算部
6と、分岐先アドレス演算部7と、先行読出し部8とが
設けられている。先行読出し部8には、制御回路81と
条件判定回路82が設けられている。
6と、分岐先アドレス演算部7と、先行読出し部8とが
設けられている。先行読出し部8には、制御回路81と
条件判定回路82が設けられている。
次命令読出しアドレス演算部6は、命令コード3をシー
ケンシャルに読出すために、直前に読出された命令コー
ドの読出しアドレスをインクリメントして、次命令読出
しアドレスANを発生する回路である。分岐先アドレス
演算部7は、デコード部5においてデコードされた命令
コードが分岐命令である場合に、その分岐命令に含まれ
る情報を元に、分岐先アドレスAJを演算して求める回
路である。先行読出し部8は、処理の高速化のための、
いわゆるパイプライン制御を行なうために、既に読出さ
れた命令コードの演算等が実行されている間に、次の命
令コードを先行して読出す動作を行なう回路である。
ケンシャルに読出すために、直前に読出された命令コー
ドの読出しアドレスをインクリメントして、次命令読出
しアドレスANを発生する回路である。分岐先アドレス
演算部7は、デコード部5においてデコードされた命令
コードが分岐命令である場合に、その分岐命令に含まれ
る情報を元に、分岐先アドレスAJを演算して求める回
路である。先行読出し部8は、処理の高速化のための、
いわゆるパイプライン制御を行なうために、既に読出さ
れた命令コードの演算等が実行されている間に、次の命
令コードを先行して読出す動作を行なう回路である。
尚、条件判定回路82は、条件分岐命令の演算結果を判
定する。このとき、条件判定信号12aが出力される。
定する。このとき、条件判定信号12aが出力される。
制御回路81は、その判定結果により、次命令読出しア
ドレスANと分岐先アドレスAJの何れかを選択して記
憶部1をアクセスする。このとき、命令読出しアドレス
計算aが出力される。
ドレスANと分岐先アドレスAJの何れかを選択して記
憶部1をアクセスする。このとき、命令読出しアドレス
計算aが出力される。
以上の装置は次のように動作する。
第3図には、第2図に示した従来装置の動作タイムチャ
ートを示す。
ートを示す。
先ず、通常の命令も条件分岐命令も、読出しから処理終
了まで、概略図のように処理■、処理X、処理P、処理
Eの順に実行されていく。
了まで、概略図のように処理■、処理X、処理P、処理
Eの順に実行されていく。
処理■は、命令の取出し、命令のデコード、及び第2図
に示した次命令読出しアドレス演算部6による次命令読
出しアドレスの計算を含む処理である。また、処理Xは
、分岐先アドレスの計算等を含むアドレス計算を行なう
処理である。また、処理Pは、データの取出しを行なう
処理である。
に示した次命令読出しアドレス演算部6による次命令読
出しアドレスの計算を含む処理である。また、処理Xは
、分岐先アドレスの計算等を含むアドレス計算を行なう
処理である。また、処理Pは、データの取出しを行なう
処理である。
最後に、処理Eは、演算と演算結果の判定等を含む処理
である。
である。
実際には、更に細かい複雑な処理が含まれるが、概略で
は、上記のような4種の処理が略一定の幅の1単位の時
間間隔で実行される。
は、上記のような4種の処理が略一定の幅の1単位の時
間間隔で実行される。
ここで、いわゆるパイプライン処理を行なうために、第
3図のに示した、例えば1つの条件分岐命令の処理■を
行なった後、次の処理Xと並行して、第2図に示した先
行読出し部8が、次命令の読出しのための処理工 (第
3図■)を実行する。
3図のに示した、例えば1つの条件分岐命令の処理■を
行なった後、次の処理Xと並行して、第2図に示した先
行読出し部8が、次命令の読出しのための処理工 (第
3図■)を実行する。
そして、同図に示すように、■の命令処理と■の次命令
処理とが、ちょうど各1単位の処理時間だけずれて実行
される。第3図■に示した吹成命令の処理は、更に1単
位の時間だけずれて実行される。
処理とが、ちょうど各1単位の処理時間だけずれて実行
される。第3図■に示した吹成命令の処理は、更に1単
位の時間だけずれて実行される。
このようにすれば、第3図■、■に示すように、直前の
命令の演算等の処理Eが完了した後、直ちに次の命令の
演算等の処理Eが実行され、見掛は上、処理の高速化が
図られる。これは、次命令の読出しがシーケンシャルに
行なわれた場合に実現する。
命令の演算等の処理Eが完了した後、直ちに次の命令の
演算等の処理Eが実行され、見掛は上、処理の高速化が
図られる。これは、次命令の読出しがシーケンシャルに
行なわれた場合に実現する。
一方、第3図のに示すように、条件分岐命令が処理I、
X、P、Eと順に実行されると、最後の処理Eにおいて
、演算と演算結果の判定が行なわれる。
X、P、Eと順に実行されると、最後の処理Eにおいて
、演算と演算結果の判定が行なわれる。
ここで、その演算の結果、分岐を行なうべきと判定され
ると、第2図に示した分岐先アドレス演算部7の出力す
る分岐先アドレスAJが、上記判定回路82の指示に基
づき、制御回路81により選択されて、記憶部1の読出
しに使用される。この場合、第3図に示すように、既に
先行読出しされた次命令[第3図(■)コや吹成命令[
第3図(■)]等の後続処理は中止し、これがキャンセ
ルされて、第3図■に示すように、新たに分岐先命令の
読出し処理■が行なわれる。その後は、再び第3図の、
■、■等に示したように、次命令読出しアドレス演算部
6の出力する次命令読出しアドレスANを用いた先行読
出しが開始される。
ると、第2図に示した分岐先アドレス演算部7の出力す
る分岐先アドレスAJが、上記判定回路82の指示に基
づき、制御回路81により選択されて、記憶部1の読出
しに使用される。この場合、第3図に示すように、既に
先行読出しされた次命令[第3図(■)コや吹成命令[
第3図(■)]等の後続処理は中止し、これがキャンセ
ルされて、第3図■に示すように、新たに分岐先命令の
読出し処理■が行なわれる。その後は、再び第3図の、
■、■等に示したように、次命令読出しアドレス演算部
6の出力する次命令読出しアドレスANを用いた先行読
出しが開始される。
(発明が解決しようとする課題)
上述のように、第2図に示したような従来の分岐命令処
理装置によれば、命令コード3がシーケンシャルに読出
される場合には、第3図に示したように、先行読出し制
御によって、命令の読出しに要する時間を節約した形で
連続的に命令が実行される。従って、プログラムが高速
処理される。
理装置によれば、命令コード3がシーケンシャルに読出
される場合には、第3図に示したように、先行読出し制
御によって、命令の読出しに要する時間を節約した形で
連続的に命令が実行される。従って、プログラムが高速
処理される。
一方、一般に情報処理装置のプログラム中には、ループ
処理が含まれる場合がある。ループ処理は、通常、分岐
回数をカウンタに設定しておき、その設定値に達した場
合にループを抜けるといった手順でプログラムが実行さ
れる。従って、ループ処理の多いプログラムにおいては
、プログラム実行中に多数の分岐命令が含まれることに
なる。
処理が含まれる場合がある。ループ処理は、通常、分岐
回数をカウンタに設定しておき、その設定値に達した場
合にループを抜けるといった手順でプログラムが実行さ
れる。従って、ループ処理の多いプログラムにおいては
、プログラム実行中に多数の分岐命令が含まれることに
なる。
しかしながら、分岐命令が含まれると、先に第3図を用
いて説明したように、分岐先の命令の読出し動作に伴な
って、先行読出し処理はキャンセルされ、一定時間(第
3図に示した時間’t)無駄時間が生じることになる。
いて説明したように、分岐先の命令の読出し動作に伴な
って、先行読出し処理はキャンセルされ、一定時間(第
3図に示した時間’t)無駄時間が生じることになる。
その結果、ループ処理の多いプログラムについては、処
理時間が急激に増大してしまうという問題点があった。
理時間が急激に増大してしまうという問題点があった。
本発明は以上の点に着目してなされたもので、ループ処
理を含む所定のプログラムを実行する場合にも、効率的
に高速で処理できる分岐命令処理装置を提供することを
目的とするものである。
理を含む所定のプログラムを実行する場合にも、効率的
に高速で処理できる分岐命令処理装置を提供することを
目的とするものである。
(課題を解決するための手段)
本発明の分岐命令処理装置は、ループ処理を含む所定の
プログラムを構成する複数の命令コードを順次読出して
、前記プログラムを実行するものにおいて、前記命令コ
ードの読出しのために、次命令コードの格納された次命
令読出しアドレスを、シーケンシャルに発生させる次命
令読出しアドレス演算部と、実行中の分岐命令に含まれ
る情報に基づいて、分岐先アドレスを演算する分岐先ア
ドレス演算部と、前記次命令読出しアドレスと前記分岐
先アドレスとの何れか一方を用いて、命令コードを先行
読出しする先行読出し部と、前記プログラムのループ処
理中に、前記分岐命令の格納されたアドレスと前記分岐
先アドレスとを比較する分岐予測部とを有し、前記先行
読出し部は、前記分岐命令の格納されたアドレスが前記
分岐先アドレスよりも小さくない場合、前記分岐先アド
レスを用いて、命令コードを先行読出しすることを特徴
とするものである。
プログラムを構成する複数の命令コードを順次読出して
、前記プログラムを実行するものにおいて、前記命令コ
ードの読出しのために、次命令コードの格納された次命
令読出しアドレスを、シーケンシャルに発生させる次命
令読出しアドレス演算部と、実行中の分岐命令に含まれ
る情報に基づいて、分岐先アドレスを演算する分岐先ア
ドレス演算部と、前記次命令読出しアドレスと前記分岐
先アドレスとの何れか一方を用いて、命令コードを先行
読出しする先行読出し部と、前記プログラムのループ処
理中に、前記分岐命令の格納されたアドレスと前記分岐
先アドレスとを比較する分岐予測部とを有し、前記先行
読出し部は、前記分岐命令の格納されたアドレスが前記
分岐先アドレスよりも小さくない場合、前記分岐先アド
レスを用いて、命令コードを先行読出しすることを特徴
とするものである。
(作用)
以上の装置は、既に読出された命令の実行中に、シーケ
ンシャルに読まれるべき次命令読出しアドレスの演算と
、分岐先アドレスの演算とを並行して行なう。そして、
次命令読出しアドレスか分岐先アドレスのうち、確立の
高い何れか一方のアドレスを使用して、先に読出された
命令の実行と並行して、次の命令の先行読出しを行なう
。
ンシャルに読まれるべき次命令読出しアドレスの演算と
、分岐先アドレスの演算とを並行して行なう。そして、
次命令読出しアドレスか分岐先アドレスのうち、確立の
高い何れか一方のアドレスを使用して、先に読出された
命令の実行と並行して、次の命令の先行読出しを行なう
。
ループ命令の場合には、通常、分岐先アドレスとして既
に読出されたアドレスが指定され、これは次命令読出し
アドレスよりも値が小さい。また、ループ処理の場合、
分岐命令によりループを抜けるのは1回たけで、その他
は全て既に実行した命令に戻る処理となる。これらの性
質を考慮して先行読出しを行なえば、分岐命令が含まれ
ている場合でも、分岐予測が的中する限り、命令実行処
理が連続的に高速に行なわれる。
に読出されたアドレスが指定され、これは次命令読出し
アドレスよりも値が小さい。また、ループ処理の場合、
分岐命令によりループを抜けるのは1回たけで、その他
は全て既に実行した命令に戻る処理となる。これらの性
質を考慮して先行読出しを行なえば、分岐命令が含まれ
ている場合でも、分岐予測が的中する限り、命令実行処
理が連続的に高速に行なわれる。
(実施例)
以下、本発明を図の実施例を用いて詳細に説明する。
第1図は、本発明の分岐命令処理装置の実施例を示すブ
ロック図である。
ロック図である。
図の装置は、第2図の従来装置と同様に、記憶部1にプ
ログラム2が格納されており、このプログラム2は、複
数の命令コード3から構成されている。装置は、これら
の命令コード3を順次読出してプログラムを実行する。
ログラム2が格納されており、このプログラム2は、複
数の命令コード3から構成されている。装置は、これら
の命令コード3を順次読出してプログラムを実行する。
また、この装置には、読出された命令コードな 0
格納し、それをデコードする命令バッファ4及びデコー
ド部5が設けられている。この他に、第2図の装置と同
様に、次命令コードの格納された次命令読出しアドレス
ANを、シーケンシャルに発生させる次命令読出しアド
レス演算部6と、実行中の分岐命令に含まれる情報に基
づいて、分岐先アドレスAJを演算する分岐先アドレス
演算部7が設けられている。
ド部5が設けられている。この他に、第2図の装置と同
様に、次命令コードの格納された次命令読出しアドレス
ANを、シーケンシャルに発生させる次命令読出しアド
レス演算部6と、実行中の分岐命令に含まれる情報に基
づいて、分岐先アドレスAJを演算する分岐先アドレス
演算部7が設けられている。
更に、本発明の装置には、実行中の分岐命令の格納され
た分岐命令アドレスAと、分岐先アドレス演算部7の発
生する分岐先アドレスAJとを受入れて、両者を比較し
、分岐先を予測する分岐予測部9が設けられている。ま
た、先行読出し部10には、従来装置同様の条件判定回
路が設けられ、更にやや従来と構成の異なる制御回路1
3が設けられている。この制御回路13は、次命令読出
しアドレスANと分岐先アドレスAJとを受入れて、そ
の何れか一方を用いて、命令コード3の先行読出しを行
なう回路である。そして、この先行読出し部10のアド
レス選択は、ループ命令の多いプログラム実行中は、分
岐予測部9の出力する選択信号9aに基づいて行なわれ
る。
た分岐命令アドレスAと、分岐先アドレス演算部7の発
生する分岐先アドレスAJとを受入れて、両者を比較し
、分岐先を予測する分岐予測部9が設けられている。ま
た、先行読出し部10には、従来装置同様の条件判定回
路が設けられ、更にやや従来と構成の異なる制御回路1
3が設けられている。この制御回路13は、次命令読出
しアドレスANと分岐先アドレスAJとを受入れて、そ
の何れか一方を用いて、命令コード3の先行読出しを行
なう回路である。そして、この先行読出し部10のアド
レス選択は、ループ命令の多いプログラム実行中は、分
岐予測部9の出力する選択信号9aに基づいて行なわれ
る。
第4図は、本発明の装置の実施に適するループ処理を含
むプログラムのフローチャートを例示したものである。
むプログラムのフローチャートを例示したものである。
図において、このプログラムは、ステップ81〜ステツ
プS5により構成される。このプログラムは、図示しな
い適当なプログラム中に組込まれた一部の処理を示すも
のである。
プS5により構成される。このプログラムは、図示しな
い適当なプログラム中に組込まれた一部の処理を示すも
のである。
先ず、ステップS1において、ループ処理を制御するた
゛めのカウンタをKに設定する。そして、ステップS2
及びステップS3において、処理のと処理■を実行する
。次に、ステップS4において、カウンタにの値をデク
リメントする。ステップS5では、このカウンタKが°
゛OOパったか否かを判断し、Kが“O゛°でない場合
には、ステップS2に戻り、ステップS2.S3.S4
の処理を繰返す。Kの値が、例えば” 10 ”であれ
ば、ステップS4を10回通過すると、Kの値が” o
”になりループを抜ける。
゛めのカウンタをKに設定する。そして、ステップS2
及びステップS3において、処理のと処理■を実行する
。次に、ステップS4において、カウンタにの値をデク
リメントする。ステップS5では、このカウンタKが°
゛OOパったか否かを判断し、Kが“O゛°でない場合
には、ステップS2に戻り、ステップS2.S3.S4
の処理を繰返す。Kの値が、例えば” 10 ”であれ
ば、ステップS4を10回通過すると、Kの値が” o
”になりループを抜ける。
このようなプログラムの場合、判断ステップS5におい
て分岐命令が発生する。この分岐命令では、例えばKが
’10”の場合、9回まではステップS2にジャンプし
、処理のを実行する命令コードの格納された分岐先アド
レスの読出しを行なうことになる。そして、Kが°“O
IIとなった最後の1回だけ、次命令読出しアドレスを
用いて次命令コードの読出しが実行される。
て分岐命令が発生する。この分岐命令では、例えばKが
’10”の場合、9回まではステップS2にジャンプし
、処理のを実行する命令コードの格納された分岐先アド
レスの読出しを行なうことになる。そして、Kが°“O
IIとなった最後の1回だけ、次命令読出しアドレスを
用いて次命令コードの読出しが実行される。
本発明の装置は、このようなループ処理において次のよ
うな動作を行なう。
うな動作を行なう。
第5図は、本発明の装置の動作を説明するタイムチャー
トである。
トである。
本発明の装置においても、第5図(■)に示すように、
各命令は処理I、X、P、Hの4単位の処理によって実
行される。
各命令は処理I、X、P、Hの4単位の処理によって実
行される。
各1単位の処理は、略同じ実行時間を必要とするものと
し、第3図で説明した従来のものと同様に、1単位分の
時間ずれて先行読出し制御が行なわれる。即ち、先に読
出され、デコード部5においてデコードされた命令コー
ドが、条件分岐命令 3 でない通常の命令の場合、次命令読出しアドレス演算部
6のみが次命令読出しアドレスANを発生し、制御回路
13に向けて出力する。この場合、条件判定回路12が
制御回路13に対し、次命令読出しアドレスANの選択
を指示する。その結果、制御回路13は、記憶部1の命
令コードを、次命令読出しアドレスANを用いてシーケ
ンシャルに読出していく。
し、第3図で説明した従来のものと同様に、1単位分の
時間ずれて先行読出し制御が行なわれる。即ち、先に読
出され、デコード部5においてデコードされた命令コー
ドが、条件分岐命令 3 でない通常の命令の場合、次命令読出しアドレス演算部
6のみが次命令読出しアドレスANを発生し、制御回路
13に向けて出力する。この場合、条件判定回路12が
制御回路13に対し、次命令読出しアドレスANの選択
を指示する。その結果、制御回路13は、記憶部1の命
令コードを、次命令読出しアドレスANを用いてシーケ
ンシャルに読出していく。
一方、先に読出された命令コードが条件分岐命令である
場合には、分岐予測部9が、実行中の条件分岐命令アド
レスAと、分岐先アドレス演算部7の演算した分岐先ア
ドレスAJとを比較する。
場合には、分岐予測部9が、実行中の条件分岐命令アド
レスAと、分岐先アドレス演算部7の演算した分岐先ア
ドレスAJとを比較する。
そして、その条件分岐命令の格納された分岐命令アドレ
スAが、分岐先アドレスAJよりも小さくない場合に、
分岐先アドレスを選択する旨の選択信号9aを、制御回
路13に向けて出力する。また、それ以外の場合には、
次命令読出しアドレスANを選択するように、選択信号
9aを制御回路13に向けて出力する。
スAが、分岐先アドレスAJよりも小さくない場合に、
分岐先アドレスを選択する旨の選択信号9aを、制御回
路13に向けて出力する。また、それ以外の場合には、
次命令読出しアドレスANを選択するように、選択信号
9aを制御回路13に向けて出力する。
例えば、第5図に示したループ処理の場合、ス 4
テップS5において、Kが“′O°゛でない場合には、
その条件分岐命令の格納されたアドレスAは、分岐先ア
ドレスAJよりも必ず大きくなる。
その条件分岐命令の格納されたアドレスAは、分岐先ア
ドレスAJよりも必ず大きくなる。
従って、条件分岐命令の格納されたアドレスAと分岐先
アドレスAJとを比較して、分岐先アドレスが小さい場
合には、分岐先アドレスの命令を先行読出しするよう動
作する。尚、同一命令が繰返される場合もあるため、条
件分岐命令の格納されたアドレスAと分岐先アドレスA
Jとが等しい場合にも、分岐先アドレスに格納された命
令コードの先行読出しを行なうものとする。
アドレスAJとを比較して、分岐先アドレスが小さい場
合には、分岐先アドレスの命令を先行読出しするよう動
作する。尚、同一命令が繰返される場合もあるため、条
件分岐命令の格納されたアドレスAと分岐先アドレスA
Jとが等しい場合にも、分岐先アドレスに格納された命
令コードの先行読出しを行なうものとする。
第5図のにおいて、条件分岐命令は、命令読出しの処理
■を行なった後、アドレス演算の処理Xを実行する。こ
のとき、第1図に示した分岐予測部9において、分岐予
測が行なわれる。従って、第5図■に示すように、この
1単位の処理中に並行して分岐先命令の先行読出しが行
なわれる。即ち、分岐予測部9の予測結果に応じて、次
命令か分岐先命令かが、その都度選択されて先行読出し
されることになる。従って、分岐予測が成功した場合に
は、第3図■、■に示した、従来のシーケンシャルな読
出し処理と全く同様に、各命令が無駄時間なく順に実行
されていくことになる。即ち、分岐予測が成功した場合
には、第5図のにおいて、命令演算の処理Eが終了後、
分岐判定が行なわれると、そのまま次の分岐先命令が実
行されることになる。
■を行なった後、アドレス演算の処理Xを実行する。こ
のとき、第1図に示した分岐予測部9において、分岐予
測が行なわれる。従って、第5図■に示すように、この
1単位の処理中に並行して分岐先命令の先行読出しが行
なわれる。即ち、分岐予測部9の予測結果に応じて、次
命令か分岐先命令かが、その都度選択されて先行読出し
されることになる。従って、分岐予測が成功した場合に
は、第3図■、■に示した、従来のシーケンシャルな読
出し処理と全く同様に、各命令が無駄時間なく順に実行
されていくことになる。即ち、分岐予測が成功した場合
には、第5図のにおいて、命令演算の処理Eが終了後、
分岐判定が行なわれると、そのまま次の分岐先命令が実
行されることになる。
但し、ここで、第5図に示したループ処理のステップS
5において、Kが°°O′°となった場合には、分岐予
測がはずれることになる。この場合には、第3図に示し
た、■の条件分岐命令から■の分岐先命令に移行する場
合と同様の無駄時間tが発生する。しかしながら、ルー
プ処理を含むプログラムの場合、この確率かに分の1と
低いため、全体として、十分処理の高速化が図れる。
5において、Kが°°O′°となった場合には、分岐予
測がはずれることになる。この場合には、第3図に示し
た、■の条件分岐命令から■の分岐先命令に移行する場
合と同様の無駄時間tが発生する。しかしながら、ルー
プ処理を含むプログラムの場合、この確率かに分の1と
低いため、全体として、十分処理の高速化が図れる。
また、分岐命令がその後に読出されるべき幾つかの命令
を飛越えて、先のアドレスの命令コードを読むような場
合にも、同様の無駄時間が生じる。
を飛越えて、先のアドレスの命令コードを読むような場
合にも、同様の無駄時間が生じる。
しかしながら、ループ処理が多く、このようなケースの
少ないプログラムにおいては、全体としてみれば、大幅
な高速化を図ることができる。
少ないプログラムにおいては、全体としてみれば、大幅
な高速化を図ることができる。
本発明の装置は以上の実施例に限定されない。
次命令読出しアドレス演算部6や分岐先アドレス演算部
71分岐予測部9等は、一体化されたマイクロプロセッ
サにより構成されてもよく、分岐命令の格納されたアド
レスが、分岐先アドレスよりも大きいか否かを判断する
ために、既知のソフトウェアあるいは上述した以外のハ
ードウェア的比較手段を用いるようにして差し支えない
。
71分岐予測部9等は、一体化されたマイクロプロセッ
サにより構成されてもよく、分岐命令の格納されたアド
レスが、分岐先アドレスよりも大きいか否かを判断する
ために、既知のソフトウェアあるいは上述した以外のハ
ードウェア的比較手段を用いるようにして差し支えない
。
(発明の効果)
以上説明した本発明の分岐命令処理装置によれば、予め
分岐命令の格納されたアドレスと分岐先アドレスとを比
較して分岐予測を行ない、次命令読出しアドレスと分岐
先アドレスとの何れか一方を用いて、先行読出しを行な
うようにしたので、分岐予測が成功した場合、先行読出
しした命令をキャンセルすることなく、分岐命令を高速
に実行することができる。従って、分岐予測の成功率が
高いループ処理を含むプログラムの実行に有効に 7 機能する。
分岐命令の格納されたアドレスと分岐先アドレスとを比
較して分岐予測を行ない、次命令読出しアドレスと分岐
先アドレスとの何れか一方を用いて、先行読出しを行な
うようにしたので、分岐予測が成功した場合、先行読出
しした命令をキャンセルすることなく、分岐命令を高速
に実行することができる。従って、分岐予測の成功率が
高いループ処理を含むプログラムの実行に有効に 7 機能する。
第1図は本発明の分岐命令処理装置の実施例を示すブロ
ック図、第2図は従来の分岐命令処理装置の一例を示す
ブロック図、第3図は従来装置の動作タイムチャート、
第4図は本発明の装置の実施に適するループ処理を含む
プログラムのフローチャート、第5図は本発明の装置の
動作タイムチャートである。 1・・・記憶部、2・・・プログラム、3・・・命令コ
ード、4・・・命令バッファ、5・・・デコード部、6
・・・次命令読出しアドレス演算部、7・・・分岐先ア
ドレス演算部、9・・・分岐予測部、10・・・先行読
出し部。
ック図、第2図は従来の分岐命令処理装置の一例を示す
ブロック図、第3図は従来装置の動作タイムチャート、
第4図は本発明の装置の実施に適するループ処理を含む
プログラムのフローチャート、第5図は本発明の装置の
動作タイムチャートである。 1・・・記憶部、2・・・プログラム、3・・・命令コ
ード、4・・・命令バッファ、5・・・デコード部、6
・・・次命令読出しアドレス演算部、7・・・分岐先ア
ドレス演算部、9・・・分岐予測部、10・・・先行読
出し部。
Claims (1)
- 【特許請求の範囲】 ループ処理を含む所定のプログラムを構成する複数の
命令コードを順次読出して、前記プログラムを実行する
ものにおいて、 前記命令コードの読出しのために、次命令コードの格納
された次命令読出しアドレスを、シーケンシャルに発生
させる次命令読出しアドレス演算部と、 実行中の分岐命令に含まれる情報に基づいて、分岐先ア
ドレスを演算する分岐先アドレス演算部と、 前記次命令読出しアドレスと前記分岐先アドレスとの何
れか一方を用いて、命令コードを先行読出しする先行読
出し部と、 前記プログラムのループ処理中に、 前記分岐命令の格納されたアドレスと前記分岐先アドレ
スとを比較する分岐予測部とを有し、前記先行読出し部
は、 前記分岐命令の格納されたアドレスが前記分岐先アドレ
スよりも小さくない場合、前記分岐先アドレスを用いて
、命令コードを先行読出しすることを特徴とする分岐命
令処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP17297489A JPH0338726A (ja) | 1989-07-06 | 1989-07-06 | 分岐命令処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP17297489A JPH0338726A (ja) | 1989-07-06 | 1989-07-06 | 分岐命令処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0338726A true JPH0338726A (ja) | 1991-02-19 |
Family
ID=15951816
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP17297489A Pending JPH0338726A (ja) | 1989-07-06 | 1989-07-06 | 分岐命令処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0338726A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009140137A (ja) * | 2007-12-05 | 2009-06-25 | Texas Instr Japan Ltd | プロセッサおよび信号処理方法 |
-
1989
- 1989-07-06 JP JP17297489A patent/JPH0338726A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009140137A (ja) * | 2007-12-05 | 2009-06-25 | Texas Instr Japan Ltd | プロセッサおよび信号処理方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4476525A (en) | Pipeline-controlled data processing system capable of performing a plurality of instructions simultaneously | |
| JP2603626B2 (ja) | データ処理装置 | |
| JPS633337B2 (ja) | ||
| JPH05158687A (ja) | プログラム制御方法及びプログラム制御装置 | |
| JPH0338726A (ja) | 分岐命令処理装置 | |
| US5317703A (en) | Information processing apparatus using an advanced pipeline control method | |
| KR920006770B1 (ko) | 명령을 페치(fetch)하기 위한 제어 시스템 | |
| JPH1153189A (ja) | 演算装置、演算方法及びコンピュータ読み取り可能な記録媒体 | |
| JPS60117335A (ja) | 情報処理装置 | |
| JP2999907B2 (ja) | マイクロプログラム制御方式の中央処理装置 | |
| JPS60198640A (ja) | パイプライン型情報処理装置 | |
| JPS60108973A (ja) | 配列要素の最小値および最小要素の要素番号を求める方法 | |
| JPH09106345A (ja) | 演算処理方法及び装置 | |
| JPS60241136A (ja) | デ−タ処理装置 | |
| JP2842930B2 (ja) | 半導体集積回路試験装置のテストプロセッサに用いられる命令読み出し回路 | |
| JP2557043B2 (ja) | ビツトパタ−ン検出装置 | |
| JPS6116334A (ja) | デ−タ処理装置 | |
| JPH0233173B2 (ja) | ||
| JPH0353322A (ja) | 情報処理装置 | |
| JPH03288228A (ja) | 情報処理装置 | |
| JPH04195429A (ja) | 先行制御方式 | |
| JPH04367941A (ja) | マイクロプロセッサ | |
| JPH03255530A (ja) | 並列命令フェッチ機構 | |
| JPS63195736A (ja) | パイプライン制御のための分岐命令処理装置 | |
| JPH0324623A (ja) | ループ処理制御装置 |