(57)【要約】【課題】回路規模の増大や、高速クロックでの最高動作周波数の低下を起こすことなくパイプライン段数を可変する。【解決手段】高速及び低速クロックにより６段及び３段に切り替わる可変長パイプライン演算回路を構成するパイプラインステージ１，２，３，４，５，６と、クロックモード信号ＣＭの供給に応答してクロック周波数対応の動作モードに対応構成に切り替える制御信号ＳＥＬを出力する制御部７とを備える。パイプラインステージ１，３，５は、制御信号ＳＥＬのレベルＬ／Ｈに応答して有効又は無効状態に切替わるパイプラインレジスタＲ１，Ｒ２，Ｒ３を備える。制御信号ＳＥＬがＬレベルのときレジスタＲ１，Ｒ２，Ｒ３を有効化し６段のパイプライン演算処理装置として動作させ、ＨレベルのときレジスタＲ１，Ｒ２，Ｒ３を無効化して３段のパイプライン演算装置として動作させる。【選択図】　　　図１
2004062281.tif 000002
【特許請求の範囲】
【請求項１】
各々が所定の演算処理を実行する演算部と、前記演算部が出力する演算データを一時記憶するパイプラインレジスタとを有する第１の段数のパイプラインステージを縦続接続して構成されクロックモード信号の制御に応じて高周波数（速度）の高速クロック信号及び低周波数の低速クロック信号の各々で最適動作するよう前記パイプラインステージの段数を前記高速クロック信号対応の前記第１の段数と前記低速クロック信号対応の第２の段数とに切り替えることにより可変とするパイプライン演算処理装置において、
前記高速クロック信号のとき、前記第１の段数のパイプラインステージの各々の前記パイプラインレジスタの全てを前記演算データの記憶動作を行わせることにより有効として前記第１の段数のパイプライン演算処理装置として動作させ、前記低速クロック信号のとき、前記第１の段数のパイプラインステージのうちの前記第２の段数のパイプラインステージの前記パイプラインレジスタ以外の第３の段数のパイプラインレジスタにおける前記演算データの記憶動作を停止させることにより無効として前記第２の段数のパイプライン演算装置として動作させることを特徴とするパイプライン演算処理装置。
【請求項２】
前記第１の段数が前記第２の段数の２倍であり、前記第３の段数が前記第２の段数と等しいことを特徴とする請求項１記載のパイプライン演算処理装置。
【請求項３】
各々が所定の演算処理を実行する演算部と、前記演算部が出力する演算データを一時記憶するパイプラインレジスタとを有する第１の段数のパイプラインステージを縦続接続して構成されクロックモード信号の制御に応じて高周波数（速度）の高速クロック信号及び低周波数の低速クロック信号の各々で最適動作するよう前記パイプラインステージの段数を前記高速クロック信号対応の前記第１の段数と前記低速クロック信号対応の第２の段数とに切り替えることにより可変とするパイプライン演算処理装置において、
前記クロックモード信号対応の切替制御信号の供給に応じて前記演算データの記憶動作の実行及び停止のいずれか一方の状態に切替られる切替機能を持つ前記第１のパイプラインレジスタを備える前記第２の段数の第１のパイプラインステージと、
前記切替機能を持たない前記第２のパイプラインレジスタを備える前記第２の段数の第２のパイプラインステージと、
前記クロックモード信号の制御に応答して前記切替制御信号を出力する制御部とを備え、
前記第１及び第２のパイプラインステージを縦続接続して成るパイプラインステージの組を縦続接続し、
前記クロックモード信号が前記高速クロック信号を指定したとき、前記第１のパイプラインレジスタの前記記憶動作を実行させることにより有効として前記第２のパイプラインステージと併せて前記第２の段数の２倍に相当する前記第１の段数のパイプライン演算処理装置として動作させ、
前記クロックモード信号が前記低速クロック信号を指定したとき、前記第１のパイプラインレジスタの前記記憶動作を停止させることにより無効として前記第２の段数のパイプライン演算処理装置として動作させることを特徴とするパイプライン演算処理装置。
【請求項４】
前記第１のパイプラインレジスタが、前記切替制御信号の第１のレベルに応じて入力データを保持するＤフリップフロップとして動作し、前記切替制御信号の第２のレベルに応じて前記入力データを保持せずそのままスルーさせるスルー動作を行うスルー動作モード付Ｄフリップフロップを備えることを特徴とする請求項３記載のパイプライン演算処理装置。
【請求項５】
前記第１のパイプラインレジスタが、縦続接続され一方のクロック入力端に逆相のクロックが入力される第１及び第２のＤラッチを備え、
前記制御部が、前記クロックモード信号の制御に応答して切替制御信号を出力する制御回路と、
前記クロック信号を反転し反転クロック信号を出力するインバータと、
前記切替制御信号と前記反転クロック信号とのＯＲ論理をとりマスク反転クロック信号を前記第１のＤラッチのクロック入力端に供給する第１のＯＲ回路と、前記切替制御信号と前記クロック信号とのＯＲ論理をとりマスククロック信号を前記第２のＤラッチのクロック入力端に供給する第２のＯＲ回路とを備え、
前記第１及び第２のＤラッチが、前記切替制御信号の第１のレベルに応じて入力データを保持するＤフリップフロップとして動作し、前記切替制御信号の第２のレベルに応じて前記入力データを保持せずそのままスルーさせるスルー動作を行うスルー動作モード付Ｄフリップフロップとして動作することを特徴とする請求項３記載のパイプライン演算処理装置。
【請求項６】
前記スルー動作モード付Ｄフリップフロップが、縦続接続され一方のクロック入力端に逆相のクロックが入力される第１及び第２のＤラッチと、
クロック信号を反転し反転クロック信号を出力するインバータと、
前記切替制御信号と前記反転クロック信号とのＯＲ論理をとりマスク反転クロック信号を前記第１のＤラッチのクロック入力端に供給する第１のＯＲ回路と、前記切替制御信号と前記クロック信号とのＯＲ論理をとりマスククロック信号を前記第２のＤラッチのクロック入力端に供給する第２のＯＲ回路とを備えることを特徴とする請求項４記載のパイプライン演算処理装置。
【請求項７】
各々が所定の演算処理を実行する演算部と、前記演算部が出力する演算データを一時記憶するパイプラインレジスタとを有する第１の段数のパイプラインステージを縦続接続して構成されクロックモード信号の制御に応じて高周波数（速度）の高速クロック信号及び低周波数の低速クロック信号の各々で最適動作するよう前記パイプラインステージの段数を前記高速クロック信号対応の前記第１の段数と前記低速クロック信号対応の第２の段数とに切り替えることにより可変とするパイプライン演算処理装置において、
前記クロックモード信号の制御に応答して前記第１の段数のパイプラインステージの各々の前記パイプラインレジスタを独立に制御する前記第１の段数分の独立切替制御信号を出力する切替制御部を備え、
前記第１の段数のパイプラインステージの各々が、前記独立切替制御信号の供給に応じて前記演算データの記憶動作の実行及び停止のいずれか一方の状態に切替られる切替機能を持つ前記パイプラインレジスタを備え、
前記クロックモード信号が前記高速クロック信号を指定したとき、前記パイプラインレジスタの前記記憶動作を実行させることにより有効として前記第１の段数のパイプライン演算処理装置として動作させ、
前記クロックモード信号が前記低速クロック信号を指定したとき、予め指定した前記第２の段数の前記パイプラインステージ以外の前記パイプラインステージの前記パイプラインレジスタの前記記憶動作を停止させることにより無効として前記第２の段数のパイプライン演算処理装置として動作させることを特徴とするパイプライン演算処理装置。
【請求項８】
システムクロック信号の供給に応答して前記第１の段数のパイプラインステージの各々の前記パイプラインレジスタにそれぞれ独立のクロック信号を供給するクロック制御部を備えることを特徴とする請求項７記載のパイプライン演算処理装置。
【請求項９】
各々が所定の演算処理を実行する演算部と、前記演算部が出力する演算データを一時記憶するパイプラインレジスタとを有する第１の段数のパイプラインステージを縦続接続して構成され高周波数（速度）の第１及び低周波数の低速クロック信号の各々で最適動作するよう前記パイプラインステージの段数を前記高速クロック信号対応の前記第１の段数と前記低速クロック信号対応の第２の段数とに切り替えることにより可変とするパイプライン演算制御方法において、
前記高速クロック信号である高速クロックモードのとき、前記第１の段数のパイプラインステージの各々の前記パイプラインレジスタの全てを前記演算データの記憶動作を行わせることにより有効として前記第１の段数のパイプライン演算処理装置として動作させ、
前記低速クロック信号である低速クロックモードのとき、前記第１の段数のパイプラインステージのうちの前記第２の段数のパイプラインステージの前記パイプラインレジスタ以外の第３の段数のパイプラインレジスタにおける前記演算データの記憶動作を停止させることにより無効として前記第２の段数のパイプライン演算装置として動作させることを特徴とするパイプライン演算制御方法。
【請求項１０】
第１の時間に前記高速クロックモードから前記低速クロックモードに変更するとき、前記第１の時間の直前の第０の時間まで前記高速クロックモードで動作し、前記第１の段数のパイプライン演算処理装置として動作し、
前記第１の時間に前記パイプラインレジスタに供給されるクロック周波数を前記低速クロックに切り替え、新規の命令の取り込みを停止し、
前記命令取り込み停止時点での残余の前記命令を前記低速モードで実行し、全て終了した時点の次の第２の時間から前記低速クロックモードの動作を開始して新規命令を取り込み前記第２の段数のパイプライン演算処理装置として動作することを特徴とする請求項９記載のパイプライン演算制御方法。
【請求項１１】
前記第１の時間に前記クロックモードが変更された時に、前記クロック周波数を前記低速クロックに切り替えず、前記残余の前記命令を前記高速クロックモードで実行し、全て終了した時点の次の第３の時間に前記クロック周波数を前記低速クロックに切り替えて前記低速クロックモードの動作を開始することを特徴とする請求項９記載のパイプライン演算制御方法。
【請求項１２】
前記第０の時間まで前記高速クロックモードで動作し、前記第１の段数のパイプライン演算処理装置として動作し、
前記第１の時間に前記パイプラインレジスタに供給されるクロック周波数を前記低速クロックに切り替え、新規命令の取り込みを中断し、
前記第１の時間の次の第３の時間に新規命令を取り込みを再開し、
前記第３の時間の次の第４の時間に新規命令を取り込みを中断し、
前記第４の時間の次の第５の時間に新規命令を取り込みを再開し、
前記第５の時間の次の次の第６の時間に前記クロック周波数を前記低速クロックに切り替えて前記低速クロックモードの動作を開始することを特徴とする請求項９記載のパイプライン演算制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はパイプライン演算処理装置及びパイプライン演算制御方法に関し、特に高速クロックと低速クロックで動作させるためパイプラインの段数を可変とするパイプライン演算処理装置及びパイプライン演算制御方法に関する。
【０００２】
【従来の技術】
高速クロックと低速クロックで動作させるパイプライン演算処理装置は、高速クロック動作において、パイプライン段数を増加することにより、パイプラインの１ステージ毎の処理を低減するように構成することが一般的である。しかしながら、このような、パイプライン段数の増加は、分岐命令などによるパイプラインの停止や初期化によるペナルティによる実行効率の低下があり、これを抑えるために、分岐予測や先行実行といった、予測テーブルや実行命令の保持に高速なレジスタが必要で、消費電力が大きく回路が複雑な技術が一般的に不可欠ではある。
【０００３】
しかし、近年、プロセッサの負荷が低下した場合における消費電力低減のため、クロック周波数を低速に可変する場合は、分岐予測や先行実行を用いずに、実行効率の低下を抑えて性能を維持することが要求されている。
【０００４】
この要請に応えるために、例えば、特開平６−８３５８３号公報記載の従来の第１のパイプライン演算処理装置は、動作クロック周波数の可変に応じてパイプラインの段数を可変可能にし、長いパイプライン構成による高速クロックの動作と、短いパイプライン構成による低速クロックの命令実行効率を両立させるというものである。
【０００５】
従来の第１のパイプライン演算処理装置をブロックで示す図１８を参照すると、この従来の第１のパイプライン演算処理装置は、入力側のラッチ回路５１２−１と、演算回路５１０−Ａの出力をラッチするラッチ回路５１２−２と、演算回路５１０−Ｂの出力をラッチするラッチ回路５１２−３と、パイプラインの各ステージを構成する演算回路５１０−Ａ，５１０−Ｂと、セレクト信号の供給に応じて動作するセレクタ５１４と、セレクト信号を発生するセレクト発生回路５１８とを備える。
【０００６】
次に、図１８を参照して、従来の第１のパイプライン演算処理装置の動作について説明すると、セレクト発生回路５１８は、クロック速度が高い場合はＬレベルの、低い場合はＨレベルのセレクト信号を発生する。セレクト信号がＬレベルの場合、セレクタ５１４は、ラッチ回路５１２−２の出力を演算回路５１０−Ｂに接続し、演算回路５１０−Ａと５１０−Ｂの間にラッチ回路５１２−２が介在した状態となる。セレクト信号がＨレベルの場合、セレクタ５１４は、ラッチ回路５１２−２をリセットするとともに演算回路５１０−Ａの出力を演算回路５１０−Ｂに接続し、ラッチ回路５１２−２をスルーした状態とする。クロック速度が低くその１周期内に演算回路５１０−Ａと５１０−Ｂの両演算のの処理完了可能な場合に、ラッチ回路５１２−２を自動的にスルーでき処理速度を向上させる。
【０００７】
また、特開平８−１４７１６３号記載の従来の第２のパイプライン演算処理装置をブロックで示す図１９を参照すると、この従来の第２のパイプライン演算処理装置は、パイプラインの各ステージで命令に対する所定のデータ処理を行うデータ処理部６１３，６１４と、データ処理部６１３，６１４の各ステージに出力される処理内容を保持する複数のレジスタ６１５，６１７，６１９と、このレジスタ６１５，６１７，６１９をそれぞれバイパスするバイパス路を構成するマルチプレクサ６１６，６１８，６２０と、上記バイパス路によりレジスタ６１５，６１７，６１９中の該当レジスタをバイパスさせるようマルチプレクサ６１６，６１８，６２０を制御するコントローラ６２１とを備える。
【０００８】
次に、図１９を参照して、従来の第２のパイプライン演算処理装置の動作について説明すると、コントローラ６２１は、動作クロックの周波数が低クロック周波数モードとなったとき、あるいは、データ処理部６１３，６１４の各ステージでのデータ処理の流れを監視し、分岐命令実行時のようにその時点のレジスタ保持内容が次の単位処理時間も安定して保持される場合に、これを判定してマルチプレクサ６１６，６１８，６２０を制御し上記バイパス路によりレジスタ６１５，６１７，６１９中の該当レジスタをバイパスさせる。
【０００９】
このように、構成することにより、処理性能を低下させることなくプロセッサで無駄に消費される電力を削減するとともに、バイパスしたレジスタのセットアップタイムの分だけ処理速度を向上できる。
【００１０】
さらに、特開平９−３１９５７８号記載の従来の第３のパイプライン演算処理装置をブロックで示す図２０を参照すると、この従来の第３のパイプライン演算処理装置であるデータ処理７１は、命令フエッチ回路７１１と、命令解読回路７１２と、命令実行回路７１３と、高速ピッチフラグ７１４とを備え、パイプライン処理の段数がこの例では３段又は４段とに可変となっている。命令解読回路７１２のパイプライン制御回路７１２１は、命令実行回路７１３のパイプライン段数を切り替える。この構成により、４段パイプライン処理では動作クロックの上限を向上させることができ、従って、処理速度を高速化できる。一方、低速クロックで足りる用途では、分岐インタロックによるペナルティが少ない３段パイプライン処理を利用できる。
【００１１】
上述したように、従来の第１〜第３のパイプライン演算処理装置は、パイプライン段数を可変する動作モードの数だけパイプラインを設けてパイプラインを切替えるか、又は、パイプラインレジスタにバイパス回路を設けて、パイプラインレジスタの出力とバイパス回路の出力をマルチプレクサで受けて出力を選択するという動作を行っている。
【００１２】
その結果、可変する動作動作モードの数だけパイプラインを設けるか、あるいは、パイプラインレジスタにバイパス回路を設ける必要があるため、回路規模が増加する。
【００１３】
また、パイプラインレジスタにバイパス回路を設ける場合には、マルチプレクサがパイプラインレジスタ毎に必要となっているため、パイプライン段数が非可変（固定）の場合に比べ、回路規模が増加し、さらに、マルチプレクサによりパイプラインステージのゲート段数が増加し、高速クロックでの最高動作周波数が低下するという問題もある。
【００１４】
【発明が解決しようとする課題】
上述した従来のパイプライン演算処理装置及びパイプライン演算制御方法は、パイプライン段数を可変する動作モードの数だけパイプラインを設けてパイプラインを切替えるか、または、パイプラインレジスタにバイパス回路を設けて、パイプラインレジスタの出力とバイパス回路の出力をマルチプレクサで受けて出力を選択するという動作を行っているため、可変する動作モードの数だけパイプラインを設けるか、あるいは、パイプラインレジスタにバイパス回路を設ける必要があるため、回路規模が増加するという欠点があった。
【００１５】
また、パイプラインレジスタにバイパス回路を設ける場合には、マルチプレクサがパイプラインレジスタ毎に必要となっているため、パイプライン段数が非可変（固定）の場合に比べ、回路規模が増加し、さらに、マルチプレクサによりパイプラインステージのゲート段数が増加し、高速クロックでの最高動作周波数が低下するという欠点があった。
【００１６】
本発明の目的は、回路規模の増加や、高速クロックでの最高動作周波数の低下を起こすことなくパイプライン段数を可変するパイプライン演算処理装置及びパイプライン演算制御方法を提供することにある。
。
【００１７】
【課題を解決するための手段】
請求項１記載の発明のパイプライン演算処理装置は、各々が所定の演算処理を実行する演算部と、前記演算部が出力する演算データを一時記憶するパイプラインレジスタとを有する第１の段数のパイプラインステージを縦続接続して構成されクロックモード信号の制御に応じて高周波数（速度）の高速クロック信号及び低周波数の低速クロック信号の各々で最適動作するよう前記パイプラインステージの段数を前記高速クロック信号対応の前記第１の段数と前記低速クロック信号対応の第２の段数とに切り替えることにより可変とするパイプライン演算処理装置において、
前記高速クロック信号のとき、前記第１の段数のパイプラインステージの各々の前記パイプラインレジスタの全てを前記演算データの記憶動作を行わせることにより有効として前記第１の段数のパイプライン演算処理装置として動作させ、前記低速クロック信号のとき、前記第１の段数のパイプラインステージのうちの前記第２の段数のパイプラインステージの前記パイプラインレジスタ以外の第３の段数のパイプラインレジスタにおける前記演算データの記憶動作を停止させることにより無効として前記第２の段数のパイプライン演算装置として動作させることを特徴とするものである。
【００１８】
また、請求項２記載の発明は、請求項１記載のパイプライン演算処理装置において、前記第１の段数が前記第２の段数の２倍であり、前記第３の段数が前記第２の段数と等しいことを特徴とするものである。
【００１９】
請求項３記載の発明のパイプライン演算処理装置は、各々が所定の演算処理を実行する演算部と、前記演算部が出力する演算データを一時記憶するパイプラインレジスタとを有する第１の段数のパイプラインステージを縦続接続して構成されクロックモード信号の制御に応じて高周波数（速度）の高速クロック信号及び低周波数の低速クロック信号の各々で最適動作するよう前記パイプラインステージの段数を前記高速クロック信号対応の前記第１の段数と前記低速クロック信号対応の第２の段数とに切り替えることにより可変とするパイプライン演算処理装置において、
前記クロックモード信号対応の切替制御信号の供給に応じて前記演算データの記憶動作の実行及び停止のいずれか一方の状態に切替られる切替機能を持つ前記第１のパイプラインレジスタを備える前記第２の段数の第１のパイプラインステージと、
前記切替機能を持たない前記第２のパイプラインレジスタを備える前記第２の段数の第２のパイプラインステージと、
前記クロックモード信号の制御に応答して前記切替制御信号を出力する制御部とを備え、
前記第１及び第２のパイプラインステージを縦続接続して成るパイプラインステージの組を縦続接続し、
前記クロックモード信号が前記高速クロック信号を指定したとき、前記第１のパイプラインレジスタの前記記憶動作を実行させることにより有効として前記第２のパイプラインステージと併せて前記第２の段数の２倍に相当する前記第１の段数のパイプライン演算処理装置として動作させ、
前記クロックモード信号が前記低速クロック信号を指定したとき、前記第１のパイプラインレジスタの前記記憶動作を停止させることにより無効として前記第２の段数のパイプライン演算処理装置として動作させることを特徴とするものである。
【００２０】
また、請求項４記載の発明は、請求項３記載のパイプライン演算処理装置において、前記第１のパイプラインレジスタが、前記切替制御信号の第１のレベルに応じて入力データを保持するＤフリップフロップとして動作し、前記切替制御信号の第２のレベルに応じて前記入力データを保持せずそのままスルーさせるスルー動作を行うスルー動作モード付Ｄフリップフロップを備えて構成されている。
【００２１】
また、請求項５記載の発明は、請求項３記載のパイプライン演算処理装置において、前記第１のパイプラインレジスタが、縦続接続され一方のクロック入力端に逆相のクロックが入力される第１及び第２のＤラッチを備え、
前記制御部が、前記クロックモード信号の制御に応答して切替制御信号を出力する制御回路と、
前記クロック信号を反転し反転クロック信号を出力するインバータと、
前記切替制御信号と前記反転クロック信号とのＯＲ論理をとりマスク反転クロック信号を前記第１のＤラッチのクロック入力端に供給する第１のＯＲ回路と、前記切替制御信号と前記クロック信号とのＯＲ論理をとりマスククロック信号を前記第２のＤラッチのクロック入力端に供給する第２のＯＲ回路とを備え、
前記第１及び第２のＤラッチが、前記切替制御信号の第１のレベルに応じて入力データを保持するＤフリップフロップとして動作し、前記切替制御信号の第２のレベルに応じて前記入力データを保持せずそのままスルーさせるスルー動作を行うスルー動作モード付Ｄフリップフロップとして動作することを特徴とするものである。
【００２２】
また、請求項６記載の発明は、請求項４記載のパイプライン演算処理装置において、前記スルー動作モード付Ｄフリップフロップが、縦続接続され一方のクロック入力端に逆相のクロックが入力される第１及び第２のＤラッチと、
クロック信号を反転し反転クロック信号を出力するインバータと、
前記切替制御信号と前記反転クロック信号とのＯＲ論理をとりマスク反転クロック信号を前記第１のＤラッチのクロック入力端に供給する第１のＯＲ回路と、前記切替制御信号と前記クロック信号とのＯＲ論理をとりマスククロック信号を前記第２のＤラッチのクロック入力端に供給する第２のＯＲ回路とを備えて構成されている。
【００２３】
請求項７記載の発明のパイプライン演算処理装置は、各々が所定の演算処理を実行する演算部と、前記演算部が出力する演算データを一時記憶するパイプラインレジスタとを有する第１の段数のパイプラインステージを縦続接続して構成されクロックモード信号の制御に応じて高周波数（速度）の高速クロック信号及び低周波数の低速クロック信号の各々で最適動作するよう前記パイプラインステージの段数を前記高速クロック信号対応の前記第１の段数と前記低速クロック信号対応の第２の段数とに切り替えることにより可変とするパイプライン演算処理装置において、
前記クロックモード信号の制御に応答して前記第１の段数のパイプラインステージの各々の前記パイプラインレジスタを独立に制御する前記第１の段数分の独立切替制御信号を出力する切替制御部を備え、
前記第１の段数のパイプラインステージの各々が、前記独立切替制御信号の供給に応じて前記演算データの記憶動作の実行及び停止のいずれか一方の状態に切替られる切替機能を持つ前記パイプラインレジスタを備え、
前記クロックモード信号が前記高速クロック信号を指定したとき、前記パイプラインレジスタの前記記憶動作を実行させることにより有効として前記第１の段数のパイプライン演算処理装置として動作させ、
前記クロックモード信号が前記低速クロック信号を指定したとき、予め指定した前記第２の段数の前記パイプラインステージ以外の前記パイプラインステージの前記パイプラインレジスタの前記記憶動作を停止させることにより無効として前記第２の段数のパイプライン演算処理装置として動作させることを特徴とするものである。
【００２４】
また、請求項８記載の発明は、請求項７記載のパイプライン演算処理装置において、システムクロック信号の供給に応答して前記第１の段数のパイプラインステージの各々の前記パイプラインレジスタにそれぞれ独立のクロック信号を供給するクロック制御部を備えて構成されている。
【００２５】
請求項９記載の発明のパイプライン演算制御方法は、各々が所定の演算処理を実行する演算部と、前記演算部が出力する演算データを一時記憶するパイプラインレジスタとを有する第１の段数のパイプラインステージを縦続接続して構成され高周波数（速度）の第１及び低周波数の低速クロック信号の各々で最適動作するよう前記パイプラインステージの段数を前記高速クロック信号対応の前記第１の段数と前記低速クロック信号対応の第２の段数とに切り替えることにより可変とするパイプライン演算制御方法において、
前記高速クロック信号である高速クロックモードのとき、前記第１の段数のパイプラインステージの各々の前記パイプラインレジスタの全てを前記演算データの記憶動作を行わせることにより有効として前記第１の段数のパイプライン演算処理装置として動作させ、
前記低速クロック信号である低速クロックモードのとき、前記第１の段数のパイプラインステージのうちの前記第２の段数のパイプラインステージの前記パイプラインレジスタ以外の第３の段数のパイプラインレジスタにおける前記演算データの記憶動作を停止させることにより無効として前記第２の段数のパイプライン演算装置として動作させることを特徴とするものである。
【００２６】
また、請求項１０記載の発明は、請求項９記載のパイプライン演算制御方法において、第１の時間に前記高速クロックモードから前記低速クロックモードに変更するとき、前記第１の時間の直前の第０の時間まで前記高速クロックモードで動作し、前記第１の段数のパイプライン演算処理装置として動作し、
前記第１の時間に前記パイプラインレジスタに供給されるクロック周波数を前記低速クロックに切り替え、新規の命令の取り込みを停止し、
前記命令取り込み停止時点での残余の前記命令を前記低速モードで実行し、全て終了した時点の次の第２の時間から前記低速クロックモードの動作を開始して新規命令を取り込み前記第２の段数のパイプライン演算処理装置として動作することを特徴とするものである。
【００２７】
また、請求項１１記載の発明は、請求項９記載のパイプライン演算制御方法において、前記第１の時間に前記クロックモードが変更された時に、前記クロック周波数を前記低速クロックに切り替えず、前記残余の前記命令を前記高速クロックモードで実行し、全て終了した時点の次の第３の時間に前記クロック周波数を前記低速クロックに切り替えて前記低速クロックモードの動作を開始することを特徴とするものである。
【００２８】
また、請求項１２記載の発明は、請求項９記載のパイプライン演算制御方法において、前記第０の時間まで前記高速クロックモードで動作し、前記第１の段数のパイプライン演算処理装置として動作し、
前記第１の時間に前記パイプラインレジスタに供給されるクロック周波数を前記低速クロックに切り替え、新規命令の取り込みを中断し、
前記第１の時間の次の第３の時間に新規命令を取り込みを再開し、
前記第３の時間の次の第４の時間に新規命令を取り込みを中断し、
前記第４の時間の次の第５の時間に新規命令を取り込みを再開し、
前記第５の時間の次の次の第６の時間に前記クロック周波数を前記低速クロックに切り替えて前記低速クロックモードの動作を開始することを特徴とするものである。
【００２９】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００３０】
本実施の形態のパイプライン演算処理装置及びパイプライン演算制御方法は、各々が所定の演算処理を実行する演算部と、上記演算部が出力する演算データを一時記憶するパイプラインレジスタとを有する第１の段数のパイプラインステージを縦続接続して構成されクロックモード信号の制御に応じて高周波数（速度）の高速クロック信号及び低周波数の低速クロック信号の各々で最適動作するよう上記パイプラインステージの段数を前記高速クロック信号対応の上記第１の段数と上記低速クロック信号対応の第２の段数とに切り替えることにより可変とするパイプライン演算処理装置において、上記高速クロック信号のとき、上記第１の段数のパイプラインステージの各々の上記パイプラインレジスタの全てを上記演算データの記憶動作を行わせることにより有効として上記第１の段数のパイプライン演算処理装置として動作させ、上記低速クロック信号のとき、上記第１の段数のパイプラインステージのうちの上記第２の段数のパイプラインステージのパイプラインレジスタ以外の第３の段数のパイプラインレジスタにおける上記演算データの記憶動作を停止させることにより無効として上記第２の段数のパイプライン演算装置として動作させることを特徴とするものである。
【００３１】
次に、本発明の実施の形態をブロックで示す図１を参照すると、この図に示す本実施の形態のパイプライン演算処理装置は、説明の便宜上、２種類の動作周波数により６段及び３段に切り替わる可変長パイプライン演算回路を構成するパイプラインステージ１，２，３，４，５，６と、クロックモード信号ＣＭの供給に応答してクロック周波数対応の動作モードに対応する構成（コンフィギュレーション）に切り替えるための制御信号ＳＥＬを出力する制御部７とを備える。
【００３２】
パイプラインステージ１は、演算部Ｓ１と、パイプラインが処理するビット幅のパイプラインレジスタＲ１とを備える。
【００３３】
パイプラインステージ２は、演算部Ｓ２と、パイプラインが処理するビット幅のパイプラインレジスタＲ２とを備える。
【００３４】
パイプラインステージ３は、演算部Ｓ３と、パイプラインが処理するビット幅のパイプラインレジスタＲ３とを備える。
【００３５】
パイプラインステージ４は、演算部Ｓ４と、パイプラインが処理するビット幅のパイプラインレジスタＲ４とを備える。
【００３６】
パイプラインステージ５は、演算部Ｓ５と、パイプラインが処理するビット幅のパイプラインレジスタＲ５とを備える。
【００３７】
パイプラインステージ６は、演算部Ｓ６と、パイプラインが処理するビット幅のパイプラインレジスタＲ６とを備える。
【００３８】
制御部７は、パイプラインステージ１，３，５の各々のパイプラインレジスタＲ１，Ｒ３，Ｒ５に制御信号ＳＥＬを供給し、これらパイプラインレジスタＲ１，Ｒ３，Ｒ５の各々は、制御信号ＳＥＬの供給に応答して有効又は無効（スルー）状態に切り替える。
【００３９】
本実施の形態では後述するように、クロックモード信号ＣＭのＬレベル対応の高数周波数（以下高速）クロックの場合は、制御信号ＳＥＬをＬレベルとし、この制御信号ＳＥＬのＬレベルに応答してパイプラインレジスタＲ１，Ｒ３，Ｒ５の各々が有効となり、パイプラインステージ１，２，３，４，５，６から成る６段のパイプライン演算処理回路を構成する。一方、クロックモード信号ＣＭのＨレベル対応の低数周波数（以下低速）クロックの場合は、制御信号ＳＥＬをＨレベルとし、この制御信号ＳＥＬのＨレベルに応答してパイプラインレジスタＲ１，Ｒ３，Ｒ５の各々がスルーすなわち、無効となり、パイプラインステージ１と２、３と４、５と６の各々がそれぞれ１段のパイプラインステージとして動作する３段のパイプライン演算処理回路を構成する。
【００４０】
パイプラインレジスタＲ１，Ｒ３，Ｒ５は、上記動作を行うためのスルー動作モードを有するＤフリップフロップで構成される。パイプラインレジスタＲ１，Ｒ３，Ｒ５を代表してパイプラインレジスタＲ１の詳細をブロックで示す図２を参照すると、この図では説明の便宜上１ビット分の構成を示し、縦続接続され一方のクロック入力端に逆相のクロックが入力される２つのＤラッチＬ１，Ｌ２と、クロック信号ＣＬＫを反転し反転クロック信号を出力するインバータＮ１と、制御部７から供給される制御信号ＳＥＬと反転クロック信号とのＯＲ論理をとりマスク反転クロック信号ＭＣＢをＤラッチＬ１のクロック入力端に供給するＯＲ回路Ｏ１と、制御信号ＳＥＬとクロック信号ＣＬＫとのＯＲ論理をとりマスククロック信号ＭＣをＤラッチＬ２のクロック入力端に供給するＯＲ回路Ｏ２とを備える。
【００４１】
パイプラインレジスタＲ２，Ｒ４，Ｒ６は、公知の通常のＤフリップフロップで構成される。
【００４２】
次に、図１及び図２を参照して本実施の形態の動作について説明すると、パイプラインステージ１，２，３，４，５，６の各パイプラインステージに入力されたデータは、それら各ステージの演算部Ｓ１，Ｓ２，Ｓ３，Ｓ４，Ｓ５，Ｓ６の各々に供給され演算処理を行い、各ステージのパイプラインレジスタＲ１，Ｒ２，Ｒ３，Ｒ４，Ｒ５，Ｒ６の各々に記憶され次のデータを待つ。
【００４３】
このようなパイプライン演算装置の一般的な動作そのものは、当業者にとってよく知られており、その詳細な説明は省略する。
【００４４】
制御部７は、上述したように、使用するクロック周波数（速度）に応じて設定されるクロックモード信号ＣＭ対応の制御信号ＳＥＬのレベルに応じてパイプラインステージの段数を切り替える。すなわち、制御信号ＳＥＬをパイプラインステージ１，３，５の各々のパイプラインレジスタＲ１，Ｒ３，Ｒ５に供給し、これらパイプラインレジスタＲ１，Ｒ３，Ｒ５の各々は、制御信号ＳＥＬのレベルＬ／Ｈに応答して有効又は無効（スルー）状態に切り替える。
【００４５】
まず、高速クロックの場合は、クロックモード信号ＣＭのレベルはＬレベルであり、対応する制御信号ＳＥＬのレベルもＬレベルとなる。この制御信号ＳＥＬのＬレベルに応答してパイプラインレジスタＲ１，Ｒ３，Ｒ５の各々が有効となり、パイプラインステージ１，２，３，４，５，６から成る６段のパイプライン演算処理回路を構成する。
【００４６】
次に、低速クロックの場合は、クロックモード信号ＣＭのレベルはＨレベルであり、対応する制御信号ＳＥＬのレベルもＨレベルとなる。この制御信号ＳＥＬのＨレベルに応答してパイプラインレジスタＲ１，Ｒ３，Ｒ５の各々が無効、すなわち、スルー状態となる。これにより、パイプラインステージ１と２、３と４、５と６の各々がそれぞれ１段のパイプラインステージ１＋２，３＋４，５＋６を構成する。
【００４７】
このようにして、高速クロックの場合は、入力データＤＩを、パイプラインステージ１，２，３，４，５，６から成る６段のパイプライン演算処理回路によりそれぞれ処理し、出力データＤＯとして出力する。一方、低速クロックの場合は、パイプラインステージ１＋２，３＋４，５＋６から成る３段のパイプライン演算処理回路によりそれぞれ処理し、出力データＤＯとして出力する。
【００４８】
次に、図２を参照してパイプラインレジスタＲ１，Ｒ３，Ｒ５を代表してパイプラインレジスタＲ１の動作について説明すると（説明の便宜上１ビット分の動作について説明）、まず、高速クロック動作の場合、制御信号ＳＥＬがＬレベルに設定される。ＤラッチＬ１は、クロック入力端に接続されたＯＲ回路Ｏ１の一方の入力端には制御信号ＳＥＬが供給され、他方の入力端にはインバータＮ１でクロック信号ＣＬＫを反転した反転クロック信号が供給され、両者のＯＲ論理であるマスク反転クロック信号ＭＣＢの供給を受ける。従ってＤラッチＬ１はクロック信号ＣＬＫのＨレベルからＬレベルへの遷移タイミング、すなわち、立ち下がり前縁で入力のＤ信号を取り込み次のクロック信号ＣＬＫの立ち下がり前縁で出力Ｑ信号を出力する。一方、ＤラッチＬ２は、クロック入力端に接続されたＯＲ回路Ｏ２の一方の入力端には制御信号ＳＥＬが供給され、他方の入力端にはクロック信号ＣＬＫが供給され、両者のＯＲ論理であるマスク反転クロック信号ＭＣの供給を受ける。従ってＤラッチＬ２は、クロック信号ＣＬＫの立ち上がり前縁でＤラッチＬ１の出力Ｑ信号である入力のＤ信号を取り込み次のクロック信号ＣＬＫの立ち上がり前縁で出力Ｑ信号を出力する。すなわち、ＤラッチＬ１，Ｌ２により通常のＤフリップフロップの動作を行う。すなわち、パイプラインレジスタとして有効となり、入力データを保持する。
【００４９】
次に、低速クロック動作の場合、制御信号ＳＥＬがＨレベルに設定される。ＯＲ回路Ｏ１の一方の入力端の制御信号ＳＥＬがＨレベルであり、従って、他方の入力端の反転クロック信号のレベルと無関係にＨレベルのマスク反転クロック信号ＭＣＢＤをラッチＬ１に供給する。従ってＤラッチＬ１はＤラッチとして動作せず、入力データをそのまま出力データとして出力する、すなわち、スルー状態となる。また、ＤラッチＬ２もＯＲ回路Ｏ２の一方の入力端の制御信号ＳＥＬがＨレベルであり、従って、他方の入力端のクロック信号ＣＬＫのレベルと無関係にＨレベルのマスククロック信号ＭＣをラッチＬ２に供給する。従ってＤラッチＬ２もＤラッチとして動作せず、スルー状態となる。この結果、ＤラッチＬ１，Ｌ２で構成するパイプラインレジスタＲ１は無効化され、すなわち、データの記憶動作を行わないでスルーする。
【００５０】
次に、本実施の形態のクロックモードが高速クロックである場合におけるクロック、命令及び各ステージの処理状態をタイムチャートで示す図３を併せて参照して本実施の形態の高速クロック動作の詳細について説明すると、この場合は６段のパイプライン構成の動作であるので、上述したように、クロックモード信号ＣＭをＬレベル、従って制御信号ＳＥＬをＬレベルとすることによりパイプラインレジスタＲ１，Ｒ３，Ｒ５の各々を有効として、パイプラインステージ１，２，３，４，５，６から成る６段のパイプライン演算処理回路を構成する。これらパイプラインステージ１，２，３，４，５，６は、図示のように、それぞれ、時間Ｔの進行に従って各クロック周期ごとに命令１〜６に従い各パイプラインステージに割り当てた処理（括弧内に示す）ＩＦ１，ＩＦ２，ＩＤ１，ＩＤ２，ＥＸ１，ＥＸ２の各処理を順次実行する。なお、処理ＩＦは命令フエッチ、処理ＩＤは命令デコード、処理ＥＸは命令実行をそれぞれ表す。
【００５１】
すなわち、時間Ｔ１において、パイプラインステージ１は命令１に従い処理ＩＦ１を実行し、パイプラインステージ２〜６は待機状態である。時間Ｔ２で、パイプラインステージ１は命令２に従い処理ＩＦ１を実行し、パイプラインステージ２は命令１に従い処理ＩＦ２を実行し、パイプラインステージ３〜６は待機状態である。以下時間Ｔ３・・Ｔ６で、パイプラインステージ３〜６は、命令１に従い順次処理ＩＤ１，ＩＤ２，ＥＸ１，ＥＸ２の各々を実行する。命令２に対しては、時間Ｔ２からパイプラインステージ１の処理ＩＦ１を実行し、時間Ｔ７でパイプラインステージ６の処理ＥＸ２を実行する。
【００５２】
同様に、命令３〜６に対し、時間Ｔ３〜Ｔ６でパイプラインステージ１の処理ＩＦ１を実行し、時間Ｔ８〜Ｔ１１でパイプラインステージ６の処理ＥＸ２を実行する。この例では時間Ｔ６のとき、命令６〜１に対する全てのパイプラインステージ１〜６の処理ＩＦ１，ＩＦ２，ＩＤ１，ＩＤ２，ＥＸ１，ＥＸ２が実行中である。
【００５３】
次に、本実施の形態のクロックモードが低速クロックである場合におけるクロック、命令及び各ステージの処理状態をタイムチャートで示す図４を併せて参照して本実施の形態の低速クロック動作の詳細について説明すると、この場合は、説明の便宜上クロック周波数を高速クロックの１／２とする３段のパイプライン構成の動作であるので、上述したように、クロックモード信号ＣＭをＨレベル、従って制御信号ＳＥＬをＨレベルとすることによりパイプラインレジスタＲ１，Ｒ３，Ｒ５の各々をスルー（無効）として、パイプラインステージ１＋２，３＋４，５＋６から成る３段のパイプライン演算処理回路を構成する。これらパイプラインステージ１＋２，３＋４，５＋６の各々は、図示のように、それぞれ、時間Ｔの進行に従って処理ＩＦ１＋ＩＦ２，ＩＤ１＋ＩＤ２，ＥＸ１＋ＥＸ２の各処理を順次実行する。
【００５４】
すなわち、時間Ｔ１＋Ｔ２において、パイプラインステージ１＋２は命令１に従い処理ＩＦ１＋ＩＦ２を実行し、パイプラインステージ３＋４，５＋６は待機状態である。時間Ｔ３＋Ｔ４で、パイプラインステージ１＋２は命令２に従い処理ＩＦ１＋ＩＦ２を実行し、パイプラインステージ３＋４は命令１に従い処理ＩＤ１＋ＩＤ２を実行し、パイプラインステージ５＋６は待機状態である。次に、時間Ｔ５＋Ｔ６で、パイプラインステージ１＋２は命令３に従い処理ＩＦ１＋ＩＦ２を実行し、パイプラインステージ３＋４は命令２に従い処理ＩＤ１＋ＩＤ２を実行し、パイプラインステージ５＋６は命令１に従い処理ＥＸ１＋ＥＸ２を実行する。以下命令４〜６では以上の動作を繰り返す。
【００５５】
次に、クロックモードが高速クロックから低速クロックへの切替中におけるクロック、命令及び各ステージの処理状態をタイムチャートで示す図５を併せて参照して本実施の形態の高速クロックから低速クロックへの第１の切り替え方法である第１のパイプライン演算制御方法の動作について説明すると、ここでは説明の便宜上、時間Ｔ７にクロックモードを変更するものとする。まず、時間Ｔ６まで、図３に示した高速動作と同様、６段のパイプライン構成で動作する。次に、時間Ｔ７に、クロックモードが変更され、パイプラインレジスタに入力されるクロックが高速クロックから低速クロックに切り替わり、新しい命令の取り込みを停止する。取り込み済みの命令を６段のパイプライン構成のまま、１クロックが２時間Ｔ分である新しい低速クロックで処理を行う。従ってこの例では、残り５段のパイプライン分の命令処理に５クロック分、すなわち、１０Ｔ分必要であり、時間Ｔ１６までかかる。
【００５６】
時間Ｔ１６に、パイプラインで処理中の命令が全て終了する。
【００５７】
時間Ｔ１７から、図４で示した低速クロック動作と同様、３段のパイプライン構成で動作し、新しい命令の取り込みを再開する。
【００５８】
また、本実施の形態のパイプライン演算装置における高速クロックから低速クロックへの第２の切り替え方法である第２のパイプライン演算制御方法における高速クロックから低速クロックへの変更中の動作をタイムチャートで示す図６を参照すると、時間Ｔ７にクロックモードが変更された時に、上述のパイプライン演算制御方法のように、同時にレジスタに入力されるクロック周波数の切り替えを行わず、実際にパイプライン段数を切り替えるＴ１２まで、レジスタに入力されるクロック周波数の切り替えを遅らせることにより、切り替え所要時間を短縮することが出来る。
【００５９】
さらに、本実施の形態のパイプライン演算装置における高速クロックから低速クロックへの第３の切り替え方法である第３のパイプライン演算制御方法における高速クロックから低速クロックへの変更中の動作をタイムチャートで示す図７を参照すると、ここでは、新しい命令の取り込みを行うタイミングについて工夫することにより、下記の動作を行う。
【００６０】
時間Ｔ６まで、高速動作と同様、６段のパイプライン構成で動作する。次に、時間Ｔ７に、クロックモードが変更され、新しい命令の取り込みを中断する。時間Ｔ８に、新しい命令の取り込みを再開する。時間Ｔ９に、新しい命令の取り込みを中断する。時間Ｔ１０に、新しい命令の取り込みを再開する。
【００６１】
時間Ｔ１２から、低速クロック動作と同様、レジスタに入力されるクロック周波数の切り替えを行い、３段のパイプライン構成で動作する。
【００６２】
すなわち、パイプラインで処理中の命令が全て終了するまで新しい命令の取り込みを停止し、処理中の命令が終了してから、段数を切り替えるレジスタの有効化または無効化を行うかわりに、クロックモードに応じて、新しい命令の取り込みを中断しながら行うという方法を用いる。
【００６３】
次に、クロックモードが低速クロックから高速クロックへの変更中におけるクロック、命令及び各ステージの処理状態をタイムチャートで示す図８を併せて参照して本実施の形態の低速クロックから高速クロックへの変更中の動作について説明すると、ここでは説明の便宜上、時間Ｔ１４にクロックモードを変更するものとする。まず、時間Ｔ１２まで、低速動作と同様、３段のパイプライン構成で動作する。次に、時間Ｔ１４に、クロックモードが変更され、レジスタに入力されるクロック周波数が切り替わり、新しい命令の取り込みを停止する。
【００６４】
時間Ｔ１９に、パイプラインで処理中の命令が全て終了する。
【００６５】
時間Ｔ２０から、高速クロック動作と同様、６段のパイプライン構成で動作し、新しい命令の取り込みを再開する。
【００６６】
上述したように、本実施の形態では、高速クロックから低速クロックへの変更では、パイプラインで処理中の全ての命令が終了するのを待つことなく、パイプライン段数を切り替えられる。
【００６７】
このように、従来のバイパス回路を用いた技術と異なり、パイプライン構成の段数にかかわらず同一経路でデータを処理しているので、バイパス回路の出力とパイプランレジスタの出力を選択するマルチプレクサが不要となる。
【００６８】
従って、パイプライン段数の切り替えを行うステージのゲート段数が増加しないため、高速クロック動作での最高動作周波数の低下を回避することができる。
【００６９】
さらに、従来のバイパス回路を用いた技術が、各パイプラインレジスタ毎にマルチプレクサが必要であるのに対して、パイプラインレジスタのクロック入力のみを制御する構成となっているので、回路規模を小さくすることができる。
【００７０】
次に、本発明の第２の実施の形態を図１と共通の構成要素には共通の参照文字／数字を付して同様にブロックで示す図９を参照すると、この図に示す本実施の形態の前述の第１の実施の形態との相違点は、パイプラインステージ２，４，６に代わるパイプラインステージ２Ａ，４Ａ，６Ａの各々がパイプラインレジスタＲ２，Ｒ４，Ｒ６の代わりにパイプラインレジスタＲ１，Ｒ３、Ｒ５と同様のスルー動作モードを持つパイプラインレジスタＲ２Ａ，Ｒ４Ａ，Ｒ６Ａを備え、制御部７の代わりに、クロックモード信号ＣＭの供給に応答してパイプラインステージ１，２，３，４，５，６の各々のパイプラインレジスタＲ１，Ｒ２Ａ，Ｒ３，Ｒ４Ａ，Ｒ５，Ｒ６Ａの各々の各パイプラインステージを個別に制御する独立の制御信号ＳＥＬ１，ＳＥＬ２，ＳＥＬ３，ＳＥＬ４，ＳＥＬ５，ＳＥＬ６の各々を供給する制御部７Ａを備えることである。
【００７１】
本実施の形態の高速クロックから低速クロックへの第１の切り替え方法である第４のパイプライン演算制御方法における高速クロックから低速クロックへの変更中の動作をタイムチャートで示す図１０を参照すると、まず、第１の実施の形態と同様に時間Ｔ７にクロックモードを変更するものとすると、時間Ｔ６まで、第１の実施の形態の高速動作と同様、６段のパイプライン構成で動作する。次に、時間Ｔ７に、クロックモードが変更され、パイプラインレジスタに入力されるクロック周波数が切り替わり、新しい命令の取り込みを停止する。
【００７２】
時間Ｔ１３に、新しい命令の取り込みを再開し、すでに実行中の高速クロック動作の命令は６段のパイプライン構成で動作するが、新しく取り込んだ命令は３段のパイプライン構成で動作する。時間Ｔ１７から、第１の実施の形態の低速クロック動作と同様、３段のパイプライン構成で動作する。
【００７３】
すなわち、段数が切り替わるパイプラインステージのうち処理が終了したパイプラインステージから段数切り替え用のパイプラインレジスタの有効化または無効化を行う。
【００７４】
このように、本実施の形態では、全てのパイプラインステージがスルー動作モードを持つＤフリップフロップで構成され、その各々がパイプラインレジスタとして有効かどうかが決定されるため、処理が終了したパイプラインステージから順次パイプラインの段数の切り替えを可能としている。
【００７５】
また、本実施の形態の高速クロックから低速クロックへの変更中のパイプラインの段数の切り替え方法の変形である第２の切り替え方法である第５のパイプライン演算制御方法における高速クロックから低速クロックへの変更中の動作をタイムチャートで示すタイムチャートで示す図１１を参照すると、クロックモード信号ＣＭに対応しパイプラインレジスタに供給するクロック周波数の切り替え用の制御信号ＳＥＬを、実際にパイプライン段数を切り替えるまで遅らせて、切り替え所要時間を短縮することも出来る。
【００７６】
本実施の形態の低速クロックから高速クロックへの変更中の動作をタイムチャートで示す図１２を参照すると、まず、時間Ｔ１４まで、第１の実施の形態の低速クロック動作と同様、３段のパイプライン構成で動作する。時間Ｔ１６に、クロックモードが変更される。時間Ｔ１８に、すでに実行中の命令は３段のパイプライン構成で動作するが、新しく取り込んだ命令は６段のパイプライン構成で動作する。時間Ｔ２２から、第１の実施の形態の高速クロック動作と同様、パイプラインレジスタに入力されるクロック周波数が切り替わり６段のパイプライン構成で動作する。
【００７７】
このように、本実施の形態では、パイプラインで処理中の全ての命令が終了するのを待つことなく、さらに、連続して次の命令を取り込みながら、パイプライン段数を切り替えられる。
【００７８】
さらに、クロックモードとして多数のクロック周波数動作を持つ場合にも、パイプライン段数を任意の段数に変更することができるので、どのクロックモードでも、無駄のない命令実行効率が得られるという相乗的効果を奏する。
【００７９】
次に、本発明の第３の実施の形態を図９と共通の構成要素には共通の参照文字／数字を付して同様にブロックで示す図１３を参照すると、この図に示す本実施の形態の前述の第２の実施の形態との相違点は、制御部７Ａに加えてシステムのクロックＣＬＫの供給に応答してパイプラインステージ１，２Ａ，３，４Ａ，５，６Ａの各々のパイプラインレジスタＲ１，Ｒ２Ａ，Ｒ３，Ｒ４Ａ，Ｒ５，Ｒ６Ａに対し各々の独立のクロック信号ＣＬＫ１，ＣＬＫ２，ＣＬＫ３，ＣＬＫ４，ＣＬＫ５，ＣＬＫ６を供給する制御部８を備えることである。
【００８０】
上述の第１及び第２の実施の形態では、クロックモードの変更に対してパイプラインの切り替え所要時間を短縮するという効果を、各パイプラインステージのパイプラインレジスタに共通の入力クロックを使用し、次の命令の取り込みの判断とパイプライン段数の切り替えタイミングにより得ているが、本実施の形態では、個別のタイミングのクロックを入力することで達成できる。
【００８１】
本実施の形態の高速クロックから低速クロックへの切り替え方法である第６のパイプライン演算制御方法における高速クロックから低速クロックへの変更中の動作をタイムチャートで示す図１４を参照すると、まず、第１及び第２の実施の形態と同様に時間Ｔ７にクロックモードを変更するものとすると、時間Ｔ６まで、第１の実施の形態の高速動作と同様、同一の高速クロック周波数で６段のパイプライン構成で動作する。次に、時間Ｔ７に、クロックモードが変更され、パイプラインレジスタに入力されるクロック周波数が切り替わり、新しい命令の取り込みを停止する。
【００８２】
時間Ｔ８に、新しい命令の取り込みを再開し、すでに実行中の高速クロック動作の命令はパイプラインレジスタに供給されるクロック周波数を切り替えずに６段のパイプライン構成で動作するが、新しく取り込んだ命令は供給されるクロック周波数を切り替えて３段のパイプライン構成で動作する。
【００８３】
時間Ｔ１２から、第１の実施の形態の低速クロック動作と同様、同一の低速クロック周波数で３段のパイプライン構成で動作する。
【００８４】
次に、低速クロックから高速速クロックへの変更中の動作をタイムチャートで示す図１５を参照すると、時間Ｔ１２まで、同一の低速クロック周波数で３段のパイプライン構成で動作する。時間Ｔ１４に、クロックモードが変更される。時間Ｔ１６に、すでに実行中の命令はパイプラインレジスタに供給されるクロック周波数を切り替えずに３段のパイプライン構成で動作するが、新しく取り込んだ命令は供給されるクロック周波数を切り替えて６段のパイプライン構成で動作する。時間Ｔ２０から、同一の高速クロック周波数で６段のパイプライン構成で動作する。
【００８５】
すなわち、本実施の形態では、同時に異なる周波数のクロック信号でパイプライン処理を実行しながら、パイプライン段数を切り替える動作が得られ、本発明の目的が達成される。
【００８６】
次に、本発明の第４の実施の形態を図１と共通の構成要素には共通の参照文字／数字を付して同様にブロックで示す図１６を参照すると、この図に示す本実施の形態の前述の第１の実施の形態との相違点は、パイプラインステージ１，３，５の代わりにパイプラインステージ１Ｂ，３Ｂ，５Ｂを備え、これらパイプラインステージ１Ｂ，３Ｂ，５Ｂの各々がスルー動作モードを持つＤフリップフロップで構成したパイプラインレジスタＲ１，Ｒ３，Ｒ５の各々の代わりにＤラッチのみで構成したパイプラインレジスタＲ１Ｂ，Ｒ３Ｂ，Ｒ５Ｂを備え、制御部７の代わりに制御信号ＳＥＬによるクロックマスク機能を有する制御部７Ｂを備えることである。
【００８７】
パイプラインレジスタＲ１Ｂ，Ｒ３Ｂ，Ｒ５Ｂを代表してパイプラインレジスタＲ１Ｂ及び制御部７Ｂの構成をブロックで示す図１７を参照すると、この図では説明の便宜上１ビット分の構成を示したパイプラインレジスタＲ１Ｂは、縦続接続され一方のクロック入力端に逆相のクロックが入力される２つのＤラッチＬ１，Ｌ２を備え、制御部７Ｂは、第１の実施の形態の制御部７と同一機能、すなわち、クロックモード信号ＣＭの供給に応答して制御信号ＳＥＬを出力する制御回路７１と、クロック信号ＣＬＫを反転し反転クロック信号を出力するインバータＮ１と、制御信号ＳＥＬと反転クロック信号とのＯＲ論理をとりマスク反転クロック信号ＭＣＢをＤラッチＬ１のクロック入力端に供給するＯＲ回路Ｏ１と、制御信号ＳＥＬとクロック信号ＣＬＫとのＯＲ論理をとりマスククロック信号ＭＣをＤラッチＬ２のクロック入力端に供給するＯＲ回路Ｏ２とを備える。
【００８８】
従って、本実施の形態のパイプラインレジスタＲ１Ｂの２つのＤラッチＬ１，Ｌ２と、制御部７ＢのＯＲ回路Ｏ１，Ｏ２及びインバータＮ１は第１の実施の形態のパイプラインレジスタＲ１と実質的に同じＤフリップフロップを構成する。従って、本実施の形態の動作は、第１の実施の形態の動作と同一となる。
【００８９】
本実施の形態では、上述したように、制御部７Ｂに、パイプラインレジスタＲ１Ｂ，Ｒ３Ｂ，Ｒ５ＢのＤラッチに供給するクロックのマスク回路を１つにまとめて備える構成とすることが可能となるので、さらに回路規模を縮小できるという効果がある。
【００９０】
【発明の効果】
以上説明したように、本発明のパイプライン演算処理装置及びパイプライン演算制御方法は、高速クロック信号のとき、第１の段数のパイプラインステージの各々のパイプラインレジスタの全てを上記演算データの記憶動作を行わせることにより有効として第１の段数のパイプライン演算処理装置として動作させ、低速クロック信号のとき、上記第１の段数のパイプラインステージのうちの第２の段数のパイプラインステージのパイプラインレジスタ以外の第３の段数のパイプラインレジスタにおける演算データの記憶動作を停止させることにより無効として上記第２の段数のパイプライン演算装置として動作させることにより、パイプライン構成の段数にかかわらず同じ経路でデータを処理しているので、バイパス回路の出力とパイプランレジスタの出力を選択するマルチプレクサが不要となり回路規模の増大を抑制できるという効果がある。
【００９１】
また、パイプライン段数の切り替えを行うステージのゲート段数が増加しないため、高速クロック動作での最高動作周波数の低下を回避することができるという効果がある。
【００９２】
さらに、パイプラインレジスタのクロック入力のみを制御する構成となっているので、回路規模を小さくすることもできるという効果がある。
【図面の簡単な説明】
【図１】本発明のパイプライン演算処理装置の第１の実施の形態を示すブロック図である。
【図２】図１のパイプラインレジスタＲ１の構成を示すブロック図である。
【図３】本実施の形態のパイプライン演算処理装置における動作の一例を示す高クロック速度動作のタイムチャートである。
【図４】本実施の形態のパイプライン演算処理装置における動作の一例を示す低クロック速度動作のタイムチャートである。
【図５】本実施の形態のパイプライン演算処理装置における高クロック速度動作から低クロック動作への切り替え方法である第１のパイプライン演算制御方法を示すタイムチャートである。
【図６】本実施の形態のパイプライン演算処理装置における高クロック速度動作から低クロック動作への第２の切り替え方法である第２のパイプライン演算制御方法を示すタイムチャートである。
【図７】本実施の形態のパイプライン演算処理装置における高クロック速度動作から低クロック動作への第３の切り替え方法である第３のパイプライン演算制御方法を示すタイムチャートである。
【図８】本実施の形態のパイプライン演算処理装置における低クロック速度動作から高クロック動作への切り替え方法を示すを示すタイムチャートである。
【図９】本発明のパイプライン演算処理装置の第２の実施の形態を示すブロック図である。
【図１０】本実施の形態のパイプライン演算処理装置における高クロック速度動作から低クロック動作への第１の切り替え方法である第４のパイプライン演算制御方法を示すタイムチャートである。
【図１１】本実施の形態のパイプライン演算処理装置における高クロック速度動作から低クロック動作への第２の切り替え方法である第５のパイプライン演算制御方法を示すタイムチャートである。
【図１２】本実施の形態のパイプライン演算処理装置における低クロック速度動作から高クロック動作への切り替え方法を示すを示すタイムチャートである。
【図１３】本発明のパイプライン演算処理装置の第３の実施の形態を示すブロック図である。
【図１４】本実施の形態のパイプライン演算処理装置における高クロック速度動作から低クロック動作への切り替え方法である第６のパイプライン演算制御方法を示すタイムチャートである。
【図１５】本実施の形態のパイプライン演算処理装置における低クロック速度動作から高クロック動作への切り替え方法を示すを示すタイムチャートである。
【図１６】本発明のパイプライン演算処理装置の第４の実施の形態を示すブロック図である。
【図１７】図１６のパイプラインレジスタＲ１の構成を示すブロック図である。
【図１８】従来の第１のパイプライン演算処理装置の一例を示すブロック図である。
【図１９】従来の第２のパイプライン演算処理装置の一例を示すブロック図である。
【図２０】従来の第３のパイプライン演算処理装置の一例を示すブロック図である。
【符号の説明】
１，２，３，４，５，６，２Ａ，４Ａ，６Ａ，１Ｂ，２Ｂ，３Ｂ，４Ｂ，５Ｂ，６Ｂ　　パイプラインステージ
７，７Ａ，７Ｂ　　制御部
７１　　制御回路
Ｓ１，Ｓ２，Ｓ３，Ｓ４，Ｓ５，Ｓ６　　演算部
Ｒ１，Ｒ２，Ｒ３，Ｒ４，Ｒ５，Ｒ６，Ｒ２Ａ，Ｒ４Ａ，Ｒ６Ａ，Ｒ１Ｂ，Ｒ３Ｂ，Ｒ５Ｂ　　パイプラインレジスタ
【図１】
2004062281.tif 000003
【図２】
2004062281.tif 000004
【図３】
2004062281.tif 000005
【図４】
2004062281.tif 000006
【図５】
2004062281.tif 000007
【図６】
2004062281.tif 000008
【図７】
2004062281.tif 000009
【図８】
2004062281.tif 000010
【図９】
2004062281.tif 000011
【図１０】
2004062281.tif 000012
【図１１】
2004062281.tif 000013
【図１２】
2004062281.tif 000014
【図１３】
2004062281.tif 000015
【図１４】
2004062281.tif 000016
【図１５】
2004062281.tif 000017
【図１６】
2004062281.tif 000018
【図１７】
2004062281.tif 000019
【図１８】
2004062281.tif 000020
【図１９】
2004062281.tif 000021
【図２０】
2004062281.tif 000022