(57)【特許請求の範囲】
【請求項１】
パイプライン接続され、データに対して演算処理を行う複数の演算装置と、
システムクロック信号に同期して動作し、外部からデータの到着を知らせるデータ通知信号が入力されると、複数の前記演算装置を制御する処理制御信号を生成し出力する処理制御装置と、
前記システムクロック信号に同期して動作し、前記処理制御信号が入力されると、前記演算装置へのクロック供給を制御するクロック制御信号を生成し出力するクロック制御信号生成装置と、を備え、
前記演算装置は、
前記システムクロック信号に同期して動作し、前記クロック制御信号が入力されると、前記クロック制御信号に基づいて、前記演算装置を動作させるゲーテッドクロック信号を生成し出力するクロックゲーティング回路と、
前記ゲーテッドクロック信号に同期して動作し、前記データおよび前記処理制御信号が入力されると、前記データに対して前記処理制御信号が指示する処理を行い、処理後のデータおよび前記処理制御信号を後段に接続された前記演算装置へ出力する演算ブロックと、
前記クロック制御信号が入力されると、前記クロック制御信号を前記処理後のデータおよび前記処理制御信号と同期するように、後段に接続された前記演算装置へ出力する出力回路と、を備え、
前記クロック制御信号生成装置は、
第１のクロック制御信号と第２のクロック制御信号の２つの前記クロック制御信号を生成し、
前記第１のクロック制御信号は、
前記処理制御信号が処理の実行を示している場合は前記クロック供給を行う旨を示し、
前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示し、
前記第２のクロック制御信号は、
前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と異なっている場合は前記クロック供給を行う旨を示し、
前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と同じ場合、および、前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示すこと、
を特徴とする半導体集積回路装置。
【請求項２】
パイプライン接続され、データに対して演算処理を行う複数の演算装置と、
システムクロック信号に同期して動作し、外部からデータの到着を知らせるデータ通知信号が入力されると、複数の前記演算装置を制御する処理制御信号を生成し出力する処理制御装置と、
前記システムクロック信号に同期して動作し、前記処理制御信号が入力されると、前記演算装置へのクロック供給を制御するクロック制御信号を生成し出力するクロック制御信号生成装置と、を備え、
前記演算装置は、
前記システムクロック信号に同期して動作し、前記クロック制御信号が入力されると、前記クロック制御信号に基づいて、前記演算装置を動作させるゲーテッドクロック信号を生成し出力するクロックゲーティング回路と、
前記ゲーテッドクロック信号に同期して動作し、前記データおよび前記処理制御信号が入力されると、前記データに対して前記処理制御信号が指示する処理を行い、処理後のデータおよび前記処理制御信号を後段に接続された前記演算装置へ出力する演算ブロックと、
前記クロック制御信号が入力されると、前記クロック制御信号を前記処理後のデータおよび前記処理制御信号と同期するように、後段に接続された前記演算装置へ出力する出力回路と、を備え、
前記クロック制御信号生成装置は、第１のクロック制御信号と第２のクロック制御信号の２つの前記クロック制御信号を生成し、
前記第１のクロック制御信号は、
前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と異なっている場合、および、
前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と同じであり、かつ、前記データの値が直前に処理を実行したデータの値と異なっている場合は前記クロック供給を行う旨を示し、
前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と同じであり、かつ、前記データの値が直前に処理を実行したデータの値と同じ場合、および、
前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示し、
前記第２のクロック制御信号は、
前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と異なっている場合は前記クロック供給を行う旨を示し、
前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と同じ場合、および、
前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示すこと、
を特徴とする半導体集積回路装置。
【請求項３】
前記出力回路は、前記クロック制御信号を前記演算ブロックでの処理時間分遅延して、後段に接続された前記演算装置へ出力する遅延回路であること、
を特徴とする請求項１または２に記載の半導体集積回路装置。
【請求項４】
前記クロックゲーティング回路は、
前記第１のクロック制御信号がクロック供給を行う旨を示す場合には、第１のゲーテッドクロック信号を出力し、前記第１のクロック制御信号がクロック供給を行わない旨を示す場合には、前記第１のゲーテッドクロック信号を出力せず、
前記第２のクロック制御信号がクロック供給を行う旨を示す場合には、第２のゲーテッドクロック信号を出力し、前記第２のクロック制御信号がクロック供給を行わない旨を示す場合には、前記第２のゲーテッドクロック信号を出力せず、
前記演算ブロックは、
前記処理後のデータを前記第１のゲーテッドクロック信号に同期して出力し、
前記処理制御信号を前記第２のゲーテッドクロック信号に同期して出力すること、
を特徴とする請求項１〜３のいずれか一項に記載の半導体集積回路装置。
【請求項５】
前記処理制御信号は、前記演算装置での処理の実行の有無を示す実行制御信号と、前記演算装置の処理を特定する処理識別子と、を含み、
前記演算ブロックは、前記処理識別子を前記演算ブロックで実行可能な形態に変換する変換回路をさらに備えること、
を特徴とする請求項１〜４のいずれか一項に記載の半導体集積回路装置。
【請求項６】
パイプライン接続され、データに対して演算処理を行う複数の演算装置と、
システムクロック信号に同期して動作し、外部からデータの到着を知らせるデータ通知信号が入力されると、複数の前記演算装置を制御する処理制御信号を生成し出力する処理制御装置と、
前記システムクロック信号に同期して動作し、前記処理制御信号が入力されると、前記演算装置へのクロック供給を制御するクロック制御信号を生成し出力するクロック制御信号生成装置と、を備え、
前記演算装置は、
前記システムクロック信号に同期して動作し、前記クロック制御信号が入力されると、前記クロック制御信号に基づいて、前記演算装置を動作させるゲーテッドクロック信号を生成し出力するクロックゲーティング回路と、
前記ゲーテッドクロック信号に同期して動作し、前記データおよび前記処理制御信号が入力されると、前記データに対して前記処理制御信号が指示する処理を行い、処理後のデータおよび前記処理制御信号を後段に接続された前記演算装置へ出力する演算ブロックと、
前記クロック制御信号が入力されると、前記クロック制御信号を前記処理後のデータおよび前記処理制御信号と同期するように、後段に接続された前記演算装置へ出力する出力回路と、を備え
前記処理制御信号は、
前記演算装置での処理の実行の有無を示す実行制御信号と、前記演算装置の処理を特定する処理識別子と、を含み、
前記演算ブロックは、
前記処理識別子を前記演算ブロックで実行可能な形態に変換する変換回路をさらに備えること、
を特徴とする半導体集積回路装置。
【請求項７】
前記出力回路は、前記クロック制御信号を前記演算ブロックでの処理時間分遅延して、後段に接続された前記演算装置へ出力する遅延回路であること、
を特徴とする請求項６に記載の半導体集積回路装置。
【請求項８】
前記クロック制御信号は、
前記処理制御信号が処理の実行を示している場合は前記クロック供給を行う旨を示し、
前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示すこと、
を特徴とする請求項６または７に記載の半導体集積回路装置。
【請求項９】
前記クロックゲーティング回路は、
前記クロック制御信号がクロック供給を行う旨を示す場合には、ゲーテッドクロック信号を出力し、
前記クロック制御信号がクロック供給を行わない旨を示す場合には、ゲーテッドクロック信号を出力しないこと、
を特徴とする請求項８に記載の半導体集積回路装置。
【請求項１０】
前記変換回路がメモリで構成され、前記処理識別子がメモリのアドレスポインタであることを特徴とする請求項５〜９のいずれか一項に記載の半導体集積回路装置。
【請求項１１】
前記変換回路が複数のレジスタで構成され、前記処理識別子がマルチプレクサのセレクト信号であることを特徴とする請求項５〜９のいずれか一項に記載の半導体集積回路装置。
【請求項１２】
パイプライン接続され、データに対して演算処理を行う複数の演算装置と、システムクロック信号に同期して動作し、外部からデータの到着を知らせるデータ通知信号が入力されると、複数の前記演算装置を制御する処理制御信号を生成し出力する処理制御装置と、前記システムクロック信号に同期して動作し、前記処理制御信号が入力されると、前記演算装置へのクロック供給を制御するクロック制御信号を生成し出力するクロック制御信号生成装置と、を備え、前記演算装置は、前記システムクロック信号に同期して動作し、前記クロック制御信号が入力されると、前記クロック制御信号に基づいて、前記演算装置を動作させるゲーテッドクロック信号を生成し出力するクロックゲーティング回路と、前記ゲーテッドクロック信号に同期して動作し、前記データおよび前記処理制御信号が入力されると、前記データに対して前記処理制御信号が指示する処理を行い、処理後のデータおよび前記処理制御信号を後段に接続された前記演算装置へ出力する演算ブロックと、前記クロック制御信号が入力されると、前記クロック制御信号を前記処理後のデータおよび前記処理制御信号と同期して、後段に接続された前記演算装置へ出力する出力回路と、を備える半導体集積回路装置のクロック制御方法において、
前記クロック制御信号生成装置が、第１のクロック制御信号を出力するステップと、
前記クロック制御信号生成装置が、第２のクロック制御信号を出力するステップと、を含み、
前記第１のクロック制御信号は、
前記処理制御信号が処理の実行を示している場合は前記クロック供給を行う旨を示し、
前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示し、
前記第２のクロック制御信号は、
前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と異なっている場合は前記クロック供給を行う旨を示し、
前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と同じ場合、および、前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示すこと、
を特徴とする半導体集積回路装置のクロック制御方法。
【請求項１３】
パイプライン接続され、データに対して演算処理を行う複数の演算装置と、システムクロック信号に同期して動作し、外部からデータの到着を知らせるデータ通知信号が入力されると、複数の前記演算装置を制御する処理制御信号を生成し出力する処理制御装置と、前記システムクロック信号に同期して動作し、前記処理制御信号が入力されると、前記演算装置へのクロック供給を制御するクロック制御信号を生成し出力するクロック制御信号生成装置と、を備え、前記演算装置は、前記システムクロック信号に同期して動作し、前記クロック制御信号が入力されると、前記クロック制御信号に基づいて、前記演算装置を動作させるゲーテッドクロック信号を生成し出力するクロックゲーティング回路と、前記ゲーテッドクロック信号に同期して動作し、前記データおよび前記処理制御信号が入力されると、前記データに対して前記処理制御信号が指示する処理を行い、処理後のデータおよび前記処理制御信号を後段に接続された前記演算装置へ出力する演算ブロックと、前記クロック制御信号が入力されると、前記クロック制御信号を前記処理後のデータおよび前記処理制御信号と同期して、後段に接続された前記演算装置へ出力する出力回路と、を備える半導体集積回路装置のクロック制御方法において、
前記クロック制御信号生成装置が、第１のクロック制御信号を出力するステップと、
前記クロック制御信号生成装置が、第２のクロック制御信号を出力するステップとを含み、
前記第１のクロック制御信号は、
前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と異なっている場合、および、
前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と同じであり、かつ、前記データの値が直前に処理を実行したデータの値と異なっている場合は前記クロック供給を行う旨を示し、
前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と同じであり、かつ、前記データの値が直前に処理を実行したデータの値と同じ場合、および、
前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示し、
前記第２のクロック制御信号は、
前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と異なっている場合は前記クロック供給を行う旨を示し、
前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と同じ場合、および、
前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示すこと、
を特徴とする半導体集積回路装置のクロック制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パイプライン構造を持ち、データに依存して動作する、低消費電力を実現する半導体集積回路装置及び半導体集積回路装置のクロック制御方法に関する。
【背景技術】
【０００２】
近年、半導体集積回路装置の高速化、大規模化に伴い、低消費電力化に対する要求が高まっている。半導体集積回路装置の消費電力削減手法の一つとして、クロックゲーティング技術が一般的である。
【０００３】
プロセッサに、クロックゲーティング技術を適用するものとして、特許文献１に記載の技術が挙げられる。特許文献１に記載の技術は、データに依存したクロックゲーティング機能を備えたプロセッサに関するものである。このプロセッサは、演算の開始を制御する処理制御装置、実際の処理を行う複数の演算装置、および、各演算装置へのクロック供給を行うクロック制御装置から構成される。各演算装置はパイプライン構造で接続される。各演算装置は、処理制御装置から演算起動信号を受けるとクロック制御装置へのクロック供給のリクエスト信号を有効にし、演算が終了するとリクエスト信号を無効とする。クロック制御装置は、各演算ユニットからのリクエスト信号が有効な場合のみ該当演算装置へクロック信号を供給する。
【０００４】
また、非特許文献１に記載の技術は、プロセッサのパイプライン構造に対するクロックゲーティング技術に関するものである。非特許文献１は、プロセッサのパイプライン構造の複数の段を一つのクロック供給の領域として、クロックゲーティング技術を適用する。各クロック供給領域へのクロック供給の是非は、実行命令の該当箇所をデコードし、判断する。例えば、プロセッサ内のクロック供給領域を、命令フェッチ部、命令デコード部、整数演算部、浮動小数点演算部、および、メモリ書き戻し部に分割した場合、浮動小数点演算命令を実行する際には、整数演算用の演算器に対するクロック供給を停止し、分岐命令を実行する際には、浮動小数点演算部やメモリ書き戻し部のクロック供給を停止する。
【０００５】
【特許文献１】特開平１１−１６７６２９号公報
【非特許文献１】Ｈａｉ  Ｌｉ，ｅｔ．ａｌ．著「Ｄｅｔｅｒｍｉｎｉｓｔｉｃ  Ｃｌｏｃｋ  Ｇａｔｉｎｇ  ｆｏｒ  Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ  Ｐｏｗｅｒ  Ｒｅｄｕｃｔｉｏｎ」，ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ＨＰＣＡ−９，２００３
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１記載の技術によれば、処理制御装置が全ての演算装置の制御を行うため回路が複雑となる。また、全ての演算装置に対して別々に処理の設定や開始を制御するため、各演算装置へのクロック供給の制御も別々に処理することとなり、各演算装置に別々のクロック制御装置が必要となる。このため、制御装置の複雑化や個数の増大によりプロセッサの消費電力が増大する。
【０００７】
また、非特許文献１記載の技術によれば、プロセッサ内の同一クロックの供給領域ごとにクロック制御のための処理、例えば、命令のデコードなどを行う必要がある。このため、パイプラインの段ごとなどの、細粒度にクロック供給の領域を分割するとかえってプロセッサの消費電力の増大を招く。
【０００８】
本発明は、上記に鑑みてなされたものであって、単純な構造の処理制御装置とクロック制御信号生成装置とにより、細粒度のクロック供給領域に対して消費電力削減の効果を発揮することのできる半導体集積回路装置および半導体集積回路装置のクロック制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明は、パイプライン接続され、データに対して演算処理を行う複数の演算装置と、システムクロック信号に同期して動作し、外部からデータの到着を知らせるデータ通知信号が入力されると、複数の前記演算装置を制御する処理制御信号を生成し出力する処理制御装置と、前記システムクロック信号に同期して動作し、前記処理制御信号が入力されると、前記演算装置へのクロック供給を制御するクロック制御信号を生成し出力するクロック制御信号生成装置と、を備え、前記演算装置は、前記システムクロック信号に同期して動作し、前記クロック制御信号が入力されると、前記クロック制御信号に基づいて、前記演算装置を動作させるゲーテッドクロック信号を生成し出力するクロックゲーティング回路と、前記ゲーテッドクロック信号に同期して動作し、前記データおよび前記処理制御信号が入力されると、前記データに対して前記処理制御信号が指示する処理を行い、処理後のデータおよび前記処理制御信号を後段に接続された前記演算装置へ出力する演算ブロックと、前記クロック制御信号が入力されると、前記クロック制御信号を前記処理後のデータおよび前記処理制御信号と同期するように、後段に接続された前記演算装置へ出力する出力回路と、を備え、前記クロック制御信号生成装置は、第１のクロック制御信号と第２のクロック制御信号の２つの前記クロック制御信号を生成し、前記第１のクロック制御信号は、前記処理制御信号が処理の実行を示している場合は前記クロック供給を行う旨を示し、前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示し、前記第２のクロック制御信号は、前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と異なっている場合は前記クロック供給を行う旨を示し、前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と同じ場合、および、前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示すこと、を特徴とする。
【００１０】
また、本発明は、パイプライン接続され、データに対して演算処理を行う複数の演算装置と、システムクロック信号に同期して動作し、外部からデータの到着を知らせるデータ通知信号が入力されると、複数の前記演算装置を制御する処理制御信号を生成し出力する処理制御装置と、前記システムクロック信号に同期して動作し、前記処理制御信号が入力されると、前記演算装置へのクロック供給を制御するクロック制御信号を生成し出力するクロック制御信号生成装置と、を備え、前記演算装置は、前記システムクロック信号に同期して動作し、前記クロック制御信号が入力されると、前記クロック制御信号に基づいて、前記演算装置を動作させるゲーテッドクロック信号を生成し出力するクロックゲーティング回路と、前記ゲーテッドクロック信号に同期して動作し、前記データおよび前記処理制御信号が入力されると、前記データに対して前記処理制御信号が指示する処理を行い、処理後のデータおよび前記処理制御信号を後段に接続された前記演算装置へ出力する演算ブロックと、前記クロック制御信号が入力されると、前記クロック制御信号を前記処理後のデータおよび前記処理制御信号と同期するように、後段に接続された前記演算装置へ出力する出力回路と、を備える半導体集積回路装置のクロック制御方法において、前記クロック制御信号生成装置が、第１のクロック制御信号を出力するステップと、前記クロック制御信号生成装置が、第２のクロック制御信号を出力するステップと、を含み、前記第１のクロック制御信号は、前記処理制御信号が処理の実行を示している場合は前記クロック供給を行う旨を示し、前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示し、前記第２のクロック制御信号は、前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と異なっている場合は前記クロック供給を行う旨を示し、前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と同じ場合、および、前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示すこと、を特徴とする。
【００１１】
また、本発明は、パイプライン接続され、データに対して演算処理を行う複数の演算装置と、システムクロック信号に同期して動作し、外部からデータの到着を知らせるデータ通知信号が入力されると、複数の前記演算装置を制御する処理制御信号を生成し出力する処理制御装置と、前記システムクロック信号に同期して動作し、前記処理制御信号が入力されると、前記演算装置へのクロック供給を制御するクロック制御信号を生成し出力するクロック制御信号生成装置と、を備え、前記演算装置は、前記システムクロック信号に同期して動作し、前記クロック制御信号が入力されると、前記クロック制御信号に基づいて、前記演算装置を動作させるゲーテッドクロック信号を生成し出力するクロックゲーティング回路と、前記ゲーテッドクロック信号に同期して動作し、前記データおよび前記処理制御信号が入力されると、前記データに対して前記処理制御信号が指示する処理を行い、処理後のデータおよび前記処理制御信号を後段に接続された前記演算装置へ出力する演算ブロックと、前記クロック制御信号が入力されると、前記クロック制御信号を前記処理後のデータおよび前記処理制御信号と同期するように、後段に接続された前記演算装置へ出力する出力回路と、を備える半導体集積回路装置のクロック制御方法において、前記クロック制御信号生成装置が、第１のクロック制御信号を出力するステップと、前記クロック制御信号生成装置が、第２のクロック制御信号を出力するステップとを含み、前記第１のクロック制御信号は、前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と異なっている場合、および、前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と同じであり、かつ、前記データの値が直前に処理を実行したデータの値と異なっている場合は前記クロック供給を行う旨を示し、前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と同じであり、かつ、前記データの値が直前に処理を実行したデータの値と同じ場合、および、前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示し、前記第２のクロック制御信号は、前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と異なっている場合は前記クロック供給を行う旨を示し、前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と同じ場合、および、前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示すこと、を特徴とする。
【発明の効果】
【００１２】
本発明によれば、処理制御装置が生成した処理制御信号からクロック制御信号生成装置が生成したクロック制御信号を、パイプラインを構成する演算装置のうち先頭の演算装置にのみ入力するだけで、各演算装置に対して独立したクロック供給の制御ができるので、１つのクロック制御信号生成装置による単純な構造で複数の演算装置全てを制御することができ、消費電力を削減することが可能となるという効果を奏する。
【発明を実施するための最良の形態】
【００１３】
以下に添付図面を参照して、この発明にかかる半導体集積回路装置および半導体集積回路装置のクロック制御方法の最良な実施の形態を詳細に説明する。
【００１４】
（第１の実施の形態）
図１は、本発明の第１の実施の形態にかかる半導体集積回路装置の構成を示すブロック図である。半導体集積回路装置１は、予め入力したプログラムに従い、入力データに対して演算処理を実行し、その結果を出力する。半導体集積回路装置１には、システムクロック、実際に処理を実行するデータ、および、データの到着（入力）を通知するデータ通知信号が入力されるとともに、半導体集積回路装置１からは、処理が実行されたデータ（演算結果）、後述する処理制御信号、および、後述するクロック制御信号Ｓ０が出力される。半導体集積回路装置１は、処理制御装置２、クロック制御信号生成装置３、および、演算装置４（４Ａ、４Ｂ、４Ｃ）を備えて構成されている。
【００１５】
処理制御装置２は、システムクロックに同期して動作し、データ通知信号が有効となると、あらかじめ入力したプログラムに従い、演算装置４（４Ａ、４Ｂ、４Ｃ）を制御する処理制御信号を生成し出力する。なお、システムクロックは、図示しないＰＬＬなどで作成され、外部から常時供給されているクロックである。なお、このシステムクロックは、処理制御装置２の外側でも階層的にクロックゲーティングすることができ、この場合は処理制御装置２内部のクロックツリー全てが停止するため更なる電力削減が可能となる。また、処理制御信号については、後ほど詳しく説明する。
【００１６】
クロック制御信号生成装置３は、システムクロックに同期して動作し、処理制御装置２が出力した処理制御信号の内容を判定し、演算装置４（４Ａ、４Ｂ、４Ｃ）へのクロック供給を制御する。より具体的には、クロック制御信号生成装置３は、演算装置４（４Ａ、４Ｂ、４Ｃ）の一部を構成する後述のクロックゲーティング回路５を制御するクロック制御信号Ｓ０を生成し、演算装置４Ａへ出力する。なお、クロック制御信号生成装置３は、処理制御信号が処理を実行する旨の内容であれば、クロック供給を行う旨、すなわち、有効を意味するクロック制御信号Ｓ０を生成し、処理制御信号が処理を実行しない旨の内容であれば、クロック供給を行わない旨、すなわち、無効を意味するクロック制御信号Ｓ０を生成する。クロック制御信号生成装置３については、後ほど詳しく説明する。
【００１７】
演算装置４（４Ａ、４Ｂ、４Ｃ）は、データに対する演算処理を行う。演算装置４（４Ａ、４Ｂ、４Ｃ）は、その順番でパイプライン接続しており、互いに並列動作が可能であるので、データ、処理制御信号、および、クロック制御信号Ｓ０がパイプライン上を同期して伝播する。なお、本実施の形態では、３つの演算装置４Ａ、４Ｂ、４Ｃがパイプライン接続しているが、半導体集積回路装置の演算装置の個数は、１つ以上の任意の数で構成することが可能である。なお、演算装置４Ａ、４Ｂ、４Ｃの構成および機能は同一であるため、以後の演算装置４を構成する各部分の説明では、同一の符号で説明する。
【００１８】
図２は、演算装置４の詳細な構成を示すブロック図である。演算装置４は、クロックゲーティング回路５、演算ブロック６、および、遅延回路７を備えて構成される。
【００１９】
クロックゲーティング回路５は、システムクロックに同期して動作し、クロック制御信号Ｓ０が有効ならば、ゲーテッドクロック信号Ｇ０を生成し出力する一方、クロック制御信号Ｓ０が無効ならば、ゲーテッドクロック信号Ｇ０を生成せず出力しない。なお、ゲーテッドクロック信号Ｇ０とは、演算ブロック６を動作させる、より具体的には、後述する演算回路９での処理結果のデータ保存、および、処理制御信号の保存を決定する信号である。クロックゲーティング回路５は、例えば、システムクロックとクロック制御信号Ｓ０とを入力とする論理積ゲートで実現可能であるが、上記の要件を満たしていれば構造は特に限定されない。
【００２０】
演算ブロック６は、ゲーテッドクロック信号Ｇ０に同期して動作し、処理制御信号に従い入力データに処理を実行し、処理データと処理制御信号とを出力する。演算ブロック６は、変換回路８、演算回路９、第１のレジスタ１０、および、第２のレジスタ１１を備えて構成される。変換回路８は、処理制御信号をあらかじめ割り当てた命令に変換する。なお、変換回路８における処理制御信号から命令への変換は、あらかじめ入力されたプログラムにより制御される。変換回路８については、後ほど詳しく説明する。演算回路９は、命令に従いデータを処理し、例えば、プロセッサのＡＬＵなどである。第１のレジスタ１０は、ゲーテッドクロック信号Ｇ０と同期して動作し、処理結果のデータを保存する。第２のレジスタ１１は、ゲーテッドクロック信号Ｇ０と同期して動作し、処理制御信号を保存する。
【００２１】
遅延回路７は、システムクロックに同期して動作し、演算回路９で処理されたデータ（演算結果）および処理制御信号が演算装置４から出力されるまで、クロック制御信号Ｓ０の演算装置４からの出力を遅延する。すなわち、遅延回路７は、クロック制御信号Ｓ０を処理データ（演算結果）および処理制御信号の出力と同じサイクルになるように遅延して、言い換えれば、クロック制御信号Ｓ０を処理データ（演算結果）および処理制御信号と同期するように出力する回路である。
【００２２】
本実施の形態では、演算装置４（４Ａ、４Ｂ、４Ｃ）に、データと処理制御信号とが入力されると、ゲーテッドクロック信号Ｇ０に同期して１サイクルで処理データと処理制御信号とが出力される。この場合、遅延回路７はクロック制御信号Ｓ０をシステムクロックに同期して１サイクル遅延して出力する。図に示すように、遅延回路７は、システムクロックに同期して動作する１つのフリップフロップで構成される。
【００２３】
なお、演算装置がデータと処理制御信号とを入力してから演算結果が出力するまでの時間が処理制御信号の内容によらず一定であれば、処理に２サイクル以上要しても構わない。その場合、クロック制御信号Ｓ０が入力から出力に要する時間も、同じサイクル数だけ遅延する必要がある。例えば、演算装置４の遅延が２サイクルの場合は２つのフリップフロップが必要となる。なお、遅延回路７は、一定時間の遅延を発生できれば図の構成に特に限定されない。
【００２４】
（処理制御信号）
次に、処理制御装置２が生成し出力する処理制御信号について詳しく説明する。上述したように、処理制御信号は、演算装置４（４Ａ、４Ｂ、４Ｃ）を制御する。図３は、本実施の形態にかかる処理制御信号の構成を示す図である。処理制御信号は、処理の実行の有無を示す実行制御信号と、演算装置４（４Ａ、４Ｂ、４Ｃ）の処理を特定する処理識別子とで構成される。演算装置４（４Ａ、４Ｂ、４Ｃ）は、実行制御信号が処理の実行を示していれば、すなわち、実行制御信号が有効ならば、処理識別子に示す処理を実行する。実行制御信号が処理の実行を示していなければ、すなわち、実行制御信号が無効ならば、処理識別子が何であるかに関わらず処理を実行しない。
【００２５】
通常、処理識別子は、演算回路９に入力する命令に比べ、非常に少ないビット数で構成できる。例えば、１６ビットのプロセッサでは、命令は１６ビットであるが、６４種類の命令しか利用しないならば、命令識別子は６ビットで充分である。これにより、演算装置４（４Ａ、４Ｂ、４Ｃ）の第２のレジスタ１１の記憶容量を削減したり、クロック制御信号生成装置３の構造を単純にしたりできるので、半導体集積回路装置１の消費電力を削減できる。
【００２６】
なお、処理制御信号は、演算装置４（４Ａ、４Ｂ、４Ｃ）の処理を特定する信号であれば、上記の構成に限定されない。例えば、処理制御信号は、実行制御信号は備えず、代わりに処理識別子の一部にＮＯＰ（Ｎｏ  Ｏｐｅｒａｔｉｏｎ）を用意してもよい。また、処理制御信号が処理識別子を備えず、演算回路９が直接実行可能な命令を利用してもよい。この場合は、演算ブロック６に変換回路８が不要となるが、演算回路９が同一の命令しか実行できないため、処理の柔軟性が乏しい。さらに、ＶＬＩＷ（Ｖｅｒｙ  Ｌｏｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｗｏｒｄ）プロセッサのように、処理制御信号が各演算装置の演算ブロック６ごとに異なる命令を複数備えてもよいし、各演算装置の演算ブロック６ごとに異なる処理識別子を複数備えてもよい。
【００２７】
（変換回路）
次に、変換回路８について詳しく説明する。上述したように、変換回路８は、処理制御信号を特定の命令へ変換する機能を備える。図４は、変換回路８の構成の一例を示す図である。図４における変換回路８は、メモリ１２とマルチプレクサ１３とを備えて構成される。変換回路８は、命令をメモリ１２の各アドレスごとに保存し、処理識別子をポインタとすることで、処理識別子に対して一意に命令を割り当てる。そして、マルチプレクサ１３には、処理識別子に対応する命令と実行制御信号とが入力され、実行制御信号が有効ならば命令を選択し、実行制御信号が無効ならばＮＯＰを選択する。
【００２８】
図５は、変換回路８の構成の他の一例を示す図である。図５における変換回路８は、レジスタ１４、第１のマルチプレクサ１５、および、第２のマルチプレクサ１６とを備えて構成される。変換回路８は、命令をレジスタ１４に保存し、処理識別子を第１のマルチプレクサ１５の選択信号とすることで、処理識別子に対して、一意に命令を割り当てる。そのため、レジスタ１４は、命令を保存するため１つ以上のレジスタ部を備える。そして、第２のマルチプレクサ１６には、処理識別子に対応する命令と実行制御信号とが入力され、実行制御信号が有効ならば命令を選択し、実行制御信号が無効ならばＮＯＰを選択する。なお、変換回路８は、処理制御信号を一意の命令に変換する機能を備えていれば、図４および図５の構成に特に限定されない。
【００２９】
（クロック制御信号生成装置）
次に、クロック制御信号生成装置３について詳しく説明する。図６は、クロック制御信号生成装置３の構成を示す図である。上述したように、クロック制御信号生成装置３は、処理制御信号の内容を判定し、クロックゲーティング回路５を制御するクロック制御信号Ｓ０を生成し、演算装置４Ａへ出力する。クロック制御信号生成装置３は、実行判定回路１７を備えて構成される。
【００３０】
実行判定回路１７は、処理制御信号をデコードし処理を実行する旨の内容か否かを判定する。例えば、処理制御信号が実行制御信号を備えるのならば、実行制御信号が有効か無効かを判定する。図７は、クロック制御信号生成装置３の入力（処理制御信号の内容）と出力（クロック制御信号Ｓ０）の関係を示す図である。なお、実行判定回路１７の構造は、処理制御信号の構成により異なるが、処理制御信号の内容が処理を実行するか否かを判定する機能を有すれば特に限定しない。
【００３１】
（半導体集積回路装置の動作）
次に、半導体集積回路装置１がどのように入力データに対して処理を実行し、演算結果を出力するかについて、具体的に説明する。
【００３２】
半導体集積回路装置１にデータとデータ通知信号とが入力されると、処理制御装置２は、システムクロックに同期して動作し、あらかじめ入力したプログラムに従い処理制御信号を生成し、生成した処理制御信号をクロック制御信号生成装置３と演算装置４Ａへ出力する。
【００３３】
クロック制御信号生成装置３は、システムクロックに同期して動作し、処理制御信号を入力すると、クロック制御信号Ｓ０を生成し、演算装置４Ａへ出力する。
【００３４】
演算装置４Ａは、データ、処理制御信号、および、クロック制御信号Ｓ０を入力すると、データに対して処理を開始する。
【００３５】
演算装置４Ａのクロックゲーティング回路５は、システムクロックに同期して動作し、クロック制御信号Ｓ０が有効を意味している場合、ゲーテッドクロック信号Ｇ０を生成し、演算ブロック６へ出力する。クロックゲーティング回路５は、クロック制御信号Ｓ０が無効を意味している場合、ゲーテッドクロック信号Ｇ０を生成しないので、演算ブロック６へ出力しない。
【００３６】
演算装置４Ａの演算ブロック６は、ゲーテッドクロック信号Ｇ０を入力した場合、ゲーテッドクロック信号Ｇ０に同期して動作する。変換回路８は、処理制御信号内の処理識別子を特定の命令へ変換し、演算回路９は、変換された命令に従いデータを処理する。第１のレジスタ１０は、ゲーテッドクロック信号Ｇ０と同期して動作し、処理結果のデータを保存する。第２のレジスタ１１は、ゲーテッドクロック信号Ｇ０と同期して動作し、処理制御信号を保存する。そして、演算ブロック６は、処理データと処理制御信号とを出力する。
【００３７】
演算装置４Ａの遅延回路７は、システムクロックに同期して動作し、クロック制御信号Ｓ０を遅延して出力する。従って、演算装置４Ａは、処理データ、処理制御信号、および、クロック制御信号Ｓ０を同じタイミングで（同期して）出力する。
【００３８】
演算装置４Ａから出力された、処理データ、処理制御信号、および、クロック制御信号Ｓ０は、そのまま同じタイミングで演算装置４Ｂへ入力される。演算装置４Ｂは、演算装置４Ａと同様の処理を行い、処理データ、処理制御信号、および、クロック制御信号Ｓ０を同じタイミングで出力する。
【００３９】
演算装置４Ｂから出力された、処理データ、処理制御信号、および、クロック制御信号Ｓ０は、そのまま同じタイミングで演算装置４Ｃへ入力される。演算装置４Ｃは、演算装置４Ｂと同様の処理を行い、処理データ、処理制御信号、および、クロック制御信号Ｓ０を同じタイミングで出力する。
【００４０】
このようにして、半導体集積回路装置１から、処理データ（演算結果）、処理制御信号、および、クロック制御信号Ｓ０が出力され、半導体集積回路装置１における処理は終了する。
【００４１】
なお、演算装置４Ａの処理において、クロックゲーティング回路５がゲーテッドクロック信号Ｇ０を生成せず、従ってゲーテッドクロック信号Ｇ０が演算ブロック６へ入力されなかった場合、第１のレジスタ１０が処理結果のデータを保存できず、第２のレジスタ１１が処理制御信号を保存できないので、演算装置４Ａは、クロック制御信号Ｓ０だけを出力する。その後、クロック制御信号Ｓ０だけが、演算装置４Ａから演算装置４Ｂ、演算装置４Ｃを通過し、半導体集積回路装置１から出力される。
【００４２】
言い換えれば、半導体集積回路装置１に入力されたデータが処理を不要とする場合は、処理制御信号は処理を実行しない旨の内容となり、クロック制御信号Ｓ０は無効を意味するため、ゲーテッドクロック信号Ｇ０は生成されず、演算装置４においてデータ処理は行われず、半導体集積回路装置１が演算結果を出力することはない。
【００４３】
このように、第１の実施の形態にかかる半導体集積回路装置によれば、処理制御装置が生成した処理制御信号からクロック制御信号生成装置が生成したクロック制御信号を、パイプラインを構成する演算装置のうち先頭の演算装置にのみ入力するだけで、各演算装置に対して独立したクロック供給の制御ができるので、１つのクロック制御信号生成装置による単純な構造で複数の演算装置全てを制御することができ、消費電力を削減することが可能となる。
【００４４】
さらに、第１の実施の形態にかかる半導体集積回路装置によれば、演算処理が不要なデータが入力されると、クロック制御信号生成装置がクロック供給を行わない旨のクロック制御信号を出力し、クロックゲーティング回路がゲーテッドクロック信号を生成しないので、演算装置が演算処理を行わず、消費電力を削減することが可能となる。
【００４５】
（第２の実施の形態）
第１の実施の形態では、クロック制御信号生成装置は、クロック制御信号を１つ生成し出力していたが、第２の実施の形態では、クロック制御信号生成装置は、クロック制御信号を２つ生成し出力する。第２の実施の形態について、添付図面を参照して説明する。本実施の形態にかかる半導体集積回路装置の構成について、第１の実施の形態と異なる部分を説明する。他の部分については第１の実施の形態と同様であるので、同一の符号が付された箇所については、上述した説明を参照し、ここでの説明を省略する。
【００４６】
図８は、本発明の第２の実施の形態にかかる半導体集積回路装置の構成を示すブロック図である。半導体集積回路装置２１は、予め入力したプログラムに従い、入力データに対して処理を実行し、演算結果を出力する。半導体集積回路装置２１には、システムクロック、実際に処理を実行するデータ、および、データの到着（入力）を通知するデータ通知信号が入力されるとともに、半導体集積回路装置２１からは、処理が実行されたデータ（演算結果）、処理制御信号、および、後述するクロック制御信号Ｓ１およびクロック制御信号Ｓ２が出力される。半導体集積回路装置２１は、処理制御装置２、クロック制御信号生成装置２３、および、演算装置２４（２４Ａ、２４Ｂ、２４Ｃ）を備えて構成されている。
【００４７】
クロック制御信号生成装置２３は、システムクロックに同期して動作し、処理制御装置２が出力した処理制御信号の内容を判定し、演算装置２４（２４Ａ、２４Ｂ、２４Ｃ）へのクロック供給を制御する。より具体的には、クロック制御信号生成装置２３は、演算装置２４（２４Ａ、２４Ｂ、２４Ｃ）の一部を構成する後述のクロックゲーティング回路２５を制御するクロック制御信号Ｓ１およびクロック制御信号Ｓ２を生成し、演算装置２４Ａへ出力する。ここで、クロック制御信号生成装置２３は、処理制御信号が処理を実行する旨の内容であれば、実行する処理の内容に関わらず、クロック供給を行う旨、すなわち、有効を意味するクロック制御信号Ｓ１、処理制御信号が処理を実行しない旨の内容であれば、実行する処理の内容に関わらず、クロック供給を行わない旨、すなわち、無効を意味するクロック制御信号Ｓ１を生成する。
【００４８】
さらに、クロック制御信号生成装置２３は、処理制御信号が処理を実行する旨の内容であり、かつ、実行する処理の内容が直前に処理した内容と異なっていれば、クロック供給を行う旨、すなわち、有効を意味するクロック制御信号Ｓ２を生成する。また、クロック制御信号生成装置２３は、処理制御信号が処理を実行する旨の内容であり、かつ、実行する処理の内容が直前に処理した内容と同じであれば、クロック供給を行わない旨、すなわち、無効を意味するクロック制御信号Ｓ２を生成する。また、クロック制御信号生成装置２３は、処理制御信号が処理を実行しない旨の内容であれば、実行する処理の内容に関わらず、クロック供給を行わない旨、すなわち、無効を意味するクロック制御信号Ｓ２を生成する。クロック制御信号生成装置２３については、後ほど詳しく説明する。
【００４９】
演算装置２４（２４Ａ、２４Ｂ、２４Ｃ）は、データに対する演算処理を行う。演算装置２４（２４Ａ、２４Ｂ、２４Ｃ）は、その順番でパイプライン接続しており、互いに並列動作が可能であるので、データ、処理制御信号、クロック制御信号Ｓ１、および、クロック制御信号Ｓ２がパイプライン上を同期して伝播する。なお、本実施の形態では、３つの演算装置２４Ａ、２４Ｂ、２４Ｃがパイプライン接続しているが、半導体集積回路装置の演算装置の個数は、１つ以上の任意の数で構成することが可能である。なお、演算装置２４Ａ、２４Ｂ、２４Ｃの構成および機能は同一であるため、以後の演算装置２４を構成する各部分の説明では、同一の符号で説明する。
【００５０】
図９は、演算装置２４の詳細な構成を示すブロック図である。演算装置２４は、クロックゲーティング回路２５、演算ブロック２６、および、遅延回路２７を備えて構成される。
【００５１】
クロックゲーティング回路２５は、システムクロックに同期して動作し、クロック制御信号Ｓ１およびクロック制御信号Ｓ２から、ゲーテッドクロック信号Ｇ１およびゲーテッドクロック信号Ｇ２を生成する。具体的には、クロックゲーティング回路２５は、クロック制御信号Ｓ１が有効ならば、ゲーテッドクロック信号Ｇ１を生成し出力する一方、クロック制御信号Ｓ１が無効ならば、ゲーテッドクロック信号Ｇ１を生成せず出力しない。なお、ゲーテッドクロック信号Ｇ１とは、演算ブロック２６を動作させる。より具体的には、演算回路９での処理結果のデータ保存を決定する信号である。
【００５２】
さらに、クロックゲーティング回路２５は、システムクロックに同期して動作し、クロック制御信号Ｓ２が有効ならば、ゲーテッドクロック信号Ｇ２を生成し出力する一方、クロック制御信号Ｓ２が無効ならば、ゲーテッドクロック信号Ｇ２を生成せず出力しない。なお、ゲーテッドクロック信号Ｇ２とは、演算ブロック６を動作させる。より具体的には、処理制御信号の保存を決定する信号である。クロックゲーティング回路２５は、例えば、システムクロックとクロック制御信号Ｓ１とを入力とする論理積ゲート、および、システムクロック信号とクロック制御信号Ｓ２とを入力とする論理積ゲートの２つの論理積ゲートで実現できるが、上記の要件を満たしていれば構造は特に限定されない。
【００５３】
演算ブロック２６は、ゲーテッドクロック信号Ｇ１およびゲーテッドクロック信号Ｇ２に同期して動作し、処理制御信号に従い入力データに処理を実行し、処理データと処理制御信号とを出力する。演算ブロック２６は、変換回路８、演算回路９、第１のレジスタ３０、および、第２のレジスタ３１を備えて構成される。変換回路８は、メモリ１２とマルチプレクサ１３とを備えて構成される。第１のレジスタ３０は、ゲーテッドクロック信号Ｇ１と同期して動作し、処理結果のデータを保存する。第２のレジスタ３１は、ゲーテッドクロック信号Ｇ２と同期して動作し、処理制御信号を保存する。
【００５４】
遅延回路２７は、システムクロックに同期して動作し、演算回路９で処理されたデータ（演算結果）および処理制御信号が演算装置２４から出力されるまで、クロック制御信号Ｓ１およびクロック制御信号Ｓ２の演算装置２４からの出力を遅延する。すなわち、遅延回路２７は、クロック制御信号Ｓ１およびクロック制御信号Ｓ２を処理データ（演算結果）および処理制御信号の出力と同じサイクルになるように遅延して、言い換えれば、クロック制御信号Ｓ１およびクロック制御信号Ｓ２を処理データ（演算結果）および処理制御信号と同期するように出力する回路である。
【００５５】
本実施の形態では、演算装置２４（２４Ａ、２４Ｂ、２４Ｃ）に、データと処理制御信号とが入力されると、ゲーテッドクロック信号Ｇ１およびゲーテッドクロック信号Ｇ２に同期して１サイクルで処理データと処理制御信号とが出力される。この場合、遅延回路２７はクロック制御信号Ｓ１およびクロック制御信号Ｓ２をシステムクロックに同期して１サイクル遅延して出力する。図に示すように、遅延回路２７は、システムクロックに同期して動作するフリップフロップで構成される。
【００５６】
（クロック制御信号生成装置）
次に、クロック制御信号生成装置２３について詳しく説明する。図１０は、クロック制御信号生成装置２３の構成を示す図である。上述したように、クロック制御信号生成装置２３は、処理制御信号の内容を判定し、クロックゲーティング回路２５を制御するクロック制御信号Ｓ１およびクロック制御信号Ｓ２を生成し、演算装置２４Ａへ出力する。クロック制御信号生成装置２３は、デコーダ３２、レジスタ３３、および、比較器３４を備えて構成される。デコーダ３２は、処理制御信号Ｐ１から実行制御信号Ｊ１と処理識別子Ｉ１とを抽出する。レジスタ３３は、システムクロックに同期し、実行制御信号Ｊ１が有効ならば、処理識別子Ｉ１を保存する。レジスタ３３は、ライトイネーブル信号つきのレジスタである。
【００５７】
比較器３４は、デコーダ３２により抽出された処理識別子Ｉ１とレジスタ３３から出力された処理識別子Ｉ０の値が異なれば、比較判定信号Ｈ１を有効として出力し、処理識別子Ｉ１と処理識別子Ｉ０の値が同じならば、比較判定信号Ｈ１を無効とし出力する。ここで、処理識別子Ｉ０とは、処理制御信号Ｐ１より前にクロック制御信号生成装置２３に入力され、かつ、その実行制御信号Ｊ０が有効である、処理制御信号Ｐ０の処理識別子を意味する。すなわち、処理識別子Ｉ１がレジスタ３３に保存される直前に保存されていた処理識別子である。
【００５８】
そして、デコーダ３２により抽出された実行制御信号Ｊ１が有効ならば、クロック制御信号Ｓ１は有効を意味する信号となり、実行制御信号Ｊ１が無効ならば、クロック制御信号Ｓ１は無効を意味する信号となる。また、クロック制御信号Ｓ２は、比較判定信号Ｈ１と実行制御信号Ｊ１との論理積を取った結果を表す信号となる。
【００５９】
図１１は、クロック制御信号生成装置２３の入力（処理制御信号の内容）と出力（クロック制御信号Ｓ１およびクロック制御信号Ｓ２）の関係を示す図である。図に書かれている直前に処理した内容とは、半導体集積回路装置２１が直前に実行した処理、すなわち、処理制御信号の実効制御信号が直近で有効だった時に、処理制御信号の処理識別子により特定された処理を意味する。
【００６０】
例えば、直前のサイクルとその１つ前のサイクルでは、クロック制御信号生成装置２３に入力された処理制御信号の実行制御信号が無効であったが、さらに１つ前のサイクル（３サイクル前）で処理制御信号の実行制御信号が有効であった場合、レジスタ３３に保存されている処理識別子Iは、３サイクル前に入力された処理制御信号の処理識別子である。
【００６１】
クロック制御生成装置２３は、入力した処理制御信号の内容が処理実行であり、かつ、具体的な処理内容が直前に実行した処理と異なる場合、クロック制御信号Ｓ１とクロック制御信号Ｓ２とを両方有効として出力する。また、クロック制御生成装置２３は、入力した処理制御信号の内容が処理実行であり、かつ、具体的な処理内容が直前に実行した処理と同じ場合、クロック制御信号Ｓ１を有効、クロック制御信号Ｓ２を無効として出力する。さらに、クロック制御生成装置２３は、入力した処理制御信号の内容が処理の未実行である場合、実行する処理の内容に関わらずクロック制御信号Ｓ１とクロック制御信号Ｓ２とを両方無効として出力する。
【００６２】
（半導体集積回路装置の動作）
次に、半導体集積回路装置２１がどのように入力データに対して処理を実行し、演算結果を出力するかについて、具体的に説明する。
【００６３】
半導体集積回路装置２１にデータとデータ通知信号とが入力されると、処理制御装置２は、システムクロックに同期して動作し、あらかじめ入力したプログラムに従い処理制御信号を生成し、生成した処理制御信号をクロック制御信号生成装置２３と演算装置２４Ａへ出力する。
【００６４】
クロック制御信号生成装置２３は、システムクロックに同期して動作し、処理制御信号を入力すると、クロック制御信号Ｓ１およびクロック制御信号Ｓ２を生成し、演算装置２４Ａへ出力する。
【００６５】
演算装置２４Ａは、データ、処理制御信号、および、クロック制御信号Ｓ１およびクロック制御信号Ｓ２を入力すると、データに対して処理を開始する。
【００６６】
演算装置２４Ａのクロックゲーティング回路２５は、システムクロックに同期して動作し、クロック制御信号Ｓ１が有効を意味している場合、ゲーテッドクロック信号Ｇ１を生成し、演算ブロック２６へ出力する。クロックゲーティング回路２５は、クロック制御信号Ｓ１が無効を意味している場合、ゲーテッドクロック信号Ｇ１を生成しないので、演算ブロック２６へ出力しない。
【００６７】
さらに、演算装置２４Ａのクロックゲーティング回路２５は、システムクロックに同期して動作し、クロック制御信号Ｓ２が有効を意味している場合、ゲーテッドクロック信号Ｇ２を生成し、演算ブロック２６へ出力する。クロックゲーティング回路２５は、クロック制御信号Ｓ２が無効を意味している場合、ゲーテッドクロック信号Ｇ２を生成しないので、演算ブロック２６へ出力しない。
【００６８】
演算装置２４Ａの演算ブロック２６は、ゲーテッドクロック信号Ｇ１およびゲーテッドクロック信号Ｇ２を入力した場合、ゲーテッドクロック信号Ｇ１およびゲーテッドクロック信号Ｇ２に同期して動作する。
【００６９】
変換回路８は、処理制御信号内の処理識別子を特定の命令へ変換し、演算回路９は、変換された命令に従いデータを処理する。第１のレジスタ３０は、ゲーテッドクロック信号Ｇ１と同期して動作し、処理結果のデータを保存する。第２のレジスタ３１は、ゲーテッドクロック信号Ｇ２と同期して動作し、処理制御信号を保存する。そして、演算ブロック２６は、処理データと処理制御信号とを出力する。
【００７０】
なお、クロックゲーティング回路２５がゲーテッドクロック信号Ｇ２を生成せず、従ってゲーテッドクロック信号Ｇ２が演算ブロック２６へ入力されなかった場合、第２のレジスタ３１は動作せず、第２のレジスタ３１には以前に保存された処理制御信号がそのまま保存されたままとなる。すなわち、今回入力された処理制御信号と、以前に入力され第２のレジスタ３１に保存されていた処理制御信号とは同じであるので、演算装置２４Ａでは今回入力された処理制御信号に基づいてデータの処理が行われるが、以後の演算装置２４Ｂおよび２４Ｃでは以前に保存された処理制御信号に基づいてデータの処理が行われることになる。そして、演算装置２４Ｂの第２のレジスタ３１および演算装置２４Ｃの第２のレジスタ３１が動作しないことにより、半導体集積回路装置の消費電力を削減することが可能となる。
【００７１】
演算装置２４Ａの遅延回路２７は、システムクロックに同期して動作し、クロック制御信号Ｓ１およびクロック制御信号Ｓ２を遅延して出力する。従って、演算装置２４Ａは、処理データ、処理制御信号、および、クロック制御信号Ｓ１およびクロック制御信号Ｓ２を同じタイミングで（同期して）出力する。
【００７２】
演算装置２４Ａから出力された、処理データ、処理制御信号、および、クロック制御信号Ｓ１およびクロック制御信号Ｓ２は、そのまま同じタイミングで演算装置２４Ｂへ入力される。演算装置２４Ｂは、演算装置２４Ａと同様の処理を行い、処理データ、処理制御信号、および、クロック制御信号Ｓ１およびクロック制御信号Ｓ２を同じタイミングで出力する。
【００７３】
演算装置２４Ｂから出力された、処理データ、処理制御信号、および、クロック制御信号Ｓ１およびクロック制御信号Ｓ２は、そのまま同じタイミングで演算装置２４Ｃへ入力される。演算装置２４Ｃは、演算装置２４Ｂと同様の処理を行い、処理データ、処理制御信号、および、クロック制御信号Ｓ１およびクロック制御信号Ｓ２を同じタイミングで出力する。
【００７４】
このようにして、半導体集積回路装置２１から、処理データ（演算結果）、処理制御信号、および、クロック制御信号Ｓ１およびクロック制御信号Ｓ２が出力され、半導体集積回路装置２１における処理は終了する。
【００７５】
なお、演算装置２４Ａの処理において、クロックゲーティング回路２５がゲーテッドクロック信号Ｇ１を生成せず、従ってゲーテッドクロック信号Ｇ１が演算ブロック２６へ入力されなかった場合、第１のレジスタ３０が処理結果のデータを保存できないので、演算装置２４Ａは、クロック制御信号Ｓ１およびクロック制御信号Ｓ２だけを出力する。その後、クロック制御信号Ｓ１およびクロック制御信号Ｓ２だけが、演算装置２４Ａから演算装置２４Ｂ、演算装置２４Ｃを通過し、半導体集積回路装置２１から出力される。
【００７６】
言い換えれば、半導体集積回路装置２１に入力されたデータが処理を不要とする場合は、処理制御信号は処理を実行しない旨の内容となり、クロック制御信号Ｓ１は無効を意味するため、ゲーテッドクロック信号Ｇ１は生成されず、演算装置２４においてデータ処理は行われず、半導体集積回路装置２１が演算結果を出力することはない。
【００７７】
（演算処理例）
次に、半導体集積回路装置２１が行う演算処理の一例を説明する。本例では、演算装置２４（２４Ａ、２４Ｂ、２４Ｃ）は、二項演算が実行可能な演算器とし、半導体集積回路装置２１が以下の様なプログラムに基づいて演算処理を行う場合について説明する。
ｆｏｒ（ｉ＝０；ｉ＜ＳＩＺＥ；ｉ＝ｉ＋１）
｛  Ｙ［ｉ］  ＝  （  Ｒ［ｉ］＋２Ｇ［ｉ］＋Ｂ［ｉ］）＞＞２；
Ｃｏ［ｉ］  ＝  （  Ｒ［ｉ］            −Ｂ［ｉ］）＞＞１；
Ｃｇ［ｉ］  ＝  （−Ｒ［ｉ］＋２Ｇ［ｉ］−Ｂ［ｉ］）＞＞２；｝
【００７８】
本プログラムはＨ．２６４符号化における、ＲＧＢ色空間からＹＣＣ色空間への変換を行う色変換プログラム（色変換式）である。ここで、色変換プログラム中の変数ＳＩＺＥは、処理する画素数を示す。そして、この色変換プログラムを２項演算のみに分割すると以下のようになる。
ｆｏｒ（ｉ＝０；ｉ＜ＳＩＺＥ；ｉ＝ｉ＋１）
｛式（１）    Ｌ［ｉ］  ＝  Ｒ［ｉ］＋Ｂ［ｉ］；
式（２）    Ｍ［ｉ］  ＝  Ｒ［ｉ］−Ｂ［ｉ］；
式（３）  Ｃｏ［ｉ］  ＝  Ｍ［ｉ］＞＞１；
式（４）    Ｎ［ｉ］  ＝  Ｇ［ｉ］＜＜１；
式（５）    Ｏ［ｉ］  ＝  Ｎ［ｉ］＋Ｌ［ｉ］；
式（６）    Ｐ［ｉ］  ＝  Ｎ［ｉ］−Ｌ［ｉ］；
式（７）    Ｙ［ｉ］  ＝  Ｏ［ｉ］＞＞２；
式（８）  Ｃｇ［ｉ］  ＝  Ｐ［ｉ］＞＞２；｝
【００７９】
半導体集積回路装置２１が２項演算のみに分割した色変換プログラムに基づいて演算処理を行う場合、例えば、式（１）〜式（８）を、演算装置２４Ａ、２４Ｂ、２４Ｃにそれぞれ割り当てる。図１２は、半導体集積回路装置２１が色変換のプログラムを実行した場合に、演算装置２４Ａ、２４Ｂ、２４Ｃに割り当てられる処理の一例を示した図である。
【００８０】
本例の場合、演算装置２４Ａのメモリ１２のアドレスに、式（１）、式（４）、式（７）が保存され、演算装置２４Ｂのメモリ１２のアドレスに、式（２）、式（５）、式（８）が保存され、演算装置２４Ｃのメモリ１２のアドレスに、式（３）、式（６）が保存されている。
【００８１】
そして、演算装置２４Ａは、処理制御信号の処理識別子が０の場合は、式（１）の計算を行い、処理制御信号の処理識別子が１の場合は、式（４）の計算を行い、処理制御信号の処理識別子が２の場合は、式（７）の計算を行う。演算装置２４Ｂは、処理制御信号の処理識別子が０の場合は、式（２）の計算を行い、処理制御信号の処理識別子が１の場合は、式（５）の計算を行い、処理制御信号の処理識別子が２の場合は、式（８）の計算を行う。演算装置２４Ｃは、処理制御信号の処理識別子が０の場合は、式（３）の計算を行い、処理制御信号の処理識別子が１の場合は、式（６）の計算を行い、処理制御信号の処理識別子が２の場合は、計算を行わない。
【００８２】
初めに、演算装置２４Ａに、入力データとして、Ｒ［ｉ］およびＢ［ｉ］、処理制御信号の処理識別子として０が入力されると、演算装置２４Ａは、式（１）の計算を行い、Ｒ［ｉ］、Ｂ［ｉ］、および、式（１）の計算結果のＬ［ｉ］を演算装置２４Ｂに出力する。演算装置２４Ｂは、式（２）の計算を行い、Ｌ［ｉ］、および、式（２）の計算結果のＭ［ｉ］を出力する。ここで、Ｒ［ｉ］およびＢ［ｉ］は、演算装置２４Ｃの式（３）では不要であるので、演算装置２４Ｃに出力されても出力されなくてもどちらでもよい。演算装置２４Ｃは、式（３）の計算を行い、Ｌ［ｉ］、および、式（３）の計算結果のＣｏ［ｉ］を出力データとして出力し、Ｌ［ｉ］およびＣｏ［ｉ］は図示しない記憶部に記憶される。
【００８３】
次に、演算装置２４Ａに、入力データとして、Ｒ［ｉ＋１］およびＢ［ｉ＋１］、処理制御信号の処理識別子として０が入力された場合、演算装置２４Ａは、式（１）の計算を行い、Ｒ［ｉ＋１］、Ｂ［ｉ＋１］、および、式（１）の計算結果のＬ［ｉ＋１］を演算装置２４Ｂに出力し、以後同様の処理を繰り返す。
【００８４】
一方、演算装置２４Ａに、入力データとして、Ｌ［ｉ］およびＧ［ｉ］、処理制御信号の処理識別子として１が入力された場合、演算装置２４Ａは、式（４）の計算を行い、Ｌ［ｉ］、および、式（４）の計算結果のＮ［ｉ］を演算装置２４Ｂに出力する。演算装置２４Ｂは、式（５）の計算を行い、Ｌ［ｉ］、Ｎ［ｉ］、および、式（５）の計算結果のＯ［ｉ］を出力する。演算装置２４Ｃは、式（６）の計算を行い、Ｏ［ｉ］、および、式（６）の計算結果のＰ［ｉ］を出力データとして出力し、Ｏ［ｉ］およびＰ［ｉ］は図示しない記憶部に記憶される。
【００８５】
最後に、演算装置２４Ａに、入力データとして、計算されたＯ［ｉ］およびＰ［ｉ］、処理制御信号の処理識別子として２が入力された場合、演算装置２４Ａは、式（７）の計算を行い、Ｐ［ｉ］、および、式（７）の計算結果のＹ［ｉ］を演算装置２４Ｂに出力する。演算装置２４Ｂは、式（８）の計算を行い、Ｙ［ｉ］、および、式（８）の計算結果のＣｇ［ｉ］を出力する。演算装置２４Ｃは、計算を行わず、そのまま、Ｙ［ｉ］およびＣｇ［ｉ］を出力データとして出力し、Ｙ［ｉ］およびＣｇ［ｉ］は図示しない記憶部に記憶される。以上の処理を経て、Ｙ［ｉ］、Ｃｏ［ｉ］、および、Ｃｇ［ｉ］が求められ、ＲＧＢ色空間からＹＣＣ色空間への変換が行われる。
【００８６】
図１３は、半導体集積回路装置２１において、上記プログラムを実行した場合のタイムチャートの一例を示した図である。なお、本例では、６画素に対して演算処理を行っており、より詳しくは、演算処理は、３画素ずつ２回に分けて行われている。
【００８７】
図の入力データ［ｉ］は、外部から入力される（画素に対応する）データを示しており、白色の部分はデータの入力が有効であることを示す。また、白色の部分に記載されている数字は、上記プログラム（入力データ）の変数ｉ（０〜５）、すなわち、何番目の画素に対応するデータが入力されているのかを示す。
【００８８】
図の処理識別子は、演算装置に入力される処理識別子を示しており、白色の部分は実行制御信号が有効であることを示す。また、白色の部分に記載されている数字は、処理識別子の値（０〜２）を示す。
【００８９】
図の演算装置２４Ａ、２４Ｂ、２４Ｃにおけるクロック制御信号Ｓ１およびクロック制御信号Ｓ２は、制御信号の状態を示しており、白色の部分は制御信号が有効であることを、灰色の部分は制御信号が無効であることを示す。また、クロック制御信号Ｓ１の白色の部分に記載されている数字は、上記プログラム（入力データ）の変数ｉ（０〜５）を示し、クロック制御信号Ｓ２の白色の部分に記載されている数字は、処理識別子の値（０〜２）を示す。
【００９０】
本例では、６画素を３画素ずつ２回に分けて処理を行うので、連続する３つのデータ（ｉ＝０〜２）に対する演算処理（ＹＣＣ色空間への変換）が完了した後に、次の３つのデータ（ｉ＝３〜５）に対する演算処理（ＹＣＣ色空間への変換）が行われる。そのため、１つの画素においてＹＣＣ色空間への変換処理が終了するまでの時間は、９サイクルとなる。
【００９１】
演算装置２４Ａ、２４Ｂ、２４Ｃのクロック制御信号Ｓ１は、１８サイクル連続でデータが入力されるため、１８サイクル連続で有効となる。一方、クロック制御信号Ｓ２は、３サイクルごとに命令が変更になるため、３サイクルに１回有効となる。
【００９２】
また、クロック制御信号Ｓ１およびクロック制御信号Ｓ２は、遅延回路２７により入力データや処理識別子（処理制御信号）と同期して、演算装置２４Ａ、２４Ｂ、２４Ｃの間を伝播する。このため、同一の処理制御信号を用いることで、各演算装置が処理を実行する場合のみクロックを供給することが可能である。
【００９３】
図１４は、半導体集積回路装置２１において、上記プログラムを実行した場合のタイムチャートの他の一例を示した図である。なお、本例では、６画素に対して演算処理を行っており、より詳しくは、演算処理は、６画素が１度に連続して行われている。
【００９４】
本例では、６画素の演算処理を１度に連続して行うので、６つのデータ（ｉ＝０〜５）に対する演算処理（ＹＣＣ色空間への変換）が連続して行われる。そのため、１つの画素においてＹＣＣ色空間への変換処理が終了するまでの時間は、１５サイクルとなる。
【００９５】
演算装置２４Ａ、２４Ｂ、２４Ｃのクロック制御信号Ｓ１は、１８サイクル連続でデータが入力されるため、１８サイクル連続で有効となる。一方、クロック制御信号Ｓ２は、６サイクルごとに命令が変更になるため、６サイクルに１回有効となる。
【００９６】
このため、図１３で説明したような、３画素ずつ２回に分けて演算処理を行う場合に比べて、１つの画素のＹＣＣ色空間への変換処理が終了するまでの時間、すなわち、各画素の変換結果を出力するレイテンシは増大する。一方、命令識別子の変化によるクロック制御信号Ｓ２が有効になる回数は減少するため、半導体集積回路装置２１における電力削減に効果がある。
【００９７】
ここで、３画素ずつ２回に分けて演算処理を行う場合と、６画素を１度で演算処理を行う場合のいずれも、演算結果のスループットには変化がないため、レイテンシの制約が小さい処理では、なるべく同一処理識別子での演算処理を連続して行うことで、電力の削減を行うことが可能である。
【００９８】
このように、第２の実施の形態にかかる半導体集積回路装置によれば、要求された処理内容が直前に処理した内容と同じ場合には、クロック制御信号生成装置がクロック供給を行わない旨のクロック制御信号を出力し、クロックゲーティング回路が処理制御信号を改めて保存するゲーテッドクロック信号を生成しないので、演算装置は内部のレジスタに既に保存された処理制御信号を使用し、レジスタが改めて同じ処理制御信号を保存する動作をする必要がなくなるので、半導体集積回路装置の消費電力を削減することが可能となる。
【００９９】
（第３の実施の形態）
第２の実施の形態では、クロック制御信号生成装置は、処理制御信号の内容からクロック制御信号を生成し出力していたが、第３の実施の形態では、クロック制御信号生成装置は、処理制御信号の内容と入力データの内容からクロック制御信号を生成し出力する。第３の実施の形態について、添付図面を参照して説明する。本実施の形態にかかる半導体集積回路装置の構成について、第２の実施の形態と異なる部分を説明する。他の部分については第２の実施の形態と同様であるので、同一の符号が付された箇所については、上述した説明を参照し、ここでの説明を省略する。
【０１００】
図１５は、本発明の第３の実施の形態にかかる半導体集積回路装置の構成を示すブロック図である。半導体集積回路装置４１は、予め入力したプログラムに従い、入力データに対して処理を実行し、演算結果を出力する。半導体集積回路装置４１には、システムクロック、実際に処理を実行するデータ、および、データの到着（入力）を通知するデータ通知信号が入力されるとともに、半導体集積回路装置４１からは、処理が実行されたデータ（演算結果）、処理制御信号、クロック制御信号Ｓ１、および、クロック制御信号Ｓ２が出力される。半導体集積回路装置４１は、処理制御装置２、クロック制御信号生成装置４３、および、演算装置２４（２４Ａ、２４Ｂ、２４Ｃ）を備えて構成されている。
【０１０１】
クロック制御信号生成装置４３は、システムクロックに同期して動作し、処理制御装置２が出力した処理制御信号の内容および入力データの内容を判定し、演算装置２４（２４Ａ、２４Ｂ、２４Ｃ）へのクロック供給を制御する。より具体的には、クロック制御信号生成装置４３は、演算装置２４（２４Ａ、２４Ｂ、２４Ｃ）の一部を構成する後述のクロックゲーティング回路２５を制御するクロック制御信号Ｓ１およびクロック制御信号Ｓ２を生成し、演算装置２４Ａへ出力する。
【０１０２】
ここで、クロック制御信号生成装置４３は、処理制御信号が処理を実行する旨の内容であり、かつ、実行する処理の内容が直前に処理した内容と異なっていれば、実行する処理データの値に関わらず、クロック供給を行う旨、すなわち、有効を意味するクロック制御信号Ｓ１を生成する。また、クロック制御信号生成装置４３は、処理制御信号が処理を実行する旨の内容であり、かつ、実行する処理の内容が直前に処理した内容と同じであり、かつ、実行する処理データの値が直前に処理したデータの値と異なっていれば、クロック供給を行う旨、すなわち、有効を意味するクロック制御信号Ｓ１を生成する。
【０１０３】
さらに、クロック制御信号生成装置４３は、処理制御信号が処理を実行する旨の内容であり、かつ、実行する処理の内容が直前に処理した内容と同じであり、かつ、実行する処理データの値が直前に処理したデータの値と同じであれば、クロック供給を行わない旨、すなわち、無効を意味するクロック制御信号Ｓ１を生成する。また、クロック制御信号生成装置４３は、処理制御信号が処理を実行しない旨の内容であれば、実行する処理の内容および処理データの値に関わらず、クロック供給を行わない旨、すなわち、無効を意味するクロック制御信号Ｓ１を生成する。
【０１０４】
さらに、クロック制御信号生成装置４３は、処理制御信号が処理を実行する旨の内容であり、かつ、実行する処理の内容が直前に処理した内容と異なっていれば、実行する処理データの値に関わらず、クロック供給を行う旨、すなわち、有効を意味するクロック制御信号Ｓ２を生成する。
【０１０５】
また、クロック制御信号生成装置２３は、処理制御信号が処理を実行する旨の内容であり、かつ、実行する処理の内容が直前に処理した内容と同じであれば、処理データの値に関わらず、クロック供給を行わない旨、すなわち、無効を意味するクロック制御信号Ｓ２を生成する。また、クロック制御信号生成装置４３は、処理制御信号が処理を実行しない旨の内容であれば、実行する処理の内容および処理データの値に関わらず、クロック供給を行わない旨、すなわち、無効を意味するクロック制御信号Ｓ２を生成する。
【０１０６】
図１６は、クロック制御信号生成装置４３の構成を示す図である。クロック制御信号生成装置４３は、デコーダ３２、レジスタ３３、レジスタ４４、比較器３４、および、比較器４５を備えて構成される。レジスタ４４は、システムクロックに同期し、実行制御信号Ｊ１が有効ならば、データＤ１を保存する。レジスタ４４は、ライトイネーブル信号つきのレジスタである。
【０１０７】
比較器４５は、入力されたデータＤ１とレジスタ４４から出力されたデータＤ０の値が異なれば、比較判定信号Ｈ２を有効として出力し、データＤ１とデータＤ０の値が同じならば比較判定信号Ｈ２を無効とし出力する。ここで、データＤ０とは、データＤ１がレジスタ４４に保存される直前に保存されていたデータである。
【０１０８】
そして、デコーダ３２により抽出された実行制御信号Ｊ１が有効で、かつ、比較判定信号Ｈ１が有効な場合、および、実行制御信号Ｊ１が有効で、かつ、比較判定信号Ｈ１が無効で、かつ、比較判定信号Ｈ２が有効な場合は、クロック制御信号Ｓ１は有効を意味する信号となる。それ以外の場合は、クロック制御信号Ｓ１は無効を意味する信号となる。また、クロック制御信号Ｓ２は、比較判定信号Ｈ１と、実行制御信号Ｊ１との論理積を取った結果を出力する。
【０１０９】
図１７は、クロック制御信号生成装置４３の入力（処理制御信号の内容）と出力（クロック制御信号Ｓ１およびクロック制御信号Ｓ２）の関係を示す図である。図に書かれている直前に処理した内容とは、半導体集積回路装置４１が直前に実行した処理、すなわち、処理制御信号の実効制御信号が直近で有効だった時に、処理制御信号の処理識別子により特定された処理を意味する。
【０１１０】
例えば、直前のサイクルとその１つ前のサイクルでは、クロック制御信号生成装置４３に入力された処理制御信号の実行制御信号が無効であったが、さらに１つ前のサイクル（３サイクル前）で処理制御信号の実行制御信号が有効であった場合、レジスタ３３に保存されている処理識別子Iは、３サイクル前に入力された処理制御信号の処理識別子である。
【０１１１】
また、図に書かれている直前の処理データとは、半導体集積回路装置４１が直前に実行した処理での処理データ、すなわち、処理制御信号の実効制御信号が直近で有効だった時に、処理制御信号の処理識別子により処理された処理データを意味する。
【０１１２】
例えば、直前のサイクルとその１つ前のサイクルでは、クロック制御信号生成装置４３に入力された処理制御信号の実行制御信号が無効であったが、さらに１つ前のサイクル（３サイクル前）で処理制御信号の実行制御信号が有効であった場合、レジスタ４４に保存されている処理データは、３サイクル前に入力された処理データである。
【０１１３】
クロック制御生成装置４３は、入力した処理制御信号の内容が処理実行であり、かつ、具体的な処理内容が直前に実行した処理と異なる場合、実行する処理データの値に関わらずクロック制御信号Ｓ１とクロック制御信号Ｓ２とを両方有効として出力する。
【０１１４】
また、クロック制御生成装置２３は、入力した処理制御信号の内容が処理実行であり、かつ、具体的な処理内容が直前に実行した処理と同じであり、かつ、実行する処理データの値が直前に処理したデータの値と異なる場合、クロック制御信号Ｓ１を有効、クロック制御信号Ｓ２を無効として出力する。
【０１１５】
また、クロック制御生成装置２３は、入力した処理制御信号の内容が処理実行であり、かつ、具体的な処理内容が直前に実行した処理と同じであり、かつ、実行する処理データの値が直前に処理したデータの値と等しい場合、クロック制御信号Ｓ１とクロック制御信号Ｓ２とを両方無効として出力する。
【０１１６】
また、クロック制御生成装置２３は、入力した処理制御信号の内容が処理の未実行である場合、実行する処理の内容および処理データの値に関わらずクロック制御信号Ｓ１とクロック制御信号Ｓ２とを両方無効として出力する。
【０１１７】
演算装置２４は、クロックゲーティング回路２５、演算ブロック２６、および、遅延回路２７を備えて構成される。演算ブロック２６は、変換回路８、演算回路９、第１のレジスタ３０、および、第２のレジスタ３１を備えて構成される。変換回路８は、メモリ１２とマルチプレクサ１３とを備えて構成される。
【０１１８】
このように、第３の実施の形態にかかる半導体集積回路装置によれば、要求された処理内容および処理を行うデータが、直前に処理した内容およびデータと同じ場合には、クロック制御信号生成装置がクロック供給を行わない旨のクロック制御信号を出力し、クロックゲーティング回路が処理制御信号を改めて保存するゲーテッドクロック信号を生成しないので、演算装置は内部のレジスタに既に保存された処理制御信号を使用し、レジスタが改めて同じ処理制御信号を保存する動作をする必要がなくなるので、消費電力を削減することが可能となる。
【０１１９】
（変形例）
第１〜第３の実施の形態では、各演算装置の構成および機能は同一である前提で説明したが、各演算装置が共通の識別子を利用する場合、異なる構造をとっていてもよい。例えば、各演算装置内の演算回路に含まれるＡＬＵが異なる命令セットを持っていても構わない。
【０１２０】
また、第１〜第３の実施の形態では、クロック制御信号を処理データ（演算結果）および処理制御信号と同期するように後段に接続された演算装置へ出力する回路として遅延回路を使用しているが、クロック制御信号、処理データ（演算結果）および処理制御信号が同期して、後段に接続された演算装置へ出力されればどのような形態であってもよい。
【産業上の利用可能性】
【０１２１】
本発明は、演算処理を行う全ての半導体集積回路装置に有用である。
【図面の簡単な説明】
【０１２２】
【図１】本発明の第１の実施の形態にかかる半導体集積回路装置の構成を示すブロック図である。
【図２】演算装置の詳細な構成を示すブロック図である。
【図３】本実施の形態にかかる処理制御信号の構成を示す図である。
【図４】変換回路の構成の一例を示す図である。
【図５】変換回路の構成の他の一例を示す図である。
【図６】クロック制御信号生成装置の構成を示す図である。
【図７】クロック制御信号生成装置の入力（処理制御信号の内容）と出力（クロック制御信号Ｓ０）の関係を示す図である。
【図８】本発明の第２の実施の形態にかかる半導体集積回路装置の構成を示すブロック図である。
【図９】演算装置の詳細な構成を示すブロック図である。
【図１０】クロック制御信号生成装置の構成を示す図である。
【図１１】クロック制御信号生成装置の入力（処理制御信号の内容）と出力（クロック制御信号Ｓ１およびクロック制御信号Ｓ２）の関係を示す図である。
【図１２】半導体集積回路装置が色変換のプログラムを実行した場合に、演算装置に割り当てられる処理の一例を示した図である。
【図１３】半導体集積回路装置において、上記プログラムを実行した場合のタイムチャートの一例を示した図である。
【図１４】半導体集積回路装置において、上記プログラムを実行した場合のタイムチャートの他の一例を示した図である。
【図１５】本発明の第３の実施の形態にかかる半導体集積回路装置の構成を示すブロック図である。
【図１６】クロック制御信号生成装置の構成を示す図である。
【図１７】クロック制御信号生成装置の入力（処理制御信号の内容）と出力（クロック制御信号Ｓ１およびクロック制御信号Ｓ２）の関係を示す図である。
【符号の説明】
【０１２３】
１、２１、４１  半導体集積回路装置
２    処理制御装置
３、２３、４３  クロック制御信号生成装置
４、４Ａ、４Ｂ、４Ｃ、２４、２４Ａ、２４Ｂ、２４Ｃ、  演算装置
５、２５  クロックゲーティング回路
６、２６  演算ブロック
７、２７  遅延回路
８    変換回路  
９    演算回路  
１０、３０  第１のレジスタ
１１、３１  第２のレジスタ
１２  メモリ
１３  マルチプレクサ
１４  ３３、４４  レジスタ
１５  第１のマルチプレクサ
１６  第２のマルチプレクサ
１７  実行判定回路
３２  デコーダ
３４、４５  比較器
【図１】
0005231800.tif 000002
【図２】
0005231800.tif 000003
【図３】
0005231800.tif 000004
【図４】
0005231800.tif 000005
【図５】
0005231800.tif 000006
【図６】
0005231800.tif 000007
【図７】
0005231800.tif 000008
【図８】
0005231800.tif 000009
【図９】
0005231800.tif 000010
【図１０】
0005231800.tif 000011
【図１１】
0005231800.tif 000012
【図１２】
0005231800.tif 000013
【図１３】
0005231800.tif 000014
【図１４】
0005231800.tif 000015
【図１５】
0005231800.tif 000016
【図１６】
0005231800.tif 000017
【図１７】
0005231800.tif 000018