(57)【特許請求の範囲】
【請求項１】
複数のパイプラインステージを縦接続し、所定のクロックに同期してこれらのパイプラインステージ間で順次データを受け渡して処理を行うパイプライン演算処理装置において、
縦接続されたｍ＊２ｋ個（ｍは正の整数、ｋは２以上の整数）のパイプラインステージを有し、
ｉ＊２ｋ＋２ｋ（ｉ＝０，１，・・・，ｍ−１）番目のパイプラインステージに、入力されたデータを処理する処理部と、入力されたクロックに基づいて前記処理部の出力を保持するレジスタとを有するパイプラインステージを用い、
その他のパイプラインステージに、入力されたデータを処理する処理部と、入力されたクロックに基づいて前記処理部の出力を保持するレジスタと、入力された制御信号に基づいて前記処理部の出力と前記レジスタの出力を選択して出力する選択部を有するパイプラインステージを用いたパイプラインと、
ｋ本の制御信号と、基準クロックから生成したｋ＋１本のクロックを出力し、前記パイプラインのｉ＊２ｋ＋２ｎ−１＊（２＊ｊ−１）（ｉ＝０，１，・・・，ｍ−１、ｊ＝１，２，・・・２ｋ−ｎ）番目のパイプラインステージ内の選択部にｎ番目の制御信号を出力し、前記パイプラインのｉ＊２ｋ＋２ｎ−１＊（２＊ｊ−１）（ｉ＝０，１，・・・，ｍ−１、ｊ＝１，・・・２ｋ−ｎ）番目のパイプラインステージ内のレジスタにｎ番目のクロックを出力し、ｉ＊２ｋ＋２ｋ番目のパイプラインステージのレジスタに（ｋ＋１）番目のクロックを出力するクロック／段数制御部と、
を具備したことを特徴とするパイプライン演算処理装置。
【請求項２】
前記制御信号のうち、（ｋ−ｑ）番目（ｑ＝０，１，・・・ｐ−１、ｐは０＜ｐ＜ｋ−２を満たす整数）の制御信号が接続されているパイプラインステージを、選択部を内蔵しないパイプラインステージに変更したことを特徴とする請求項１記載のパイプライン演算処理装置。
【請求項３】
請求項１若しくは請求項２に記載のパイプライン演算処理装置を複数個具備したことを特徴とするパイプライン演算処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パイプラインを用いて演算処理を行うパイプライン演算処理装置において、特に消費電力を小さくすることができるパイプライン演算処理装置に関するものである。
【背景技術】
【０００２】
パイプライン演算処理装置は、データ処理部とその結果を記憶するレジスタで構成されたパイプラインステージを複数個縦接続し、データを順次受け渡しながら処理を行う演算処理装置である。各パイプラインステージは原則として同じクロックで駆動される。
【０００３】
図５に従来のパイプライン演算処理装置の構成を示す。このパイプライン演算処理装置は、８個のパイプラインステージが縦接続されたパイプラインを３組有している。
【０００４】
図５において、１０はパイプラインであり、縦接続されたパイプラインステージ１１〜１８で構成される。パイプラインステージ１１はデータ処理部１１ａおよびレジスタ１１ｂを有している。レジスタ１１ｂにはクロックｃｌｋが入力される。パイプラインステージ１２〜１８もデータ処理部とレジスタで構成され、これらのレジスタにもクロックｃｌｋが入力される。
【０００５】
パイプライン１０にはデータａｉｎが入力される。このデータａｉｎはデータ処理部１１ａに入力され、処理される。この処理はクロックｃｌｋの１周期内に終了し、その結果はクロックｃｌｋに同期してレジスタ１１ｂに格納される。このレジスタ１１ｂに格納されたデータが次のパイプラインステージ１２の入力になり、このデータはパイプラインステージ１２内のデータ処理部で処理される。このように、データａｉｎはクロックｃｌｋに同期してパイプラインステージ１１〜１８を順次受け渡されて処理される。
【０００６】
２０はパイプラインであり、縦接続されたパイプラインステージ２１〜２８で構成される。このパイプライン２０にはデータｂｉｎが入力され、処理される。３０も同様構成のパイプラインであり、縦接続されたパイプラインステージ３１〜３８で構成される。このパイプライン３０にはデータｃｉｎが入力されて処理される。動作はパイプライン１０と同じなので、説明を省略する。
【０００７】
図６は各パイプラインの動作を説明したタイムチャートである。（１）はパイプライン１０、（２）はパイプライン２０、（３）はパイプライン３０の動作を表している。（Ａ１）は各パイプラインステージ内のレジスタに入力されるクロックｃｌｋの波形である。
【０００８】
（Ｂ１）は初段のパイプラインステージの入力値ａｉｎ、（Ｃ１）〜（Ｊ１）はそれぞれパイプラインステージ１１〜１８の出力値である。（Ｊ１）の８段目のパイプラインステージの出力値がパイプライン１０の出力になる。
【０００９】
次に、パイプライン１０の動作を説明する。パイプラインステージ１１には、クロックｃｌｋに同期してＡ１〜Ａ１２のデータが順次入力される。時刻Ｔ１でデータＡ１はパイプラインステージ１１で処理されてデータＡ１ａが出力される。また、データＡ２が入力される。時刻Ｔ２でデータＡ１ａはパイプラインステージ１２で処理されてデータＡ１ｂが出力される。パイプラインステージ１１の出力はＡ２ａ、入力はＡ３になる。
【００１０】
以後同様の手順でデータが順次受け渡されて処理が進行する。時刻Ｔ３でパイプラインステージ１８から、入力データＡ１が処理されたデータＡ１ｈが出力される。このＡ１ｈがパイプライン１０の出力になる。以後、クロックｃｌｋに同期してデータＡ２ｈ、Ａ３ｈ・・・・・が出力される。
【００１１】
このように、パイプライン処理では、データはパイプラインステージの段数だけ遅れるが、入力データの処理結果がクロックｃｌｋに同期して得られるという特徴がある。なお、パイプライン２０、３０も同じ動作を行うので、説明を省略する。
【００１２】
図７に、データによって更新周期が異なる場合の動作を示す。なお、図５と同じ要素には同一符号を付し、説明を省略する。図７において、パイプライン２０に入力されるデータｂｉｎはパイプライン１０の２倍、パイプライン３０に入力されるデータｃｉｎはパイプライン１０の４倍の周期で更新される。
【００１３】
パイプライン１０〜３０の段数を可変することはできない。そのため、（２）に示すように、入力データｂｉｎはクロックｃｌｋの２周期の間同じ値に固定され、そのためパイプラインステージ２１〜２８は同じ演算を２度行う。また、パイプライン３０では、（３）に示すようにクロックｃｌｋの４周期の間入力データｃｉｎは固定され、パイプラインステージ３１〜３８は同じ演算を４度実行する。
【００１４】
パイプラインの消費電力は、パイプラインの段数と供給されるクロック周波数に依存する。図７のタイムチャートでは、パイプライン２０は実質的にパイプライン１０の１／２、パイプライン３０は１／４の速度でしか動作していないのに、消費電力が減少しないという欠点がある。
【００１５】
特許文献１には、パイプラインの段数を可変することができるパイプライン演算処理装置の発明が記載されている。以下、図８に基づいてこの発明の概要を説明する。図８において、４１〜４６はこの順に縦接続されたパイプラインステージであり、それぞれ演算部とこの演算部の出力を保持するパイプラインレジスタで構成される。各パイプラインレジスタにはクロックＣＬＫが入力される。パイプラインステージ４１にはクロックＣＬＫに同期してデータＤＩが入力され、パイプラインステージ４６からはデータＤＯが出力される。
【００１６】
制御部４７にはクロックモード信号ＣＭが入力され、制御信号ＳＥＬをパイプラインステージ４１、４３、４５に出力する。制御信号ＳＥＬが０のときは、パイプラインステージ４１〜４６内のパイプラインレジスタが全て有効になる。すなわち、６段のパイプラインとして動作する。制御信号が１になると、パイプラインステージ４１、４３、４５内のパイプラインレジスタが無効になり、データはこれらのパイプラインレジスタをスルーする。すなわち、パイプラインステージ４１と４２、４３と４４、４５と４６が１つのパイプラインステージになり、３段のパイプラインとして動作する。
【００１７】
入力データの更新周期が早いときには、制御信号ＳＥＬを０にして６段のパイプラインとして動作させる。入力データの更新周期が遅いときは、制御信号ＳＥＬを１にしてクロックＣＬＫの周波数を１／２にする。このようにすると、消費電力を低減することができる。
【特許文献１】特開２００４−６２２８１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
しかし、このようなパイプライン演算処理装置には、次のような課題があった。図５のパイプライン演算処理装置はパイプラインの段数を変えることができない。そのため、図７で説明したように、データの更新周期が遅い場合は各パイプラインステージに同じ演算を複数回させるという無駄な動作をさせなければならず、消費電力を低減することが困難であるという課題があった。
【００１９】
特許文献１のパイプライン演算処理装置はパイプラインの段数を１／２にすることができ、データの更新周期が遅い場合に消費電力を低減することができるという長所がある。しかし、段数を１／２にするだけであり、更新周期が大きく異なるデータに適合させることが難しいという課題があった。また、単一のパイプラインを有する演算処理装置が記載されているだけであって、複数のパイプラインを有する演算処理装置における、全体の処理速度を変えないで消費電力を低減するクロック周波数の選択手法、および複数のパイプラインを同期して動作させる手法については何ら記載されていない。
【００２０】
従って本発明の目的は、装置全体の処理速度を低下させることなく消費電力を低減することができるパイプライン演算処理装置を提供することにある。
【課題を解決するための手段】
【００２１】
このような課題を達成するために、本発明のうち請求項１記載の発明は、
複数のパイプラインステージを縦接続し、所定のクロックに同期してこれらのパイプラインステージ間で順次データを受け渡して処理を行うパイプライン演算処理装置において、
縦接続されたｍ＊２ｋ個（ｍは正の整数、ｋは２以上の整数）のパイプラインステージを有し、
ｉ＊２ｋ＋２ｋ（ｉ＝０，１，・・・，ｍ−１）番目のパイプラインステージに、入力されたデータを処理する処理部と、入力されたクロックに基づいて前記処理部の出力を保持するレジスタとを有するパイプラインステージを用い、
その他のパイプラインステージに、入力されたデータを処理する処理部と、入力されたクロックに基づいて前記処理部の出力を保持するレジスタと、入力された制御信号に基づいて前記処理部の出力と前記レジスタの出力を選択して出力する選択部を有するパイプラインステージを用いたパイプラインと、
ｋ本の制御信号と、基準クロックから生成したｋ＋１本のクロックを出力し、前記パイプラインのｉ＊２ｋ＋２ｎ−１＊（２＊ｊ−１）（ｉ＝０，１，・・・，ｍ−１、ｊ＝１，２，・・・２ｋ−ｎ）番目のパイプラインステージ内の選択部にｎ番目の制御信号を出力し、前記パイプラインのｉ＊２ｋ＋２ｎ−１＊（２＊ｊ−１）（ｉ＝０，１，・・・，ｍ−１、ｊ＝１，・・・２ｋ−ｎ）番目のパイプラインステージ内のレジスタにｎ番目のクロックを出力し、ｉ＊２ｋ＋２ｋ番目のパイプラインステージのレジスタに（ｋ＋１）番目のクロックを出力するクロック／段数制御部と、
を具備したものである。入力データの更新周期に応じて、パイプラインの段数を可変することができる。また、パイプラインの自由度を高めることができる。
【００２３】
請求項２記載の発明は、請求項１記載の発明において、
前記制御信号のうち、（ｋ−ｑ）番目（ｑ＝０，１，・・・ｐ−１、ｐは０＜ｐ＜ｋ−２を満たす整数）の制御信号が接続されているパイプラインステージを、選択部を内蔵しないパイプラインステージに変更するようにしたものである。構成を簡略にすることができる。
【００２４】
請求項３記載の発明は、
請求項１若しくは請求項２に記載のパイプライン演算処理装置を複数個具備したものである。入力データの更新周期が異なる複数のデータを処理するときに、処理能力を落とさずに消費電力を低減することができる。
【発明の効果】
【００２５】
以上説明したことから明らかなように、本発明によれば次のような効果がある。
請求項１，２および３の発明によれば、ｍ＊２ｋ個のパイプラインステージが縦接続されたパイプラインにおいて、ｉ＊２ｋ＋２ｎ−１＊（２＊ｊ−１）（ｉ＝０，１，・・・，ｍ−１、ｊ＝１，２，・・・２ｋ−ｎ）番目のパイプラインステージ内の選択部にｎ番目の制御信号を出力し、これらの制御信号を調整して２ｋ、２ｋ−１、・・・、１個のパイプラインステージを有するパイプラインとして動作させるようにした。
【００２６】
パイプライン演算処理装置の消費電力はパイプラインの段数に比例すると考えられるので、入力データのデータ更新周期に応じてパイプラインの段数およびクロック周波数を変更することにより、消費電力を低減することができるという効果がある。
【００２７】
このパイプライン演算処理装置を複数個内蔵し、データ更新周期が異なる複数のデータを処理する演算処理装置において、制御信号を調整してデータ更新周期に応じて最適な段数に設定することにより、データ処理能力を低下させずに消費電力を低減することができるという効果もある。予めデータ更新周期がわかっている信号発生器、信号測定装置やデータ処理装置に用いて効果が大きい。
【発明を実施するための最良の形態】
【００２８】
以下本発明を図面を用いて詳細に説明する。図１は本発明に係るパイプライン演算処理装置の一実施例を示す構成図である。図１において、５１〜５８はこの順に縦接続されたパイプラインステージであり、パイプライン５０を構成している。パイプラインステージ５１は、入力されたデータを処理する処理部５１ａ、入力されたクロックに同期してこの処理部５１ａの出力を保持するレジスタ５１ｂ、および処理部５１ａとレジスタ５１ｂの出力が入力され、これらの入力を選択して出力するマルチプレクサ（ＭＵＸ）５１ｃで構成される。処理部５１ａには入力データａｉｎが入力される。なお、マルチプレクサは選択部に相当するものである。
【００２９】
パイプラインステージ５２〜５７も同様の構成を有しており、前段のパイプラインステージの出力が入力される。最終段のパイプラインステージ５８は処理部とレジスタのみで構成され、マルチプレクサを有していない。
【００３０】
５９はクロック／段数制御部であり、信号ｊａと基準クロックｓｃｌｋが入力され、クロックa_ck_1、a_ck_2、a_ck_4、a_ck_8および制御信号a_th_1〜a_th_3を生成、出力する。制御信号a_th_1とクロックa_ck_1はパイプラインステージ５１、５３、５５、５７内のマルチプレクサとレジスタに、制御信号a_th_2とクロックa_ck_2はパイプラインステージ５２、５６内のマルチプレクサとレジスタに、制御信号a_th_3とクロックa_ck_4はパイプラインステージ５４のマルチプレクサとレジスタに、クロックa_ck_8はパイプラインステージ５８のレジスタに入力される。
【００３１】
パイプラインステージ５１〜５８にこの順で１番から番号をつけると、奇数番目(2*j-1, j=1,2,3,4)のパイプラインステージには、１番目の制御信号a_th_1と１番目のクロックa_ck_1が入力され、２番目から４つ毎(4*j−2, j=1,2)のパイプラインステージには、２番目の制御信号a_th_2と２番目のクロックa_ck_2が入力される。また、４番目から８つ毎(8*j-4 j=1)のパイプラインステージには、３番目の制御信号a_th_3と３番目のクロックa_ck_4が入力され、最終段のパイプラインには、４番目のクロックa_ck_8が入力される。
【００３２】
各パイプラインステージ内のマルチプレクサは、制御信号が１のときは処理部の出力を選択し、０のときはレジスタの出力を選択する。このため、制御信号が１のときはレジスタがスルーされ、次段のパイプラインステージと合体して１つのパイプラインステージを構成する。
【００３３】
６０はパイプラインであり、縦接続されたパイプラインステージ６１〜６８で構成される。６９はクロック／段数制御部であり、信号ｊｃと基準クロックｓｃｌｋが入力され、クロックb_ck_1、b_ck_2、b_ck_4、b_ck_8、および制御信号b_th_1、b_th_2、b_th_3を生成してパイプラインステージ６１〜６８に出力する。７０はパイプラインであり、縦接続されたパイプラインステージ７１〜７８で構成される。７９はクロック／段数制御部であり、信号ｊｃと基準クロックｓｃｌｋが入力され、クロックc_ck_1、c_ck_2、c_ck_4、c_ck_8、および制御信号c_th_1、c_th_2、c_th_3を生成してパイプラインステージ７１〜７８に出力する。
【００３４】
クロック／段数制御部６９、７９が出力する制御信号とクロックのパイプライン６０、７０への配信はパイプライン５０と同じなので、説明を省略する。この際、クロックb_ck_j、c_ck_jはa_ck_j(いずれもj=1, 2, 4, 8)と読み替える。また、制御信号b_th_k、c_th_kはa_th_k（いずれもk=1, 2, 3)と読み替える。
【００３５】
次に、クロック／段数制御部５９、６９、７９の動作を説明するが、動作は同じなので、クロック／段数制御部５９で説明する。信号ｊａには０〜３の整数が入力される。クロック／段数制御部５９は、この信号ｊａによって出力するクロックと制御信号を変化させる。
【００３６】
ｊａ＝０のときは、クロック／段数制御部５９は制御信号a_th_1〜a_th_3を全て０にし、クロックa_ck_1、a_ck_2、a_ck_4、a_ck_8を基準クロックｓｃｌｋと同じ信号とする。パイプラインステージ５１〜５７内のレジスタは有効になり、パイプライン５０は８段のパイプラインとなる。また、パイプライン５０の出力は基準クロックｓｃｌｋの周期で更新される。このときは、消費電力は最大になる。
【００３７】
ｊａ＝１のときは、クロック／段数制御部５９は制御信号a_th_1を１、a_th_2、a_th_3を０にする。また、クロックa_ck_1を０に固定し、a_ck_2、a_ck_4、a_ck_8を基準クロックｓｃｌｋを２分周したクロックとする。制御信号a_th_1が０なので、パイプラインステージ５１、５３、５５、５７内のレジスタはスルーされる。その結果、パイプラインステージ５１と５２、５３と５４、５５と５６、５７と５８がそれぞれ１つのパイプラインステージなり、４段のパイプラインとなる。ｊａ＝０の場合に比べてクロックの周期は倍になるので、パイプライン５０のデータ更新周期も倍になる。消費電力はパイプラインの段数に比例すると考えることができるので、消費電力を約半分にすることができる。
【００３８】
ｊａ＝２のときは、クロック／段数制御部５９は制御信号a_th_1とa_th_2を１、a_th_3を０にする。また、クロックa_ck_1とa_ck_2は０に固定し、a_ck_4、a_ck_8として基準クロックｓｃｌｋを４分周したクロックとする。パイプラインステージ５１〜５３、５５〜５７内のレジスタはスルーされるので、パイプラインステージ５１〜５４が１つのパイプラインステージになり、５５〜５８がもう１つのパイプラインステージになる２段のパイプラインとなる。また、このパイプラインのデータ更新周期はｊａ＝１のときの倍になり、消費電力はｊａ＝１のときの約半分になる。
【００３９】
ｊａ＝３のときは、クロック／段数制御部５９は制御信号a_th_1〜a_th_3を全て１にし、クロックa_ck_1、a_ck_2、a_ck_4を０に固定して、a_ck_8を基準クロックｓｃｌｋを８分周したクロックとする。パイプラインステージ５１〜５７内のレジスタは全てスルーされる。パイプライン５０は、パイプラインステージ５１〜５８が１つのパイプラインステージとなる１段のパイプラインになる。このパイプラインのデータ更新周期はｊａ＝２のときの倍になり、消費電力はｊａ＝２のときの約半分になる。
【００４０】
制御信号が１のときはレジスタがスルーされるので、このパイプラインステージに入力されるクロックは何であってもよい。前述の例では制御信号として１が入力されるパイプラインステージに入力されるクロックを０に固定したが、それ以外のパイプラインステージに入力されるクロックと同じクロックを入力してもよい。また、前述の例からわかるように、ｊａの値が同じときには、各パイプラインステージには同じクロックが入力される。これらのことから、クロック／段数制御部５９が出力するクロックを１本とすることができる。なお、クロックの数を増やすととそれだけ自由度が増し、種々の使い方をすることができる。
【００４１】
なお、パイプライン６０とクロック／段数制御部６９、パイプライン７０とクロック／段数制御部７９の動作も、パイプライン５０とクロック／段数制御部５９と同じであるので、説明を省略する。
【００４２】
図２に、図１実施例のタイムチャートを示す。このタイムチャートは、クロック／段数制御部５９、６９、７９の信号ｊａ、ｊｂ、ｊｃを全て０にした場合である。前述したように、この場合はパイプライン５０、６０、７０は全て８段のパイプラインとして動作し、データは基準クロックｓｃｌｋの周期で更新される。このタイムチャートは図６タイムチャートと同じなので、説明を省略する。
【００４３】
図３は信号ｊａ＝０、ｊｂ＝１、ｊｃ＝２とした場合のタイムチャートである。図３（１）はパイプライン５０のタイムチャートである。パイプライン５０は８段のパイプラインとして動作し、データは基準クロックｓｃｌｋの周期で更新される。このタイムチャートは、図２（１）のタイムチャートと同じである。
【００４４】
図３（２）はパイプライン６０のタイムチャートである。ｊｂ＝１であるので、パイプライン６０は４段のパイプラインとして動作する。（Ａ２）のｂ＿ｃｋは各パイプラインステージ内のレジスタに入力されるクロックであり、（１）の倍の周期になっている。（Ｂ２）はパイプライン６０への入力データｂｉｎであり、（Ａ２）のクロックの周期で更新される。
【００４５】
（Ｃ２）はパイプラインステージ６１と６２が合体したステージの出力、（Ｄ２）はパイプラインステージ６３と６４が合体したステージの出力である。以下同様に、（Ｅ２）、（Ｆ２）はそれぞれパイプラインステージ６５と６６、６７と６８が合体したステージの出力である。これら合体したステージは、パイプライン５０の倍の周期で動作するが、パイプライン６０の出力Ｂ１ｈ、Ｂ２ｈ・・・は、パイプライン５０の出力Ａ１ｈ、Ａ２ｈ・・・に同期して出力される。
【００４６】
図３（３）はパイプライン７０のタイムチャートである。ｊｃ＝２であるので、パイプライン７０は２段のパイプラインとして動作する。（Ａ３）のｃ＿ｃｋは各パイプラインステージ内のレジスタに入力されるクロックであり、（１）の４倍の周期になっている。（Ｂ３）はパイプライン６０への入力データｃｉｎであり、（Ａ３）のクロックの周期で更新される。
【００４７】
（Ｃ３）はパイプラインステージ７１〜７４が合体したステージの出力、（Ｄ３）はパイプラインステージ７５〜７８が合体したステージの出力である。これら合体したステージは、パイプライン５０の４倍の周期で動作するが、パイプライン７０の出力Ｃ１ｈ、Ｃ２ｈ・・・は、パイプライン５０の出力Ａ１ｈ、Ａ２ｈ・・・に同期して出力される。
【００４８】
このように、入力データの更新周期に応じて制御信号とクロックを変えることにより、データ処理能力を実質的に低下させることなく消費電力を低減することができる。特に、複数のパイプラインを有し、異なる更新周期のデータが入力されるパイプライン演算処理装置に用いると効果が大きい。
【００４９】
図１のパイプラインを、２k個のパイプラインステージを有するパイプラインに一般化することができる。この場合、マルチプレクサを有するパイプラインステージを（２k−１）個縦接続し、最終段にマルチプレクサを有しないパイプラインステージを接続する構成とする。
【００５０】
クロック／段数制御部はｋ本の制御信号と（ｋ＋１）本のクロックを出力する。初段のパイプラインステージを１番目とすると、ｎ番目（ｎ＝１，２，・・・、ｋ）の制御信号とクロックを、２n-1＊（２＊ｊ−１）番目（ｊ＝１，２，・・・，２k-n）のパイプラインステージに入力する。また、最終段のパイプラインステージには、（ｋ＋１）番目のクロックを入力する。このパイプラインは、ｋ本の制御信号を調整することにより、２k，２k-1，・・・，１個のパイプラインステージを有するパイプラインとすることができる。なお、前述したように、クロック／段数制御部が出力するクロックを１種類とすることもできる。
【００５１】
図１の実施例では、２k，２k-1，・・・，１個のパイプラインステージを有するパイプラインとして使用することができるが、場合によってはパイプラインステージが少ないパイプラインを必要としない場合もある。この場合は、パイプラインおよびクロック／段数制御部の構成を簡単化することができる。２p個（０＜ｐ＜ｋの整数）以上のパイプラインステージを有するパイプラインとしてのみ使用するときは、（ｋ−ｑ）番目（ｑ＝０，１，・・・ｐ−１）の制御信号が入力されているパイプラインステージを、マルチプレクサを有しないパイプラインステージに変更すればよい。このような構成にすることにより、制御信号の数を（ｋ−ｐ）本に、クロックの最大数を（ｋ−ｐ＋１）本にすることができる。
【００５２】
この２k個のパイプラインステージを有するパイプラインをｍ個（ｍは正の整数）縦接続して新たなパイプラインを構成することもできる。このパイプラインの構成例を図４に示す。
【００５３】
図４において、８１はパイプラインブロックであり、マルチプレクサを有するパイプラインステージ８１ａ、８１ｂ、８１ｃおよびマルチプレクサを有さないパイプラインステージ８１ｄの４個のパイプラインステージで構成されている。８２、８３はパイプラインブロックであり、パイプラインブロック８１と同様に４個のパイプラインステージで構成されている。この３つのパイプラインブロック８１〜８３が縦接続され、パイプライン８０を構成している。
【００５４】
８４はクロック／段数制御部であり、基準クロックｓｃｌｋおよび信号ｊｄが入力され、２本の制御信号th_1、th_2および３本のクロックck_1、ck_2、ck_4を出力する。制御信号th_1とクロックck_1は、パイプラインブロック８１〜８３の１、３番目のパイプラインステージのマルチプレクサとレジスタに入力される。制御信号th_2とクロックck_2は、２番目のパイプラインステージのマルチプレクサとレジスタに入力される。クロックck_4は、４番目のパイプラインステージのレジスタに入力される。
【００５５】
図４の構成を一般形で表すと、２k個のパイプラインステージを有するパイプラインブロックをｍ個（ｍは正の整数）縦接続したパイプラインとなる。パイプラインステージの数
はｍ＊２k個になる。
【００５６】
ｎ番目の制御信号とクロックは、ｉ＊２k＋２n-1＊（２＊ｊ−１）（ｉ＝０，１，・・・ｍ−１、ｊ＝１，２，・・・２k-n）番目のパイプラインステージに入力する。ｉ＊２k＋２k番目のパイプラインステージには制御信号は入力せず、（ｋ＋１）本目のクロックを入力する。この実施例では、図１の実施例に比べてパイプラインステージの数はｍ倍になるが、制御信号とクロックの数は増やす必要がない。すなわち、クロック／段数制御部は１つでよい。
【００５７】
この実施例でもクロックの数を１本とすることができる。また、変更できるパイプラインステージの数を制限することにより、パイプラインクロック／段数制御部を簡単化することができる。
【００５８】
なお、図４で用いたパイプラインブロックは説明の都合上導入したものであり、パイプラインの動作を制約するものではない。また、マルチプレクサを内蔵しないパイプラインステージとしてマルチプレクサを内蔵したパイプラインステージを用い、制御信号を固定して、常時レジスタの出力を選択するようにしてもよい。
【００５９】
このパイプライン演算処理装置は、処理するデータのデータ更新周期がわかっている信号発生装置やデータ処理装置に用いると、各データを同期して処理し、かつ消費電力を削減することができる。
【図面の簡単な説明】
【００６０】
【図１】本発明の一実施例を示す構成図である。
【図２】本発明の一実施例の動作を説明するためのタイムチャートである。
【図３】本発明の一実施例の動作を説明するためのタイムチャートである。
【図４】本発明の他の実施例を示す構成図である。
【図５】従来のパイプラインの構成図である。
【図６】従来のパイプラインステージのタイムチャートである。
【図７】従来のパイプラインステージのタイムチャートである。
【図８】従来のパイプラインの構成図である。
【符号の説明】
【００６１】
５０、６０、７０、８０  パイプライン
５１〜５８、６１〜６８、７１〜７８、８１ａ〜８１ｄ  パイプラインステージ
５１ａ  処理部
５１ｂ  レジスタ
５１ｃ  マルチプレクサ
５９、６９、７９、８４  クロック／段数制御部
８１〜８３  パイプラインブロック
ａｉｎ、ｂｉｎ、ｃｉｎ  入力データ
a_th_1〜a_th_3、b_th_1〜b_th_3、c_th_1〜c_th_3、th_1、th_2  制御信号
a_ck_1、a_ck_2、a_ck_4、a_ck_8  クロック
b_ck_1、b_ck_2、b_ck_4、b_ck_8  クロック
c_ck_1、c_ck_2、c_ck_4、c_ck_8  クロック
ck_1、ck_2  クロック
ｓｃｌｋ  基準クロック
【図１】
0004735962.tif 000002
【図２】
0004735962.tif 000003
【図３】
0004735962.tif 000004
【図４】
0004735962.tif 000005
【図５】
0004735962.tif 000006
【図６】
0004735962.tif 000007
【図７】
0004735962.tif 000008
【図８】
0004735962.tif 000009