(57)【特許請求の範囲】
【請求項１】
処理内容を示すプログラムの命令を入力し、この命令に従って演算対象データの演算処理を行う演算部と、前記演算部の演算結果を記憶する記憶部とを有する複数のプロセッサエレメントを備えた信号処理プロセッサにおいて、
前記プログラムの内容を解釈し、命令種の切り替わり、ウェイト動作及びデータ入出力時に発生する前記演算部と前記記憶部の非動作状態を検出し、前記プログラムの命令中に前記演算部及び前記記憶部の非動作命令を生成する制御部であって、処理時間が予め定められた時間よりも短い場合には、前記プログラムの命令の処理時間が所定値に調整されるように追加的に非動作命令を挿入する制御部と、
前記プログラムの命令中の非動作命令をデコードするデコード部と、
前記演算部への動作クロックの供給を制御し、前記デコード部によりデコードされた前記非動作命令に基づいて前記演算部への動作クロックの供給を停止する演算部用クロック制御部と、
前記記憶部への動作クロックの供給を制御し、前記デコード部によりデコードされた前記非動作命令に基づいて前記記憶部への動作クロックの供給を停止する記憶部用クロック制御部とを備えたことを特徴とする信号処理プロセッサ。
【請求項２】
処理内容を示すプログラムの命令を入力し、この命令に従って演算対象データの演算処理を行う演算部と、前記演算部の演算結果を記憶する記憶部とを有する複数のプロセッサエレメントを備えた信号処理プロセッサにおいて、
前記複数のプロセッサエレメントを有する複数のブロック部と、
前記ブロック部ごとの動作可否を示す値が設定されるレジスタ部と、
前記プログラムの内容を解釈し、命令種の切り替わり、ウェイト動作及びデータ入出力時に発生する前記演算部と前記記憶部の非動作状態を検出し、前記プログラムの命令中に前記演算部及び前記記憶部の非動作命令を生成する制御部であって、処理時間が予め定められた時間よりも短い場合には、前記プログラムの命令の処理時間が所定値に調整されるように追加的に非動作命令を挿入するとともに、前記レジスタ部に前記ブロック部ごとの動作可否を示す値を設定する制御部と、
前記プログラムの命令中の非動作命令をデコードするデコード部と、
前記演算部への動作クロックの供給を制御し、前記レジスタ部の設定値及び前記デコード部によりデコードされた前記非動作命令に基づいて前記ブロック部ごとに前記演算部への動作クロックの供給を停止する演算部用クロック制御部と、
前記記憶部への動作クロックの供給を制御し、前記レジスタ部の設定値及び前記デコード部によりデコードされた前記非動作命令に基づいて前記ブロック部ごとに前記記憶部への動作クロックの供給を停止する記憶部用クロック制御部とを備えたことを特徴とする信号処理プロセッサ。
【請求項３】
処理内容を示すプログラムの命令を入力し、この命令に従って演算対象データの演算処理を行う演算部と、前記演算部の演算結果を記憶する記憶部とを有する複数のプロセッサエレメントを備えた信号処理プロセッサにおいて、
前記複数のプロセッサエレメントを有する複数のブロック部と、
前記ブロック部ごとの動作可否を示す値が設定されるレジスタ部と、
前記プログラムの内容を解釈し、命令種の切り替わり、ウェイト動作及びデータ入出力時に発生する前記演算部と前記記憶部の非動作状態を検出し、前記プログラムの命令中に前記演算部及び前記記憶部の非動作命令を生成する制御部であって、処理時間が予め定められた時間よりも短い場合には、前記プログラムの命令の処理時間が所定値に調整されるように追加的に非動作命令を挿入し、前記プログラムの命令中の非動作命令に応じて設定される前記演算部及び前記記憶部の非動作を示す値と前記ブロック部ごとの動作可否を示す値を前記レジスタ部に設定する制御部と、
前記演算部への動作クロックの供給を制御し、前記レジスタ部の設定値に基づいて前記ブロック部ごとに前記演算部への動作クロックの供給を停止する演算部用クロック制御部と、
前記記憶部への動作クロックの供給を制御し、前記レジスタ部の設定値に基づいて前記ブロック部ごとに前記記憶部への動作クロックの供給を停止する記憶部用クロック制御部とを備えたことを特徴とする信号処理プロセッサ。
【請求項４】
処理内容を示すプログラムの命令を入力し、この命令に従って演算対象データの演算処理を行う演算部と、前記演算部の演算結果を記憶する記憶部とを有する複数のプロセッサエレメントを備えた信号処理プロセッサにおいて、
前記複数のプロセッサエレメントを有する複数のブロック部と、
前記ブロック部ごとの動作可否を示す値が設定されるレジスタ部と、
前記プログラムの内容を解釈し、命令種の切り替わり、ウェイト動作及びデータ入出力時に発生する前記演算部と前記記憶部の非動作状態を検出し、前記プログラムの命令中に前記演算部及び前記記憶部の非動作命令を生成する制御部であって、処理時間が予め定められた時間よりも短い場合には、前記プログラムの命令の処理時間が所定値に調整されるように追加的に非動作命令を挿入するとともに、前記レジスタ部に前記ブロック部ごとの動作可否を示す値を設定する制御部と、
前記プログラムの命令中の非動作命令をデコードするデコード部と、
前記ブロック部ごとに設けられ、前記演算部及び前記記憶部への動作クロックの供給を制御し、前記レジスタ部の設定値及び前記デコード部によりデコードされた前記非動作命令に基づいて前記ブロック部ごとの前記演算部及び前記記憶部への動作クロックの供給を停止するクロック制御部とを備えたことを特徴とする信号処理プロセッサ。
【請求項５】
処理内容を示すプログラムの命令を入力し、この命令に従って演算対象データの演算処理を行う演算部と、前記演算部の演算結果を記憶する記憶部とを有する複数のプロセッサエレメントを備えた信号処理プロセッサにおいて、
前記複数のプロセッサエレメントを有する複数のブロック部と、
前記ブロック部ごとの動作可否を示す値が設定されるレジスタ部と、
前記プログラムの内容を解釈し、命令種の切り替わり、ウェイト動作及びデータ入出力時に発生する前記演算部と前記記憶部の非動作状態を検出し、前記プログラムの命令中に前記演算部及び前記記憶部の非動作命令を生成する制御部であって、処理時間が予め定められた時間よりも短い場合には、前記プログラムの命令の処理時間が所定値に調整されるように追加的に非動作命令を挿入し、前記プログラムの命令中の非動作命令に応じて設定される前記演算部及び前記記憶部の非動作を示す値と前記ブロック部ごとの動作可否を示す値を前記レジスタ部に設定する制御部と、
前記ブロック部ごとに設けられ、前記演算部及び前記記憶部への動作クロックの供給を制御し、前記レジスタ部の設定値に基づいて前記ブロック部ごとの前記演算部及び前記記憶部への動作クロックの供給を停止するクロック制御部とを備えたことを特徴とする信号処理プロセッサ。
【請求項６】
クロック制御部は、外部からクロック制御が不要なプロセッサエレメントで構成されたブロック部以外のブロック部ごとに設けたことを特徴とする請求項４または請求項５記載の信号処理プロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、デジタルスチルカメラ、デジタルビデオカメラ、画像描画装置や音声処理装置等のデータ演算処理に用いられる信号処理プロセッサに関するものである。
【背景技術】
【０００２】
四則演算や論理演算を行うＡＬＵ（Arithmetic Logic Unit）と、ＡＬＵからの演算結果を一時記憶するメモリ等から構成されるプロセッサエレメント（以下、ＰＥと称す）を複数有するＳＩＭＤ（Single Instruction Multiple Data）装置は、単一命令で多数のデータの処理が可能であり、昨今の例えば動画や音声等の高速処理に用いられている。しかしながら、デジタルカメラを例に挙げると、多画素化に伴いＳＩＭＤ装置に搭載されるＰＥ数が増加し、より高速化が図られている一方で消費電力が増大している。
【０００３】
上述のような消費電力の低減を図る従来の技術としては、例えば特許文献１に開示されるプロセッサがある。このプロセッサでは、複数のＡＬＵについてそれぞれ動作を停止させるか否かを表す値が格納される命令マスクレジスタを備え、命令マスクレジスタの値に基づいて一部のＡＬＵに対するクロック信号の供給を停止させることにより、無駄な消費電力の低減を図っている。
【０００４】
【特許文献１】特開２００６−２９３７４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来の信号処理プロセッサは、上記のように構成されていたので、クロック制御に用いる命令マスクレジスタに格納する値を、使用者あるいはコンパイラ等によりその演算内容に応じて予め設定しておく必要がある。このため、演算処理の前段階での操作に時間を要する。また、演算内容に応じて命令マスクレジスタへ値を格納する処理や命令マスクレジスタを用いたクロック制御を行うプログラムを追加する必要があり、プログラムが肥大化するという課題があった。
【０００６】
さらに、信号プロセッサ内のメモリは、演算処理における演算結果を一時的に保持し、最終的な演算結果を格納する。このように演算処理で頻繁に利用され、その消費電力が多いにも拘わらず、メモリはクロック信号による動作の停止機構を有していないため、消費電力を下げることができない。
【０００７】
この発明は、上記のような課題を解決するためになされたもので、簡易な構成で消費電力の低減を図ることができる信号処理プロセッサを得ることを目的とする。
【課題を解決するための手段】
【０００８】
この発明に係る信号処理プロセッサは、処理内容を示すプログラムの命令を入力し、この命令に従って演算対象データの演算処理を行う演算部と、演算部の演算結果を記憶する記憶部とを有する複数のプロセッサエレメントを備えた信号処理プロセッサにおいて、プログラムの内容を解釈し、命令種の切り替わり、ウェイト動作及びデータ入出力時に発生する演算部と記憶部の非動作状態を検出し、プログラムの命令中に演算部及び記憶部の非動作命令を生成する制御部であって、処理時間が予め定められた時間よりも短い場合には、プログラムの命令の処理時間が所定値に調整されるように追加的に非動作命令を挿入する制御部と、プログラムの命令中の非動作命令をデコードするデコード部と、演算部への動作クロックの供給を制御し、デコード部でデコードされた非動作命令に基づいて演算部への動作クロックの供給を停止する演算部用クロック制御部と、記憶部への動作クロックの供給を制御し、デコード部でデコードされた非動作命令に基づいて記憶部への動作クロックの供給を停止する記憶部用クロック制御部とを備えるものである。
【発明の効果】
【０００９】
この発明によれば、プログラムの内容に応じてプログラムの命令中に演算部及び記憶部の非動作命令を挿入する制御部と、プログラムの命令中の非動作命令をデコードするデコード部と、演算部への動作クロックの供給を制御し、デコード部でデコードされた非動作命令に基づいて演算部への動作クロックの供給を停止する演算部用クロック制御部と、記憶部への動作クロックの供給を制御し、デコード部でデコードされた非動作命令に基づいて記憶部への動作クロックの供給を停止する記憶部用クロック制御部とを備えたので、制御部がプログラムの内容に応じてプログラムの命令中に演算部及び記憶部の非動作命令を挿入することから、従来のように使用者あるいはコンパイラ等により演算内容に応じてクロック制御用の値をレジスタに設定しておく必要がない。また、プログラムの内容を特に変更する必要もないことから、プログラムの肥大化を抑制することができる。これらに加え、演算部及び記憶部の双方の動作可否を制御することができることから、簡易な構成で消費電力の低減を図ることができるという効果がある。
【発明を実施するための最良の形態】
【００１０】
実施の形態１．
図１は、この発明の実施の形態１による信号処理プロセッサの構成を示すブロック図である。図１において、プログラム１は、実施の形態１の信号処理プロセッサによる演算処理内容を示すプログラムであり、制御部２に読み込まれる。制御部２は、実施の形態１の信号処理プロセッサ全体の動作を制御する構成要素であり、プログラム１の内容を解釈して機械語等である命令コード（以下、単に命令と称す）をデコーダ３及び複数のＰＥ８−１，８−２，・・・，８−Ｎに供給する。デコーダ（デコード部）３は、制御部３から出力される命令のうち、非動作状態を示すＮＯ−ＯＰＥＲＡＴＩＯＮコード（以下、ＮＯＰコードと称す）をデコードする。
【００１１】
クロック制御部４（演算部用クロック制御部）は、クロック発生部５で発生したクロック信号をＡＬＵ用のクロック信号ＡＣＬＫとしてＡＬＵ（演算部）９−１，９−２，・・・，９−Ｎへ供給する構成要素であり、デコーダ３のデコード結果に応じてクロック信号ＡＣＬＫの供給をオン、オフ制御する。クロック制御部（記憶部用クロック制御部）６は、クロック発生部５で発生したクロック信号をメモリ用のクロック信号ＭＣＬＫとしてメモリ（記憶部）１０−１，１０−２，・・・，１０−Ｎへ供給する構成要素であり、デコーダ３のデコード結果に応じてクロック信号ＭＣＬＫの供給をオン、オフ制御する。バッファ７−１，７−２，・・・，７−Ｎは、シフトレジスタ等からなる。入力データは、バッファ７−１，７−２，・・・，７−Ｎにシリアルに入力されてパラレル変換された後、ＰＥ８−１，８−２，・・・，８−Ｎへそれぞれ入力される。
【００１２】
ＰＥ８−１，８−２，・・・，８−Ｎは、１次元に配列されたＳＩＭＤアレイであり、ＡＬＵ９−１，９−２，・・・，９−Ｎ及びメモリ１０−１，１０−２，・・・，１０−Ｎを備える。ＡＬＵ９−１，９−２，・・・，９−Ｎは、クロック制御部４からクロック信号ＡＣＬＫの供給を受けて動作し、算術演算や論理演算を実行する。メモリ１０−１，１０−２，・・・，１０−Ｎは、バッファ７−１，７−２，・・・，７−ＮからのデータやＡＬＵの途中演算結果等を格納するメモリ若しくはレジスタからなり、クロック制御部６からクロック信号ＭＣＬＫの供給を受けて動作する。なお、ＰＥを構成するＡＬＵとメモリは、ＰＥ内部で相互若しくはループ状に接続されており（図示せず）、ＡＬＵでの演算結果をメモリに収納したり、メモリ内のデータをＡＬＵで演算することが可能である。
【００１３】
また、ＰＥ８−１，８−２，・・・，８−Ｎのそれぞれには、制御部２からの命令制御線（不図示）が接続されており、この命令制御線を介して入力された命令に基づいて所望の演算を実行する。ＰＥで処理されたデータは、出力用のバッファ１１−１，１１−２，・・・，１１−Ｎに出力されてシリアル変換された後、出力データを得ることができる。
なお、ＰＥ等の個数Ｎは、実施の形態１による信号処理プロセッサを、例えばデジタルカメラに適応する場合、その水平方向の画素数分に相当し、３００万画素記録であればＮ＝２０４８程度となる。
【００１４】
次に動作について説明する。
制御部２は、プログラム１の内容を解釈し、プログラム１中の命令種（加算や論理積等）の切り替わりや、ウェイト動作、データ入出力等に発生するＡＬＵとメモリの非動作状態（プログラム１の処理中に発生するＡＬＵとメモリの非動作状態）をそれぞれ検出して、この非動作状態を示すＮＯＰコードを生成する。具体的には、上述したプログラム１の内容に応じて、ＡＬＵの非動作状態を示すＮＯＰコードと、メモリのリード若しくはライト動作以外の非動作状態を示すＮＯＰコードが生成される。制御部２は、処理サイクル単位で上記ＮＯＰコードを、プログラム１を構成する命令中に挿入する。
【００１５】
一方、データ処理対象となる入力データは、不図示の入力装置（デジタルカメラであれば、ＣＣＤセンサ等）を用いてバッファ７−１，７−２，・・・，７−Ｎに格納される。この後、入力データを構成する１データが１つのＰＥで処理されるように、各バッファ７−１，７−２，・・・，７−Ｎから出力されたデータが、対応するＰＥ８−１，８−２，・・・，８−Ｎにそれぞれ入力される。ＰＥ８−１，８−２，・・・，８−Ｎに入力データが入力された時点で、制御部２は、プログラム１を構成する命令（上述したＮＯＰコードが挿入された命令を含む）をデコーダ３及びＰＥ８−１，８−２，・・・，８−Ｎに出力する。
【００１６】
各ＰＥ８−１，８−２，・・・，８−Ｎは、制御部２から入力した命令に従ってＡＬＵ９−１，９−２，・・・，９−Ｎに入力データについての演算処理を実行させる。また、メモリ１０−１，１０−２，・・・，１０−Ｎは、制御部２からメモリ動作命令を受けると、対応するＡＬＵ９−１，９−２，・・・，９−Ｎの演算結果を一時保持する。
【００１７】
このとき、ＰＥ８−１，８−２，・・・，８−ＮのＡＬＵ９−１，９−２，・・・，９−Ｎは、クロック制御部４から入力されたクロック信号ＡＣＬＫを動作クロックとして動作する。また、メモリ１０−１，１０−２，・・・，１０−Ｎは、クロック制御部６から入力されたクロック信号ＭＣＬＫを動作クロックとして動作する。つまり、クロック信号ＡＣＬＫの供給が停止している間、ＡＬＵはその動作を停止し、クロック信号ＭＣＬＫの供給が停止していれば、メモリが動作を停止することになる。
【００１８】
ここで、デコーダ３は、制御部２からの命令中にＮＯＰコードを検出すると、検出したＮＯＰコードをデコードして非動作命令とし、この命令中で規定された非動作対象に応じてクロック制御部４，６の少なくとも一方に出力する。クロック制御部４，６は、デコーダ３からの非動作命令に応じて、クロック信号ＡＣＬＫ，ＭＣＬＫの供給、停止を制御（オン、オフ制御）する。このようにクロック信号ＡＣＬＫ，ＭＣＬＫの供給をオン、オフ制御することで、ＡＬＵとメモリが動作と非動作を繰り返すことにより、制御部２からの命令に従った所望の演算処理が実行される。
【００１９】
プログラム１を構成する全ての命令の処理が終了すると、ＰＥ８−１，８−２，・・・，８−Ｎ内部の演算結果データ（多くの場合はメモリ１０−１，１０−２，・・・，１０−Ｎに収納されている）を、出力用のバッファ１１−１，１１−２，・・・，１１−Ｎに出力し、シリアルデータに変換しながら出力データを得る。
【００２０】
このように、処理用のプログラム１からＡＬＵ及びメモリの処理中の非動作状態を検出し、この検出情報を基にしてＡＬＵ又はメモリの動作クロックを停止する機構を設けたことで、消費電力が少ないＳＩＭＤ型の信号処理プロセッサを得ることができる。また、ＰＥへの命令中に挿入したＮＯＰコードを抜き出してクロック制御することから、使用者が意識することなく低消費電力化が可能である。これにより、プログラムを開発する際に消費電力のための余分な作業（従来のレジスタ設定）を行う必要がない。さらには、プロセッサの処理速度に影響を及ぼさずに消費電力を下げることができる効果もある。
【００２１】
なお、多くの場合、最終的に得る演算が単一の乗算若しくは加算で終了することはほとんどありえず、それらの多数の組み合わせによって行われる。そこで、ＡＬＵ９−１，９−２，・・・，９−Ｎの各演算結果として得られた値を、対応するメモリ１０−１，１０−２，・・・，１０−Ｎに収納しておき、さらに演算処理で使用する場合にはメモリ１０−１，１０−２，・・・，１０−Ｎから、対応するＡＬＵ９−１，９−２，・・・，９−Ｎにフィードバックして所望の演算結果が得られるまで上記動作を繰り返す。
【００２２】
このように、演算命令によって同一構成のＰＥで乗算と加算が実行可能な構成としたことから、少なくとも複数の演算を同一の構成で実現できるため、汎用的かつプログラマブルな信号処理プロセッサを得ることができる。また、回路規模の大きい専用演算回路（例えば、乗算器）を設けることなく、その演算が可能なため回路規模を小さくすることができる。これにより、低消費電力化を図ることができる上、複数の信号処理プロセッサを用いてのアレイ化に適した信号処理プロセッサを構成することも可能である。
【００２３】
次にプログラム１の命令中にＮＯＰコードを挿入する処理の詳細について説明する。
図２は、ＮＯＰコードの挿入処理の一例を示す図であり、命令Ａ及びこれにＮＯＰコードを挿入した命令Ｂの各処理時間を示している。図２に示すように、命令Ａは、ＮＯＰコード挿入前の命令であり、この命令ＡをＰＥで処理するには処理時間ＴＡが必要となる。制御部２は、この命令ＡにＮＯＰコードを挿入するにあたり、命令ＡにＮＯＰコードを挿入した命令Ｂの処理時間を所定値ＴＢで規定する。
【００２４】
この所定値ＴＢは、実施の形態１の信号処理プロセッサによるプログラム処理で許容される上限値を基準として、処理すべきデータ或いは組み込まれた装置により規定されるべき値である。例えば、デジタルカメラの場合は３０ｆｐｓで撮像すると、ＴＢ＝３３．３ｍｓとなる。図２に示すように所定時間ＴＢ＞ＴＡの場合、制御部２は、処理時間ＴＡが所定時間ＴＢとなるようにＮＯＰコードを挿入する。つまり、予め定めた所定時間ＴＢよりも命令Ａが早く演算処理が終了する場合、制御部２は、命令Ａの処理時間が少なくともＴＢとなるようにＮＯＰコードを挿入する。このＮＯＰコードが挿入された命令Ｂを、図１に示した信号処理プロセッサでデータ処理する。
【００２５】
このように、制御部２が、ＮＯＰコードを挿入した命令の処理時間の所定値を規定し、その時間で処理されるようにＮＯＰコードを挿入することにより、消費電力（ピーク消費電力）を下げることができる。なお、上述の例では、説明の簡単のため命令の処理時間を例としたが、信号処理プロセッサの出力を基準として所定位置ＴＢを設定してもよく、その場合は予めデータの入出力時間を測定しておき、その時間から逆算して命令にＮＯＰコードを挿入すればよい。
【００２６】
以上のように、この実施の形態１によれば、プログラム１の内容に応じてプログラム１の命令中にＡＬＵ及びメモリのＮＯＰコードを挿入する制御部２と、プログラム１の命令中のＮＯＰコードをデコードするデコーダ３と、ＡＬＵへの動作クロックの供給を制御し、デコーダ３によりデコードされたＮＯＰコードに基づいてＡＬＵへの動作クロックの供給を停止するクロック制御部４と、メモリへの動作クロックの供給を制御し、デコーダ３によりデコードされたＮＯＰコードに基づいてメモリへの動作クロックの供給を停止するクロック制御部６とを備えたので、制御部２がプログラム１の内容に応じてプログラム１の命令中にＡＬＵ及びメモリのＮＯＰコードを挿入することから、従来のように使用者あるいはコンパイラ等により演算内容に応じてクロック制御用の値を命令マスクレジスタに設定しておく必要がない。また、プログラム１の内容を特に変更する必要もないことから、プログラム１の肥大化を抑制することができる。これらに加え、ＡＬＵ及びメモリの双方の動作可否を制御することができることから、簡易な構成で消費電力の低減を図ることができる。
【００２７】
実施の形態２．
図３は、この発明の実施の形態２による信号処理プロセッサの構成を示すブロック図であり、図１と同一若しくはこれに相当する構成要素には同一符号を付し説明を省略する。図３において、ブロック（ブロック部）Ａ，Ｂは、ＰＥ数Ｎをブロック単位で分割している。ここでは、ブロックＡはＰＥ８−１，８−２を含む２以上のＰＥを有し、ブロックＢは、ブロックＡに配置されなかった残りのＰＥ８−ＮまでのＰＥを有する。
【００２８】
分割数（ブロックごとのＰＥ数）は、処理すべきデータの数に応じて任意に決定する。例えば、デジタルカメラの場合、撮像確認用と記録用で処理すべき画素数が異なる。３００万画素のカメラであれば、ブロックＡにはＶＧＡ表示デバイスに合わせてＰＥ数を６４０とし、ブロックＢにはＰＥ数を２０４８−６４０＝１４０８とする。
【００２９】
レジスタ（レジスタ部）１２は、制御部２及びクロック制御部４ａ，６ａに接続しており、制御部２からブロックＡとブロックＢの各々の動作を示す値が設定される。例えば、プログラム１にブロックＡとブロックＢの動作可否を設定しておき、制御部２が、プログラム１の内容を解釈してブロックＡとブロックＢの各々の動作を示す値をレジスタ１２に設定する。
【００３０】
クロック制御部（演算部用クロック制御部）４ａは、レジスタ１２に設定されているブロックＡ，Ｂの動作を示す値と、デコーダ３から入力したＡＬＵに関するＮＯＰコードのデコード結果との論理積を算出し、この算出結果に応じてブロックＡ内のＡＬＵの動作クロックであるクロック信号ＡＣＬＫ＿Ａの供給と、ブロックＢ内のＡＬＵの動作クロックであるクロック信号ＡＣＬＫ＿Ｂの供給とのオン、オフ制御を行う。
【００３１】
クロック制御部（記憶部用クロック制御部）６ａは、レジスタ１２に設定されているブロックＡ，Ｂの動作を示す値と、デコーダ３から入力したメモリに関するＮＯＰコードのデコード結果との論理積を算出し、この算出結果に応じてブロックＡ内のメモリの動作クロックであるクロック信号ＭＣＬＫ＿Ａの供給と、ブロックＢ内のメモリの動作クロックであるクロック信号ＭＣＬＫ＿Ｂの供給とのオン、オフ制御を行う。
【００３２】
このように論理積をとることにより、レジスタ１２の設定値が動作可を示す値（例えば、デジタル値１）であり、かつＡＬＵ又はメモリが動作状態である場合のみ、ブロック内のＡＬＵとメモリが動作する。一方、レジスタ１２の設定値が動作否を示す値（例えば、デジタル値０）であるか、ＡＬＵ又はメモリが非動作状態であると、ブロック内のＡＬＵとメモリが動作を停止する。
【００３３】
例えば、ブロックＢの処理を行う必要がない場合、制御部２が、レジスタ１２のブロックＢに対応するビットに非動作を示す値０を設定し、レジスタ１２のブロックＡに対応するビットに動作を示す値１を設定する。クロック制御部４ａ，６ａは、レジスタ１２の設定値から上記論理積を算出し、この算出結果に応じてクロック制御部４ａがブロックＢへのクロック信号ＡＣＬＫ＿Ｂの供給を停止し、クロック制御部６ａがブロックＢへのクロック信号ＭＣＬＫ＿Ｂの供給を停止する。これにより、ブロックＡ内のＡＬＵとメモリは動作するが、ブロックＢ内のＡＬＵとメモリは動作が停止した状態となる。この状態から全てのブロックのＰＥを動作させる場合は、レジスタ１２のブロックＢに対応するビットに動作を示す値１を設定すればよい。
【００３４】
また、この実施の形態２による信号処理プロセッサは、下記の構成としてもよい。
図４は、実施の形態２による信号処理プロセッサの他の構成を示すブロック図である。図４に示す信号処理プロセッサではデコーダ３を有さず、制御部２ａがプログラム１の命令中に挿入したＮＯＰコードをデコードし、このデコード結果に応じて、ブロックＡ，Ｂの動作を示す値に加え、ＡＬＵとメモリの非動作を示す値をレジスタ１２に設定する。クロック制御部４ａ，６ａは、レジスタ１２の設定値のみをモニタしており、レジスタ１２の設定値に応じてブロックごとにクロック信号の供給をオン、オフ制御する。このように構成することで、デコーダ３が省略された、より簡易な構成で消費電力の低減を図ることができる。
【００３５】
以上のように、この実施の形態２によれば、複数のＰＥを有するブロックＡ，Ｂと、ブロックごとの動作可否を示す値が設定されるレジスタ１２と、プログラム１の内容に応じて、プログラム１の命令中にＡＬＵ及びメモリのＮＯＰコードを挿入するとともに、レジスタ１２にブロックごとの動作可否を示す値を設定する制御部２と、プログラム１の命令中のＮＯＰコードをデコードするデコーダ３と、ＡＬＵへの動作クロックの供給を制御し、レジスタ１２の設定値及びデコーダ３でデコードされたＮＯＰコードに基づいてブロックごとにＡＬＵへの動作クロックの供給を停止するクロック制御部４ａと、メモリへの動作クロックの供給を制御し、レジスタ１２の設定値及びデコーダ３でデコードされたＮＯＰコードに基づいてブロックごとにメモリへの動作クロックの供給を停止するクロック制御部６ａとを備えたので、ブロック単位でクロック信号の供給を停止できることから、処理に応じてより消費電力を低減することができる。
【００３６】
なお、上記実施の形態２では、２つのブロックを設けた場合を示したが、ブロック数は３つ以上で構成してもよい。この場合、クロック制御部４ａ，６ａから各ブロック内のＡＬＵ及びメモリにクロック信号が供給される。また、ブロックごとに分割するＰＥ数は、上記実施の形態２で示した場合に縛られるものではなく、処理データ数に応じて決定すればよい。
【００３７】
また、上記実施の形態２では、ブロックＡ，Ｂ内のＡＬＵに動作クロックを供給するクロック制御部４ａと、ブロックＡ，Ｂ内のメモリに動作クロックを供給するクロック制御部６ａとを設けた構成を示したが、ＡＬＵとメモリへの動作クロック供給を一本化してクロック制御部を１つとしてもよい。
【００３８】
さらに、本発明は、ブロックごとにＡＬＵとメモリに動作クロックを供給するクロック制御部を設けた構成（ブロックごとにクロック制御部を設けた構成）としても構わない。この場合、上記実施の形態１、２で示したデコーダ３を有する構成でブロックごとにクロック制御部を設ける態様と、図４で示したデコーダ３を有さない構成でブロックごとにクロック制御部を設ける態様が考えられる。
図５は、実施の形態２による信号処理プロセッサの他の構成を示すブロック図であり、ブロックごとにクロック制御部を設けた構成の一例を示している。図５に示す信号処理プロセッサでは、図４と同様にデコーダ３を有さず、制御部２ａがプログラム１の命令中に挿入したＮＯＰコードをデコードし、このデコード結果に応じて、ブロックＢの動作を示す値に加え、ＡＬＵとメモリの非動作を示す値をレジスタ１２に設定する。
【００３９】
一方、クロック制御部４ａ，６ａは、レジスタ１２の設定値のみをモニタしており、レジスタ１２の設定値に応じてブロックＡを除く他のブロック（ブロックＢと不図示のブロックＡを除く他のブロック）ごとにクロック信号の供給をオン、オフ制御する。ブロックＡは、外部からクロック制御が不要な動作最小単位の構成を有する基本ブロック（外部からクロック制御が不要なＰＥから構成されたブロック）であり、制御部２ａからの命令で内部のＰＥが動作する。
【００４０】
このようなブロックＡとしては、例えば上述したデジタルカメラの撮像確認用の処理を行うブロックが考えられる。このブロックでは、デジタルカメラの処理において常に動作し続ける。そこで、このブロックをクロック制御が不要な動作最小単位の構成を有する基本ブロックとして図５に示すようにクロック制御部を設けない。このようにすることで、より簡易な構成、すなわち回路規模が少ない構成で低消費電力化を図ることができる。
【図面の簡単な説明】
【００４１】
【図１】この発明の実施の形態１による信号処理プロセッサの構成を示すブロック図である。
【図２】ＮＯＰコードの挿入処理の一例を示す図である。
【図３】この発明の実施の形態２による信号処理プロセッサの構成を示すブロック図である。
【図４】実施の形態２による信号処理プロセッサの他の構成を示すブロック図である。
【図５】実施の形態２による信号処理プロセッサの他の構成を示すブロック図である。
【符号の説明】
【００４２】
１  プログラム、２，２ａ  制御部、３  デコーダ（デコード部）、４，４ａ，６，６ａ  クロック制御部（演算部用クロック制御部、記憶部用クロック制御部）、５  クロック発生部、７−１，７−２，・・・，７−Ｎ，１１−１，１１−２，・・・，１１−Ｎ  バッファ、８−１，８−２，・・・，８−Ｎ  ＰＥ（プロセッサエレメント）、９−１，９−２，・・・，９−Ｎ  ＡＬＵ（演算部）、１０−１，１０−２，・・・，１０−Ｎ  メモリ（記憶部）、１２  レジスタ（レジスタ部）。
【図１】
0005489402.tif 000002
【図２】
0005489402.tif 000003
【図３】
0005489402.tif 000004
【図４】
0005489402.tif 000005
【図５】
0005489402.tif 000006