JPH0259822A - 命令先取り方式 - Google Patents

命令先取り方式

Info

Publication number
JPH0259822A
JPH0259822A JP21130388A JP21130388A JPH0259822A JP H0259822 A JPH0259822 A JP H0259822A JP 21130388 A JP21130388 A JP 21130388A JP 21130388 A JP21130388 A JP 21130388A JP H0259822 A JPH0259822 A JP H0259822A
Authority
JP
Japan
Prior art keywords
instruction
destination address
instructions
unconditional branch
prefetching
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
JP21130388A
Other languages
English (en)
Inventor
Yoshinori Mizutani
良則 水谷
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP21130388A priority Critical patent/JPH0259822A/ja
Publication of JPH0259822A publication Critical patent/JPH0259822A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] この発明は、計算機システムのCPUにおける命令先取
り方式、すなわち命令の処理に並行して以降の命令を先
取りする方式に関するものである。
[従来の技術] 第5図に従来の命令先取り方式を用いたCPUのブロッ
ク構成図を示す。図において、filはCPU全体を示
し、(2)はバスインタフェース部で、CP U fi
lはこのバスインタフェース部(2)を介してデータの
入出力やアドレスの出力、バス制御信号の入出力等を行
なう。(3)は命令解読部で、上記バスインタフェース
部(2)を介してCP U [11内に取り込まれた命
令の意味を解読し、その結果を命令実行部(4)に渡す
。命令実行部(4)は命令解読部(3)より渡された命
令解読結果をもとに命令を実行2例えば加減乗除等を行
ない、結果をバスインタフェース部(2)やアドレス管
理部(5)に渡す。アドレス管理部(5)は命令実行部
(4)からの情報をもとに出力すべきアドレスを生成し
たり、メモリ保護のための管理を行ない、生成されたア
ドレスはバスインタフェース部(2)に渡される。(6
)はバスインタフェース部(2)内に設けられた命令先
取りキューであり、CP U (11が命令実行中等の
要因により外部バスを使用していない期間に、バスイン
タフェース部(2)はCPU(11が次に実行すべき命
令を予め外部メモリからこの命令先取りキュー(6)に
取り込む。この命令先取りキュー(6)は通常、数命令
を格納できるFIFO(先入れ先出し)構造のメモリで
あり、CP U illが命令を外部メモリから命令解
読部(3)に取り込むよりも上記命令先取りキュー(6
)から命令解読部(3)に取り込む方が高速となるよう
に設計される。
次に、従来の命令先取り方式についてCPUの動作と関
連させて説明する。
第6図に命令先取りを行なわないCPUの動作を示す。
先ず、CPUはサイクル1でメモリーヒのアドレスnか
ら命令を取り込む(フェッチする)。次に、フェッチし
た命令をサイクル2で解読し、サイクル3で実行する。
サイクル4ではアドレス変換を行ない、その結果をもと
にサイクル5でメモリアドレスn+1にある次の命令を
フェッチするか、又はサイクル3で行なった実行結果の
入出力を行なう。
このような場合、CPUがバスを使用しているのはサイ
クル1と5のみで、サイクル2〜40間はバスは使用さ
れない。そこで、バスの利用効率とCPLJの実行速度
を上げるために、バスの空き時間に現在CPUで処理さ
れている命令の次のアドレスにある命令を先取りし、命
令先取りキュー(6)に格納する方式が採られている。
先取りした命令をF’IFO方式の待ち行列として格納
しておくため命令先取りキューと呼ばれる。
第7図に命令先取りキュー(6)の内部状態を示す。命
令解読部(3)にてアドレスnの命令が解読中である時
、アドレス管理部(5)は内部に持つアドレスnを1イ
ンクリメント、すなわちn+1としてバスインタフェー
ス部(2)に渡す。バスインタフェース部(2)はその
アドレスをバス上に出力し、アドレスn+1の命令をフ
ェッチして命令先取りキュー(6)に格納する。このよ
うにして、命令先取りキュー(6)に次々と命令が格納
される。命令先取りキュー(6)はFIFO方式、すな
わち先入れ先出し方式を使用しているので、命令解読部
(3)でアドレスnの命令の解読が終了すると命令先取
りキュー(6)に最も先に格納されたアドレスn+1の
命令が命令解読部(3)に転送され、当該命令の解読が
開始される。
以上のような命令先取り方式を採用した場合のCPtJ
lllの動作を第8図に示す。メモリ上に配置されてい
る命令が連続アドレス(n、n+1゜n+2.・・・)
にあり、それらが連続して実行される場合、すなわち命
令中に分岐命令がない場合は、第8図から明らかなよう
に全体としてのCPU動作が非常に効率良く行なわれる
[発明が解決しようとする課題] 従来の命令先取り方式は以上のようになされているが、
次のような問題が生じる。
すなわち、無条件分岐命令をCP U (11が実行す
ると次に実行すべき命令は分岐先のアドレスであること
が明らかであるにもかかわらず、命令先取りキュー(6
)には無条件分岐命令のあるアドレスから連続的に配置
されている命令が格納されてしまう。従って、命令実行
部(4)にて無条件分岐命令が実行される時点で命令先
取りキュー(6)に格納されている命令は全て無効とな
り、いったん命令先取りキュー(6)の内容をクリアし
、新たに分岐先アドレスから命令先取りを開始しなけれ
ばならない。
この様子を第9図fal〜(C1に示し、その動作の対
象となる。フェッチすべき命令のメモリ格納状態を第1
0図に示す。第9図(alはメモリアドレスn〜n +
 2の命令が命令先取りキュー(6)に格納された状態
を、同図fblは無条件分岐命令” j m p  n
 +100”からのメモリアドレスn+3〜n+5の命
令が格納された状態を、同図tc+は無条件分岐命令”
 J m p  n−)I Q □ uが命令実行部(
4)テ実行され命令先取りキュー(6)がクリアされた
状態をそれぞれ示す。このように、従来方式では、分岐
先のアドレスが命令実行前に一意に決定できる無条件分
岐命令の場合でも命令先取りを無効にしなければならな
いので、その分CPUの実行速度が低下するという問題
点があった。
この発明は上記のような問題点を解消するためになされ
たもので、無条件分岐命令による分岐先の命令先取りを
可能にし、実行速度の向上を図ることができる命令先取
り方式を提供することを目的とする。
[課題を解決するための手段] この発明に係る命令先取り方式は、命令先取りキューに
取り込まれる命令が無条件分岐命令か否かを判別する命
令判別部と、この命令判別部で判別された無条件分岐命
令から分岐先アドレスを生成する分岐先アドレス生成部
とを備え、無条件分岐命令が命令先取りキューに取り込
まれた時点で以降の命令先取りを分岐先アドレスより行
なうようにしたものである。
[作用] この発明においては、無条件分岐命令が命令先取りキュ
ーに先取りされると、その時点から以降の命令先取りが
無条件分岐命令の分岐先アドレスより行なわれるので、
無駄な命令の先取りやそれに伴う無効化を行なうことな
く命令先取りを連続的に行なうことができ、CPUの実
行速度が向上する。
[実施例コ 以下、この発明の一実施例を図について説明する。
第1図にこの命令先取り方式を用いたCPUのブロック
構成図を示す。なお、第5図従来例と同、又は相当部分
には同一符号を付してその説明は省略する。図において
、(7)と(8)がCP U f1+に新たに付加され
た命令判別部と分岐先アドレス生成部であり、命令判別
部(7)はCP U (1)にフェッチされた命令が無
条件分岐命令か否かを判別するもので、具体的には命令
コードの命令部が例えば′″j m p ”であれば無
条件分岐命令と判別して当該命令コードを分岐先アドレ
ス生成部(8)に渡す。
分岐先アドレス生成部(8)は上記命令判別部(7)で
判別された無条件分岐命令から分岐先アドレスを生成す
るもので、具体的には命令判別部(7)から渡された命
令コードのアドレス部を取り出すことにより分岐先アド
レスを生成し、生成した分岐先アドレスはアドレス管理
部(5)に渡される。
次に動作について説明する。命令判別部(7)と分岐先
アドレス生成部(8)の動作フローを第2図に示す。
バスインタフェース部(2)がCP U (11内に取
り込む命令は、同時に命令判別部(7)にも取り込まれ
(ステップ1)、ここで、取り込まれた命令が無条件分
岐命令であるか否かの判別が行なわれる(ステップ2)
。もし無条件分岐命令であると判別されれば、直ちに当
該命令コードが分岐先アドレス生成部(8)に渡され、
ここで分岐先のアドレスが生成される(ステップ3)。
生成されたアドレスは直ちにアドレス管理部(5)へ渡
される(ステップ4)。従って、アドレス管理部(5)
からバスインタフェース部(2)へ渡されるアドレス情
報は分岐先を示すことになる。もし、命令判別部(7)
に取り込まれた命令が無条件分岐命令でないならば、ス
テップ3の分岐先アドレス生成以降の動作は行なわれず
、ステップ1に戻って次の命令フェッチが行なわれる。
第3図ta+〜(C1にこの命令先取り方式を用いた時
の命令先取りキュー(6)と命令判別部(7)と分岐先
アドレス生成部(8)の状態遷移を示す。フェッチされ
るべき命令のメモリ格納状態は第4図に示す。第3図(
alはアドレスn ” n +2の命令がフェッチされ
、命令先取りキュー(6)に格納された状態を示す。命
令判別部(7)には最後にフェッチされた命令が取り込
まれているが、これは無条件分岐命令ではないので分岐
先アドレス生成部(8)に値は入っていない。次にアド
レスn+3の命令がフェッチされた状態が第3図fbl
である。アドレスn+3にあった命令” j m p 
 n + 100″′は無条件分岐命令であるので、こ
の命令は命令判別部(7)から分岐先アドレス生成部(
8)に渡され、分岐先アドレスn+100が生成される
。生成されたアドレスn+100は直ちにアドレス管理
部(5)に渡される。従って、次のフェッチはアドレス
n+4からではなく、アドレスn+looから始まる。
この状態を表わしたのが第3図(C1である。
このようにして、無条件分岐命令により命令先取りが中
断されることなく連続的に実行され、CPU動作が効率
良く行なわれて実行性能、すなわち実行速度が大幅に向
上する。
[発明の効果] 以上のように、この発明によれば、命令先取りキューに
取り込まれる命令が無条件分岐命令か否かを判別する命
令判別部と、この命令判別部で判別された無条件分岐命
令から分岐先アドレスを生成する分岐先アドレス生成部
とを備え、無条件分岐命令が命令先取りキューに取り込
まれた時点で以降の命令先取りを分岐先アドレスより行
なうようにしたので、無条件分岐命令のときは連続的に
命令先取りを行なえ、実行速度が向上する効果が得られ
る。
【図面の簡単な説明】
第1図はこの発明の一実施例による命令先取り方式を用
いたC I) IJのブロック構成図、第2図は実施例
における命令判別部と分岐先アドレス生成部の動作を示
すフローチャート、第3図in1〜(C1は実施例にお
ける命令先取りキューと命令判別部と分岐先アドレス生
成部の状態遷移を示す図、第4図は第3図(al〜(C
1においてフェッチされるべき命令のメモリ格納状態を
示す図、第5図は従来の命令先取り方式を用いたCPU
のブロック構成図、第6図は命令先取りを行なわないC
PUの動作説明図、第7図は命令先取りキューの内部状
態を示す図、第8図は命令先取りを行なうCPUの動作
説明図、第9図ta+〜+c+は従来方式による命令先
取りキューの状態遷移を示す図、第10図は第9図(a
l〜(C1においてフェッチされるべき命令のメモリ格
納状態を示す図である。 (11はCPU、(2)はバスインタフェース部、(3
)は命令解読部、(4)は命令実行部、(5)はアドレ
ス管理部、(6)は命令先取りキュー、(7)は命令判
別部、(8)は分岐先アドレス生成部。 なお、図中、同一符号は同一、又は相当部分を示す。 代理人  大 岩  増 雄(ばか2名)84図 6・ 璃〉費つ賢月えり′Xユ− 晃2゛已 巽ス三 第7図 第8目

Claims (1)

    【特許請求の範囲】
  1. 命令の処理に並行して以降の命令を予め命令先取りキュ
    ーに取り込むようにした命令先取り方式において、命令
    先取りキューに取り込まれる命令が無条件分岐命令か否
    かを判別する命令判別部と、この命令判別部で判別され
    た無条件分岐命令から分岐先アドレスを生成する分岐先
    アドレス生成部とを備え、無条件分岐命令が命令先取り
    キューに取り込まれた時点で以降の命令先取りを分岐先
    アドレスより行なうようにしたことを特徴とする命令先
    取り方式。
JP21130388A 1988-08-25 1988-08-25 命令先取り方式 Pending JPH0259822A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP21130388A JPH0259822A (ja) 1988-08-25 1988-08-25 命令先取り方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21130388A JPH0259822A (ja) 1988-08-25 1988-08-25 命令先取り方式

Publications (1)

Publication Number Publication Date
JPH0259822A true JPH0259822A (ja) 1990-02-28

Family

ID=16603710

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21130388A Pending JPH0259822A (ja) 1988-08-25 1988-08-25 命令先取り方式

Country Status (1)

Country Link
JP (1) JPH0259822A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06103067A (ja) * 1990-06-29 1994-04-15 Digital Equip Corp <Dec> 高性能プロセッサにおける分岐予想方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06103067A (ja) * 1990-06-29 1994-04-15 Digital Equip Corp <Dec> 高性能プロセッサにおける分岐予想方法

Similar Documents

Publication Publication Date Title
JP2603626B2 (ja) データ処理装置
JP3130446B2 (ja) プログラム変換装置及びプロセッサ
JPH08314719A (ja) プロセッサ及び翻訳装置
JPH02287626A (ja) パイプライン方式の分岐命令制御装置
US20080065870A1 (en) Information processing apparatus
JPH0259822A (ja) 命令先取り方式
JPH11345121A (ja) プログラム制御ユニット用の命令取り出し装置および方法
JP3602801B2 (ja) メモリデータアクセス構造およびその方法
US5787276A (en) Microprocessor including circuit for generating signal used for tracing executed instruction stream
JP3335735B2 (ja) 演算処理装置
JP2979108B2 (ja) データ処理装置における非同期処理の同期化方式
JP2944563B2 (ja) パイプライン型情報処理装置
JP2876791B2 (ja) 例外処理装置および例外処理方法
JP2503223B2 (ja) 先行制御方式
JPH0248733A (ja) 情報処理装置
JPH0991139A (ja) 情報処理装置
JP2924735B2 (ja) パイプライン演算装置及びデコーダ装置
JPS6154541A (ja) 命令先取り制御方式
JPH04213727A (ja) 情報処理装置
JPH0950374A (ja) 可変長ディレイドスロットパイプライン制御装置
JPH01240931A (ja) データ処理装置
JPH0462637A (ja) マイクロプロセッサ
JPH03154926A (ja) 命令先取り方式及び装置
JPH0384630A (ja) マイクロプロセッサ
JPH06314196A (ja) 情報処理方法および装置