JPH04372019A - パイプライン制御装置及びマイクロコンピュータ - Google Patents
パイプライン制御装置及びマイクロコンピュータInfo
- Publication number
- JPH04372019A JPH04372019A JP15009991A JP15009991A JPH04372019A JP H04372019 A JPH04372019 A JP H04372019A JP 15009991 A JP15009991 A JP 15009991A JP 15009991 A JP15009991 A JP 15009991A JP H04372019 A JPH04372019 A JP H04372019A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- pipeline
- control
- execution
- electronic circuit
- 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
- 238000012545 processing Methods 0.000 claims abstract description 37
- 230000006870 function Effects 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 6
- 238000000034 method Methods 0.000 abstract description 7
- 238000013507 mapping Methods 0.000 abstract description 4
- 230000008569 process Effects 0.000 abstract description 4
- 238000006243 chemical reaction Methods 0.000 abstract description 2
- 230000003111 delayed effect Effects 0.000 description 9
- 238000013461 design Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
Landscapes
- Advance Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は、パイプライン構造によ
って並列処理を行なっているマイクロコンピュータ等の
電子回路装置に係り、特に、パイプラインを構成する各
ステージ間の競合によって必要となる競合ステージ間の
優先処理やウェイト,ストール等の複雑なパイプライン
制御を必要とする電子回路装置において、実行する処理
内容によってパイプライン実行制御を最適に設定して効
率的に動作させることに好適なパイプライン制御装置、
及びマイクロコンピュータに関する。
って並列処理を行なっているマイクロコンピュータ等の
電子回路装置に係り、特に、パイプラインを構成する各
ステージ間の競合によって必要となる競合ステージ間の
優先処理やウェイト,ストール等の複雑なパイプライン
制御を必要とする電子回路装置において、実行する処理
内容によってパイプライン実行制御を最適に設定して効
率的に動作させることに好適なパイプライン制御装置、
及びマイクロコンピュータに関する。
【0002】
【従来の技術】従来、パイプライン構造によって並列処
理を行なっているマイクロコンピュータ等の電子回路装
置において、上記したようなパイプライン実行制御を行
なうための手段は、一般にハードウェアロジックで作り
付けられている。
理を行なっているマイクロコンピュータ等の電子回路装
置において、上記したようなパイプライン実行制御を行
なうための手段は、一般にハードウェアロジックで作り
付けられている。
【0003】これは、電子回路システムで実行する処理
内容とその実行シーケンスがあらかじめ決まっており、
並列処理時に必要となるパイプライン実行制御を或る程
度特定することができるためである。
内容とその実行シーケンスがあらかじめ決まっており、
並列処理時に必要となるパイプライン実行制御を或る程
度特定することができるためである。
【0004】しかし、ハードウェアロジックで作り付け
られているパイプライン実行制御以外の動作はさせるこ
とができない。従って、設計時には、必要となるパイプ
ライン制御を特定した上で、種々の動作状態において出
来るだけ実行性能が上がるように最適化された制御動作
を実現するハードウェアロジックを構成する必要があっ
た。
られているパイプライン実行制御以外の動作はさせるこ
とができない。従って、設計時には、必要となるパイプ
ライン制御を特定した上で、種々の動作状態において出
来るだけ実行性能が上がるように最適化された制御動作
を実現するハードウェアロジックを構成する必要があっ
た。
【0005】
【発明が解決しようとする課題】上記従来技術によると
、設計時に想定した以外の動作をさせることができない
ため、これはハードウェア上の制限事項となってしまい
、ハードウェアを変更する以外に容易に変更することが
できない。
、設計時に想定した以外の動作をさせることができない
ため、これはハードウェア上の制限事項となってしまい
、ハードウェアを変更する以外に容易に変更することが
できない。
【0006】このことは、電子回路装置で実行する処理
内容の追加や変更を行なう場合に不都合となる。又、更
に、電子回路装置で実行する処理内容によって、それぞ
れに最適なパイプライン実行を提供することが難しくな
るという問題がある。
内容の追加や変更を行なう場合に不都合となる。又、更
に、電子回路装置で実行する処理内容によって、それぞ
れに最適なパイプライン実行を提供することが難しくな
るという問題がある。
【0007】このような問題は、電子回路装置で実行す
る処理内容の組み合わせが多く、広範囲にわたる場合や
、実行性能を上げるためにパイプライン段数を深くした
場合等に特に顕著に表れてくる。又、設計時に全てのパ
イプライン実行制御を網羅して、これを抜けなくハード
ウェアロジックとして作り付けることも難しくなるとい
う問題がある。
る処理内容の組み合わせが多く、広範囲にわたる場合や
、実行性能を上げるためにパイプライン段数を深くした
場合等に特に顕著に表れてくる。又、設計時に全てのパ
イプライン実行制御を網羅して、これを抜けなくハード
ウェアロジックとして作り付けることも難しくなるとい
う問題がある。
【0008】本発明の目的は、実行する処理内容によっ
てパイプライン実行制御内容を可変とし、更にきめ細か
なパイプライン実行制御が可能な信頼性の高いパイプラ
イン制御装置、及びこのパイプライン制御装置を備えた
マイクロコンピュータを提供することにある。
てパイプライン実行制御内容を可変とし、更にきめ細か
なパイプライン実行制御が可能な信頼性の高いパイプラ
イン制御装置、及びこのパイプライン制御装置を備えた
マイクロコンピュータを提供することにある。
【0009】
【課題を解決するための手段】上記目的は、従来技術に
おいてハードウェアロジックで作り付けられていたパイ
プライン制御手段の一部または全てをソフトウェアで制
御可能とすることにより、達成される。
おいてハードウェアロジックで作り付けられていたパイ
プライン制御手段の一部または全てをソフトウェアで制
御可能とすることにより、達成される。
【0010】パイプラインの実行をソフトウェアで制御
可能とするために、以下の具体的手段を設ける。
可能とするために、以下の具体的手段を設ける。
【0011】(1)パイプライン実行のために必要とな
る制御信号が発生可能な、パイプライン制御命令手段。
る制御信号が発生可能な、パイプライン制御命令手段。
【0012】(2)パイプライン制御命令列を、必要に
応じて逐次実行することが可能な命令実行手段。
応じて逐次実行することが可能な命令実行手段。
【0013】(3)パイプライン制御命令でパイプライ
ン制御信号を発生する際に、パイプライン制御のための
条件として、必要な状態信号を適当な組み合わせで適宜
参照することが可能な制御条件参照手段。
ン制御信号を発生する際に、パイプライン制御のための
条件として、必要な状態信号を適当な組み合わせで適宜
参照することが可能な制御条件参照手段。
【0014】
【作用】上記の手段により、従来技術でハードウェアロ
ジックで作り付けられていたパイプライン制御手段の一
部または全てを、パイプライン制御命令列なるソフトウ
ェアで制御することが可能となる。
ジックで作り付けられていたパイプライン制御手段の一
部または全てを、パイプライン制御命令列なるソフトウ
ェアで制御することが可能となる。
【0015】従って、ソフトウェアの内容を変更,修正
することにより、ハードウェアを変更すること無く、パ
イプライン動作の制御内容を変更することが可能となる
。
することにより、ハードウェアを変更すること無く、パ
イプライン動作の制御内容を変更することが可能となる
。
【0016】又、実行する処理内容によってパイプライ
ン実行制御内容を動的に変更することができるため、更
にきめ細かなパイプライン実行制御が可能な信頼性の高
いパイプライン制御装置、及びパイプライン制御装置を
備えたマイクロコンピュータ等の電子回路装置を提供す
ることができる。
ン実行制御内容を動的に変更することができるため、更
にきめ細かなパイプライン実行制御が可能な信頼性の高
いパイプライン制御装置、及びパイプライン制御装置を
備えたマイクロコンピュータ等の電子回路装置を提供す
ることができる。
【0017】
【実施例】以下、本発明の一実施例について、図面を用
いて説明する。
いて説明する。
【0018】図1は、書換え可能なソフトウェアプログ
ラムでパイプライン動作の制御が可能なパイプライン制
御装置の一実施例として、そのハードウェア構成の概略
を示したものである。
ラムでパイプライン動作の制御が可能なパイプライン制
御装置の一実施例として、そのハードウェア構成の概略
を示したものである。
【0019】本パイプライン制御装置を備えた電子回路
装置において、処理を実行させるための命令は、命令レ
ジスタ(IR)101に取り込まれる。IR101に取
り込まれた命令は、マッピングROM102によって、
マイクロ命令を格納している制御ROM104の適当な
第一のアドレスに変換される。第一のアドレスは、更に
セレクタ103を介して制御ROM104に入力され、
第一のアドレスに対応するマイクロ命令がマイクロ命令
レジスタ105に読み出される。
装置において、処理を実行させるための命令は、命令レ
ジスタ(IR)101に取り込まれる。IR101に取
り込まれた命令は、マッピングROM102によって、
マイクロ命令を格納している制御ROM104の適当な
第一のアドレスに変換される。第一のアドレスは、更に
セレクタ103を介して制御ROM104に入力され、
第一のアドレスに対応するマイクロ命令がマイクロ命令
レジスタ105に読み出される。
【0020】ここで、マイクロ命令レジスタ105に読
み出されたマイクロ命令は、本電子回路装置が実行すべ
き処理を制御するためのマイクロコードフィールド(以
下、MCFと略記)106と、本電子回路装置で実行す
る処理をパイプライン実行するために必要となるパイプ
ライン制御フィールド(以下、PCFと略記)107か
ら成っている。
み出されたマイクロ命令は、本電子回路装置が実行すべ
き処理を制御するためのマイクロコードフィールド(以
下、MCFと略記)106と、本電子回路装置で実行す
る処理をパイプライン実行するために必要となるパイプ
ライン制御フィールド(以下、PCFと略記)107か
ら成っている。
【0021】更に、PCF107は、次に読み出すマイ
クロ命令が格納されている第二のアドレスを生成するた
めの次アドレス制御と、第二のアドレスと第一のアドレ
スのどちらを制御ROM104の読み出しアドレスにす
るかを選択するセレクタ103に対するアドレス選択制
御と、マッピングROM102のアドレス変換制御と、
本電子回路装置におけるパイプライン動作制御の四種類
の制御を行うために必要となる命令から成っている。
クロ命令が格納されている第二のアドレスを生成するた
めの次アドレス制御と、第二のアドレスと第一のアドレ
スのどちらを制御ROM104の読み出しアドレスにす
るかを選択するセレクタ103に対するアドレス選択制
御と、マッピングROM102のアドレス変換制御と、
本電子回路装置におけるパイプライン動作制御の四種類
の制御を行うために必要となる命令から成っている。
【0022】PCF107の制御命令は、シーケンス制
御部108,パイプライン制御部109に入力される。 シーケンス制御部108は、次アドレス制御,アドレス
選択制御,アドレス変換制御のために必要となるデータ
及び制御信号122を生成して、それぞれセレクタ10
3、及びマッピングROM102に供給,制御する。パ
イプライン制御部109は、パイプライン動作を制御す
るためのパイプライン制御信号121を生成して、パイ
プライン実行に必要となるタイミング制御手段の統括的
な制御、及びデータ加工の制御を行う。
御部108,パイプライン制御部109に入力される。 シーケンス制御部108は、次アドレス制御,アドレス
選択制御,アドレス変換制御のために必要となるデータ
及び制御信号122を生成して、それぞれセレクタ10
3、及びマッピングROM102に供給,制御する。パ
イプライン制御部109は、パイプライン動作を制御す
るためのパイプライン制御信号121を生成して、パイ
プライン実行に必要となるタイミング制御手段の統括的
な制御、及びデータ加工の制御を行う。
【0023】ここで、シーケンス制御部108、及びパ
イプライン制御部109では、PCF107の制御命令
に従って、本電子回路装置の状態信号を反映している状
態フラグ(以下、PSCFと略記)110の値を、それ
ぞれの制御条件として参照することができる。従って、
PCF107の制御命令は、PSCF110を参照した
結果によって、それぞれの制御内容を変化させることが
できる。
イプライン制御部109では、PCF107の制御命令
に従って、本電子回路装置の状態信号を反映している状
態フラグ(以下、PSCFと略記)110の値を、それ
ぞれの制御条件として参照することができる。従って、
PCF107の制御命令は、PSCF110を参照した
結果によって、それぞれの制御内容を変化させることが
できる。
【0024】ここで、PSCF110の参照条件は、P
CF107の制御命令にしたがって、必要な状態信号の
適当な値の組み合わせとして設定することができる。 又、PCF107の制御命令は、PSCF110の適当
な値の組み合わせとセット又はリセット条件に従って、
PSCF110の値をセット又はリセットすることがで
きる。
CF107の制御命令にしたがって、必要な状態信号の
適当な値の組み合わせとして設定することができる。 又、PCF107の制御命令は、PSCF110の適当
な値の組み合わせとセット又はリセット条件に従って、
PSCF110の値をセット又はリセットすることがで
きる。
【0025】なお、上記で説明したパイプライン制御装
置で、マイクロコードフィールド106の部分を省いた
形、すなわち、制御ROM104にパイプライン制御命
令のみを格納してパイプライン制御を行なうようにする
こともできるし、パイプライン制御命令自身を処理実行
命令の中に含ませることも可能である。
置で、マイクロコードフィールド106の部分を省いた
形、すなわち、制御ROM104にパイプライン制御命
令のみを格納してパイプライン制御を行なうようにする
こともできるし、パイプライン制御命令自身を処理実行
命令の中に含ませることも可能である。
【0026】次に、上記で説明したパイプライン制御装
置を用いた場合のパイプライン制御について、更に具体
例を挙げて説明する。
置を用いた場合のパイプライン制御について、更に具体
例を挙げて説明する。
【0027】図2に、パイプライン構成の一例を示す。
【0028】本パイプライン構成を持つ電子回路装置に
おいては、一命令の実行が最大五つのパイプラインステ
ージ(段)に分割して実行される。
おいては、一命令の実行が最大五つのパイプラインステ
ージ(段)に分割して実行される。
【0029】すなわち、本電子回路装置で実行する命令
は、該命令自身を本電子回路装置内に取り込む命令フェ
ッチ(IF)段201と、本電子回路装置内に取り込ん
だ命令を実行可能な形に解読処理する命令デコード(I
D)段202と、解読処理された命令を実際に実行する
命令実行(EX)段203と、命令実行が外部メモリア
クセスを伴う場合に実際にメモリアクセスを行なうため
のメモリアクセス(MA)段204と、メモリアクセス
が本電子回路装置にデータを取り込む処理を伴う場合に
所定のデスティネーションに実際にデータを書き込むデ
ータ取り込み(WB)段205、の計五段に分割して実
行される。
は、該命令自身を本電子回路装置内に取り込む命令フェ
ッチ(IF)段201と、本電子回路装置内に取り込ん
だ命令を実行可能な形に解読処理する命令デコード(I
D)段202と、解読処理された命令を実際に実行する
命令実行(EX)段203と、命令実行が外部メモリア
クセスを伴う場合に実際にメモリアクセスを行なうため
のメモリアクセス(MA)段204と、メモリアクセス
が本電子回路装置にデータを取り込む処理を伴う場合に
所定のデスティネーションに実際にデータを書き込むデ
ータ取り込み(WB)段205、の計五段に分割して実
行される。
【0030】実際の命令実行は、通常、すなわち各パイ
プラインステージの間で実行上の競合が起こらなければ
、図2に示したように命令1から命令5まで連続的に、
順に1段ずつパイプラインステージをずらせた形で実行
されていく。
プラインステージの間で実行上の競合が起こらなければ
、図2に示したように命令1から命令5まで連続的に、
順に1段ずつパイプラインステージをずらせた形で実行
されていく。
【0031】すなわち図2で、命令1の命令フェッチが
T1サイクルのIF段で行なわれたあと、次にT2サイ
クルのID段に実行が移っていくが、この同じT2サイ
クルで次に実行する命令2の命令フェッチが行なわれる
。更に、T3サイクルでは、命令1のEX段が実行され
ている間に、命令2のID段、命令3のIF段が順に実
行されていき、T5サイクルに示したように、本パイプ
ライン構成では最大五つのパイプラインステージがそれ
ぞれ順に違う命令の実行を流れ作業的に行なうことがで
きる。
T1サイクルのIF段で行なわれたあと、次にT2サイ
クルのID段に実行が移っていくが、この同じT2サイ
クルで次に実行する命令2の命令フェッチが行なわれる
。更に、T3サイクルでは、命令1のEX段が実行され
ている間に、命令2のID段、命令3のIF段が順に実
行されていき、T5サイクルに示したように、本パイプ
ライン構成では最大五つのパイプラインステージがそれ
ぞれ順に違う命令の実行を流れ作業的に行なうことがで
きる。
【0032】すなわち、一般にn段のパイプライン構成
を持つ電子回路装置では、命令の実行性能を理想的には
n倍に高速化することが可能となる。
を持つ電子回路装置では、命令の実行性能を理想的には
n倍に高速化することが可能となる。
【0033】このようなパイプライン動作を行なうため
には、それぞれのパイプラインステージ間のデータの流
れを、ステージごとに規則的に制御することが必要とな
る。すなわち、図2に示したパイプライン流れ図では、
それぞれのサイクルが始まるタイミング211〜216
で、それぞれ前のパイプラインステージから次のパイプ
ラインステージへ、一段分だけデータを転送することに
すれば、基本的に命令のパイプライン動作を可能にする
ことができる。
には、それぞれのパイプラインステージ間のデータの流
れを、ステージごとに規則的に制御することが必要とな
る。すなわち、図2に示したパイプライン流れ図では、
それぞれのサイクルが始まるタイミング211〜216
で、それぞれ前のパイプラインステージから次のパイプ
ラインステージへ、一段分だけデータを転送することに
すれば、基本的に命令のパイプライン動作を可能にする
ことができる。
【0034】但し、このときに或る一つのステージに着
目すると、データ転送のタイミングで、前のステージか
らの入力データを入力すると共に、そのステージで処理
の完了した出力データを次のステージへ出力しなければ
ならず、データ転送時に入力データが出力データの内容
に影響を及ぼさないようにする必要がある。
目すると、データ転送のタイミングで、前のステージか
らの入力データを入力すると共に、そのステージで処理
の完了した出力データを次のステージへ出力しなければ
ならず、データ転送時に入力データが出力データの内容
に影響を及ぼさないようにする必要がある。
【0035】従って、それぞれのステージでは、データ
の入力手段と出力手段があり、この間にデータ処理手段
があって、更に、この三者の間のデータ転送タイミング
を制御するタイミング制御手段が必要となる。
の入力手段と出力手段があり、この間にデータ処理手段
があって、更に、この三者の間のデータ転送タイミング
を制御するタイミング制御手段が必要となる。
【0036】すなわち、命令のパイプライン実行を行な
う電子回路装置では、各パイプラインステージに対応し
たハードウェア回路が存在して、ハードウェア回路は、
上記した入力手段,出力手段,処理手段、及びタイミン
グ制御手段で特徴付けられる。
う電子回路装置では、各パイプラインステージに対応し
たハードウェア回路が存在して、ハードウェア回路は、
上記した入力手段,出力手段,処理手段、及びタイミン
グ制御手段で特徴付けられる。
【0037】本実施例における電子回路装置では、パイ
プライン動作を行なうために、図2で示した命令フェッ
チ部221,命令デコード部222,命令実行部223
,メモリアクセス部224,データ取り込み部225の
五つのハードウェア回路が存在する。
プライン動作を行なうために、図2で示した命令フェッ
チ部221,命令デコード部222,命令実行部223
,メモリアクセス部224,データ取り込み部225の
五つのハードウェア回路が存在する。
【0038】本発明におけるパイプライン動作の制御と
は、このように分割することができる各ハードウェア回
路のタイミング制御手段を、パイプライン動作全体が矛
盾無く機能するように統括的に制御し、かつ必要のある
場合は命令の無効化等の本来のデータ処理命令で指定さ
れた処理以外のデータ変更を制御することをいう。
は、このように分割することができる各ハードウェア回
路のタイミング制御手段を、パイプライン動作全体が矛
盾無く機能するように統括的に制御し、かつ必要のある
場合は命令の無効化等の本来のデータ処理命令で指定さ
れた処理以外のデータ変更を制御することをいう。
【0039】ここで、各パイプラインステージ間に実行
上の競合が発生しなければ、パイプライン動作に関する
制御は不要なものとなるが、実際には様々な形で各ステ
ージ間の競合が発生し、これはパイプライン段数が深く
なるほど多発し、更に性能を上げるためにはその制御内
容が複雑化することが避けられない。
上の競合が発生しなければ、パイプライン動作に関する
制御は不要なものとなるが、実際には様々な形で各ステ
ージ間の競合が発生し、これはパイプライン段数が深く
なるほど多発し、更に性能を上げるためにはその制御内
容が複雑化することが避けられない。
【0040】その一例として、図2に示したパイプライ
ン流れ図において、命令1がメモリからデータを本電子
回路装置に読みだしてくるロード命令で、命令2が命令
1でロードされた値を用いて演算を実行する演算命令で
ある場合のパイプライン制御例を、図3に示す。
ン流れ図において、命令1がメモリからデータを本電子
回路装置に読みだしてくるロード命令で、命令2が命令
1でロードされた値を用いて演算を実行する演算命令で
ある場合のパイプライン制御例を、図3に示す。
【0041】図3の例で、演算命令を実行するためには
、その前に実行されているロード命令が完了していて、
次の演算命令で演算に使用するデータが本電子回路装置
内に取り込まれている必要がある。すなわち、パイプラ
インステージEX2は少なくともWB1の実行サイクル
、すなわち、T5サイクル以降になければならない。従
って、図3の(a)のように、少なくとも演算命令の命
令実行段EX2はT5サイクル以降、すなわち、図3で
はT6サイクルまでその実行を遅らせる必要がある。
、その前に実行されているロード命令が完了していて、
次の演算命令で演算に使用するデータが本電子回路装置
内に取り込まれている必要がある。すなわち、パイプラ
インステージEX2は少なくともWB1の実行サイクル
、すなわち、T5サイクル以降になければならない。従
って、図3の(a)のように、少なくとも演算命令の命
令実行段EX2はT5サイクル以降、すなわち、図3で
はT6サイクルまでその実行を遅らせる必要がある。
【0042】しかしこのままでは、演算命令の命令実行
段EX2と命令4の命令実行段EX4が、T6サイクル
で競合してしまうことになる。すなわち、図2における
命令実行部223を違う命令で同時に使用してしまうこ
とになる。
段EX2と命令4の命令実行段EX4が、T6サイクル
で競合してしまうことになる。すなわち、図2における
命令実行部223を違う命令で同時に使用してしまうこ
とになる。
【0043】一般に、同じ命令実行部では、演算処理に
要するハードウェア量を最小限にしてそれに要するコス
トの低減を図っているため、同時に違う命令の演算処理
を行なうようには設計されていない。但し、演算性能を
重視して、同時に違う命令の演算処理を行なうことが可
能なように設計されている場合は、命令実行部が更にも
う一つ存在することになる。
要するハードウェア量を最小限にしてそれに要するコス
トの低減を図っているため、同時に違う命令の演算処理
を行なうようには設計されていない。但し、演算性能を
重視して、同時に違う命令の演算処理を行なうことが可
能なように設計されている場合は、命令実行部が更にも
う一つ存在することになる。
【0044】しかし、本実施例における電子回路装置の
ように命令実行部が一つしか存在しない装置において、
上記したような競合を最も確実に回避するためには、図
3の(b)のように、演算命令が遅らされた分、その後
続命令全てのパイプラインステージを一律に遅らせてし
まうことが考えられる。
ように命令実行部が一つしか存在しない装置において、
上記したような競合を最も確実に回避するためには、図
3の(b)のように、演算命令が遅らされた分、その後
続命令全てのパイプラインステージを一律に遅らせてし
まうことが考えられる。
【0045】又、一般に外部メモリをアクセスするため
には時間がかかるために、命令フェッチ部の入力手段、
又は出力手段を複数組持つことによって、実行予定の複
数の命令をあらかじめ蓄えておいて使用する命令プリフ
ェッチキューを備えることがある。
には時間がかかるために、命令フェッチ部の入力手段、
又は出力手段を複数組持つことによって、実行予定の複
数の命令をあらかじめ蓄えておいて使用する命令プリフ
ェッチキューを備えることがある。
【0046】これと同様に、例えば、図2の命令デコー
ド部222の出力手段を複数個備えた場合を考えると、
図3の(c)のようなパイプライン制御を行なうことも
可能となる。
ド部222の出力手段を複数個備えた場合を考えると、
図3の(c)のようなパイプライン制御を行なうことも
可能となる。
【0047】すなわち、T3サイクルにおける演算命令
の命令デコード結果を、複数個の出力手段の一つに一時
退避しておき、演算命令の命令実行段がロード命令完了
時まで遅らされている間に、命令3以降の命令列を先に
実行してしまうという方法である。
の命令デコード結果を、複数個の出力手段の一つに一時
退避しておき、演算命令の命令実行段がロード命令完了
時まで遅らされている間に、命令3以降の命令列を先に
実行してしまうという方法である。
【0048】ここで、命令4のIF4が一段遅らされて
いるのは、ロード命令のMA1でメモリアクセスのため
のバスが使用されているために、このバスリソースが空
き状態になるまで命令フェッチを待たせる必要があるた
めである。
いるのは、ロード命令のMA1でメモリアクセスのため
のバスが使用されているために、このバスリソースが空
き状態になるまで命令フェッチを待たせる必要があるた
めである。
【0049】このようなバスリソースの競合は命令フェ
ッチにもデータアクセスにも同一のバスを使用している
ために発生する。従って、命令フェッチに使用するバス
とデータアクセスに使用するバスとを別に備えれば、こ
のようなバスリソースの競合は起こらない。又、共通の
バスを使用している場合にも、図3の(c)のようにI
F4を待たせる代わりに、ロード命令のMA1を待たせ
ることもでき、その方がパイプライン実行全体として命
令の実行効率が上がる場合も考えられる。
ッチにもデータアクセスにも同一のバスを使用している
ために発生する。従って、命令フェッチに使用するバス
とデータアクセスに使用するバスとを別に備えれば、こ
のようなバスリソースの競合は起こらない。又、共通の
バスを使用している場合にも、図3の(c)のようにI
F4を待たせる代わりに、ロード命令のMA1を待たせ
ることもでき、その方がパイプライン実行全体として命
令の実行効率が上がる場合も考えられる。
【0050】以上のように、パイプラインの制御はその
ハードウェアリソースや、実行する命令の仕様、又、実
行する命令列、すなわち、プログラムの種類によって、
その最適な制御方法が幾種類にも変化することが考えら
れる。
ハードウェアリソースや、実行する命令の仕様、又、実
行する命令列、すなわち、プログラムの種類によって、
その最適な制御方法が幾種類にも変化することが考えら
れる。
【0051】このときに、パイプライン動作の制御をハ
ードウェア固定のいわゆるランダムロジックで構成して
いると、設計工数の増大を招くばかりでなく、電子回路
装置全体の命令実行性能を下げてしまう可能性がある。
ードウェア固定のいわゆるランダムロジックで構成して
いると、設計工数の増大を招くばかりでなく、電子回路
装置全体の命令実行性能を下げてしまう可能性がある。
【0052】本発明は、このパイプライン制御の内容を
、書き替え可能なソフトウェアプログラムによって、実
行サイクルごとに逐一制御することを可能にするもので
ある。本発明によってパイプライン制御におけるフレク
シビリティーが上がり、パイプラインステージ相互間に
発生する種々多様な競合に対して、それぞれ、より最適
なパイプライン制御を行うことが可能となる。
、書き替え可能なソフトウェアプログラムによって、実
行サイクルごとに逐一制御することを可能にするもので
ある。本発明によってパイプライン制御におけるフレク
シビリティーが上がり、パイプラインステージ相互間に
発生する種々多様な競合に対して、それぞれ、より最適
なパイプライン制御を行うことが可能となる。
【0053】以下、パイプラインの動作を制御するため
のソフトウェアの一実施例について説明する。
のソフトウェアの一実施例について説明する。
【0054】まず、図1における状態フラグ(PSCF
)110の一構成例を、図4に示す。
)110の一構成例を、図4に示す。
【0055】図4に示した状態フラグは八ビットで構成
され、それぞれ、パイプラインステージ間のレジスタ競
合状態を反映するレジスタ競合フラグ(C),IF段の
待ち状態を反映するIFウェイトフラグ(W),命令フ
ェッチやデータアクセス等で外部の共通バスを使用して
いるかどうかを反映するバスサイクルフラグ(B),ロ
ード命令の実行状態を示すロードフラグ(L),乗算ユ
ニットにおける実行状態を反映する乗算実行フラグ(M
),IF段の実行を制御するためのIF禁止フラグ(I
),パイプライン制御命令自身がセマフォーとして利用
することのできるセマフォー1とセマフォー2(S)な
る機能を備えている。
され、それぞれ、パイプラインステージ間のレジスタ競
合状態を反映するレジスタ競合フラグ(C),IF段の
待ち状態を反映するIFウェイトフラグ(W),命令フ
ェッチやデータアクセス等で外部の共通バスを使用して
いるかどうかを反映するバスサイクルフラグ(B),ロ
ード命令の実行状態を示すロードフラグ(L),乗算ユ
ニットにおける実行状態を反映する乗算実行フラグ(M
),IF段の実行を制御するためのIF禁止フラグ(I
),パイプライン制御命令自身がセマフォーとして利用
することのできるセマフォー1とセマフォー2(S)な
る機能を備えている。
【0056】以下、必要に応じて本実施例中において想
定した電子回路装置の仕様説明を行ないながら、状態フ
ラグの各ビットごとにその機能の詳細を説明する。
定した電子回路装置の仕様説明を行ないながら、状態フ
ラグの各ビットごとにその機能の詳細を説明する。
【0057】レジスタ競合フラグ(C)は、図2のID
段に存在する命令で指定されているソースレジスタと、
それ以前に実行されたロード命令又は乗算命令のデステ
ィネーションレジスタとを比較して、その結果をハード
ウェアが自動的に反映しているフラグである。
段に存在する命令で指定されているソースレジスタと、
それ以前に実行されたロード命令又は乗算命令のデステ
ィネーションレジスタとを比較して、その結果をハード
ウェアが自動的に反映しているフラグである。
【0058】本実施例における電子回路装置は、内部に
汎用レジスタを備えており、演算は基本的にこの汎用レ
ジスタに保持されているデータ間で行われる。命令の種
類は、主に汎用レジスタを用いた通常の演算命令と、外
部メモリとのデータのやり取りを行うメモリアクセス命
令と、乗算ユニットにおける乗算命令と、命令をメモリ
から読み出すためのアドレスを格納しているプログラム
カウンタの値を自由に変更するための分岐命令の四種類
に分けることができる。
汎用レジスタを備えており、演算は基本的にこの汎用レ
ジスタに保持されているデータ間で行われる。命令の種
類は、主に汎用レジスタを用いた通常の演算命令と、外
部メモリとのデータのやり取りを行うメモリアクセス命
令と、乗算ユニットにおける乗算命令と、命令をメモリ
から読み出すためのアドレスを格納しているプログラム
カウンタの値を自由に変更するための分岐命令の四種類
に分けることができる。
【0059】メモリアクセス命令には、メモリから本電
子回路装置内にデータを読み出すためのロード命令と、
本電子回路装置内のデータをメモリに書き込むためのス
トア命令とがあり、本電子回路装置と、命令やデータが
格納されているメモリとは、一対のアドレスバスとデー
タバスで接続されている。
子回路装置内にデータを読み出すためのロード命令と、
本電子回路装置内のデータをメモリに書き込むためのス
トア命令とがあり、本電子回路装置と、命令やデータが
格納されているメモリとは、一対のアドレスバスとデー
タバスで接続されている。
【0060】又、本電子回路装置は通常の演算命令を実
行する命令実行部のほかに、乗算の実行を高速に行うこ
とのできる乗算ユニットを備えており、本電子回路装置
とこの乗算ユニットとは双方向の専用バスで接続されて
いる。
行する命令実行部のほかに、乗算の実行を高速に行うこ
とのできる乗算ユニットを備えており、本電子回路装置
とこの乗算ユニットとは双方向の専用バスで接続されて
いる。
【0061】通常演算命令のパイプライン実行は、図2
のパイプラインステージのうち、IF,ID,EX段の
三段で実行し、メモリアクセス命令はこれに加えてMA
,WB段の最低五段で実行される。又、乗算命令は、通
常演算実行のパイプラインに加えて、乗算サイクル(M
T)段とWB段の最低五段で実行される。但し、メモリ
アクセス時にアクセスサイクルが伸びた場合や、乗算実
行時に乗算サイクルが伸びた場合には、仮想的にそれぞ
れMA段,MT段を必要な数だけ増やしたパイプライン
を実行することとする。
のパイプラインステージのうち、IF,ID,EX段の
三段で実行し、メモリアクセス命令はこれに加えてMA
,WB段の最低五段で実行される。又、乗算命令は、通
常演算実行のパイプラインに加えて、乗算サイクル(M
T)段とWB段の最低五段で実行される。但し、メモリ
アクセス時にアクセスサイクルが伸びた場合や、乗算実
行時に乗算サイクルが伸びた場合には、仮想的にそれぞ
れMA段,MT段を必要な数だけ増やしたパイプライン
を実行することとする。
【0062】又、ロード命令及び乗算命令実行時のデス
ティネーションレジスタは、それぞれの命令完了時まで
別途退避して保持することとし、ロード命令ならメモリ
アクセス完了後、乗算命令なら乗算処理完了後に、保持
しておいたデスティネーションレジスタに書き込むこと
とする。
ティネーションレジスタは、それぞれの命令完了時まで
別途退避して保持することとし、ロード命令ならメモリ
アクセス完了後、乗算命令なら乗算処理完了後に、保持
しておいたデスティネーションレジスタに書き込むこと
とする。
【0063】このロード命令及び乗算命令実行時におけ
るレジスタ書き込み動作は、図2のWB段で行われる。 但し、書き込むべきデータはMA段又はMT段の終りに
は本電子回路装置内のバッファレジスタに取り込まれて
いる。従って、このWB段と同じ実行サイクルのEX段
で実行される命令が、WB段で書き込むデスティネーシ
ョンレジスタをソースレジスタとして使用する場合は、
WB段の終了を待たずにWB段と同じ実行サイクルで実
行することができるものとする。すなわち、MA段又は
MT段の終りにバッファレジスタに取り込まれているデ
ータを、バッファから直接演算器に転送する機能を備え
ている。
るレジスタ書き込み動作は、図2のWB段で行われる。 但し、書き込むべきデータはMA段又はMT段の終りに
は本電子回路装置内のバッファレジスタに取り込まれて
いる。従って、このWB段と同じ実行サイクルのEX段
で実行される命令が、WB段で書き込むデスティネーシ
ョンレジスタをソースレジスタとして使用する場合は、
WB段の終了を待たずにWB段と同じ実行サイクルで実
行することができるものとする。すなわち、MA段又は
MT段の終りにバッファレジスタに取り込まれているデ
ータを、バッファから直接演算器に転送する機能を備え
ている。
【0064】本電子回路装置においてレジスタ競合が発
生し、パイプライン実行の待ち制御等が必要になるのは
、ロード命令又は乗算命令が完了する前に、それぞれの
命令で指定されたデスティネーションレジスタが、後続
命令のソースレジスタとして指定されたときである。
生し、パイプライン実行の待ち制御等が必要になるのは
、ロード命令又は乗算命令が完了する前に、それぞれの
命令で指定されたデスティネーションレジスタが、後続
命令のソースレジスタとして指定されたときである。
【0065】従って、パイプライン制御命令は、本状態
フラグ110のうち、レジスタ競合フラグ(C)と後述
するロードフラグ(L)又は乗算実行フラグ(M)との
論理積、すなわちC・(L+M)=1なる条件をパイプ
ライン制御命令で判定することによって、そのときID
段にある命令を実行するか又は無効化してEX段を実行
可能なサイクルまで遅らせるかどうかを決定することが
できる。
フラグ110のうち、レジスタ競合フラグ(C)と後述
するロードフラグ(L)又は乗算実行フラグ(M)との
論理積、すなわちC・(L+M)=1なる条件をパイプ
ライン制御命令で判定することによって、そのときID
段にある命令を実行するか又は無効化してEX段を実行
可能なサイクルまで遅らせるかどうかを決定することが
できる。
【0066】実行を無効化するには、ID段の出力を実
質的に演算処理を行わないNOP命令等に強制的に固定
する無効化手段を設けて、パイプライン制御命令で上記
の制御条件を判定し、更にこの無効化手段を適当に制御
することによって可能となる。
質的に演算処理を行わないNOP命令等に強制的に固定
する無効化手段を設けて、パイプライン制御命令で上記
の制御条件を判定し、更にこの無効化手段を適当に制御
することによって可能となる。
【0067】更に、このパイプライン制御命令で、ID
段及びIF段のタイミング制御手段を適当に制御し、I
D段とIF段の状態を一時的に固定することで、後続命
令のパイプ実行を必要な期間遅延させることが可能とな
る。
段及びIF段のタイミング制御手段を適当に制御し、I
D段とIF段の状態を一時的に固定することで、後続命
令のパイプ実行を必要な期間遅延させることが可能とな
る。
【0068】IFウェイトフラグ(W)は、バスリソー
スの競合等によって図2のIF段がその実行開始を遅ら
されたとき、又はIF段の実行サイクルにおいてメモリ
サイクルが伸びたことによって実行サイクルの完了が遅
らされたときに、ハードウェアが自動的にセットし、そ
れぞれIF段の実行開始時又は実行サイクル完了時にリ
セットするフラグである。
スの競合等によって図2のIF段がその実行開始を遅ら
されたとき、又はIF段の実行サイクルにおいてメモリ
サイクルが伸びたことによって実行サイクルの完了が遅
らされたときに、ハードウェアが自動的にセットし、そ
れぞれIF段の実行開始時又は実行サイクル完了時にリ
セットするフラグである。
【0069】本フラグの値は、分岐命令実行時に参照さ
れ、分岐命令の実行を遅らせるためのパイプライン制御
条件として使用される。
れ、分岐命令の実行を遅らせるためのパイプライン制御
条件として使用される。
【0070】本実施例における電子回路装置では、分岐
命令実行時に分岐条件が確定して分岐先のアドレス演算
が完了するのがEX段の後半であることから、分岐先の
命令が実行されるまでに実行サイクルで二サイクルのタ
イムラグが生じることになる。
命令実行時に分岐条件が確定して分岐先のアドレス演算
が完了するのがEX段の後半であることから、分岐先の
命令が実行されるまでに実行サイクルで二サイクルのタ
イムラグが生じることになる。
【0071】例えば、図2に示したパイプライン流れ図
において、命令1が分岐命令だとすると、分岐先のアド
レス演算が完了するのはT3サイクルのEX段の後半で
あることから、分岐先の命令をフェッチするのはT4サ
イクルのIF段になる。すなわち命令4が分岐先の命令
であり、パイプライン中に残った命令2と命令3は分岐
が成立しなかった場合に実行されるべき命令列である。
において、命令1が分岐命令だとすると、分岐先のアド
レス演算が完了するのはT3サイクルのEX段の後半で
あることから、分岐先の命令をフェッチするのはT4サ
イクルのIF段になる。すなわち命令4が分岐先の命令
であり、パイプライン中に残った命令2と命令3は分岐
が成立しなかった場合に実行されるべき命令列である。
【0072】本実施例における電子回路装置では、命令
実行の効率を上げるため、分岐条件の成立不成立に関わ
らず、分岐命令後の命令、すなわち上記で説明した例で
は命令2の1命令、又は命令2と命令3の二命令を無条
件に実行することが可能な遅延分岐命令を設定すること
ができる。
実行の効率を上げるため、分岐条件の成立不成立に関わ
らず、分岐命令後の命令、すなわち上記で説明した例で
は命令2の1命令、又は命令2と命令3の二命令を無条
件に実行することが可能な遅延分岐命令を設定すること
ができる。
【0073】今、IFウェイトフラグ(W)がセットさ
れているときに遅延分岐命令を実行しようとすると、無
条件に実行されねばならない後続命令のフェッチが完了
していない状態であるから、プログラムカウンタの値を
その時点で書き替えることができない。
れているときに遅延分岐命令を実行しようとすると、無
条件に実行されねばならない後続命令のフェッチが完了
していない状態であるから、プログラムカウンタの値を
その時点で書き替えることができない。
【0074】従って、遅延分岐命令の実行を行うEX段
を、上記実行すべき後続命令の命令フェッチ、すなわち
IF段が終了するまで遅らせる必要がある。
を、上記実行すべき後続命令の命令フェッチ、すなわち
IF段が終了するまで遅らせる必要がある。
【0075】分岐命令実行時に、パイプライン制御命令
によって本フラグ(W)の値を参照し、適当な制御信号
を生成することにより、上記で説明したパイプライン制
御を実行することが可能となる。
によって本フラグ(W)の値を参照し、適当な制御信号
を生成することにより、上記で説明したパイプライン制
御を実行することが可能となる。
【0076】すなわち、パイプライン制御命令によって
W=1なる制御条件を判定し、遅延分岐命令及びその後
続命令に対して、上記レジスタ競合時と同様の制御を行
うことにより、分岐命令のEX段及び後続命令のパイプ
ラインステージの実行を、必要な期間だけ遅らせること
ができる。
W=1なる制御条件を判定し、遅延分岐命令及びその後
続命令に対して、上記レジスタ競合時と同様の制御を行
うことにより、分岐命令のEX段及び後続命令のパイプ
ラインステージの実行を、必要な期間だけ遅らせること
ができる。
【0077】バスサイクルフラグ(B)は、本電子回路
装置が外部メモリにアクセスするためのバスリソースが
使用されている期間だけ、ハードウェアで自動的にセッ
トされているフラグである。
装置が外部メモリにアクセスするためのバスリソースが
使用されている期間だけ、ハードウェアで自動的にセッ
トされているフラグである。
【0078】本フラグは、パイプライン制御命令によっ
て、後述するロードフラグ(L)やセマフォー(S)を
セット又はリセットするための条件として使用すること
ができる。
て、後述するロードフラグ(L)やセマフォー(S)を
セット又はリセットするための条件として使用すること
ができる。
【0079】ロードフラグ(L)は、メモリアクセス命
令であるロード命令が実行されたときに、パイプライン
制御命令によってソフトウェア的にセットし、バスサイ
クル終了時にハードウェアで自動的にリセットされるフ
ラグである。
令であるロード命令が実行されたときに、パイプライン
制御命令によってソフトウェア的にセットし、バスサイ
クル終了時にハードウェアで自動的にリセットされるフ
ラグである。
【0080】セット条件はパイプライン制御命令によっ
て設定することができ、本電子回路路装置ではバスサイ
クルフラグ(B)と後述する乗算実行フラグ(M)が共
に0、すなわちB+M=0なる条件でセットする。
て設定することができ、本電子回路路装置ではバスサイ
クルフラグ(B)と後述する乗算実行フラグ(M)が共
に0、すなわちB+M=0なる条件でセットする。
【0081】ここで、B=0なる条件はメモリをアクセ
スするためのバスリソースが空き状態にあることを判定
するためであり、M=0なる条件はWB段の実行に際し
てハードウェアリソースの競合を回避するためである。
スするためのバスリソースが空き状態にあることを判定
するためであり、M=0なる条件はWB段の実行に際し
てハードウェアリソースの競合を回避するためである。
【0082】乗算実行フラグ(M)は、乗算命令が実行
されたときにパイプライン制御命令によってソフトウェ
ア的にセットし、乗算ユニットでの乗算処理が完了して
乗算結果が戻ってきたら、ロードフラグと同様にハード
ウェアで自動的にリセットされるフラグである。
されたときにパイプライン制御命令によってソフトウェ
ア的にセットし、乗算ユニットでの乗算処理が完了して
乗算結果が戻ってきたら、ロードフラグと同様にハード
ウェアで自動的にリセットされるフラグである。
【0083】セット条件はロードフラグと同様にパイプ
ライン制御命令によって設定することができ、本電子回
路路装置ではロードフラグ(L)と乗算実行フラグ(M
)が共に0、すなわちL+M=0なる条件でセットする
。
ライン制御命令によって設定することができ、本電子回
路路装置ではロードフラグ(L)と乗算実行フラグ(M
)が共に0、すなわちL+M=0なる条件でセットする
。
【0084】ここで、L=0なる条件はWB段の実行に
際してハードウェアリソースの競合を回避するためであ
り、M=0なる条件は乗算ユニットにおけるハードウェ
アリソースの競合を回避するためである。
際してハードウェアリソースの競合を回避するためであ
り、M=0なる条件は乗算ユニットにおけるハードウェ
アリソースの競合を回避するためである。
【0085】IF禁止フラグ(I)は、パイプライン制
御命令によってソフトウェア的にセット又はリセットす
るフラグであり、命令フェッチを実行してID段に命令
を出力するIF段の動作を禁止してその時点の出力状態
を固定する機能を持っている。
御命令によってソフトウェア的にセット又はリセットす
るフラグであり、命令フェッチを実行してID段に命令
を出力するIF段の動作を禁止してその時点の出力状態
を固定する機能を持っている。
【0086】セット又はリセット条件は、パイプライン
制御命令によって、本状態フラグから必要な組み合わせ
とその値を設定することができる。
制御命令によって、本状態フラグから必要な組み合わせ
とその値を設定することができる。
【0087】本電子回路路装置では、セット条件として
C・L=1、すなわち、ロード命令実行中にロード命令
によってデータがロードされるレジスタをソースレジス
タとした命令がデコードされたとき、又は別のセット条
件としてC・M=1、すなわち、乗算命令実行中に乗算
命令によってデータが書き替わるレジスタをソースレジ
スタとした命令がデコードされたとき、又は別のセット
条件として乗算命令がデコードされたときにM=1、す
なわち、それ以前の乗算命令の実行が終了する以前に再
び乗算命令が指定されたとき、又は別のセット条件とし
てロード命令がデコードされたときにL=1、すなわち
、それ以前のロード命令の実行が終了する以前に再びロ
ード命令が指定されたとき、又は別のセット条件として
分岐命令がデコードされたときにW=1、すなわち、分
岐先の命令を実行する以前に実行しなければならない命
令のフェッチが終了する以前に分岐命令が指定されてプ
ログラムカウンタの内容を変更しようとしたとき等が考
えられる。また、リセット条件とは、それぞれのセット
条件の補集合、すなわち、C・L=0,C・M=0,M
=0,L=0,W=0等が考えられる。
C・L=1、すなわち、ロード命令実行中にロード命令
によってデータがロードされるレジスタをソースレジス
タとした命令がデコードされたとき、又は別のセット条
件としてC・M=1、すなわち、乗算命令実行中に乗算
命令によってデータが書き替わるレジスタをソースレジ
スタとした命令がデコードされたとき、又は別のセット
条件として乗算命令がデコードされたときにM=1、す
なわち、それ以前の乗算命令の実行が終了する以前に再
び乗算命令が指定されたとき、又は別のセット条件とし
てロード命令がデコードされたときにL=1、すなわち
、それ以前のロード命令の実行が終了する以前に再びロ
ード命令が指定されたとき、又は別のセット条件として
分岐命令がデコードされたときにW=1、すなわち、分
岐先の命令を実行する以前に実行しなければならない命
令のフェッチが終了する以前に分岐命令が指定されてプ
ログラムカウンタの内容を変更しようとしたとき等が考
えられる。また、リセット条件とは、それぞれのセット
条件の補集合、すなわち、C・L=0,C・M=0,M
=0,L=0,W=0等が考えられる。
【0088】セマフォ1とセマフォ2(S)は、必要に
応じてパイプライン制御命令がソフトウェア的にセット
またはリセットを行って、後続のパイプライン制御命令
が任意にこれを参照することができるフラグである。
応じてパイプライン制御命令がソフトウェア的にセット
またはリセットを行って、後続のパイプライン制御命令
が任意にこれを参照することができるフラグである。
【0089】すなわち、本フラグを使用する際には、そ
の都度必要となる機能状態の意味付けをして、任意に使
用することが可能となる。
の都度必要となる機能状態の意味付けをして、任意に使
用することが可能となる。
【0090】例えば、或る命令を実行した後はセマフォ
1をセットしておき、それに続く命令列の中でセマフォ
1を制御条件として参照することでロード命令だけを無
効化し、ストア命令が実行されたときに解除するなどと
いった特殊なパイプライン制御用途に利用することがで
きる。
1をセットしておき、それに続く命令列の中でセマフォ
1を制御条件として参照することでロード命令だけを無
効化し、ストア命令が実行されたときに解除するなどと
いった特殊なパイプライン制御用途に利用することがで
きる。
【0091】又、パイプライン制御命令によってパイプ
ライン制御のための条件をその都度必要な組み合せで設
定することで、上記で説明した以外に、種々の制御が可
能となる。更に又、パイプライン制御命令自身の実行シ
ーケンスを、そのシーケンス制御機能によって動的に変
更することにより、更に複雑なパイプライン制御を実現
することが可能となる。
ライン制御のための条件をその都度必要な組み合せで設
定することで、上記で説明した以外に、種々の制御が可
能となる。更に又、パイプライン制御命令自身の実行シ
ーケンスを、そのシーケンス制御機能によって動的に変
更することにより、更に複雑なパイプライン制御を実現
することが可能となる。
【0092】次に、上記で説明したように、制御条件を
参照しながらパイプライン動作を制御することが可能な
パイプライン制御命令の構成例について、図5を用いて
説明する。
参照しながらパイプライン動作を制御することが可能な
パイプライン制御命令の構成例について、図5を用いて
説明する。
【0093】図5に示したパイプライン制御命令は、分
岐条件指定のための命令フィールド501と、分岐先ア
ドレスのための命令フィールド502と、制御内容指定
のための命令フィールド503と、制御条件指定のため
の命令フィールド504と、フラグ操作指定のための命
令フィールド505から成っている。
岐条件指定のための命令フィールド501と、分岐先ア
ドレスのための命令フィールド502と、制御内容指定
のための命令フィールド503と、制御条件指定のため
の命令フィールド504と、フラグ操作指定のための命
令フィールド505から成っている。
【0094】501から505までの各命令フィールド
は、それぞれ独立にその指定内容を設定することができ
る。従って、図5に示したパイプライン制御命令は、パ
イプライン制御のための命令設定の自由度が比較的大き
な命令構成となっている。
は、それぞれ独立にその指定内容を設定することができ
る。従って、図5に示したパイプライン制御命令は、パ
イプライン制御のための命令設定の自由度が比較的大き
な命令構成となっている。
【0095】命令フィールド501は、パイプライン制
御命令列の次に読みだす命令アドレスに分岐するための
分岐条件を指定するフィールドで、命令の実行結果やパ
イプライン制御のための状態フラグ110の値を分岐条
件として設定することができる。
御命令列の次に読みだす命令アドレスに分岐するための
分岐条件を指定するフィールドで、命令の実行結果やパ
イプライン制御のための状態フラグ110の値を分岐条
件として設定することができる。
【0096】命令フィールド502は、命令フィールド
501の分岐条件に従って分岐する先のアドレスを設定
するフィールドである。
501の分岐条件に従って分岐する先のアドレスを設定
するフィールドである。
【0097】命令フィールド503は、その命令で実行
するパイプライン制御内容を指定するフィールドで、命
令実行の無効化、すなわち、EX段の実行を遅らせたり
、各パイプラインステージの実行制御や実行タイミング
等の制御内容を設定することができる。
するパイプライン制御内容を指定するフィールドで、命
令実行の無効化、すなわち、EX段の実行を遅らせたり
、各パイプラインステージの実行制御や実行タイミング
等の制御内容を設定することができる。
【0098】命令フィールド504は、命令フィールド
503で指定したパイプライン制御を行うための制御条
件を指定するフィールドで、パイプライン制御のために
必要となる状態フラグ110の組合せやそのそれぞれの
値を指定することができる。又、本命令フィールド50
4で指定した条件は、命令フィールド505で指定する
フラグ操作の条件としても使用することができるほか、
命令フィールド501で指定する分岐条件の一部として
も使用することができる。
503で指定したパイプライン制御を行うための制御条
件を指定するフィールドで、パイプライン制御のために
必要となる状態フラグ110の組合せやそのそれぞれの
値を指定することができる。又、本命令フィールド50
4で指定した条件は、命令フィールド505で指定する
フラグ操作の条件としても使用することができるほか、
命令フィールド501で指定する分岐条件の一部として
も使用することができる。
【0099】命令フィールド505は、状態フラグ11
0のセット又はリセットを指定するフィールドで、無条
件に、又は命令フィールド504で指定した条件に従っ
て、指定したフラグの値を操作することができる。
0のセット又はリセットを指定するフィールドで、無条
件に、又は命令フィールド504で指定した条件に従っ
て、指定したフラグの値を操作することができる。
【0100】本実施例では、上記で説明したパイプライ
ン制御命令が、本電子回路装置で実行する処理命令であ
るマイクロ命令と共に制御ROM104に格納されてい
るが、マイクロプログラム方式を採らない場合は、本パ
イプライン制御命令のみを図1で示した制御ROM10
4に格納して動作させることもできるし、本電子回路装
置に処理を実行させる命令自身に含ませた形にすること
も可能である。
ン制御命令が、本電子回路装置で実行する処理命令であ
るマイクロ命令と共に制御ROM104に格納されてい
るが、マイクロプログラム方式を採らない場合は、本パ
イプライン制御命令のみを図1で示した制御ROM10
4に格納して動作させることもできるし、本電子回路装
置に処理を実行させる命令自身に含ませた形にすること
も可能である。
【0101】又、本実施例で示したように自由度の高い
パイプライン制御命令に対して、ソフトウェア化するパ
イプライン制御内容をある程度限定し、より簡単化した
パイプライン制御命令を設定することも可能である。
パイプライン制御命令に対して、ソフトウェア化するパ
イプライン制御内容をある程度限定し、より簡単化した
パイプライン制御命令を設定することも可能である。
【0102】このように、本発明は、パイプライン動作
の制御機能内容を静的に或は動的に変化させることが可
能なことをもって特徴とし、その一つの手段として、パ
イプライン制御をプログラム命令列によって行っている
。従って、本来、その実行処理内容をプログラム命令に
よって決定しながら動作しているマイクロコンピュータ
等の電子回路装置において、本発明は、その特徴と利点
を、よりうまく活かすことが可能となる。
の制御機能内容を静的に或は動的に変化させることが可
能なことをもって特徴とし、その一つの手段として、パ
イプライン制御をプログラム命令列によって行っている
。従って、本来、その実行処理内容をプログラム命令に
よって決定しながら動作しているマイクロコンピュータ
等の電子回路装置において、本発明は、その特徴と利点
を、よりうまく活かすことが可能となる。
【0103】又、マイクロコンピュータ等の電子回路装
置を形成している半導体装置の同一基板上に、EPRO
M等の書換え可能な不揮発性メモリ装置を内蔵し、パイ
プライン制御命令、又はパイプライン制御命令を含む命
令列を格納することによって、該命令列全体の構成を半
固定とし、より信頼性の高い制御を比較的低いコストで
提供することが可能となる。
置を形成している半導体装置の同一基板上に、EPRO
M等の書換え可能な不揮発性メモリ装置を内蔵し、パイ
プライン制御命令、又はパイプライン制御命令を含む命
令列を格納することによって、該命令列全体の構成を半
固定とし、より信頼性の高い制御を比較的低いコストで
提供することが可能となる。
【0104】これは、EPROM等の書換え可能な不揮
発性メモリ装置が、半導体基板上に占める面積コストに
おいて、RAM等のメモリ手段に較べて比較的低コスト
で実現できるためである。
発性メモリ装置が、半導体基板上に占める面積コストに
おいて、RAM等のメモリ手段に較べて比較的低コスト
で実現できるためである。
【0105】しかし、より複雑なパイプライン制御を実
現するために、マイクロコンピュータ等の電子回路装置
が動作中に、動的にパイプライン制御命令列自身の内容
を変更しながら動作させる場合には、RAM等の常時書
換え可能なメモリ手段を備えて、パイプライン制御命令
列の一部又は全てをメモリ手段に格納することが必要と
なる。
現するために、マイクロコンピュータ等の電子回路装置
が動作中に、動的にパイプライン制御命令列自身の内容
を変更しながら動作させる場合には、RAM等の常時書
換え可能なメモリ手段を備えて、パイプライン制御命令
列の一部又は全てをメモリ手段に格納することが必要と
なる。
【0106】
【発明の効果】本発明によれば、パイプライン構造によ
って並列処理を行っている電子回路装置において、従来
ハードウェア固定であったパイプライン制御を、パイプ
ライン制御命令列なるソフトウェアで行うことが可能と
なる。
って並列処理を行っている電子回路装置において、従来
ハードウェア固定であったパイプライン制御を、パイプ
ライン制御命令列なるソフトウェアで行うことが可能と
なる。
【0107】特に、実行性能を上げるためにパイプライ
ン段数を深くした場合や、実行する処理内容の組み合せ
が多く、広範囲に亙る場合等では、パイプライン制御の
内容や制御する条件が複雑になる。従って、従来技術で
はパイプライン制御のためのハードウェア回路が複雑に
なって設計が困難になるばかりでなく、ハードウェア固
定でパイプライン制御を実現することでパイプライン制
御の自由度が限定されてしまう。
ン段数を深くした場合や、実行する処理内容の組み合せ
が多く、広範囲に亙る場合等では、パイプライン制御の
内容や制御する条件が複雑になる。従って、従来技術で
はパイプライン制御のためのハードウェア回路が複雑に
なって設計が困難になるばかりでなく、ハードウェア固
定でパイプライン制御を実現することでパイプライン制
御の自由度が限定されてしまう。
【0108】このことは、上記電子回路装置で実行する
処理内容の追加や変更を行う場合に不都合となるばかり
でなく、電子回路装置を使用する際に、実行する処理内
容によってその都度それぞれに最適なパイプライン実行
を提供することが難しくなるということを意味している
。
処理内容の追加や変更を行う場合に不都合となるばかり
でなく、電子回路装置を使用する際に、実行する処理内
容によってその都度それぞれに最適なパイプライン実行
を提供することが難しくなるということを意味している
。
【0109】これに対して本発明によれば、パイプライ
ン制御の一部分又は全体を書換え可能なソフトウェアで
行うことが可能となり、ハードウェア部分の設計が簡単
化されることと、パイプライン制御そのものの設計をソ
フトウェア上で行うことができることから、設計時のデ
バッグ作業が軽減されるという効果がある。
ン制御の一部分又は全体を書換え可能なソフトウェアで
行うことが可能となり、ハードウェア部分の設計が簡単
化されることと、パイプライン制御そのものの設計をソ
フトウェア上で行うことができることから、設計時のデ
バッグ作業が軽減されるという効果がある。
【0110】又、別の効果として、パイプライン制御の
自由度が上がることにより、実行する処理内容それぞれ
に対して、より最適なパイプライン制御をきめ細かく行
うことが可能となる。すなわち、パイプライン制御の信
頼性の向上と命令列の実行性能の向上を図ることが可能
となる。
自由度が上がることにより、実行する処理内容それぞれ
に対して、より最適なパイプライン制御をきめ細かく行
うことが可能となる。すなわち、パイプライン制御の信
頼性の向上と命令列の実行性能の向上を図ることが可能
となる。
【0111】又、本発明は、パイプライン制御をプログ
ラム命令列によって行うものであり、本来、実行処理内
容をプログラム命令によって決定しながら動作している
マイクロコンピュータ等の電子回路装置に本発明を適用
することによって、その利点をうまく活かすことが可能
になる。
ラム命令列によって行うものであり、本来、実行処理内
容をプログラム命令によって決定しながら動作している
マイクロコンピュータ等の電子回路装置に本発明を適用
することによって、その利点をうまく活かすことが可能
になる。
【図1】パイプライン動作をソフトウェアで制御するこ
とが可能なパイプライン制御方式のブロック図。
とが可能なパイプライン制御方式のブロック図。
【図2】パイプライン構成の一例の説明図。
【図3】パイプライン制御の一例の説明図。
【図4】パイプライン制御のための制御条件を反映する
状態フラグの一構成例の説明図。
状態フラグの一構成例の説明図。
【図5】パイプライン制御命令の一構成例の説明図。
101…命令レジスタ、102…アドレス生成用マッピ
ングROM、103…アドレスセレクタ、104…命令
格納用制御ROM、105…マイクロ命令レジスタ、1
06…マイクロコードフィールド、107…パイプライ
ン制御フィールド、108…シーケンス制御部、109
…パイプライン制御部、110…状態フラグ。
ングROM、103…アドレスセレクタ、104…命令
格納用制御ROM、105…マイクロ命令レジスタ、1
06…マイクロコードフィールド、107…パイプライ
ン制御フィールド、108…シーケンス制御部、109
…パイプライン制御部、110…状態フラグ。
Claims (10)
- 【請求項1】パイプライン構造を持つ電子回路装置にお
いて、前記電子回路装置が実行する処理内容とは独立に
、前記パイプラインの実行を実行ステップごとにソフト
ウェアプログラムで制御可能な構成としたことを特徴と
するパイプライン制御装置。 - 【請求項2】請求項1において、命令解読手段と、命令
の実行手段を備えて、命令実行全体をパイプライン動作
させる電子回路装置において、前記命令自身が、前記命
令によって実行すべき内容とは独立に前記パイプライン
の動作を制御することが可能な構成としたパイプライン
制御装置。 - 【請求項3】請求項1において、命令解読手段と、命令
の実行手段を備えて、命令実行全体をパイプライン動作
させる電子回路装置において、前記パイプライン動作を
制御可能なパイプライン制御命令を格納するメモリ手段
と、前記命令を実行する際に必要な前記パイプライン制
御命令を前記メモリ手段から読み出す読みだし手段とを
備え、前記パイプライン制御命令によって前記パイプラ
イン動作を制御することが可能な構成としたパイプライ
ン制御装置。 - 【請求項4】請求項1において、外部から入力した命令
を解読する手段の一つとして、前記命令に対応するマイ
クロ命令を格納するメモリ手段と、前記メモリ手段から
前記命令を実行するために必要な少なくとも一つのマイ
クロ命令を読み出す読み出し手段と、前記マイクロ命令
を解読する解読手段と、前記マイクロ命令の実行手段を
備えて、命令実行全体をパイプライン動作させる電子回
路装置において、前記マイクロ命令に、前記外部から入
力した命令によって実行すべき内容とは独立にパイプラ
インの実行を制御することが可能な機能を持たせて、命
令実行上の前記パイプライン動作を制御することが可能
な構成としたパイプライン制御装置。 - 【請求項5】請求項2,3または4において、パイプラ
イン動作を制御する際に、制御のための条件として必要
な状態信号を、適当な組み合わせで参照することが可能
な制御条件参照手段を備え、参照した状態信号の値によ
って前記パイプライン動作の制御内容を少なくとも二つ
以上設定することが可能な構成としたパイプライン制御
装置。 - 【請求項6】請求項5において、前記制御条件参照手段
として、前記状態信号の値を反映するフラグ手段と、パ
イプライン動作を制御する命令によって決まる前記状態
信号の適当な組み合わせと制御条件に従って、前記フラ
グの値を参照するフラグ参照手段とを備え、前記フラグ
参照手段によって参照した結果に従ってパイプライン動
作の制御内容を決定し、パイプライン動作を制御するた
めに必要な制御信号を生成することが可能な構成とした
パイプライン制御装置。 - 【請求項7】請求項6において、パイプライン動作を制
御する命令によって、前記フラグの値をセットまたはリ
セットすることが可能な構成としたパイプライン制御装
置。 - 【請求項8】請求項7において、パイプライン動作を制
御する命令によって決まる前記フラグの適当な組み合わ
せとセットまたはリセット条件に従って、前記フラグの
値をセットまたはリセットすることが可能な構成とした
パイプライン制御装置。 - 【請求項9】請求項6,7または8において、前記フラ
グの適当な組み合わせとその条件によって、前記パイプ
ライン動作を制御する命令、または前記マイクロ命令、
または前記外部から入力した命令の実行シーケンスを変
更することが可能な構成としたパイプライン制御装置。 - 【請求項10】請求項1から請求項9のいずれかに記載
のパイプライン制御装置を具備したマイクロコンピュー
タ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15009991A JPH04372019A (ja) | 1991-06-21 | 1991-06-21 | パイプライン制御装置及びマイクロコンピュータ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15009991A JPH04372019A (ja) | 1991-06-21 | 1991-06-21 | パイプライン制御装置及びマイクロコンピュータ |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04372019A true JPH04372019A (ja) | 1992-12-25 |
Family
ID=15489490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP15009991A Withdrawn JPH04372019A (ja) | 1991-06-21 | 1991-06-21 | パイプライン制御装置及びマイクロコンピュータ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH04372019A (ja) |
-
1991
- 1991-06-21 JP JP15009991A patent/JPH04372019A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2810068B2 (ja) | プロセッサシステム、コンピュータシステム及び命令処理方法 | |
US5404552A (en) | Pipeline risc processing unit with improved efficiency when handling data dependency | |
US5293500A (en) | Parallel processing method and apparatus | |
JP5209933B2 (ja) | データ処理装置 | |
JPS6239780B2 (ja) | ||
KR100210205B1 (ko) | 스톨캐쉬를 제공하기 위한 장치 및 방법 | |
JPH03233630A (ja) | 情報処理装置 | |
US5526500A (en) | System for operand bypassing to allow a one and one-half cycle cache memory access time for sequential load and branch instructions | |
JP4889235B2 (ja) | プログラム制御プロセッサ | |
JPH0512751B2 (ja) | ||
JPH04372019A (ja) | パイプライン制御装置及びマイクロコンピュータ | |
EP0573071A2 (en) | A microprocessor | |
JP3954159B2 (ja) | 同期式ramのアクセス制御回路、データ処理プロセッサ及びその制御方法 | |
JP4151497B2 (ja) | パイプライン処理装置 | |
JP2636821B2 (ja) | 並列処理装置 | |
JPH04363704A (ja) | プログラマブルコントローラの演算プロセッサ | |
JP4498705B2 (ja) | キャッシュシステム | |
JP4702004B2 (ja) | マイクロコンピュータ | |
JPS63293638A (ja) | データ処理装置 | |
JPH0561660B2 (ja) | ||
JP3850156B2 (ja) | 命令処理装置 | |
JP3933679B2 (ja) | 命令処理装置 | |
JP3331599B2 (ja) | マイクロプログラム制御装置 | |
JPS6398735A (ja) | マイクロ制御装置 | |
JP2000250869A (ja) | マルチプロセッサの制御方法およびその装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 19980903 |