JP2595795B2 - パイプライン計算機の同期方法とパイプライン処理無効化方法並びにそれらを実現したパイプライン計算機 - Google Patents

パイプライン計算機の同期方法とパイプライン処理無効化方法並びにそれらを実現したパイプライン計算機

Info

Publication number
JP2595795B2
JP2595795B2 JP2253288A JP25328890A JP2595795B2 JP 2595795 B2 JP2595795 B2 JP 2595795B2 JP 2253288 A JP2253288 A JP 2253288A JP 25328890 A JP25328890 A JP 25328890A JP 2595795 B2 JP2595795 B2 JP 2595795B2
Authority
JP
Japan
Prior art keywords
instruction
pipeline
instruction pipeline
stage
state
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.)
Expired - Fee Related
Application number
JP2253288A
Other languages
English (en)
Other versions
JPH03206524A (ja
Inventor
仁志 山下
壽一 枝松
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2253288A priority Critical patent/JP2595795B2/ja
Publication of JPH03206524A publication Critical patent/JPH03206524A/ja
Application granted granted Critical
Publication of JP2595795B2 publication Critical patent/JP2595795B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、複数の命令パイプラインを持つパイプライ
ン計算機における各命令パイプラインの同期方法とパイ
プライン処理無効化方法並びにそれらを実現したパイプ
ライン計算機に関する。
従来の技術 近年、計算機の高速化のためにベクトルコンピュータ
などの手法や複数の命令パイプラインを備えたパイプラ
イン計算機が取り入れられている。このような手法はマ
イクロプロセッサなどにも取り入れることができるが、
マイクロプロセッサなどのVLSIにおいては限られた面積
に集積しなければならないという制約から、ベクトルコ
ンピュータの手法をそのまま取り入れることはできな
い。また、複数の命令パイプラインを設ける場合にして
も、たとえば整数・論理演算用の命令パイプラインと浮
動小数点演算用の命令パイプラインを独立して設けるな
ど、異種の命令パイプラインを設けるという要求があ
る。しかしながらこのように異種の命令パイプラインを
設けたパイプライン計算機においては、それぞれの命令
パイプラインにおける命令の実行時間が異なる場合があ
る。このような場合には実際の命令実行の順序は多少順
序が入れ替わってもいいが、各時刻における計算機のレ
ジスタの内容はそれぞれの命令が順番に実行されたのと
同じ順序で結果を書き換えなければならない。このよう
な要求は特に例外が発生したある時点での命令の実行を
中断しなければならないような場合に重要な問題になっ
てくる。このように、複数の命令パイプラインの間での
命令実行終了の順序を制御することをパイプライン間の
同期をとるという。
複数の命令パイプラインを持つ計算機の従来の技術に
よる同期方法については、例えば、「並列計算機」、R.
W.Hockney、C,R.Jesshope共著、奥川俊史・黒柱祥祐共
訳、共立出版株式会社、1984、p.24に記述されている。
ここでは、従来の技術として次のものが挙げられてい
る。
1) 非同期:それぞれの被制御ユニットが同期されて
おらず、それぞれのユニットの間の通信は、フラッグと
ハンドシェイクにより行なわれる。
2) 水平型制御:1つの複合命令が各クロック周期で異
なったユニットのセットの動作を制御する。この方式で
は、第26図に示されるように比較的長い命令100を多数
の演算器制御フィールド101に分割し、それぞれのフィ
ールドで演算器103を独立に制御することにより各演算
器103の同期を実現している。制御装置が単純化でき、
並列演算器の数であるnに近い並列度が得られるときに
高速処理を達成できるが、並列度が低い時には演算器制
御フィールド101に遊びができ、つまりその他のフィー
ルド102が存在することになり、命令のビット使用効率
が低下する。また、並列演算の可能性を実行時に判定す
るかあるいは命令のコンパイル時に抽出するなどの準備
が必要である。そのため、それぞれの演算器の演算結果
に応じてそれぞれの演算器の制御を決定するという動作
を行なう場合、命令の組み替えを行なったのちにその命
令を改めてデコードすることが必要となり、そのための
余分な時間を必要とする。詳しくは、例えば、「VLSIコ
ンピュータI」、元岡達編、岩波書店、1984、p.50に述
べられている。
3) ロックステップ:同一のプロセッサのセットが、
同時に同じ演算を実行するよう同期的に制御されてい
る。
4) 準備完了時送出:要求されるユニットやレジスタ
が自由になればすぐに実行ユニットに命令を送る。
発明が解決しようとする課題 上記の従来の技術を見た場合、 1)のハンドシェイクによる方法はハンドシェイク自
身のために要する時間が必要であり高速の同期機構を実
現するには不適当な方法である。またこの方法では、あ
る1つの被制御ユニットにおける例外発生時に他の被制
御ユニットにおける例外発生時に他の被制御ユニットに
おける命令の実行を中止しなければならないような場合
にも高速な命令の処理無効化方法の実現は難しい。
2)の水平型制御方式においてはすべてが1つの水平
型命令により制御されるため、それぞれのユニットが独
立に動作することが困難であり、それぞれの演算器を独
立に動作させることができない。
また演算器によっては実行時間が違うこともあり得るの
で、ある演算において例外が発生した場合の処理はかな
り複雑なものが予想される。
3)のロックステップ方式においてはそれぞれのユニ
ットが同一である事が必要であり、それぞれのユニット
が同一でない場合には適用不可能である。また、たとえ
それぞれのユニットが同一であるとしても、それぞれの
ユニットが独立にそれぞれ異なった動作を行なっている
場合にはこの方式は適用する事ができない。
このように従来の技術では、無駄な時間を費やすこと
なく独立して動作する異なった命令パイプライン間の高
速同期を取ることが困難であるほか、ある1つの命令パ
イプラインで処理されている命令での例外発生時に、そ
のほかの命令パイプラインで実行されている命令の実行
を中断或いは中止しなければならないような場合に高速
に行なうことができない。
本発明はかかる点に鑑み、複数の命令パイプラインを
持った計算機においてそれぞれん命令パイプラインの独
立した動作を可能としながら、ま、同期のための無駄な
時間を必要とすることなく少ないハードウェアでそれぞ
れの命令パイプライン間の同期を取ることができるパイ
プライン計算機の同期方法とそれを実現したパイプライ
ン計算機を提供すると共に、ある1つの命令パイプライ
ンで処理されている命令などでの例外発生時に、そのほ
かの命令パイプラインで実行されている命令の無効化を
無駄な時間を必要とすることなく少ないハードウェアで
実現するパイプライン計算機のパイプライン処理無効化
方法とそれを実現したパイプライン計算機を提供するこ
とを目的とする。
課題を解決するための手段 本発明(1)は、n段のステージからなる第1の命令
パイプラインと、 m段のステージからなる第2の命令パイプラインと、 前記第1の命令パイプラインを制御する第1の命令パ
イプライン制御部と、 前記第2の命令パイプラインを制御する第2の命令パ
イプライン制御部と、 前記第2の命令パイプラインの各ステージに設けられ
状態保持要素手段で構成された状態保持手段とを備え、 前記第1の命令パイプラインと前記第2の命令パイプ
ラインに同時に命令が供給されると同時に前記状態保持
手段内で最初のステージに備えられた第1の状態保持要
素手段が初期の値に設定され、前記第1の命令パイプラ
イン制御部により制御されて前記命令が前記第1の命令
パイプラインの中を進む毎に前記状態保持手段を構成す
るそれぞれの状態保持要素手段がその値を設定し、前記
第2の命令パイプラインの第j番目(j<=m)のステ
ージの第2の状態保持要素手段の値が前記命令が前記第
1の命令パイプラインの第i番目(i<=n)のステー
ジに達した値あるいは通過した値になるまで前記第2の
命令パイプラインの第j番目のステージの進みを止める
ことにより、前記第1の命令パイプラインの第i番目の
ステージと前記第2の命令パイプラインの第j番目のス
テージにおいての前記命令の進行を同期させることを特
徴とするパイプライン計算機の同期方法であると共に、
その同期機構を実現するパイプライン計算機である。
このように、第2の命令パイプラインで命令が実行さ
れる場合においても第1の命令パイプラインに形式的に
命令を供給するものとし、その形式的命令の第1のパイ
プライン内での進行を第2のパイプラインに設けた状態
保持手段で状態を保持することにより監視して第2の命
令パイプライン内における命令の進行を制御し、2つの
命令パイプラインの間における命令進行の同期を実現す
るものである。
本発明(2)は、前記本発明(1)のパイプライン計
算機において、第1の命令パイプラインで処理される命
令の例外を検出する例外検出部と、 第2の命令パイプラインで処理される命令の処理無効
化を判定する命令無効化判定部とを備え、 前記例外検出部において検出された例外情報と前記第
2の命令パイプラインに備えられた状態保持手段内の状
態保持要素手段の値により、前記第1の命令パイプライ
ンにおいて検出された例外が、前記第2の命令パイプラ
インで処理される命令を無効化するものであるかどうか
を判断し、前記第2の命令パイプラインの命令の処理を
無効化することを特徴とするパイプライン計算機のパイ
プライン処理無効化方法であると共に、そのパイプライ
ン処理無効化機構を実現するパイプライン計算機であ
る。
本発明(3)は、n段のステージからなる第1の命令
パイプラインと、 m段のステージからなる第2の命令パイプラインと、 k段のステージからなる第3の命令パイプラインと、 前記第1の命令パイプラインを制御する第1の命令パ
イプライン制御部と、 前記第2の命令パイプラインを制御する第2の命令パ
イプライン制御部と、 前記第3の命令パイプラインを制御する第3の命令パ
イプライン制御部と、 前記第2の命令パイプラインの各ステージに設けられ
た状態保持要素手段で構成された第1の状態保持手段
と、 前記第3の命令パイプラインの各ステージに設けられ
た状態保持要素手段で構成された第2の状態保持手段と
を備え、 前記第1の命令パイプラインと前記第2の命令パイプ
ラインと前記第3の命令パイプラインに同時に命令が供
給されると同時に前記第1の状態保持手段内で前記第2
の命令パイプラインの最初のステージに備えられた第1
の状態保持要素手段が初期の値に設定され、また同時に
前記第2の状態保持手段内で前記第3の命令パイプライ
ンの最初のステージに備えられた第2の状態保持要素手
段が初期の値に設定され、前記第1の命令パイプライン
制御部により制御されて前記命令が前記第1の命令パイ
プラインの中を進む毎に前記第1および第2の状態保持
手段を構成するそれぞれの状態保持要素手段がその値を
設定し、前記第1の状態保持手段内で第j番目(j<=
m)のステージの第3の状態保持要素手段の値が前記命
令が前記第1の命令パイプラインの第i番目(i<=
n)のステージに達した値あるいは通過した値になるま
で前記第2の命令パイプラインの第j番目のステージの
進みを止めることにより、前記第1の命令パイプライン
の第i番目のステージと前記第2の命令パイプラインの
第j番目のステージにおいての前記命令の進行を同期さ
せ、前記第2の状態保持手段内で第y番目(y<=k)
のステージの第4の状態保持要素手段の値が前記命令が
前記第1の命令パイプラインの第x番目(x<=n)の
ステージに達した値あるいは通過した値になるまで前記
第3の命令パイプラインの第y番目のステージの進みを
止めることにより、前記第1の命令パイプラインの第x
番目のステージと前記第3の命令パイプラインの第y番
目のステージにおいての前記命令の進行を同期させるこ
とを特徴とするパイプライン計算機の同期方法であると
共に、その同期機構を実現するパイプライン計算機であ
る。
本発明(4)は、前記本発明(3)のパイプライン計
算機において、第1の命令パイプラインで処理される命
令の例外を検出する例外検出部と、 第2の命令パイプラインで処理される命令の処理無効
化を判定する第1の命令無効化判定部と、 第3の命令パイプラインで処理される命令の処理無効
化を判定する第2の命令無効化判定部とを備え、 前記例外検出部において検出された例外情報と前記第
2の命令パイプラインに備えられた第1の状態保持手段
内の状態保持要素手段の値により、前記第1の命令パイ
プラインにおいて検出された例外が、前記第2の命令パ
イプラインで処理される命令を無効化するものであるか
どうかを判断し、前記第2の命令パイプラインの命令の
処理を無効化すること、および前記例外検出部において
検出された例外情報と前記第3の命令パイプラインに備
えられた第2の状態保持手段内の状態保持要素手段の値
により、前記第1の命令パイプラインにおいて検出され
た例外が、前記第3の命令パイプラインで処理される命
令を無効化するものであるかどうかを判断し、前記第3
の命令パイプラインの命令の処理を無効化することを特
徴とするパイプライン計算機のパイプライン処理無効化
方法であると共に、そのパイプライン処理無効化機構を
実現するパイプライン計算機である。
本発明(5)は、n段のステージからなる第1の命令
パイプラインと、 m段のステージからなる第2の命令パイプラインと、 前記第1の命令パイプラインを制御する第1の命令パ
イプライン制御部と、 前記第2の命令パイプラインを制御する第2の命令パ
イプライン制御部と、 前記第1の命令パイプラインの各ステージに備えられ
状態保持要素手段で構成された第1の状態保持手段と、 前記第2の命令パイプラインの各ステージに備えられ
状態保持要素手段で構成された第2の状態保持手段とを
備え、 前記第1の命令パイプラインと前記第2の命令パイプ
ラインに同時に命令が供給されると同時に前記第1の状
態保持手段内で前記第1の命令パイプラインの最初のス
テージに備えられた第1の状態保持要素手段および第2
の状態保持手段内で前記第2の命令パイプラインの最初
のステージに備えられた第2の状態保持要素手段がそれ
ぞれ初期の値に設定され、前記第1の命令パイプライン
制御部により制御されて前記命令が前記第1の命令パイ
プラインの中を進む毎に前記第2の状態保持手段を構成
するそれぞれの状態保持要素手段がその値を設定し、前
記第2の命令パイプラインの第j番目のステージの第3
の状態保持要素手段の値が前記命令が前記第1の命令パ
イプラインの第i番目のステージに達した値あるいは通
過した値になるまで前記第2の命令パイプラインの第j
番目のステージの進行を止めることにより前記第1の命
令パイプラインの第i番目のステージと前記第2の命令
パイプラインの第j番目のステージにおいての前記命令
の進行を同期させること、または前記第2の命令パイプ
ライン制御部により制御されて前記命令が前記第2の命
令パイプラインの中を進む毎に前記第1の状態保持手段
を構成するそれぞれの状態保持要素手段がその値を設定
し、前記第1の命令パイプラインの第p番目のステージ
の第4の状態保持要素手段の値が前記命令が前記第2の
命令パイプラインの第q番目のステージに達した値ある
いは通過した値になるまで前記第1の命令パイプライン
の第p番目のステージの進行を止めることにより前記第
2の命令パイプラインの第q番目のステージと前記第1
の命令パイプラインの第p番目のステージにおいての前
記命令の進行を同期させることを特徴とするパイプライ
ン計算機の同期方法であると共に、その同期機構を実現
するパイプライン計算機である。
本発明(6)は、前記本発明(5)のパイプライン計
算機において、第1の命令パイプラインで処理される命
令の例外を検出する第1の例外検出部と、 第2の命令パイプラインで処理される命令の例外を検
出する第2の例外検出部と、 前記第1の命令パイプラインで処理される命令の処理
無効化を判定する第1の命令無効化判定部と、 前記第2の命令パイプラインで処理される命令の処理
無効化を判定する第2の命令無効化判定部とを備え、 前記第1の例外検出部において検出された例外情報と
前記第2の命令パイプラインに備えられた第2の状態保
持手段内の状態保持要素手段の値により、前記第1の命
令パイプラインにおいて検出された例外が、前記第2の
命令パイプラインで処理される命令が無効化するもので
あるかどうかを判断し、前記第2の命令パイプラインの
命令の処理を無効化、または前記第2の例外検出部にお
いて検出された例外情報と前記第1の命令パイプライン
に備えられた第1の状態保持手段内の状態保持要素手段
の値により、前記第2の命令パイプラインにおいて検出
された例外が、前記第1の命令パイプラインで処理され
る命令を無効化するものであるかどうかを判断し、前記
第1の命令パイプラインの命令の処理を無効化すること
を特徴とするパイプライン計算機のパイプライン処理無
効化方法であると共に、そのパイプライン処理無効化機
構を実現するパイプライン計算機である。
本発明(1)または(2)においては、第1の命令パ
イプラインが主となり第2のパイプラインが従となるこ
とで2つの命令パイプライン間の命令進行の同期を実現
する。本発明(3)または(4)においては、第1の命
令パイプラインが主となり第2、第3の命令パイプライ
ンのそれぞれが互いに独立して第1の命令パイプライン
に対して従となることで3つの命令パイプライン間の命
令進行の同期を実現する。本発明(5)または(6)に
おいては同様な同期機構を2つの命令パイプライン間に
おいてそれぞれの命令パイプラインが対等の立場で実現
したものである。状態保持手段としては、計数手段(加
算カウンタまたは減算カウンタ)や状態フラグ保持手段
が使用できる。
作用 本発明は上述の構成において、それぞれの命令パイプ
ラインの独立な動作を可能としながら、主となる命令パ
イプラインの制御信号と、従となる命令パイプラインに
設けられた主となる命令パイプラインでの命令の進み具
合の状態を保持する状態保持手段内の状態保持要素手段
の値、および従となる命令パイプラインの制御信号によ
り、主となる命令パイプラインのあるステージと従とな
る命令パイプラインのあるステージとの同期をとって従
となる命令パイプラインの進行を制御するものである。
また、主となる命令パイプラインの例外検出信号と、従
となる命令パイプラインに設けられた主となる命令パイ
プラインでの命令の進み具合の状態を保持する状態保持
手段内の状態保持要素手段の値、および従となる命令パ
イプラインの制御信号により、主となる命令パイプライ
ンなどでの例外発生によって従となる命令パイプライン
の命令の処理を無効化するものである。
実施例 (実施例1) 第1図及び第2図は本発明の第1の実施例におけるパ
イプライン計算機の同期方法を説明するためのブロック
図とフローチャートである。また、第27図は本発明の原
理を示すブロック図であり、第1図以下を使用して本発
明の実施例を説明する前に、本発明の動作の原理を簡単
に説明する。
第27図において、第1の命令パイプライン10は第1、
第2および第3のステージ111、112および113を有し、
第2の命令パイプライン11は、第1、第2、第3および
第4のステージ121、122、123および124を有する。命令
供給部20から同時に命令1が前記の2つの命令パイプラ
イン10、11に供給され、3つの命令A、BおよびCが順
に供給されるとし、この3つの命令のうち命令Aと命令
Cは第1の命令パイプライン10で実行され、命令Bが第
2の命令パイプライン11で実行されるとする。まず命令
Aが前記2つの命令パイプライン10、11に供給される
と、第1の命令パイプライン10のみが命令Aを実行し、
第2の命令パイプライン11においては命令Aを実行する
必要がないので命令が無効化される。つぎに命令Bが供
給されると第2の命令パイプライン11においては命令B
が取り込まれるのはもちろんであるが、第1の命令パイ
プライン10においても命令Bは取り込まれ命令Aに続い
たステージを占有する。この場合命令Bは第1の命令パ
イプライン10においては何も実行する必要はないが、命
令Aと命令B、さらにこのあと供給される命令Cと命令
Bの順序を記録するためにこのように命令パイプライン
の1つのステージを占有する。これは特に例外が発生し
たある時点での命令の実行を中断或いは中止しなければ
ならないような場合に、各時刻における計算機のレジス
タの内容がそれぞれの命令が順番に実行されたのと同じ
順序で結果を書き換える必要があるため、即ち第2のパ
イプラインを進む命令Bは、第1のパイプラインにおい
てそれより先のステージを進む命令Aが正常終了(例外
を発生せずに終了)したあとでないとレジスタの内容を
書き換えることはできないからである。このため第1の
命令パイプライン10における命令Bの動きを追跡するこ
とによって、命令Bより先のステージを進む命令の動き
をも知り、第2の命令パイプライン11における命令Bの
進行を制御するほか、第1の命令パイプラインを進む命
令Bそのもの又は命令Bより先のステージを進む命令に
おいて例外(異常)が発生した場合に第2の命令パイプ
ラインの命令Bの実行を無効化して命令Bによるレジス
タの内容更新を防ぐ。これが本発明の要点である。なお
第27図においては簡単のためそれぞれの命令が1つのス
テージを占有するとしたが、以下に示す実施例において
は命令パイプラインのそれぞれのステージが2相クロッ
クで駆動されており、2つのサブステージを1組にして
1つのパイプラインステージを構成している。また、本
発明の実施例の説明にあたって、第1の命令パイプライ
ン10における命令の動きを追跡する状態保持手段として
計数手段を用いており、計数回路として減算カウンタを
使用している。
以下第1図から第10図を使用して本発明の第1の実施
例を説明する。第1図は2パイプラインステージより成
る第1の命令パイプライン10と3パイプラインステージ
より成る第2の命令パイプライン11の2つの命令パイプ
ラインを備えているパイプライン計算機を示している。
ここで第1の命令パイプライン10は、X2ステージ30とY1
ステージ31の2つのサブステージより成る第1のステー
ジと、Y2ステージ32とZ1ステージ33の2つのサブステー
ジより成る第2のステージから構成されており、また第
2の命令パイプライン11は、A2ステージ40とB1ステージ
41の2つのサブステージより成る第1のステージと、B2
ステージ42とC1ステージ43の2つのサブステージより成
る第2のステージと、C2ステージ44とD1ステージ45の2
つのサブステージより成る第3のステージで構成されて
いる。第1図において、それぞれのステージは2相のク
ロックph1およびph2で駆動されており、第1のパイプラ
イン10のY1ステージ31およびZ1ステージ33と第2のパイ
プライン11のB1ステージ41、C1ステージ43およびD1ステ
ージ45はph1で駆動されているラッチで構成されてお
り、それ以外のステージはph2で駆動されているラッチ
で構成されている。それぞれの命令パイプライン10およ
び11には命令供給部20から命令1が同時に供給されてい
る。第1の命令パイプライン10或いは第2の命令パイプ
ライン11の中での命令1の進行は、それぞれ第1の命令
パイプライン制御部21および第2の命令パイプライン制
御部22により制御されている。
第2図には、第1図に示されるようなパイプライン計
算機におけるパイプライン間の同期をとるためのフロー
が示されている。
第1の命令パイプライン10の進行は、第1の命令パイ
プライン制御部21で生成される制御信号24(TOX201、TO
Y202およびTOZ203)を使用し、論理回路70、71で生成し
た信号により第1ステージ30の入力セレクタ60および第
2ステージ32の入力セレクタ61を動作させることで行な
っており、第3図に第1の命令パイプライン10に供給さ
れている第1の命令パイプライン制御信号24と第1の命
令パイプライン10の中の命令の動作との関係を示す。こ
こで原状態として、第1のステージである命令供給部20
に命令Cが存在し、第2のステージにあるX2ステージ30
およびY1ステージ31に命令Bが存在し、第3のステージ
であるY2ステージ32およびZ1ステージ33に命令Aが存在
するとする。第1のパイプライン制御信号24(TOX201、
TOY202およびTOZ203)を(TOX、TOY、TOZ)と表現した
場合、 (1) (1、1、1)の場合には命令が2サブステー
ジ分進み、命令供給部20には新たな命令Dが存在する。
(2) (0、1、1)の場合には命令供給部20に存在
する命令Cは動かず、命令Bが新たにY2ステージ32およ
びZ1ステージ33に進む。この場合、X2ステージ30および
Y1ステージ31にはNOP(No Operation:何も実行しない命
令)相当の命令が挿入される。
(3) (0、0、1)の場合には命令供給部20の存在
する命令Cは動かず、またX2ステージ30およびY1ステー
ジ31に存在する命令Bも動かず、命令Aのみが進む。こ
の結果、Y2ステージ32およびZ1ステージ33にはNOP相当
の命令が挿入される。
(4) (0、0、0)の場合にはすべてのステージの
命令は動かず、原状態はそのままの状態で残る。第5図
(a)および(b)に、第1のパイプライン10のX2ステ
ージ30の入力セレクタ60と論理回路70およびY2ステージ
32の入力セレクタ61と論理回路71の回路図をそれぞれ示
す。第5図(a)において、201がTOX、202がTOYであ
り、204、205および206のそれぞれが、NOP相当の命令、
命令供給部20からの命令1およびY1ステージ31からのフ
ィードバックに対応する。第5図(a)および(b)で
は、1ビットの信号の切り替えの回路を示しているが、
命令パイプラインのそれぞれのステージが複数のビット
で構成される場合はビット巾に応じてこのような回路を
並列にならべればよい。第5図(b)においては、202
がTOY,203がTOZであり、214、215および216のそれぞれ
が、NOP相当の命令、Y1ステージ31からの命令およびZ1
ステージ33からのフィードバックに対応する。
同様に、第2の命令パイプライン11の進行は第2の命
令パイプライン制御部22で生成される制御信号25(A1SE
L、B1SEL、C1SEL)によってAステージ40、B2ステージ4
2およびC2ステージ44のそれぞれに設けられた入力セレ
クタ62、63、64を動作させることで行なっており、第4
図に第2の命令パイプライン11に供給されている命令パ
イプライン制御信号25と第2の命令パイプラインの中の
命令の動作との関係を示す。第4図において、第2の命
令パイプライン制御信号25は、A1SEL、B1SELおよびC1SE
Lの3種類の信号で構成されており、それぞれの信号の
値により第2のパイプライン11の中の命令の進行が制御
される。なお、以下で具体的に述べたようにA1SELおよ
びB1SELはそれぞれ2本の信号線で表されているとす
る。ここで原状態として、第1のステージである命令供
給部20に命令Dが存在し、第2のステージであるA2ステ
ージ40およびB1ステージ41に命令Cが存在し、第3のス
テージであるB2ステージ42およびC1ステージ43に命令B
が存在し、第4のステージであるC2ステージ44およびD1
ステージ45に命令Aが存在するとする。第2のパイプラ
イン制御信号25を(A1SEL、B1SEL、C1SEL)と表現した
場合、 (1) (1、1、1)の場合には、各ステージの命令
が2サブステージ分進み、命令供給部20には新しい命令
Eが存在する。
(2) (0、1、1)の場合には、命令供給部20の命
令Dは動かず、命令CがB2ステージ42およびC1ステージ
43に、命令BがC2ステージ44およびD1ステージ45に進
む。この場合、A2ステージ40およびB1ステージ41にはNO
P相当の命令が挿入される。
(3) (2、0、1)の場合には、命令供給部20の命
令Dは動かず、またA2ステージ40およびB1ステージ41の
命令Cも動かず、命令BがC2ステージ44およびD1ステー
ジ45に進む。この場合、B2ステージ42およびC1ステージ
43にはNOP相当の命令が挿入される。
(4) (2、2、0)の場合には、命令D、Cおよび
Bは動かず命令Aが第2のパイプライン11の外に出る。
この場合、C2ステージ44およびD1ステージ45にはNOP相
当の命令が挿入される。
第6図(a)、(b)および(c)に、第2のパイプラ
イン11のA2ステージ40の入力セレクタ62と論理回路72、
B2ステージ42の入力セレクタ63と論理回路73およびC2ス
テージ44の入力セレクタ64と論理回路74の回路図をそれ
ぞれ示す。第6図(a)において、221がA1SEL[1]、
222がA1SEL[0]であり、304、305および306のそれぞ
れが、NOP相当の命令、命令供給部20からの命令1およ
びB1ステージ41からのフィードバックに対応する。第5
図と同様に第6図(a)、(b)および(c)では、1
ビットの信号の切り替えの回路を示しているが、命令パ
イプラインのそれぞれのステージが複数のビットで構成
される場合はビット巾に応じてこのような回路を並列に
ならべればよい。第6図(b)においては、233がB1SEL
[1]、234がB1SEL[0]であり、314、315および316
のそれぞれが、NOP相当の命令、B1ステージ41からの命
令およびC1ステージ43からのフィードバックに対応す
る。第6図(c)においては、244がC1SELであり、324
および325のそれぞれが、NOP相当の命令およびC1ステー
ジ43からの命令に対応する。
第2の命令パイプライン11においては、カウンタ回路
80,81さらにA2ステージ40からC1ステージ43までの各ス
テージに計数要素手段としてそれぞれ2ビットのカウン
タ用ラッチ46〜49(計数手段)が設けられている。ここ
で、それぞれのカウンタ回路およびカウンタ用ラッチの
動作を説明する。
第7図はカウンタ回路80の回路図である。第7図にお
いて、202および203は第1の命令パイプライン制御信号
24の一部であるTOYおよびTOZ、221および222は第2の命
令パイプライン制御信号25の一部であるA1SEL[1]お
よびA1SEL[0]、224および225はB1ステージ41のカウ
ンタ47の値であるB1CNT[1]およびB1CNT[0]であ
る。以上の信号を入力とし第7図に示したカウンタ回路
80は、第1の命令パイプライン10における命令の動きに
従ってそれぞれのステージのカウンタ用ラッチの値を減
数カウントし、A2ステージ40のカウンタ用ラッチ46の値
A2CNT[1]227およびA2CNT[0]228を決定する。
B1ステージ41のカウンタ用ラッチ47には、A2ステージ
40のカウンタ用ラッチ46の値がそのまま入力される。
第8図はカウンタ回路81の回路図である。第8図にお
いて、239および240は2ビットの出力B2CNT[1]およ
びB2CNT[0]でありカウンタ用ラッチ48の入力とな
る。224および225はB1ステージ41のカウンタ用ラッチ47
の値であるB1CNT[1]およびB1CNT[0]、236および2
37はC1ステージ43のカウンタ用ラッチ49の値であるC1CN
T[1]およびC1CNT[0]、233および234は第2の命令
パイプライン制御信号25の一部であるB1SEL[1]およ
びB1SEL[0]、202および203は第1の命令パイプライ
ン制御信号であるTOYおよびTOZである。第8図に示した
カウンタ回路81は、第1の命令パイプライン10における
命令の動きに従い、それぞれのステージのカウンタ用ラ
ッチの値を減数カウントし、B2ステージ42のカウンタ用
ラッチ48の値を決定する。
C1ステージ43のカウンタ用ラッチ49には、B2ステージ
42のカウンタ用ラッチ48の値がそのまま入力される。
以上のような構成のパイプライン計算機を用いての動
作を第9図および第10図に示すタイミングチャートを用
いて説明する。第9図の例は、同期の確保のための命令
パイプラインの進行停止が起こらない場合である。
第9図に2相のクロックph1およびph2により同期的に
駆動されて動作するパイプラインの動作を示す。第(n
+1)サイクルにおいて命令供給部20に第2の命令パイ
プラインで処理される命令Aが出現したとする。このサ
イクルにおいて第1の命令パイプライン制御信号24はす
べて1であるので、命令Aは第1の命令パイプラインの
中を各サイクルごとに2サブステージ分ずつ進むことに
なる(第2図のステップ1001:以下ステップナンバーの
みを記す)。命令Aは第2の命令パイプライン11に供給
されると同時に第1のパイプライン10にも形式的に供給
されるが、これは第2の命令パイプラインが第1の命令
パイプラインの進行を監視しながら制御されるからであ
る。第(n+1)サイクルの後半では命令Aが第1のパ
イプライン10のX2ステージ30に、第2の命令パイプライ
ン11のA2ステージ40に入り、A2ステージ40のカウンタ用
ラッチ46の値はカウンタ回路80にしたがって初期値であ
る2に設定される(ステップ1002)。
ここで、カウンタ用ラッチの値である2は対応する命
令Aが第1の命令パイプライン10の中でX2ステージ30か
らY1ステージ31に存在するということであり、カウンタ
用ラッチの値1は対応する命令Aが第1の命令パイプラ
イン10の中でY2ステージ32からZ1ステージ33に存在する
ということである。また、カウンタ用ラッチの値0は対
応する命令Aが第1の命令パイプライン10から外に出て
おり、その中に存在しないことを示している。このよう
にカウンタ用ラッチの値は命令Aが第1の命令パイプラ
イン10の中でどのステージにあるかということを直接的
に示している。
次に、第(n+2)サイクルの前半では命令Aが第1
のパイプライン10の中をX2ステージ30からY1ステージ31
に、第2の命令パイプライン11の中をA2ステージ40から
B1ステージ41に移動し、B1ステージ41のカウンタ用ラッ
チ47の値はA2ステージ40のカウンタ用ラッチ46の値であ
る2がそのまま設定される。第(n+2)サイクルの後
半では命令Aが第1のパイプライン10の中をY1ステージ
31からY2ステージ32に、第2の命令パイプライン11の中
をB1ステージ41からB2ステージ42に移動し、このときB2
ステージ42のカウンタ用ラッチ48の値はカウンタ回路81
にしたがって決定され、この場合は1になる(ステップ
1003)。第(n+3)サイクルにおいては第2の命令パ
イプライン制御部22が独自に命令Aの進行を止め、命令
AがB2およびC1ステージ42、43に留まる。このように第
2の命令パイプラインの動作の独自性は同期が必要な場
合以外は保たれている。この場合においても命令Aは第
の命令パイプライン10の中を進んでいるので、第(n+
3)サイクルの後半ではB2ステージ42のカウンタ用ラッ
チ48の値はカウンタ回路81にしたがって決定され0とな
る(ステップ1004)。以後のサイクルにおいては、命令
Aは第1の命令パイプライン10をすでに抜け出ているの
で、第1の命令パイプライン10と第2の命令パイプライ
ン11の同期を確保する必要がなくなり、命令Aは第2の
命令パイプライン11の中を第1の命令パイプライン10の
進行に関係なく進行する(ステップ1006、1007、100
8)。
また、第(n+3)サイクルにおいて命令供給部20に
第2の命令パイプライン11で処理される命令Bが出現し
ているが、上記の命令Aと同様に第2の命令パイプライ
ン11が第1の命令パイプライン10の進行に影響されるこ
となく独自性を保ったまま進行する。
次に第10図を使用して2つの命令パイプラインの間の
同期を確保するための命令パイプラインの進行停止を行
なわなければならない場合の動作を説明する。
第10図において、第mサイクルに命令Aが命令供給部
20に出現するとする。しかしながら、第mサイクルにお
いて第1の命令パイプライン制御信号24はすべて0であ
るので命令Aは命令供給部20にとどまり第1の命令パイ
プライン10および第2の命令パイプライン11のいずれに
も進まない。このステージにおける命令の進行の制御は
命令供給部20に独自なものなので本発明の同期機構とは
別に制御されている。
次に、第(m+1)サイクルにおいて第1の命令パイ
プライン制御信号24がすべて1になるとする(ステップ
1001)。このとき第(m+1)サイクルの後半では命令
Aが第1の命令パイプライン10のX2ステージ30に、また
第2の命令パイプライン11のA2ステージ40に入り、A2ス
テージ40のカウンタ用ラッチ46の値がカウンタ回路80に
したがって初期値である2に設定される(ステップ100
2)。この値は命令が第1の命令パイプライン10を進行
するにしたがい減数カウントされる。
第(m+2)サイクルの前半では命令Aが第1のパイ
プライン10の中をX2ステージ30からY1ステージ31に、第
2の命令パイプライン11の中をA2ステージ40からB1ステ
ージ41に移動し、B1ステージ41のカウンタ用ラッチ47の
値はA2ステージ40のカウンタ用ラッチ46の値である2が
そのまま設定される。しし、第(m+2)サイクルでは
第1の命令パイプライン制御信号24がすべて0であり、
これは第1の命令パイプライン10において命令Aが進行
を停止していることを意味する。またこの第(m+2)
サイクルに命令Bが命令供給部20に出現するが、第1の
命令パイプライン制御信号24がすべて0であるので進行
を停止したまま命令供給部20に留まっている。第1の命
令パイプライン10とは独立して第(m+2)サイクルの
後半では、命令Aは第2の命令パイプライン11の中を独
自にB1ステージ41からB2ステージ42に移動し、このとき
B2ステージ42のカウンタ用ラッチ48の値はカウンタ回路
81にしたがって決定される。この場合は計数が停止して
いるためB1ステージ41のカウンタ用ラッチ47の値2がそ
のまま設定される。
第(m+3)サイクルにおいては第2の命令パイプラ
イン制御部22が独自に命令Aの進行を止め、命令AがB2
およびC1ステージ42、43に留まる。このように第2の命
令パイプラインの動作の独自性は同期が必要な場合以外
には保たれている。このサイクルでは第1の命令パイプ
ライン制御信号24がすべて1であるので、命令Aは第1
の命令パイプライン10を進んでおり、第(m+3)サイ
クルの後半では命令Aが第1のパイプライン10の中をY1
ステージ31からY2ステージ32に移動し、第2の命令パイ
プライン11の中のB2ステージ42のカウンタ用ラッチ48の
値はカウンタ回路81にしたがって決定されて1となる
(ステップ1003)。それと同時に命令Bが第1の命令パ
イプライン10のX2ステージ30に、また第2の命令パイプ
ライン11のA2ステージ40に入り、A2ステージ40のカウン
タ用ラッチ46の値がカウンタ回路80にしたがって初期値
である2に設定される(ステップ1001)。
第(m+4)サイクルでは第1の命令パイプライン制
御信号24が再びすべて0になり、第1の命令パイプライ
ン10において命令Aおよび命令Bの進行が停止する。こ
のとき第2の命令パイプライン11におけるB1ステージ41
のカウンタ用ラッチ47およびC1ステージ43のカウンタ用
ラッチ49の計数は停止している。第2の命令パイプライ
ン制御部22は、B1ステージ41のカウンタ用ラッチ47の値
とC1ステージ43のカウンタ用ラッチ49の値を情報として
入力しているので、その値により命令Aおよび命令Bが
第1の命令パイプライン10のどのステージに存在するか
を知ることができ、この場合にはC1ステージ43のカウン
タ用ラッチ49の値が1のままなので命令AがY2ステージ
32およびZ1ステージ33に、またB1ステージ41のカウンタ
用ラッチ47の値が2のままなので命令BがX2ステージ30
およびY1ステージ31に留まっていることを知る(ステッ
プ1004)。
本実施例では、命令Aの進行において、第1の命令パ
イプライン10のZ1ステージ33の次のステージ(第1の命
令パイプライン10の外、つまり命令Aが第1の命令パイ
プライン10の外に抜け出たことを意味する)と第2の命
令パイプライン11のC2ステージ44との同期を確保し、命
令Aが第1の命令パイプライン10においてZ1ステージ33
から第1の命令パイプライン10の外へ抜け出るのと同時
に第2の命令パイプライン11においてC1ステージ43から
C2ステージ44へ進行させるものとすると、第2の命令パ
イプライン制御部22に入力されるC1ステージ43のカウン
タ用ラッチ49の値および第1の命令パイプライン制御信
号24の情報から、第2の命令パイプライン11における命
令Aの進行を停止しなければ目的とする同期は確保でき
ないことがわかり、第2の命令パイプライン制御部22は
第2の命令パイプライン11の中においての命令Aの進行
を停止するように第2の命令パイプライン制御信号25を
生成する。つまり、第2の命令パイプライン制御信号25
(A1SEL、B1SEL、C1SEL)は(2、2、0)となる(ス
テップ1005)。
第(m+5)サイクルにおいて第1の命令パイプライ
ン制御信号24がすべて1になり、命令Aは第1の命令パ
イプライン10の中を進む。第(m+5)サイクルの後半
では、第1の命令パイプライン制御信号24とC1ステージ
43のカウンタ用ラッチ49の値から、命令Aが第1の命令
パイプライン10の外に出ることがわかる(ステップ100
4)ので、第2の命令パイプライン制御部22は目的とす
る同期が確保できた(ステップ1006)ため命令AをC2ス
テージ44に進める。また、命令AがC2ステージ44に進む
ため、命令Bも第2の命令パイプライン11の中をB1ステ
ージ41からB2ステージ42に移動し、B2ステージ42のカウ
ンタ用ラッチ48の値はカウンタ回路81にしたがって決定
されて1となる(ステップ1003)。
第(m+6)サイクルにおいては、命令Aは第1の命
令パイプライン10をすでに抜け出ているので、第1の命
令パイプライン10と第2の命令パイプライン11の同期を
確保する必要がなくなり、第2の命令パイプライン11の
中を第1の命令パイプライン10の進行に関係なく進行す
る(ステップ1007、1008)。しかし命令Bは、第1の命
令パイプライン制御信号24がすべて0であるため目的と
する同期が確保できず(ステップ1004)、第(m+6)
サイクルの前半では第2の命令パイプライン11の中をB2
ステージ42からC1ステージ43に移動し、C1ステージ43の
カウンタ用ラッチ49にはB2ステージ42のカウンタ用ラッ
チ48の値1をそのまま設定するが、そのままB2ステージ
およびC1ステージ42、43に留まる(ステップ1005)。
第(m+7)サイクルに入ると、第1の命令パイプラ
イン制御信号24がすべて1となって命令Bは第1の命令
パイプライン10の中を進む。第(m+7)サイクルの後
半では、第1の命令パイプライン制御信号24とC1ステー
ジ43のカウンタ用ラッチ49の値から、命令Bが第1の命
令パイプライン10の外に出ることがわかる(ステップ10
04)ので、第2の命令パイプライン制御部22は目的とす
る同期が確保できた(ステップ1006)ため命令BをC2ス
テージ44に進める。
以降のサイクルにおいては、命令Bは第1の命令パイ
プライン10をすでに抜け出ているので、第1の命令パイ
プライン10と第2の命令パイプライン11の同期を確保す
る必要がなくなり、第2の命令パイプライン11の中を第
1の命令パイプライン10の進行に関係なく進行する(ス
テップ1007、1008)。
このように、第2のパイプライン11に備えられたカウ
ンタ用ラッチ46〜49の値を第1のパイプライン制御信号
24と第2のパイプライン制御信号25により決定し、その
カウンタ用ラッチの値によって第2の命令パイプライン
の進行を制御することにより、第1の命令パイプライン
と第2の命令パイプラインの間の同期を確保することが
実現できる。
なお本実施例では、第1の命令パイプライン10を2パ
イプラインステージ、第2の命令パイプライン11を3パ
イプラインステージとし、命令の進行を第1の命令パイ
プライン10の第3ステージ(第1の命令パイプライン10
の外、つまり命令が第1の命令パイプライン10の外に抜
け出たことを意味する)と第2の命令パイプライン11の
第3ステージ(C2ステージ44)での同期を確保するもの
としたが、それ以外のステージの組み合わせ、例えば第
1の命令パイプライン10の第2ステージ(Y2ステージ3
2)と第2の命令パイプライン11の第3ステージ(C2ス
テージ44)や、第1の命令パイプライン10の第2ステー
ジ(Y2ステージ32)と第2の命令パイプライン11の第2
ステージ(B2ステージ42)においても同様の方法により
同期を確保することができる。一般に、第1の命令パイ
プラインをnパイプラインステージ、第2の命令パイプ
ラインをmパイプラインステージで構成した場合、第1
の命令パイプラインのi(<=n)番目ステージと第2
の命令パイプラインのj(<=m)番目ステージにおい
ても同様の方法により同期を確保することができ、それ
ぞれの命令を識別することにより命令の種類ごとに同期
をおこなうステージの組み合わせを変更することや同期
を行なうかどうかを決めることも可能である。また本実
施例ではそれぞれのサブステージが2相クロックで駆動
されており、2つのサブステージで1つのパイプライン
ステージを構成するとしたが、サブステージを持たない
単相クロックで駆動されるパイプライン計算機、あるい
は2相に限らず多相クロックで駆動され、1つのパイプ
ラインステージがいくつかのサブステージで構成される
計算機についても同様の同期が実現できる。さらに本実
施例では、第1の命令パイプラインの進みを監視する状
態保持手段を、減算カウンタ回路(計数回路)とカウン
タ用ラッチ(計数一時保持回路)より成る計数要素手段
(状態保持要素手段)で構成しているが、状態保持手段
として命令の存在するステージに対応したフラグを生成
する状態フラグ生成回路と状態フラグ一時保持回路より
成る状態フラグ保持要素手段で構成することも可能であ
り、主となるパイプラインの状態を監視する手段は実施
例に限ったものではない。
一般にマイクロプロセッサ(以下MPU(Micro Process
or Unit)はIU(Unteger Unit)を中心に構成されるこ
とが多いが、最近ではLSI集積度の向上に伴いFPU(Floa
ting-point Processing Unit)、キャッシュメモリ、MM
U(Memory Management Unit)、BCU(Bus Control Uni
t)等を集積するものも見られるようになり、上記に説
明したパイプライン計算機の具体的な例としては、FPU
オンチップのMPUが挙げられる。この場合は上記の第1
の命令パイプラインがIUに、第2の命令パイプラインが
FPUに相当する。MPU自体に供給される命令に特別な処置
を施さない場合は、その命令がMPUの中のどのパイプラ
インで処理されるものか区別がつかないので、各時刻に
おけるMPU内のレジスタの内容はそれぞれの命令が順番
に実行されたのと同じ順序で結果を書き換えなければな
らないために、各パイプラインの同期を取ることが必要
となる。このような集積度の高い大規模なLSIにおい
て、本発明のような少ないハードウェアで高速の同期を
実現する方法は極めて有効なものである。
(実施例2) 第11図及び第12図は本発明の第2の実施例におけるパ
イプライン計算機のパイプライン処理無効化方法を説明
するめのブロック図とフローチャートである。本発明の
原理は、前記で簡単に述べた通りである。
第11図において、本発明の第1の実施例におけるパイ
プライン計算機の同期方法を説明するためのブロック図
である第1図と構成が同じであるものには同じ番号を付
加しているので説明は省略する。新たに付け加えたもの
は、第1の命令パイプライン10で実行される命令の例外
を検出する例外検出部90と、例外検出部90から出力され
る第1の命令パイプラインにおけるYステージ並びにZ
ステージでの例外検出信号YEXP251、ZEXP252と第2の命
令パイプラインのC1ステージ43のカウンタ用ラッチ49の
値と第2の命令パイプライン制御信号25を入力とし、第
2の命令パイプラインの各ステージでの命令を無効化す
るための信号を生成する命令無効化判定部91と、命令無
効化判定部91により生成された信号261(KIL_B1)によ
って制御されるセレクタ160、161と、命令無効化判定部
91により生成された信号262(KIL_C1)によって制御さ
れるセレクタ162、163である。またC2ステージ44の入力
セレクタ64を制御する論理回路74の代わりに第14図に示
すような論理回路78が用いられており、増えている入力
信号として命令無効化判定部91により生成された信号26
3(KIL_C2)がある。セレクタ160、161、162および163
は第6図(c)に示すセレクタ64と同様の構成であり、
セレクタ160、161は信号261(KIL_B1)、セレクタ162、
163は信号262(KIL_C1)によって第2の命令パイプライ
ンを進む命令をNOP総合の命令に置き換えるかどうかを
決める。また、セレクタ64と同様に命令パイプラインの
それぞれのステージが複数のビットで構成される場合は
ビット巾に応じてこのような回路を並列にならべればよ
い。
第12図には、第11図に示されようなパイプライン計算
機におけるパイプラインの処理を無効化するフローが示
されている。
第13図は命令無効化判定部91の回路図である。第13図
において、261はB1ステージ41およびB1ステージ41のカ
ウンタ用ラッチ47の入力セレクタ160、161を制御する信
号KIL_B1、262はC1ステージ43およびC1ステージ43のカ
ウンタ用ラッチ49の入力セレクタ162、163を制御する信
号KIL_C1、263はC2ステージ44の入力セレクタ64を制御
する信号KIL_C2であり、221、233、234および244は第2
の命令パイプライン制御信号25の一部であるA1SEL
[1]、B1SEL[1]、B1SEL[0]およびC1SEL、236お
よび237はC1ステージ43のカウンタ49の値であるC1CNT
[1]およびC1CNT[0]、251および252は例外検出部9
0において検出された例外検出信号YEXPおよびZEXPであ
る。第13図の回路においては、このような第2の命令パ
イプライン制御信号、C1ステージ43のカウンタ49の値並
びに例外検出部90において検出された例外検出信号を入
力として、第2の命令パイプラインのどのステージにお
いて命令を無効化するかを決定す。
以上のような構成のパイプライン計算機を用いてパイ
プライン処理無効化の動作を第15図、第16図および第17
図に示すタイミングタートを用いて説明する。これらの
例は、2つの命令パイプライン間の同期を確保するため
に命令パイプラインの進行停止を行なわなければならな
い場合であり、命令供給部20から第2の命令パイプライ
ン11において処理する命令が2つ連続して供給される場
合である。また、基本的に第15図、第16図および第17図
における動作は、本発明の第1の実施例の説明に利用し
た第10図と同じ動作をしようとするものである。
第15図において、第1の命令パイプライン10の中の例
外検出部90において検出された例外検出信号YEXP251お
よびZEXP252に着目すると、第(m+4)サイクルにお
いて、第2の命令パイプライン11だけでなく第1の命令
パイプライン10においても関連して処理される命令Bの
Y1ステージ31における例外が検出されてYEXP251が1と
なる(第11図のステップ1009:以下ステップナンバーの
みを記す)。この例外検出信号YEXP251と第2の命令パ
イプライン制御信号25およびC1ステージ43のカウンタ用
ラッチ49の値をもとに、第2の命令パイプライン11に備
えられた命令無効化判定部91において第2の命令パイプ
ライン11のどのステージを無効化するかを判定(ステッ
プ1010)し、この場合B1ステージを無効化するセレクタ
制御信号261(KIL_B1)が第(m+4)サイクルの後半
において1となる。
第(m+5)サイクルの後半においては、命令AはB2
ステージ42およびC1ステージ43に留まったままである
が、命令Bはセレクタ160およびセレクタ161がセレクタ
制御信号261(KIL_B1)により制御されるため、B1ステ
ージ41に留まることなく無効化されてNOP相当の命令に
置き換えられるとともにB1ステージ41のカウンタ用ラッ
チ47の値も0に設定される(ステップ1011)。また、第
(m+5)サイクルにおいて第1の命令パイプライン制
御信号24がすべて1になり、命令Aおよび命令Bは第1
の命令パイプライン10の中を進む。第(m+5)サイク
ルの後半では、第1の命令パイプライン制御信号24とC1
ステージ43のカウンタ用ラッチ49の値から、命令Aが第
1の命令パイプライン10の外に出ることがわかる(ステ
ップ1004)ので、第2の命令パイプライン制御部22は目
的とする同期が確保できた(ステップ1006)ため命令A
をC2ステージ44に進める。同様に、命令Bも第1の命令
パイプライン10の中をY1ステージ31からY2ステージ32に
進み、第2の命令パイプライン11の中でもB1ステージ41
からB2ステージ42に進むが、既に命令Bは無効化されて
いるので何も実行されていないことになる。
以後のサイクルにおいては、命令Aは第1の命令パイ
プライン10をすでに抜け出ているので、第1の命令パイ
プライン10と第2の命令パイプライン11の同期を確保す
る必要がなくなり、命令Aは第2の命令パイプライン11
を第1の命令パイプライン10の進行に関係なく進行す
る。また命令BもNOP相当の命令に置き換えられたた
め、第1の命令パイプライン10との同期をとる必要がな
くなり独自に進行するようになる(ステップ1007、100
8)。
第16図において、第1の命令パイプライン10の中の例
外検出部90において検出された例外検出信号YEXP251お
よびZEXP252に着目すると、第(m+3)サイクルにお
いて、命令Aより先のステージを進む命令における例外
が検出されてZEXP252が1となる(ステップ1009)。こ
の例外検出信号ZEXP252と第2の命令パイプライン制御
信号25およびC1ステージ43のカウンタ用ラッチ49の値を
もとに、第2の命令パイプライン11に備えられた命令無
効化判定部91において、第2の命令パイプライン11のど
のステージを無効化するかを判定(ステップ1010)し、
この場合B1ステージを無効化するセレクタ制御信号261
(KIL_B1)とC1ステージを無効化するセレクタ制御信号
262(KIL_C1)が第(m+3)サイクルの後半において
1となる。
第(m+4)サイクルの前半においては、命令Aは、
セレクタ162およびセレクタ163がセレクタ制御信号262
(KIL_C1)により制御されるため、C1ステージ43に留ま
ることなく無効化されてNOP相当の命令に置き換えられ
るとともにC1ステージ43のカウンタ用ラッチ49の値も0
に設定され、また命令Bは、セレクタ160およびセレク
タ161がセレクタ制御信号261(KIL_B1)により制御され
るためB1ステージ41において無効化され、NOP相当の命
令に置き換えられるとともにB1ステージ41のカウンタ用
ラッチ47の値も0に設定される(ステップ1011)。ここ
で第2の命令パイプライン11においては、C1ステージま
での命令がNOP相当の命令に置き換えられたため、第1
の命令パイプライン10との同期をとる必要がなくなり独
自に進行するようになる。
第17図において、第1の命令パイプライン10の中の例
外検出部90において検出された例外検出信号YEXP251お
よびZEXP252に着目すると、第(m+5)サイクルにお
いて、パイプライン外部からの割り込みなどによる例外
が検出されてZEXP252が1となる(ステップ1009)。こ
の例外検出信号ZEXP252と第2の命令パイプライン制御
信号25およびC1ステージ43のカウンタ用ラッチ49の値を
もとに、第2の命令パイプライン11に備えられた命令無
効化判定部91において、第2の命令パイプライン11のど
のステージを無効化するかを判定(ステップ1010)し、
この場合C2ステージを無効化するセレクタ制御信号263
(KIL_C2)が第(m+5)サイクルの前半において1と
なり、B1ステージを無効化するセレクタ制御信号261
((KIL_B1)とC1ステージを無効化するセレクタ制御信
号262((KIL_C1)が第(m+5)サイクルの後半にお
いて1となる。第(m+5)サイクルの後半において
は、命令Aは、セレクタ64がセレクタ制御信号263((K
IL_C2)により制御されるため、C1ステージ43からC2ス
テージ44へ移動する際にNOP相当の命令に置き換えられ
る(ステップ1011)。
また第(m+6)サイクルの前半においては、命令B
は、セレクタ162およびセレクタ163がセレクタ制御信号
262((KIL_C1)により制御されるため、B2ステージ42
からC1ステージ43へ移動する際にNOP相当の命令に置き
換えられるとともにC1ステージ43のカウンタ用ラッチ49
の値も0に設定され、もし命令Bに続く命令が第2の命
令パイプライン11で処理する命令である場合は、セレク
タ160およびセレクタ161がセレクタ制御信号262(KIL_B
1)により制御されるためB1ステージ41において無効化
され、NOP相当の命令に置き換えられるとともにB1ステ
ージ41のカウンタ用ラッチ47の値も0に設定される(ス
テップ1011)。ここで第2の命令パイプライン11におい
ては、全てのステージの命令がNOP相当の命令に置き換
えられたため、第1の命令パイプライン10との同期をと
る必要がなくなり独自に進行するようになる。
本発明の第1の実施例の具体的な例として挙げたFPU
オンチップのMPUを考えると、この場合、命令AがFPUで
の演算命令で命令BがIU側とFPUとの間でデータを転送
する命令であり、第15図に示す例は、IU側においてFPU
へ転送するデータを読みだすためにキャッシュメモリな
どにアクセスしたとき発生したデータアクセス例外(命
令B実行時)に相当し、第16図に示す例は、FPUでの演
算命令(命令A)より1つ前の命令の実行時にIU側にお
いて例外が発生した場合に相当し、第17図に示す例は、
IU側とFPUが共に命令を実行中でMPU外部からの割り込み
例外が発生した場合に相当する。以上、述べたように例
外が発生したときに、各時刻におけるMPU内のレジスタ
の内容はそれぞれの命令が順番に実行されたのと同じ順
序で結果を書き換えなければならないという原則によ
り、例外が発生した命令以降の命令実行によるMPU内の
レジスタの内容の更新を防ぐことができる。
このように、2つのパイプラインが同期を確保しなが
ら動作するパイプライン計算機において、一方の命令パ
イプラインでの例外発生に伴う他方のパイプラインでの
処理無効化を、パイプライン間の同期機構を変更するこ
となく少ないハードウェアで高速に実現する方法は極め
て有効なものである。
(実施例3) 第1図に示した第1の実施例においては、命令パイプ
ラインが2つであったが、さらに多数の命令パイプライ
ンを持つような計算機においても同様な同期方法を実現
できるのはいうまでもない。
第18図及び第19図に本発明の第3の実施例として3つの
命令パイプラインを持つ計算機の同期方法を説明するた
めのブロック図とフローチャートを示す。第18図に示し
た命令パイプラインの同期方法は第1図に示した本発明
の第1の実施例である命令パイプラインの同期方法に加
えて、第3の命令パイプライン12および第3の命令パイ
プライン制御部23を持つ。第3の命令パイプライン12は
第2の命令パイプライン11と同様な構成である。第3の
命令パイプライン12は、AA2ステージ50とBB1ステージ51
の2つのサブステージより成る第1のステージと、BB2
ステージ52とCC1ステージ53の2つのサブステージより
成る第2のステージと、CC2ステージ54とDD1ステージ55
の2つのサブステージより成る第3のステージで構成さ
れ、カウンタ回路82、83、更にAA2ステージ50から、CC1
ステージ53までの各ステージにそれぞれカウンタ用ラッ
チ56〜59が設けられているほか、入力セレクタ65、66お
び67が論理回路75、76および77で生成された信号により
制御されている。この第3の命令パイプライン12におけ
る同期は、第1の実施例の第2の命令パイプライン11の
同期機構と同様のものである。したがって、第18図に示
す命令パイプラインの同期方法により、第1の命令パイ
プライン10を主となる命令パイプラインとし、第2の命
令パイプライン11と第3の命令パイプライン12をそれぞ
れ互いに独立しそれぞれ第1の命令パイプライン10に従
属するパイプラインとした複数の命令パイプラインをも
つ計算機の命令パイプラインの間の同期をとることが可
能となる。
第19図には、第18図に示されるようなパイプライン計
算機におけるパイプライン間の同期をとるためのフロー
が示されている。
(実施例4) 第11図に示した第2の実施例においては、命令パイプ
ラインが2つであったが、さらに多数の命令パイプライ
ンを持つような計算機においても同様なパイプライン処
理無効化方法を実現できるのはいうまでもない。第20図
及び第21図に本発明の第4の実施例として3つの命令パ
イプラインを持つパイプライン計算機のパイプライン処
理無効化方法を説明するためのブロック図とフローチャ
ートを示す。第20図に示したブロック図は第11図に示し
た本発明の第2の実施例を説明するためのブロック図に
加えて、第3の命令パイプライン12、第3の命令パイプ
ライン制御部23および第2の命令無効化判定部92を持
つ。第3の命令パイプライン12は第2の命令パイプライ
ン12と、第2の命令無効化判定部92は第1の命令無効化
判定部91と同様な構成である。第3の命令パイプライン
12は、AA2ステージ50とBB1ステージ51の2つのサブステ
ージより成る第1のステージと、BB2ステージ52とCC1ス
テージ53の2つのサブステージより成る第2のステージ
と、CC2ステージ54とDD1ステージ55の2つのサブステー
ジより成る第3のステージで構成され、カウンタ回路8
2、83、更にAA2ステージ50から、CC1ステージ53までの
各ステージにそれぞれカウンタ用ラッチ56〜59が設けら
れているほか、入力セレクタ65、66および67が論理回路
75、76および79で生成された信号により制御されてい
る。また、第2の命令パイプライン11に設けられた入力
セレクタ160、161、162、163および64が第1の命令無効
化判定部91において生成された制御信号261、262および
263により制御されるのと同様に、第3の命令パイプラ
イン12に設けられた入力セレクタ164、165、166、167お
よび67が第2の命令無効化判定部92において生成された
制御信号264、265および266により制御される。
この第3の命令パイプライン12におけるパイプライン
処理無効化は、第2の実施例の第2の命令パイプライン
11でのパイプライン処理無効化方法と同様のものであ
る。したがって第20図に示すパイプラインの処理無効化
方法により、第1の命令パイプライン10を主とする命令
パイプラインとし、第2の命令パイプライン11と第3の
命令パイプライン12をそれぞれ互いに独立しそれぞれ第
1の命令パイプライン10に従属するパイプラインとした
複数の命令パイプラインをもつパイプライン計算機での
パイプライン処理無効化が可能となる。
第21図には、第20図に示されるようなパイプライン計
算機におけるパイプラインの処理を無効化するフローが
示されている。
(実施例5) 第22図及び第23図に本発明の第5の実施例であるパイ
プライン計算機の同期方法を説明するためのブロック図
とフローチャートを示す。第22図においては、第1の命
令パイプライン13と第2の命令パイプライン11の2つの
命令パイプラインを備え、第2の命令パイプライン11が
第11図に示した本発明の第1の実施例と同様の計数手段
であるカウンタ回路80、81、カウンタ用ラッチ46〜49を
備えているのに加えて、第1の命令パイプライン13は第
1図に示した第1の命令パイプライン10に対して更にカ
ウンタ回路84、85、およびA2ステージ30からC1ステージ
33までの各ステージにそれぞれカウンタ用ラッチ36〜39
を備えている。
第22図に示すような構成により、第1図に示した本発
明の第1の実施例と同じ様に第2の命令パイプライン11
が第1の命令パイプライン13に従属して命令の進行の同
期がとられるだけでなく、それとまた同様にして第1の
命令パイプライン13も第2の命令パイプライン11に従属
して同期を確保することが可能となる。このようにそれ
ぞれの命令パイプラインにおいて命令を識別することに
より、ある命令については第1の命令パイプライン13が
主となり第2の命令パイプライン11が従属し、またある
命令については逆に第2の命令パイプライン11が主とな
り第1の命令パイプライン13が従属するという同期方法
を実現することが可能となる。
第23図には、第22図に示されるようなパイプライン計
算機におけるパイプライン間の同期をとるためのフロー
が示されている。
(実施例6) 第24図及び第25図に本発明の第6の実施例であるパイ
プライン計算機のパイプライン処理無効化方法を説明す
るためのブロック図とフローチャートを示す。第24図に
おいては、第1の命令パイプライン13および第2の命令
パイプライン11の2つの命令パイプラインと、第1の命
令パイプライン13における例外を検出する第1の例外検
出部93および第2の命令パイプライン11における例外を
検出する第2の例外検出部94と、第1の命令パイプライ
ン13において実行している命令の処理無効化を判定する
第1の命令無効化判定部95および第2の命令パイプライ
ン11において実行している命令の処理無効化を判定する
第2の命令無効化判定部96とを備え、第2の命令パイプ
ライン11が第11図に示した本発明の第2の実施例と同様
の計数手段であるカウンタ回路80、81と、カウンタ用ラ
ッチ46〜49と、入力セレクタ62、63、64、160、161、16
2および163を備えているのに対して、第1の命令パイプ
ライン13は第11図に示した第1の命令パイプライン10に
加えて更にカウンタ回路84、85、A2ステージ30からC1ス
テージ33までの各ステージにそれぞれカウンタ用ラッチ
36〜39、更に入力セレクタ170、171、172および173を備
えており、この入力セレクタ170、171、172おび173は前
述したセレクタ64や160などと同じ構成である。
本実施例は、本発明の第2の実施例のように、第1の
命令パイプライン13での例外発生による第2の命令パイ
プライン11におけるパイプライン処理無効化に加えて、
第2の命令パイプライン11における例外を検出する第2
の例外検出部94と、第1の命令パイプライン13内の各ス
テージに設けられた第2の命令パイプライン11の進みを
計数するカウンタ用ラッチ36〜39、および第1の命令パ
イプライン13において実行している命令の処理無効化を
判定する第1の命令無効化判定部95を備えることによ
り、第2の命令パイプライン11での例外発生による第1
の命令パイプライン13におけるパイプラインの処理無効
化を、パイプライン間の同期機構を変更することなく少
ないハードウェアで高速に実現することができる。
このように第24図に示すような構成により、第2の命
令パイプライン11は第1の命令パイプライン13に従属し
てパイプラインの処理が無効化されるけでなく、同様に
第1の命令パイプライン13も第2の命令パイプライン11
に従属してパイプラインの処理が無効化されることが可
能となる。前述したように、それぞれの命令パイプライ
ンにおいて命令を識別することにより、ある命令につい
ては第1の命令パイプライン13が主となり第2の命令パ
イプライン11が従属し、またある命令については逆に第
2の命令パイプライン11が主となり第1の命令パイプラ
イン13が従属するというパイプライン計算機のパイプラ
イン処理無効化方法を実現することが可能となる。
第25図には、第24図に示されるようなパイプライン計
算機におけるパイプラインの処理を無効化するフローが
示されている。
なお、第1〜6の実施例では計数要素手段を減算カウ
ンタとしたが、これを加算カウンタとすることもでき
る。
発明の効果 以上に述べたように本発明によれば、複数の命令パイ
プラインを持つ計算機のそれぞれの命令パイプラインの
間の同期を、命令パイプラインの各ステージに設けた状
態保持手段という簡単なハードウェアで実現することが
でき、さらに同期のための余分な時間を必要としないた
め高速な同期方法が実現できる。
また、複数の命令パイプラインを持つパイプライン計
算機において、ある1つの命令パイプラインで処理され
る命令実行において発生した例外などによる他方の命令
パイプラインで実行中の命令の処理無効化を、同期機構
に変更を加えることなく少ないハードウェアの追加によ
り高速に実現できる。
この高速性は密に結合された計算機同志の命令パイプ
ラインの同期方法並びに命令パイプラインのパイプライ
ン処理無効化方法としても利用可能であり、複数の命令
パイプラインを備えた高速な演算器あるいは計算機を実
現する上での大きな産業上の効果が得られる。
【図面の簡単な説明】
第1図は本発明の第1の実施例におけるパイプライン計
算機の同期方法を説明するためのブロック図、第2図は
本発明の第1の実施例におけるパイプライン計算機の同
期方法を説明するためのフローチャート、第3図は本発
明の第1の実施例における第1の命令パイプラインの制
御方法を示す図、第4図は本発明の第1の実施例におけ
る第2の命令パイプラインの制御方法を示す図、第5図
は本発明の第1の実施例における第1の命令パイプライ
ンの各ステージにあるセレクタの回路図、第6図は本発
明の第1の実施例における第2の命令パイプラインの各
ステージにあるセレクタの回路図、第7図は本発明の第
1の実施例におけるA2ステージにおけるカウンタの回路
図、第8図は本発明の第1の実施例におけるB2ステージ
におけるカウンタの回路図、第9図および第10図は本発
明の第1の実施例における動作タイミング図、第11図は
本発明の第2の実施例におけるパイプライン計算機のパ
イプライン処理無効化方法を説明するためのブロック
図、第12図は本発明の第2の実施例におけるパイプライ
ン計算機のパイプライン処理無効化方法を説明するため
のフローチャート、第13図は本発明の第2の実施例にお
ける命令無効化判定回路の回路図、第14図は本発明の第
2の実施例における第2の命令パイプラインのC2ステー
ジ入力にあるセレクタの回路図、第15図、第16図および
第17図は本発明の第2の実施例における動作タイミング
図、第18図は本発明の第3の実施例におけるパイプライ
ン計算機の同期方法を説明するためのブロック図、第19
図は本発明の第3の実施例におけるパイプライン計算機
の同期方法を説明するためのフローチャート、第20図は
本発明の第4の実施例におけるパイプライン計算機のパ
イプライン処理無効化方法を説明するためのブロック
図、第21図は本発明の第4の実施例におけるパイプライ
ン計算機のパイプライン処理無効化方法を説明するため
のフローチャート、第22図は本発明の第5の実施例にお
けるパイプライン計算機の同期方法を説明するためのブ
ロック図、第23図は本発明の第5の実施例におけるパイ
プライン計算機の同期方法を説明するためのフローチャ
ート、第24図は本発明の第6の実施例におけるパイプラ
イン計算機のパイプライン処理無効化方法を説明するた
めのブロック図、第25図は本発明の第6の実施例におけ
るパイプライン計算機のパイプライン処理無効化方法を
説明するためのフローチャート、第26図は従来の技術に
よる同期方法の例を示すブロック図、第27図は本発明の
動作原理を説明するためのブロック図である。 1,100……命令、10,11,12,13……命令パイプライン、20
……命令供給部、21,22,23……命令パイプライン制御
部、24,25,26,201,202,203,221,222,233,234,244……パ
イプライン制御信号、30〜33,111〜113……第1の命令
パイプラインの各ステージ、36〜39……第1の命令パイ
プラインの各ステージのカウンタ用ラッチ、40〜45,121
〜124……第2の命令パイプラインの各ステージ、46〜4
9……第2の命令パイプラインの各ステージのカウンタ
用ラッチ、50〜55……第3の命令パイプラインの各ステ
ージ、56〜59……第3の命令パイプラインの各ステージ
のカウンタ用ラッチ、60〜67,160〜167,170〜173……命
令パイプラインの各ステージの入力のセレクタ、70〜79
……論理回路、80〜85……カウンタ回路、90,93,94……
例外検出部、91,92,95,96……命令無効化判定部、101…
…演算器制御フィールド、102……その他のフィール
ド、103……演算器、104……レジスタファイル、204〜2
07,214〜217,304〜307,314〜317,324〜326……セレクタ
入出力信号、224,225,227,228,236,237,239,240……カ
ウンタ用ラッチの値、251〜254……例外検出信号、261
〜268……セレクタ制御信号(命令無効化信号)、1001
〜1008……第2の命令パイプラインが第1の命令パイプ
ラインと同期をとりながら進行する各ステップ、1009〜
1011……第2の命令パイプラインにおける実行が第1の
命令パイプラインにおける例外によってキャンセルされ
る各ステップ。

Claims (24)

    (57)【特許請求の範囲】
  1. 【請求項1】n段のステージからなる第1の命令パイプ
    ラインと、 m段のステージからなる第2の命令パイプラインと、 前記第1の命令パイプラインを制御する第1の命令パイ
    プライン制御部と、 前記第2の命令パイプラインを制御する第2の命令パイ
    プライン制御部と、 前記第2の命令パイプラインの各ステージに設けられ状
    態保持要素手段で構成された状態保持手段とを備え、 前記第1の命令パイプラインと前記第2の命令パイプラ
    インに同時に命令が供給されると同時に前記状態保持手
    段内で最初のステージに備えられた第1の状態保持要素
    手段が初期の値に設定され、前記第1の命令パイプライ
    ン制御部により制御されて前記命令が前記第1の命令パ
    イプラインの中を進む毎に前記状態保持手段を構成する
    それぞれの状態保持要素手段がその値を設定し、前記第
    2の命令パイプラインの第j番目(j<=m)のステー
    ジの第2の状態保持要素手段の値が前記命令が前記第1
    の命令パイプラインの第i番目(i<=n)のステージ
    に達した値あるいは通過した値になるまで前記第2の命
    令パイプラインの第j番目のステージの進みを止めるこ
    とにより、前記第1の命令パイプラインの第i番目のス
    テージと前記第2の命令パイプラインの第j番目のステ
    ージにおいての前記命令の進行を同期させることを特徴
    とするパイプライン計算機の同期方法。
  2. 【請求項2】状態保持手段が計数手段であり、それを構
    成する計数要素手段が加算カウンタ或いは減算カウンタ
    であることを特徴とする特許請求の範囲第1項記載のパ
    イプライン計算機の同期方法。
  3. 【請求項3】状態保持手段が状態フラグ保持手段であ
    り、それを構成する状態フラグ保持要素手段が状態フラ
    グ生成回路および状態フラグ保持回路により構成される
    ことを特徴とする特許請求の範囲第1項記載のパイプラ
    イン計算機の同期方法。
  4. 【請求項4】特許請求の範囲第1項記載のパイプライン
    計算機において、第1の命令パイプラインで処理される
    命令の例外を検出する例外検出部と、第2の命令パイプ
    ラインで処理される命令の処理無効化を判定する命令無
    効化判定部とを備え、前記例外検出部において検出され
    た例外情報と前記第2の命令パイプラインに備えられた
    状態保持手段内の状態保持要素手段の値により、前記第
    1の命令パイプラインにおいて検出された例外が、前記
    第2の命令パイプラインで処理される命令を無効化する
    ものであるかどうかを判断し、前記第2の命令パイプラ
    インの命令の処理を無効化することを特徴とするパイプ
    ライン計算機のパイプライン処理無効化方法。
  5. 【請求項5】n段のステージからなる第1の命令パイプ
    ラインと、 m段のステージからなる第2の命令パイプラインと、 k段のステージからなる第3の命令パイプラインと、 前記第1の命令パイプラインを制御する第1の命令パイ
    プライン制御部と、 前記第2の命令パイプラインを制御する第2の命令パイ
    プライン制御部と、 前記第3の命令パイプラインを制御する第3の命令パイ
    プライン制御部と、 前記第2の命令パイプラインの各ステージに設けられた
    状態保持要素手段で構成された第1の状態保持手段と、 前記第3の命令パイプラインの各ステージに設けられ状
    態保持要素手段で構成された第2の状態保持手段とを備
    え、 前記第1の命令パイプラインと前記第2の命令パイプラ
    インと前記第3の命令パイプラインに同時に命令が供給
    されると同時に前記第1の状態保持手段内で前記第2の
    命令パイプラインの最初のステージに備えられた第1の
    状態保持要素手段が初期の値に設定され、また同時に前
    記第2の状態保持手段内で前記第3の命令パイプライン
    の最初のステージに備えられた第2の状態保持要素手段
    が初期の値に設定され、前記第1の命令パイプライン制
    御部により制御されて前記命令が前記第1の命令パイプ
    ラインの中を進む毎に前記第1および第2の状態保持手
    段を構成するそれぞれの状態保持要素手段がその値を設
    定し、前記第1の状態保持手段内で第j番目(j<=
    m)のステージの第3の状態保持要素手段の値が前記命
    令が前記第1の命令パイプラインの第i番目(i<=
    n)のステージに達した値あるいは通過した値になるま
    で前記第2の命令パイプラインの第j番目のステージの
    進みを止めることにより、前記第1の命令パイプライン
    の第i番目のステージと前記第2の命令パイプラインの
    第j番目のステージにおいての前記命令の進行を同期さ
    せ、前記第2の状態保持手段内で第y番目(y<=k)
    のステージの第4の状態保持要素手段の値が前記命令が
    前記第1の命令パイプラインの第x番目(x<=n)の
    ステージに達した値あるいは通過した値になるまで前記
    第3の命令パイプラインの第y番目のステージの進みを
    止めることにより、前記第1の命令パイプラインの第x
    番目のステージと前記第3の命令パイプラインの第y番
    目のステージにおいての前記命令の進行を同期させるこ
    とを特徴とするパイプライン計算機の同期方法。
  6. 【請求項6】第1および第2の状態保持手段がそれぞれ
    計算手段であり、それらを構成する計数要素手段がそれ
    ぞれ加算カウンタ或いは減算カウンタであることを特徴
    とする特許請求の範囲第5項記載のパイプライン計算機
    の同期方法。
  7. 【請求項7】第1および第2の状態保持手段がそれぞれ
    状態フラグ保持手段であり、それらを構成する状態フラ
    グ保持要素手段がそれぞれ状態フラグ生成回路および状
    態フラグ保持回路により構成されることを特徴とする特
    許請求の範囲第5項記載のパイプライン計算機の同期方
    法。
  8. 【請求項8】特許請求の範囲第5項記載のパイプライン
    計算機において、第1の命令パイプラインで処理される
    命令の例外を検出する例外検出部と、第2の命令パイプ
    ラインで処理される命令の処理無効化を判定する第1の
    命令無効化判定部と、第3の命令パイプラインで処理さ
    れる命令の処理無効化を判定する第2の命令無効化判定
    部とを備え、前記例外検出部において検出された例外情
    報と前記第2の命令パイプラインに備えられた第1の状
    態保持手段内の状態保持要素手段の値により、前記第1
    の命令パイプラインにおいて検出された例外が、前記第
    2の命令パイプラインで処理される命令を無効化するも
    のであるかどうかを判断し、前記第2の命令パイプライ
    ンの命令の処理を無効化すること、および前記例外検出
    部において検出された例外情報と前記第3の命令パイプ
    ラインに備えられた第2の状態保持手段内の状態保持要
    素手段の値により、前記第1の命令パイプラインにおい
    て検出された例外が、前記第3の命令パイプラインで処
    理される命令を無効化するものであるかどうかを判断
    し、前記第3の命令パイプラインの命令の処理を無効化
    することを特徴とするパイプライン計算機のパイプライ
    ン処理無効化方法。
  9. 【請求項9】n段のステージからなる第1の命令パイプ
    ラインと、 m段のステージからなる第2の命令パイプラインと、 前記第1の命令パイプラインを制御する第1の命令パイ
    プライン制御部と、 前記第2の命令パイプラインを制御する第2の命令パイ
    プライン制御部と、 前記第1の命令パイプラインの各ステージに備えられ状
    態保持要素手段で構成された第1の状態保持手段と、 前記第2の命令パイプラインの各ステージに備えられた
    状態保持要素手段で構成された第2の状態保持手段とを
    備え、 前記第1の命令パイプラインと前記第2の命令パイプラ
    インに同時に命令が供給されると同時に前記第1の状態
    保持手段内で前記第1の命令パイプラインの最初のステ
    ージに備えられた第1の状態保持要素手段および前記第
    2の状態保持手段内で前記第2の命令パイプラインの最
    初のステージに備えられた第2の状態保持要素手段がそ
    れぞれ初期の値に設定され、前記第1の命令パイプライ
    ン制御部により制御されて前記命令が前記第1の命令パ
    イプラインの中を進む毎に前記第2の状態保持手段を構
    成するそれぞれの状態保持要素手段がその値を設定し、
    前記第2の命令パイプラインの第j番目のステージの第
    3の状態保持要素手段の値が前記命令が前記第1の命令
    パイプラインの第i番目のステージに達した値あるいは
    通過した値になるまで前記第2の命令パイプラインの第
    j番目のステージの進行を止めることにより前記第1の
    命令パイプラインの第i番目のステージと前記第2の命
    令パイプラインの第j番目のステージにおいての前記命
    令の進行を同期させること、または前記第2の命令パイ
    プライン制御部により制御されて前記命令が前記第2の
    命令パイプラインの中を進む毎に前記第1の状態保持手
    段を構成するそれぞれの状態保持要素手段がその値を設
    定し、前記第1の命令パイプラインの第p番目のステー
    ジの第4の状態保持要素手段の値が前記命令が前記第2
    の命令パイプラインの第q番目のステージに達した値あ
    るいは通過した値になるまで前記第1の命令パイプライ
    ンの第p番目のステージの進行を止めることにより前記
    第2の命令パイプラインの第q番目のステージと前記第
    1の命令パイプラインの第p番目のステージにおいての
    前記命令の進行を同期させることを特徴とするパイプラ
    イン計算機の同期方法。
  10. 【請求項10】第1および第2の状態保持手段がそれぞ
    れ計数手段であり、それらを構成する計数要素手段がそ
    れぞれ加算カウンタ或いは減算カウンタであることを特
    徴とする特許請求の範囲第9項記載のパイプライン計算
    機の同期方法。
  11. 【請求項11】第1および第2の状態保持手段がそれぞ
    れ状態フラグ保持手段であり、それらを構成する状態フ
    ラグ保持要素手段がそれぞれ状態フラグ生成回路および
    状態フラグ保持回路により構成されることを特徴とする
    特許請求の範囲第9項記載のパイプライン計算機の同期
    方法。
  12. 【請求項12】特許請求の範囲第9項記載のパイプライ
    ン計算機において、第1の命令パイプラインで処理され
    る命令の例外を検出する第1の例外検出部と、第2の命
    令パイプラインで処理される命令の例外を検出する第2
    の例外検出部と、前記第1の命令パイプラインで処理さ
    れる命令の処理無効化を判定する第1の命令無効化判定
    部と、前記第2の命令パイプラインで処理される命令の
    処理無効化を判定する第2の命令無効化判定部とを備
    え、前記第1の例外検出部において検出された例外情報
    と前記第2の命令パイプラインに備えられた第2の状態
    保持手段内の状態保持要素手段の値により、前記第1の
    命令パイプラインにおいて検出された例外が、前記第2
    の命令パイプラインで処理される命令を無効化するもの
    であるかどうかを判断し、前記第2の命令パイプライン
    の命令の処理を無効化、または前記第2の例外検出部に
    おいて検出された例外情報と前記第1の命令パイプライ
    ンに備えられた第1の状態保持手段内の状態保持要素手
    段の値により、前記第2の命令パイプラインにおいて検
    出された例外が、前記第1の命令パイプラインで処理さ
    れる命令を無効化するものであるかどうかを判断し、前
    記第1の命令パイプラインの命令の処理を無効化するこ
    とを特徴とするパイプライン計算機のパイプライン処理
    無効化方法。
  13. 【請求項13】n段のステージからなる第1の命令パイ
    プラインと、 m段のステージからなる第2の命令パイプラインと、 前記第1の命令パイプラインを制御する第1の命令パイ
    プライン制御部と、 前記第2の命令パイプラインを制御する第2の命令パイ
    プライン制御部と、 前記第2の命令パイプラインの各ステージに設けられた
    状態一時保持手段と、その入力に設けられ、前記第1の
    命令パイプラインで処理される命令が前記第1の命令パ
    イプラインのステージを進む毎にその命令のステージ位
    置を示す状態を生成する状態生成回路とを有する状態保
    持手段とを備え、 前記第1の命令パイプラインで処理される命令の進行を
    前記状態保持手段によって監視することで前記第2の命
    令パイプラインで処理される命令の進行を制御すること
    を特徴とするパイプライン計算機。
  14. 【請求項14】状態保持手段が計数回路および計数一時
    保持回路の計数要素手段により構成される計数手段であ
    り、計数手段内の計数回路が加算カウンタ回路または減
    算カウンタ回路であることを特徴とする特許請求の範囲
    第13項記載のパイプライン計算機。
  15. 【請求項15】状態保持手段が状態フラグ生成回路およ
    び状態フラグ一時保持回路の状態フラグ保持要素手段に
    より構成される状態フラグ保持手段であることを特徴と
    する特許請求の範囲第13項記載のパイプライン計算機。
  16. 【請求項16】n段のステージからなる第1の命令パイ
    プラインと、 m段のステージからなる第2の命令パイプラインと、 前記第1の命令パイプラインを制御する第1の命令パイ
    プライン制御部と、 前記第2の命令パイプラインを制御する第2の命令パイ
    プライン制御部と、 前記第2の命令パイプラインの各ステージに設けられた
    状態一時保持手段と、その入力に設けられ、前記第1の
    命令パイプラインで処理される命令が前記第1の命令パ
    イプラインのステージを進む毎にその命令のステージ位
    置を示す状態を生成する状態生成回路とを有する状態保
    持手段と、 前記第1の命令パイプラインで処理される命令の例外を
    検出する例外検出部と、 前記第2の命令パイプラインで処理される命令の処理無
    効化を判定する命令無効化判定部とを備え、 前記例外検出部で検出された例外情報と前記第2の命令
    パイプラインに備えられた状態保持手段内の状態一時保
    持手段の値により前記命令無効化判定部が判定し、前記
    第2の命令パイプラインの命令の処理を無効化すること
    を特徴とするパイプライン計算機。
  17. 【請求項17】n段のステージからなる第1の命令パイ
    プラインと、 m段のステージからなる第2の命令パイプラインと、 k段のステージからなる第3の命令パイプラインと、 前記第1の命令パイプラインを制御する第1の命令パイ
    プライン制御部と、 前記第2の命令パイプラインを制御する第2の命令パイ
    プライン制御部と 前記第3の命令パイプラインを制御する第3の命令パイ
    プライン制御部と、 前記第2の命令パイプラインの各ステージに設けられた
    状態一時保持手段と、その入力に設けられ、前記第1の
    命令パイプラインで処理される命令が前記第1の命令パ
    イプラインのステージを進む毎にその命令のステージ位
    置を示す状態を生成する状態生成回路とを有する第1の
    状態保持手段と、 前記第3の命令パイプラインの各ステージに設けられた
    状態一時保持手段と、その入力に設けられ、前記第1の
    命令パイプラインで処理される命令が前記第1の命令パ
    イプラインのステージを進む毎にその命令のステージ位
    置を示す状態を生成する状態生成回路とを有する第2の
    状態保持手段とを備え、 前記第1の命令パイプラインの進行を前記第1の状態保
    持手段によって監視することで前記第2の命令パイプラ
    インの進行を制御し、前記第1の命令パイプラインの進
    行を前記第2の状態保持手段によって監視することで前
    記第3の命令パイプラインの進行を制御することを特徴
    とするパイプライン計算機。
  18. 【請求項18】第1および第2の状態保持手段がそれぞ
    れ計数回路および計数一時保持回路の計数要素手段によ
    り構成される計数手段であり、計数手段内の計数回路が
    加算カウンタ回路または減算カウンタ回路であることを
    特徴とする特許請求の範囲第17項記載のパイプライン計
    算機。
  19. 【請求項19】第1および第2の状態保持手段がそれぞ
    れ状態フラグ生成回路および状態フラグ一時保持回路の
    状態フラグ保持要素手段により構成される状態フラグ保
    持手段であることを特徴とする特許請求の範囲第17項記
    載のパイプライン計算機。
  20. 【請求項20】n段のステージからなる第1の命令パイ
    プラインと、 m段のステージからなる第2の命令パイプラインと、 k段のステージからなる第3の命令パイプラインと、 前記第1の命令パイプラインを制御する第1の命令パイ
    プライン制御部と、 前記第2の命令パイプラインを制御する第2の命令パイ
    プライン制御部と、 前記第3の命令パイプラインを制御する第3の命令パイ
    プライン制御部と、 前記第2の命令パイプラインの各ステージに設けられた
    状態一時保持手段と、その入力に設けられ、前記第1の
    命令パイプラインで処理される命令が前記第1の命令パ
    イプラインのステージを進む毎にその命令のステージ位
    置を示す状態を生成する状態生成回路とを有する第1の
    状態保持手段と、 前記第3の命令パイプラインの各ステージに設けられた
    状態一時保持手段と、その入力に設けられ、前記第1の
    命令パイプラインで処理される命令が前記第1の命令パ
    イプラインのステージを進む毎にその命令のステージ位
    置を示す状態を生成する状態生成回路とを有する第2の
    状態保持手段と、 前記第1の命令パイプラインで処理される命令の例外を
    検出する例外検出部と、 前記第2の命令パイプラインで処理される命令の処理無
    効化を判定する第1の命令無効化判定部と、 前記第3の命令パイプラインで処理される命令の処理無
    効化を判定する第2の命令無効化判定部とを備え、 前記例外検出部で検出された例外情報と前記第2の命令
    パイプラインに備えられた第1の状態保持手段内の状態
    一時保持手段の値により前記第1の命令無効化判定部が
    判定し、前記第2の命令パイプラインの命令の処理を無
    効化する、および前記例外検出部で検出された例外情報
    と前記第3の命令パイプラインに備えられた第2の状態
    保持手段内の状態一時保持手段の値により前記第2の命
    令無効化判定部が判定し、前記第3の命令パイプライン
    の命令の処理を無効化することを特徴とするパイプライ
    ン計算機。
  21. 【請求項21】n段のステージからなる第1の命令パイ
    プラインと、 m段のステージからなる第2の命令パイプラインと、 前記第1の命令パイプラインを制御する第1の命令パイ
    プライン制御部と、 前記第2の命令パイプラインを制御する第2の命令パイ
    プライン制御部と、 前記第1の命令パイプラインの各ステージに設けられた
    状態一時保持手段と、その入力に設けられ、前記第2の
    命令パイプラインで処理される命令が前記第2の命令パ
    イプラインのステージを進む毎にその命令のステージ位
    置を示す状態を生成する状態生成回路とを有する第1の
    状態保持手段と、 前記第2の命令パイプラインの各ステージに設けられた
    状態一時保持手段と、その入力に設けられ、前記第1の
    命令パイプラインで処理される命令が前記第1の命令パ
    イプラインのステージを進む毎にその命令のステージ位
    置を示す状態を生成する状態生成回路とを有する第2の
    状態保持手段とを備え、 前記第1の命令パイプラインで処理される命令の進行を
    前記第2の状態保持手段によって監視することで前記第
    2の命令パイプラインで処理される命令の進行を制御
    し、前記第2の命令パイプラインで処理される命令の進
    行を前記第1の状態保持手段によって監視することで前
    記第1の命令パイプラインで処理される命令の進行を制
    御することを特徴とするパイプライン計算機。
  22. 【請求項22】第1および第2の状態保持手段がそれぞ
    れ計数回路および計数一時保持回路の計数要素手段によ
    り構成される計数手段であり、計数手段内の計数回路が
    加算カウンタ回路または減算カウンタ回路であることを
    特徴とする特許請求の範囲第21項記載のパイプライン計
    算機。
  23. 【請求項23】第1および第2の状態保持手段がそれぞ
    れ状態フラグ生成回路および状態フラグ一時保持回路の
    状態フラグ保持要素手段により構成される状態フラグ保
    持手段であることを特徴とする特許請求の範囲第21項記
    載のパイプライン計算機。
  24. 【請求項24】n段のステージからなる第1の命令パイ
    プラインと、 m段のステージからなる第2の命令パイプラインと、 前記第1の命令パイプラインを制御する第1の命令パイ
    プライン制御部と、 前記第2の命令パイプラインを制御する第2の命令パイ
    プライン制御部と、 前記第1の命令パイプラインの各ステージに設けられた
    状態一時保持手段と、その入力に設けられ、前記第2の
    命令パイプラインで処理される命令が前記第2の命令パ
    イプラインのステージを進む毎にその命令のステージ位
    置を示す状態を生成する状態生成回路とを有する第1の
    状態保持手段と、 前記第2の命令パイプラインの各ステージに設けられた
    状態一時保持手段と、その入力に設けられ、前記第1の
    命令パイプラインで処理される命令が前記第1の命令パ
    イプラインのステージを進む毎にその命令のステージ位
    置を示す状態を生成する状態生成回路とを有する第2の
    状態保持手段と、 前記第1の命令パイプラインで処理される命令の例外を
    検出する第1の例外検出部と、 前記第2の命令パイプラインで処理される命令の例外を
    検出する第2の例外検出部と、 前記第1の命令パイプラインで処理される命令の処理無
    効化を判定する第1の命令無効化判定部と、 前記第2の命令パイプラインで処理される命令の処理無
    効化を判定する第2の命令無効化判定部とを備え、 前記第1の例外検出部で検出された例外情報と前記第2
    の命令パイプラインに備えられた第2の状態保持手段内
    の状態一時保持手段の値により前記第2の命令無効化判
    定部が判定し、前記第2の命令パイプラインの命令の処
    理を無効化する、または前記第2の例外検出部で検出さ
    れた例外情報と前記第1の命令パイプラインに備えられ
    た第1の状態保持手段内の状態一時保持手段の値により
    前記第1の命令無効化判定部が判定し、前記第1の命令
    パイプラインの命令の処理を無効化することを特徴とす
    るパイプライン計算機。
JP2253288A 1989-09-25 1990-09-21 パイプライン計算機の同期方法とパイプライン処理無効化方法並びにそれらを実現したパイプライン計算機 Expired - Fee Related JP2595795B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2253288A JP2595795B2 (ja) 1989-09-25 1990-09-21 パイプライン計算機の同期方法とパイプライン処理無効化方法並びにそれらを実現したパイプライン計算機

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP1-248328 1989-09-25
JP24832889 1989-09-25
JP2253288A JP2595795B2 (ja) 1989-09-25 1990-09-21 パイプライン計算機の同期方法とパイプライン処理無効化方法並びにそれらを実現したパイプライン計算機

Publications (2)

Publication Number Publication Date
JPH03206524A JPH03206524A (ja) 1991-09-09
JP2595795B2 true JP2595795B2 (ja) 1997-04-02

Family

ID=26538713

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2253288A Expired - Fee Related JP2595795B2 (ja) 1989-09-25 1990-09-21 パイプライン計算機の同期方法とパイプライン処理無効化方法並びにそれらを実現したパイプライン計算機

Country Status (1)

Country Link
JP (1) JP2595795B2 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01108637A (ja) * 1987-10-20 1989-04-25 Sharp Corp データ処理装置

Also Published As

Publication number Publication date
JPH03206524A (ja) 1991-09-09

Similar Documents

Publication Publication Date Title
US10515046B2 (en) Processors, methods, and systems with a configurable spatial accelerator
US10445234B2 (en) Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features
US10387319B2 (en) Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features
US10469397B2 (en) Processors and methods with configurable network-based dataflow operator circuits
US7281119B1 (en) Selective vertical and horizontal dependency resolution via split-bit propagation in a mixed-architecture system having superscalar and VLIW modes
US6216223B1 (en) Methods and apparatus to dynamically reconfigure the instruction pipeline of an indirect very long instruction word scalable processor
US20190101952A1 (en) Processors and methods for configurable clock gating in a spatial array
KR100309566B1 (ko) 파이프라인프로세서에서다중명령어를무리짓고,그룹화된명령어를동시에발행하고,그룹화된명령어를실행시키는방법및장치
Furber et al. AMULET1: a micropipelined ARM
TW202115575A (zh) 靜止可重組態的資料處理器
CN111868702A (zh) 用于可配置空间加速器中的远程存储器访问的装置、方法和系统
CN111566623A (zh) 用于可配置空间加速器中的集成性能监视的装置、方法和系统
BR102013027768A2 (pt) Redução do consumo de energia em uma unidade multiplicadora-somadora fundida (fma) responsiva a valores de dados de entrada
Krishnan et al. The need for fast communication in hardware-based speculative chip multiprocessors
JP2009230338A (ja) プロセサおよび情報処理装置
EP0820007B1 (en) Pipelined computer
US8171259B2 (en) Multi-cluster dynamic reconfigurable circuit for context valid processing of data by clearing received data with added context change indicative signal
JP2874351B2 (ja) 並列パイプライン命令処理装置
JP2595795B2 (ja) パイプライン計算機の同期方法とパイプライン処理無効化方法並びにそれらを実現したパイプライン計算機
US7111152B1 (en) Computer system that operates in VLIW and superscalar modes and has selectable dependency control
JP5493837B2 (ja) 演算処理装置、情報処理装置及び演算処理装置のパイプライン制御方法
KR100962932B1 (ko) Vliw 프로세서
CN112579168B (zh) 指令执行单元、处理器以及信号处理方法
WO2021253359A1 (zh) 一种图指令处理方法及装置
Campanoni et al. Automatically accelerating non-numerical programs by architecture-compiler co-design

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees