JPH052483A - 命令処理装置 - Google Patents
命令処理装置Info
- Publication number
- JPH052483A JPH052483A JP15191191A JP15191191A JPH052483A JP H052483 A JPH052483 A JP H052483A JP 15191191 A JP15191191 A JP 15191191A JP 15191191 A JP15191191 A JP 15191191A JP H052483 A JPH052483 A JP H052483A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- buffer
- branch
- associative information
- control means
- 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.)
- Withdrawn
Links
Landscapes
- Advance Control (AREA)
Abstract
(57)【要約】
【目的】 本発明は分岐命令時の命令処理速度を高速に
する分岐用命令バッファを備えた命令処理装置に関し、
パイプライン処理における無駄な空きサイクルを減じ、
命令処理速度を向上した命令処理装置を提供することを
目的とする。 【構成】 分岐命令の分岐先アドレスから始まる連続し
た命令コード群IE1〜IEnを保持するバッファBU
F1〜BUFnと、バッファBUF1〜BUFnを連想
するための連想情報P1〜Pnを保持する連想情報保持
手段RM1〜RMnと、連想情報P1〜Pn或いは他の
制御情報に基づいてバッファBUFiを指定する選択手
段S1〜Snと、分岐命令を再び実行する時に連想情報
P1〜Pnの検索を行なうと共に最後に登録されるかま
たは最後に使用されたバッファの1組BUFiを指定す
るよう選択手段S1〜Snを制御してバッファBUFi
からの読み出しを行なう分岐用命令バッファ制御手段B
RCとを有して構成する。
する分岐用命令バッファを備えた命令処理装置に関し、
パイプライン処理における無駄な空きサイクルを減じ、
命令処理速度を向上した命令処理装置を提供することを
目的とする。 【構成】 分岐命令の分岐先アドレスから始まる連続し
た命令コード群IE1〜IEnを保持するバッファBU
F1〜BUFnと、バッファBUF1〜BUFnを連想
するための連想情報P1〜Pnを保持する連想情報保持
手段RM1〜RMnと、連想情報P1〜Pn或いは他の
制御情報に基づいてバッファBUFiを指定する選択手
段S1〜Snと、分岐命令を再び実行する時に連想情報
P1〜Pnの検索を行なうと共に最後に登録されるかま
たは最後に使用されたバッファの1組BUFiを指定す
るよう選択手段S1〜Snを制御してバッファBUFi
からの読み出しを行なう分岐用命令バッファ制御手段B
RCとを有して構成する。
Description
【0001】
【産業上の利用分野】本発明は命令処理装置に係り、特
に分岐命令時の命令処理速度を高速にする分岐用命令バ
ッファを備えた命令処理装置に関する。
に分岐命令時の命令処理速度を高速にする分岐用命令バ
ッファを備えた命令処理装置に関する。
【0002】近年のマイクロプロセッサは、命令処理速
度を向上させるため、その設計に色々な手法が採られて
いる。その1つにパイプライン命令処理がある。パイプ
ライン命令処理の場合、1つの命令処理を命令デコー
ド、オペランドフェッチ等の幾つかの処理単位(ステー
ジ)に分割し、ステージ単位で命令処理を進め、各命令
の処理をオーバーラップさせることで命令処理速度の向
上を計る手法である。
度を向上させるため、その設計に色々な手法が採られて
いる。その1つにパイプライン命令処理がある。パイプ
ライン命令処理の場合、1つの命令処理を命令デコー
ド、オペランドフェッチ等の幾つかの処理単位(ステー
ジ)に分割し、ステージ単位で命令処理を進め、各命令
の処理をオーバーラップさせることで命令処理速度の向
上を計る手法である。
【0003】このパイプライン処理における命令処理の
流れを妨げるものとして命令の分岐がある。通常、プロ
グラム中には分岐命令は頻繁に使用されるが、分岐が行
なわれると分岐先命令フェッチ、分岐先命令のデコード
といったステップを新たに踏み直すためにパイプライン
の利点を生かすことが出来ない。また、命令デコードス
テージだけに着目しても、分岐命令をデコードした後、
分岐先の命令をフェッチするために新たに数サイクルを
要し、その分岐先の命令をデコードするまでに空きサイ
クルを生じてしまうので効率の良いパイプライン処理を
実現することが出来ない。更に、近年では、複数命令を
同時に実行するパイプライン処理プロセッサも現われて
おり、例えば、2命令同時実行を行なうプロセッサであ
れば、上述のように空きサイクルが生じた場合、空きサ
イクルで2命令分の処理サイクルを失うことになり、甚
だしく命令処理速度を落とすことになる。
流れを妨げるものとして命令の分岐がある。通常、プロ
グラム中には分岐命令は頻繁に使用されるが、分岐が行
なわれると分岐先命令フェッチ、分岐先命令のデコード
といったステップを新たに踏み直すためにパイプライン
の利点を生かすことが出来ない。また、命令デコードス
テージだけに着目しても、分岐命令をデコードした後、
分岐先の命令をフェッチするために新たに数サイクルを
要し、その分岐先の命令をデコードするまでに空きサイ
クルを生じてしまうので効率の良いパイプライン処理を
実現することが出来ない。更に、近年では、複数命令を
同時に実行するパイプライン処理プロセッサも現われて
おり、例えば、2命令同時実行を行なうプロセッサであ
れば、上述のように空きサイクルが生じた場合、空きサ
イクルで2命令分の処理サイクルを失うことになり、甚
だしく命令処理速度を落とすことになる。
【0004】
【従来の技術】このような問題を解決する1つの手段と
して、従来、分岐用命令バッファ(分岐ウィンドウとも
いう)を設ける手法がある。分岐用命令バッファは命令
処理中に一度出現した分岐命令の 命令アドレス(プロ
グラムカウンタPCの内容)と、 分岐先の幾つかの命
令コードIEiと、 その命令コードの直後の命令の命
令アドレスとをRAMに保持しておき、次回以降にその
分岐命令が登場(命令コードより判断するのではなく、
命令アドレスを監視することで一致したものがあったこ
とにより登場したことを判別)した時に、RAMより直
ちに分岐先命令コードを読み出して命令解読を行ない、
分岐先命令フェッチサイクルを省いて分岐時の処理を高
速にする。これと同時に、登録されている命令アドレス
に従い命令フェッチを行なう。この 命令アドレスは元
々の分岐命令の分岐先の分岐先アドレスではなく、幾つ
かの命令を越えた先の命令アドレスであることに着目す
ると、この点からも命令処理の高速化の工夫がなされて
いるといえる。
して、従来、分岐用命令バッファ(分岐ウィンドウとも
いう)を設ける手法がある。分岐用命令バッファは命令
処理中に一度出現した分岐命令の 命令アドレス(プロ
グラムカウンタPCの内容)と、 分岐先の幾つかの命
令コードIEiと、 その命令コードの直後の命令の命
令アドレスとをRAMに保持しておき、次回以降にその
分岐命令が登場(命令コードより判断するのではなく、
命令アドレスを監視することで一致したものがあったこ
とにより登場したことを判別)した時に、RAMより直
ちに分岐先命令コードを読み出して命令解読を行ない、
分岐先命令フェッチサイクルを省いて分岐時の処理を高
速にする。これと同時に、登録されている命令アドレス
に従い命令フェッチを行なう。この 命令アドレスは元
々の分岐命令の分岐先の分岐先アドレスではなく、幾つ
かの命令を越えた先の命令アドレスであることに着目す
ると、この点からも命令処理の高速化の工夫がなされて
いるといえる。
【0005】具体的に、図3に示す構成を持つ命令処理
装置を例に説明すると、命令解読装置DECが分岐命令
であることを検知すると、分岐用命令バッファ制御手段
BRC2は、比較器C1〜Cnにより、プログラムカウ
ンタPCの内容と一致する連想情報記憶手段RMに保持
されている連想情報P1〜Pnを検索し、対応する命令
コードIEiをバッファBUFより命令読み出しバスI
Qに出力させる。そして読み出された命令コードIEi
を命令解読装置DECで命令デコードを行なう。
装置を例に説明すると、命令解読装置DECが分岐命令
であることを検知すると、分岐用命令バッファ制御手段
BRC2は、比較器C1〜Cnにより、プログラムカウ
ンタPCの内容と一致する連想情報記憶手段RMに保持
されている連想情報P1〜Pnを検索し、対応する命令
コードIEiをバッファBUFより命令読み出しバスI
Qに出力させる。そして読み出された命令コードIEi
を命令解読装置DECで命令デコードを行なう。
【0006】しかしながら、このように高速化の工夫が
なされていても、分岐命令検知から始まり、プログラム
カウンタPCの更新、一致PC検索・命令コード読み出
し、分岐先命令デコードというステップを踏み直すた
め、図4に示す命令処理のタイムチャートにおいて、命
令デコードステージに着目した場合、バッファ検索のた
めに、まだ1マシンサイクルの空きサイクルを生じざる
を得ない。そのため、より高速な命令処理を目指すに
は、この空きサイクルをなくす必要がある。
なされていても、分岐命令検知から始まり、プログラム
カウンタPCの更新、一致PC検索・命令コード読み出
し、分岐先命令デコードというステップを踏み直すた
め、図4に示す命令処理のタイムチャートにおいて、命
令デコードステージに着目した場合、バッファ検索のた
めに、まだ1マシンサイクルの空きサイクルを生じざる
を得ない。そのため、より高速な命令処理を目指すに
は、この空きサイクルをなくす必要がある。
【0007】つまり、分岐命令の命令デコードサイクル
の直後に分岐先命令の命令デコードを行なう必要が生じ
ている。また、プログラムカウンタPCの更新を行なう
時、例えばRISC(ReducedInstruction Set Compute
r)アーキテクチャに準拠するマイクロプロセッサであ
れば、命令長が一定なので更新にさして時間をとること
はないが、CISC(Complex Instruction Set Comput
er)アーキテクチャに準拠するマイクロプロセッサであ
ると、前命令を解読した後、その判別した命令長から演
算を行ないプログラムカウンタPCを更新するため、そ
の更新時間は大きい。
の直後に分岐先命令の命令デコードを行なう必要が生じ
ている。また、プログラムカウンタPCの更新を行なう
時、例えばRISC(ReducedInstruction Set Compute
r)アーキテクチャに準拠するマイクロプロセッサであ
れば、命令長が一定なので更新にさして時間をとること
はないが、CISC(Complex Instruction Set Comput
er)アーキテクチャに準拠するマイクロプロセッサであ
ると、前命令を解読した後、その判別した命令長から演
算を行ないプログラムカウンタPCを更新するため、そ
の更新時間は大きい。
【0008】
【発明が解決しようとする課題】従って、従来の分岐用
命令バッファを備えた命令処理装置では、分岐命令の命
令アドレスを得てから分岐キャッシュを検索し、(一致
しているものがあれば)分岐先命令コードを読み出す
為、パイプライン処理上無駄な空きサイクルを生じ、命
令処理速度をより上げることができないという問題があ
った。
命令バッファを備えた命令処理装置では、分岐命令の命
令アドレスを得てから分岐キャッシュを検索し、(一致
しているものがあれば)分岐先命令コードを読み出す
為、パイプライン処理上無駄な空きサイクルを生じ、命
令処理速度をより上げることができないという問題があ
った。
【0009】本発明は、プログラムカウンタの更新を待
つことなくパイプライン処理における無駄な空きサイク
ルを減じ、ひいては命令処理速度を向上した命令処理装
置を提供することを目的とする。
つことなくパイプライン処理における無駄な空きサイク
ルを減じ、ひいては命令処理速度を向上した命令処理装
置を提供することを目的とする。
【0010】
【課題を解決するための手段】上記課題を解決するため
に、本発明の命令処理装置は、図1に示す如く、分岐命
令の分岐先アドレスから始まる連続した命令コード群I
E1〜IEnを保持する複数組のバッファBUF1〜B
UFnと、前記複数組のバッファBUF1〜BUFnの
中で最大1組を連想するための連想情報P1〜Pnを保
持する連想情報保持手段RM1〜RMnと、前記連想情
報P1〜Pn或いは他の制御情報に基づいてバッファB
UFi(i=1、…、n)を指定する選択手段S1〜S
nと、特定の分岐命令を再び実行する時に前記連想情報
P1〜Pnの検索を行なうと共に該検索結果による前記
バッファBUFjの指定に先立って最後に登録されるか
または最後に使用された前記バッファの1組BUFiを
指定するよう前記選択手段S1〜Snを制御して前記バ
ッファBUFiからの読み出しを行なう分岐用命令バッ
ファ制御手段BRCとを有して構成され、また、前記分
岐用命令バッファ制御手段BRCは、前記連想情報P1
〜Pnに基づくバッファBUFjの指定に先立ってバッ
ファBUFiを指定する分岐先命令先行選択手段PSを
有して構成する。
に、本発明の命令処理装置は、図1に示す如く、分岐命
令の分岐先アドレスから始まる連続した命令コード群I
E1〜IEnを保持する複数組のバッファBUF1〜B
UFnと、前記複数組のバッファBUF1〜BUFnの
中で最大1組を連想するための連想情報P1〜Pnを保
持する連想情報保持手段RM1〜RMnと、前記連想情
報P1〜Pn或いは他の制御情報に基づいてバッファB
UFi(i=1、…、n)を指定する選択手段S1〜S
nと、特定の分岐命令を再び実行する時に前記連想情報
P1〜Pnの検索を行なうと共に該検索結果による前記
バッファBUFjの指定に先立って最後に登録されるか
または最後に使用された前記バッファの1組BUFiを
指定するよう前記選択手段S1〜Snを制御して前記バ
ッファBUFiからの読み出しを行なう分岐用命令バッ
ファ制御手段BRCとを有して構成され、また、前記分
岐用命令バッファ制御手段BRCは、前記連想情報P1
〜Pnに基づくバッファBUFjの指定に先立ってバッ
ファBUFiを指定する分岐先命令先行選択手段PSを
有して構成する。
【0011】
【作用】本発明の命令処理装置では、図1の如く、分岐
用命令バッファ制御手段BRCは、特定の分岐命令を再
び実行する時に、連想情報P1〜Pnの検索を行なうと
共に、該検索結果による前記バッファBUFjの指定に
先立って、最後に登録されるかまたは最後に使用された
前記バッファの1組BUFiを指定するよう選択手段S
1〜Snを制御して前記バッファBUFiからの読み出
しを行なうようにしている。
用命令バッファ制御手段BRCは、特定の分岐命令を再
び実行する時に、連想情報P1〜Pnの検索を行なうと
共に、該検索結果による前記バッファBUFjの指定に
先立って、最後に登録されるかまたは最後に使用された
前記バッファの1組BUFiを指定するよう選択手段S
1〜Snを制御して前記バッファBUFiからの読み出
しを行なうようにしている。
【0012】また、分岐用命令バッファ制御手段BRC
は、前記連想情報P1〜Pnに基づいて指定されるバッ
ファBUFiが、該連想情報P1〜Pnに先立って指定
されたバッファと等しい場合には先立って指定されたバ
ッファBUFiの後続の命令コードを継続して読み出
し、該連想情報P1〜Pnに先立って指定されたバッフ
ァと異なる場合には先立って指定されたバッファBUF
iから読み出された命令の実行を取り消して該連想情報
P1〜Pnに基づき選択される指定されるバッファBU
Fjの先頭から改めて命令を読み出すよう制御するよう
にしている。
は、前記連想情報P1〜Pnに基づいて指定されるバッ
ファBUFiが、該連想情報P1〜Pnに先立って指定
されたバッファと等しい場合には先立って指定されたバ
ッファBUFiの後続の命令コードを継続して読み出
し、該連想情報P1〜Pnに先立って指定されたバッフ
ァと異なる場合には先立って指定されたバッファBUF
iから読み出された命令の実行を取り消して該連想情報
P1〜Pnに基づき選択される指定されるバッファBU
Fjの先頭から改めて命令を読み出すよう制御するよう
にしている。
【0013】更に、分岐用命令バッファ制御手段は、特
定の条件分岐命令を再び実行する場合に、条件成立時に
は前記連想情報の検索を行なうと共に該検索結果による
前記バッファの指定に先立って最後に登録されるかまた
は最後に使用された前記バッファの1組を指定するよう
前記分岐先命令先行選択手段及び選択手段を制御し、条
件不成立時には前記バッファに登録された順序に従って
その次に登録されたバッファの1組を指定するように前
記分岐先命令先行選択手段及び選択手段を制御するよう
にしている。
定の条件分岐命令を再び実行する場合に、条件成立時に
は前記連想情報の検索を行なうと共に該検索結果による
前記バッファの指定に先立って最後に登録されるかまた
は最後に使用された前記バッファの1組を指定するよう
前記分岐先命令先行選択手段及び選択手段を制御し、条
件不成立時には前記バッファに登録された順序に従って
その次に登録されたバッファの1組を指定するように前
記分岐先命令先行選択手段及び選択手段を制御するよう
にしている。
【0014】従って、分岐命令出現時に、その分岐命令
の命令アドレスに関わらず、分岐用命令バッファ中で最
後に登録された或いは最後に読み出されたエントリから
命令コードを先行選択することにより、従来バッファ検
索に要していたサイクルをある確率で消滅させることが
でき、処理速度の高速化を図ることができる。
の命令アドレスに関わらず、分岐用命令バッファ中で最
後に登録された或いは最後に読み出されたエントリから
命令コードを先行選択することにより、従来バッファ検
索に要していたサイクルをある確率で消滅させることが
でき、処理速度の高速化を図ることができる。
【0015】
【実施例】次に、本発明に係る実施例を図面に基づいて
説明する。図1に本発明の実施例に係る1チップ化され
た命令処理装置の構成図を示す。図1において、図3
(従来例)と重複する部分には同一の符号を附す。
説明する。図1に本発明の実施例に係る1チップ化され
た命令処理装置の構成図を示す。図1において、図3
(従来例)と重複する部分には同一の符号を附す。
【0016】同図において、命令処理装置は、プログラ
ムカウンタPCと、分岐用命令バッファBRBと、命令
解読装置DECとから構成され、分岐用命令バッファB
RBから読み出された命令コードIEiは命令読み出し
バスIQを介して命令解読装置DECに取り込まれるよ
うになっている。
ムカウンタPCと、分岐用命令バッファBRBと、命令
解読装置DECとから構成され、分岐用命令バッファB
RBから読み出された命令コードIEiは命令読み出し
バスIQを介して命令解読装置DECに取り込まれるよ
うになっている。
【0017】分岐用命令バッファBRBは、分岐命令の
分岐先アドレスから始まる連続した命令コード群IE1
〜IEnを保持するn組のバッファBUF1〜BUFn
と、バッファBUF1〜BUFnの中で最大1組を連想
するための連想情報P1〜Pnを保持する連想情報保持
手段RM1〜RMnと、連想情報P1〜Pnとプログラ
ムカウンタPCの内容とを比較する比較器C1〜Cn
と、連想情報P1〜Pn或いは他の制御情報(分岐先命
令先行選択手段PSの指定)に基づいてバッファBUF
i(i=1、…、n)を指定する選択手段S1〜Sn
と、特定の分岐命令を再び実行する時に、連想情報P1
〜Pnの検索を行なうと共に該検索結果によるバッファ
BUFjの指定に先立って、最後に登録されるかまたは
最後に使用されたバッファの1組BUFiを指定するよ
う選択手段S1〜Snを制御して、バッファBUFiか
ら命令コードIEiの読み出しを行なう分岐用命令バッ
ファ制御手段BRCとを有して構成され、また、分岐用
命令バッファ制御手段BRCには、連想情報P1〜Pn
に基づくバッファBUFjの指定に先立ってバッファB
UFiを指定する分岐先命令先行選択手段PSを備えて
いる。
分岐先アドレスから始まる連続した命令コード群IE1
〜IEnを保持するn組のバッファBUF1〜BUFn
と、バッファBUF1〜BUFnの中で最大1組を連想
するための連想情報P1〜Pnを保持する連想情報保持
手段RM1〜RMnと、連想情報P1〜Pnとプログラ
ムカウンタPCの内容とを比較する比較器C1〜Cn
と、連想情報P1〜Pn或いは他の制御情報(分岐先命
令先行選択手段PSの指定)に基づいてバッファBUF
i(i=1、…、n)を指定する選択手段S1〜Sn
と、特定の分岐命令を再び実行する時に、連想情報P1
〜Pnの検索を行なうと共に該検索結果によるバッファ
BUFjの指定に先立って、最後に登録されるかまたは
最後に使用されたバッファの1組BUFiを指定するよ
う選択手段S1〜Snを制御して、バッファBUFiか
ら命令コードIEiの読み出しを行なう分岐用命令バッ
ファ制御手段BRCとを有して構成され、また、分岐用
命令バッファ制御手段BRCには、連想情報P1〜Pn
に基づくバッファBUFjの指定に先立ってバッファB
UFiを指定する分岐先命令先行選択手段PSを備えて
いる。
【0018】プログラムカウンタPCは、実行中の命令
の命令アドレスを表示するもので、分岐用命令バッファ
BRB内の連想情報保持手段RM中に登録されている各
連想情報Pi(i=1、…、n)との比較に供される。
の命令アドレスを表示するもので、分岐用命令バッファ
BRB内の連想情報保持手段RM中に登録されている各
連想情報Pi(i=1、…、n)との比較に供される。
【0019】連想情報保持手段RM内の連想情報Piと
バッファBUF内の命令コードIEiは対としてそれぞ
れ対応している。連想情報Piが分岐命令自身の命令ア
ドレスである場合、IEiにはその分岐命令の分岐先の
命令コードが登録されている。ここで、登録されている
ということは、その分岐命令が以前に実行され、その時
に分岐命令の命令アドレスと分岐先の命令コードの登録
作業が行なわれていたことを意味する。本実施例の場
合、n個のエントリの登録が可能な分岐用命令バッファ
である。
バッファBUF内の命令コードIEiは対としてそれぞ
れ対応している。連想情報Piが分岐命令自身の命令ア
ドレスである場合、IEiにはその分岐命令の分岐先の
命令コードが登録されている。ここで、登録されている
ということは、その分岐命令が以前に実行され、その時
に分岐命令の命令アドレスと分岐先の命令コードの登録
作業が行なわれていたことを意味する。本実施例の場
合、n個のエントリの登録が可能な分岐用命令バッファ
である。
【0020】比較器Ciは、連想情報保持手段RM内の
連想情報PiとプログラムカウンタPCに格納されてい
る命令アドレスとを入力して比較を行ない、一致・不一
致を検出する。プログラムカウンタPCと連想情報P1
〜Pnの全ての比較を行なうわけで、つまり登録されて
いる各連想情報Piの中にプログラムカウンタPCの内
容と一致するものが無いかどうか検索を行なう。一致す
るものがあった場合、それは最大1エントリであり、当
然ながら複数のエントリが同時に一致して検出されるこ
とはない。
連想情報PiとプログラムカウンタPCに格納されてい
る命令アドレスとを入力して比較を行ない、一致・不一
致を検出する。プログラムカウンタPCと連想情報P1
〜Pnの全ての比較を行なうわけで、つまり登録されて
いる各連想情報Piの中にプログラムカウンタPCの内
容と一致するものが無いかどうか検索を行なう。一致す
るものがあった場合、それは最大1エントリであり、当
然ながら複数のエントリが同時に一致して検出されるこ
とはない。
【0021】選択手段S1〜Snは、比較器C1〜Cn
からの一致・不一致の結果と分岐先命令先行選択手段P
Sからの信号を入力とし、実際に命令読み出しバスIQ
に出力する命令コードIEiを選択するものである。
からの一致・不一致の結果と分岐先命令先行選択手段P
Sからの信号を入力とし、実際に命令読み出しバスIQ
に出力する命令コードIEiを選択するものである。
【0022】分岐先命令先行選択手段PSは、バッファ
BUFに登録されているエントリ中、最後に登録が行な
われた、或いは最後に使用された(読み出しが行なわれ
た)エントリを表示するポインタである。
BUFに登録されているエントリ中、最後に登録が行な
われた、或いは最後に使用された(読み出しが行なわれ
た)エントリを表示するポインタである。
【0023】命令解読装置DECは、命令読み出しバス
IQを経由して命令コードを入力し、命令解読を行な
い、命令コードに応じた制御信号を出力するものであ
る。次に、本実施例の動作について説明する。
IQを経由して命令コードを入力し、命令解読を行な
い、命令コードに応じた制御信号を出力するものであ
る。次に、本実施例の動作について説明する。
【0024】命令処理が行なわれている中で、命令解読
装置DECにより分岐命令が検出されると、その旨即座
に分岐用命令バッファ制御手段BRCに通知される。そ
して幾つかの動作が分岐用命令バッファBRBの中で並
行して行なわれる。 [動作1A]:分岐用命令バッファ制御手段BRCは、
現在のプログラムカウンタPCの内容に関わらず、分岐
先命令先行選択手段PSが指している、最後に登録され
た或いは使用されたエントリ中に格納されている命令コ
ードを命令読み出しバスIQに出力させる。ここでは、
前記分岐命令の分岐先の命令コードが、分岐先命令先行
選択手段PSが指定するエントリ中に格納されている命
令コードと同一であることを期待している。尚、次サイ
クルで命令解読装置DECは、その命令読み出しバスI
Qに出力されてくる命令コードを、実際に実行すべきか
どうかに関わらず命令解読を行なう。
装置DECにより分岐命令が検出されると、その旨即座
に分岐用命令バッファ制御手段BRCに通知される。そ
して幾つかの動作が分岐用命令バッファBRBの中で並
行して行なわれる。 [動作1A]:分岐用命令バッファ制御手段BRCは、
現在のプログラムカウンタPCの内容に関わらず、分岐
先命令先行選択手段PSが指している、最後に登録され
た或いは使用されたエントリ中に格納されている命令コ
ードを命令読み出しバスIQに出力させる。ここでは、
前記分岐命令の分岐先の命令コードが、分岐先命令先行
選択手段PSが指定するエントリ中に格納されている命
令コードと同一であることを期待している。尚、次サイ
クルで命令解読装置DECは、その命令読み出しバスI
Qに出力されてくる命令コードを、実際に実行すべきか
どうかに関わらず命令解読を行なう。
【0025】[動作1B]:前記分岐命令の命令アドレ
ス、即ちプログラムカウンタの内容と各連想情報Pi
(この場合は、以前に実行された何等かの分岐命令の命
令アドレス)との比較を行なう。つまり、プログラムカ
ウンタPCと一致するエントリの検索を行なう。
ス、即ちプログラムカウンタの内容と各連想情報Pi
(この場合は、以前に実行された何等かの分岐命令の命
令アドレス)との比較を行なう。つまり、プログラムカ
ウンタPCと一致するエントリの検索を行なう。
【0026】[動作2A]:動作1Bの比較結果により
一致したエントリと動作1Aで読み出したエントリが同
一である時(先行選択が成功した時)は、命令解読装置
DECでの先行命令解読は本来実行すべき命令を解読し
ているので、そのまま命令実行を継続する。
一致したエントリと動作1Aで読み出したエントリが同
一である時(先行選択が成功した時)は、命令解読装置
DECでの先行命令解読は本来実行すべき命令を解読し
ているので、そのまま命令実行を継続する。
【0027】[動作2B]:動作1Bの比較結果により
一致したエントリと動作1Aで読み出したエントリが非
同一である時(先行選択が失敗した時)は、動作1Aで
読み出した命令コードの命令解読装置DECでの先行命
令解読が本来とは異なる命令の解読を行なっているの
で、これをキャンセルし、動作1Bにより一致したエン
トリより新たに命令読み出しバスIQに命令コードを読
み出すよう分岐用命令バッファ制御手段BRCが指示す
る。
一致したエントリと動作1Aで読み出したエントリが非
同一である時(先行選択が失敗した時)は、動作1Aで
読み出した命令コードの命令解読装置DECでの先行命
令解読が本来とは異なる命令の解読を行なっているの
で、これをキャンセルし、動作1Bにより一致したエン
トリより新たに命令読み出しバスIQに命令コードを読
み出すよう分岐用命令バッファ制御手段BRCが指示す
る。
【0028】[動作2C]:動作1Bの比較結果により
一致するエントリが無かった時(検索が失敗し、且つ先
行選択が失敗した時)は、動作1Aで読み出した命令コ
ードの命令解読装置DECでの先行解読動作をキャンセ
ルするよう分岐用命令バッファ制御手段BRCが指示す
る。尚、当然ながら分岐用命令バッファBRBから新た
に命令読み出しバスIQに命令コードは出力せず、メモ
リからの命令フェッチとなる。以上の動作の内、動作1
Aと動作1Bは、並行して同一マシンサイクルで行なわ
れ、また動作2A、動作2B、及び動作2Cは、それぞ
れ場合に応じて次のマシンサイクルで行なわれる。
一致するエントリが無かった時(検索が失敗し、且つ先
行選択が失敗した時)は、動作1Aで読み出した命令コ
ードの命令解読装置DECでの先行解読動作をキャンセ
ルするよう分岐用命令バッファ制御手段BRCが指示す
る。尚、当然ながら分岐用命令バッファBRBから新た
に命令読み出しバスIQに命令コードは出力せず、メモ
リからの命令フェッチとなる。以上の動作の内、動作1
Aと動作1Bは、並行して同一マシンサイクルで行なわ
れ、また動作2A、動作2B、及び動作2Cは、それぞ
れ場合に応じて次のマシンサイクルで行なわれる。
【0029】次に、図2に示す具体例のパイプライン動
作のタイムチャートを用いて説明する。ここで、PDは
タイミングを調整するパイプラインディレイ、DCは命
令デコードサイクル、ACはアドレス計算サイクル、M
Iはマイクロ命令起動サイクル、OEは命令実行サイク
ル、OWは命令実行結果書き込みサイクルをそれぞれ示
し、番号は命令番号に対応している。また、DC〜OW
の5段が通常の1命令文の処理ステップとなる。
作のタイムチャートを用いて説明する。ここで、PDは
タイミングを調整するパイプラインディレイ、DCは命
令デコードサイクル、ACはアドレス計算サイクル、M
Iはマイクロ命令起動サイクル、OEは命令実行サイク
ル、OWは命令実行結果書き込みサイクルをそれぞれ示
し、番号は命令番号に対応している。また、DC〜OW
の5段が通常の1命令文の処理ステップとなる。
【0030】図2(a)は、先行選択が成功した場合
で、本発明の効果が現われる場合のパイプライン処理の
タイムチャートを示している。同図に示すように、命令
2(分岐命令)の命令デコードサイクルDC2の直後の
マシンサイクルで、先行選択により命令BR(命令2の
分岐先の命令)の命令デコードサイクルDCbrに入って
おり、従来(図4参照)、バッファ検索により生じてい
た無駄な空きサイクルが消滅している。
で、本発明の効果が現われる場合のパイプライン処理の
タイムチャートを示している。同図に示すように、命令
2(分岐命令)の命令デコードサイクルDC2の直後の
マシンサイクルで、先行選択により命令BR(命令2の
分岐先の命令)の命令デコードサイクルDCbrに入って
おり、従来(図4参照)、バッファ検索により生じてい
た無駄な空きサイクルが消滅している。
【0031】図2(b)は、先行選択が失敗した場合
で、本発明による効果は現われないが、命令BRの先行
選択による命令デコードサイクルDCbr* はキャンセル
されて、従来例と比較して命令処理速度を落とすことは
ない。
で、本発明による効果は現われないが、命令BRの先行
選択による命令デコードサイクルDCbr* はキャンセル
されて、従来例と比較して命令処理速度を落とすことは
ない。
【0032】本発明は、プログラムにおけるループを考
える時、その効果は顕著に現われる。例えば、FORT
RANのDOループにおいて、ループの終了判断(end-
of-loop test)が条件分岐命令としてそのループの最後
にある場合を考えると、条件分岐は最後の繰り返しを除
いて全てそのループの最初に戻る。即ち、最後の1回を
除く全ての場合に、分岐用命令バッファBRBの最後に
使用された命令コードを先行選択する処理が有効とな
り、その分処理速度が向上することになる。
える時、その効果は顕著に現われる。例えば、FORT
RANのDOループにおいて、ループの終了判断(end-
of-loop test)が条件分岐命令としてそのループの最後
にある場合を考えると、条件分岐は最後の繰り返しを除
いて全てそのループの最初に戻る。即ち、最後の1回を
除く全ての場合に、分岐用命令バッファBRBの最後に
使用された命令コードを先行選択する処理が有効とな
り、その分処理速度が向上することになる。
【0033】
【発明の効果】以上説明したように、本発明によれば、
分岐命令出現時に、その分岐命令の命令アドレスに関わ
らず、分岐用命令バッファ中で最後に登録された或いは
最後に読み出されたエントリから命令コードを先行選択
することにより、従来バッファ検索に要していたサイク
ルをある確率で消滅させることができ、処理速度を高速
にしうる命令処理装置を提供することができる。
分岐命令出現時に、その分岐命令の命令アドレスに関わ
らず、分岐用命令バッファ中で最後に登録された或いは
最後に読み出されたエントリから命令コードを先行選択
することにより、従来バッファ検索に要していたサイク
ルをある確率で消滅させることができ、処理速度を高速
にしうる命令処理装置を提供することができる。
【図1】本発明の実施例に係る命令処理装置の構成図で
ある。
ある。
【図2】本発明のパイプライン処理のタイムチャート
で、図2(a)は先行選択が成功した場合、図2(b)
は先行選択が失敗した場合である。
で、図2(a)は先行選択が成功した場合、図2(b)
は先行選択が失敗した場合である。
【図3】従来の命令処理装置の構成図である。
【図4】従来の命令処理装置のパイプライン処理のタイ
ムチャートである。
ムチャートである。
BRB…分岐用命令バッファ
BUF、BUF1〜BUFn…バッファ
RM、RM1〜RMn…連想情報保持手段
S1〜Sn…選択手段
C1〜Cn…比較器
BRC、BRC2…分岐用命令バッファ制御手段
PS…分岐先命令先行選択手段
PC…プログラムカウンタ
DEC…命令解読装置
IQ…命令読み出しバス
P1〜Pn…連想情報
IE1〜IEn…命令コード
PD…パイプラインディレイ
DC…命令デコードサイクル
AC…アドレス計算サイクル
MI…マイクロ命令起動サイクル
OE…命令実行サイクル
OW…命令実行結果書き込みサイクル
Claims (5)
- 【請求項1】 分岐命令の分岐先アドレスから始まる連
続した命令コード群を保持する複数組のバッファと、前
記複数組のバッファの中で最大1組を連想するための連
想情報を保持する連想情報保持手段と、前記連想情報或
いは他の制御情報に基づいてバッファを指定する選択手
段と、特定の分岐命令を再び実行する時に前記連想情報
の検索を行なうと共に該検索結果による前記バッファの
指定に先立って最後に登録されるかまたは最後に使用さ
れた前記バッファの1組を指定するよう前記選択手段を
制御して前記バッファからの読み出しを行なう分岐用命
令バッファ制御手段とを有することを特徴とする命令処
理装置。 - 【請求項2】 前記分岐用命令バッファ制御手段は、前
記連想情報に基づいて指定されるバッファが、該連想情
報に先立って指定されたバッファと等しい場合には先立
って指定されたバッファの後続の命令コードを継続して
読み出し、該連想情報に先立って指定されたバッファと
異なる場合には先立って指定されたバッファから読み出
された命令の実行を取り消して該連想情報に基づき選択
される指定されるバッファの先頭から改めて命令を読み
出すよう制御することを特徴とする請求項1に記載の命
令処理装置。 - 【請求項3】 前記分岐用命令バッファ制御手段は、前
記連想情報に基づくバッファの指定に先立ってバッファ
を指定する分岐先命令先行選択手段を有し、前記分岐用
命令バッファ制御手段は、特定の条件分岐命令を再び実
行する場合に、条件成立時には前記連想情報の検索を行
なうと共に該検索結果による前記バッファの指定に先立
って最後に登録されるかまたは最後に使用された前記バ
ッファの1組を指定するよう前記分岐先命令先行選択手
段及び選択手段を制御し、条件不成立時には前記バッフ
ァに登録された順序に従ってその次に登録されたバッフ
ァの1組を指定するよう前記分岐先命令先行選択手段及
び選択手段を制御することを特徴とする請求項1に記載
の命令処理装置。 - 【請求項4】 前記連想情報は、分岐命令自身の命令ア
ドレスであること特徴とする請求項1、2、または3に
記載の命令処理装置。 - 【請求項5】 前記連想情報は、分岐先命令アドレスで
あること特徴とする請求項1、2、または3に記載の命
令処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15191191A JPH052483A (ja) | 1991-06-24 | 1991-06-24 | 命令処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15191191A JPH052483A (ja) | 1991-06-24 | 1991-06-24 | 命令処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH052483A true JPH052483A (ja) | 1993-01-08 |
Family
ID=15528893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP15191191A Withdrawn JPH052483A (ja) | 1991-06-24 | 1991-06-24 | 命令処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH052483A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8571234B2 (en) | 2009-06-08 | 2013-10-29 | Samsung Display Co., Ltd. | Display device and driving method thereof |
US8577058B2 (en) | 2009-06-05 | 2013-11-05 | Samsung Display Co., Ltd. | Display device and driving method thereof |
-
1991
- 1991-06-24 JP JP15191191A patent/JPH052483A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8577058B2 (en) | 2009-06-05 | 2013-11-05 | Samsung Display Co., Ltd. | Display device and driving method thereof |
US8571234B2 (en) | 2009-06-08 | 2013-10-29 | Samsung Display Co., Ltd. | Display device and driving method thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4476525A (en) | Pipeline-controlled data processing system capable of performing a plurality of instructions simultaneously | |
EP0448499B1 (en) | Instruction prefetch method and system for branch-with-execute instructions | |
US6081887A (en) | System for passing an index value with each prediction in forward direction to enable truth predictor to associate truth value with particular branch instruction | |
US20050289324A1 (en) | Trace cache bypassing | |
JPH07281895A (ja) | 分岐キャッシュ | |
US8341383B2 (en) | Method and a system for accelerating procedure return sequences | |
JPH0991136A (ja) | 信号処理装置 | |
JPH0619707A (ja) | 情報処理装置 | |
JP2000148472A (ja) | マイクロプロセッサ装置及びそのソフトウェア命令高速化方法並びにその制御プログラムを記録した記録媒体 | |
JPS6393038A (ja) | 計算機 | |
US7010675B2 (en) | Fetch branch architecture for reducing branch penalty without branch prediction | |
US5146570A (en) | System executing branch-with-execute instruction resulting in next successive instruction being execute while specified target instruction is prefetched for following execution | |
JP2001060152A (ja) | 分岐予測を抑止する情報処理装置および方法 | |
JPH077356B2 (ja) | パイプライン方式のマイクロプロセッサ | |
JPH052483A (ja) | 命令処理装置 | |
US20210294609A1 (en) | Processor and pipeline processing method | |
JP2508021B2 (ja) | デ−タ処理装置 | |
WO2012132214A1 (ja) | プロセッサ及びその命令処理方法 | |
JP2534662B2 (ja) | 命令キヤツシユ制御方法 | |
JPH05241827A (ja) | 命令バッファ制御装置 | |
JP2772100B2 (ja) | 並列命令フェッチ機構 | |
JP3493110B2 (ja) | 高速分岐処理装置 | |
JP2591325B2 (ja) | 分岐制御装置 | |
JPH06301537A (ja) | 命令フェッチ回路 | |
JPH01239638A (ja) | 分岐予測を行う情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 19980903 |