(57)【要約】【課題】不使用の回路ブロックのリーク電流を電源スイッチにより低減する場合、スイッチのオンオフを短時間で頻繁に行なうと却って電力増加を招く。また、スイッチをオンしてから回路ブロックが利用できるまでには予熱時間が必要なため、動作時にスイッチを制御することは半導体装置の処理時間を損なう。【解決手段】論理回路やメモリコアを制御するＣＰＵコアのタスク継続時間を単位として上記のスイッチをオンオフする。また、スイッチをオフした場合には、予熱時間を見込んでタスクの終了前にスイッチをオンしておく。【選択図】　図１
2004021574.tif 000002
【特許請求の範囲】
【請求項１】
電源線と、
すくなくとも一つの第１回路ブロックを含む複数の回路ブロックと、
上記少なくとも一つの第１回路ブロックのそれぞれに対応して設けられ、上記電源線から上記第１回路ブロックへの電源の供給を制御する少なくとも一つのスイッチと、
上記複数の回路ブロックの少なくとも一つを使用状態としてタスクを実行するプロセッサとを有し、
上記プロセッサのタスクの実行において、上記第１回路ブロックはその不使用状態への移行を指示するステート信号を受けて対応する上記スイッチをオフ状態とし、上記第１回路ブロックがその使用状態への移行を指示するステート信号を受けるのに先立って上記スイッチをオン状態とする半導体装置。
【請求項２】
請求項１において、
上記複数の回路ブロックは、上記電源線とスイッチを介さず接続される少なくとも一つの第２の回路ブロックを有する半導体装置。
【請求項３】
請求項１において、
上記第１回路ブロックが上記スイッチをオフ状態とする時間Ｔ−ｏｆｆは、Ｔ−ｏｆｆ＜タスク継続時間Ｔ−ｔａｓｋ−予熱時間Ｔ−ｈｅａｔの関係を満たし、
上記予熱時間Ｔ−ｈｅａｔは、上記第１回路ブロックの少なくとも回路規模に応じて決定される半導体装置。
【請求項４】
請求項１において、
上記第１回路ブロックが上記スイッチをオフ状態とする時間Ｔ−ｏｆｆは、時間Ｔ−ｍｉｎ＜　Ｔ−ｏｆｆの関係を満たし、
上記時間Ｔ−ｍｉｎは、上記第１回路ブロックのサブスレッショルド電流による消費電力と電源スイッチを駆動するための消費電力とに応じて決定される半導体装置。
【請求項５】
請求項１において、
上記第１回路ブロックは、クロック信号の入力に応じてそのデータを入出力するフリップフロップと、
上記フリップフロップの出力を受ける論理回路と、
第１のゲート回路とを有し、
上記プロセッサのタスクの実行において、上記第１のゲート回路は上記第１回路ブロックの不使用状態への移行を指示するステート信号を受けて、上記クロック信号の上記フリップフロップへの入力を遮断する半導体装置。
【請求項６】
請求項５において、
第２のゲート回路を有し、
上記プロセッサのタスクの実行において、上記第２のゲート回路は上記第１回路ブロックの不使用状態への移行を指示するステート信号を受けて、上記論理回路の出力を所定のレベルに制御する半導体装置。
【請求項７】
請求項１において、
上記第１回路ブロックは複数の要素回路により構成され、
上記複数の要素回路の少なくとも一つは個別に電力の供給が制御可能である半導体装置。
【請求項８】
電源線と、
すくなくとも一つの第１回路ブロックを含む複数の回路ブロックと、
上記少なくとも一つの第１回路ブロックのそれぞれに対応して設けられ、上記電源線から上記第１回路ブロックへの電源の供給を制御する少なくとも一つのスイッチと、
上記複数の回路ブロックの少なくとも一つを使用状態としてタスクを実行するプロセッサとを有し、
上記プロセッサのタスクの実行において、上記第１回路ブロックはその不使用または使用状態への移行を指示するステート信号に応じて上記スイッチを制御する半導体装置。
【請求項９】
電源線と、
すくなくとも一つの第１回路ブロックを含む複数の回路ブロックと、
上記少なくとも一つの第１回路ブロックのそれぞれに対応して設けられ、上記電源線から上記第１回路ブロックへの電源の供給を制御する少なくとも一つのスイッチと、
上記複数の回路ブロックの少なくとも一つを使用状態としてタスクを実行するプロセッサとを有し、
上記スイッチはタスクの継続時間を単位に制御される半導体装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＰＵコアと論理コア、メモリコアなどが集積された半導体集積回路を含む半導体装置に関する。
【０００２】
【従来の技術】
ＭＯＳトランジスタのスケーリングにより、半導体集積回路の速度と電力とはともに向上されてきた。しかし、加工寸法が０．１５μｍ程度以下のＭＯＳトランジスタを用いる最近の半導体集積回路では、電源電圧のスケーリングに伴って、速度と電力性能の両立が困難になってきている。これは、低い電源電圧において速度を確保するためにＭＯＳトランジスタのしきい電圧を低く設定することにより、サブスレッショルドリーク電流の増加をもたらすからである。
【０００３】
現在の半導体集積回路のほとんどは、ＣＭＯＳ回路を用いている。これは、理想的には、ＣＭＯＳ回路には動作時のみに負荷容量の充放電に伴うＡＣ電流が流れ、待機時には電流が流れないためである。しかしながら、サブスレッショルドリーク電流はＤＣ電流として常に流れる。サブスレッショルドリーク電流はＭＯＳトランジスタのしきい電圧が低下するに従って大きくなるから、しきい値電圧の低いＭＯＳトランジスタを用いたＣＭＯＳ回路においてはサブスレッショルドリーク電流による電力性能の悪化は無視できない大きさとなる。
【０００４】
このサブスレッショルドリーク電流を低減するための従来技術として、回路と電源線との間にしきい電圧の高いＭＯＳトランジスタからなる電源スイッチを設け、待機時にはそのＭＯＳトランジスタをオフする方法が提案されている。例えば、１９９８年２月に米国サンフランシスコで開催された国際固体素子会議（ＩＳＳＣＣ）の予稿集１９２ページから１９３ページに記載された方式（第１の従来技術）、あるいは特開平１０−２０８４７３号公報（第２の従来技術）に記載された方式はその例である。
【０００５】
【発明が解決しようとする課題】
第１の従来技術は、半導体装置の待機時に電源スイッチによりサブスレッショルドリーク電源（以下、「リーク電流」と称する。）を遮断する。
【０００６】
しかし、ＭＯＳトランジスタの微細化がさらに進み、電源電圧が例えば１Ｖ以下といったように低くなると、ますますしきい電圧を低く設定せざるをえない。このため、リーク電流はさらに増大するが、その一方で動作時のＡＣ電流は、電源電圧に比例して減少する。この結果、動作時の消費電流に占めるリーク電流の割合が増大することが予想され、動作時のＡＣ電流の大きさに比較したリーク電流の大きさが無視できないものとなる。
【０００７】
第２の従来技術には、動作時にも未使用の回路ブロックについて電源スイッチを遮断することが記載されている。しかし、動作時に電源スイッチによる電流遮断を実現しようとすると、以下のような２つの課題がある。
【０００８】
第一の課題は、むやみに電源スイッチをオンオフすると却って消費電流が増大するという課題である。動作時といえども集積回路全体が常に動作するわけではないので、未使用の回路ブロックに対して電源スイッチにより電流を遮断することは可能である。しかし、短時間のうちに電源スイッチのオンオフを繰り返すと、電源スイッチの遮断によるリーク電流の低減よりも電源スイッチをオンする場合に消費する過渡的な電流の方が却って大きくなってしまうおそれがある。
【０００９】
第二の課題は、電源スイッチのオンオフにより、集積回路の速度が低下する問題である。電源スイッチをオンしてから電流を遮断されていた回路を利用できるようになるまでには時間（以下、「予熱時間」と称する）が必要である。このため、場合によっては集積回路全体の速度を大きく低下させてしまうおそれがある。
【００１０】
【課題を解決するための手段】
上記課題の解決のために、本発明では以下のような手段を用いる。第一の課題の解決のために、集積回路を制御するプロセッサ（ＣＰＵ）のタスクの継続時間を利用して電源スイッチ制御を行なう。具体的には、ＣＰＵ内部のタスクＩＤレジスタやリソース管理レジスタを参照するし、不使用の回路ブロックに電流を供給する電源スイッチをオフする。回路規模にもよるが、一般に電源スイッチのオンオフによる電流消費にくらべて、リーク電流を遮断することによる電流削減効果が有効になるのは、数マイクロ秒以上の時間、電源スイッチをオフできる場合である。これに対してタスクの継続時間は通常１ミリ秒程度なのでタスクの継続時間で電源スイッチを管理することで、上記の課題を解決することができる。また、第二の課題に対しては、電源スイッチをオフした後に、ある一定の時間が経過したら、次のタスクが始まる以前に電源スイッチをオンする。この一定時間を、タスクの継続時間から、予熱時間（擬似電源線を充電するのに要する時間）を差し引いた時間以下に設定すれば次のタスクが始まるまでに、予熱時間が終了しているので、次のタスクを遅延させることを回避できる。
【００１１】
【発明の実施の形態】
以下、図面を用いて本発明の実施例を説明する。
【００１２】
図１に、ＣＰＵコア、ＤＳＰコア、各種の論理コアやメモリコア等を１つのチップ上に集積した半導体集積回路に本発明を適用した場合の基本的な構成を示した。本発明は、図１のような１チップの形態の半導体集積回路に限定されるものではなく、複数のチップを搭載したシステムやボードあるいは、一つのパッケージに複数のチップを集積した所謂マルチチップパッケージのような形態の半導体装置やそれらの組合せにも適用することができる。以下では簡単のため、図１のような１チップの形態に基づいて説明する。
【００１３】
図１において、シリコンチップＣＨＩＰは、主たるコアとして、ＣＰＵコアＣＰＵ、ＤＳＰコアＤＳＰ、命令キャッシュＩ−Ｃ、データキャッシュＤ−Ｃ、ＸＹメモリＸＹ−Ｍ、２次キャッシュ２ＮＤ−Ｃ、ダイレクトメモリアクセス制御回路ＤＭＡＣ、周辺ＩＰコアＰＥＲ−ＩＰ、バス制御回路ＢＣを含む。また、タスクＩＤレジスタＴＩＤ−Ｒは、ＣＰＵコア内部のレジスタであって、夫々タスクを管理するレジスタであり、リソ−ス管理レジスタＲＭ−Ｒは、使用するリソース（コア）を管理するレジスタである。また、電力制御を行う単位となるリソース（コア）毎に電力制御ユニットＰＣＵを設け、ステートデコーダＳＴ−ＤＥＣは、各リソース（コア）を使用するかしないかのステート信号φＳＴを電力制御ユニットＰＣＵに送る。
【００１４】
さらに、Ｉ−ＢＵＳ、Ｄ−ＢＵＳ、Ｐ−ＢＵＳ１、Ｐ−ＢＵＳ２はそれぞれ命令バス、データバス、第一周辺バス、第二周辺バスである。
【００１５】
図１に示したもののうち、ＣＰＵコアを始めとする各種のコアや、メモリ、バスなどはデジタル処理向けのチップを構成する基本単位の例として示したものである（以下、これらの回路ブロックやメモリなどの基本単位を部品と称することにする）。これらの部品の動作は一般的なものを想定しているのでここでは機能の説明は省略する。本発明では、半導体装置の動作時に、未使用の部品について電源スイッチを遮断することによりリーク電流を低減する。まず、ＣＰＵコア内部のタスクＩＤレジスタＴＩＤ−Ｒ、使用するリソース（部品）を管理するリソ−ス管理レジスタ　ＲＭ−Ｒの内容をもとに、ステートデコーダＳＴ−ＤＥＣは各部品に対して、使用するかしないかを示すステート信号φＳＴを伝える。個々の部品においては、電力制御ユニットＰＣＵはステート信号φＳＴにより、その部品が使用されるかどうかを検知し、使用されないときには電力制御ユニットＰＣＵ内部に設けた電源スイッチにより電源から遮断する。
【００１６】
なお、図１の構成では、ＣＰＵコアとその一次キャッシュであるデータキャッシュＤ−Ｃ、命令キャッシュＩ−Ｃについては電力制御ユニットＰＣＵを付加していない。これは、動作時にはこれらの電源を遮断できる期間が余りないためである。その他の部品についても電源を遮断する期間が少ないものについては電力制御ユニットＰＣＵを付加しないことは可能である。
【００１７】
以下、図２から図６を用いて、本発明の電力制御動作を説明する。図２は、ステートデコーダＳＴ−ＤＥＣの出力するステート信号φＳＴの一例である。本実施例では、リーク電流の制御対象となる部品の数をｎ個とし、それぞれを使用するか否かを示すステート信号をφＳＴ−１からφＳＴ−ｎで示してある。横欄にあるＡ，Ｂ，…，　Ｆは、ＣＰＵのタスクを示しており、タスクによって使用する部品が異なる。この例では、ステート信号φＳＴ−ｉが、「Ｈ」（高レベル）の場合は当該部品が使用されることを示し、「Ｌ」（低レベル）の場合は使用されないことを意味するものとする。例えば、部品１は、タスクＡ〜Ｃ及びＦで使用され、タスクＤ〜Ｅでは不使用である。したがって、部品１は、タスクＤとＥにおいては、電源スイッチを遮断してリーク電流を低減することが可能である。
【００１８】
前述のようにステート信号φＳＴ信号は、個々の部品における電力制御ユニットＰＣＵに伝達され、電力制御ユニットＰＣＵで電源スイッチの制御がなされる。図３が電力制御ユニットＰＣＵの具体的な構成例である。電源スイッチＳＷ１は高電位側の電源Ｖｄｄと被制御部品ｉを構成する回路ＬＧとの間に設けられ、電源スイッチＳＷ２は低電位側の電源Ｖｓｓと被制御部品ｉを構成する回路ＬＧ（ここでは簡単のためインバータ１つを示したが、これに限定されず被制御部品の機能のために必要な回路であることはもちろんである）との間に設けられる。回路ＬＧとしてＣＭＯＳインバータ回路を例示している。電源スイッチ制御回路ＳＷＣは電源スイッチＳＷ１，　ＳＷ２を制御する。φａｃｋ、φＲＥＳＥＴはそれぞれ、電源スイッチＳＷ１，　ＳＷ２がオンした後に予熱時間が終了したことを示す信号、電源スイッチ制御を途中でリセットするリセット信号である。ステート信号φＳＴ−ｉが「Ｌ」となると、電源スイッチ制御回路ＳＷＣは電源スイッチＳＷ１，ＳＷ２をオフ状態とする。これにより電源と部品ｉとの間のリーク電流が遮断される。
【００１９】
なお、図３の例では、高電位側の電源Ｖｄｄと低電位側の電源Ｖｓｓの両方に電源スイッチＳＷを設けたが、部品を構成する回路内部に電流のリークパスがなければ、どちらか一方に電源スイッチを設けるだけにすることも可能である。その場合には占有面積が小さくなり、電源スイッチをオンオフする電力も削減できる。
【００２０】
図４を用いて、図３の電力制御ユニットＰＣＵの基本動作を説明する。図４は、部品ｉに対するステート信号φＳＴ−ｉが「Ｌ」レベルになったとき、すなわち、部品ｉが使用されないタスク継続期間Ｔ−ｔａｓｋにおける部品ｉの電力制御ユニットＰＣＵの動作を示したものである。
【００２１】
まず、ステート信号φＳＴ−ｉが「Ｌ」レベルになると、電力制御ユニットＰＣＵは、部品ｉの電源スイッチを遮断する。その後、時間Ｔ−ｏｆｆ（時間Ｔ−ｏｆｆは、スイッチオフの期間を意味する）が経過すると電力制御ユニットＰＣＵはスイッチをオン（ＳＷ−ｏｎ）して部品ｉを電源に接続する。ここで、時間Ｔ−ｏｆｆは、タスクの継続時間Ｔ−ｔａｓｋから部品ｉの予熱時間Ｔ−ｈｅａｔを差し引いた時間を超えない様に設定する。予熱時間Ｔ−ｈｅａｔは、回路ＬＧの擬似電源線Ｖｄｄ’、Ｖｓｓ’を充電するのに要する時間である。これにより、当該タスクが終了した時点では、予熱が終わっているので次のタスクで部品ｉを使用する際に待ち時間を生じることが回避できる。予熱時間は、部品の構成や回路規模によって異なる。したがって、Ｔ−ｏｆｆ時間は部品毎に設定するのが望ましい。そこで、電力制御ユニットＰＣＵにリングオシレータ回路と出力パルスを加算するカウンタとを内蔵し、電源スイッチの遮断と同時にリングオシレータとカウンタとを動作させ、そのカウンタの数値があらかじめ部品毎に設定した値を超えたら電源スイッチをオンするなどの方法を用いることができる。
【００２２】
一方、前述のように、電源スイッチを短時間でオンオフすると、電源スイッチのオフによるリーク電流削減の効果より電源スイッチを駆動するための電流の方が大きくなるおそれがある。リーク電流削減により低減される消費電力と電源スイッチを駆動することによる消費電力とが等しくなるスイッチオフの期間として定義される、スイッチオフの最低有効期間をＴ−ｍｉｎとすると、Ｔ−ｏｆｆはそれより大きくなければならない。また、上記のように予熱時間の分だけ前もってスイッチをオンさせる必要もあるので、結局Ｔ−ｏｆｆは
Ｔ−ｍｉｎ　≦　Ｔ−ｏｆｆ　≦　Ｔ−ｔａｓｋ　　Ｔ−ｈｅａｔ　　　　　　　　　（１）
の関係を満たす必要がある。最低有効期間Ｔ−ｍｉｎの値はリーク電流の大きさやスイッチの大きさなどによって変わるが、ふつう数１０マイクロ秒程度であり、Ｔ−ｈｅａｔも数１０マイクロ秒程度である。一方、タスク継続時間Ｔ−ｔａｓｋは通常ミリ秒程度なので、本発明のようにタスクをもとにスイッチ制御をすると（１）の関係を容易に満たすことが可能となる。最低有効期間Ｔ−ｍｉｎや予熱時間Ｔ−ｈｅａｔは回路解析などによるシミュレーションや回路定数を元にした計算によりあらかじめ推定可能である。したがって、半導体装置の設計時に回路やメモリなど、どの程度の単位を「部品」と定義するかを決定する際に、（１）を満たすように設計すればよい。図１の例では機能ごとに部品を定義しているが、それぞれ機能の異なるコア（例えば複数の周辺ＩＰコア）をまとめて一つの部品と定義して、共通の電源スイッチにより制御することも可能である。（１）の条件を満たすことができない回路ブロックは、電源制御ユニットＰＣＵを設けることなく常時電源に接続することが望ましい。
【００２３】
図４の例においては、電源スイッチをオフした後に一定時間（Ｔ−ｏｆｆ）が経過すると自動的に電源スイッチをオンするようにしている。このようにすると予熱時間Ｔ−ｈｅａｔによる遅延を隠蔽させることができるが、次のタスクでもその部品が不使用であるならば、再び電源スイッチをオフするため、電源スイッチをオンするための消費電流が無駄になる。これが問題になる場合には、ＣＰＵのタスクＩＤレジスタＴＩＤ−Ｒを参照して次のタスクでの使用、不使用を先に判断して次のタスクでも使用しない場合には電源スイッチをオンしないという制御をするようにしてもよい。
【００２４】
これに対して、割り込み動作が起きた場合には、タスクが途中で打ち切られるためにそれに対応する制御が必要である。例えば、ある部品についてステート信号φＳＴ−ｉが不使用の状態にあるときに割り込みが入って現在のタスクが打ち切られても、次のタスクでもそのまま不使用となる場合には特に問題はない。この場合は、そのまま電源スイッチの遮断を続けて新しいタスクが終了する時間から余熱時間Ｔ−ｈｅａｔを差し引いた時点で電源スイッチをオンすればよい。しかし、割り込みが入って、かつ次のタスクでその部品が使用される場合には、図５のような制御が必要となる。
【００２５】
まず、割り込みに伴いφＲＥＳＥＴ信号が「Ｈ」に活性化されることにより、電源スイッチ制御のシーケンスをリセットして電源スイッチをオン（ＳＷ−ｏｎ）する。つづいて予熱が終了した時点でそれを知らせるアクノリッジ信号φａｃｋを「Ｈ」に活性化して、次のタスクｔａｓｋ（２）を開始する。このように割り込みが入った場合には、予熱時間Ｔ−ｈｅａｔの分だけ遅延がおこる。実際には部品は複数あり、部品毎に必要な予熱時間も異なる。したがって、ＣＰＵは、割り込み後に使用する部品すべてからのアクノリッジ信号φａｃｋが活性化された後に次のタスクを開始すればよい。
【００２６】
図６は、部品ｉについて、連続したタスクＡ，　Ｂ，　Ｃ，　Ｄにおける各信号の遷移を示したタイムチャートである。なお、このタイムチャートでは電源スイッチを制御する信号φＳＷ１とφＳＷ２の極性を逆にしている。φＳＷ１は「Ｌ」で電源スイッチがオン、「Ｈ」で電源スイッチがオフ、φＳＷ２は「Ｌ」で電源スイッチがオフ、「Ｈ」で電源スイッチがオンとなる。これを示すためにφＳＷ１の表記を「／φＳＷ１」としている。
【００２７】
図６において、ステート信号φＳＴ−ｉはタスクＡ，　Ｂ，　Ｃ，　Ｄでそれぞれ「Ｌ」「Ｈ」「Ｌ」「Ｈ」となっている。つまり、この実施例では部品ｉは、不使用、使用、不使用、使用というようにその状態を変化させている。まず、タスクＡに対しては、図４で示した制御が行なわれる。まず、電源スイッチをオフするために／φＳＷ１，　φＳＷ２をそれぞれ「Ｈ」、「Ｌ」に変化させてリーク電流を遮断する。タスクＡが終わる時間よりも予熱時間Ｔ−ｈｅａｔだけ前に／φＳＷ１，　φＳＷ２の電位を元に戻して電源スイッチをオンする。つづいて、タスクＢでは、ステート信号φＳＷ−ｉが「Ｈ」に遷移し、部品ｉ　は使用状態となる。このとき、前のタスクＡの間に予熱が終わっているので遅延時間を生じることなくタスクＢを開始できる。つづいて、タスクＣでは、再びステート信号φＳＷ−ｉが「Ｌ」に遷移し、部品ｉは不使用状態になる。この例では、この状態で割り込みが生じて通常のタスク継続時間より短い時間でタスクＤに切り替わる。この場合、図５で示した制御が行なわれる。φＲＥＳＥＴが入力され、／φＳＷ１，　φＳＷ２の電位をそれぞれ「Ｌ」、「Ｈ」に変化させ電源スイッチをオンする。その後、予熱時間Ｔ−ｈｅａｔが経過したらアクノリッジ信号φａｃｋが「Ｈ」に変化する。不使用状態から使用状態に変化する他の部品のアクノリッジ信号φａｃｋがすべて切り替わると、ＣＰＵは次のタスクであるタスクＤを実行する。以上のように、本発明の電力制御によれば、通常の動作中には遅延時間を生じることなしに不使用部品のリーク電流を遮断することができる。また、割り込みが生じた場合でも、予熱が終わったことを確認して次のタスクに移行できるため誤動作をおこすことがない。
【００２８】
これまでは、部品の使用状態に応じてリーク電流を遮断する方法を説明してきた。部品によっては、他の方法と組み合わせることにより、さらに大きく電力を低減できる場合がある。その例を示したのが図７、図８である。図７はクロックに同期して動作する回路ブロックなどの部品において、上記のリーク電流の遮断とクロック信号の遮断を合わせて用いた例である。同期型の回路ブロックは、通常入力データをラッチするフリップフロップＦＦと、論理回路Ｌとを単位として構成される。Ｍ１およびＭ２は、それぞれＰチャネルＭＯＳトランジスタ、ＮチャネルＭＯＳトランジスタであり、電源スイッチとして動作する。これらのＭＯＳトランジスタは電源スイッチとして動作するので、論理回路Ｌで使用されるＭＯＳトランジスタのしきい値電圧の絶対値に比較してそのしきい電圧の絶対値を大きく設定することが望ましい。または、／φＳＷ１やφＳＷ２の振幅を調整してオフ時にゲートソース電圧を負電位にすることにより、電源スイッチがオフ状態のときにリーク電流が十分に小さくなるように設計してもよい。なお、図７，８の実施例では、他の回路と同様のプロセスで形成できるという利点のために、電源スイッチとしてＭＯＳトランジスタを用いるが、完全にリーク電流を遮断したい場合には、例えば半導体チップの外部に設けた機械的なスイッチを用いるなど必要に応じて他の手段でスイッチを形成してもよい。
【００２９】
ゲートＧ１はクロック信号ＣＬＫを入力するか遮断するかを制御するための回路、ゲートＧ２は電源スイッチがオフした際に論理回路の出力信号がフローティング状態になることを防止する回路である。これらＧ１，Ｇ２の回路は電力制御ユニットＰＣＵに設ければよい。基本的な動作は以下の通りである。
【００３０】
まず、ステート信号φＳＴ−ｉが「Ｌ」レベルになると、ゲートＧ１はクロック信号ＣＬＫのフリップフロップＦＦへの入力を遮断する。また、前述のようにスイッチ制御信号／φＳＷ１とφＳＷ２がそれぞれ「Ｈ」レベル、「Ｌ」レベルに遷移し、電源スイッチがオフする。これにより、クロック入力とリーク電流の両方が遮断されるので消費電力の削減効果が大きい。図面ではクロックが入力されるフリップフロップＦＦは一つしか記載していないが実際は多数ある。したがってクロック入力が停止することによる電力削減効果は大きい。なお、ゲートＧ２により、ステート信号φＳＴ−ｉが「Ｌ」レベルになると論理回路の出力ＯＵＴが固定されるため、次段の回路の入力がフローティングになることによるリーク電流（いわゆる貫通電流）を防止することができる。つづいて、タスクの継続時間から予熱時間を引いた時間が経過すると、電源スイッチＭ１，　Ｍ２はオン状態となる。タスクが終了するとステート信号φＳＴ−ｉが「Ｈ」レベルになり、クロック信号ＣＬＫの遮断と出力信号の固定を終了し、この部品の動作が始まる。ここで、クロック信号の入力においては電源スイッチのように長い予熱時間が不要なのでステート信号φＳＴ−ｉをゲートＧ１に入力して制御している。以上のように本実施例では、タスク継続時間を利用して、電源スイッチとクロック入力を同時に制御することにより、電力削減の効果を大きくしている。
【００３１】
図８は、２次キャッシュのようなメモリに対して本発明を適用した例である。図８において、ＣＤＥＣ，　ＴＧＥＮ，　ＤＥＣ，　ＡＲＹ，　ＡＭＰ−ＩＯはそれぞれ、コマンドデコーダ、タイミングジェネレータ、デコーダ、メモリアレイ、センスアンプ及び入出力回路である。また、ＡＤＤ，　ＣＭＤ，　ＤＩ，　ＤＯは、アドレス、コマンド、入力データ、出力データを示す。なお、説明の都合上、これらの記号を、信号そのものとして扱う場合とそれらの入力線または出力線として扱う場合がある。また、図では煩雑になるため複数の信号線を１本で描いている。Ｍ１，　Ｍ２，　Ｍ１１，　Ｍ１２，　Ｍ２１，　Ｍ２２はＭＯＳトランジスタからなる電源スイッチであり、Ｍ１，　Ｍ２は部品全体を電源から遮断する電源スイッチ、Ｍ１１，　Ｍ２１は、デコーダＤＥＣを電源から遮断する電源スイッチ、　Ｍ１２，　Ｍ２２はセンスアンプ及び入出力回路ＡＭＰ−ＩＯを電源から遮断する電源スイッチである。
【００３２】
図８では、部品を電源から遮断する電源スイッチと部品の要素回路を選択的に電源から遮断する電源スイッチとを設けてある。これにより、部品が不使用状態にあるときに部品全体のリーク電流を遮断することに加えて、部品が使用状態であるときにも動作にあわせて選択的に要素回路を電源から遮断できる。したがって、リーク電流の低減効果をより大きくすることが可能となる。具体的には、ステート信号φＳＴ−ｉが「Ｌ」レベルのときにはＭＯＳトランジスタＭ１，　Ｍ２をオフとする。ステート信号φＳＴ−ｉが「Ｈ」レベルのときには、ＭＯＳトランジスタＭ１，　Ｍ２はオンしているが、デコーダＤＥＣやセンスアンプ及び入出力回路ＡＭＰ−ＩＯを活性化する必要のないときにはＭＯＳトランジスタＭ１１，　Ｍ２１あるいは、ＭＯＳトランジスタＭ１２，Ｍ２２をオフにする。一般にメモリでは、アドレスやコマンドが入力されて読み出し、あるいは書き込みが行なわれて次のアドレスやコマンドを入力するまでの時間をサイクル時間と呼ぶ。このサイクル時間常にデコーダＤＥＣやセンスアンプ及び入出力回路ＡＭＰ−ＩＯが動作しているわけではなく、タイミングジェネレータＴＧＥＮが管理する一定の時間だけ動作する。したがって、タイミングジェネレータＴＧＥＮの制御により、使用されない時間においては電源スイッチによりリーク電流を遮断することが可能である。
【００３３】
なお、図８の例ではメモリアレイＡＲＹに個別にスイッチを設けていない。これは、２次キャッシュなどではＳＲＡＭなどの揮発性メモリセルで構成されるために電源を遮断するとデータが失われてしまうからである。しかし、この場合でも、電源を完全にオフせずに、データが失われない程度に電流を絞ることは可能である。あるいは、メモリセルとして強誘電体メモリやマグネティックメモリなどの不揮発メモリセルを利用すれば、電流を遮断してもデータは保持される。また、メモリ全体のリーク電流を遮断するスイッチＭ１とＭ２はメモリアレイも含んで電源を遮断するが、これはタスクが切り替わった時にはこのメモリのデータを失ってもよい場合に限られる。もしも、タスク切換え時にもデータを保持する必要がある場合には、メモリアレイＡＲＹは電源に常時接続するように構成することができる。さらに、個別のスイッチを設ける要素回路はデコーダＤＥＣやセンスアンプ及び入出力回路ＡＭＰ−ＩＯに限られず、他の要素部品に設けることも可能であり、必要に応じて様々な変形が可能である。
【００３４】
なお、これまでは、半導体装置の動作時におけるリーク電流の低減方法について記載したが、半導体装置の待機時において電源スイッチを遮断して電力の削減を図ることができることはもちろんである。半導体装置全体が待機時から動作時に移行する場合には多少の遅延は許容される場合が多いので、予熱時間を見込んであらかじめスイッチをオンしておく必要はない。
【００３５】
【発明の効果】
本発明により、集積回路の動作状態におけるリーク電流を効果的に低減することができる。
【図面の簡単な説明】
【図１】本発明の半導体装置のブロック図である。
【図２】部品毎のステート信号の遷移の例である。
【図３】電力制御ユニットの入出力信号を示す図である。
【図４】タスクの期間中におけるスイッチ制御のタイミングを示す図である。
【図５】割り込み処理が生じた時のスイッチ制御のタイミングを示す図である。
【図６】スイッチ制御のための信号のタイミングを示す図である。
【図７】本発明による半導体装置内部の論理ブロックの構成を示す図である。
【図８】本発明による半導体装置内部のメモリブロックの構成を示す図である。
【符号の説明】
ＣＨＩＰ−−−チップ、ＣＰＵ　−−−ＣＰＵコア、ＤＳＰ　−−−ＤＳＰコア、Ｉ−Ｃ−−−命令キャッシュ、Ｄ−Ｃ−−−データキャッシュ、ＸＹ−Ｍ−−−ＸＹメモリ、２ＮＤ−Ｃ−−−２次キャッシュ、ＤＭＡＣ−−−ダイレクトメモリアクセス制御回路、ＰＥＲ−ＩＰ−−−周辺ＩＰコア、ＢＣ−−−バス制御回路、ＴＩＤ−Ｒ−−−タスクＩＤレジスタ、ＲＭ−Ｒ−−−リソ−ス管理レジスタ、ＳＴ−ＤＥＣ−−−ステートデコーダ、ＰＣＵ−−−電力制御ユニット、Ｉ−ＢＵＳ−−−命令バス、Ｄ−ＢＵＳ−−−データバス、Ｐ−ＢＵＳ１−−−第一周辺バス、Ｐ−ＢＵＳ２−−−第二周辺バス、ＣＤＥＣ−−−コマンドデコーダ、ＴＧＥＮ−−−タイミングジェネレータ、ＤＥＣ−−−デコーダ、ＡＲＹ−−−メモリアレイ、ＡＭＰ−ＩＯ−−−センスアンプ及び入出力回路、ＡＤＤ−−−アドレス、ＣＭＤ−−−コマンド、ＤＩ−−−入力データ、ＤＯ−−−出力データ、ＦＦ−−−フリップフロップ、Ｌ−−−論理回路、ＳＷ１，　ＳＷ２−−−電源スイッチ、Ｍ１，　Ｍ２，　Ｍ１１，　Ｍ１２，　Ｍ２１，　Ｍ２２−−−ＭＯＳトランジスタで構成される電源スイッチ、Ｖｄｄ−−−高電位側の電源、Ｖｓｓ−−−低電位側の電源、Ｔ−ｔａｓｋ−−−タスク継続時間、Ｔ−ｏｆｆ−−−電源スイッチ遮断時間、Ｔ−ｍｉｎ−−−電源スイッチオフの最低有効時間、Ｔ−ｈｅａｔ−−−予熱時間。
【図１】
2004021574.tif 000003
【図２】
2004021574.tif 000004
【図３】
2004021574.tif 000005
【図４】
2004021574.tif 000006
【図５】
2004021574.tif 000007
【図６】
2004021574.tif 000008
【図７】
2004021574.tif 000009
【図８】
2004021574.tif 000010