(57)【特許請求の範囲】
【請求項１】
複数の機能モジュールと、当該複数の機能モジュールへの電力供給を制御する第１の電力制御手段と、当該複数の機能モジュールに対する初期化動作を個別に制御する第１の初期化制御手段と、を備える複数の処理ブロックと、
前記複数の処理ブロックへの電力の供給を制御する第２の電力制御手段と、
前記複数の処理ブロックに対する初期化動作を個別に制御する第２の初期化制御手段と、
を有し、
前記第１の電力制御手段により、前記複数の機能モジュールに含まれる第１、第２の機能モジュールへの電力供給が開始され、その後に、前記第１の初期化制御手段および前記第２の初期化制御手段によって、当該第１、第２の機能モジュールに対する初期化動作を開始するためのクロックの供給開始タイミングを異ならせることを特徴とする半導体集積回路。
【請求項２】
前記第２の初期化制御手段は、前記複数の処理ブロックに対して個別にリセット信号を供給するリセット信号制御手段と、前記複数の処理ブロックに対して個別にクロックを供給するクロック制御手段と、を備えることを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記クロック制御手段は、前記第２の電力制御手段から初期化動作を開始する指示を受けると、前記リセット信号が解除されるまで、クロックを供給することを特徴とする請求項２に記載の半導体集積回路。
【請求項４】
前記クロック制御手段は、前記第２の電力制御手段から初期化動作を開始するためのクロック供給の開始の指示を受けると、クロックを供給する対象となる処理ブロックに対して、予め決められた時間だけクロックを供給することを特徴とする請求項２に記載の半導体集積回路。
【請求項５】
前記第２の初期化制御手段は、前記リセット信号制御手段によってリセット信号をアクティブにした状態で前記クロック制御手段によってクロックの供給を開始することによって、初期化対象の前記処理ブロックが有する記憶素子の初期化を開始することを特徴とする請求項２乃至４のいずれか１項に記載の半導体集積回路。
【請求項６】
前記クロック制御手段は、少なくとも前記複数の処理ブロックと個別に対応するクロックゲートセルを備えることを特徴とする請求項２乃至５のいずれか１項に記載の半導体集積回路。
【請求項７】
前記第２の電力制御手段は、少なくとも前記複数の処理ブロックと個別に対応するスイッチを制御するスイッチ制御手段を備え、当該スイッチ制御手段によって前記スイッチを切り替えることで、当該スイッチに対応する処理ブロックへの電力供給の有無を切り替えることを特徴とする請求項１乃至６のいずれか１項に記載の半導体集積回路。
【請求項８】
前記複数の処理ブロックの各々について、初期化動作を開始するためにクロックを供給した場合の消費電力の増分と基準となる消費電力とを保持している記憶手段と、電力を遮断している複数の処理ブロックについて電力を復帰させるように指示する電力復帰要求を受信する受信手段と、を更に有し、
前記第２の電力制御手段は前記電力復帰要求に関する処理ブロックについての前記消費電力の増分と前記基準となる消費電力とを前記記憶手段から取得し、前記電力復帰要求に関する処理ブロックについての消費電力の増分と前記基準となる消費電力とを比較して前記複数の処理ブロックへのクロックの供給を開始するタイミングを決定することを特徴とする請求項１乃至７のいずれか１項に記載の半導体集積回路。
【請求項９】
初期化動作を開始する前の消費電力を検出する検出手段を更に有し、前記第２の電力制御手段は当該検出手段により検出した初期化動作を開始する前の消費電力に前記記憶手段の保持している消費電力の増分を合算して、前記基準となる消費電力と比較することを特徴とする請求項８に記載の半導体集積回路。
【請求項１０】
前記複数の処理ブロックの初期化動作を開始する前の消費電力を検出する検出手段と、前記複数の処理ブロックの各々の初期化動作を開始するためにクロックを供給した場合の消費電力の増分と、基準となる消費電力と、を保持している記憶手段と、電力を遮断している複数の処理ブロックについて電力を復帰させるように指示する電力復帰要求を受信する受信手段と、を更に有し、
前記第２の電力制御手段は、前記複数の処理ブロックの初期化動作を開始する前の消費電力と前記処理ブロックについてクロックに供給した場合の前記消費電力の増分との合算値と、前記基準となる消費電力とを比較して、前記複数の処理ブロックへのクロックの供給を開始するタイミングを決定することを特徴とする請求項１乃至７のいずれか１項に記載の半導体集積回路。
【請求項１１】
前記第２の電力制御手段は、前記基準となる消費電力を超えない範囲で、複数の処理ブロックへ同時にクロックの供給を開始するように制御することを特徴とする請求項８乃至１０のいずれか１項に記載の半導体集積回路。
【請求項１２】
前記記憶手段は、動作モード毎に前記複数の処理ブロックのうちのいずれの処理ブロックに電力を供給するかと当該動作モードでの消費電力の見込みと、を含むモード情報を更に保持し、
前記受信手段は半導体集積回路をどの動作モードで動作させるかを示す指示を前記第２の電力制御手段に発行し、
前記第２の電力制御手段は前記指示と前記モード情報に基づいて、前記処理ブロックについての消費電力の増分と前記基準となる消費電力とを比較して、前記複数の処理ブロックへのクロック供給を開始するタイミングを決定することを特徴とする請求項８乃至１１のいずれか１項に記載の半導体集積回路。
【請求項１３】
前記処理ブロックは、同一の電力制御素子によって電源の供給の有無を制御される構成であり、回路ブロック、機能モジュール、集積回路の少なくともいずれかを含むことを特徴とする請求項１乃至１２のいずれか１項に記載の半導体集積回路。
【請求項１４】
前記第１の電力制御手段に前記複数の機能モジュールへの電力供給の開始を指示し、前記第１の初期化制御手段に前記第１の機能モジュールと前記第２の機能モジュールとに対するクロック供給開始を指示する指示手段を更に有することを特徴とする請求項１乃至１３のいずれか１項に記載の半導体集積回路。
【請求項１５】
請求項１乃至１４のいずれか１項に記載の半導体集積回路を備える情報処理装置。
【請求項１６】
複数の機能モジュールと、当該複数の機能モジュールへの電力供給を個別に制御する第１の電力制御手段と、当該複数の機能モジュールに対する初期化動作を個別に制御する第１の初期化制御手段と、を備える複数の処理ブロックと、前記複数の処理ブロックへの電力の供給を個別に制御する第２の電力制御手段と、前記複数の処理ブロックに対する初期化動作を個別に制御する第２の初期化制御手段と、を有する半導体集積回路の制御方法であって、
前記第１の電力制御手段により、前記複数の機能モジュールに含まれる第１、第２の機能モジュールへの電力供給が開始され、その後に、前記第１の初期化制御手段および前記第２の初期化制御手段によって、当該第１、第２の機能モジュールに対する初期化動作を開始するためのクロックの供給開始タイミングを異ならせることを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体集積回路に関し、電源遮断から復帰する際のリセット解除動作に関するものである。
【背景技術】
【０００２】
近年、環境問題に配慮した省エネルギー化の流れから、半導体集積回路に対し低電力化が求められている。例えば、消費電力を削減するために、半導体集積回路の一部のサブシステムへの電源を遮断する方法がある。
ここで、電源を遮断したサブシステムを復帰させる際には電力を供給した後に初期化が必要であり、通常動作に入る前に初期化を行う。初期化動作中はサブシステム内部のフリップフロップなどの記憶素子に対して積極的に信号変化を起こさせることにより状態を初期化するので、初期化動作中は通常クロックゲーティングは行わない状態で回路を動作させる必要があるので大きい消費電力が必要になることが多い。
そこで、特許文献１のように初期化動作中に入力されるクロックの周波数を分周し、動作率を低下させることで消費電力を削減する技術がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−３１２０７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年の半導体集積回路において、電源を遮断される領域（被電力制御対象、電源ドメインの様に呼称されるが、以下の説明では、電源ドメインとする）の数は増加傾向にある。機能を実現させるための複数のサブシステムを異なる電源ドメインに配置することで、使わない機能を実現させるサブシステムが配置されている電源ドメインへの電力を遮断し消費電力を削減できる。
ここで、各電源ドメインは電力供給の再開後に初期化作業（特に、フリップフロップを初期状態にさせるためのクロック供給の開始とリセット信号の解除）を要する。また、一般的な半導体集積回路では複数の内部サブシステムをリセット対象とする場合に、エラーの発生を抑制させるために初期化動作（クロックやリセット信号の発行タイミングや解除タイミング）を合わせている。しかし、複数の電源ドメインについて初期化のためのクロック供給動作が重なると、初期化動作中の瞬間的な消費電力が集中して増加してしまう。
特許文献１の技術では消費電力のピークをある程度低減できるが、瞬間的な消費電力の増加度合いが集中してしまう。
【課題を解決するための手段】
【０００５】
上述の課題を解決するために、本発明に係る半導体集積回路は、複数の機能モジュールと、当該複数の機能モジュールへの電力供給を制御する第１の電力制御手段と、当該複数の機能モジュールに対する初期化動作を個別に制御する第１の初期化制御手段と、を備える複数の処理ブロックと、前記複数の処理ブロックへの電力の供給を制御する第２の電力制御手段と、前記複数の処理ブロックに対する初期化動作を個別に制御する第２の初期化制御手段と、を有し、前記第１の電力制御手段により、前記複数の機能モジュールに含まれる第１、第２の機能モジュールへの電力供給が開始され、その後に、前記第１の初期化制御手段および前記第２の初期化制御手段によって、当該第１、第２の機能モジュールに対する初期化動作を開始するためのクロックの供給開始タイミングを異ならせることを特徴とする。
【発明の効果】
【０００６】
複数の電源ドメインに対して初期化動作のためのクロックの供給を開始する際に生じる瞬間的な消費電力の増加度合いを分散させることができる。
【図面の簡単な説明】
【０００７】
【図１】本発明の一実施形態の概略構成を示すブロック図である。
【図２】本発明の一実施形態における処理の概略を示すフローチャートである。
【図３】半導体集積回路の構成を示すブロック図である。
【図４】サブシステム１について電力を復帰させる際のタイミングチャートである。
【図５】クロック復帰対象を選択する処理の概略を示すフローチャートである。
【図６】サブシステム毎のクロック復帰時の消費電力の増加分（見込み）を保持しているテーブルを示す図である。
【図７】本発明によって複数のサブシステムのクロックを復帰させる際の、消費電力―時間線図である。
【図８】半導体集積回路の物理構成の概略を示すブロック図である。
【図９】電力制御部によってサブシステムへのクロック制御を実施する際の、サブシステム１について電力を復帰させる際のタイミングチャートである。
【図１０】電力モード毎の各サブシステムの電力状態と、消費電力見込みと温度見込みとを対応づけて保持するテーブルを示す図である。
【図１１】電力検出部の概略構成を示すブロック図である
【図１２】リーク電力に関する電圧―温度曲線図を示す。
【発明を実施するための形態】
【０００８】
＜第１の実施形態＞
まず、本発明の一実施形態である第１の実施形態である半導体集積回路１０９についてその概略を説明する。図１は半導体集積回路１０９の内部の概略構成を示す。
【０００９】
半導体集積回路１０９はｎ個のサブシステムを備える。サブシステムの其々は、供給されるクロックに応じて動作し、予め割り当てられている機能を内蔵する機能モジュール（不図示）によって実現する。そして、リセット信号が供給されている間は、内部のフリップフロップなどの記憶素子に対してリセットをかけ続ける（アクティブなリセット信号をアサートし続ける）。
【００１０】
電力制御部１０１は、パワースイッチ制御部１０７によって被電源制御対象部１１０のサブシステム毎に電源からの電力を供給するかどうかを切り替える。電力検出部１０２は、半導体集積回路１０９の温度、電圧、電流などの動作状態を検知する。電力データ記憶部１０３は、被電源制御対象部１１０としての各サブシステムにおいて電力供給を再開する際の初期化動作中に消費することになる電力を示す値をテーブルとして有している。また、電力データ記憶部１０３は半導体集積回路１０９が安定して動作する基準となる消費電力である規定電力を示す値を保持している。
【００１１】
システム制御部１０４は、クロック制御部１０５、リセット制御部（リセット信号制御部）１０６、電力制御部１０１を制御し、複数のサブシステムにおけるリセットの解除のためのクロック復帰タイミングを分散させる制御をする（詳細は後述する）。また、システム制御部１０４は、半導体集積回路１０９のパワーモードの遷移や、各サブシステムのデータ処理モードの制御などシステム全体を制御する。クロック制御部１０５は、システム制御部１０４からの指示に基づいて、複数のサブシステムについて個別にクロックを供給するかどうかを制御する。リセット制御部１０６は、システム制御部１０４からの指示に基づいて、各サブシステム１１０にリセット信号を発行し続けることで初期化作業の待機をしたり、発行しているリセット信号を停止することで個々のサブシステムの初期化作業を終了したりする制御をする。すなわち、システム制御部１０４の指示に基づいて、リセット制御部１０６とクロック制御部１０５が各サブシステム１１０への初期化を実現する初期化制御手段として機能する。
【００１２】
なお、電力制御部１０１やシステム制御部１０４はマイコンやマイクロプロセッサ、ＦＰＧＡを有するシーケンサ（ＰＬＣ：プログラマブルロジックココントローラ）であってもよいし、論理回路を組み合わせて状態制御をするものであってもよい。その場合、電力制御部１０１やシステム制御部１０４は、少なくとも後述する各実施形態の電力制御部１０１およびシステム制御部１０４の処理アルゴリズムや機能を実現するためのプログラム（またはパラメータ）を内蔵メモリ（不図示）等から読み出して実行するように構成される。
【００１３】
なお、図１ではサブシステム数をｎ個としているが、本発明は複数の電力制御対象があれば適用可能であり、サブシステムの個数に制限はない。また、説明の簡便のため、サブシステムと電源ドメイン（被電力制御対象）とが、１対１で対応する例を用いて説明しているが、必ずしも１対１で対応させる必要はない。例えば、２つ以上のサブシステムを１つの電源ドメインと対応させたり、１つのサブシステムを２つ以上の電源ドメインにより管理したりしてもよい。なお、電源ドメインとは同一の電力制御素子（例えば、パワースイッチ）によって電源の供給を止められる領域を示し、チップ上の漏れ電流を抑制するためのものである。なお、電源ドメインとはこの定義を満たす回路ブロックや、機能モジュール、ＩＣなどであってもよい。
【００１４】
次に、図２、図３を用いて第１の実施形態の基本動作（電力遮断動作、電力復帰動作）について、パワースイッチ制御部１０７が２つのサブシステム１（第１の被電力制御対象）およびサブシステム２（第２の被電力制御対象）に対して電力を遮断し、さらにその後に電力を復帰させる動作例を説明する。なお、図２、図３の例はサブシステム数ｎ＝２の場合に対応する。図２は半導体集積回路１０９における電力遮断動作と、電力復帰動作に関するフローチャートであり、図３は２つのサブシステムを備える半導体集積回路１０９の構成を詳細化したものである。
【００１５】
まず、図２のステップＳ２０１において、システム制御部１０４はサブシステム１およびサブシステム２に対する電力を遮断する指示に応じて、リセット制御部１０６に対して、サブシステム１、２へのリセット（ｒｅｓ３０５）をアクティブ状態にするように命令する。そして、システム制御部１０４からの命令を受けて、リセット制御部１０６がサブシステム１とサブシステム２に対してリセットをアサートする（後述するタイミングチャートではロー・アクティブのリセット信号として説明する）。
【００１６】
次に、ステップＳ２０２で、システム制御部１０４がクロック制御部１０５に対し、サブシステム１，２へのクロック（ｃｌｋ３０４）の供給を停止するように命令する。そして、システム制御部１０４からの命令を受けたクロック制御部１０５は、クロックゲートセル３０１，３０２をアクティブにする（制御ピンをｅｎａｂｌｅに設定する）ことで、サブシステム１，２へのクロック供給を停止する。
【００１７】
次に、ステップＳ２０３で、システム制御部１０４がサブシステム１，２への電力供給の遮断を要求するコマンド（以下、遮断要求）を電力制御部１０１に送信する。電力制御部１０１は、システム制御部１０４からの遮断要求を受信した後、パワースイッチ制御部１０７によって、サブシステム１，２への電力の供給を決定するパワースイッチ３０６に対して供給を停止する指示（スイッチオフ）３０８を発行して電力を遮断する。
【００１８】
ステップＳ２０４では、システム制御部１０４が、サブシステム１，２を復帰させるためのトリガが発生したかどうかを判定する。サブシステム１，２を復帰させるためのトリガとしては、ユーザやアプリケーションプログラム等からサブシステム１やサブシステム２の機能モジュール（図３の機能１〜９）を利用する要求を半導体集積回路１０９が受けたことなどが挙げられる。トリガが発生するまでステップＳ２０４は自己遷移を続ける。ステップＳ２０４で、システム制御部１０４によってトリガが発生したと判定されるとステップＳ２０５に遷移する。
【００１９】
ステップＳ２０５では、システム制御部１０４が復帰させるサブシステム１およびサブシステム２への電力の供給を再開させる。詳細には、システム制御部１０４が電力制御部１０１に対し、サブシステム１への電源供給の復帰を要求するコマンド（以下、復帰要求）を送信する。電力制御部１０１は、システム制御部１０４からの電源復帰要求コマンドを受信後、パワースイッチ制御部１０７によって、サブシステム１，２のパワースイッチをＯＮに制御して電力の供給をさせる。ここでは、サブシステム１およびサブシステム２への電荷のチャージが完了してからステップＳ２０６へ遷移する。
【００２０】
ステップＳ２０６では、電力制御部１０１が復帰対象（初期化対象）である複数のサブシステムから少なくとも１つをクロック復帰対象として選択し、システム制御部１０４に通知する（電力制御部１０１によるクロック復帰対象の選択手法についての詳細は後述する）。以下の説明では、電力制御部１０１が、まずサブシステム１へのクロックを復帰させるように選択し、システム制御部１０４に対してサブシステム１がクロックの供給の開始を再開できる状態であることを通知（クロック復帰指示を発行）したものとする。復帰させるサブシステムの選択手法としてランダムで選択してもよいし、予めどのサブシステムを優先するかを示す優先情報を不図示のレジスタに保持し、優先情報に基づいて復帰させるサブシステムを選択するように構成してもよい。通知を受けたシステム制御部１０４は、クロック制御部１０５およびリセット制御部１０６に対してサブシステム１の初期化動作を開始するように指示を出す。
【００２１】
ステップＳ２０７では、初期化動作を開始する指示を受けたクロック制御部１０５が、クロックゲートセル３０１のゲーティングを無効化する（制御ピンをＤｉｓａｂｌｅに設定する）ことにより、サブシステム１へのクロック（ｃｌｋ３０４）の供給を再開する。さらにクロック制御部１０５は、サブシステム１の内部を初期化するために、サブシステム１に含まれる複数のクロックゲートセル３０３に対しても、それぞれの制御ピンの設定をＤｉｓａｂｌｅにする。なお、サブシステム１へのリセットが解除されるまで、クロックゲートセル３０１，３０３の制御ピンはＤｉｓａｂｌｅ状態のままで維持する。つまり、クロック制御部１０５は、少なくとも初期化動作を開始する命令（初期化動作命令）を受信してからリセットが解除されるまでの間、サブシステム１にクロックを供給し続ける。
【００２２】
システム制御部１０４からの初期化動作命令を受信した後、所定の時間、対象へクロックを供給し続けて、ステップＳ２０８でリセット制御部１０６が、サブシステム１へのリセットを解除する（リセットをデアサートする）。なお、リセットを解除するための時間の経過を測る際には、デクリメンタを含むダウンカウンタなどを用いればよい。例えば、サブシステム１の回路規模等に応じた所定の値を予め設定し、サイクルタイム毎にデクリメント（−１）して０になるとリセット解除する。リセット解除後、サブシステム１は定常動作を開始する。なお、クロック制御部１０５によるクロック供給はリセットのデアサートまででもよいし、所定時間経過まででもよい。
【００２３】
ステップＳ２０９では、システム制御部１０４が、復帰要求のあったサブシステムであって、まだ復帰していないサブシステムが有るかどうかを判断する。例えば、システム制御部１０４は、復帰要求のあったサブシステムの個数ｍをレジスタ（不図示）に保持し、復帰した数だけ減算し、ｍが０になっていなければ復帰していないサブシステムが残っているものとして判断する。ここでは、サブシステム２が復帰していないので、サブシステム２についてステップＳ２０６〜Ｓ２０８の処理を行う。ステップＳ２０９においてサブシステム１，２が復帰していれば処理を終了する。なお、システム制御部１０４はどのサブシステムが起動しているかを示すｎ個のフラグレジスタ（不図示）を備えているものとする。例えば、フラグレジスタのｋ段目が、“１”を保持していればサブシステムｋが起動状態にあり、“０”を保持していればサブシステムｋが電力供給を遮断された省電力状態にあるとする。
【００２４】
以上のように、システム制御部１０４によって、サブシステム１とサブシステム２について電力を同時に供給しつつ、初期化動作のためのクロック供給開始タイミングを異ならせることで、消費電力が集中することを抑制することができる。
【００２５】
次に、図３のフローチャートにおいて、サブシステム１について電力を復帰する際の各種信号や電圧などの遷移を説明する。図４は、サブシステム１について電力を復帰する際のタイミングチャートを示す。図４において論理信号はロー・アクティブ（負論理）として図示している。なお、クロックゲートセル３０３への制御信号はローでＤｉｓａｂｌｅ（クロック供給）となる。
【００２６】
図４の電力遮断状態は、電力制御部１０１がサブシステム１への電力の供給を停止（ＯＦＦ状態）している状態を表し、図２のステップＳ２０３〜Ｓ２０４に対応する。電力復帰状態は、電力制御部１０１が、システム制御部１０４から復帰要求を受信してから、システム制御部１０４にクロック復帰指示を送信するまでの状態を表し、図２のステップＳ２０６に対応する。初期化動作状態は、システム制御部１０４が、クロック制御部１０５とリセット制御部１０６に対し、初期化動作命令を出してから、サブシステム１のリセットが解除されるまでの状態を表し、図２のステップＳ２０７〜Ｓ２０８に対応する。定常動作状態は、サブシステム１が初期化動作を終え、クロックを供給すれば初期化動作を必要とせず通常に動作する状態を表す。定常動作状態を開始すると一定期間は待機状態となり、一旦、クロックゲートセル３０１を動作させることでサブシステム内の各機能モジュールへのクロック供給を停止する。
【００２７】
図４の下方にサブシステム１の消費電力量の遷移を示す。初期化動作状態における消費電力が他の状態よりも高くなっている。これは、初期化動作状態では、クロックゲートセルがすべてＤｉｓａｂｌｅ状態になり、機能１〜４およびサブシステム１へクロックが供給され続けるためである。なお、サブシステム２のタイミングチャートも同様であるためその詳細は省略する。
【００２８】
以上のように、複数の被電力制御対象（サブシステムなど）について、初期化動作のためのクロック供給開始タイミングを異ならせることで、消費電力が集中することを抑制することができる。
【００２９】
＜第２の実施形態＞
次に、第２の実施形態における電力制御部１０１によるクロック復帰対象の選択手法について説明する。本実施形態では、複数の被電力制御対象について、初期化動作のためのクロック供給開始タイミングを異ならせる際に、クロック供給開始タイミングをまとめても問題の無い範囲（定格電力や規定電力を超えない場合など）について、クロック供給開始をまとめる。これによって、初期化動作の高速化と消費電力の分散のトレードオフを図ることができる。なお、以降の説明では第１の実施形態と同じ構成や処理については同一の符号を付すとともに、機能的に変わらない場合はその説明を省略する。
【００３０】
図５は電力復帰要求を受けた電力制御部１０１がクロック復帰対象を選択する処理を示すフローチャートである。なお、本フローチャートの説明では、サブシステムが１９個（ｎ＝１９）の半導体集積回路において、電力が遮断されている５個のサブシステム（３，４，８，１４，１９）について電力復帰させる例を用いる。また、最初に説明する例は図７にて実線Ａで示す折れ線図に対応している。
【００３１】
まず、ステップＳ５０１で、電力制御部１０１はサブシステム（３，４，８，１４，１９）を復帰させるように指示する電力復帰要求をシステム制御部１０４から受信する。以降の説明では、システム制御部１０４からの指示が先にあったサブシステムを優先して復帰させる制御について説明する。上述の例であると、サブシステム３⇒４⇒８⇒１４⇒１９の順となる。なお、電力復帰要求の中に復帰させるサブシステムとその優先順番を示す情報を含めてもよい。また、予め電力制御部１０１の記憶装置にどのサブシステムの復帰を優先するかを示す情報を設定するように構成してもよい。なお、説明の簡便のため以降の説明では１９個のサブシステムの電力供給が全て遮断された状態で電力復帰要求が発行された形態について説明する。電力復帰要求を受信した後に、電力制御部１０１はパワースイッチ制御部１０７に対して、サブシステム３，４，８，１４，１９のパワースイッチをＯＮするように命令を出す。
【００３２】
次に、ステップＳ５０２で、電力制御部１０１は電力検出部１０２より、現在の半導体集積回路１０９の温度、電圧、電流データを取得する。更に、ステップＳ５０３で、電力制御部１０１は、受信した電圧、電流データから、クロック復帰前の半導体集積回路の消費電力の見積もりを算出する。
【００３３】
ステップＳ５０４では、電力制御部Ｓ５０４がクロック復帰による見積もりの対象となるサブシステムを選択する。ここでは、電力復帰要求に基づいてサブシステム３を優先する。
【００３４】
次に、ステップＳ５０５で、電力制御部１０１は電力データ記憶部１０３より、サブシステム３を初期化状態に移行させた場合に、瞬間的に増分するダイナミック電力の見込み（図６参照）と温度上昇の見込み（不図示）とを示す情報、及び、「温度−リーク電力特性テーブル」を取得する。なお、電力制御部１０１に、リードした情報やテーブルを一時的に格納しておく記憶部（不図示）を設けて、各サブシステム分の情報を取得するようにしてもよい。その場合は、再度ステップＳ５０５に遷移した際に電力データ記憶部１０３からのロード処理をスキップすることができる。
【００３５】
さらに、電力制御部１０１は、ステップＳ５０２において電力検出部１０２から取得した温度データとサブシステム３の温度上昇から、サブシステム３にクロックを復帰させた際の温度を予測する。そして、「温度−リーク電力特性テーブル」に照らし合わせ、サブシステム３にクロックを供給させた際に増加するリーク電力の見込値を取得する。なお、図１２に示すように、リーク電力は温度が増加するにつれて指数関数的に増加する。
【００３６】
なお、電力データ記憶部１０３が保持する種々のデータは、半導体集積回路１０９の電源投入時のＰｏｗｅｒ  Ｏｎ  Ｒｅｓｅｔが解除された後に、予めファームウェア制御により設定しておけばよい。また、電力投入後に電力記憶部１０３の保持するデータを変更する場合は、必要に応じ、ファームウェア制御で書き換えればよい。
【００３７】
次に、ステップＳ５０６で、電力制御部１０１はステップＳ５０３で取得した消費電力と、ステップＳ５０５で取得したダイナミック電力と、リーク電力と、を合算することでサブシステム３へのクロック供給を再開した場合の消費電力の見込みを取得する。
【００３８】
次に、ステップＳ５０７で、電力制御部１０１はステップＳ５０６で得られた消費電力の見込みが、半導体集積回路１０９の規定電力以内におさまっているかどうかを確認する。ここで、ステップＳ５０６で得られた消費電力の見込みが半導体集積回路１０９の規定電力以内でなければサブシステム３へのクロック供給を直ぐに復帰させるべきではない。ここでは、規定電力内に収まっているものとして、ステップＳ５０８に遷移する。なお、規定電力とは、半導体集積回路１０９が安定して動作するための電力値とするが、半導体集積回路１０９が安定して動作するための指標で電力から導ける値であれば電流値（規定電流）などであってもよい。ステップＳ５０７で条件分岐制御することで、サブシステム３への初期化のためのクロック復帰時に、半導体集積回路１０９の消費電力値が規定電力を超過してしまう事態を抑制できる。
【００３９】
ステップＳ５０８では、電力制御部１０１が、ステップＳ５０１において電力復帰を要求されたサブシステム（３，４，８，１４，１９）の中で、次に見積もるべき対象があるかどうかを判定する。ここでは、サブシステム４，８，１４，１９について見積もる必要があるので、ステップＳ５０４に遷移する。ここで、ステップＳ５０４でサブシステム４を見積もり対象として選択し、ステップＳ５０５〜Ｓ５０７も同様に処理したものとする。ただし、ステップＳ５０６で消費電力の見積もりをする際には「ステップＳ５０３で取得した消費電力＋サブシステム３のクロック復帰による増分＋サブシステム４のクロック復帰による増分」となる。
【００４０】
さらに、ステップＳ５０８からステップＳ５０４に遷移し、サブシステム８を選択してステップＳ５０５〜Ｓ５０７について同様の処理を実施し、ステップＳ５０４でサブシステム１４を選択してＳ５０５〜Ｓ５０６について同様の処理を実施する。ここで、ステップＳ５０６で消費電力の見積もりをする際には「ステップＳ５０３で取得した消費電力＋サブシステム３，４，８，１４のクロック復帰による増分」の合算をする。
【００４１】
ここで見積もった消費電力が規定値を超えてしまうと、ステップＳ５０７からステップＳ５１０に遷移する。
【００４２】
ステップＳ５１０では規定電力以内に収まった対象（ここでは、サブシステム３，４，８）について、電力制御部１０１がクロック復帰指示をシステム制御部１０４に対して発行する。
【００４３】
ここで、ステップＳ５０２に遷移し、電力制御部１０１は電力検出部１０２より、現在の半導体集積回路１０９の温度、電圧、電流データを取得し直す。残りのサブシステム１４，１９について消費電力見積もる際に、サブシステム３，４，８を復帰させた実測値に基づく方が好ましいためである。ステップＳ５１０からすぐにステップＳ５０２へ遷移しても瞬間的な消費電力の増加が落ち着かずＳ５０２〜５０７、Ｓ５１０を循環する。ただし、Ｓ５１０で処理を遅延（ディレイ）させてもよい。
【００４４】
ある程度消費電力の増加が落ちついた段階で、サブシステム１４、１９を順に見積もり対象としてステップＳ５０４〜Ｓ５０８を同様に処理できたら、ステップＳ５０８にて電力復帰を要求されたサブシステムの中で、次に見積もるべき対象がないと判定できる。
【００４５】
ステップＳ５０９で、電力制御部１０１はサブシステム１４，１９についてのクロック復帰指示をシステム制御部１０４に対して発行して処理を抜ける。
【００４６】
なお、ステップＳ５１０において、規定値以内に収まった対象が１つも特定できていない場合はクロック復帰指示の発行を省略する。また、要求指示に含まれる復帰対象としてのサブシステム３，４，８，１４，１９の少なくともいずれかを起動できない場合（ステップＳ５１０の回数などで判断）は、図５の処理を抜けるように制御してもよい。その場合は図５の処理を抜けるとともに、電力制御部１０１がシステム制御部１０４に対して、クロック復帰できなかったサブシステムについてエラー通知する。そしてエラー通知を受けたシステム制御部１０４はエラー対象となったサブシステムに対し再度復帰処理を行う必要があるかどうかを判断し、その必要がないサブシステムについては電力を遮断したままにする。
【００４７】
図７は、サブシステム３，４，８，１４，１９を復帰させる際の、消費電力―時間線図であり、実線Ａが図５のフローチャートを用いて説明した例に対応している。なお、０μｓｅｃでサブシステム３，４，８，１４，１９への電荷のチャージおよび最初にクロックを復帰させる対象についてクロック復帰指示を発行済みとする。
【００４８】
実線Ａに着目すると、サブシステム３，４，８，１４，１９に電力だけを供給した状態（消費電力１００ｍＷ）を始点として、サブシステム３，４，８へのクロックを復帰させると消費電力は９００ｍＷまで増加する（図中１００μｓｅｃ）。サブシステム３，４，８の初期化が済むと、消費電力は低下する。そして、サブシステム１４，１９についてクロックの復帰を指示する。
【００４９】
１点鎖線Ｂは、サブシステム３，４，８，１４，１９を一度に初期化させるためにクロックを復帰させた状態であり、規定電力（１．０Ｗ）を超えてしまっている。破線Ｃは、１つずつクロック復帰を指示する形態である。図５のフローチャートのステップＳ５１０で何も処理をしないように制御し、ステップＳ５０８とステップＳ５０９の順序を入れ替えれば実現できる。破線Ｃの例であると、上述の実線Ｂに比べて倍くらい時間がかかってしまう。従って、実線Ｂで示すように規定電力を超えない範囲でできるだけ多くのサブシステムのクロック供給開始タイミングを同一にする方が初期化時間を短縮できる。
【００５０】
次に、電力検出部１０２の構成例について説明する。図１１は電力検出部１０２の概略構成である。図２において、センス抵抗２０１によって検出された電流は、増幅器でゲインを増幅され、ＡＤ変換部２０２によってアナログ−デジタル変換した後に電力制御部１０１に向けて出力される。なお、センス抵抗２０１によって検出される電流が十分大きい場合は増幅器を設けなくてもよい。温度センサ２０５は、半導体集積回路の温度を検知する。検知された温度も同様に、ＡＤ変換部２０３によってアナログ−デジタル変換されて、電力制御部１０１に出力される。電源供給センサ２０６は、半導体集積回路１０９の各種電源電圧を検知する。検知された電源電圧は、ＡＤ変換部２０４によってアナログ−デジタル変換されて、電力制御部１０１に出力される。なお、電力制御部１０１への出力は、電力制御部１０１からの要求に応じて行われる（図５のＳ５０２）。
【００５１】
以上のように、本実施形態によれば電力の供給を再開した複数のサブシステムについて初期化動作中の消費電力の集中を抑制し、効率良く初期化を実施させることができる。
【００５２】
＜第３の実施形態＞
次に、本発明の第３の実施形態を説明する。第１、第２の実施形態では、システム制御部１０４が電力制御部１０１からのクロック復帰指示などに応じてクロック制御部１０５やリセット制御部１０６を制御していたが、第３の実施形態では電力制御部１０１がクロック制御部１０５やリセット制御部１０６を制御する。従って、第３の実施形態では図３における電力制御部１０１がリセット制御部１０６やクロック制御部１０５と直接接続されている。
【００５３】
図９は第３の実施形態において、サブシステム１を復帰させる際のタイミングチャートである。図４との差分を説明すると、初期化動作状態で電力制御部１０１がクロック制御部１０５に直接クロック供給を指示する。また、初期化動作状態の最後で電力制御部１０１がリセット制御部１０６に直接リセット信号の解除を指示する。第２の実施形態では図４のクロック復帰指示が不要な代わりに、システム制御部１０４に対して復帰が完了したことを通知する必要がある。
【００５４】
本実施形態によれば、電力制御部１０１がシステム制御部１０４のリセット制御・クロック制御の負荷を担うことが可能となる。
【００５５】
＜第４の実施形態＞
第４の実施形態の概略ハードウェア構成は、第１〜第３の実施形態と同様である。本実施形態では、サブシステム毎の消費電力の増分の見込み（図６参照）や温度上昇（不図示）に加えて、図１０に示すような動作モード毎（パワーモード毎）の消費電力をモード情報として電力データ記憶部１０３や記憶部１４０４に保持している。図１０の消費電力は、各サブシステムに電力を供給し初期化を実施する前の消費電力の初期値と、各モードでＯＮになるサブシステムのクロック復帰時の瞬間的なダイナミック電力と、温度上昇を見込んだリーク電力との合算値であり、予め設定しておく。
【００５６】
そして、システム制御部１０４がどのパワーモードに遷移させるかを示す指示を電力制御部１０１に発行すると、電力制御部１０１は図１０に示すテーブルを読み出して、システム制御部１０４から指示されたパワーモードの消費電力プロファイリング値を規定電力（１．０Ｗとする）と比較する。図１０のテーブルから、パワーモード１、２、３、５および７は１．０Ｗ満たないので、図５のように１つずつサブシステムの消費電力の増分を検討する処理を実施しなくてもよいし、複数のクロック復帰対象のクロック復帰タイミングをズラす必要もない。従って、パワーモード１、２、３、５、７のいずれかであれば図５の処理をスキップし、図１０のテーブルで遷移するパワーモードでＯＮされるべきサブシステムについて一括してクロック復帰指示を発行する。
【００５７】
一方で、システム制御部１０４から遷移するように指示されたパワーモードが図１０のテーブルから１．０Ｗを超える可能性のあるパワーモード４、６、８、９、１０であれば、電力制御部１０１は図５のフローを実行して第１〜第３の実施形態と同様に処理する。
【００５８】
以上、本実施形態によれば、パワーモード毎の瞬間的な消費電力の見込みの総量を参照することで、第１〜第３の実施形態の処理をスキップするかどうかを選択し、効率良くクロック復帰動作をすることができる。
【００５９】
＜その他の実施形態＞
前述の実施形態では半導体集積回路１０９の内部に電力検出部や電力データ記憶部を設けているが、これらの構成は同一のシステム（または情報処理装置）に構成されていれば半導体集積回路１０９の外部に設けていてもよい。
【００６０】
その概略構成を図８に示す。省電力システム１４０２は、この図では半導体集積回路１０９が実装されたプリント基板である。記憶部１４０１は、電源制御対象部１０８の各サブシステムのクロック復帰時のダイナミック電力見込値とその時の温度上昇見込値、及び、半導体集積回路の温度−リーク特性を含む見積もり用データ１４０４を保持している。なお、記憶部１４０１には、半導体集積回路１０９の起動時に使用するブートプログラム等も格納されている。
【００６１】
本実施形態の構成を採ることにより、半導体集積回路１０９に電力検出部１０２、電力データ記憶部１０３を設ける必要がなくなるため半導体集積回路１０９のチップサイズを小さくし、半導体集積回路１０９のコストダウンを図ることができる。
【００６２】
また、上述の各実施形態で示す半導体集積回路１０９を備える情報処理装置の起動について、電源スイッチを入れ立ち上げる場合などは、初期化を開始する前に全サブモジュールに対してリセットを発行する（負論理であれば自動的に発行されている）ように構成する。ただし、クロック復帰指示前であればいつ発行してもよい。なお、正論理においてもサブモジュール側で論理を反転させれば自動的に発行されているように構成できる。
【００６３】
また、上述の実施形態では電力制御部１０１（第２の電力制御手段）がサブシステム毎に電力やクロック制御部１０５、リセット制御手段１０６（第２の初期化制御手段）およびを制御し、１つのサブシステムの有する機能モジュールにおける電源制御は一括管理されている。しかし、サブシステム毎に、電力制御部（第１の電力制御手段）、クロック制御部（第１の初期化制御手段）、リセット制御部（第１の初期化制御手段）を設けてもよい。その場合は階層構造的に電源制御をすることが可能になり、機能モジュール毎により細かく電力の供給の有無を制御できる。階層構造にした場合、サブシステム内の電力制御部が電力データ記憶部１０３や電力検出部１０２から見積もり用データ１４０４を取得してもよいし、簡略化したものを予めサブシステム内の電力制御部に保持しておいてもよい。電源ドメインの数が増大するにつれて、一括管理することは困難になる。階層構造的に制御することで、複数の機能モジュール（第１の機能モジュール、第２の機能モジュールなど）の数が増えても、簡単な構成によって初期化のための複数のモジュールに対するクロック供給開始タイミングを異ならせることができる。
【００６４】
なお、上述の各実施形態では各種信号の配線遅延や、各論理ゲートの動作遅延を無視している。
【符号の説明】
【００６５】
１０１  電力制御部
１０２  電力検出部
１０３  電力データ記憶部
１０４  システム制御部
１０５  クロック制御部
１０６  リセット制御部
１０７  パワースイッチ制御部
１０８  被電源制御対象部
１０９  半導体集積回路
１１０  サブシステム
３０１―３０３  クロックゲートセル
【図１】
0005936415.tif 000002
【図２】
0005936415.tif 000003
【図３】
0005936415.tif 000004
【図４】
0005936415.tif 000005
【図５】
0005936415.tif 000006
【図６】
0005936415.tif 000007
【図７】
0005936415.tif 000008
【図８】
0005936415.tif 000009
【図９】
0005936415.tif 000010
【図１０】
0005936415.tif 000011
【図１１】
0005936415.tif 000012
【図１２】
0005936415.tif 000013