[go: up one dir, main page]

JP5231800B2 - 半導体集積回路装置および半導体集積回路装置のクロック制御方法 - Google Patents

半導体集積回路装置および半導体集積回路装置のクロック制御方法 Download PDF

Info

Publication number
JP5231800B2
JP5231800B2 JP2007334824A JP2007334824A JP5231800B2 JP 5231800 B2 JP5231800 B2 JP 5231800B2 JP 2007334824 A JP2007334824 A JP 2007334824A JP 2007334824 A JP2007334824 A JP 2007334824A JP 5231800 B2 JP5231800 B2 JP 5231800B2
Authority
JP
Japan
Prior art keywords
control signal
clock
processing
arithmetic
data
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
JP2007334824A
Other languages
English (en)
Other versions
JP2009157629A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007334824A priority Critical patent/JP5231800B2/ja
Priority to US12/341,147 priority patent/US8195975B2/en
Publication of JP2009157629A publication Critical patent/JP2009157629A/ja
Application granted granted Critical
Publication of JP5231800B2 publication Critical patent/JP5231800B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Advance Control (AREA)
  • Electronic Switches (AREA)
  • Logic Circuits (AREA)
  • Power Sources (AREA)
  • Executing Machine-Instructions (AREA)
  • Semiconductor Integrated Circuits (AREA)

Description

本発明は、パイプライン構造を持ち、データに依存して動作する、低消費電力を実現する半導体集積回路装置及び半導体集積回路装置のクロック制御方法に関する。
近年、半導体集積回路装置の高速化、大規模化に伴い、低消費電力化に対する要求が高まっている。半導体集積回路装置の消費電力削減手法の一つとして、クロックゲーティング技術が一般的である。
プロセッサに、クロックゲーティング技術を適用するものとして、特許文献1に記載の技術が挙げられる。特許文献1に記載の技術は、データに依存したクロックゲーティング機能を備えたプロセッサに関するものである。このプロセッサは、演算の開始を制御する処理制御装置、実際の処理を行う複数の演算装置、および、各演算装置へのクロック供給を行うクロック制御装置から構成される。各演算装置はパイプライン構造で接続される。各演算装置は、処理制御装置から演算起動信号を受けるとクロック制御装置へのクロック供給のリクエスト信号を有効にし、演算が終了するとリクエスト信号を無効とする。クロック制御装置は、各演算ユニットからのリクエスト信号が有効な場合のみ該当演算装置へクロック信号を供給する。
また、非特許文献1に記載の技術は、プロセッサのパイプライン構造に対するクロックゲーティング技術に関するものである。非特許文献1は、プロセッサのパイプライン構造の複数の段を一つのクロック供給の領域として、クロックゲーティング技術を適用する。各クロック供給領域へのクロック供給の是非は、実行命令の該当箇所をデコードし、判断する。例えば、プロセッサ内のクロック供給領域を、命令フェッチ部、命令デコード部、整数演算部、浮動小数点演算部、および、メモリ書き戻し部に分割した場合、浮動小数点演算命令を実行する際には、整数演算用の演算器に対するクロック供給を停止し、分岐命令を実行する際には、浮動小数点演算部やメモリ書き戻し部のクロック供給を停止する。
特開平11−167629号公報 Hai Li,et.al.著「Deterministic Clock Gating for Microprocessor Power Reduction」,in Proceedings of the HPCA−9,2003
しかしながら、特許文献1記載の技術によれば、処理制御装置が全ての演算装置の制御を行うため回路が複雑となる。また、全ての演算装置に対して別々に処理の設定や開始を制御するため、各演算装置へのクロック供給の制御も別々に処理することとなり、各演算装置に別々のクロック制御装置が必要となる。このため、制御装置の複雑化や個数の増大によりプロセッサの消費電力が増大する。
また、非特許文献1記載の技術によれば、プロセッサ内の同一クロックの供給領域ごとにクロック制御のための処理、例えば、命令のデコードなどを行う必要がある。このため、パイプラインの段ごとなどの、細粒度にクロック供給の領域を分割するとかえってプロセッサの消費電力の増大を招く。
本発明は、上記に鑑みてなされたものであって、単純な構造の処理制御装置とクロック制御信号生成装置とにより、細粒度のクロック供給領域に対して消費電力削減の効果を発揮することのできる半導体集積回路装置および半導体集積回路装置のクロック制御方法を提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、パイプライン接続され、データに対して演算処理を行う複数の演算装置と、システムクロック信号に同期して動作し、外部からデータの到着を知らせるデータ通知信号が入力されると、複数の前記演算装置を制御する処理制御信号を生成し出力する処理制御装置と、前記システムクロック信号に同期して動作し、前記処理制御信号が入力されると、前記演算装置へのクロック供給を制御するクロック制御信号を生成し出力するクロック制御信号生成装置と、を備え、前記演算装置は、前記システムクロック信号に同期して動作し、前記クロック制御信号が入力されると、前記クロック制御信号に基づいて、前記演算装置を動作させるゲーテッドクロック信号を生成し出力するクロックゲーティング回路と、前記ゲーテッドクロック信号に同期して動作し、前記データおよび前記処理制御信号が入力されると、前記データに対して前記処理制御信号が指示する処理を行い、処理後のデータおよび前記処理制御信号を後段に接続された前記演算装置へ出力する演算ブロックと、前記クロック制御信号が入力されると、前記クロック制御信号を前記処理後のデータおよび前記処理制御信号と同期するように、後段に接続された前記演算装置へ出力する出力回路と、を備え、前記クロック制御信号生成装置は、第1のクロック制御信号と第2のクロック制御信号の2つの前記クロック制御信号を生成し、前記第1のクロック制御信号は、前記処理制御信号が処理の実行を示している場合は前記クロック供給を行う旨を示し、前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示し、前記第2のクロック制御信号は、前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と異なっている場合は前記クロック供給を行う旨を示し、前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と同じ場合、および、前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示すこと、を特徴とする。
また、本発明は、パイプライン接続され、データに対して演算処理を行う複数の演算装置と、システムクロック信号に同期して動作し、外部からデータの到着を知らせるデータ通知信号が入力されると、複数の前記演算装置を制御する処理制御信号を生成し出力する処理制御装置と、前記システムクロック信号に同期して動作し、前記処理制御信号が入力されると、前記演算装置へのクロック供給を制御するクロック制御信号を生成し出力するクロック制御信号生成装置と、を備え、前記演算装置は、前記システムクロック信号に同期して動作し、前記クロック制御信号が入力されると、前記クロック制御信号に基づいて、前記演算装置を動作させるゲーテッドクロック信号を生成し出力するクロックゲーティング回路と、前記ゲーテッドクロック信号に同期して動作し、前記データおよび前記処理制御信号が入力されると、前記データに対して前記処理制御信号が指示する処理を行い、処理後のデータおよび前記処理制御信号を後段に接続された前記演算装置へ出力する演算ブロックと、前記クロック制御信号が入力されると、前記クロック制御信号を前記処理後のデータおよび前記処理制御信号と同期するように、後段に接続された前記演算装置へ出力する出力回路と、を備える半導体集積回路装置のクロック制御方法において、前記クロック制御信号生成装置が、第1のクロック制御信号を出力するステップと、前記クロック制御信号生成装置が、第2のクロック制御信号を出力するステップと、を含み、前記第1のクロック制御信号は、前記処理制御信号が処理の実行を示している場合は前記クロック供給を行う旨を示し、前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示し、前記第2のクロック制御信号は、前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と異なっている場合は前記クロック供給を行う旨を示し、前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と同じ場合、および、前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示すこと、を特徴とする。
また、本発明は、パイプライン接続され、データに対して演算処理を行う複数の演算装置と、システムクロック信号に同期して動作し、外部からデータの到着を知らせるデータ通知信号が入力されると、複数の前記演算装置を制御する処理制御信号を生成し出力する処理制御装置と、前記システムクロック信号に同期して動作し、前記処理制御信号が入力されると、前記演算装置へのクロック供給を制御するクロック制御信号を生成し出力するクロック制御信号生成装置と、を備え、前記演算装置は、前記システムクロック信号に同期して動作し、前記クロック制御信号が入力されると、前記クロック制御信号に基づいて、前記演算装置を動作させるゲーテッドクロック信号を生成し出力するクロックゲーティング回路と、前記ゲーテッドクロック信号に同期して動作し、前記データおよび前記処理制御信号が入力されると、前記データに対して前記処理制御信号が指示する処理を行い、処理後のデータおよび前記処理制御信号を後段に接続された前記演算装置へ出力する演算ブロックと、前記クロック制御信号が入力されると、前記クロック制御信号を前記処理後のデータおよび前記処理制御信号と同期するように、後段に接続された前記演算装置へ出力する出力回路と、を備える半導体集積回路装置のクロック制御方法において、前記クロック制御信号生成装置が、第1のクロック制御信号を出力するステップと、前記クロック制御信号生成装置が、第2のクロック制御信号を出力するステップとを含み、前記第1のクロック制御信号は、前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と異なっている場合、および、前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と同じであり、かつ、前記データの値が直前に処理を実行したデータの値と異なっている場合は前記クロック供給を行う旨を示し、前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と同じであり、かつ、前記データの値が直前に処理を実行したデータの値と同じ場合、および、前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示し、前記第2のクロック制御信号は、前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と異なっている場合は前記クロック供給を行う旨を示し、前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と同じ場合、および、前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示すこと、を特徴とする。
本発明によれば、処理制御装置が生成した処理制御信号からクロック制御信号生成装置が生成したクロック制御信号を、パイプラインを構成する演算装置のうち先頭の演算装置にのみ入力するだけで、各演算装置に対して独立したクロック供給の制御ができるので、1つのクロック制御信号生成装置による単純な構造で複数の演算装置全てを制御することができ、消費電力を削減することが可能となるという効果を奏する。
以下に添付図面を参照して、この発明にかかる半導体集積回路装置および半導体集積回路装置のクロック制御方法の最良な実施の形態を詳細に説明する。
(第1の実施の形態)
図1は、本発明の第1の実施の形態にかかる半導体集積回路装置の構成を示すブロック図である。半導体集積回路装置1は、予め入力したプログラムに従い、入力データに対して演算処理を実行し、その結果を出力する。半導体集積回路装置1には、システムクロック、実際に処理を実行するデータ、および、データの到着(入力)を通知するデータ通知信号が入力されるとともに、半導体集積回路装置1からは、処理が実行されたデータ(演算結果)、後述する処理制御信号、および、後述するクロック制御信号S0が出力される。半導体集積回路装置1は、処理制御装置2、クロック制御信号生成装置3、および、演算装置4(4A、4B、4C)を備えて構成されている。
処理制御装置2は、システムクロックに同期して動作し、データ通知信号が有効となると、あらかじめ入力したプログラムに従い、演算装置4(4A、4B、4C)を制御する処理制御信号を生成し出力する。なお、システムクロックは、図示しないPLLなどで作成され、外部から常時供給されているクロックである。なお、このシステムクロックは、処理制御装置2の外側でも階層的にクロックゲーティングすることができ、この場合は処理制御装置2内部のクロックツリー全てが停止するため更なる電力削減が可能となる。また、処理制御信号については、後ほど詳しく説明する。
クロック制御信号生成装置3は、システムクロックに同期して動作し、処理制御装置2が出力した処理制御信号の内容を判定し、演算装置4(4A、4B、4C)へのクロック供給を制御する。より具体的には、クロック制御信号生成装置3は、演算装置4(4A、4B、4C)の一部を構成する後述のクロックゲーティング回路5を制御するクロック制御信号S0を生成し、演算装置4Aへ出力する。なお、クロック制御信号生成装置3は、処理制御信号が処理を実行する旨の内容であれば、クロック供給を行う旨、すなわち、有効を意味するクロック制御信号S0を生成し、処理制御信号が処理を実行しない旨の内容であれば、クロック供給を行わない旨、すなわち、無効を意味するクロック制御信号S0を生成する。クロック制御信号生成装置3については、後ほど詳しく説明する。
演算装置4(4A、4B、4C)は、データに対する演算処理を行う。演算装置4(4A、4B、4C)は、その順番でパイプライン接続しており、互いに並列動作が可能であるので、データ、処理制御信号、および、クロック制御信号S0がパイプライン上を同期して伝播する。なお、本実施の形態では、3つの演算装置4A、4B、4Cがパイプライン接続しているが、半導体集積回路装置の演算装置の個数は、1つ以上の任意の数で構成することが可能である。なお、演算装置4A、4B、4Cの構成および機能は同一であるため、以後の演算装置4を構成する各部分の説明では、同一の符号で説明する。
図2は、演算装置4の詳細な構成を示すブロック図である。演算装置4は、クロックゲーティング回路5、演算ブロック6、および、遅延回路7を備えて構成される。
クロックゲーティング回路5は、システムクロックに同期して動作し、クロック制御信号S0が有効ならば、ゲーテッドクロック信号G0を生成し出力する一方、クロック制御信号S0が無効ならば、ゲーテッドクロック信号G0を生成せず出力しない。なお、ゲーテッドクロック信号G0とは、演算ブロック6を動作させる、より具体的には、後述する演算回路9での処理結果のデータ保存、および、処理制御信号の保存を決定する信号である。クロックゲーティング回路5は、例えば、システムクロックとクロック制御信号S0とを入力とする論理積ゲートで実現可能であるが、上記の要件を満たしていれば構造は特に限定されない。
演算ブロック6は、ゲーテッドクロック信号G0に同期して動作し、処理制御信号に従い入力データに処理を実行し、処理データと処理制御信号とを出力する。演算ブロック6は、変換回路8、演算回路9、第1のレジスタ10、および、第2のレジスタ11を備えて構成される。変換回路8は、処理制御信号をあらかじめ割り当てた命令に変換する。なお、変換回路8における処理制御信号から命令への変換は、あらかじめ入力されたプログラムにより制御される。変換回路8については、後ほど詳しく説明する。演算回路9は、命令に従いデータを処理し、例えば、プロセッサのALUなどである。第1のレジスタ10は、ゲーテッドクロック信号G0と同期して動作し、処理結果のデータを保存する。第2のレジスタ11は、ゲーテッドクロック信号G0と同期して動作し、処理制御信号を保存する。
遅延回路7は、システムクロックに同期して動作し、演算回路9で処理されたデータ(演算結果)および処理制御信号が演算装置4から出力されるまで、クロック制御信号S0の演算装置4からの出力を遅延する。すなわち、遅延回路7は、クロック制御信号S0を処理データ(演算結果)および処理制御信号の出力と同じサイクルになるように遅延して、言い換えれば、クロック制御信号S0を処理データ(演算結果)および処理制御信号と同期するように出力する回路である。
本実施の形態では、演算装置4(4A、4B、4C)に、データと処理制御信号とが入力されると、ゲーテッドクロック信号G0に同期して1サイクルで処理データと処理制御信号とが出力される。この場合、遅延回路7はクロック制御信号S0をシステムクロックに同期して1サイクル遅延して出力する。図に示すように、遅延回路7は、システムクロックに同期して動作する1つのフリップフロップで構成される。
なお、演算装置がデータと処理制御信号とを入力してから演算結果が出力するまでの時間が処理制御信号の内容によらず一定であれば、処理に2サイクル以上要しても構わない。その場合、クロック制御信号S0が入力から出力に要する時間も、同じサイクル数だけ遅延する必要がある。例えば、演算装置4の遅延が2サイクルの場合は2つのフリップフロップが必要となる。なお、遅延回路7は、一定時間の遅延を発生できれば図の構成に特に限定されない。
(処理制御信号)
次に、処理制御装置2が生成し出力する処理制御信号について詳しく説明する。上述したように、処理制御信号は、演算装置4(4A、4B、4C)を制御する。図3は、本実施の形態にかかる処理制御信号の構成を示す図である。処理制御信号は、処理の実行の有無を示す実行制御信号と、演算装置4(4A、4B、4C)の処理を特定する処理識別子とで構成される。演算装置4(4A、4B、4C)は、実行制御信号が処理の実行を示していれば、すなわち、実行制御信号が有効ならば、処理識別子に示す処理を実行する。実行制御信号が処理の実行を示していなければ、すなわち、実行制御信号が無効ならば、処理識別子が何であるかに関わらず処理を実行しない。
通常、処理識別子は、演算回路9に入力する命令に比べ、非常に少ないビット数で構成できる。例えば、16ビットのプロセッサでは、命令は16ビットであるが、64種類の命令しか利用しないならば、命令識別子は6ビットで充分である。これにより、演算装置4(4A、4B、4C)の第2のレジスタ11の記憶容量を削減したり、クロック制御信号生成装置3の構造を単純にしたりできるので、半導体集積回路装置1の消費電力を削減できる。
なお、処理制御信号は、演算装置4(4A、4B、4C)の処理を特定する信号であれば、上記の構成に限定されない。例えば、処理制御信号は、実行制御信号は備えず、代わりに処理識別子の一部にNOP(No Operation)を用意してもよい。また、処理制御信号が処理識別子を備えず、演算回路9が直接実行可能な命令を利用してもよい。この場合は、演算ブロック6に変換回路8が不要となるが、演算回路9が同一の命令しか実行できないため、処理の柔軟性が乏しい。さらに、VLIW(Very Long Instruction Word)プロセッサのように、処理制御信号が各演算装置の演算ブロック6ごとに異なる命令を複数備えてもよいし、各演算装置の演算ブロック6ごとに異なる処理識別子を複数備えてもよい。
(変換回路)
次に、変換回路8について詳しく説明する。上述したように、変換回路8は、処理制御信号を特定の命令へ変換する機能を備える。図4は、変換回路8の構成の一例を示す図である。図4における変換回路8は、メモリ12とマルチプレクサ13とを備えて構成される。変換回路8は、命令をメモリ12の各アドレスごとに保存し、処理識別子をポインタとすることで、処理識別子に対して一意に命令を割り当てる。そして、マルチプレクサ13には、処理識別子に対応する命令と実行制御信号とが入力され、実行制御信号が有効ならば命令を選択し、実行制御信号が無効ならばNOPを選択する。
図5は、変換回路8の構成の他の一例を示す図である。図5における変換回路8は、レジスタ14、第1のマルチプレクサ15、および、第2のマルチプレクサ16とを備えて構成される。変換回路8は、命令をレジスタ14に保存し、処理識別子を第1のマルチプレクサ15の選択信号とすることで、処理識別子に対して、一意に命令を割り当てる。そのため、レジスタ14は、命令を保存するため1つ以上のレジスタ部を備える。そして、第2のマルチプレクサ16には、処理識別子に対応する命令と実行制御信号とが入力され、実行制御信号が有効ならば命令を選択し、実行制御信号が無効ならばNOPを選択する。なお、変換回路8は、処理制御信号を一意の命令に変換する機能を備えていれば、図4および図5の構成に特に限定されない。
(クロック制御信号生成装置)
次に、クロック制御信号生成装置3について詳しく説明する。図6は、クロック制御信号生成装置3の構成を示す図である。上述したように、クロック制御信号生成装置3は、処理制御信号の内容を判定し、クロックゲーティング回路5を制御するクロック制御信号S0を生成し、演算装置4Aへ出力する。クロック制御信号生成装置3は、実行判定回路17を備えて構成される。
実行判定回路17は、処理制御信号をデコードし処理を実行する旨の内容か否かを判定する。例えば、処理制御信号が実行制御信号を備えるのならば、実行制御信号が有効か無効かを判定する。図7は、クロック制御信号生成装置3の入力(処理制御信号の内容)と出力(クロック制御信号S0)の関係を示す図である。なお、実行判定回路17の構造は、処理制御信号の構成により異なるが、処理制御信号の内容が処理を実行するか否かを判定する機能を有すれば特に限定しない。
(半導体集積回路装置の動作)
次に、半導体集積回路装置1がどのように入力データに対して処理を実行し、演算結果を出力するかについて、具体的に説明する。
半導体集積回路装置1にデータとデータ通知信号とが入力されると、処理制御装置2は、システムクロックに同期して動作し、あらかじめ入力したプログラムに従い処理制御信号を生成し、生成した処理制御信号をクロック制御信号生成装置3と演算装置4Aへ出力する。
クロック制御信号生成装置3は、システムクロックに同期して動作し、処理制御信号を入力すると、クロック制御信号S0を生成し、演算装置4Aへ出力する。
演算装置4Aは、データ、処理制御信号、および、クロック制御信号S0を入力すると、データに対して処理を開始する。
演算装置4Aのクロックゲーティング回路5は、システムクロックに同期して動作し、クロック制御信号S0が有効を意味している場合、ゲーテッドクロック信号G0を生成し、演算ブロック6へ出力する。クロックゲーティング回路5は、クロック制御信号S0が無効を意味している場合、ゲーテッドクロック信号G0を生成しないので、演算ブロック6へ出力しない。
演算装置4Aの演算ブロック6は、ゲーテッドクロック信号G0を入力した場合、ゲーテッドクロック信号G0に同期して動作する。変換回路8は、処理制御信号内の処理識別子を特定の命令へ変換し、演算回路9は、変換された命令に従いデータを処理する。第1のレジスタ10は、ゲーテッドクロック信号G0と同期して動作し、処理結果のデータを保存する。第2のレジスタ11は、ゲーテッドクロック信号G0と同期して動作し、処理制御信号を保存する。そして、演算ブロック6は、処理データと処理制御信号とを出力する。
演算装置4Aの遅延回路7は、システムクロックに同期して動作し、クロック制御信号S0を遅延して出力する。従って、演算装置4Aは、処理データ、処理制御信号、および、クロック制御信号S0を同じタイミングで(同期して)出力する。
演算装置4Aから出力された、処理データ、処理制御信号、および、クロック制御信号S0は、そのまま同じタイミングで演算装置4Bへ入力される。演算装置4Bは、演算装置4Aと同様の処理を行い、処理データ、処理制御信号、および、クロック制御信号S0を同じタイミングで出力する。
演算装置4Bから出力された、処理データ、処理制御信号、および、クロック制御信号S0は、そのまま同じタイミングで演算装置4Cへ入力される。演算装置4Cは、演算装置4Bと同様の処理を行い、処理データ、処理制御信号、および、クロック制御信号S0を同じタイミングで出力する。
このようにして、半導体集積回路装置1から、処理データ(演算結果)、処理制御信号、および、クロック制御信号S0が出力され、半導体集積回路装置1における処理は終了する。
なお、演算装置4Aの処理において、クロックゲーティング回路5がゲーテッドクロック信号G0を生成せず、従ってゲーテッドクロック信号G0が演算ブロック6へ入力されなかった場合、第1のレジスタ10が処理結果のデータを保存できず、第2のレジスタ11が処理制御信号を保存できないので、演算装置4Aは、クロック制御信号S0だけを出力する。その後、クロック制御信号S0だけが、演算装置4Aから演算装置4B、演算装置4Cを通過し、半導体集積回路装置1から出力される。
言い換えれば、半導体集積回路装置1に入力されたデータが処理を不要とする場合は、処理制御信号は処理を実行しない旨の内容となり、クロック制御信号S0は無効を意味するため、ゲーテッドクロック信号G0は生成されず、演算装置4においてデータ処理は行われず、半導体集積回路装置1が演算結果を出力することはない。
このように、第1の実施の形態にかかる半導体集積回路装置によれば、処理制御装置が生成した処理制御信号からクロック制御信号生成装置が生成したクロック制御信号を、パイプラインを構成する演算装置のうち先頭の演算装置にのみ入力するだけで、各演算装置に対して独立したクロック供給の制御ができるので、1つのクロック制御信号生成装置による単純な構造で複数の演算装置全てを制御することができ、消費電力を削減することが可能となる。
さらに、第1の実施の形態にかかる半導体集積回路装置によれば、演算処理が不要なデータが入力されると、クロック制御信号生成装置がクロック供給を行わない旨のクロック制御信号を出力し、クロックゲーティング回路がゲーテッドクロック信号を生成しないので、演算装置が演算処理を行わず、消費電力を削減することが可能となる。
(第2の実施の形態)
第1の実施の形態では、クロック制御信号生成装置は、クロック制御信号を1つ生成し出力していたが、第2の実施の形態では、クロック制御信号生成装置は、クロック制御信号を2つ生成し出力する。第2の実施の形態について、添付図面を参照して説明する。本実施の形態にかかる半導体集積回路装置の構成について、第1の実施の形態と異なる部分を説明する。他の部分については第1の実施の形態と同様であるので、同一の符号が付された箇所については、上述した説明を参照し、ここでの説明を省略する。
図8は、本発明の第2の実施の形態にかかる半導体集積回路装置の構成を示すブロック図である。半導体集積回路装置21は、予め入力したプログラムに従い、入力データに対して処理を実行し、演算結果を出力する。半導体集積回路装置21には、システムクロック、実際に処理を実行するデータ、および、データの到着(入力)を通知するデータ通知信号が入力されるとともに、半導体集積回路装置21からは、処理が実行されたデータ(演算結果)、処理制御信号、および、後述するクロック制御信号S1およびクロック制御信号S2が出力される。半導体集積回路装置21は、処理制御装置2、クロック制御信号生成装置23、および、演算装置24(24A、24B、24C)を備えて構成されている。
クロック制御信号生成装置23は、システムクロックに同期して動作し、処理制御装置2が出力した処理制御信号の内容を判定し、演算装置24(24A、24B、24C)へのクロック供給を制御する。より具体的には、クロック制御信号生成装置23は、演算装置24(24A、24B、24C)の一部を構成する後述のクロックゲーティング回路25を制御するクロック制御信号S1およびクロック制御信号S2を生成し、演算装置24Aへ出力する。ここで、クロック制御信号生成装置23は、処理制御信号が処理を実行する旨の内容であれば、実行する処理の内容に関わらず、クロック供給を行う旨、すなわち、有効を意味するクロック制御信号S1、処理制御信号が処理を実行しない旨の内容であれば、実行する処理の内容に関わらず、クロック供給を行わない旨、すなわち、無効を意味するクロック制御信号S1を生成する。
さらに、クロック制御信号生成装置23は、処理制御信号が処理を実行する旨の内容であり、かつ、実行する処理の内容が直前に処理した内容と異なっていれば、クロック供給を行う旨、すなわち、有効を意味するクロック制御信号S2を生成する。また、クロック制御信号生成装置23は、処理制御信号が処理を実行する旨の内容であり、かつ、実行する処理の内容が直前に処理した内容と同じであれば、クロック供給を行わない旨、すなわち、無効を意味するクロック制御信号S2を生成する。また、クロック制御信号生成装置23は、処理制御信号が処理を実行しない旨の内容であれば、実行する処理の内容に関わらず、クロック供給を行わない旨、すなわち、無効を意味するクロック制御信号S2を生成する。クロック制御信号生成装置23については、後ほど詳しく説明する。
演算装置24(24A、24B、24C)は、データに対する演算処理を行う。演算装置24(24A、24B、24C)は、その順番でパイプライン接続しており、互いに並列動作が可能であるので、データ、処理制御信号、クロック制御信号S1、および、クロック制御信号S2がパイプライン上を同期して伝播する。なお、本実施の形態では、3つの演算装置24A、24B、24Cがパイプライン接続しているが、半導体集積回路装置の演算装置の個数は、1つ以上の任意の数で構成することが可能である。なお、演算装置24A、24B、24Cの構成および機能は同一であるため、以後の演算装置24を構成する各部分の説明では、同一の符号で説明する。
図9は、演算装置24の詳細な構成を示すブロック図である。演算装置24は、クロックゲーティング回路25、演算ブロック26、および、遅延回路27を備えて構成される。
クロックゲーティング回路25は、システムクロックに同期して動作し、クロック制御信号S1およびクロック制御信号S2から、ゲーテッドクロック信号G1およびゲーテッドクロック信号G2を生成する。具体的には、クロックゲーティング回路25は、クロック制御信号S1が有効ならば、ゲーテッドクロック信号G1を生成し出力する一方、クロック制御信号S1が無効ならば、ゲーテッドクロック信号G1を生成せず出力しない。なお、ゲーテッドクロック信号G1とは、演算ブロック26を動作させる。より具体的には、演算回路9での処理結果のデータ保存を決定する信号である。
さらに、クロックゲーティング回路25は、システムクロックに同期して動作し、クロック制御信号S2が有効ならば、ゲーテッドクロック信号G2を生成し出力する一方、クロック制御信号S2が無効ならば、ゲーテッドクロック信号G2を生成せず出力しない。なお、ゲーテッドクロック信号G2とは、演算ブロック6を動作させる。より具体的には、処理制御信号の保存を決定する信号である。クロックゲーティング回路25は、例えば、システムクロックとクロック制御信号S1とを入力とする論理積ゲート、および、システムクロック信号とクロック制御信号S2とを入力とする論理積ゲートの2つの論理積ゲートで実現できるが、上記の要件を満たしていれば構造は特に限定されない。
演算ブロック26は、ゲーテッドクロック信号G1およびゲーテッドクロック信号G2に同期して動作し、処理制御信号に従い入力データに処理を実行し、処理データと処理制御信号とを出力する。演算ブロック26は、変換回路8、演算回路9、第1のレジスタ30、および、第2のレジスタ31を備えて構成される。変換回路8は、メモリ12とマルチプレクサ13とを備えて構成される。第1のレジスタ30は、ゲーテッドクロック信号G1と同期して動作し、処理結果のデータを保存する。第2のレジスタ31は、ゲーテッドクロック信号G2と同期して動作し、処理制御信号を保存する。
遅延回路27は、システムクロックに同期して動作し、演算回路9で処理されたデータ(演算結果)および処理制御信号が演算装置24から出力されるまで、クロック制御信号S1およびクロック制御信号S2の演算装置24からの出力を遅延する。すなわち、遅延回路27は、クロック制御信号S1およびクロック制御信号S2を処理データ(演算結果)および処理制御信号の出力と同じサイクルになるように遅延して、言い換えれば、クロック制御信号S1およびクロック制御信号S2を処理データ(演算結果)および処理制御信号と同期するように出力する回路である。
本実施の形態では、演算装置24(24A、24B、24C)に、データと処理制御信号とが入力されると、ゲーテッドクロック信号G1およびゲーテッドクロック信号G2に同期して1サイクルで処理データと処理制御信号とが出力される。この場合、遅延回路27はクロック制御信号S1およびクロック制御信号S2をシステムクロックに同期して1サイクル遅延して出力する。図に示すように、遅延回路27は、システムクロックに同期して動作するフリップフロップで構成される。
(クロック制御信号生成装置)
次に、クロック制御信号生成装置23について詳しく説明する。図10は、クロック制御信号生成装置23の構成を示す図である。上述したように、クロック制御信号生成装置23は、処理制御信号の内容を判定し、クロックゲーティング回路25を制御するクロック制御信号S1およびクロック制御信号S2を生成し、演算装置24Aへ出力する。クロック制御信号生成装置23は、デコーダ32、レジスタ33、および、比較器34を備えて構成される。デコーダ32は、処理制御信号P1から実行制御信号J1と処理識別子I1とを抽出する。レジスタ33は、システムクロックに同期し、実行制御信号J1が有効ならば、処理識別子I1を保存する。レジスタ33は、ライトイネーブル信号つきのレジスタである。
比較器34は、デコーダ32により抽出された処理識別子I1とレジスタ33から出力された処理識別子I0の値が異なれば、比較判定信号H1を有効として出力し、処理識別子I1と処理識別子I0の値が同じならば、比較判定信号H1を無効とし出力する。ここで、処理識別子I0とは、処理制御信号P1より前にクロック制御信号生成装置23に入力され、かつ、その実行制御信号J0が有効である、処理制御信号P0の処理識別子を意味する。すなわち、処理識別子I1がレジスタ33に保存される直前に保存されていた処理識別子である。
そして、デコーダ32により抽出された実行制御信号J1が有効ならば、クロック制御信号S1は有効を意味する信号となり、実行制御信号J1が無効ならば、クロック制御信号S1は無効を意味する信号となる。また、クロック制御信号S2は、比較判定信号H1と実行制御信号J1との論理積を取った結果を表す信号となる。
図11は、クロック制御信号生成装置23の入力(処理制御信号の内容)と出力(クロック制御信号S1およびクロック制御信号S2)の関係を示す図である。図に書かれている直前に処理した内容とは、半導体集積回路装置21が直前に実行した処理、すなわち、処理制御信号の実効制御信号が直近で有効だった時に、処理制御信号の処理識別子により特定された処理を意味する。
例えば、直前のサイクルとその1つ前のサイクルでは、クロック制御信号生成装置23に入力された処理制御信号の実行制御信号が無効であったが、さらに1つ前のサイクル(3サイクル前)で処理制御信号の実行制御信号が有効であった場合、レジスタ33に保存されている処理識別子Iは、3サイクル前に入力された処理制御信号の処理識別子である。
クロック制御生成装置23は、入力した処理制御信号の内容が処理実行であり、かつ、具体的な処理内容が直前に実行した処理と異なる場合、クロック制御信号S1とクロック制御信号S2とを両方有効として出力する。また、クロック制御生成装置23は、入力した処理制御信号の内容が処理実行であり、かつ、具体的な処理内容が直前に実行した処理と同じ場合、クロック制御信号S1を有効、クロック制御信号S2を無効として出力する。さらに、クロック制御生成装置23は、入力した処理制御信号の内容が処理の未実行である場合、実行する処理の内容に関わらずクロック制御信号S1とクロック制御信号S2とを両方無効として出力する。
(半導体集積回路装置の動作)
次に、半導体集積回路装置21がどのように入力データに対して処理を実行し、演算結果を出力するかについて、具体的に説明する。
半導体集積回路装置21にデータとデータ通知信号とが入力されると、処理制御装置2は、システムクロックに同期して動作し、あらかじめ入力したプログラムに従い処理制御信号を生成し、生成した処理制御信号をクロック制御信号生成装置23と演算装置24Aへ出力する。
クロック制御信号生成装置23は、システムクロックに同期して動作し、処理制御信号を入力すると、クロック制御信号S1およびクロック制御信号S2を生成し、演算装置24Aへ出力する。
演算装置24Aは、データ、処理制御信号、および、クロック制御信号S1およびクロック制御信号S2を入力すると、データに対して処理を開始する。
演算装置24Aのクロックゲーティング回路25は、システムクロックに同期して動作し、クロック制御信号S1が有効を意味している場合、ゲーテッドクロック信号G1を生成し、演算ブロック26へ出力する。クロックゲーティング回路25は、クロック制御信号S1が無効を意味している場合、ゲーテッドクロック信号G1を生成しないので、演算ブロック26へ出力しない。
さらに、演算装置24Aのクロックゲーティング回路25は、システムクロックに同期して動作し、クロック制御信号S2が有効を意味している場合、ゲーテッドクロック信号G2を生成し、演算ブロック26へ出力する。クロックゲーティング回路25は、クロック制御信号S2が無効を意味している場合、ゲーテッドクロック信号G2を生成しないので、演算ブロック26へ出力しない。
演算装置24Aの演算ブロック26は、ゲーテッドクロック信号G1およびゲーテッドクロック信号G2を入力した場合、ゲーテッドクロック信号G1およびゲーテッドクロック信号G2に同期して動作する。
変換回路8は、処理制御信号内の処理識別子を特定の命令へ変換し、演算回路9は、変換された命令に従いデータを処理する。第1のレジスタ30は、ゲーテッドクロック信号G1と同期して動作し、処理結果のデータを保存する。第2のレジスタ31は、ゲーテッドクロック信号G2と同期して動作し、処理制御信号を保存する。そして、演算ブロック26は、処理データと処理制御信号とを出力する。
なお、クロックゲーティング回路25がゲーテッドクロック信号G2を生成せず、従ってゲーテッドクロック信号G2が演算ブロック26へ入力されなかった場合、第2のレジスタ31は動作せず、第2のレジスタ31には以前に保存された処理制御信号がそのまま保存されたままとなる。すなわち、今回入力された処理制御信号と、以前に入力され第2のレジスタ31に保存されていた処理制御信号とは同じであるので、演算装置24Aでは今回入力された処理制御信号に基づいてデータの処理が行われるが、以後の演算装置24Bおよび24Cでは以前に保存された処理制御信号に基づいてデータの処理が行われることになる。そして、演算装置24Bの第2のレジスタ31および演算装置24Cの第2のレジスタ31が動作しないことにより、半導体集積回路装置の消費電力を削減することが可能となる。
演算装置24Aの遅延回路27は、システムクロックに同期して動作し、クロック制御信号S1およびクロック制御信号S2を遅延して出力する。従って、演算装置24Aは、処理データ、処理制御信号、および、クロック制御信号S1およびクロック制御信号S2を同じタイミングで(同期して)出力する。
演算装置24Aから出力された、処理データ、処理制御信号、および、クロック制御信号S1およびクロック制御信号S2は、そのまま同じタイミングで演算装置24Bへ入力される。演算装置24Bは、演算装置24Aと同様の処理を行い、処理データ、処理制御信号、および、クロック制御信号S1およびクロック制御信号S2を同じタイミングで出力する。
演算装置24Bから出力された、処理データ、処理制御信号、および、クロック制御信号S1およびクロック制御信号S2は、そのまま同じタイミングで演算装置24Cへ入力される。演算装置24Cは、演算装置24Bと同様の処理を行い、処理データ、処理制御信号、および、クロック制御信号S1およびクロック制御信号S2を同じタイミングで出力する。
このようにして、半導体集積回路装置21から、処理データ(演算結果)、処理制御信号、および、クロック制御信号S1およびクロック制御信号S2が出力され、半導体集積回路装置21における処理は終了する。
なお、演算装置24Aの処理において、クロックゲーティング回路25がゲーテッドクロック信号G1を生成せず、従ってゲーテッドクロック信号G1が演算ブロック26へ入力されなかった場合、第1のレジスタ30が処理結果のデータを保存できないので、演算装置24Aは、クロック制御信号S1およびクロック制御信号S2だけを出力する。その後、クロック制御信号S1およびクロック制御信号S2だけが、演算装置24Aから演算装置24B、演算装置24Cを通過し、半導体集積回路装置21から出力される。
言い換えれば、半導体集積回路装置21に入力されたデータが処理を不要とする場合は、処理制御信号は処理を実行しない旨の内容となり、クロック制御信号S1は無効を意味するため、ゲーテッドクロック信号G1は生成されず、演算装置24においてデータ処理は行われず、半導体集積回路装置21が演算結果を出力することはない。
(演算処理例)
次に、半導体集積回路装置21が行う演算処理の一例を説明する。本例では、演算装置24(24A、24B、24C)は、二項演算が実行可能な演算器とし、半導体集積回路装置21が以下の様なプログラムに基づいて演算処理を行う場合について説明する。
for(i=0;i<SIZE;i=i+1)
{ Y[i] = ( R[i]+2G[i]+B[i])>>2;
Co[i] = ( R[i] −B[i])>>1;
Cg[i] = (−R[i]+2G[i]−B[i])>>2;}
本プログラムはH.264符号化における、RGB色空間からYCC色空間への変換を行う色変換プログラム(色変換式)である。ここで、色変換プログラム中の変数SIZEは、処理する画素数を示す。そして、この色変換プログラムを2項演算のみに分割すると以下のようになる。
for(i=0;i<SIZE;i=i+1)
{式(1) L[i] = R[i]+B[i];
式(2) M[i] = R[i]−B[i];
式(3) Co[i] = M[i]>>1;
式(4) N[i] = G[i]<<1;
式(5) O[i] = N[i]+L[i];
式(6) P[i] = N[i]−L[i];
式(7) Y[i] = O[i]>>2;
式(8) Cg[i] = P[i]>>2;}
半導体集積回路装置21が2項演算のみに分割した色変換プログラムに基づいて演算処理を行う場合、例えば、式(1)〜式(8)を、演算装置24A、24B、24Cにそれぞれ割り当てる。図12は、半導体集積回路装置21が色変換のプログラムを実行した場合に、演算装置24A、24B、24Cに割り当てられる処理の一例を示した図である。
本例の場合、演算装置24Aのメモリ12のアドレスに、式(1)、式(4)、式(7)が保存され、演算装置24Bのメモリ12のアドレスに、式(2)、式(5)、式(8)が保存され、演算装置24Cのメモリ12のアドレスに、式(3)、式(6)が保存されている。
そして、演算装置24Aは、処理制御信号の処理識別子が0の場合は、式(1)の計算を行い、処理制御信号の処理識別子が1の場合は、式(4)の計算を行い、処理制御信号の処理識別子が2の場合は、式(7)の計算を行う。演算装置24Bは、処理制御信号の処理識別子が0の場合は、式(2)の計算を行い、処理制御信号の処理識別子が1の場合は、式(5)の計算を行い、処理制御信号の処理識別子が2の場合は、式(8)の計算を行う。演算装置24Cは、処理制御信号の処理識別子が0の場合は、式(3)の計算を行い、処理制御信号の処理識別子が1の場合は、式(6)の計算を行い、処理制御信号の処理識別子が2の場合は、計算を行わない。
初めに、演算装置24Aに、入力データとして、R[i]およびB[i]、処理制御信号の処理識別子として0が入力されると、演算装置24Aは、式(1)の計算を行い、R[i]、B[i]、および、式(1)の計算結果のL[i]を演算装置24Bに出力する。演算装置24Bは、式(2)の計算を行い、L[i]、および、式(2)の計算結果のM[i]を出力する。ここで、R[i]およびB[i]は、演算装置24Cの式(3)では不要であるので、演算装置24Cに出力されても出力されなくてもどちらでもよい。演算装置24Cは、式(3)の計算を行い、L[i]、および、式(3)の計算結果のCo[i]を出力データとして出力し、L[i]およびCo[i]は図示しない記憶部に記憶される。
次に、演算装置24Aに、入力データとして、R[i+1]およびB[i+1]、処理制御信号の処理識別子として0が入力された場合、演算装置24Aは、式(1)の計算を行い、R[i+1]、B[i+1]、および、式(1)の計算結果のL[i+1]を演算装置24Bに出力し、以後同様の処理を繰り返す。
一方、演算装置24Aに、入力データとして、L[i]およびG[i]、処理制御信号の処理識別子として1が入力された場合、演算装置24Aは、式(4)の計算を行い、L[i]、および、式(4)の計算結果のN[i]を演算装置24Bに出力する。演算装置24Bは、式(5)の計算を行い、L[i]、N[i]、および、式(5)の計算結果のO[i]を出力する。演算装置24Cは、式(6)の計算を行い、O[i]、および、式(6)の計算結果のP[i]を出力データとして出力し、O[i]およびP[i]は図示しない記憶部に記憶される。
最後に、演算装置24Aに、入力データとして、計算されたO[i]およびP[i]、処理制御信号の処理識別子として2が入力された場合、演算装置24Aは、式(7)の計算を行い、P[i]、および、式(7)の計算結果のY[i]を演算装置24Bに出力する。演算装置24Bは、式(8)の計算を行い、Y[i]、および、式(8)の計算結果のCg[i]を出力する。演算装置24Cは、計算を行わず、そのまま、Y[i]およびCg[i]を出力データとして出力し、Y[i]およびCg[i]は図示しない記憶部に記憶される。以上の処理を経て、Y[i]、Co[i]、および、Cg[i]が求められ、RGB色空間からYCC色空間への変換が行われる。
図13は、半導体集積回路装置21において、上記プログラムを実行した場合のタイムチャートの一例を示した図である。なお、本例では、6画素に対して演算処理を行っており、より詳しくは、演算処理は、3画素ずつ2回に分けて行われている。
図の入力データ[i]は、外部から入力される(画素に対応する)データを示しており、白色の部分はデータの入力が有効であることを示す。また、白色の部分に記載されている数字は、上記プログラム(入力データ)の変数i(0〜5)、すなわち、何番目の画素に対応するデータが入力されているのかを示す。
図の処理識別子は、演算装置に入力される処理識別子を示しており、白色の部分は実行制御信号が有効であることを示す。また、白色の部分に記載されている数字は、処理識別子の値(0〜2)を示す。
図の演算装置24A、24B、24Cにおけるクロック制御信号S1およびクロック制御信号S2は、制御信号の状態を示しており、白色の部分は制御信号が有効であることを、灰色の部分は制御信号が無効であることを示す。また、クロック制御信号S1の白色の部分に記載されている数字は、上記プログラム(入力データ)の変数i(0〜5)を示し、クロック制御信号S2の白色の部分に記載されている数字は、処理識別子の値(0〜2)を示す。
本例では、6画素を3画素ずつ2回に分けて処理を行うので、連続する3つのデータ(i=0〜2)に対する演算処理(YCC色空間への変換)が完了した後に、次の3つのデータ(i=3〜5)に対する演算処理(YCC色空間への変換)が行われる。そのため、1つの画素においてYCC色空間への変換処理が終了するまでの時間は、9サイクルとなる。
演算装置24A、24B、24Cのクロック制御信号S1は、18サイクル連続でデータが入力されるため、18サイクル連続で有効となる。一方、クロック制御信号S2は、3サイクルごとに命令が変更になるため、3サイクルに1回有効となる。
また、クロック制御信号S1およびクロック制御信号S2は、遅延回路27により入力データや処理識別子(処理制御信号)と同期して、演算装置24A、24B、24Cの間を伝播する。このため、同一の処理制御信号を用いることで、各演算装置が処理を実行する場合のみクロックを供給することが可能である。
図14は、半導体集積回路装置21において、上記プログラムを実行した場合のタイムチャートの他の一例を示した図である。なお、本例では、6画素に対して演算処理を行っており、より詳しくは、演算処理は、6画素が1度に連続して行われている。
本例では、6画素の演算処理を1度に連続して行うので、6つのデータ(i=0〜5)に対する演算処理(YCC色空間への変換)が連続して行われる。そのため、1つの画素においてYCC色空間への変換処理が終了するまでの時間は、15サイクルとなる。
演算装置24A、24B、24Cのクロック制御信号S1は、18サイクル連続でデータが入力されるため、18サイクル連続で有効となる。一方、クロック制御信号S2は、6サイクルごとに命令が変更になるため、6サイクルに1回有効となる。
このため、図13で説明したような、3画素ずつ2回に分けて演算処理を行う場合に比べて、1つの画素のYCC色空間への変換処理が終了するまでの時間、すなわち、各画素の変換結果を出力するレイテンシは増大する。一方、命令識別子の変化によるクロック制御信号S2が有効になる回数は減少するため、半導体集積回路装置21における電力削減に効果がある。
ここで、3画素ずつ2回に分けて演算処理を行う場合と、6画素を1度で演算処理を行う場合のいずれも、演算結果のスループットには変化がないため、レイテンシの制約が小さい処理では、なるべく同一処理識別子での演算処理を連続して行うことで、電力の削減を行うことが可能である。
このように、第2の実施の形態にかかる半導体集積回路装置によれば、要求された処理内容が直前に処理した内容と同じ場合には、クロック制御信号生成装置がクロック供給を行わない旨のクロック制御信号を出力し、クロックゲーティング回路が処理制御信号を改めて保存するゲーテッドクロック信号を生成しないので、演算装置は内部のレジスタに既に保存された処理制御信号を使用し、レジスタが改めて同じ処理制御信号を保存する動作をする必要がなくなるので、半導体集積回路装置の消費電力を削減することが可能となる。
(第3の実施の形態)
第2の実施の形態では、クロック制御信号生成装置は、処理制御信号の内容からクロック制御信号を生成し出力していたが、第3の実施の形態では、クロック制御信号生成装置は、処理制御信号の内容と入力データの内容からクロック制御信号を生成し出力する。第3の実施の形態について、添付図面を参照して説明する。本実施の形態にかかる半導体集積回路装置の構成について、第2の実施の形態と異なる部分を説明する。他の部分については第2の実施の形態と同様であるので、同一の符号が付された箇所については、上述した説明を参照し、ここでの説明を省略する。
図15は、本発明の第3の実施の形態にかかる半導体集積回路装置の構成を示すブロック図である。半導体集積回路装置41は、予め入力したプログラムに従い、入力データに対して処理を実行し、演算結果を出力する。半導体集積回路装置41には、システムクロック、実際に処理を実行するデータ、および、データの到着(入力)を通知するデータ通知信号が入力されるとともに、半導体集積回路装置41からは、処理が実行されたデータ(演算結果)、処理制御信号、クロック制御信号S1、および、クロック制御信号S2が出力される。半導体集積回路装置41は、処理制御装置2、クロック制御信号生成装置43、および、演算装置24(24A、24B、24C)を備えて構成されている。
クロック制御信号生成装置43は、システムクロックに同期して動作し、処理制御装置2が出力した処理制御信号の内容および入力データの内容を判定し、演算装置24(24A、24B、24C)へのクロック供給を制御する。より具体的には、クロック制御信号生成装置43は、演算装置24(24A、24B、24C)の一部を構成する後述のクロックゲーティング回路25を制御するクロック制御信号S1およびクロック制御信号S2を生成し、演算装置24Aへ出力する。
ここで、クロック制御信号生成装置43は、処理制御信号が処理を実行する旨の内容であり、かつ、実行する処理の内容が直前に処理した内容と異なっていれば、実行する処理データの値に関わらず、クロック供給を行う旨、すなわち、有効を意味するクロック制御信号S1を生成する。また、クロック制御信号生成装置43は、処理制御信号が処理を実行する旨の内容であり、かつ、実行する処理の内容が直前に処理した内容と同じであり、かつ、実行する処理データの値が直前に処理したデータの値と異なっていれば、クロック供給を行う旨、すなわち、有効を意味するクロック制御信号S1を生成する。
さらに、クロック制御信号生成装置43は、処理制御信号が処理を実行する旨の内容であり、かつ、実行する処理の内容が直前に処理した内容と同じであり、かつ、実行する処理データの値が直前に処理したデータの値と同じであれば、クロック供給を行わない旨、すなわち、無効を意味するクロック制御信号S1を生成する。また、クロック制御信号生成装置43は、処理制御信号が処理を実行しない旨の内容であれば、実行する処理の内容および処理データの値に関わらず、クロック供給を行わない旨、すなわち、無効を意味するクロック制御信号S1を生成する。
さらに、クロック制御信号生成装置43は、処理制御信号が処理を実行する旨の内容であり、かつ、実行する処理の内容が直前に処理した内容と異なっていれば、実行する処理データの値に関わらず、クロック供給を行う旨、すなわち、有効を意味するクロック制御信号S2を生成する。
また、クロック制御信号生成装置23は、処理制御信号が処理を実行する旨の内容であり、かつ、実行する処理の内容が直前に処理した内容と同じであれば、処理データの値に関わらず、クロック供給を行わない旨、すなわち、無効を意味するクロック制御信号S2を生成する。また、クロック制御信号生成装置43は、処理制御信号が処理を実行しない旨の内容であれば、実行する処理の内容および処理データの値に関わらず、クロック供給を行わない旨、すなわち、無効を意味するクロック制御信号S2を生成する。
図16は、クロック制御信号生成装置43の構成を示す図である。クロック制御信号生成装置43は、デコーダ32、レジスタ33、レジスタ44、比較器34、および、比較器45を備えて構成される。レジスタ44は、システムクロックに同期し、実行制御信号J1が有効ならば、データD1を保存する。レジスタ44は、ライトイネーブル信号つきのレジスタである。
比較器45は、入力されたデータD1とレジスタ44から出力されたデータD0の値が異なれば、比較判定信号H2を有効として出力し、データD1とデータD0の値が同じならば比較判定信号H2を無効とし出力する。ここで、データD0とは、データD1がレジスタ44に保存される直前に保存されていたデータである。
そして、デコーダ32により抽出された実行制御信号J1が有効で、かつ、比較判定信号H1が有効な場合、および、実行制御信号J1が有効で、かつ、比較判定信号H1が無効で、かつ、比較判定信号H2が有効な場合は、クロック制御信号S1は有効を意味する信号となる。それ以外の場合は、クロック制御信号S1は無効を意味する信号となる。また、クロック制御信号S2は、比較判定信号H1と、実行制御信号J1との論理積を取った結果を出力する。
図17は、クロック制御信号生成装置43の入力(処理制御信号の内容)と出力(クロック制御信号S1およびクロック制御信号S2)の関係を示す図である。図に書かれている直前に処理した内容とは、半導体集積回路装置41が直前に実行した処理、すなわち、処理制御信号の実効制御信号が直近で有効だった時に、処理制御信号の処理識別子により特定された処理を意味する。
例えば、直前のサイクルとその1つ前のサイクルでは、クロック制御信号生成装置43に入力された処理制御信号の実行制御信号が無効であったが、さらに1つ前のサイクル(3サイクル前)で処理制御信号の実行制御信号が有効であった場合、レジスタ33に保存されている処理識別子Iは、3サイクル前に入力された処理制御信号の処理識別子である。
また、図に書かれている直前の処理データとは、半導体集積回路装置41が直前に実行した処理での処理データ、すなわち、処理制御信号の実効制御信号が直近で有効だった時に、処理制御信号の処理識別子により処理された処理データを意味する。
例えば、直前のサイクルとその1つ前のサイクルでは、クロック制御信号生成装置43に入力された処理制御信号の実行制御信号が無効であったが、さらに1つ前のサイクル(3サイクル前)で処理制御信号の実行制御信号が有効であった場合、レジスタ44に保存されている処理データは、3サイクル前に入力された処理データである。
クロック制御生成装置43は、入力した処理制御信号の内容が処理実行であり、かつ、具体的な処理内容が直前に実行した処理と異なる場合、実行する処理データの値に関わらずクロック制御信号S1とクロック制御信号S2とを両方有効として出力する。
また、クロック制御生成装置23は、入力した処理制御信号の内容が処理実行であり、かつ、具体的な処理内容が直前に実行した処理と同じであり、かつ、実行する処理データの値が直前に処理したデータの値と異なる場合、クロック制御信号S1を有効、クロック制御信号S2を無効として出力する。
また、クロック制御生成装置23は、入力した処理制御信号の内容が処理実行であり、かつ、具体的な処理内容が直前に実行した処理と同じであり、かつ、実行する処理データの値が直前に処理したデータの値と等しい場合、クロック制御信号S1とクロック制御信号S2とを両方無効として出力する。
また、クロック制御生成装置23は、入力した処理制御信号の内容が処理の未実行である場合、実行する処理の内容および処理データの値に関わらずクロック制御信号S1とクロック制御信号S2とを両方無効として出力する。
演算装置24は、クロックゲーティング回路25、演算ブロック26、および、遅延回路27を備えて構成される。演算ブロック26は、変換回路8、演算回路9、第1のレジスタ30、および、第2のレジスタ31を備えて構成される。変換回路8は、メモリ12とマルチプレクサ13とを備えて構成される。
このように、第3の実施の形態にかかる半導体集積回路装置によれば、要求された処理内容および処理を行うデータが、直前に処理した内容およびデータと同じ場合には、クロック制御信号生成装置がクロック供給を行わない旨のクロック制御信号を出力し、クロックゲーティング回路が処理制御信号を改めて保存するゲーテッドクロック信号を生成しないので、演算装置は内部のレジスタに既に保存された処理制御信号を使用し、レジスタが改めて同じ処理制御信号を保存する動作をする必要がなくなるので、消費電力を削減することが可能となる。
(変形例)
第1〜第3の実施の形態では、各演算装置の構成および機能は同一である前提で説明したが、各演算装置が共通の識別子を利用する場合、異なる構造をとっていてもよい。例えば、各演算装置内の演算回路に含まれるALUが異なる命令セットを持っていても構わない。
また、第1〜第3の実施の形態では、クロック制御信号を処理データ(演算結果)および処理制御信号と同期するように後段に接続された演算装置へ出力する回路として遅延回路を使用しているが、クロック制御信号、処理データ(演算結果)および処理制御信号が同期して、後段に接続された演算装置へ出力されればどのような形態であってもよい。
本発明は、演算処理を行う全ての半導体集積回路装置に有用である。
本発明の第1の実施の形態にかかる半導体集積回路装置の構成を示すブロック図である。 演算装置の詳細な構成を示すブロック図である。 本実施の形態にかかる処理制御信号の構成を示す図である。 変換回路の構成の一例を示す図である。 変換回路の構成の他の一例を示す図である。 クロック制御信号生成装置の構成を示す図である。 クロック制御信号生成装置の入力(処理制御信号の内容)と出力(クロック制御信号S0)の関係を示す図である。 本発明の第2の実施の形態にかかる半導体集積回路装置の構成を示すブロック図である。 演算装置の詳細な構成を示すブロック図である。 クロック制御信号生成装置の構成を示す図である。 クロック制御信号生成装置の入力(処理制御信号の内容)と出力(クロック制御信号S1およびクロック制御信号S2)の関係を示す図である。 半導体集積回路装置が色変換のプログラムを実行した場合に、演算装置に割り当てられる処理の一例を示した図である。 半導体集積回路装置において、上記プログラムを実行した場合のタイムチャートの一例を示した図である。 半導体集積回路装置において、上記プログラムを実行した場合のタイムチャートの他の一例を示した図である。 本発明の第3の実施の形態にかかる半導体集積回路装置の構成を示すブロック図である。 クロック制御信号生成装置の構成を示す図である。 クロック制御信号生成装置の入力(処理制御信号の内容)と出力(クロック制御信号S1およびクロック制御信号S2)の関係を示す図である。
符号の説明
1、21、41 半導体集積回路装置
2 処理制御装置
3、23、43 クロック制御信号生成装置
4、4A、4B、4C、24、24A、24B、24C、 演算装置
5、25 クロックゲーティング回路
6、26 演算ブロック
7、27 遅延回路
8 変換回路
9 演算回路
10、30 第1のレジスタ
11、31 第2のレジスタ
12 メモリ
13 マルチプレクサ
14 33、44 レジスタ
15 第1のマルチプレクサ
16 第2のマルチプレクサ
17 実行判定回路
32 デコーダ
34、45 比較器

Claims (13)

  1. パイプライン接続され、データに対して演算処理を行う複数の演算装置と、
    システムクロック信号に同期して動作し、外部からデータの到着を知らせるデータ通知信号が入力されると、複数の前記演算装置を制御する処理制御信号を生成し出力する処理制御装置と、
    前記システムクロック信号に同期して動作し、前記処理制御信号が入力されると、前記演算装置へのクロック供給を制御するクロック制御信号を生成し出力するクロック制御信号生成装置と、を備え、
    前記演算装置は、
    前記システムクロック信号に同期して動作し、前記クロック制御信号が入力されると、前記クロック制御信号に基づいて、前記演算装置を動作させるゲーテッドクロック信号を生成し出力するクロックゲーティング回路と、
    前記ゲーテッドクロック信号に同期して動作し、前記データおよび前記処理制御信号が入力されると、前記データに対して前記処理制御信号が指示する処理を行い、処理後のデータおよび前記処理制御信号を後段に接続された前記演算装置へ出力する演算ブロックと、
    前記クロック制御信号が入力されると、前記クロック制御信号を前記処理後のデータおよび前記処理制御信号と同期するように、後段に接続された前記演算装置へ出力する出力回路と、を備え、
    前記クロック制御信号生成装置は、
    第1のクロック制御信号と第2のクロック制御信号の2つの前記クロック制御信号を生成し、
    前記第1のクロック制御信号は、
    前記処理制御信号が処理の実行を示している場合は前記クロック供給を行う旨を示し、
    前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示し、
    前記第2のクロック制御信号は、
    前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と異なっている場合は前記クロック供給を行う旨を示し、
    前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と同じ場合、および、前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示すこと、
    を特徴とする半導体集積回路装置。
  2. パイプライン接続され、データに対して演算処理を行う複数の演算装置と、
    システムクロック信号に同期して動作し、外部からデータの到着を知らせるデータ通知信号が入力されると、複数の前記演算装置を制御する処理制御信号を生成し出力する処理制御装置と、
    前記システムクロック信号に同期して動作し、前記処理制御信号が入力されると、前記演算装置へのクロック供給を制御するクロック制御信号を生成し出力するクロック制御信号生成装置と、を備え、
    前記演算装置は、
    前記システムクロック信号に同期して動作し、前記クロック制御信号が入力されると、前記クロック制御信号に基づいて、前記演算装置を動作させるゲーテッドクロック信号を生成し出力するクロックゲーティング回路と、
    前記ゲーテッドクロック信号に同期して動作し、前記データおよび前記処理制御信号が入力されると、前記データに対して前記処理制御信号が指示する処理を行い、処理後のデータおよび前記処理制御信号を後段に接続された前記演算装置へ出力する演算ブロックと、
    前記クロック制御信号が入力されると、前記クロック制御信号を前記処理後のデータおよび前記処理制御信号と同期するように、後段に接続された前記演算装置へ出力する出力回路と、を備え、
    前記クロック制御信号生成装置は、第1のクロック制御信号と第2のクロック制御信号の2つの前記クロック制御信号を生成し、
    前記第1のクロック制御信号は、
    前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と異なっている場合、および、
    前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と同じであり、かつ、前記データの値が直前に処理を実行したデータの値と異なっている場合は前記クロック供給を行う旨を示し、
    前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と同じであり、かつ、前記データの値が直前に処理を実行したデータの値と同じ場合、および、
    前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示し、
    前記第2のクロック制御信号は、
    前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と異なっている場合は前記クロック供給を行う旨を示し、
    前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と同じ場合、および、
    前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示すこと、
    を特徴とする半導体集積回路装置。
  3. 前記出力回路は、前記クロック制御信号を前記演算ブロックでの処理時間分遅延して、後段に接続された前記演算装置へ出力する遅延回路であること、
    を特徴とする請求項1または2に記載の半導体集積回路装置。
  4. 前記クロックゲーティング回路は、
    前記第1のクロック制御信号がクロック供給を行う旨を示す場合には、第1のゲーテッドクロック信号を出力し、前記第1のクロック制御信号がクロック供給を行わない旨を示す場合には、前記第1のゲーテッドクロック信号を出力せず、
    前記第2のクロック制御信号がクロック供給を行う旨を示す場合には、第2のゲーテッドクロック信号を出力し、前記第2のクロック制御信号がクロック供給を行わない旨を示す場合には、前記第2のゲーテッドクロック信号を出力せず、
    前記演算ブロックは、
    前記処理後のデータを前記第1のゲーテッドクロック信号に同期して出力し、
    前記処理制御信号を前記第2のゲーテッドクロック信号に同期して出力すること、
    を特徴とする請求項1〜3のいずれか一項に記載の半導体集積回路装置。
  5. 前記処理制御信号は、前記演算装置での処理の実行の有無を示す実行制御信号と、前記演算装置の処理を特定する処理識別子と、を含み、
    前記演算ブロックは、前記処理識別子を前記演算ブロックで実行可能な形態に変換する変換回路をさらに備えること、
    を特徴とする請求項1〜4のいずれか一項に記載の半導体集積回路装置。
  6. パイプライン接続され、データに対して演算処理を行う複数の演算装置と、
    システムクロック信号に同期して動作し、外部からデータの到着を知らせるデータ通知信号が入力されると、複数の前記演算装置を制御する処理制御信号を生成し出力する処理制御装置と、
    前記システムクロック信号に同期して動作し、前記処理制御信号が入力されると、前記演算装置へのクロック供給を制御するクロック制御信号を生成し出力するクロック制御信号生成装置と、を備え、
    前記演算装置は、
    前記システムクロック信号に同期して動作し、前記クロック制御信号が入力されると、前記クロック制御信号に基づいて、前記演算装置を動作させるゲーテッドクロック信号を生成し出力するクロックゲーティング回路と、
    前記ゲーテッドクロック信号に同期して動作し、前記データおよび前記処理制御信号が入力されると、前記データに対して前記処理制御信号が指示する処理を行い、処理後のデータおよび前記処理制御信号を後段に接続された前記演算装置へ出力する演算ブロックと、
    前記クロック制御信号が入力されると、前記クロック制御信号を前記処理後のデータおよび前記処理制御信号と同期するように、後段に接続された前記演算装置へ出力する出力回路と、を備え
    前記処理制御信号は、
    前記演算装置での処理の実行の有無を示す実行制御信号と、前記演算装置の処理を特定する処理識別子と、を含み、
    前記演算ブロックは、
    前記処理識別子を前記演算ブロックで実行可能な形態に変換する変換回路をさらに備えること、
    を特徴とする半導体集積回路装置。
  7. 前記出力回路は、前記クロック制御信号を前記演算ブロックでの処理時間分遅延して、後段に接続された前記演算装置へ出力する遅延回路であること、
    を特徴とする請求項6に記載の半導体集積回路装置。
  8. 前記クロック制御信号は、
    前記処理制御信号が処理の実行を示している場合は前記クロック供給を行う旨を示し、
    前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示すこと、
    を特徴とする請求項6または7に記載の半導体集積回路装置。
  9. 前記クロックゲーティング回路は、
    前記クロック制御信号がクロック供給を行う旨を示す場合には、ゲーテッドクロック信号を出力し、
    前記クロック制御信号がクロック供給を行わない旨を示す場合には、ゲーテッドクロック信号を出力しないこと、
    を特徴とする請求項8に記載の半導体集積回路装置。
  10. 前記変換回路がメモリで構成され、前記処理識別子がメモリのアドレスポインタであることを特徴とする請求項5〜9のいずれか一項に記載の半導体集積回路装置。
  11. 前記変換回路が複数のレジスタで構成され、前記処理識別子がマルチプレクサのセレクト信号であることを特徴とする請求項5〜9のいずれか一項に記載の半導体集積回路装置。
  12. パイプライン接続され、データに対して演算処理を行う複数の演算装置と、システムクロック信号に同期して動作し、外部からデータの到着を知らせるデータ通知信号が入力されると、複数の前記演算装置を制御する処理制御信号を生成し出力する処理制御装置と、前記システムクロック信号に同期して動作し、前記処理制御信号が入力されると、前記演算装置へのクロック供給を制御するクロック制御信号を生成し出力するクロック制御信号生成装置と、を備え、前記演算装置は、前記システムクロック信号に同期して動作し、前記クロック制御信号が入力されると、前記クロック制御信号に基づいて、前記演算装置を動作させるゲーテッドクロック信号を生成し出力するクロックゲーティング回路と、前記ゲーテッドクロック信号に同期して動作し、前記データおよび前記処理制御信号が入力されると、前記データに対して前記処理制御信号が指示する処理を行い、処理後のデータおよび前記処理制御信号を後段に接続された前記演算装置へ出力する演算ブロックと、前記クロック制御信号が入力されると、前記クロック制御信号を前記処理後のデータおよび前記処理制御信号と同期して、後段に接続された前記演算装置へ出力する出力回路と、を備える半導体集積回路装置のクロック制御方法において、
    前記クロック制御信号生成装置が、第1のクロック制御信号を出力するステップと、
    前記クロック制御信号生成装置が、第2のクロック制御信号を出力するステップと、を含み、
    前記第1のクロック制御信号は、
    前記処理制御信号が処理の実行を示している場合は前記クロック供給を行う旨を示し、
    前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示し、
    前記第2のクロック制御信号は、
    前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と異なっている場合は前記クロック供給を行う旨を示し、
    前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と同じ場合、および、前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示すこと、
    を特徴とする半導体集積回路装置のクロック制御方法。
  13. パイプライン接続され、データに対して演算処理を行う複数の演算装置と、システムクロック信号に同期して動作し、外部からデータの到着を知らせるデータ通知信号が入力されると、複数の前記演算装置を制御する処理制御信号を生成し出力する処理制御装置と、前記システムクロック信号に同期して動作し、前記処理制御信号が入力されると、前記演算装置へのクロック供給を制御するクロック制御信号を生成し出力するクロック制御信号生成装置と、を備え、前記演算装置は、前記システムクロック信号に同期して動作し、前記クロック制御信号が入力されると、前記クロック制御信号に基づいて、前記演算装置を動作させるゲーテッドクロック信号を生成し出力するクロックゲーティング回路と、前記ゲーテッドクロック信号に同期して動作し、前記データおよび前記処理制御信号が入力されると、前記データに対して前記処理制御信号が指示する処理を行い、処理後のデータおよび前記処理制御信号を後段に接続された前記演算装置へ出力する演算ブロックと、前記クロック制御信号が入力されると、前記クロック制御信号を前記処理後のデータおよび前記処理制御信号と同期して、後段に接続された前記演算装置へ出力する出力回路と、を備える半導体集積回路装置のクロック制御方法において、
    前記クロック制御信号生成装置が、第1のクロック制御信号を出力するステップと、
    前記クロック制御信号生成装置が、第2のクロック制御信号を出力するステップとを含み、
    前記第1のクロック制御信号は、
    前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と異なっている場合、および、
    前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と同じであり、かつ、前記データの値が直前に処理を実行したデータの値と異なっている場合は前記クロック供給を行う旨を示し、
    前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と同じであり、かつ、前記データの値が直前に処理を実行したデータの値と同じ場合、および、
    前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示し、
    前記第2のクロック制御信号は、
    前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と異なっている場合は前記クロック供給を行う旨を示し、
    前記処理制御信号が処理の実行を示しており、かつ、直前に実行した処理の内容と同じ場合、および、
    前記処理制御信号が処理の実行を示していない場合は前記クロック供給を行わない旨を示すこと、
    を特徴とする半導体集積回路装置のクロック制御方法。
JP2007334824A 2007-12-26 2007-12-26 半導体集積回路装置および半導体集積回路装置のクロック制御方法 Expired - Fee Related JP5231800B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007334824A JP5231800B2 (ja) 2007-12-26 2007-12-26 半導体集積回路装置および半導体集積回路装置のクロック制御方法
US12/341,147 US8195975B2 (en) 2007-12-26 2008-12-22 Semiconductor integrated circuit device and clock control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007334824A JP5231800B2 (ja) 2007-12-26 2007-12-26 半導体集積回路装置および半導体集積回路装置のクロック制御方法

Publications (2)

Publication Number Publication Date
JP2009157629A JP2009157629A (ja) 2009-07-16
JP5231800B2 true JP5231800B2 (ja) 2013-07-10

Family

ID=40800132

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007334824A Expired - Fee Related JP5231800B2 (ja) 2007-12-26 2007-12-26 半導体集積回路装置および半導体集積回路装置のクロック制御方法

Country Status (2)

Country Link
US (1) US8195975B2 (ja)
JP (1) JP5231800B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010072897A (ja) * 2008-09-18 2010-04-02 Nec Electronics Corp クロック供給装置
JP5193846B2 (ja) * 2008-12-25 2013-05-08 株式会社東芝 同期化回路
US8671380B2 (en) * 2011-07-18 2014-03-11 Apple Inc. Dynamic frequency control using coarse clock gating
US8860484B2 (en) * 2013-03-15 2014-10-14 Oracle International Corporation Fine grain data-based clock gating
JP6141062B2 (ja) * 2013-03-18 2017-06-07 株式会社Pfu データ処理装置及びクロック供給方法
JP2014186433A (ja) * 2013-03-22 2014-10-02 Mitsubishi Electric Corp 信号処理システム及び信号処理方法
JP6590718B2 (ja) * 2016-02-03 2019-10-16 キヤノン株式会社 情報処理装置及びその制御方法
GB2547914B (en) * 2016-03-02 2018-05-09 Advanced Risc Mach Ltd Data processing systems
WO2018029782A1 (ja) * 2016-08-09 2018-02-15 オリンパス株式会社 演算処理装置、画像処理装置、および撮像装置
FR3100628B1 (fr) * 2019-09-10 2023-04-14 St Microelectronics Grenoble 2 Communication par bus CAN
CA3165378A1 (en) 2021-10-09 2023-04-09 Nan Li Pipeline clock driving circuit, computing chip, hashboard and computing device

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60218152A (ja) * 1984-04-13 1985-10-31 Hitachi Ltd マイクロ・プロセツサ
JPH034968A (ja) 1989-05-30 1991-01-10 Mitsubishi Kasei Corp 洗浄方法
JPH0713763A (ja) * 1993-06-25 1995-01-17 Fujitsu Ltd マイクロコンピュータ
JP3004968B2 (ja) * 1997-09-03 2000-01-31 松下電器産業株式会社 プロセッサ
CN1157641C (zh) * 1997-09-03 2004-07-14 松下电器产业株式会社 处理器
US6247134B1 (en) * 1999-03-31 2001-06-12 Synopsys, Inc. Method and system for pipe stage gating within an operating pipelined circuit for power savings
US6412062B1 (en) * 1999-06-30 2002-06-25 Intel Corporation Injection control mechanism for external events
US6324643B1 (en) * 1999-10-01 2001-11-27 Hitachi, Ltd. Branch prediction and target instruction control for processor
US6611920B1 (en) * 2000-01-21 2003-08-26 Intel Corporation Clock distribution system for selectively enabling clock signals to portions of a pipelined circuit
TWI230855B (en) * 2002-01-05 2005-04-11 Via Tech Inc Transmission line circuit structure saving power consumption and operating method thereof
US7131017B2 (en) * 2002-08-16 2006-10-31 Carnegie Mellon University Programmable pipeline fabric having mechanism to terminate signal propagation
US7065665B2 (en) * 2002-10-02 2006-06-20 International Business Machines Corporation Interlocked synchronous pipeline clock gating
US7076682B2 (en) * 2004-05-04 2006-07-11 International Business Machines Corp. Synchronous pipeline with normally transparent pipeline stages
EP1819048B1 (en) * 2004-12-01 2012-02-08 Fujitsu Ltd. Semiconductor device employing dynamic circuit
US20060218424A1 (en) * 2005-03-23 2006-09-28 Miron Abramovici Integrated circuit with autonomous power management
US7747844B2 (en) * 2005-03-31 2010-06-29 Hewlett-Packard Development Company, L.P. Acquiring instruction addresses associated with performance monitoring events
JP4861030B2 (ja) 2006-03-24 2012-01-25 株式会社東芝 半導体装置
JP4747026B2 (ja) * 2006-05-08 2011-08-10 Okiセミコンダクタ株式会社 マイクロプロセッサ
JP4444305B2 (ja) 2007-03-28 2010-03-31 株式会社東芝 半導体装置
JP4950796B2 (ja) * 2007-07-31 2012-06-13 株式会社東芝 半導体装置

Also Published As

Publication number Publication date
US20090172458A1 (en) 2009-07-02
US8195975B2 (en) 2012-06-05
JP2009157629A (ja) 2009-07-16

Similar Documents

Publication Publication Date Title
JP5231800B2 (ja) 半導体集積回路装置および半導体集積回路装置のクロック制御方法
JP6373425B2 (ja) 複数のビットを左にシフトし、複数の1を複数の下位ビットにプルインするための命令
US8413086B2 (en) Methods and apparatus for adapting pipeline stage latency based on instruction type
US8281113B2 (en) Processor having ALU with dynamically transparent pipeline stages
JP2018005488A (ja) 演算処理装置及び演算処理装置の制御方法
JP2009099097A (ja) データ処理装置
JP4747026B2 (ja) マイクロプロセッサ
JP4753895B2 (ja) 遅延調整回路を有するアレイ型プロセッサ
US6948049B2 (en) Data processing system and control method
US12182573B2 (en) Processing device with vector transformation execution
JP2002366351A (ja) スーパースカラ・プロセッサ
JP4771079B2 (ja) Vliw型プロセッサ
JP2007200180A (ja) プロセッサシステム
KR100636596B1 (ko) 고에너지 효율 병렬 처리 데이터 패스 구조
JPH1091430A (ja) 命令解読装置
JP2000020309A (ja) デジタルシグナルプロセッサ
JP2014175005A (ja) 命令処理方法及び命令処理装置
JP2004302827A (ja) マイクロコントローラ
JP6060853B2 (ja) プロセッサおよびプロセッサの処理方法
JP2010204913A (ja) ベクトル処理装置
JP2009193466A (ja) 半導体装置
WO2007004323A1 (ja) 情報処理装置
JPH0962509A (ja) 命令読み出し装置
JPS62189535A (ja) マイクロプロセツサ制御装置
JPH08320787A (ja) パイプライン計算機

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101015

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130214

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130226

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130322

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160329

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees