JP2842958B2 - パイプライン計算機の同期方法及びそれを実現したパイプライン計算機 - Google Patents

パイプライン計算機の同期方法及びそれを実現したパイプライン計算機

Info

Publication number
JP2842958B2
JP2842958B2 JP3237844A JP23784491A JP2842958B2 JP 2842958 B2 JP2842958 B2 JP 2842958B2 JP 3237844 A JP3237844 A JP 3237844A JP 23784491 A JP23784491 A JP 23784491A JP 2842958 B2 JP2842958 B2 JP 2842958B2
Authority
JP
Japan
Prior art keywords
instruction
pipeline
stage
instruction pipeline
information
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
JP3237844A
Other languages
English (en)
Other versions
JPH0535474A (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 JP3237844A priority Critical patent/JP2842958B2/ja
Priority to EP92105541A priority patent/EP0507251B1/en
Priority to DE69227715T priority patent/DE69227715T2/de
Publication of JPH0535474A publication Critical patent/JPH0535474A/ja
Application granted granted Critical
Publication of JP2842958B2 publication Critical patent/JP2842958B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数の命令パイプライ
ンを持つパイプライン計算機における各命令パイプライ
ンの同期方法及びそれを実現したパイプライン計算機に
関するものである。
【0002】
【従来の技術】近年、計算機の高速化のためにベクトル
コンピュータ等の手法や複数の命令パイプラインを備え
たパイプライン計算機が取り入れられている。このよう
な手法はマイクロプロセッサ等にも取り入れることがで
きるが、マイクロプロセッサ等のVLSIにおいては、
限られた面積に集積しなければならないという制約か
ら、ベクトルコンピュータの手法をそのまま取り入れる
ことはできない。また、複数の命令パイプラインを設け
る場合にしても、たとえば整数・論理演算用の命令パイ
プラインと浮動小数点演算用の命令パイプラインを独立
して設ける等、異種の命令パイプラインを設けるという
要求がある。しかしながら、このように異種の命令パイ
プラインを設けたパイプライン計算機においては、それ
ぞれの命令パイプラインにおける命令の実行時間が異な
る場合がある。このような場合には、実際の命令実行の
順序は多少順序が入れ換わってもよいが、各時刻におけ
る計算機のレジスタの内容はそれぞれの命令が順番に実
行されたのと同じ順序で結果を書き換えなければならな
い。このような要求は、特に例外が発生したある時点で
の命令の実行を中断しなければならないような場合に重
要な問題になってくる。このように、複数の命令パイプ
ラインの間での命令実行終了の順序を制御することを、
パイプライン間の同期をとるという。
【0003】複数の命令パイプラインを持つ計算機の従
来の技術による同期方法については、例えば「並列計算
機」R.W.Hockney ,C.R.Jesshope共著、奥川峻史・黒住
祥祐共訳、共立出版(株)1984、p.24に記述されてい
る。ここでは、従来の技術として次のものが挙げられて
いる。
【0004】 非同期:それぞれの被制御ユニットが
同期されておらず、それぞれのユニットの間の通信は、
フラッグとハンドシェイクとにより行われる。
【0005】 水平型制御:1つの複合命令が各クロ
ック周期で異なったユニットのセットの動作を制御す
る。この方式では、図15に示されるように、比較的長
い命令100を多数の演算器制御フィールド101に分
割し、それぞれのフィールド101で演算器103を独
立に制御することにより、各演算器103の同期を実現
している。この方式では、制御装置が単純化でき、並列
演算器の数であるnに近い並列度が得られるときに高速
処理を達成できるが、並列度が低いときには演算器制御
フィールド101に遊びができ、つまりその他のフィー
ルド102が存在することになり、命令のビット使用率
が低下する。また、並列演算の可能性を実行時に判定す
るか或いは命令のコンパイル時に抽出する等の準備が必
要である。そのため、それぞれの演算器の演算結果に応
じてそれぞれの演算器の制御を決定するという動作を行
う場合、命令の組換えを行った後にその命令を改めてデ
コードすることが必要となり、そのための余分な時間を
必要とする。詳しくは、例えば「VLSIコンピュータ
I」元岡達編、岩波書店、1984、p. 50 に述べられてい
る。
【0006】 ロックステップ:同一のプロセッサの
セットが、同時に同じ演算を実行するよう同期的に制御
されている。
【0007】 準備完了時送出:要求されるユニット
やレジスタが自由になればすぐに実行ユニットに命令を
送る。
【0008】また、これらの従来の技術とは別に、複数
の命令パイプラインを持つ計算機の同期方法として、特
願平1ー248328号明細書及び図面の中に開示され
ているように、主となる命令パイプラインと従となる命
令パイプラインとの2つの命令パイプラインにより構成
されるパイプライン計算機において、従となる命令パイ
プラインで処理される命令をも主となる命令パイプライ
ンに同時に供給し、主となる命令パイプラインでのその
命令の動きを追跡することにより、その命令の前後に供
給された命令との同期をとり、従となる命令パイプライ
ンにおける命令の進行を制御しようとするものがある。
【0009】
【発明が解決しようとする課題】前記の従来技術の各々
を見た場合、のハンドシェイクによる方法は、ハンド
シェイク自身のために要する時間が必要であり、高速の
同期機構を実現するには不適当な方法である。また、
の水平型制御方式においては、全てが1つの水平型命令
により制御されるため、それぞれのユニットが独立に動
作することが困難であり、それぞれの演算器を独立に動
作させることができない。のロックステップ方式にお
いては、それぞれのユニットが同一であることが必要で
あり、ユニットが同一でない場合には適用不可能であ
る。また、たとえそれぞれのユニットが同一であるとし
ても、それぞれのユニットが独立にそれぞれ異なった動
作を行っている場合には、この方式は適用することがで
きない。
【0010】また、特願平1ー248328号明細書及
び図面に書かれている同期方法においては、従となる命
令パイプラインで処理される命令をも主となる命令パイ
プラインに供給するので、主となる命令パイプラインの
あるステージがそのパイプラインで処理されない命令に
よって占有されることとなり、主となる命令パイプライ
ンでの処理に1ステージの無駄ができる。
【0011】すなわち、従来の技術では、無駄な時間を
費やすことなく独立して動作する異なった命令パイプラ
イン間の高速同期を取ることが困難であるほか、複数の
命令パイプラインで効率良く処理を行うことができな
い。
【0012】本発明はかかる点に鑑み、複数の命令パイ
プラインを持った計算機において、それぞれの命令パイ
プラインの独立した動作を可能としながら、また同期の
ための無駄な時間を必要とすることなく少ないハードウ
ェアでそれぞれの命令パイプライン間の同期をとるほ
か、効率良く命令の処理を行うことができるパイプライ
ン計算機の同期方法と、それを実現したパイプライン計
算機とを提供することを目的とする。
【0013】
【課題を解決するための手段】上述の課題を解決するた
めに、請求項1の発明では、n段のステージからなる第
1の命令パイプラインと、m段のステージからなる第2
の命令パイプラインとを備えたパイプライン計算機の同
期方法として、以下のステップを有するものとする。
【0014】すなわち、この方法では、第1の命令が前
記第1又は第2のどちらの命令パイプラインで処理する
ものであるか、及び前記第1の命令の進行が前記第1の
命令より先に前記第1又は第2の命令パイプラインに供
給された第2の命令の進行との同期を必要とするかを解
読する第1のステップと、この第1のステップの結果に
よって前記第1又は第2の命令パイプラインに前記第1
の命令を供給する第2のステップと、前記第1の命令の
進行が前記第2の命令の進行との同期を必要としないと
きに、前記第1の命令が前記第1又は第2の命令パイプ
ラインを独自に進行する第3のステップとを有する。
【0015】また、前記第1の命令の進行が前記第2の
命令の進行との同期を必要とするときに、前記第1の命
令パイプラインの第i番目(i≦n)のステージと前記
第2の命令パイプラインの第j番目(j≦m)のステー
ジにおいて、前記第1の命令の進行が前記第2の命令の
進行との同期を確保するために、前記第1の命令が前記
第1の命令パイプラインを進行する場合にあっては、前
記第2の命令が前記第1の命令パイプラインを進行する
とき第i番目のステージを通過すること、並びに前記第
2の命令パイプラインを進行するとき第j番目のステー
ジを通過するか又は第j番目のステージに達することを
監視する第4のステップと、前記第4のステップの条件
が満たされるまで前記第1の命令における前記第1の命
令パイプラインの第i番目のステージの進みを止める第
5のステップとを有するものとし、一方、前記第1の命
令が前記第2の命令パイプラインを進行する場合にあっ
ては、前記第2の命令が、前記第1の命令パイプライン
を進行するとき第i番目のステージを通過するか又は第
i番目のステージに達すること、並びに前記第2の命令
パイプラインを進行するとき第j番目のステージを通過
することを監視する第6のステップと、前記第6のステ
ップの条件が満たされるまで前記第1の命令における前
記第2の命令パイプラインの第j番目のステージの進み
を止める第7のステップとを有するものとする。
【0016】さらに、前記第2の命令との同期が確保で
きたために、前記第1の命令が前記第1又は第2の命令
パイプラインを独自に進行する第8のステップを有する
構成とする。
【0017】このように、どちらの命令パイプラインで
命令が処理される場合においても、各命令パイプライン
を進行する命令がそれぞれ両方の命令パイプラインに取
り込まれている全ての命令のうち自分は何番目かという
情報を保持しており、その情報を監視することによって
第1又は第2の命令パイプラインを進行する命令が制御
され、2つの命令パイプラインに取り込まれた各命令に
おける進行の同期を実現するものである。
【0018】請求項2の発明では、n段のステージから
なる第1の命令パイプラインと、m段のステージからな
る第2の命令パイプラインと、k段のステージからなる
第3の命令パイプラインとを備えたパイプライン計算機
の同期方法として、以下のステップを有するものとす
る。
【0019】すなわち、この方法では、第1の命令が前
記第1、第2又は第3のどの命令パイプラインで処理す
るものであるか、及び前記第1の命令の進行が前記第1
の命令より先に前記第1、第2又は第3の命令パイプラ
インに供給された第2の命令の進行との同期を必要とす
るかを解読する第1のステップと、この第1のステップ
の結果によって前記第1、第2又は第3の命令パイプラ
インに前記第1の命令を供給する第2のステップと、前
記第1の命令の進行が前記第2の命令の進行との同期を
必要としないときに、前記第1の命令が前記第1、第2
又は第3の命令パイプラインを独自に進行する第3のス
テップとを有する。
【0020】また、前記第1の命令の進行が前記第2の
命令の進行との同期を必要とするときに、前記第1の命
令パイプラインの第i番目(i≦n)のステージと前記
第2の命令パイプラインの第j番目(j≦m)のステー
ジと前記第3の命令パイプラインの第x番目(x≦k)
のステージとにおいて、前記第1の命令の進行が前記第
2の命令の進行との同期を確保するために、前記第1の
命令が前記第1の命令パイプラインを進行する場合にあ
っては、前記第2の命令が前記第1の命令パイプライン
を進行するとき第i番目のステージを通過すること、前
記第2の命令パイプラインを進行するとき第j番目のス
テージを通過するか又は第j番目のステージに達するこ
と、並びに前記第3の命令パイプラインを進行するとき
第x番目のステージを通過するか又は第x番目のステー
ジに達することを監視する第4のステップと、前記第4
のステップの条件が満たされるまで前記第1の命令にお
ける前記第1の命令パイプラインの第i番目のステージ
の進みを止める第5のステップとを有する。また、前記
第1の命令が前記第2の命令パイプラインを進行する場
合にあっては、前記第2の命令が、前記第1の命令パイ
プラインを進行するとき第i番目のステージを通過する
か又は第i番目のステージに達すること、前記第2の命
令パイプラインを進行するとき第j番目のステージを通
過すること、並びに前記第3の命令パイプラインを進行
するとき第x番目のステージを通過するか又は第x番目
のステージに達することを監視する第6のステップと、
前記第6のステップの条件が満たされるまで前記第1の
命令における前記第2の命令パイプラインの第j番目の
ステージの進みを止める第7のステップとを有し、ま
た、前記第1の命令が前記第3の命令パイプラインを進
行する場合にあっては、前記第2の命令が、前記第1の
命令パイプラインを進行するとき第i番目のステージを
通過するか又は第i番目のステージに達すること、前記
第2の命令パイプラインを進行するとき第j番目のステ
ージを通過するか又は第j番目のステージに達するこ
と、並びに前記第3の命令パイプラインを進行するとき
第x番目のステージを通過することを監視する第8のス
テップと、前記第8のステップの条件が満たされるまで
前記第1の命令における前記第3の命令パイプラインの
第x番目のステージの進みを止める第9のステップとを
有するものとする。
【0021】さらに、前記第2の命令との同期が確保で
きたために、前記第1の命令が前記第1、第2又は第3
の命令パイプラインを独自に進行する第10のステップ
を有する構成とする。
【0022】請求項3の発明では、前記した同期方法を
実現するパイプライン計算機として、複数のステージか
らなる第1の命令パイプラインと、複数のステージから
なる第2の命令パイプラインと、前記第1の命令パイプ
ラインを制御する第1の命令パイプライン制御部と、前
記第2の命令パイプラインを制御する第2の命令パイプ
ライン制御部と、命令供給部より供給される命令を解読
する命令解読部とを有するものとする。
【0023】さらに、計算機は、解読された第1の命令
が前記第1又は第2の命令パイプラインの最初のステー
ジに進むとき、その最初のステージに備えられた情報一
時保持手段の値となる、前記第1の命令の進行が前記第
1の命令より先に前記第1又は第2の命令パイプライン
に供給された第2の命令の進行との同期を必要とする
か、並びに前記第1の命令が前記第1又は第2の命令パ
イプラインにおいて処理されておりまだ前記第1又は第
2の命令パイプラインにおける同期をとるステージまで
進んでいない命令の中で何番目の命令であるかという情
報を生成する初期情報生成部と、前記第1の命令が前記
第1の命令パイプラインを進行するとき、前記第1の命
令パイプラインの各ステージに備えられた第1の情報一
時保持手段と前記第2の命令が前記第1又は第2の命令
パイプラインの同期をとるステージに進行する毎に前記
第1の命令パイプラインを進行する前記第1の命令の前
記情報を更新する第1の情報生成回路により構成された
第1の情報保持手段と、前記第1の命令が前記第2の命
令パイプラインを進行するとき、前記第2の命令パイプ
ラインの各ステージに備えられた第2の情報一時保持手
段と前記第2の命令が前記第1又は第2の命令パイプラ
インの同期をとるステージに進行する毎に前記第2の命
令パイプラインを進行する前記第1の命令の前記情報を
更新する第2の情報生成回路により構成された第2の情
報保持手段とを有する。
【0024】請求項4の発明では、前記した同期方法を
実現するパイプライン計算機として、複数のステージか
らなる第1の命令パイプラインと、複数のステージから
なる第2の命令パイプラインと、複数のステージからな
る第3の命令パイプラインと、前記第1の命令パイプラ
インを制御する第1の命令パイプライン制御部と、前記
第2の命令パイプラインを制御する第2の命令パイプラ
イン制御部と、前記第3の命令パイプラインを制御する
第3の命令パイプライン制御部と、命令供給部より供給
される命令を解読する命令解読部とを有するものとす
る。
【0025】さらに、計算機は、解読された第1の命令
が前記第1、第2又は第3の命令パイプラインの最初の
ステージに進むとき、その最初のステージに備えられた
情報一時保持手段の値となる、前記第1の命令の進行が
前記第1の命令より先に前記第1、第2又は第3の命令
パイプラインに供給された第2の命令の進行との同期を
必要とするか、並びに前記第1の命令が前記第1、第2
又は第3の命令パイプラインにおいて処理されておりま
だ前記第1、第2又は第3の命令パイプラインにおける
同期をとるステージまで進んでいない命令の中で何番目
の命令であるかという情報を生成する初期情報生成部
と、前記第1の命令が前記第1の命令パイプラインを進
行するとき、前記第1の命令パイプラインの各ステージ
に備えられた第1の情報一時保持手段と前記第2の命令
が前記第1、第2又は第3の命令パイプラインの同期を
とるステージに進行する毎に前記第1の命令パイプライ
ンを進行する前記第1の命令の前記情報を更新する第1
の情報生成回路により構成された第1の情報保持手段
と、前記第1の命令が前記第2の命令パイプラインを進
行するとき、前記第2の命令パイプラインの各ステージ
に備えられた第2の情報一時保持手段と前記第2の命令
が前記第1、第2又は第3の命令パイプラインの同期を
とるステージに進行する毎に前記第2の命令パイプライ
ンを進行する前記第1の命令の前記情報を更新する第2
の情報生成回路により構成された第2の情報保持手段
と、前記第1の命令が前記第3の命令パイプラインを進
行するとき、前記第3の命令パイプラインの各ステージ
に備えられた第3の情報一時保持手段と前記第2の命令
が前記第1、第2又は第3の命令パイプラインの同期を
とるステージに進行する毎に前記第3の命令パイプライ
ンを進行する前記第1の命令の前記情報を更新する第3
の情報生成回路により構成された第3の情報保持手段と
を有する。
【0026】前記情報生成回路として情報フラグ生成回
路、情報一時保持手段として情報保持用のラッチ群を用
いている。
【0027】
【作用】本発明は上述の構成において、それぞれの命令
パイプラインの独立した動作を可能としながら、それぞ
れの命令パイプラインに設けられ、他の命令パイプライ
ンとの同期が必要か、またそれぞれの命令パイプライン
で処理されており、未だ同期をとるステージに達してい
ない命令のうち自分は何番目かという情報を保持する情
報保持手段内の情報一時保持手段の値により、それぞれ
の命令パイプラインを進む命令の同期をとってそれらの
進行を制御するものである。また、一方の命令パイプラ
インで処理されているある命令が同期をとるステージに
進もうとしているとき、他方の命令パイプラインで処理
されているその命令より先に命令供給部から供給された
命令が同期をとるステージに進む場合は、一度に両方の
命令が同期をとるステージに進む。
【0028】
【実施例】以下、本発明の実施例を図面に基づいて説明
する。
【0029】(実施例1)図1及び図2はそれぞれ本発
明の実施例1を説明するためのフローチャート図及びブ
ロック図であり、これらを利用してパイプライン計算機
の同期方法を説明する。
【0030】図2に示すような第1の命令パイプライン
10及び第2の命令パイプライン11を持つパイプライ
ン計算機においては、ある命令が供給されると、まず、
その命令がどのような命令であるか、どのパイプライン
で処理される命令であるかが解読され(図1のステップ
1001)、その解読された結果によって解読した命令
をその命令の処理を行うパイプラインへ供給する(同ス
テップ1002)。第1の命令パイプライン10又は第
2の命令パイプライン11を進行するその命令は、その
命令より先に第1の命令パイプライン10及び第2の命
令パイプライン11に供給された命令との同期が必要で
ない場合には、独自に命令パイプライン中を進行して
(同ステップ1003,1004)、その実行を終え
る。同期が必要な場合には、その命令より先に第1の命
令パイプライン10及び第2の命令パイプライン11に
供給された命令が、同期をとるステージ、例えば第1の
命令パイプラインの第3ステージ113と第2の命令パ
イプラインの第4ステージ124とを通過しているか、
又はそれらのステージに進むかが監視され(同ステップ
1003,1005)、同期が確保できないときは、命
令パイプライン中の進行を停止する(同ステップ100
6)。一方、先に供給された命令との同期が確保できる
と、その命令は独自に命令パイプライン中を進行して
(同ステップ1007)、その実行を終了する。
【0031】以上の同期方法を図2を用いて実例を挙げ
て説明する。第1の命令パイプライン10は第1〜第3
のステージ111〜113を有し、第2の命令パイプラ
イン11は第1〜第4のステージ121〜124を有す
る。第1の命令パイプライン10及び第2の命令パイプ
ライン11のそれぞれのステージは、そこを進行する命
令が両命令パイプラインで処理される命令中の何番目
か、また前後の命令との同期が必要であるかという情報
を保持する情報保持要素手段を備えている。命令供給部
20から供給される命令は命令解読部21において解読
され、解読された結果に基づいてその命令が処理される
命令パイプラインに供給される。今、4つの命令A,
B,C,Dが順に供給され、この4つの命令のうち命令
A及び命令Cが第1の命令パイプライン10で実行さ
れ、命令B及び命令Dが第2の命令パイプライン11で
実行されるものとし、命令A,B,Cの3つの命令が前
後の命令との同期を必要とするものであり、命令Dは同
期を必要としないものとする。まず、命令Aが命令解読
部21に供給され、この命令が第1の命令パイプライン
10で実行されるものであることが判ると、命令Aは第
1の命令パイプライン10に取り込まれ、両命令パイプ
ラインで処理される命令中の1番目であるという情報を
保持しながら実行を開始する。次に、命令Bが命令解読
部21に供給され、命令Aと同じようにどちらの命令パ
イプラインで処理するものであるかが判断される。この
場合、命令Bは第2の命令パイプライン11に取り込ま
れ、両命令パイプラインで処理される命令中の2番目で
あるという情報を保持しながら実行を開始する。このと
き、命令Aは独自に第1の命令パイプライン10を進行
している。続いて、命令Cが命令解読部21に供給及び
解読されて、第1の命令パイプライン10に取込可能で
ある場合(命令Aが第2ステージ112又はそれより先
を進行する場合)、命令Cは第1の命令パイプライン1
0に取り込まれ、両命令パイプラインで処理される命令
中の3番目であるという情報を保持しながら実行を開始
する。このとき、命令Aは第1の命令パイプライン10
を、また命令Bは第2の命令パイプライン11をそれぞ
れ独自に進行している。さらに命令Dが命令解読部21
に供給及び解読されて、第2の命令パイプライン11に
取込可能である場合(命令Bが第2ステージ122又は
それより先を進行する場合)、命令Dは第2の命令パイ
プライン11に取り込まれ、両命令パイプラインで処理
される命令中の4番目であるという情報を保持しながら
実行を開始する。このとき、命令A及び命令Cは第1の
命令パイプライン10を、また命令Bは第2の命令パイ
プライン11をそれぞれ独自に進行している。
【0032】ここで、先にも述べたように、両命令パイ
プラインが第1の命令パイプライン10の第3ステージ
113と第2の命令パイプライン11の第4ステージ1
24とにおいて同期をとるものであるとし、図2に示す
ように4つの命令A〜Dが両命令パイプライン中の各ス
テージを進行しているとする。命令Aは既に同期をとる
ステージ113に進んでいるので、この状態においては
命令Bが両命令パイプラインで処理され、かつ同期をと
るステージまで進んでいない命令中の1番目という情報
を、命令Cが2番目という情報を、また命令Dが3番目
という情報をそれぞれ保持しながら処理を続けている。
命令Aが第3ステージ113での処理を終えて第1の命
令パイプライン10の外に出るのと同時に、命令Cが第
2ステージ112での処理を終えて第3ステージ113
に進もうとするとき、命令Cは同期をとるステージまで
進んでいない命令中の2番目であるので、1番目である
命令Bが既に第2の命令パイプライン11の第3ステー
ジ123での処理を終えて第4ステージ124に進んで
いるか又は進むときでないと命令Bとの同期が確保され
ず、命令Cは第2ステージ112に留まったままとな
る。命令Bが第2の命令パイプライン11の第3ステー
ジ123での処理を終えて第4ステージ124に進む
と、命令Cは同期が確保できると同時に第3ステージ1
13に進んで処理を続け、命令Dはその前後に供給され
た命令の進行にかかわらず独自にその処理を続ける。
【0033】この実施例の方法によれば、それぞれの命
令パイプラインに供給される命令は、各命令間の同期が
必要となるまではそれぞれの命令パイプライン中を独自
に進行するとともに、その命令の前後に供給される命令
との同期が必要であるか、またその命令が同期をとるス
テージに進んでいない命令中の何番目であるかという情
報を基に、簡単に各パイプライン中を進行する命令の同
期をとり、また、ある命令が同期をとるステージに進も
うとするとき、その命令より先に他方のパイプラインに
供給されている命令が同期をとるステージに進むと同時
に進むことができるという点で、パイプライン計算機に
おける多大な構成上の簡略化と処理上の効率化とが図れ
る。こういったことから、その実用的効果は非常に大き
い。
【0034】(実施例2)本発明の実施例1において説
明した2つの命令パイプラインを持つパイプライン計算
機だけでなく、3つの命令パイプラインを持つパイプラ
イン計算機においても同じような同期方法が実現でき
る。図3は本発明の実施例2を説明するためのブロック
図であり、この図と先の図1とを利用して3つの命令パ
イプラインを持つパイプライン計算機の同期方法を説明
する。
【0035】図3に示すような第1の命令パイプライン
10、第2の命令パイプライン11及び第3の命令パイ
プライン12の3つの命令パイプラインを持つパイプラ
イン計算機においては、ある命令が供給されると、ま
ず、その命令がどのような命令であるか、どのパイプラ
インで処理される命令であるかが解読され(図1のステ
ップ1001)、その解読された結果によって解読した
命令をその命令の処理を行うパイプラインへ供給する
(同ステップ1002)。第1の命令パイプライン1
0、第2の命令パイプライン11又は第3の命令パイプ
ライン12を進行するその命令は、その命令より先に第
1の命令パイプライン10、第2の命令パイプライン1
1及び第3の命令パイプライン12に供給された命令と
の同期が必要でない場合には、独自に命令パイプライン
中を進行して(同ステップ1003,1004)、その
実行を終える。同期が必要な場合には、その命令より先
に第1の命令パイプライン10、第2の命令パイプライ
ン11及び第3の命令パイプライン12に供給された命
令が、同期をとるステージ、例えば第1の命令パイプラ
イン10の第3ステージ113と第2の命令パイプライ
ン11の第4ステージ124と第3の命令パイプライン
12の第3ステージ133とを通過しているか、又はそ
れらのステージに進むかが監視され(同ステップ100
3,1005)、同期が確保できないときは、命令パイ
プライン中の進行を停止する(同ステップ1006)。
一方、先に供給された命令との同期が確保できると、そ
の命令は独自に命令パイプライン中を進行して(同ステ
ップ1007)、その実行を終了する。
【0036】以上の同期方法を図3を用いて実例を挙げ
て説明する。第1の命令パイプライン10は第1〜第3
のステージ111〜113を、第2の命令パイプライン
11は第1〜第4のステージ121〜124を、第3の
命令パイプライン12は第1〜第4のステージ131〜
134を有する。第1の命令パイプライン10、第2の
命令パイプライン11及び第3の命令パイプライン12
のそれぞれのステージは、そこを進行する命令がそれら
の命令パイプラインで処理される命令中の何番目か、ま
た前後の命令との同期が必要であるかという情報を保持
する情報保持要素手段を備えている。命令供給部20か
ら供給される命令は命令解読部21において解読され、
解読された結果に基づいてその命令が処理される命令パ
イプラインに供給される。今、5つの命令A,B,C,
D,Eが順に供給され、この5つの命令のうち命令A及
び命令Eが第1の命令パイプライン10で実行され、命
令B及び命令Dが第2の命令パイプライン11で実行さ
れ、また命令Cが第3の命令パイプライン12で実行さ
れるものとし、命令A,B,C,Eの4つの命令が前後
の命令との同期を必要とするものであり、命令Dは同期
を必要としないものとする。まず、命令Aが命令解読部
21に供給され、この命令が第1の命令パイプライン1
0で実行されるものであることが判ると、命令Aは第1
の命令パイプライン10に取り込まれ、3つの命令パイ
プラインで処理される命令中の1番目であるという情報
を保持しながら実行を開始する。次に、命令Bが命令解
読部21に供給され、命令Aと同じようにどちらの命令
パイプラインで処理するものであるかが判断される。こ
の場合、命令Bは第2の命令パイプライン11に取り込
まれ、3つの命令パイプラインで処理される命令中の2
番目であるという情報を保持しながら実行を開始する。
このとき、命令Aは独自に第1の命令パイプライン10
を進行している。続いて、命令Cが命令解読部21に供
給され、どちらの命令パイプラインで処理するものであ
るかが判断される。この場合、命令Cは第3の命令パイ
プライン12に取り込まれ、3つの命令パイプラインで
処理される命令中の3番目であるという情報を保持しな
がら実行を開始する。このとき、命令Aは第1の命令パ
イプライン10を、命令Bは第2の命令パイプライン1
1を独自に進行している。引き続いて、命令Dが命令解
読部21に供給及び解読されて、第2の命令パイプライ
ン11に取込可能である場合(命令Bが第2ステージ1
22又はそれより先を進行する場合)、命令Dは第2の
命令パイプライン11に取り込まれ、3つの命令パイプ
ラインで処理される命令中の4番目であるという情報を
保持しながら実行を開始する。このとき、命令Aは第1
の命令パイプライン10を、命令Bは第2の命令パイプ
ライン11を、また命令Cは第3の命令パイプライン1
2をそれぞれ独自に進行している。さらに命令Eが命令
解読部21に供給及び解読されて、第1の命令パイプラ
イン10に取込可能である場合(命令Aが第2ステージ
112又はそれより先を進行する場合)、命令Eは第1
の命令パイプライン10に取り込まれ、3つの命令パイ
プラインで処理される命令中の5番目であるという情報
を保持しながら実行を開始する。このとき、命令Aは第
1の命令パイプライン10を、命令B及び命令Dは第2
の命令パイプライン11を、また命令Cは第3の命令パ
イプライン12をそれぞれ独自に進行している。
【0037】ここで、先にも述べたように、3つの命令
パイプラインが第1の命令パイプライン10の第3ステ
ージ113と第2の命令パイプライン11の第4ステー
ジ124と第3の命令パイプライン12の第3ステージ
133とにおいて同期をとるものであるとし、図3に示
すように5つの命令A〜Eが3つの命令パイプライン中
の各ステージを進行しているとする。命令Aは既に同期
をとるステージ113に進んでいるので、この状態にお
いては命令Bが3つの命令パイプラインで処理され、か
つ同期をとるステージまで進んでいない命令中の1番目
という情報を、命令Cが2番目という情報を、命令Dが
3番目という情報を、また命令Eが4番目という情報を
それぞれ保持しながら処理を続けている。命令Aが第3
ステージ113での処理を終えて第1の命令パイプライ
ン10の外に出るのと同時に、命令Eが第2ステージ1
12での処理を終えて第3ステージ113に進もうとす
るとき、命令Eは同期をとるステージまで進んでいない
命令中の4番目(そのうち、同期を必要とする命令中の
3番目)であるので、1番目である命令Bが既に第2の
命令パイプライン11の第3ステージ123での処理を
終えて第4ステージ124に進んでいるか又は進むと
き、かつ2番目である命令Cが既に第3の命令パイプラ
イン12の第2ステージ132での処理を終えて第3ス
テージ133に進んでいるか又は進むときでないと命令
B及び命令Cとの同期が確保されず、命令Eは第2ステ
ージ112に留まったままとなる(このとき、命令Dは
前記したように同期をとる必要がない)。命令Bが第2
の命令パイプライン11の第3ステージ123での処理
を終えて第4ステージ124に進むとき、命令Cは同期
が確保できると同時に第3の命令パイプライン12の第
3ステージ133に進むことができる。もし、このと
き、同時に命令Cが第3の命令パイプライン12の第2
ステージ132での処理を終えて第3ステージ133に
進むと、命令Eは同期が確保できると同時に第1の命令
パイプライン10の第3ステージ113に進むことがで
きる。また命令Dはその前後に供給された命令の進行に
かかわらず独自にその処理を続ける。
【0038】この実施例の方法によれば、本発明の実施
例1におけるパイプライン計算機の同期方法と同じよう
に、それぞれの命令パイプラインに供給される命令は、
各命令間の同期が必要となるまではそれぞれの命令パイ
プライン中を独自に進行するとともに、その命令の前後
に供給される命令との同期が必要であるか、またその命
令が同期をとるステージに進んでいない命令中の何番目
であるかという情報を基に、簡単に各パイプライン中を
進行する命令の同期をとり、また、ある命令が同期をと
るステージに進もうとするとき、その命令より先に他方
のパイプラインに供給されている命令が同期をとるステ
ージに進むと同時に進むことができるという点で、パイ
プライン計算機における多大な構成上の簡略化と処理上
の効率化が図れる。
【0039】(実施例3)次に、図4〜図10を利用し
て本発明の実施例3である複数の命令パイプラインを有
するパイプライン計算機を説明する。
【0040】ここで、図2においては、簡単のためそれ
ぞれの命令が1つのステージを占有するとしたが、以下
に示す実施例においては命令パイプラインのそれぞれの
ステージが2相クロックで駆動されており、2つのサブ
ステージを1組にして1つのパイプラインステージを構
成している。また、本実施例の説明にあたって、第1の
命令パイプライン10及び第2の命令パイプライン11
におけるそれぞれの命令の情報を保持する情報保持手段
として、情報一時保持手段であるラッチ群及び両命令パ
イプラインを各命令が進行する毎にそれぞれの命令の情
報を生成する情報フラグ生成回路を用いている。
【0041】図4は、3パイプラインステージよりなる
第1の命令パイプライン10と第2の命令パイプライン
11との2つの命令パイプラインを備えているパイプラ
イン計算機を示している。ここで第1の命令パイプライ
ン10は、A2ステージ30及びB1ステージ31の2
つのサブステージよりなる第1のステージと、B2ステ
ージ32及びC1ステージ33の2つのサブステージよ
りなる第2のステージと、C2ステージ34及びD1ス
テージ35の2つのサブステージよりなる第3のステー
ジとから構成されている。また、第2の命令パイプライ
ン11は、S2ステージ40及びT1ステージ41の2
つのサブステージよりなる第1のステージと、T2ステ
ージ42及びU1ステージ43の2つのサブステージよ
りなる第2のステージと、U2ステージ44及びV1ス
テージ45の2つのサブステージよりなる第3のステー
ジとで構成されている。それぞれのステージは2相のク
ロックph1,ph2で駆動されており、第1のパイプ
ライン10のB1ステージ31、C1ステージ33及び
D1ステージ35と、第2のパイプライン11のT1ス
テージ41、U1ステージ43及びV1ステージ45と
はクロックph1で駆動されているラッチで構成されて
おり、それ以外のステージはクロックph2で駆動され
ているラッチで構成されている。
【0042】命令供給部20から供給される命令1は命
令解読部21において解読され、その解読された命令2
がそれぞれの命令パイプライン10,11に供給されて
おり、また解読された命令の情報3が初期情報生成部2
2に入力され、その初期情報生成部22において生成さ
れた情報231〜235が命令2と同時にそれぞれの命
令パイプライン10,11に供給されている。第1の命
令パイプライン10或いは第2の命令パイプライン11
の中での命令2の進行は、それぞれ第1の命令パイプラ
イン制御部23及び第2の命令パイプライン制御部24
により制御されている。
【0043】第1の命令パイプライン10の進行は、第
1の命令パイプライン制御部23で生成される制御信号
25(A1SEL,B1SEL,C1SEL)によって
A2ステージ30、B2ステージ32及びC2ステージ
34のそれぞれに設けられた入力セレクタ60〜62を
動作させることで行っており、表1に第1の命令パイプ
ライン10に供給されている命令パイプライン制御信号
25と第1の命令パイプライン中の命令の動作との関係
を示す。
【0044】
【表1】
【0045】表1において、第1の命令パイプライン制
御信号25はA1SEL、B1SEL及びC1SELの
3種類の信号で構成されており、それぞれの信号の値に
より第1のパイプライン10の中の命令の進行が制御さ
れる。尚、以下で具体的に述べるように、A1SEL及
びB1SELはそれぞれ2本の信号線で表されていると
する。ここで原状態として、命令供給部20に命令Dが
存在し、第1のステージであるA2ステージ30及びB
1ステージ31に命令Cが存在し、第2のステージであ
るB2ステージ32及びC1ステージ33に命令Bが存
在し、第3のステージであるC2ステージ34及びD1
ステージ35に命令Aが存在するとする。第1のパイプ
ライン制御信号25を(A1SEL,B1SEL,C1
SEL)と表現した場合、 (1,1,1)の場合には、各ステージの命令が2
サブステージ分だけ進み、命令供給部20には新しい命
令Eが存在する。
【0046】 (0,1,1)の場合には、命令供給
部20の命令Dは動かず、命令CがB2ステージ32及
びC1ステージ33に、また命令BがC2ステージ34
及びD1ステージ35にそれぞれ進む。この場合、A2
ステージ30及びB1ステージ31にはNOP相当の命
令が挿入される。
【0047】 (2,0,1)の場合には、命令供給
部20の命令Dは動かず、またA2ステージ30及びB
1ステージ31の命令Cも動かず、命令BがC2ステー
ジ34及びD1ステージ35に進む。この場合、B2ス
テージ32及びC1ステージ33にはNOP相当の命令
が挿入される。
【0048】 (2,2,0)の場合には、命令D,
C,Bは動かず、命令Aが第1のパイプライン10の外
に出る。この場合、C2ステージ34及びD1ステージ
35にはNOP相当の命令が挿入される。
【0049】第2の命令パイプライン11の進行につい
ては、第2の命令パイプライン制御部24で生成される
制御信号26(S1SEL,T1SEL,U1SEL)
によってS2ステージ40、T2ステージ42及びU2
ステージ44のそれぞれに設けられた入力セレクタ63
〜65を動作させることで行っており、表1に示した第
1の命令パイプライン10の場合と同様に制御される。
【0050】図5(a)に第1のパイプライン10のA
2ステージ30の入力セレクタ60と論理回路70を、
また図5(b)にB2ステージ32の入力セレクタ61
と論理回路71を、さらに図5(c)にC2ステージ3
4の入力セレクタ62と論理回路72の回路図をそれぞ
れ示す。図5(a)において、200がA1SEL
[1]、201がA1SEL[0]であり、301〜3
03がそれぞれNOP相当の命令、命令解読部21から
の命令2及びB1ステージ31からのフィードバックに
対応する。図5(a)〜(c)では、1ビットの信号の
切換えの回路を示しているが、命令パイプラインのそれ
ぞれのステージが複数のビットで構成される場合は、ビ
ット巾に応じてこのような回路を並列にならべればよ
い。図5(b)においては、202がB1SEL
[1]、203がB1SEL[0]であり、311〜3
13のそれぞれがNOP相当の命令、B1ステージ31
からの命令及びC1ステージ33からのフィードバック
に対応する。図5(c)においては、204がC1SE
Lであり、321,322のそれぞれがNOP相当の命
令及びC1ステージ33からの命令に対応する。第2の
パイプライン11のS2ステージ40の入力セレクタ6
3と論理回路73、T2ステージ42の入力セレクタ6
4と論理回路74、及びU2ステージ44の入力セレク
タ65と論理回路75もまた、それぞれ図5に示された
第1のパイプライン1のA2ステージ30の入力セレク
タ60と論理回路70、B2ステージ32の入力セレク
タ61と論理回路71、及びC2ステージ34の入力セ
レクタ62と論理回路72と同様の構成である。
【0051】第1の命令パイプライン10及び第2の命
令パイプライン11に命令2が供給されるとき、供給さ
れる命令に情報を付加するために初期情報生成部22が
設けられ、第1の命令パイプライン10においては、情
報フラグ生成回路80,81と、さらにA2ステージ3
0からC1ステージ33までの各ステージに情報一時保
持手段としてそれぞれ5ビットの情報保持用ラッチ36
〜39とが、また第2の命令パイプライン11において
は、情報フラグ生成回路82,83と、さらにS2ステ
ージ40からU1ステージ43までの各ステージに情報
一時保持手段としてそれぞれ5ビットの情報保持用ラッ
チ46〜49とがそれぞれ設けられており、情報フラグ
生成回路及び5ビットの情報保持用ラッチについては両
命令パイプラインで同じ構成をとる。
【0052】図6は初期情報生成部22の回路図であ
る。図6において、200,201,204はそれぞれ
第1の命令パイプライン制御信号25の一部であるA1
SEL[1]、A1SEL[0]及びC1SELであ
り、206,207,210はそれぞれ第2の命令パイ
プライン制御信号26の一部であるS1SEL[1]、
S1SEL[0]及びU1SELである。221〜22
3は命令解読部21おいて解読された命令の情報DEC
ODE[2]〜DECODE[0]、342〜345は
B1ステージ31の情報保持用ラッチ37の値の一部で
あるB1SEQ[3]〜B1SEQ[0]、362〜3
65はC1ステージ33の情報保持用ラッチ39の値の
一部であるC1SEQ[3]〜C1SEQ[0]、44
2〜445はT1ステージ41の情報保持用ラッチ47
の値の一部であるT1SEQ[3]〜T1SEQ
[0]、462〜465はU1ステージ43の情報保持
用ラッチ49の値の一部であるU1SEQ[3]〜U1
SEQ[0]である。以上の信号を入力として図6に示
した初期情報生成部22の回路は、第1命令パイプライ
ン10及び第2の命令パイプライン11における命令の
動き、及び命令供給部20から供給され命令解読部21
によって解読された情報に従って、A2ステージ30の
情報保持用ラッチ36の値又はS2ステージ40の情報
保持用ラッチ46の値となるJ1SEQ[4]〜J1S
EQ[0](231〜235)を決定する。
【0053】ここで、命令解読部21によって解読され
た情報3はDECODE[2]〜DECODE[0]の
3ビットからなっており、最上位の1ビットDECOD
E[2]はその命令を処理する命令パイプラインと他方
の命令パイプラインとの同期必要の有無を表し("1" の
とき同期が必要)、下位2ビットDECODE[1]〜
DECODE[0]は、"00(0x0)" のときどちらの命令
パイプラインでも処理されないことを表し、"01(0x1)"
のとき第1の命令パイプライン10で処理される命令で
あることを表し、"10(0x2)" のとき第2の命令パイプラ
イン11で処理される命令であることを表す。
【0054】図7は情報フラグ生成回路80の回路図で
ある。図7において、200,201,204はそれぞ
れ第1の命令パイプライン制御信号25の一部であるA
1SEL[1]、A1SEL[0]及びC1SEL、2
10は第2の命令パイプライン制御信号26の一部であ
るU1SEL、231〜235は初期情報生成部22か
ら出力される各命令パイプラインに供給される命令の情
報であるJ1SEQ[4]〜J1SEQ[0]、341
〜345はB1ステージ31の情報保持用ラッチ37の
値であるB1SEQ[4]〜B1SEQ[0]、365
はC1ステージ33の情報保持用ラッチ39の値の一部
であるC1SEQ[0]、465はU1ステージ43の
情報保持用ラッチ49の値の一部であるU1SEQ
[0]である。以上の信号を入力として図7に示した情
報フラグ生成回路80は、第1命令パイプライン10及
び第2の命令パイプライン11における命令の動きに従
って、A2ステージ30の情報保持用ラッチ36の値A
2SEQ[4]〜A2SEQ[0](331〜335)
を決定する。第2の命令パイプライン11における情報
フラグ生成回路82も、この情報フラグ生成回路80と
同じ構成である。
【0055】B1ステージ31の情報保持用ラッチ37
には、A2ステージ30の情報保持用ラッチ36の値が
そのまま入力され、T1ステージ41の情報保持用ラッ
チ47には、S2ステージ40の情報保持用ラッチ46
の値がそのまま入力される。
【0056】図8は情報フラグ生成回路81の回路図で
ある。図8において、202〜204はそれぞれ第1の
命令パイプライン制御信号25の一部であるB1SEL
[1]、B1SEL[0]及びC1SEL、210は第
2の命令パイプライン制御信号26の一部であるU1S
EL、341〜345はB1ステージ31の情報保持用
ラッチ37の値であるB1SEQ[4]〜B1SEQ
[0]、361〜365はC1ステージ33の情報保持
用ラッチ39の値であるC1SEQ[4]〜C1SEQ
[0]、465はU1ステージ43の情報保持用ラッチ
49の値の一部であるU1SEQ[0]である。以上の
信号を入力として図8に示した情報フラグ生成回路81
は、第1命令パイプライン10及び第2の命令パイプラ
イン11における命令の動きに従って、B2ステージ3
2の情報保持用ラッチ38の値B2SEQ[4]〜B2
SEQ[0](351〜355)を決定する。第2の命
令パイプライン11における情報フラグ生成回路83
も、この情報フラグ生成回路81と同じ構成である。
【0057】C1ステージ33の情報保持用ラッチ39
には、B2ステージ32の情報保持用ラッチ38の値が
そのまま入力され、U1ステージ43の情報保持用ラッ
チ49には、T2ステージ42の情報保持用ラッチ48
の値がそのまま入力される。
【0058】以上のような構成のパイプライン計算機の
動作を図9及び図10に示すタイミングチャートを用い
て説明する。ここで、2つの命令パイプラインはそれぞ
れの命令パイプラインにおける命令の処理において、第
1の命令パイプライン10のC2ステージ34と第2の
命令パイプライン11のU2ステージ44で同期をとる
ものとし、また第1の命令パイプライン10及び第2の
命令パイプライン11における制御はそれぞれ独自なも
のであり、これから説明する同期機構によってのみ制御
されるものではない。
【0059】図9及び図10において、第mサイクルに
命令Aが命令供給部20に出現すると、第mサイクルの
前半では命令解読部21において命令Aが解読され、そ
の命令Aの情報3であるDECODEの値が“101(0x
5)”となるとともに、初期情報生成部22においてその
DECODEの値及び両命令パイプラインの状況から、
解読した命令Aを第1の命令パイプライン10に供給す
るときに付加する情報J1SEQの値を生成する。この
場合、J1SEQの値は“10001(0x11) ”となる。
【0060】ここで、命令に付加する5ビット情報の値
について説明すると、最上位の右から5ビット目(16
進数で右から二桁目)は、その命令の実行にあたって命
令が処理される命令パイプラインと他方の命令パイプラ
インとの同期必要の有無を表しており、そのビットが
“1 ”ならば同期が必要であり、そのビットが“0 ”な
らば同期が必要でない。また下位4ビットは、両命令パ
イプライン10,11で処理されている命令において命
令供給部21から供給された順序を表しており、その値
は供給された順に“0001(0x1) ”,“0010(0x2) ”,
“0100(0x4) ”,“1000(0x8) ”となる。このことか
ら、命令Aは両命令パイプライン10,11の同期が必
要な命令であり、両命令パイプライン10,11で実行
される命令の(又は実行されている命令中の)最初の命
令であることが判る。また先にも述べたが、DECOD
Eの値が“101(0x5)”ということは、この命令Aが両命
令パイプライン10,11の同期を必要とする命令であ
り、第1の命令パイプライン10で処理される命令であ
ることを示している。
【0061】第mサイクルの後半において、第1の命令
パイプライン制御信号25の一部であるA1SELが1
であるので、解読した情報により命令Aが第1の命令パ
イプライン10のA2ステージ30へ進み、初期情報生
成部22において生成されたJ1SEQの値“10001(0x
11) ”がA2ステージ30の情報保持用ラッチ36へ進
む。同時に第2の命令パイプライン制御信号26の一部
であるS1SELが0であるので、NOP相当の命令が
第2の命令パイプライン11のS2ステージ40へ進
み、“0 ”がS2ステージ40の情報保持用ラッチ46
へ進む。第1及び第2の命令パイプラインの制御は、本
発明の同期機構とは別にそれぞれ独自に制御されるので
あるが、このときの第1の命令パイプライン制御信号2
5の一部であるA1SEL及び第2の命令パイプライン
制御信号26の一部であるS1SELは、命令解読部2
1において解読された情報3(DECODE)によって
制御されている。
【0062】第(m+1)サイクルの前半では、命令A
が第1の命令パイプライン10のA2ステージ30から
B1ステージ31に、A2ステージ30の情報保持用ラ
ッチ36の値がそのままB1ステージ31の情報保持用
ラッチ37に進む。また、命令Bが命令供給部20に出
現して命令解読部21において解読され、その命令Bの
情報3であるDECODEの値が“110(0x6)”となると
ともに、初期情報生成部22においてそのDECODE
の値及び両命令パイプラインの状況からJ1SEQの値
“10010(0x12) ”を生成する。
【0063】第(m+1)サイクルの後半では、第1の
命令パイプライン制御信号25の一部であるA1SEL
が0、B1SELが1であるので、命令Aが第1の命令
パイプライン10のB2ステージ32へ進み、B1ステ
ージ31の情報保持用ラッチ37の値“10001(0x11) ”
がそのままB2ステージ32の情報保持用ラッチ38へ
進むとともに、NOP相当の命令が第1の命令パイプラ
イン10のA2ステージ30へ進み、“0 ”がA2ステ
ージ30の情報保持用ラッチ36へ進む。それと同時
に、第2の命令パイプライン制御信号26の一部である
S1SELが1であるので、解読した情報により命令B
が第2の命令パイプライン11のS2ステージ40へ進
み、初期情報生成部22において生成されたJ1SEQ
の値“10010(0x12) ”がS2ステージ40の情報保持用
ラッチ46へ進む。
【0064】第(m+2)サイクルの前半では、命令A
が第1の命令パイプライン10のB2ステージ32から
C1ステージ33に、B2ステージ32の情報保持用ラ
ッチ38の値“10001(0x11) ”がそのままC1ステージ
33の情報保持用ラッチ39に進み、命令Bが第2の命
令パイプライン11のS2ステージ40からT1ステー
ジ41に、S2ステージ40の情報保持用ラッチ46の
値“10010(0x12) ”がそのままT1ステージ41の情報
保持用ラッチ47に進む。また、命令Cが命令供給部2
0に出現して命令解読部21において解読され、その命
令Cの情報3であるDECODEの値が“101(0x5)”と
なるとともに、初期情報生成部22においてそのDEC
ODEの値及び両命令パイプラインの状況からJ1SE
Qの値“10100(0x14) ”を生成する。
【0065】第(m+2)サイクルの後半では、第1の
命令パイプライン制御信号25の一部であるA1SEL
が1、B1SELが2であるので、命令Aは第1の命令
パイプライン10のB2ステージ32及びC1ステージ
33に留まるとともに、解読した情報により命令Cが第
1の命令パイプライン10のA2ステージ30へ進み、
初期情報生成部22において生成されたJ1SEQの値
“10100(0x14) ”がA2ステージ30の情報保持用ラッ
チ36へ進む。このように第1の命令パイプライン10
の動作の独自性は同期が必要な場合以外には保たれてい
る。このとき同時に、第2の命令パイプライン制御信号
26の一部であるS1SELが0、T1SELが1であ
るので、命令Bが第2の命令パイプライン11のT2ス
テージ42へ進み、T1ステージ41の情報保持用ラッ
チ47の値“10010(0x12) ”がそのままT2ステージ4
2の情報保持用ラッチ48へ進むとともに、NOP相当
の命令が第2の命令パイプライン11のS2ステージ4
0へ進み、“0 ”がS2ステージ40の情報保持用ラッ
チ46へ進む。
【0066】第(m+3)サイクルの前半では、命令A
が第1の命令パイプライン10のB2ステージ32及び
C1ステージ33に留まっており、命令Bが第2の命令
パイプライン11のT2ステージ42からU1ステージ
43に、T2ステージ42の情報保持用ラッチ48の値
“10010(0x12) ”がそのままU1ステージ43の情報保
持用ラッチ49に進むとともに、命令Cが第1の命令パ
イプライン10のA2ステージ30からB1ステージ3
1に、A2ステージ30の情報保持用ラッチ36の値
“10100(0x14) ”がそのままB1ステージ31の情報保
持用ラッチ37に進む。また、命令Dが命令供給部20
に出現して命令解読部21において解読され、その命令
Dの情報3であるDECODEの値が“010(0x2)”とな
るとともに、初期情報生成部22においてそのDECO
DEの値及び両命令パイプラインの状況からJ1SEQ
の値“01000(0x08) ”を生成する。
【0067】第(m+3)サイクルの後半では、第1の
命令パイプライン制御信号25の一部であるA1SEL
が2、B1SELが2であるので、命令Aは第1の命令
パイプライン10のB2ステージ32及びC1ステージ
33に、命令Cは第1の命令パイプライン10のA2ス
テージ30及びB1ステージ31に留まる。ここでも第
1の命令パイプライン10の動作の独自性は保たれてい
る。このとき同時に、第2の命令パイプライン制御信号
26の一部であるS1SELが1、T1SELが2であ
るので、命令Bは第2の命令パイプライン11のT2ス
テージ42及びU1ステージ43に留まるとともに、解
読した情報により命令Dが第2の命令パイプライン11
のS2ステージ40へ進み、初期情報生成部22におい
て生成されたJ1SEQの値“01000(0x08) ”がS2ス
テージ40の情報保持用ラッチ46へ進む。このように
第2の命令パイプライン11の動作の独自性もまた、同
期が必要な場合以外には保たれている。
【0068】第(m+4)サイクルの前半では、命令A
が第1の命令パイプライン10のB2ステージ32及び
C1ステージ33に、命令Bが第2の命令パイプライン
11のT2ステージ42からU1ステージ43に、命令
Cが第1の命令パイプライン10のA2ステージ30及
びB1ステージ31に留まっており、命令Dが第2の命
令パイプライン11のS2ステージ40からT1ステー
ジ41に、またS2ステージ40の情報保持用ラッチ4
6の値“01000(0x08)”がそのままT1ステージ41の
情報保持用ラッチ47にそれぞれ進む。また、命令Eが
命令供給部20に出現して命令解読部21において解読
され、その命令Eの情報3であるDECODEの値が
“110(0x6)”となるとともに、初期情報生成部22にお
いてそのDECODEの値及び両命令パイプラインの状
況からJ1SEQの値“11000(0x18) ”を生成する。こ
のサイクルでは第2の命令パイプライン制御信号26の
一部であるS1SELが2であり、命令Eをすぐに第2
の命令パイプライン11に進めることができないので、
初期情報生成部22は命令供給部20に対して命令供給
の一時停止を要求する(SINSTが“1 ”)。
【0069】第(m+4)サイクルの後半では、第1の
命令パイプライン制御信号25であるA1SELが0、
B1SELが1、C1SELが1であるので、C1ステ
ージ33の情報保持用ラッチ39の値“10001(0x11) ”
により、両命令パイプライン10,11で処理されてお
り、かつまだ同期をとるステージまで進んでいない命令
の中で、命令供給部20から一番先に供給された命令で
あることから、命令AがC2ステージ34へ進むととも
に、命令Cが第1の命令パイプライン10のB2ステー
ジ32へ進み、B1ステージ31の情報保持用ラッチ3
7の値“10100(0x14) ”が情報フラグ生成回路81によ
って“10010(0x12) ”となってB2ステージ32の情報
保持用ラッチ38へ進む。これは両命令パイプライン1
0,11で処理されており、かつまだ同期をとるステー
ジまで進んでいない命令の中で、命令Cが命令供給部2
0から2番目に供給された命令であることを表してい
る。また、NOP相当の命令が第1の命令パイプライン
10のA2ステージ30へ進み、“0”がA2ステージ
30の情報保持用ラッチ36へ進む。C2ステージ34
へ進んだ命令Aは、今後独自に第1の命令パイプライン
10を進行し、その処理を終える。これと同時に第2の
命令パイプライン制御信号26の一部であるS1SEL
が2、T1SELが2であるので、命令Bが第2の命令
パイプライン11のT2ステージ42及びU1ステージ
43に、また命令Dが第2の命令パイプライン11のS
2ステージ40及びT1ステージ41にそれぞれ留まる
が、命令Aが第1の命令パイプライン10のC2ステー
ジ34へ進んだことから、T2ステージ42の情報保持
用ラッチ48の値は情報フラグ生成回路83によって
“10001(0x11) ”となり、S2ステージ40の情報保持
用ラッチ46の値は情報フラグ生成回路82によって
“00100(0x04) ”となる。これは両命令パイプライン1
0,11で処理されており、かつまだ同期をとるステー
ジまで進んでいない命令の中で、命令Bが命令供給部2
0から一番先に供給された命令であることを表し、命令
Dが命令供給部20から3番目に供給された命令である
ことを表している。ここで命令Dは、このサイクルにお
いて既にT1ステージ41での処理を終わっており、T
1ステージ41の情報保持用ラッチ47の値“01000(0x
08) ”を見ても判るように前後の命令との同期をとる必
要はないが、命令BがT2ステージ42及びU1ステー
ジ43に留まっているために、S2ステージ40及びT
1ステージ41に留まっている。ここでも第2の命令パ
イプライン11の動作の独自性は保たれている。
【0070】第(m+5)サイクルの前半では、命令A
が第1の命令パイプライン10のD1ステージ35に進
み、それと同時に命令Cが第1の命令パイプライン10
のC1ステージ33に、B2ステージ32の情報保持用
ラッチ38の値“10010(0x12) ”がそのままC1ステー
ジ33の情報保持用ラッチ39に進む。第2の命令パイ
プライン11においては、命令BがT2ステージ42か
らU1ステージ43に、また命令DがS2ステージ40
からT1ステージ41にそれぞれ留まっており、T2ス
テージ42の情報保持用ラッチ48の値“10001(0x11)
”がそのままU1ステージ43の情報保持用ラッチ4
9に、またS2ステージ40の情報保持用ラッチ46の
値“00100(0x04) ”がそのままT1ステージ41の情報
保持用ラッチ47にそれぞれ進む。またこのサイクルに
おいても、第2の命令パイプライン制御信号26の一部
であるS1SELが2であり、命令Eをすぐに第2の命
令パイプライン11に進めることができないので、命令
供給部20に出現していた命令Eがそのままの状態で命
令供給部20に留まっている。
【0071】第(m+5)サイクルの後半では、第1の
命令パイプライン制御信号25であるA1SELが0、
B1SELが2、C1SELが0であるので、命令Aが
このサイクルで処理を終えて第1の命令パイプライン1
0の外へ進み、NOP相当の命令が第1の命令パイプラ
イン10のC2ステージ34へ進むとともに、命令Cが
第1の命令パイプライン10のB2ステージ32からC
1ステージ33に留まっている。これと同時に、第2の
命令パイプライン制御信号26の一部であるS1SEL
が2、T1SELが2であるので、命令Bが第2の命令
パイプライン11のT2ステージ42及びU1ステージ
43に、また命令Dが第2の命令パイプライン11のS
2ステージ40及びT1ステージ41にそれぞれ留まっ
ている。このサイクルにおいては、命令Cが第1の命令
パイプライン10のC1ステージ33での処理を終えて
C2ステージ34へ進もうとするのであるが、C1ステ
ージ33の情報保持用ラッチ39の値“10010(0x12) ”
と第1の命令パイプライン制御信号25の一部であるC
1SELが0であることにより、命令Cがそれより先に
命令供給部20から供給された命令、つまりこの場合は
命令Bとの同期をとる必要があることが判り、同期が確
保できるまで第1の命令パイプライン10のB2ステー
ジ32及びC1ステージ33に留まる。ここでも第2の
命令パイプライン11の動作の独自性は保たれている。
【0072】第(m+6)サイクルの前半では、命令B
が第2の命令パイプライン11のT2ステージ42から
U1ステージ43に、命令Cが第1の命令パイプライン
10のB2ステージ32及びC1ステージ33に、また
命令Dが第2の命令パイプライン11のS2ステージ4
0からT1ステージ41にそれぞれ留まっている。この
とき、後にも述べるが、第1の命令パイプライン制御信
号25の一部であるC1SELが1であり、第2の命令
パイプライン制御信号26の一部であるU1SELが1
であるため、命令供給部20に留まっている命令Eにお
けるJ1SEQの値は初期情報生成部22において "10
010(0x12) ”となり、また第2の命令パイプライン制御
信号26の一部であるS1SELが1であるので、初期
情報生成部22から命令供給部20に対する供給停止要
求SINSTは“0 ”となる。
【0073】第(m+6)サイクルの後半では、第1の
命令パイプライン制御信号25であるA1SELが0、
B1SELが0、C1SELが1、また第2の命令パイ
プライン制御信号26であるS1SELが1、T1SE
Lが1、U1SELが1であるので、U1ステージ43
の情報保持用ラッチ49の値“10001(0x11) ”により、
両命令パイプライン10,11で処理されており、かつ
まだ同期をとるステージまで進んでいない命令の中で、
命令供給部20から一番先に供給された命令であること
から、命令Bが第2の命令パイプライン11のU2ステ
ージ44へ進むとともに、前サイクルから第1の命令パ
イプライン10のB2ステージ32及びC1ステージ3
3に留まっている命令Cも命令Bとの同期がとれる(命
令Cは命令Bの次に命令供給部20から供給された命令
である)ため、第1の命令パイプライン10のC2ステ
ージ34へ進む。それと同時に、命令Bと命令Cの進行
に伴い、命令Dが第2の命令パイプライン11のT2ス
テージ42に、T1ステージ41の情報保持用ラッチ4
7の値“00100(0x04) ”が情報フラグ生成回路83によ
って“00001(0x01) ”となってT2ステージ42の情報
保持用ラッチ48に進むとともに、解読した情報により
命令Eが第2の命令パイプライン11のS2ステージ4
0へ進み、初期情報生成部22において生成されたJ1
SEQの値“10010(0x12) ”がS2ステージ40の情報
保持用ラッチ46へ進む。これは両命令パイプライン1
0,11で処理されており、かつまだ同期をとるステー
ジまで進んでいない命令の中で、命令Dが命令供給部2
0から一番先に供給された命令であることを表し、命令
Eが命令供給部20から2番目に供給された命令である
ことを表している。また、NOP相当の命令が第1の命
令パイプライン10のB2ステージ32へ進み、“0 ”
がB2ステージ32の情報保持用ラッチ38へ進む。U
2ステージ44へ進んだ命令B及びC2ステージ34へ
進んだ命令Cは、今後独自にそれぞれ第2の命令パイプ
ライン11及び第1の命令パイプライン10を進行し、
その処理を終える。
【0074】第(m+7)サイクルの前半では、命令B
が第2の命令パイプライン11のV1ステージ45に、
また命令Cが第1の命令パイプライン10のD1ステー
ジ35に進み、また、命令Dが第2の命令パイプライン
11のT2ステージ42からU1ステージ43に、T2
ステージ42の情報保持用ラッチ48の値“00001(0x0
1) ”がそのままU1ステージ43の情報保持用ラッチ
49にそれぞれ進むと同時に、命令Eが第2の命令パイ
プライン11のS2ステージ40からT1ステージ41
に、またS2ステージ40の情報保持用ラッチ46の値
“10010(0x12) ”がそのままT1ステージ41の情報保
持用ラッチ47にそれぞれ進む。
【0075】第(m+7)サイクルの後半では、第1の
命令パイプライン制御信号25であるA1SELが0、
B1SELが0、C1SELが0、また第2の命令パイ
プライン制御信号26であるS1SELが0、T1SE
Lが1、U1SELが1であるので、命令Bがこのサイ
クルで処理を終えて第2の命令パイプライン11の外へ
進むとともに、命令Cがこのサイクルで処理を終えて第
1の命令パイプライン10の外へ進み、それに伴ってN
OP相当の命令が第1の命令パイプライン10のC2ス
テージ34へ進む。このとき、U1ステージ43の情報
保持用ラッチ49の値“00001(0x01) ”により、命令D
が第2の命令パイプライン11のU1ステージ43にお
ける処理を終えて、U2ステージ44に進むとともに、
命令Eが第2の命令パイプライン11のT2ステージ4
2に、T1ステージ41の情報保持用ラッチ47の値
“10010(0x12) ”が情報フラグ生成回路83によって
“10001(0x11) ”となってT2ステージ42の情報保持
用ラッチ48にそれぞれ進む。また、NOP相当の命令
が第2の命令パイプライン11のS2ステージ40へ進
み、“0”がS2ステージ40の情報保持用ラッチ46
へ進む。命令Cがこのサイクルで処理を終えて第1の命
令パイプライン10の外へ進んだため、以降のサイクル
において第1の命令パイプライン10で実行されている
有効な命令はない。
【0076】第(m+8)サイクルの前半では、命令D
が第2の命令パイプライン11のV1ステージ45に進
み、命令Eが第2の命令パイプライン11のT2ステー
ジ42からU1ステージ43に、またT2ステージ42
の情報保持用ラッチ48の値“10001(0x11) ”がそのま
まU1ステージ43の情報保持用ラッチ49に進む。
【0077】第(m+8)サイクルの後半では、第2の
命令パイプライン制御信号26であるS1SELが0、
T1SELが0、U1SELが1であるので、命令Dが
このサイクルで処理を終えて第2の命令パイプライン1
1の外へ進むとともに、U1ステージ43の情報保持用
ラッチ49の値“10001(0x11) ”により、命令Eが第2
の命令パイプライン11のU1ステージ43における処
理を終えて、U2ステージ44に進む。また、NOP相
当の命令が第2の命令パイプライン11のT2ステージ
42へ進み、“0 ”がT2ステージ42の情報保持用ラ
ッチ48へ進む。
【0078】第(m+9)サイクルの前半では、命令E
が第2の命令パイプライン11のV1ステージ45に進
み、第(m+9)サイクルの後半になると、命令Eがこ
のサイクルで処理を終えて第2の命令パイプライン11
の外へ進み、第1の命令パイプライン10及び第2の命
令パイプライン11において実行されている有効な命令
は全て終了する。
【0079】このように命令供給部20より供給される
命令1を解読し、その解読された命令2が第1の命令パ
イプライン10或いは第2の命令パイプライン11に進
行する際に、解読された命令の情報3及び各命令パイプ
ラインで処理されている命令の状況から、その命令が実
行される命令パイプラインと他方命令パイプラインとの
同期が必要か、その命令は両命令パイプラインで処理さ
れており、かつ両命令パイプラインの同期をとるステー
ジ(本実施例の場合、第1の命令パイプライン10のC
2ステージ34及び第2の命令パイプライン11のU2
ステージ44)に達していない命令中の何番目に供給さ
れた命令であるかという初期情報生成部22からの情報
をその命令自体に付加するとともに、その命令より先に
各命令パイプライン10,11に供給された命令におけ
る各命令パイプライン中での進行に従って、第1の命令
パイプライン10に備えられた情報保持用ラッチ36〜
39或いは第2の命令パイプライン11に備えられた情
報保持用ラッチ46〜49の値を決定し、その情報保持
用ラッチの値に基づいてその命令が実行される命令パイ
プラインの進行を制御することにより、第1の命令パイ
プライン10と第2の命令パイプライン11の間の同期
を確保することができる。
【0080】尚、前記実施例では、第1の命令パイプラ
イン10及び第2の命令パイプライン11を3パイプラ
インステージとし、命令の進行を第1の命令パイプライ
ン10の第3ステージ(C2ステージ34)と第2の命
令パイプライン11の第3ステージ(U2ステージ4
4)での同期を確保するものとしたが、それ以外のステ
ージの組合せ、例えば第1の命令パイプライン10の第
2ステージ(B2ステージ32)と第2の命令パイプラ
イン11の第3ステージ(U2ステージ44)や、第1
の命令パイプライン10の第2ステージ(B2ステージ
32)と第2の命令パイプライン11の第2ステージ
(T2ステージ42)においても同様の方法により同期
を確保することができる。一般に、第1の命令パイプラ
インをnパイプラインステージで、第2の命令パイプラ
インをmパイプラインステージで構成した場合、第1の
命令パイプラインのi(≦n)番目ステージと第2の命
令パイプラインのj(≦m)番目ステージにおいても同
様の方法で同期を確保することができ、それぞれの命令
を識別することで命令の種類毎に同期を行うステージの
組合せを変更することも可能である。また、前記実施例
では、それぞれのサブステージが2相クロックで駆動さ
れており、2つのサブステージで1つのパイプラインス
テージを構成するとしたが、サブステージを持たない単
相クロックで駆動されるパイプライン計算機、或いは2
相に限らず多相クロックで駆動され、1つのパイプライ
ンステージがいくつかのサブステージで構成される計算
機についても同様の同期が実現できる。さらに、前記実
施例では、第1の命令パイプライン及び第2の命令パイ
プラインに設けた情報保持手段を情報フラグ生成回路と
情報保持用ラッチとにより構成しているが、情報保持手
段として供給される命令に対応した順序を計数する計数
回路と計数一時保持回路で構成することも可能であり、
各命令パイプラインに供給される命令の順序、及び同期
の有無を保持する手段は前記実施例に限ったものではな
い。
【0081】一般に、マイクロプロセッサ(以下、MP
Uという)はIU(Integer Unit)を中心に構成されるこ
とが多いが、最近ではLSI集積度の向上に伴い、FP
U(Floating-point Processing Unit)、キャッシュメモ
リ、MMU(Memory Management Unit)、BCU(Bus Con
trol Unit)等を集積するものも見られるようになり、前
記に説明したパイプライン計算機の具体的な例として
は、FPUオンチップのMPUが挙げられる。この場合
は前記の第1の命令パイプラインがIUに、第2の命令
パイプラインがFPUにそれぞれ相当する。MPU自体
に供給される命令に特別な処置を施さない場合は、その
命令がMPUの中のどのパイプラインで処理されるもの
か区別がつかないので、各時刻におけるMPU内のレジ
スタの内容はそれぞれの命令が順番に実行されたのと同
じ順序で結果を書き換えなければならないために、各パ
イプラインの同期を取ることが必要となる。このような
集積度の高い大規模なLSIにおいて、本発明のような
少ないハードウェアで高速の同期を実現する方法は極め
て有効なものである。
【0082】(実施例4)図4に示した実施例3におい
ては、命令パイプラインが2つであったが、さらに多数
の命令パイプラインを持つような計算機においても、同
様な同期方法を実現できるのはいうまでもない。図11
〜図14を利用して本発明の実施例4である複数の命令
パイプラインを有するパイプライン計算機を説明する。
【0083】図11に示した複数の命令パイプラインを
有するパイプライン計算機は、図4に示した本発明の実
施例3である複数の命令パイプラインを有するパイプラ
イン計算機に加えて、第3の命令パイプライン12及び
第3の命令パイプライン制御部27を持つ。第3の命令
パイプライン12は、3パイプラインステージよりなる
第1命令パイプライン10及び第2の命令パイプライン
11と同様な構成であり、W2ステージ50及びX1ス
テージ51の2つのサブステージよりなる第1のステー
ジと、X2ステージ52及びY1ステージ53の2つの
サブステージよりなる第2のステージと、Y2ステージ
54及びZ1ステージ55の2つのサブステージよりな
る第3のステージとから構成されている。また第3の命
令パイプライン12には、情報フラグ生成回路84,8
5が設けられ、さらに、第1命令パイプライン10及び
第2の命令パイプライン11と同様に第3ステージ(Y
2ステージ54)において命令実行の同期を確保するも
のとして、W2ステージ50からY1ステージ53まで
の各ステージにそれぞれ情報保持用ラッチ56〜59が
設けられているほか、入力セレクタ66〜68が論理回
路76〜78で生成された信号により制御されている。
入力セレクタ66〜68及び論理回路76〜78は、第
1の命令パイプラインにおける入力セレクタ60〜62
及び論理回路70〜72(又は第2の命令パイプライン
における入力セレクタ63〜65及び論理回路73〜7
5)とそれぞれ同じ構成で、かつ本発明の実施例3にお
けるそれらの回路と同じ構成である。しかし、情報フラ
グ生成回路84,85は、第1の命令パイプラインにお
ける情報フラグ生成回路80,81(又は第2の命令パ
イプラインにおける情報フラグ生成回路82,83)と
それぞれ同じ構成であるが、実施例3におけるそれらの
回路とは違った構成となり、それと同時に初期情報生成
部22も実施例3における回路とは違った構成となる。
図12に本実施例における初期情報生成部22の回路図
を、図13に本実施例における情報フラグ生成回路80
の回路図(82,84も同様の構成)を、図14に情報
フラグ生成回路81の回路図(83,85も同様の構
成)をそれぞれ示す。
【0084】本発明の実施例3においては、第1の命令
パイプライン10のA2ステージ30からC1ステージ
33及び第2の命令パイプライン11のS2ステージ4
0からU1ステージ43の各ステージに設けられた情報
一時保持手段が、それぞれ5ビットの情報保持用ラッチ
で構成されていたが、図12〜図14に示すように、本
実施例においては3つの命令パイプラインを持つため、
第1の命令パイプライン10のA2ステージ30からC
1ステージ33、第2の命令パイプライン11のS2ス
テージ40からU1ステージ43及び第3の命令パイプ
ライン12のW2ステージ50からY1ステージ53の
各ステージに設けられた情報一時保持手段が、それぞれ
7ビットの情報保持用ラッチで構成されている。
【0085】また命令解読部21によって解読された情
報3は、実施例3と同じく3ビット(DECODE
[2]〜DECODE[0])からなっており、その値
の持つ意味も同じであるが、解読された命令が第3の命
令パイプライン12で処理するものである場合、情報3
の下位2ビットDECODE[1]〜DECODE
[0]の値は“11(0x3) ”となる。
【0086】さらに、初期情報生成部22によって生成
される命令の情報J1SEQの値については、最上位の
右から7ビット目は、その命令の実行にあたって命令が
処理される命令パイプラインと他方の命令パイプライン
との同期必要の有無を表しており、そのビットが“1 ”
ならば同期が必要であり、そのビットが“0 ”ならば同
期が必要でない。下位6ビットは、3つの命令パイプラ
イン10〜12で処理されている命令において命令供給
部21から供給された順序を表しており、その値は供給
された順に“000001(0x01)”,“000010(0x02)”,“00
0100(0x04)”,“001000(0x08)”,“010000(0x10)”,
“100000(0x20)”となる。
【0087】第3の命令パイプライン12の制御は、第
1の命令パイプライン10及び第2の命令パイプライン
11の制御と同様にそのパイプライン独自のものであ
り、本発明の同期機構によってのみ制御されるものでは
ない。
【0088】このようにして、実施例3と同様に命令供
給部20より供給される命令1を解読し、その解読され
た命令2が第1の命令パイプライン10、第2の命令パ
イプライン11或いは第3の命令パイプライン12に進
行する際に、解読された命令の情報3及び各命令パイプ
ラインで処理されている命令の状況から、その命令が実
行される命令パイプラインと他の命令パイプラインとの
同期が必要か、その命令は3つの命令パイプラインで処
理されており、かつ3つの命令パイプラインの同期をと
るステージ(本実施例の場合、第1の命令パイプライン
10のC2ステージ34、第2の命令パイプライン11
のU2ステージ44及び第3の命令パイプライン12の
Y2ステージ54)に達していない命令中の何番目に供
給された命令であるかという初期情報生成部22からの
情報をその命令自体に付加するとともに、その命令より
先に各命令パイプライン10〜12に供給された命令に
おける各命令パイプライン中での進行に従って、第1の
命令パイプライン10に備えられた情報保持用ラッチ3
6〜39、第2の命令パイプライン11に備えられた情
報保持用ラッチ46〜49或いは第3の命令パイプライ
ン12に備えられた情報保持用ラッチ56〜59の値を
決定し、その情報保持用ラッチの値に基づいてその命令
が実行される命令パイプラインの進行を制御することに
より、第1の命令パイプライン10と第2の命令パイプ
ライン11と第3の命令パイプライン12の間の同期を
確保することができる。
【0089】一般に、第1の命令パイプラインをnパイ
プラインステージで、第2の命令パイプラインをmパイ
プラインステージで、第3の命令パイプラインをkパイ
プラインステージで構成した場合、第1の命令パイプラ
インのi(≦n)番目ステージと第2の命令パイプライ
ンのj(≦m)番目ステージと第3の命令パイプライン
のx(≦k)番目ステージにおいても同様の方法で同期
を確保することができ、それぞれの命令を識別すること
で命令の種類毎に同期を行うステージの組合せを変更す
ることも可能である。
【0090】
【発明の効果】以上に述べたように本発明によれば、複
数の命令パイプラインを持つ計算機のそれぞれの命令パ
イプラインの間の同期を、命令パイプラインの各ステー
ジに設けた情報保持手段と、供給される命令がいずれか
の命令パイプラインへ進行する際に、解読された命令の
情報及び各命令パイプラインで処理されている命令の状
況から、その命令が実行される命令パイプラインとその
他の命令パイプラインとの同期が必要か、またその命令
は全ての命令パイプラインで処理されており、かつ全て
の命令パイプラインの同期をとるステージに達していな
い命令中の何番目に供給された命令であるかという情報
を生成する初期情報生成部いう簡単なハードウェアを設
けることにより実現することができ、さらに同期のため
の余分な時間を必要としないため、高速な同期方法が実
現できる。また、処理時間の違う命令の実行において、
パイプラインの進行を停止させることなく同時に終了す
ることができるという点で、各命令パイプラインで処理
される命令の実行が同時に終了するような場合には効率
化が図れる。この高速性は密に結合された計算機同士の
命令パイプラインの同期方法としても利用可能であり、
複数の命令パイプラインを備えた高速な演算器或いは計
算機を実現する上での大きな産業上の効果が得られる。
【図面の簡単な説明】
【図1】本発明の実施例1及び2におけるパイプライン
計算機の同期方法を説明するためのフローチャート図で
ある。
【図2】本発明の実施例1におけるパイプライン計算機
の同期方法を説明するための概略構成を示すブロック図
である。
【図3】本発明の実施例2におけるパイプライン計算機
の同期方法を説明するための概略構成を示すブロック図
である。
【図4】本発明の実施例3におけるパイプライン計算機
を説明するための具体例を示すブロック図である。
【図5】本発明の実施例3における第1の命令パイプラ
インの各ステージにあるセレクタ及びその制御回路の図
である。
【図6】本発明の実施例3における初期情報生成部の回
路図である。
【図7】本発明の実施例3におけるA2ステージにおけ
る情報フラグ生成回路の図である。
【図8】本発明の実施例3におけるB2ステージにおけ
る情報フラグ生成回路の図である。
【図9】本発明の実施例3における動作タイミングの一
半部を示す図である。
【図10】同動作タイミングの他半部を示す図である。
【図11】本発明の実施例4におけるパイプライン計算
機を説明するための具体例を示すブロック図である。
【図12】本発明の実施例4における初期情報生成部の
回路図である。
【図13】本発明の実施例4におけるA2ステージにお
ける情報フラグ生成回路の図である。
【図14】本発明の実施例4におけるB2ステージにお
ける情報フラグ生成回路の図である。
【図15】従来の技術による同期方法の例を示すブロッ
ク図である。
【符号の説明】
1,2,100…命令 3,221〜223…解読された命令の情報 10〜12…命令パイプライン 20…命令供給部 21…命令解読部 22…初期情報生成部 23,24,27…命令パイプライン制御部 25,26,28,200〜204,206〜215…
パイプライン制御信号 30〜35,111〜113…第1の命令パイプライン
の各ステージ 36〜39…第1の命令パイプラインの各ステージの情
報保持用ラッチ 40〜45,121〜124…第2の命令パイプライン
の各ステージ 46〜49…第2の命令パイプラインの各ステージの情
報保持用ラッチ 50〜55,131〜134…第3の命令パイプライン
の各ステージ 56〜59…第3の命令パイプラインの各ステージの情
報保持用ラッチ 60〜68…命令パイプラインの各ステージの入力のセ
レクタ 70〜78…各ステージの入力のセレクタ制御回路 80〜85…情報フラグ生成回路 101…演算器制御フィールド 102…その他のフィールド 103…演算器 104…レジスタファイル 231〜237…命令パイプラインへ入力する命令の初
期情報 238…命令供給部への供給停止信号 301〜304,311〜314,321〜323…セ
レクタ入出力信号 331〜337,341〜347,351〜357,3
61〜367,431〜437,441〜447,45
1〜457,461〜467,531〜537,541
〜547,551〜557,561〜567…情報保持
用ラッチの入出力値 1001〜1007…第1及び第2の命令パイプライン
がと同期をとりながら進行する各ステップ

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 n段のステージからなる第1の命令パイ
    プラインと、m段のステージからなる第2の命令パイプ
    ラインとを備えたパイプライン計算機の同期方法であっ
    て、 第1の命令が前記第1又は第2のどちらの命令パイプラ
    インで処理するものであるか、及び前記第1の命令の進
    行が前記第1の命令より先に前記第1又は第2の命令パ
    イプラインに供給された第2の命令の進行との同期を必
    要とするかを解読する第1のステップと、 前記第1のステップの結果によって前記第1又は第2の
    命令パイプラインに前記第1の命令を供給する第2のス
    テップと、 前記第1の命令の進行が前記第2の命令の進行との同期
    を必要としないときに、前記第1の命令が前記第1又は
    第2の命令パイプラインを独自に進行する第3のステッ
    プとを有するとともに、 前記第1の命令の進行が前記第2の命令の進行との同期
    を必要とするときに、前記第1の命令パイプラインの第
    i番目(i≦n)のステージと前記第2の命令パイプラ
    インの第j番目(j≦m)のステージとにおいて、前記
    第1の命令の進行が前記第2の命令の進行との同期を確
    保するために、 前記第1の命令が前記第1の命令パイプラインを進行す
    る場合は、前記第2の命令が、前記第1の命令パイプラ
    インを進行するとき第i番目のステージを通過するこ
    と、並びに前記第2の命令パイプラインを進行するとき
    第j番目のステージを通過するか又は第j番目のステー
    ジに達することを監視する第4のステップと、前記第4
    のステップの条件が満たされるまで前記第1の命令にお
    ける前記第1の命令パイプラインの第i番目のステージ
    の進みを止める第5のステップとを有する一方、 前記第1の命令が前記第2の命令パイプラインを進行す
    る場合は、前記第2の命令が、前記第1の命令パイプラ
    インを進行するとき第i番目のステージを通過するか又
    は第i番目のステージに達すること、並びに前記第2の
    命令パイプラインを進行するとき第j番目のステージを
    通過することを監視する第6のステップと、前記第6の
    ステップの条件が満たされるまで前記第1の命令におけ
    る前記第2の命令パイプラインの第j番目のステージの
    進みを止める第7のステップとを有し、 さらに、前記第2の命令との同期が確保できたために、
    前記第1の命令が前記第1又は第2の命令パイプライン
    を独自に進行する第8のステップとを有することを特徴
    とするパイプライン計算機の同期方法。
  2. 【請求項2】 n段のステージからなる第1の命令パイ
    プラインと、m段のステージからなる第2の命令パイプ
    ラインと、k段のステージからなる第3の命令パイプラ
    インとを備えたパイプライン計算機の同期方法であっ
    て、 第1の命令が前記第1、第2又は第3のどの命令パイプ
    ラインで処理するものであるか、及び前記第1の命令の
    進行が前記第1の命令より先に前記第1、第2又は第3
    の命令パイプラインに供給された第2の命令の進行との
    同期を必要とするかを解読する第1のステップと、 前記第1のステップの結果によって前記第1、第2又は
    第3の命令パイプラインに前記第1の命令を供給する第
    2のステップと、 前記第1の命令の進行が前記第2の命令の進行との同期
    を必要としないときに、前記第1の命令が前記第1、第
    2又は第3の命令パイプラインを独自に進行する第3の
    ステップとを有するとともに、 前記第1の命令の進行が前記第2の命令の進行との同期
    を必要とするときに、前記第1の命令パイプラインの第
    i番目(i≦n)のステージと前記第2の命令パイプラ
    インの第j番目(j≦m)のステージと前記第3の命令
    パイプラインの第x番目(x≦k)のステージとにおい
    て、前記第1の命令の進行が前記第2の命令の進行との
    同期を確保するために、 前記第1の命令が前記第1の命令パイプラインを進行す
    る場合は、前記第2の命令が、前記第1の命令パイプラ
    インを進行するとき第i番目のステージを通過するこ
    と、前記第2の命令パイプラインを進行するとき第j番
    目のステージを通過するか又は第j番目のステージに達
    すること、並びに前記第3の命令パイプラインを進行す
    るとき第x番目のステージを通過するか又は第x番目の
    ステージに達することを監視する第4のステップと、前
    記第4のステップの条件が満たされるまで前記第1の命
    令における前記第1の命令パイプラインの第i番目のス
    テージの進みを止める第5のステップとを有し、 前記第1の命令が前記第2の命令パイプラインを進行す
    る場合は、前記第2の命令が、前記第1の命令パイプラ
    インを進行するとき第i番目のステージを通過するか又
    は第i番目のステージに達すること、前記第2の命令パ
    イプラインを進行するとき第j番目のステージを通過す
    ること、並びに前記第3の命令パイプラインを進行する
    とき第x番目のステージを通過するか又は第x番目のス
    テージに達することを監視する第6のステップと、前記
    第6のステップの条件が満たされるまで前記第1の命令
    における前記第2の命令パイプラインの第j番目のステ
    ージの進みを止める第7のステップとを有し、 前記第1の命令が前記第3の命令パイプラインを進行す
    る場合は、前記第2の命令が、前記第1の命令パイプラ
    インを進行するとき第i番目のステージを通過するか又
    は第i番目のステージに達すること、前記第2の命令パ
    イプラインを進行するとき第j番目のステージを通過す
    るか又は第j番目のステージに達すること、並びに前記
    第3の命令パイプラインを進行するとき第x番目のステ
    ージを通過することを監視する第8のステップと、前記
    第8のステップの条件が満たされるまで前記第1の命令
    における前記第3の命令パイプラインの第x番目のステ
    ージの進みを止める第9のステップとを有し、 さらに、前記第2の命令との同期が確保できたために、
    前記第1の命令が前記第1、第2又は第3の命令パイプ
    ラインを独自に進行する第10のステップとを有するこ
    とを特徴とするパイプライン計算機の同期方法。
  3. 【請求項3】 複数のステージからなる第1の命令パイ
    プラインと、 複数のステージからなる第2の命令パイプラインと、 前記第1の命令パイプラインを制御する第1の命令パイ
    プライン制御部と、 前記第2の命令パイプラインを制御する第2の命令パイ
    プライン制御部と、命令供給部より供給される命令を解
    読する命令解読部と、解読された第1の命令が前記第1
    又は第2の命令パイプラインの最初のステージに進むと
    き、その最初のステージに備えられた情報一時保持手段
    の値となる、前記第1の命令の進行が前記第1の命令よ
    り先に前記第1又は第2の命令パイプラインに供給され
    た第2の命令の進行との同期を必要とするか、並びに前
    記第1の命令が前記第1又は第2の命令パイプラインに
    おいて処理されており、まだ前記第1又は第2の命令パ
    イプラインにおける同期をとるステージまで進んでいな
    い命令の中で何番目の命令であるかという情報を生成す
    る初期情報生成部と、 前記第1の命令が前記第1の命令パイプラインを進行す
    るとき、前記第1の命令パイプラインの各ステージに備
    えられた第1の情報一時保持手段と前記第2の命令が前
    記第1又は第2の命令パイプラインの同期をとるステー
    ジに進行する毎に前記第1の命令パイプラインを進行す
    る前記第1の命令の前記情報を更新する第1の情報生成
    回路により構成された第1の情報保持手段と、 前記第1の命令が前記第2の命令パイプラインを進行す
    るとき、前記第2の命令パイプラインの各ステージに備
    えられた第2の情報一時保持手段と前記第2の命令が前
    記第1又は第2の命令パイプラインの同期をとるステー
    ジに進行する毎に前記第2の命令パイプラインを進行す
    る前記第1の命令の前記情報を更新する第2の情報生成
    回路により構成された第2の情報保持手段とを備えるこ
    とを特徴とするパイプライン計算機。
  4. 【請求項4】 複数のステージからなる第1の命令パイ
    プラインと、 複数のステージからなる第2の命令パイプラインと、 複数のステージからなる第3の命令パイプラインと、 前記第1の命令パイプラインを制御する第1の命令パイ
    プライン制御部と、 前記第2の命令パイプラインを制御する第2の命令パイ
    プライン制御部と、 前記第3の命令パイプラインを制御する第3の命令パイ
    プライン制御部と、 命令供給部より供給される命令を解読する命令解読部
    と、 解読された第1の命令が前記第1、第2又は第3の命令
    パイプラインの最初のステージに進むとき、その最初の
    ステージに備えられた情報一時保持手段の値となる、前
    記第1の命令の進行が前記第1の命令より先に前記第
    1、第2又は第3の命令パイプラインに供給された第2
    の命令の進行との同期を必要とするか、並びに前記第1
    の命令が前記第1、第2又は第3の命令パイプラインに
    おいて処理されており、未だ前記第1、第2又は第3の
    命令パイプラインにおける同期をとるステージまで進ん
    でいない命令の中で何番目の命令であるかという情報を
    生成する初期情報生成部と、 前記第1の命令が前記第1の命令パイプラインを進行す
    るとき、前記第1の命令パイプラインの各ステージに備
    えられた第1の情報一時保持手段と前記第2の命令が前
    記第1、第2又は第3の命令パイプラインの同期をとる
    ステージに進行する毎に前記第1の命令パイプラインを
    進行する前記第1の命令の前記情報を更新する第1の情
    報生成回路により構成された第1の情報保持手段と、 前記第1の命令が前記第2の命令パイプラインを進行す
    るとき、前記第2の命令パイプラインの各ステージに備
    えられた第2の情報一時保持手段と前記第2の命令が前
    記第1、第2又は第3の命令パイプラインの同期をとる
    ステージに進行する毎に前記第2の命令パイプラインを
    進行する前記第1の命令の前記情報を更新する第2の情
    報生成回路により構成された第2の情報保持手段と、 前記第1の命令が前記第3の命令パイプラインを進行す
    るとき、前記第3の命令パイプラインの各ステージに備
    えられた第3の情報一時保持手段と前記第2の命令が前
    記第1、第2又は第3の命令パイプラインの同期をとる
    ステージに進行する毎に前記第3の命令パイプラインを
    進行する前記第1の命令の前記情報を更新する第3の情
    報生成回路により構成された第3の情報保持手段とを備
    えることを特徴とするパイプライン計算機。
JP3237844A 1991-04-01 1991-09-18 パイプライン計算機の同期方法及びそれを実現したパイプライン計算機 Expired - Fee Related JP2842958B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP3237844A JP2842958B2 (ja) 1991-04-01 1991-09-18 パイプライン計算機の同期方法及びそれを実現したパイプライン計算機
EP92105541A EP0507251B1 (en) 1991-04-01 1992-03-31 Instruction pipelines synchronizing method and pipelined computer implementing the same
DE69227715T DE69227715T2 (de) 1991-04-01 1992-03-31 Befehlspipelinesynchronisierungsverfahren und Pipelinerechner unter Verwendung dieses Verfahrens

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP6838491 1991-04-01
JP3-68384 1991-04-01
JP3237844A JP2842958B2 (ja) 1991-04-01 1991-09-18 パイプライン計算機の同期方法及びそれを実現したパイプライン計算機

Publications (2)

Publication Number Publication Date
JPH0535474A JPH0535474A (ja) 1993-02-12
JP2842958B2 true JP2842958B2 (ja) 1999-01-06

Family

ID=26409614

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3237844A Expired - Fee Related JP2842958B2 (ja) 1991-04-01 1991-09-18 パイプライン計算機の同期方法及びそれを実現したパイプライン計算機

Country Status (3)

Country Link
EP (1) EP0507251B1 (ja)
JP (1) JP2842958B2 (ja)
DE (1) DE69227715T2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009054032A (ja) * 2007-08-28 2009-03-12 Toshiba Corp 並列プロセッサ

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4594660A (en) * 1982-10-13 1986-06-10 Honeywell Information Systems Inc. Collector
US4916652A (en) * 1987-09-30 1990-04-10 International Business Machines Corporation Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures
DE69033239T2 (de) * 1989-09-25 2000-01-05 Matsushita Electric Ind Co Ltd Rechner mit Pipeline-Struktur

Also Published As

Publication number Publication date
EP0507251A1 (en) 1992-10-07
EP0507251B1 (en) 1998-12-02
JPH0535474A (ja) 1993-02-12
DE69227715D1 (de) 1999-01-14
DE69227715T2 (de) 1999-04-22

Similar Documents

Publication Publication Date Title
EP1050808B1 (en) Computer instruction scheduling
US6216223B1 (en) Methods and apparatus to dynamically reconfigure the instruction pipeline of an indirect very long instruction word scalable processor
Furber et al. AMULET1: a micropipelined ARM
US8650554B2 (en) Single thread performance in an in-order multi-threaded processor
JP5231800B2 (ja) 半導体集積回路装置および半導体集積回路装置のクロック制御方法
US7228403B2 (en) Method for handling 32 bit results for an out-of-order processor with a 64 bit architecture
JPH02140831A (ja) データ処理装置
US20090198984A1 (en) Global History Branch Prediction Updating Responsive to Taken Branches
KR100305935B1 (ko) 데이타처리시스템및데이타처리시스템의데이타포착방법
US9438414B2 (en) Virtualized SHA computational engine
JP3469469B2 (ja) 情報処理装置
JP2842958B2 (ja) パイプライン計算機の同期方法及びそれを実現したパイプライン計算機
US7111152B1 (en) Computer system that operates in VLIW and superscalar modes and has selectable dependency control
JP2928684B2 (ja) Vliw型演算処理装置
US7428653B2 (en) Method and system for execution and latching of data in alternate threads
US6789185B1 (en) Instruction control apparatus and method using micro program
JP5493837B2 (ja) 演算処理装置、情報処理装置及び演算処理装置のパイプライン制御方法
US6427205B1 (en) Digital signal processor and processor reducing the number of instructions upon processing condition execution instructions
CN112579168B (zh) 指令执行单元、处理器以及信号处理方法
US6697933B1 (en) Method and apparatus for fast, speculative floating point register renaming
JPH08263289A (ja) 複数命令流パイプライン計算機
EP1217513A2 (en) Method for handling 32 bit results for an out-of-order processor with a 64 bit architecture
JP2595795B2 (ja) パイプライン計算機の同期方法とパイプライン処理無効化方法並びにそれらを実現したパイプライン計算機
Kreahling et al. Reducing the cost of conditional transfers of control by using comparison specifications
JPH06314196A (ja) 情報処理方法および装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19981006

LAPS Cancellation because of no payment of annual fees