JPWO2008001461A1 - 半導体集積回路 - Google Patents
半導体集積回路 Download PDFInfo
- Publication number
- JPWO2008001461A1 JPWO2008001461A1 JP2008522264A JP2008522264A JPWO2008001461A1 JP WO2008001461 A1 JPWO2008001461 A1 JP WO2008001461A1 JP 2008522264 A JP2008522264 A JP 2008522264A JP 2008522264 A JP2008522264 A JP 2008522264A JP WO2008001461 A1 JPWO2008001461 A1 JP WO2008001461A1
- Authority
- JP
- Japan
- Prior art keywords
- data
- unit
- block
- valid
- input 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/0008—Arrangements for reducing power consumption
- H03K19/0016—Arrangements for reducing power consumption by using a control or a clock signal, e.g. in order to apply power supply
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Power Sources (AREA)
- Semiconductor Integrated Circuits (AREA)
- Logic Circuits (AREA)
Abstract
演算ブロックにのみ電源供給をする電源制御システムを回路上に構築することで、リーク電流を減らし、小消費電力化を実現する電源制御回路を提供する。演算処理を実行する演算ブロックを設けた半導体集積回路であって、入力データと入力データが有効なデータであるかを示すValid信号を入力し、有効であるときに入力データを保持する演算ブロックのバッファ部と、バッファ部に保持した蓄積データの数が予め設定したデータ数に達したときに、蓄積データを利用して演算処理を実行し、演算処理実行後出力データと出力データが有効であるかを示すValid信号を出力する演算ブロックのロジック部と、ロジック部が演算処理実行前に電源供給をするために電源オン/オフを行う前記演算ブロックのスイッチ部の制御を行う電源スイッチ制御部と、を具備する半導体集積回路に設けれる電源制御回路である。
Description
本発明は、半導体集積回路のリーク電流を抑制するの技術に関する。
近年、ICチップなどのLSI(Large Scale Integration)に形成されるトランジスタサイズの微細化に伴い、リーク電流(leak current)が増大することが問題になっている。
電流がリーク(漏洩)してしまう原因は、量子トンネル効果によるリーク電流などがあげられる。絶縁層の間を電子が通り抜けてしまう現象が確率的に起こりえるため、回路の高集積化にともない、リーク電流が無視できなくなる。また、リーク電流が増大すると、LSIの消費電力が大きくなってしまい、発熱量も増えて回路基板を傷めやすくなってしまう。
一般に、リーク電流による電力消費はLSIの総消費電力の半分程度を占める。ここで総消費電力とはロジックの充放電電力とリーク電力との和である。このため、集積度を高めて性能を向上させ、LSIの省電力化をするためには、リーク電流を抑制することが重要である。
例えば、図14に示す半導体基板上に形成されるトランジスタによりリーク電流について考える。半導体基板141にトランジスタは、ゲート部142(Gate)、ソース部143(Source)、ドレイン部144(Drain)、混合酸化物145(Oxide)から形成されている。このような構造の場合、リークはゲートリーク146(Gate leakage)、サブスレショルドリーク147(Sub-threshold leakage)等が発生する。これらによるリーク電流はいずれも純粋な演算動作(ロジック)とは無関係に定常的に流れる。また、CMOS(金属酸化膜半導体:Metal oxide semiconductor)LSIだけでなくバイポーラトランジスタにもリーク電力は存在する。
従来はリーク電流はデバイスプロセス技術の向上、材料の改良により抑えていた。ところがそれだけでは高集積化によるリーク電流の増大を防ぐことが十分にできなくなりつつある。
特許文献1によれば、待機時に電源電圧の供給が停止される電源供給停止線と、待機時にも供給される電源電圧供給線とを設けて、待機時に状態を保持する必要がない回路ブロックは電源供給停止線に接続してリーク電流を削減する回路が提案されている。
また、特許文献2によれば、供給されたクロック信号に同期する論理回路ブロックと、回路ブロックに電源を供給する電源供給スイッチと、スイッチを制御する制御回路により、回路動作上必要な期間以外電源供給を遮断してリーク電流を減少させる提案がされている。
特許文献3によれば、システムLSIを各機能ブロック回路に分け、各ブロックを独立した電源ラインに接続し、電源供給はスタンバイ制御回路と電源制御回路が行い、消費電力を低減する提案がされている。
特許文献4によれば、チップ内部を複数の回路ブロックに分割し、ブロックへの電源電圧の供給を遮断可能な構成にし、遮断可能なブロックから他のブロックへ出力される信号の経路上に信号を記憶可能なブロック間インターフェイス回路を設けることで電力を削減する提案がされている。
しかしながら、今後も進む微細化により増大するリーク電流を抑えるには、上記説明したようなLSI内の各演算ブロックの電源制御だけでは十分な効果が得られない。つまり、LSI内の各演算ブロックを構成する回路毎に電源制御しなければリーク電流を抑制できない。そのためにはLSI内の各回路(演算ブロック)の入力および出力データの流れと、そのタイミングとを把握して、電源制御をしなければならない。
特許文献1〜4においては、LSI内の各演算ブロックをバッファ部とロジック部に分け、バッファ部からデータ転送後にロジック部に電源電圧を供給し、それまではロジック部を停止する構成ではない。つまり、電源制御プログラムを各演算ブロックの構成と動作に合わせて作成し、その制御プログラムによって電源制御を行うものではない。
また、電源制御プログラムの作成において、LSI内にデータパスなどが複数あると複雑な制御が必要となるため、電源制御に合ったハードウェアが必要になる。
特開2004−015670号公報
WO99/66640号公報
特開2004−140503号公報
特開2003−092359号公報
注1)日経BP社, 日経エレクトロニクス2004 4-26 no.872, p.99〜127.
本発明は上記のような実情に鑑みてなされたものであり、必要なときに必要な演算ブロックにのみ電源供給をする電源制御システムを回路上に構築することで、リーク電流を減らし、小消費電力化を実現する電源制御回路を提供することを目的とする。
本発明の態様のひとつである演算処理を実行する演算ブロックを設けた半導体集積回路は、入力データと前記入力データが有効なデータであるかを示すValid信号を入力し、前記有効であるときに入力データを保持する前記演算ブロックのバッファ部と、
前記バッファ部に保持した蓄積データの数が予め設定したデータ数に達したときに、前記蓄積データを利用して演算処理を実行し、前記演算処理実行後出力データと前記出力データが有効であるかを示すValid信号を出力する前記演算ブロックのロジック部と、
前記ロジック部が演算処理実行前に電源供給をするために電源オン/オフを行う前記演算ブロックのスイッチ部の制御を行う電源スイッチ制御部と、を具備する。
本発明の態様のひとつである演算処理を実行する演算ブロックを設けた半導体集積回路は、入力データと前記入力データが有効なデータであるかを示すValid信号を入力し、前記有効であるときに入力データを保持する前記演算ブロックのバッファ部と、
前記バッファ部に保持した蓄積データの数が予め設定したデータ数に達したときに、前記蓄積データを利用して演算処理を実行し、前記演算処理実行後出力データと前記出力データが有効であるかを示すValid信号を出力する前記演算ブロックのロジック部と、
前記ロジック部が演算処理実行前に電源供給をするために電源オン/オフを行う前記演算ブロックのスイッチ部の制御を行う電源スイッチ制御部と、を具備する。
好ましくは、前記演算ブロックは、前記演算ブロックに前記入力データと前記Valid信号を入力するために設けられたデータネットワークとの接続を設定するセレクタ部と、
前記セレクタ部を介して前記入力データと前記Valid信号を入力し、前記Valid信号が有効である前記入力データを保持するデータバッファ部と、
前記Valid信号が有効なとき前記データバッファ部に前記入力データと前記Valid信号を書き込み制御信号を出力し、前記入力データが前記予め設定したデータ数になり、前記電源スイッチ制御部からの前記ロジック部への電源供給指示により、前記データバッファ部からデータ転送を開始する読み込み制御信号を前記データバッファ部に出力し、前記ロジック部への電源供給開始から前記ロジック部の演算処理終了までの時間をカウントするW/R制御部と、を具備してもよい。
前記セレクタ部を介して前記入力データと前記Valid信号を入力し、前記Valid信号が有効である前記入力データを保持するデータバッファ部と、
前記Valid信号が有効なとき前記データバッファ部に前記入力データと前記Valid信号を書き込み制御信号を出力し、前記入力データが前記予め設定したデータ数になり、前記電源スイッチ制御部からの前記ロジック部への電源供給指示により、前記データバッファ部からデータ転送を開始する読み込み制御信号を前記データバッファ部に出力し、前記ロジック部への電源供給開始から前記ロジック部の演算処理終了までの時間をカウントするW/R制御部と、を具備してもよい。
また、好ましくは電源スイッチ制御部は、前記ロジック部への電源供給を制御する前記スイッチ部の切り替えタイミングを周期的に通知する構成としてもよい。
好ましくは、前記ロジック部のリーク電流と演算に掛かる充放電電流の比に基づいて、前記ロジック部の動作周波数を決定することで、所望の消費電力を低減する。
好ましくは、前記ロジック部のリーク電流と演算に掛かる充放電電流の比に基づいて、前記ロジック部の動作周波数を決定することで、所望の消費電力を低減する。
上記構成によりLSIを構成する各演算ブロックの回路を細分化し、電源供給を制御する回路(演算ブロックのロジック部)に対し最適な電源供給をすることでリーク電流の消費を抑制でき、LSI全体の消費電力の削減を可能になる。また、電源供給を制御できる回路の動作周波数比を高めることでリーク電流の消費をさらに低減できる。
本発明の他の態様のひとつである演算処理を実行する演算ブロックを設けた半導体集積回路は、入力データと前記入力データが有効なデータであるかを示すValid信号を入力し、前記有効であるときに入力データを保持し、保持した蓄積データの数が予め設定したデータ数に達したときにフル信号を発行する前記演算ブロックのバッファ部と、
前記バッファ部に保持した蓄積データの数が予め設定したデータ数に達したときに、前記蓄積データを利用して演算処理を実行し、前記演算処理実行後に出力データと前記出力データが有効であるかを示すValid信号を出力する前記演算ブロックのロジック部と、
前記ロジック部が演算処理実行前に電源供給をするために電源供給許可と前記フル信号を受信して、電源オン/オフを行う前記演算ブロックのスイッチ部の制御を行う前記演算ブロックの電源制御部と、
前記電源制御部へ電源オン/オフを制御するトークンを発行して、前記ロジック部への前記電源供給許可をし、前記ロジック部が演算処理を完了すると前記電源制御部から前記電源供給許可を取り消す戻りトークンを受信するトークン発行部と、
を具備する。
前記バッファ部に保持した蓄積データの数が予め設定したデータ数に達したときに、前記蓄積データを利用して演算処理を実行し、前記演算処理実行後に出力データと前記出力データが有効であるかを示すValid信号を出力する前記演算ブロックのロジック部と、
前記ロジック部が演算処理実行前に電源供給をするために電源供給許可と前記フル信号を受信して、電源オン/オフを行う前記演算ブロックのスイッチ部の制御を行う前記演算ブロックの電源制御部と、
前記電源制御部へ電源オン/オフを制御するトークンを発行して、前記ロジック部への前記電源供給許可をし、前記ロジック部が演算処理を完了すると前記電源制御部から前記電源供給許可を取り消す戻りトークンを受信するトークン発行部と、
を具備する。
好ましくは、前記演算ブロックは前記演算ブロックに前記入力データと前記Valid信号を入力するために設けられたデータネットワークとの接続を設定するセレクタ部と、
前記セレクタ部を介して前記入力データと前記Valid信号を入力し、前記Valid信号が有効である前記入力データを保持するデータバッファ部と、
前記Valid信号が有効なとき前記データバッファ部に前記入力データと前記Valid信号を書き込み制御信号を出力し、前記入力データが前記予め設定したデータ数になり、前記データバッファ部からデータ転送を開始する読み込み制御信号と電源制御部にフル信号を前記データバッファ部に出力するW/R制御部と、
前記トークン発行部から発行される前記ロジック部への前記電源供給許可のトークンと前記フル信号を受信すると前記スイッチ部を切り替えて前記ロジック部に電源供給をし、前記ロジック部への電源供給開始から前記ロジック部の演算処理終了までの時間をカウントする電源制御部と、を具備してもよい。
前記セレクタ部を介して前記入力データと前記Valid信号を入力し、前記Valid信号が有効である前記入力データを保持するデータバッファ部と、
前記Valid信号が有効なとき前記データバッファ部に前記入力データと前記Valid信号を書き込み制御信号を出力し、前記入力データが前記予め設定したデータ数になり、前記データバッファ部からデータ転送を開始する読み込み制御信号と電源制御部にフル信号を前記データバッファ部に出力するW/R制御部と、
前記トークン発行部から発行される前記ロジック部への前記電源供給許可のトークンと前記フル信号を受信すると前記スイッチ部を切り替えて前記ロジック部に電源供給をし、前記ロジック部への電源供給開始から前記ロジック部の演算処理終了までの時間をカウントする電源制御部と、を具備してもよい。
また、好ましくは前記ロジック部のリーク電流と演算に掛かる充放電電流の比に基づいて、前記ロジック部の動作周波数を決定することで、所望の消費電力を低減する。
上記構成により、電源スイッチ制御部のプログラムはA〜Zの演算開始、終了といった内部動作を意識することなく、トークン制御のみに注目して、プログラムを簡単に作成することができる。
上記構成により、電源スイッチ制御部のプログラムはA〜Zの演算開始、終了といった内部動作を意識することなく、トークン制御のみに注目して、プログラムを簡単に作成することができる。
本発明の他の態様のひとつである演算処理を実行する演算ブロックを設けた半導体集積回路は、
入力データと前記入力データが有効なデータであるかを示すValid信号を入力し、前記有効であるときに入力データを保持し、保持した蓄積データの数が予め設定したデータ数に達したときにトグル信号を発行する前記演算ブロックのバッファ部と、
前記バッファ部に保持した蓄積データの数が予め設定したデータ数に達したときに、前記蓄積データを利用して演算処理を実行し、前記演算処理実行後出力データと前記出力データが有効であるかを示すValid信号を出力する前記演算ブロックのロジック部と、
前記ロジック部が演算処理実行前に電源供給をするために前記バッファ部から前記トグル信号を受信し、前記ロジック部への電源オン/オフを行う前記演算ブロックのスイッチ部の制御を行う前記演算ブロックの電源制御部と、を具備する。
入力データと前記入力データが有効なデータであるかを示すValid信号を入力し、前記有効であるときに入力データを保持し、保持した蓄積データの数が予め設定したデータ数に達したときにトグル信号を発行する前記演算ブロックのバッファ部と、
前記バッファ部に保持した蓄積データの数が予め設定したデータ数に達したときに、前記蓄積データを利用して演算処理を実行し、前記演算処理実行後出力データと前記出力データが有効であるかを示すValid信号を出力する前記演算ブロックのロジック部と、
前記ロジック部が演算処理実行前に電源供給をするために前記バッファ部から前記トグル信号を受信し、前記ロジック部への電源オン/オフを行う前記演算ブロックのスイッチ部の制御を行う前記演算ブロックの電源制御部と、を具備する。
好ましくは、前記ロジック部のリーク電流と演算に掛かる充放電電流の比に基づいて、前記ロジック部の動作周波数を決定することで、所望の消費電力を低減する。
上記構成により電源供給制御が簡単になる。演算ブロック間のデータ受け渡しの順番(データネットワークトポロジー)が入れ替ることや、複数演算ブロックからの入力がある場合にネットワークと演算ブロックとの間の接続が複雑になる。その場合にも、転送元(ソース)演算ブロックと転送先(ターゲット)演算ブロック間の関係だけを演算ブロック内電源スイッチ制御部に定義しておけば良い。また、ブロックを細分化して、きめ細かな制御も容易にできる。
本発明によれば、LSIを構成する各演算ブロックの回路を細分化し、電源供給を制御する回路(演算ブロックのロジック部)に対し最適な電源供給をすることでリーク電流の消費を抑制でき、LSI全体の消費電力の削減が可能になる。また、電源供給を制御できる回路の動作周波数比を高めることでリーク電流の消費をさらに低減できる。
上記構成により電源供給制御が簡単になる。演算ブロック間のデータ受け渡しの順番(データネットワークトポロジー)が入れ替ることや、複数演算ブロックからの入力がある場合にネットワークと演算ブロックとの間の接続が複雑になる。その場合にも、転送元(ソース)演算ブロックと転送先(ターゲット)演算ブロック間の関係だけを演算ブロック内電源スイッチ制御部に定義しておけば良い。また、ブロックを細分化して、きめ細かな制御も容易にできる。
本発明によれば、LSIを構成する各演算ブロックの回路を細分化し、電源供給を制御する回路(演算ブロックのロジック部)に対し最適な電源供給をすることでリーク電流の消費を抑制でき、LSI全体の消費電力の削減が可能になる。また、電源供給を制御できる回路の動作周波数比を高めることでリーク電流の消費をさらに低減できる。
以下図面に基づいて、本発明の実施形態について詳細を説明する。
(実施例1)
図1は本発明を用いたLSI1の内部構成を示す概略図である。また図1はLSI1の構成を電源部2、データネットワーク3、電源スイッチ制御部4、演算ブロック5a〜5zなどから構成した例である。
(実施例1)
図1は本発明を用いたLSI1の内部構成を示す概略図である。また図1はLSI1の構成を電源部2、データネットワーク3、電源スイッチ制御部4、演算ブロック5a〜5zなどから構成した例である。
例えば、このLSI1の機能を無線LANなどの復調部のベースバンド処理部と考えると、各演算ブロック5a〜5zを、フィルタ部、FFT部などの機能を実現する回路と考えることができる。上記ベースバンド処理などのように各機能をシリアルに実行していく場合に、演算ブロック5a〜5zは演算処理を行い、データネットワーク3を介して次の演算ブロックにデータを転送する。前段演算ブロックが処理を完了した後、次段演算ブロックの入力として前段演算ブロックの出力を利用すれば、現在使用している演算ブロックのみに電源を供給するのみでリーク電流が削減できる。しかし、本発明はシリアルに処理する場合に限定をするわけではなく、演算処理中の演算ブロックだけが動作し、それ以外の演算ブロックが停止するようなシステムにおいて有効である。
図1に示す電源部2は、LSI1の各回路に電源を供給する。データネットワーク3は、クロスバネットワークまたはバスネットワークで構成され、各演算ブロック5a〜5zを相互接続するデータパスである。データネットワーク3は入力データとvalidデータを各演算ブロックに送り、さらに各演算ブロックの出力データを出力ネットワークを介して演算ブロックや他の周辺回路に出力する。validデータは各演算ブロックで使用する入力データが有効であるか否かを判定するためのデータである。例えばクロックに同期させデータと一緒に送る。またデータとシリアルに転送してもパラレルに転送してもかまわない。
電源スイッチ制御部4は、各演算ブロック5a〜5zの電源供給のタイミングを制御する。各演算ブロック5a〜5zはバッファ部6a〜6zとロジック部7a〜7zを設けている。そして電源部2はバッファ部6a〜6zとロジック部7a〜7zにともに供給する。バッファ部6a〜6zは入力データが何時きても保持できるように常時電源供給をする。ロジック部7a〜7zは上記説明した演算処理を実行し、演算処理を行うときにスイッチ部8a〜8zを制御して電源供給をする。また、電源スイッチ制御部4の構成は、CPUや再構成可能なハードウェアや専用のハードウェアでもよい。CPUなどにより実行する場合や再構成可能なハードウェアなどで構成する場合は、プログラムをLSI1起動時に読込み、その後実行させる。
次に、演算ブロック5a〜5zの構成を図2に示す。バッファ部6は、セレクタ部21、W/R制御部22、データバッファ部23などから構成される。演算ブロック5a〜5zには入力データとValid信号を入力し、演算処理後出力データと出力Valid信号を出力する。
セレクタ部21は、回路設定信号によりデータネットワーク3とバッファ部6との接続が設定され、入力データとValid信号を演算ブロックに取り込む。演算ブロック毎に入力データとValid信号を送信する転送元の演算ブロックの転送元情報と、演算ブロックの出力として入力データとValid信号を出力する転送先の演算ブロックの転送先情報を設定している。
W/R制御部22は、セレクタ部21経由で入力された入力データをデータバッファ部23に書き込むための制御を行う。入力データはロジック部7で用いるデータを有しデータ入力用のクロックに同期している。また、セレクタ部21を介して入力されたValid信号に基づいて有効な入力データのみをデータバッファ部23に書き込む。電源スイッチ制御部4から周期的に電源制御信号(外部動作開始トリガ)を取得して、ロジック部7へデータとValid信号の転送を開始する。例えば、データバッファ部23に所定のデータ数が蓄積され、外部動作開始トリガを受信するとW/R制御部22はデータバッファ部23に読み込み制御信号を出力し転送が開始される。
データバッファ部23はロジック部7へのデータ転送を行う。また、データバッファ部23はメモリに入力データを保存してロジック部7にデータを転送する。メモリへのデータ書き込み(Write)は一般的なアドレスに対してデータを保存する方式でもよいし、FIFOのように入力順に保存してもよい。
スイッチ部8はトランジスタにより電源供給を制御することができる。例えば、インバータ24とトランジスタ25、26を用いて制御をする。本例ではトランジスタ25と26は異なる接合を用いているため、電源スイッチ制御部4からの電源制御信号(外部動作開始トリガ)をインバータ24で反転してトランジスタ25に入力している。一方のトランジスタ26には反転をしないで入力する。
ここで、ロジック部7の電源オン/オフを、ロジック部7のVDD側とGND側で行っているがVDD側だけでもよい。VDD側だけであると両側で電源オン/オフするのに比べて両方を入れる場合に比べ面積の無駄がなくなる。GND側に挿入する場合、回路ブロックにおけるトランジスタのゲート-Si基板間や、ゲート-ドレイン(ソース)間に電位差が生じることがあり、ゲートリーク電流を引き起こす要因を完全に取り除けない場合がある。
(動作説明)
入力データは、入力ポートからデータネットワーク3を経由して、予めレジスタによって設定されたデータネットワーク設定に基づき、演算ブロック5a〜5zに転送される。そして、演算処理された出力データと出力Valid信号が他の演算ブロックまたは出力ポートへ出力される。
(動作説明)
入力データは、入力ポートからデータネットワーク3を経由して、予めレジスタによって設定されたデータネットワーク設定に基づき、演算ブロック5a〜5zに転送される。そして、演算処理された出力データと出力Valid信号が他の演算ブロックまたは出力ポートへ出力される。
ここで、演算ブロック5aが64ポイントFFT、動作周波数f=40MHz、動作周波数比m=2である場合を考える。(1)入力データ信号波形、(2)データバッファ部23出力信号波形、(3)Vdd’の変化(電源制御信号)について、そのタイミングチャートを図3に示す。
(1)の波形はデータネットワーク3を介してf=40MHzの動作周波数に乗って、演算ブロック5aに送られてくる。演算ブロック5aではf×m=80MHzの動作周波数で動作しているため、2サイクルに1回有効なデータを受け取る。64ポイントFFTの場合、1回のFFT演算に64個のデータが必要なため、128サイクル*(1/80MHz)かけて64個のデータを取得する。次に64個のデータはバッファ部6からロジック部7に転送される。そのときに、ロジック部7に電源供給(Vdd’を供給)し、演算終了後Vdd’を遮断する。Vdd’の供給を停止する期間だけ、リーク電流を低減することができる。
ここで、データバッファ部23のメモリサイズはブロック部7に割り当てる演算によって異なる。64ポイントFFTの場合は最低64サイクル分必要である。仮に、ロジック部7のリーク電流と演算に係る充放電電流の比を1:1とすると、消費電流は従来に比べ
となる。
m=2の場合には図4に示すとおり消費電力を従来の3/4に低減できる。従来、周波数f=1において、同図(a)の演算時間0〜2に渡り、消費電力2(リーク電力1とロジック充放電電力1の和)を必要とした演算処理を、周波数をm=2倍にすることで従来の半分の時間だけ電源をオンにし、リーク電力を1/2に減らすことができる。同図(b)の結果、総電力を3/4に減らす効果を得られる。パラメータmに対する電力削減効果を一般化したのが先に示した(式1)である。動作周波数比mを高くするほど消費電流を低減できる。また、回路ブロックを細分化するほど電源を細かく制御でき、最適な制御による電流最小化が可能になる。
(動作フロー)
次に、実施例1の動作フローを図5を用い説明する。
(動作フロー)
次に、実施例1の動作フローを図5を用い説明する。
ステップS51では、電源スイッチ制御部4の制御プログラムを設定する。ステップS52では、上記説明したように各演算ブロックに対して電源制御信号を転送して電源オン/オフのタイミングを通知する設定をする。
また、ステップS53では各演算ブロックの設定をする。W/R制御部22には定数として蓄積データ数(Ndata)、ロジック部処理時間(Toutoff)を回路設定信号により設定するとともに、変数としてデータ読込みカウント数(Counter)、ロジック部処理時間カウント数(timer)を初期化する。同図では初期化を0にしてアップカウントしているがダウンカウントしてもかまわない。また、ロジック部7に対して機能を実現するためのパラメータなどを設定する。図2に示す回路設定信号により、例えばFFT演算であれが複素データの実部と虚部に対応するパラメータを設定する。またディジタルフィルタ演算であれば対応するフィルタ係数をパラメータとして設定する。
ステップS54は図2に示す回路設定信号により、図2に示す各演算ブロックのセレクタ部21の設定(SEL)をする。ここで、破線で囲んだ設定処理のステップS51〜54の順番は、本発明を限定するものではない。また設定処理とは、CPU若しくは全体の制御を担う専用ハードによる設定である。
ステップS55では各演算部の入力データとValid信号をセレクタ部21の接続(SEL)に基づいてデータバッファ部23とW/R制御部22に取り込む。
ステップS56では、W/R制御部22によりValid信号が有効なデータのみをデータバッファ部23に書き込みする。書き込み制御信号をデータバッファ部23に出力して書き込みをする。またW/R制御部22は有効なデータを1つ書き込む毎にデータ読み込みカウント数(Counter)をインクリメントする。ここでカウントは有効なデータ数をカウントし、Valid信号が有効なものをカウントする。
ステップS56では、W/R制御部22によりValid信号が有効なデータのみをデータバッファ部23に書き込みする。書き込み制御信号をデータバッファ部23に出力して書き込みをする。またW/R制御部22は有効なデータを1つ書き込む毎にデータ読み込みカウント数(Counter)をインクリメントする。ここでカウントは有効なデータ数をカウントし、Valid信号が有効なものをカウントする。
ステップS57では、データバッファ部23に有効な入力データが所定の数書き込まれたかを判断する。つまりデータ読み込みカウント数(Counter)=蓄積データ数(Ndata)が成立しているかを判断する。成立すれば(YES)ステップS58に移行し、成立していなければ成立するまでS57でループする。
ステップS58では、電源スイッチ制御部4からの電源制御信号(外部動作開始トリガ)により、対応する演算ブロックのロジック部7に電源を供給するスイッチ部8を制御して導通させロジック部処理時間カウント数(timer)のカウントアップを開始する。
ステップS59では、データバッファ部23がNdata分の蓄積データをロジック部に転送する。ステップS510ではロジック部7がデータを受信し演算を開始する。その後、演算を完了したデータをステップS511でロジック部7からデータを出力する。
ステップS512ロジック部7の処理が完了後、ロジック部処理時間(Toutoff)=ロジック部処理時間カウント数(timer)になれば電源を遮断する。また、変数を初期化する。
次に、図5に示すように次段の演算ブロックで演算処理を行うためステップS55に移行する。例えば、図6に示す演算ブロックAを初段とし、次に演算処理をする演算ブロックを演算ブロックBとし演算ブロックZまでを順に処理する場合について考える。演算ブロックBは、演算ブロックAまたはデータネットワーク3から入力データを取得する。演算ブロックBは演算ブロックAと同様にバッファ部の処理とロジック部の処理を完了し、次段の演算ブロックCに移行する。この処理を繰り返し演算ブロックZまでの演算を行う。
ここで、演算ブロックAと演算ブロックBが同時に演算を行っても問題はなく、そのような並列処理が必要な場合は電源スイッチ制御部4の制御プログラムを図5と異なる、並列処理可能なプログラムにすればよい。
(電源制御)
図7で電源供給の動作を説明する。図7の(イ)に示す期間(c)の波形はスイッチ部8(図2に示すトランジスタ25、26)の切り替えを示している。ロジック部7に電源供給し始めると(ロ)に示すロジック部7の電源電圧が立ち上がり同図(b)の期間経過後(電源電圧が安定した後)ロジック部7は演算処理を開始し、(ハ)に示す同図(a)の期間演算処理を実行する。そして、演算終了後スイッチ部8の切り替えを行い電源供給を遮断する。このように電源スイッチ制御部4の制御プログラムを作成する場合、ロジック部7が安定動作状態になる期間(b)を設けることが必要である。
(電源制御)
図7で電源供給の動作を説明する。図7の(イ)に示す期間(c)の波形はスイッチ部8(図2に示すトランジスタ25、26)の切り替えを示している。ロジック部7に電源供給し始めると(ロ)に示すロジック部7の電源電圧が立ち上がり同図(b)の期間経過後(電源電圧が安定した後)ロジック部7は演算処理を開始し、(ハ)に示す同図(a)の期間演算処理を実行する。そして、演算終了後スイッチ部8の切り替えを行い電源供給を遮断する。このように電源スイッチ制御部4の制御プログラムを作成する場合、ロジック部7が安定動作状態になる期間(b)を設けることが必要である。
上記のようにロジック部7が動作するときのみ電源スイッチ制御部4が電源を対応する演算ブロックに供給することで、演算処理が完了する毎に電源供給経路を停止することにより電源供給を停止する。ただし、バッファ部6には常に電源が供給されている。なぜならば、電源状態によらず、データ入力を常に可能とするためである。全ての演算ブロックのバッファ部6も同様である。このため、お互いの電力供給の状況を意識することなく、データの転送を行うことができる。
また、以上のシステムを有したLSI1に与えるクロックとして、入力データのm倍の動作周波数のクロックをロジック部に与えることにより演算時間を1/mにする。その結果、演算時間を1/mにでき電源供給時間を従来の1/mにすることが可能となり、電源停止の期間ロジック部のリーク電流を止めることができる。
(実施例2)
実施例2は、実施例1に示すような演算ブロックと電源スイッチ制御部との間での直接的な制御ではない。トークン発行部と各演算ブロックとの間にトークンバスを設け電源供給をトークン(電源供給権)を用いて行う。LSI81起動直後に、初段の演算ブロックに権利を与えて演算をする。そして、その演算ブロックでの演算が終わり次第、その権利を電源スイッチ制御部に返す。その戻りトークンを受けたトークン発行部が次段の演算ブロックにトークンを渡して電源供給を開始する仕組みを有する。
(実施例2)
実施例2は、実施例1に示すような演算ブロックと電源スイッチ制御部との間での直接的な制御ではない。トークン発行部と各演算ブロックとの間にトークンバスを設け電源供給をトークン(電源供給権)を用いて行う。LSI81起動直後に、初段の演算ブロックに権利を与えて演算をする。そして、その演算ブロックでの演算が終わり次第、その権利を電源スイッチ制御部に返す。その戻りトークンを受けたトークン発行部が次段の演算ブロックにトークンを渡して電源供給を開始する仕組みを有する。
図8はLSI81の構成を電源部82、データネットワーク83、トークン発行部84、演算ブロック85a〜85zなどから構成された場合の例である。
例えば、実施例1同様LSI81の機能を無線LANなどの復調部のベースバンド処理部と考えると、各演算ブロック85a〜85zはフィルタ部、FFT部などの機能を実現する回路である。また、各演算ブロック85a〜85zは演算処理を行いデータネットワーク83を介して次の演算ブロックに転送する。前段演算ブロックが処理を完了した後、次段演算ブロックの入力として前段演算ブロックの出力を利用すれば、現在使用している演算ブロックのみに電源供給するのでリーク電流が削減できる。
例えば、実施例1同様LSI81の機能を無線LANなどの復調部のベースバンド処理部と考えると、各演算ブロック85a〜85zはフィルタ部、FFT部などの機能を実現する回路である。また、各演算ブロック85a〜85zは演算処理を行いデータネットワーク83を介して次の演算ブロックに転送する。前段演算ブロックが処理を完了した後、次段演算ブロックの入力として前段演算ブロックの出力を利用すれば、現在使用している演算ブロックのみに電源供給するのでリーク電流が削減できる。
電源部82は、LSI81の各回路に電源を供給する。データネットワーク83は、クロスバネットワークまたはバスネットワークで構成された各演算ブロック85a〜85zを相互接続するデータパスである。データネットワーク83は入力データとvalidデータを各演算ブロックに送り、さらに各演算ブロックの出力データと出力Valid信号を演算ブロックや出力ポートを介して他の周辺回路に出力を転送する。validデータは各演算ブロックで使用する入力データが有効であるか否かを判定するためのデータである。
トークン発行部84は、各演算ブロック85a〜85zの電源供給のタイミングを制御する。各演算ブロック85a〜85zはバッファ部86a〜86zとロジック部87a〜87zを設けている。そして電源供給はバッファ部86a〜86zとロジック部87a〜87zとともにする。バッファ部86a〜86zは、実施例1同様入力データが何時きても保持できるように常時電源供給をする。ロジック部87a〜87zは上記説明した演算処理を実行するときだけ、スイッチ部88a〜88zを電源制御部89a〜89zが制御して電源供給をする。
また、トークン発行部84の構成は、CPUや再構成可能なハードウェアや専用のハードウェアでもよい。CPUなどにより実行する場合や再構成可能なハードウェアなどで構成する場合は、プログラムをLSI81起動時に読み込み実行してもよい。
次に、演算ブロック85a〜85zは図9に示す構成である。バッファ部86は、セレクタ部91、W/R制御部92、データバッファ部93などから構成される。
演算ブロック85a〜85zには入力データとValid信号を入力する。演算ブロックから出力データと出力Valid信号を出力する。
演算ブロック85a〜85zには入力データとValid信号を入力する。演算ブロックから出力データと出力Valid信号を出力する。
セレクタ部91は、回路設定信号によりデータネットワーク83とバッファ部86との接続を予め設定し、入力データとValid信号を演算ブロックに取り込む。
W/R制御部92は、セレクタ部91経由で入力された入力データとvalid信号をデータバッファ部93に書き込むための制御を行う。入力データはロジック部87で用いるデータ値を有しデータ入力用のクロックに同期している。また、セレクタ部91を介して入力されたValid信号に基づいて有効な入力データのみをデータバッファ部93に書き込む。
W/R制御部92は、セレクタ部91経由で入力された入力データとvalid信号をデータバッファ部93に書き込むための制御を行う。入力データはロジック部87で用いるデータ値を有しデータ入力用のクロックに同期している。また、セレクタ部91を介して入力されたValid信号に基づいて有効な入力データのみをデータバッファ部93に書き込む。
データバッファ部93はメモリに入力データを保存してロジック部87にデータを転送する。メモリへのデータ書き込み(Write)は一般的なアドレスに対してデータを保存する方式でもよいし、FIFOのように入力順に保存してもよい。また、ロジック部87へのデータ転送を行う。
演算ブロック内の電源制御部89は、データバッファ部93に所定のデータ数が蓄積され、トークン発行部84からトークンを取得したことを検知するとスイッチ部88の切り替えをする。そしてロジック部87に電源が供給される。データバッファ部93にロジック部87へ蓄積データの転送を開始する。
スイッチ部88はトランジスタ95、96などにより電源供給を制御する。例えば、インバータ94とトランジスタ95、96を用いて制御をする。本例ではトランジスタ95と96は異なる接合を用いているため、電源制御部89からの電源制御信号(動作開始トリガ)をインバータ94で反転してトランジスタ95に入力している。一方のトランジスタ96へは反転をしないで入力する。そしてVDD側とGND側で電源オン/オフをしている。本例ではトランジスタ96によりGND側の切り替えもしているが、VDD側のみの切り替えだけでもよい。
(動作説明)
次に、実施例2の動作フローを図10を用い説明する。
(動作説明)
次に、実施例2の動作フローを図10を用い説明する。
ステップS101ではトークン発行部84でトークンを発行する制御プログラムなどを設定する。上記説明したように各演算ブロックに対してトークンを発行して演算ブロックに権利を与え電源オン/オフのタイミングを通知する設定をする。
また、ステップS102では、ロジック部に対して機能を実現するためのパラメータなどを設定する。図9に示す回路設定信号により、例えばFFT演算であれが複素データの実部と虚部に対応するパラメータを設定する。またディジタルフィルタ演算であれば対応するフィルタ係数パラメータを設定する。
ステップS103は図9に示す回路設定信号により、図10に示す各演算ブロックのセレクタ部91の設定(SEL)をする。
また、ステップS104では各演算ブロックの電源設定をする。W/R制御部92には定数として蓄積データ数(Ndata)、ロジック部処理時間(Toutoff)を設定する。ステップS105では変数としてデータ読み込みカウント数(Counter)、ロジック部処理時間カウント数(timer)を初期化する。同図では初期化を0にしてアップカウントしているがダウンカウントしてもかまわない。ここで、破線で囲んだ設定処理のステップS101〜105の順番は限定するものではない。また、設定処理はCPU若しくは全体の制御を担う専用ハードによる設定である。
また、ステップS104では各演算ブロックの電源設定をする。W/R制御部92には定数として蓄積データ数(Ndata)、ロジック部処理時間(Toutoff)を設定する。ステップS105では変数としてデータ読み込みカウント数(Counter)、ロジック部処理時間カウント数(timer)を初期化する。同図では初期化を0にしてアップカウントしているがダウンカウントしてもかまわない。ここで、破線で囲んだ設定処理のステップS101〜105の順番は限定するものではない。また、設定処理はCPU若しくは全体の制御を担う専用ハードによる設定である。
ステップS106ではトークン発行部84がトークンを目的の演算ブロックに発行する。
ステップS107では各演算部の入力データとValid信号をセレクタ部91の接続(SEL)に基づいて取り込む。
ステップS107では各演算部の入力データとValid信号をセレクタ部91の接続(SEL)に基づいて取り込む。
ステップS108では、W/R制御部92がValid信号の有効であるデータのみをデータバッファ部93に書き込みをする。Valid信号が有効なときデータバッファ部93に入力データとValid信号を書き込み制御信号を出力する。そしてValidデータを1つ書き込む毎にデータ読込みカウント数(Counter)をインクリメントする。
ステップS109では、電源制御部89がトークンを受信し、データバッファ部93に有効な入力データが所定の数書き込まれたかを判断する。つまりデータ読み込みカウント数(Counter)=蓄積データ数(Ndata)が成立しているかを判断する。成立すれば(YES)ステップS1010に移行し、成立していなければ成立するまでS109でループする。W/R制御部は予め設定したデータ数になると、データバッファ部103からデータ転送を開始する読み込み制御信号と電源制御部にフル信号をデータバッファ部103に出力する。
ステップS1010では、電源制御部89からの電源制御信号(動作開始トリガ)により、対応する演算ブロックのロジック部87に電源を供給するスイッチ部88を制御して導通させロジック部処理時間カウント数(timer)のカウントアップを開始する。
ステップS1011では、データバッファ部93がNdata分の蓄積データをロジック部に転送する。ステップS1012ではロジック部87がデータを受信し演算を開始する。その後、演算を完了したデータをステップS1013でロジック部87からデータを出力する。
ステップS1014では、ロジック部87の処理が完了後、ロジック部処理時間(Toutoff)=ロジック部処理時間カウント数(timer)になれば電源を遮断する。また、変数を初期化する。
ステップS1015では、電源制御部89がトークン発行部84に権利を戻す。ステップS1016ではトークン発行部84が、戻りトークンを受信する。
そして、次段の演算ブロックで演算処理を行うためステップS106に移行する。例えば、演算ブロックAを初段とし、次に演算処理をする演算ブロックを演算ブロックBとし演算ブロックZまでを順に処理する。演算ブロックBは、演算ブロックAまたはデータネットワーク3から入力データを取得する。演算ブロックBは演算ブロックAと同様にバッファ部の処理とロジック部の処理を完了し、次段の演算ブロックCに移行する。この処理を繰り返し演算ブロックZまでの演算を行う。
そして、次段の演算ブロックで演算処理を行うためステップS106に移行する。例えば、演算ブロックAを初段とし、次に演算処理をする演算ブロックを演算ブロックBとし演算ブロックZまでを順に処理する。演算ブロックBは、演算ブロックAまたはデータネットワーク3から入力データを取得する。演算ブロックBは演算ブロックAと同様にバッファ部の処理とロジック部の処理を完了し、次段の演算ブロックCに移行する。この処理を繰り返し演算ブロックZまでの演算を行う。
ここで、演算ブロックAと演算ブロックBが同時に演算を行っても問題はなく、そのような並列処理が必要な場合はトークン発行部84の制御プログラムを図10と異なる、並列のプログラムにすればよい。
(実施例3)
ブロック間のデータ受け渡しの順番(データネットワークトポロジー)が入れ替わる場合や、複数演算ブロックからの入力がある場合にネットワークと演算ブロックとの間の接続が複雑になる。その場合にソース演算ブロックとターゲット演算ブロック間の関係だけを電源制御部に定義しておけばよい。演算ブロックを細分化してきめ細かな制御が容易に可能になる。
(実施例3)
ブロック間のデータ受け渡しの順番(データネットワークトポロジー)が入れ替わる場合や、複数演算ブロックからの入力がある場合にネットワークと演算ブロックとの間の接続が複雑になる。その場合にソース演算ブロックとターゲット演算ブロック間の関係だけを電源制御部に定義しておけばよい。演算ブロックを細分化してきめ細かな制御が容易に可能になる。
図11はLSI111の構成を電源部112、データネットワーク113、演算ブロック114a〜114zなどから構成された場合の例である。
例えば、実施例1同様LSI111の機能を無線LANなどの復調部のベースバンド処理部と考えると、各演算ブロック114a〜114zはフィルタ部、FFT部などの機能を実現する回路である。また、各演算ブロック114a〜114zは演算処理を行いデータネットワーク113を介して次の演算ブロックに転送する。前段演算ブロックが処理を完了した後、次段演算ブロックの入力として前段演算ブロックの出力を利用すれば、現在使用している演算ブロックのみに電源供給するのでリーク電流が削減できる。
例えば、実施例1同様LSI111の機能を無線LANなどの復調部のベースバンド処理部と考えると、各演算ブロック114a〜114zはフィルタ部、FFT部などの機能を実現する回路である。また、各演算ブロック114a〜114zは演算処理を行いデータネットワーク113を介して次の演算ブロックに転送する。前段演算ブロックが処理を完了した後、次段演算ブロックの入力として前段演算ブロックの出力を利用すれば、現在使用している演算ブロックのみに電源供給するのでリーク電流が削減できる。
電源部112は、LSI111の各回路に電源を供給する。データネットワーク113は、クロスバネットワークまたはバスネットワークで構成された各演算ブロック114a〜114zを相互接続するデータパスである。データネットワーク113は入力データとvalid信号を各演算ブロックに送り、さらに各演算ブロックの出力データと出力Valid信号を演算ブロックや出力ポートを介して他の周辺回路に出力を転送する。
各演算ブロック114a〜114zはバッファ部115a〜115zとロジック部116a〜116zを設けている。そして電源供給はバッファ部115a〜115zとロジック部116a〜116zにする。バッファ部115a〜115zは入力データが何時きても保持できるように常時電源供給をする。ロジック部116a〜116zは上記説明した演算処理を実行し、演算処理を行うときにスイッチ部117a〜117zを制御して電源供給をする。各演算ブロック114a〜114zの電源制御部118a〜118zは、電源供給のタイミングを制御する。
次に、演算ブロック114a〜114zは図12に示す構成である。バッファ部115は、セレクタ部121、W/R制御部122、データバッファ部123などから構成される。
演算ブロック114a〜114zには入力データとValid信号を入力する入力ポートと演算ブロックから出力データを出力ポートを設ける。
セレクタ部121は、回路設定信号によりデータネットワーク113とバッファ部115との接続を設定し、入力データとValid信号を演算ブロックに取り込む。
セレクタ部121は、回路設定信号によりデータネットワーク113とバッファ部115との接続を設定し、入力データとValid信号を演算ブロックに取り込む。
W/R制御部122は、セレクタ部121経由で入力された入力データをデータバッファ部123に書き込むための制御を行う。また、W/R制御部122がトグル信号によりスイッチ部117の切り替えをする。データバッファ部123に所定のデータ数が蓄積されるとロジック部116への転送が開始される。入力データはロジック部116で用いるデータを有しデータ入力用のクロックに同期している。また、セレクタ部121を介して入力されたValid信号に基づいて有効な入力データのみをデータバッファ部123に書き込む。
データバッファ部123はメモリに入力データを保存してロジック部116にデータを転送する。メモリへのデータ書き込み(Write)は一般的なアドレスに対してデータを保存する方式でもよいし、FIFOのように入力順に保存してもよい。
スイッチ部117はトランジスタ125、126などにより電源供給を制御することができる。例えば、インバータ124とトランジスタ125、126を用いて制御をする。本例ではトランジスタ125と126は異なる接合であるため、電源制御部118からの信号をインバータ124で反転してトランジスタ125に入力している。一方のトランジスタ126へは反転をしないで入力する。
本例ではトランジスタ126によりGND側の切り替えもしているが、トランジスタ125だけを用いVDD側のみの切り替えだけでもよい。
(動作説明)
実施例3は回路設定信号によりロジック部116、W/R制御部122、セレクタ部121の設定を完了した後、(1)入力データをセレクタ部経由で演算ブロックへ取り込む。Valid信号が有効である入力データのみをW/R制御部122で選り分け、データバッファ部123に書き込む。データバッファ部123は、回路設定信号により決められた一定のデータ数がデータバッファ部123に蓄積された段階で、そのデータをロジック部116に転送する。W/R制御部122は、データ書き込みと同時に電源制御部118にスイッチを導通させるトグルの役割を果たす信号を送ることにより、電源Vdd’、グランドGND’のスイッチをオンさせ電源供給をする。また、W/R制御部122はロジック部116から処理データが出力された後、トグル信号を送り電源を遮断する。電源供給から遮断するまでのタイミング設定は回路設定信号により行う。
(動作説明)
実施例3は回路設定信号によりロジック部116、W/R制御部122、セレクタ部121の設定を完了した後、(1)入力データをセレクタ部経由で演算ブロックへ取り込む。Valid信号が有効である入力データのみをW/R制御部122で選り分け、データバッファ部123に書き込む。データバッファ部123は、回路設定信号により決められた一定のデータ数がデータバッファ部123に蓄積された段階で、そのデータをロジック部116に転送する。W/R制御部122は、データ書き込みと同時に電源制御部118にスイッチを導通させるトグルの役割を果たす信号を送ることにより、電源Vdd’、グランドGND’のスイッチをオンさせ電源供給をする。また、W/R制御部122はロジック部116から処理データが出力された後、トグル信号を送り電源を遮断する。電源供給から遮断するまでのタイミング設定は回路設定信号により行う。
次に、実施例3の動作フローを図13を用い説明する。
ステップS131では、ロジック部に対して機能を実現するためのパラメータなどを設定する。図13に示す回路設定信号により、例えばFFT演算であれが複素データの実部と虚部に対応するパラメータを設定する。またディジタルフィルタ演算であれば対応するフィルタ係数パラメータを設定する。
ステップS131では、ロジック部に対して機能を実現するためのパラメータなどを設定する。図13に示す回路設定信号により、例えばFFT演算であれが複素データの実部と虚部に対応するパラメータを設定する。またディジタルフィルタ演算であれば対応するフィルタ係数パラメータを設定する。
ステップS132は図12に示す回路設定信号により、各演算ブロックのセレクタ部121の設定(SEL)をする。
また、ステップS133では各演算ブロックの電源設定をする。W/R制御部122には定数として蓄積データ数(Ndata)、ロジック部処理時間(Toutoff)を設定する。ステップ134では変数としてデータ読込みカウント数(Counter)、ロジック部処理時間カウント数(timer)を初期化する。同図では初期化を0にしてアップカウントしているがダウンカウントしてもかまわない。ここで、破線で囲んだ設定処理のステップS131〜134の順番は限定するものではない。
また、ステップS133では各演算ブロックの電源設定をする。W/R制御部122には定数として蓄積データ数(Ndata)、ロジック部処理時間(Toutoff)を設定する。ステップ134では変数としてデータ読込みカウント数(Counter)、ロジック部処理時間カウント数(timer)を初期化する。同図では初期化を0にしてアップカウントしているがダウンカウントしてもかまわない。ここで、破線で囲んだ設定処理のステップS131〜134の順番は限定するものではない。
ステップS135では各演算部の入力データとValid信号をセレクタ部121の接続(SEL)に基づいて取り込む。
ステップS136では、Valid信号が有効なデータのみをデータバッファ部123に書き込みValidデータを1つ書き込む毎にデータ読み込みカウント数(Counter)をインクリメントなどする。Valid信号が有効なときデータバッファ部123に入力データとValid信号を書き込み制御信号を出力する。
ステップS136では、Valid信号が有効なデータのみをデータバッファ部123に書き込みValidデータを1つ書き込む毎にデータ読み込みカウント数(Counter)をインクリメントなどする。Valid信号が有効なときデータバッファ部123に入力データとValid信号を書き込み制御信号を出力する。
ステップS137では、データバッファ部123に有効な入力データが所定の数書き込まれたかを判断する。つまりデータ読み込みカウント数(Counter)=蓄積データ数(Ndata)が成立しているかを判断する。成立していれば(YES)ステップS138に移行し、成立していなければ成立するまでS137でループする。W/R制御部は予め設定したデータ数になると、データバッファ部123からデータ転送を開始する読み込み制御信号と電源制御部にフル信号をデータバッファ部123に出力する
ステップS138では、トグル信号を電源制御部118が受信し、ロジック部116に電源供給をするスイッチ部117を制御し導通させる。そしてロジック部処理時間カウント数(timer)のカウントアップを開始する。
ステップS138では、トグル信号を電源制御部118が受信し、ロジック部116に電源供給をするスイッチ部117を制御し導通させる。そしてロジック部処理時間カウント数(timer)のカウントアップを開始する。
ステップS139では、データバッファ部123がNdata分の蓄積データをロジック部116に転送する。ステップS1310ではロジック部116がデータを受信し演算を開始する。その後、演算を完了したデータをステップS1311でロジック部106からデータとValid信号を出力する。
ステップS1312では、ロジック部116の処理が完了後、ロジック部処理時間(Toutoff)=ロジック部処理時間カウント数(timer)になれば電源を遮断する。また、変数を初期化する。
そして、次段の演算ブロックで演算処理を行うためステップS135に移行する。例えば、演算ブロックAを初段とし、次に演算処理をする演算ブロックを演算ブロックBとし演算ブロックZまでを順に処理する。演算ブロックBは、演算ブロックAまたはデータネットワーク3から入力データを取得する。演算ブロックBは演算ブロックAと同様にバッファ部の処理とロジック部の処理を完了し、次段の演算ブロックCに移行する。この処理を繰り返し演算ブロックZまでの演算を行う。
ここで、異なる演算ブロックが同時に演算を行っても問題はない。
また、本発明は、上記実施の形態に限定されるものでなく、本発明の要旨を逸脱しない範囲内で種々の改良、変更が可能である。
また、本発明は、上記実施の形態に限定されるものでなく、本発明の要旨を逸脱しない範囲内で種々の改良、変更が可能である。
Claims (15)
- 演算処理を実行する演算ブロックを設けた半導体集積回路であって、
入力データと前記入力データが有効なデータであるかを示すValid信号を入力し、前記有効であるときに入力データを保持する前記演算ブロックのバッファ部と、
前記バッファ部に保持した蓄積データの数が予め設定したデータ数に達したときに、前記蓄積データを利用して演算処理を実行し、前記演算処理実行後出力データと前記出力データが有効であるかを示すValid信号を出力する前記演算ブロックのロジック部と、
前記ロジック部が演算処理実行前に、電源供給をするために電源オン/オフを行う前記演算ブロックのスイッチ部の制御を行う電源スイッチ制御部と、
を具備することを特徴とする半導体集積回路。 - 前記演算ブロックは、
前記演算ブロックに前記入力データと前記Valid信号を入力するために設けられたデータネットワークとの接続を設定するセレクタ部と、
前記セレクタ部を介して前記入力データと前記Valid信号を入力し、前記Valid信号が有効である前記入力データを保持するデータバッファ部と、
前記Valid信号が有効なとき前記データバッファ部に前記入力データと前記Valid信号を書き込み制御信号を出力し、前記入力データが前記予め設定したデータ数になり、前記電源スイッチ制御部からの前記ロジック部への電源供給指示により、前記データバッファ部からデータ転送を開始する読み込み制御信号を前記データバッファ部に出力し、前記ロジック部への電源供給開始から前記ロジック部の演算処理終了までの時間をカウントするW/R制御部と、
を具備することを特徴とする請求項1に記載の半導体集積回路。 - 電源スイッチ制御部は、
前記ロジック部への電源供給を制御する前記スイッチ部の切り替えタイミングを周期的に通知することを特徴とする請求項1に記載の半導体集積回路。 - 前記ロジック部のリーク電流と演算に掛かる充放電電流の比に基づいて、前記ロジック部の動作周波数を決定することで、所望の消費電力を低減することを特徴とする請求項1に記載の半導体集積回路。
- 演算処理を実行する演算ブロックを設けた半導体集積回路であって、
入力データと前記入力データが有効なデータであるかを示すValid信号を入力し、前記有効であるときに入力データを保持し、保持した蓄積データの数が予め設定したデータ数に達したときにフル信号を発行する前記演算ブロックのバッファ部と、
前記バッファ部に保持した蓄積データの数が予め設定したデータ数に達したときに、前記蓄積データを利用して演算処理を実行し、前記演算処理実行後に出力データと前記出力データが有効であるかを示すValid信号を出力する前記演算ブロックのロジック部と、
前記ロジック部が演算処理実行前に電源供給をするために電源供給許可と前記フル信号を受信して、電源オン/オフを行う前記演算ブロックのスイッチ部の制御を行う前記演算ブロックの電源制御部と、
前記電源制御部へ電源オン/オフを制御するトークンを発行して、前記ロジック部への前記電源供給許可をし、前記ロジック部が演算処理を完了すると前記電源制御部から前記電源供給許可を取り消す戻りトークンを受信するトークン発行部と、
を具備することを特徴とする半導体集積回路。 - 前記演算ブロックは、
前記演算ブロックに前記入力データと前記Valid信号を入力するために設けられたデータネットワークとの接続を設定するセレクタ部と、
前記セレクタ部を介して前記入力データと前記Valid信号を入力し、前記Valid信号が有効である前記入力データを保持するデータバッファ部と、
前記Valid信号が有効なとき前記データバッファ部に前記入力データと前記Valid信号を書き込み制御信号を出力し、前記入力データが前記予め設定したデータ数になり、前記データバッファ部からデータ転送を開始する読み込み制御信号と電源制御部にフル信号を前記データバッファ部に出力するW/R制御部と、
前記トークン発行部から発行される前記ロジック部への前記電源供給許可のトークンと前記フル信号を受信すると前記スイッチ部を切り替えて前記ロジック部に電源供給をし、前記ロジック部への電源供給開始から前記ロジック部の演算処理終了までの時間をカウントする電源制御部と、
を具備することを特徴とする請求項5に記載の半導体集積回路。 - 前記ロジック部のリーク電流と演算に掛かる充放電電流の比に基づいて、前記ロジック部の動作周波数を決定することで、所望の消費電力を低減することを特徴とする請求項5に記載の半導体集積回路。
- 演算処理を実行する演算ブロックを設けた半導体集積回路であって、
入力データと前記入力データが有効なデータであるかを示すValid信号を入力し、前記有効であるときに入力データを保持し、保持した蓄積データの数が予め設定したデータ数に達したときにトグル信号を発行する前記演算ブロックのバッファ部と、
前記バッファ部に保持した蓄積データの数が予め設定したデータ数に達したときに、前記蓄積データを利用して演算処理を実行し、前記演算処理実行後出力データと前記出力データが有効であるかを示すValid信号を出力する前記演算ブロックのロジック部と、
前記ロジック部が演算処理実行前に電源供給をするために前記バッファ部から前記トグル信号を受信し、前記ロジック部への電源オン/オフを行う前記演算ブロックのスイッチ部の制御を行う前記演算ブロックの電源制御部と、
を具備することを特徴とする半導体集積回路。 - 前記ロジック部のリーク電流と演算に掛かる充放電電流の比に基づいて、前記ロジック部の動作周波数を決定することで、所望の消費電力を低減することを特徴とする請求項5に記載の半導体集積回路。
- 前記セレクタには、前記演算ブロック毎に前記入力データと前記Valid信号を送信する転送元の前記演算ブロックの転送元情報と、前記演算ブロックの出力として前記入力データと前記Valid信号を出力する転送先の前記演算ブロックの転送先情報を設定することを特徴とする請求項1に記載の半導体集積回路。
- 前記セレクタには、前記演算ブロック毎に前記入力データと前記Valid信号を送信する転送元の前記演算ブロックの転送元情報と、前記演算ブロックの出力として前記入力データと前記Valid信号を出力する転送先の前記演算ブロックの転送先情報を設定することを特徴とする請求項5に記載の半導体集積回路。
- 前記セレクタには、前記演算ブロック毎に前記入力データと前記Valid信号を送信する転送元の前記演算ブロックの転送元情報と、前記演算ブロックの出力として前記入力データと前記Valid信号を出力する転送先の前記演算ブロックの転送先情報を設定することを特徴とする請求項8に記載の半導体集積回路。
- 前記スイッチ部は、電源供給源とグランドをトランジスタにより導通させて、前記ロジック部の電源供給オン/オフの切り替えをすることを特徴とする請求項1に記載の半導体集積回路。
- 前記スイッチ部は、電源供給源とグランドをトランジスタにより導通させて、前記ロジック部の電源供給オン/オフの切り替えをすることを特徴とする請求項5に記載の半導体集積回路。
- 前記スイッチ部は、電源供給源とグランドをトランジスタにより導通させて、前記ロジック部の電源供給オン/オフの切り替えをすることを特徴とする請求項8に記載の半導体集積回路。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2006/313099 WO2008001461A1 (fr) | 2006-06-30 | 2006-06-30 | Circuit intégré à semi-conducteurs |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2008001461A1 true JPWO2008001461A1 (ja) | 2009-11-26 |
JP4551474B2 JP4551474B2 (ja) | 2010-09-29 |
Family
ID=38845236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008522264A Expired - Fee Related JP4551474B2 (ja) | 2006-06-30 | 2006-06-30 | 半導体集積回路 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP4551474B2 (ja) |
WO (1) | WO2008001461A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012008093A (ja) * | 2010-06-28 | 2012-01-12 | Fujitsu Semiconductor Ltd | 半導体集積回路 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5228600B2 (ja) * | 2008-04-23 | 2013-07-03 | 日本電気株式会社 | 情報通信機器、低消費電力回路及びそれらに用いる消費電力削減方法 |
JP2012209888A (ja) | 2011-03-30 | 2012-10-25 | Panasonic Corp | 無線通信装置及び半導体装置 |
US11116263B2 (en) | 2013-11-21 | 2021-09-14 | Medline Industries, Inc. | Gown for self-donning while maintaining sterility and methods therefor |
JP6722986B2 (ja) * | 2014-07-04 | 2020-07-15 | 株式会社半導体エネルギー研究所 | 半導体装置 |
JP7293175B2 (ja) | 2020-09-09 | 2023-06-19 | 株式会社東芝 | 通信装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06196997A (ja) * | 1991-08-06 | 1994-07-15 | American Teleph & Telegr Co <Att> | データ出力装置とその方法および記憶装置 |
WO2002065642A1 (fr) * | 2001-02-15 | 2002-08-22 | Hitachi,Ltd | Circuit integre a semi-conducteurs, systeme de traitement de donnees et appareil de terminal mobile de communication |
JP2003124794A (ja) * | 2001-10-10 | 2003-04-25 | Sharp Corp | 半導体集積回路およびそれを用いた半導体装置 |
-
2006
- 2006-06-30 WO PCT/JP2006/313099 patent/WO2008001461A1/ja active Application Filing
- 2006-06-30 JP JP2008522264A patent/JP4551474B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06196997A (ja) * | 1991-08-06 | 1994-07-15 | American Teleph & Telegr Co <Att> | データ出力装置とその方法および記憶装置 |
WO2002065642A1 (fr) * | 2001-02-15 | 2002-08-22 | Hitachi,Ltd | Circuit integre a semi-conducteurs, systeme de traitement de donnees et appareil de terminal mobile de communication |
JP2003124794A (ja) * | 2001-10-10 | 2003-04-25 | Sharp Corp | 半導体集積回路およびそれを用いた半導体装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012008093A (ja) * | 2010-06-28 | 2012-01-12 | Fujitsu Semiconductor Ltd | 半導体集積回路 |
Also Published As
Publication number | Publication date |
---|---|
JP4551474B2 (ja) | 2010-09-29 |
WO2008001461A1 (fr) | 2008-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4974202B2 (ja) | 半導体集積回路 | |
JP4551474B2 (ja) | 半導体集積回路 | |
JP4621113B2 (ja) | 半導体集積回路装置 | |
US7109771B2 (en) | Semiconductor integrated circuit with reduced leakage current | |
US20160239060A1 (en) | Independent power collapse methodology | |
US7511535B2 (en) | Fine-grained power management of synchronous and asynchronous datapath circuits | |
JP4494390B2 (ja) | チップ及びシステム | |
JP2002351737A (ja) | 半導体記憶装置 | |
JP2004021574A (ja) | 半導体装置 | |
JP2008078892A (ja) | 半導体集積回路装置及び電子装置 | |
JP2005157620A (ja) | 半導体集積回路 | |
JP2007226632A (ja) | マイクロコンピュータ | |
JP2013109747A (ja) | メモリデバイスに対する電力制御 | |
JPH10149237A (ja) | 半導体回路 | |
JP2005517338A (ja) | 低消費電力のディジタル電子回路 | |
JPWO2005013107A1 (ja) | 半導体装置及び半導体装置の駆動方法 | |
JP5574461B2 (ja) | 半導体集積回路 | |
JP5408743B2 (ja) | 携帯電話 | |
JP2004274099A (ja) | パケット処理回路 | |
JP2002341976A (ja) | 多電源半導体装置及び該装置の電源制御方法 | |
JP2006201856A (ja) | 半導体集積回路 | |
JP5704669B2 (ja) | 半導体装置 | |
JP2004335686A (ja) | 高速低消費電力論理装置 | |
JP4894218B2 (ja) | 半導体集積回路 | |
JP2006332897A (ja) | 半導体集積回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20100706 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100709 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130716 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |