(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5776124
(24)【登録日】2015年7月17日
(45)【発行日】2015年9月9日
(54)【発明の名称】電力管理においてクロックを起動させる戦略法
(51)【国際特許分類】
G06F 1/04 20060101AFI20150820BHJP
G06F 1/32 20060101ALI20150820BHJP
【FI】
G06F1/04 570
G06F1/32 A
G06F1/32 B
【請求項の数】13
【全頁数】13
(21)【出願番号】特願2012-539013(P2012-539013)
(86)(22)【出願日】2010年11月12日
(65)【公表番号】特表2013-511096(P2013-511096A)
(43)【公表日】2013年3月28日
(86)【国際出願番号】US2010056509
(87)【国際公開番号】WO2011060248
(87)【国際公開日】20110519
【審査請求日】2013年11月8日
(31)【優先権主張番号】61/261,181
(32)【優先日】2009年11月13日
(33)【優先権主張国】US
(31)【優先権主張番号】12/941,534
(32)【優先日】2010年11月8日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】502188642
【氏名又は名称】マーベル ワールド トレード リミテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】スタルジャ、パンタス
【審査官】
宮下 誠
(56)【参考文献】
【文献】
特開2002−202829(JP,A)
【文献】
特開2002−319498(JP,A)
【文献】
特開昭63−200220(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 1/32
G06F 1/04
(57)【特許請求の範囲】
【請求項1】
回路ブロックの供給電圧を検知し、前記供給電圧が第1の電圧以下である場合、第1の制御信号を生成し、前記供給電圧が第2の電圧の所定の範囲内にある場合、第2の制御信号を生成する電圧検知モジュールと、
(i)電力投入再設定の後に初めて前記供給電圧が前記回路ブロックに供給され、かつ、(ii)前記第1の制御信号または前記第2の制御信号が受信された場合に、前記回路ブロックに供給されるクロック信号の周波数を、前記回路ブロックの通常の動作周波数未満の値に設定し、
(i)前記第1の制御信号または前記第2の制御信号が受信された後に予め定められた時間が経ち、かつ、(ii)前記第2の制御信号が受信された場合に、前記回路ブロックに供給される前記クロック信号の前記周波数を、前記通常の動作周波数に設定する周波数調節モジュールと
を備え、
前記周波数は、0より大きい
システム。
【請求項2】
前記第1の電圧は前記第2の電圧より低い請求項1に記載のシステム。
【請求項3】
前記周波数調節モジュールは、前記第1の制御信号が再度受信されると、前記周波数を、前記通常の動作周波数から前記通常の動作周波数未満の値に切り替え、前記第2の制御信号が再度受信されると、前記周波数を、前記通常の動作周波数未満の値から前記通常の動作周波数に切り替える請求項1又は2に記載のシステム。
【請求項4】
前記周波数調節モジュールは、前記電力投入再設定の後に、前記供給電圧が前記回路ブロックに初めて供給された場合、前記電圧検知モジュールから前記第1の制御信号または前記第2の制御信号が受信されるまで、前記回路ブロックに前記クロック信号を出力しない請求項1から3のいずれか一項に記載のシステム。
【請求項5】
ヒステリシスを利用して回路ブロックの供給電圧を検知し、前記供給電圧が前記供給電圧の所定の範囲の定格値以内である場合、第1の制御信号を生成し、(i)前記供給電圧が所定の電圧以下であり、かつ(ii)前記第1の制御信号が生成された電圧よりも前記供給電圧が低い場合、第2の制御信号を生成する電圧検知モジュールと、
電力投入再設定の後に、前記供給電圧が前記回路ブロックに初めて供給された場合、前記電圧検知モジュールから前記第1の制御信号または前記第2の制御信号が受信されるまで、前記回路ブロックにクロック信号を出力せず、前記第2の制御信号が受信されると、前記回路ブロックに供給される前記クロック信号の周波数を、前記回路ブロックの通常の動作周波数未満の値に設定して、前記第1の制御信号がアサートされると、前記クロック信号の前記周波数を前記通常の動作周波数に設定する周波数調節モジュールと
を備え、
前記所定の電圧は、前記供給電圧の前記定格値より低く、
前記周波数は、0より大きい
システム。
【請求項6】
前記周波数調節モジュールは、前記第2の制御信号が再度受信されると、前記周波数を、前記通常の動作周波数から前記通常の動作周波数未満の値に切り替え、前記第1の制御信号が再度受信されると、前記周波数を、前記通常の動作周波数未満の値から前記通常の動作周波数に切り替える請求項5に記載のシステム。
【請求項7】
回路ブロックの供給電圧を検知する段階と、
前記供給電圧が第1の電圧以下である場合、第1の制御信号を生成する段階と、
前記供給電圧が第2の電圧の所定の範囲以内である場合、第2の制御信号を生成する段階と、
(i)電力投入再設定の後に初めて前記供給電圧が前記回路ブロックに供給され、かつ、(ii)前記第1の制御信号または前記第2の制御信号が受信された場合に、前記回路ブロックに供給されるクロック信号の周波数を、前記回路ブロックの通常の動作周波数未満の値に設定する段階と、
(i)前記第1の制御信号または前記第2の制御信号が受信された後に予め定められた時間が経ち、かつ、(ii)前記第2の制御信号が受信された場合に、前記回路ブロックに供給される前記クロック信号の前記周波数を、前記通常の動作周波数に設定する段階と
を備え、
前記周波数は、0より大きい
方法。
【請求項8】
前記第1の電圧は前記第2の電圧より低い請求項7に記載の方法。
【請求項9】
前記第1の制御信号が再度受信されると、前記周波数を、前記通常の動作周波数から前記通常の動作周波数未満の値に切り替える段階と、
前記第2の制御信号が再度受信されると、前記周波数を、前記通常の動作周波数未満の値から前記通常の動作周波数に切り替える段階と
をさらに備える請求項7又は8に記載の方法。
【請求項10】
前記電力投入再設定の後に、前記供給電圧が前記回路ブロックに初めて供給された場合、前記第1の制御信号または前記第2の制御信号が受信されるまで、前記回路ブロックに前記クロック信号を出力しない段階
をさらに備える請求項7から9のいずれか一項に記載の方法。
【請求項11】
ヒステリシスを利用して回路ブロックの供給電圧を検知する段階と、
前記供給電圧が前記供給電圧の所定の範囲の定格値以内である場合、第1の制御信号を生成する段階と、
(i)前記供給電圧が所定の電圧以下であり、かつ(ii)前記第1の制御信号が生成された電圧よりも前記供給電圧が低い場合、第2の制御信号を生成する段階と、
電力投入再設定の後に、前記供給電圧が前記回路ブロックに初めて供給された場合、前記第1の制御信号または前記第2の制御信号が受信されるまで、前記回路ブロックにクロック信号を出力しない段階と、
前記第2の制御信号が受信されると、前記回路ブロックに供給される前記クロック信号の周波数を、前記回路ブロックの通常の動作周波数未満の値に設定する段階と、
前記第1の制御信号がアサートされると、前記クロック信号の前記周波数を前記通常の動作周波数に設定する段階と
を備え、
前記所定の電圧は、前記供給電圧の前記定格値より低く、
前記周波数は、0より大きい
方法。
【請求項12】
前記第2の制御信号が再度受信されると、前記周波数を、前記通常の動作周波数から前記通常の動作周波数未満の値に切り替える段階と、
前記第1の制御信号が再度受信されると、前記周波数を、前記通常の動作周波数未満の値から前記通常の動作周波数に切り替える段階と
をさらに備える請求項11に記載の方法。
【請求項13】
コンピュータに、請求項7から12のいずれか一項に記載の方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピューティングデバイスで利用される電力管理システムに係る。
【背景技術】
【0002】
本願は、2010年11月8日提出の米国特許出願第12/941,534号明細書の優先権を請求しており、2009年11月13提出の米国特許仮出願第61/261,181号明細書の恩恵を請求している。これら出願の開示の全体をここに参照として組み込むこととする。
【0003】
ここに記載する背景技術の記述は、概して本開示の文脈を提示する意図からなされている。目下の発明者の、本背景技術セクションに開示されている業績は、開示しなければ出願時には先行技術となりえなかった記述の側面とともに、いずれも、本開示に対する自認した先行技術とは、明示的にも暗示的にもなりえない点を了解されたい。
【0004】
通常のコンピューティングデバイスは、所定の機能を実行する回路ブロックを含んでいる。任意の時点でコンピューティングデバイスが実行する機能に応じて、回路ブロックもその時点で利用されたりされなかったりする。しかし、利用されていない回路ブロックも電力消費を続ける。電力ゲーティング及び/またはクロックゲーティングは、利用されていない回路ブロックが消費する電力を制御するために利用される技術の一つである。
【0005】
電力ゲーティングとは、リーク電力を低減させるための技術である。利用されていない回路ブロックを一時的に遮断して(つまり停止する)、全リーク電力を低減させる、というものである。一時的な遮断は、低電力モードまたは非アクティブモードと称されている。回路ブロックが動作を再開する必要がでたときには、これら回路ブロックを起動する(つまり、アクティブモードにアクティベートする)。これら2つのモードは、電力パフォーマンスを最大化するよう、且つ、速度パフォーマンスに対する影響を最小化するように、適時に適当な方法で切り替えられる。
【0006】
クロックゲーティングとは、同期回路で利用される節電技術である。同期回路においては、クロック配信ネットワークが、共通点からの1以上のクロック信号を、これら1以上のクロック信号を利用する全ての要素に対して配信する。ツリー構造を形成するクロック配信ネットワークは、クロックツリーと称される。
【0007】
節電するために、クロックゲーティング論理をクロックツリーに追加する。クロックゲーティング論理により、各回路へのクロック供給を停止して、これら回路のフリップフロップ(flop-flop)が状態遷移しないようにする。フリップフロップの切り替えによって、さもなくば消費されてしまう電力を略ゼロにして、リーク電流のみを生じさせる。
【0008】
一般的には、クロックゲーティング論理を利用しない場合には、マルチプレクサ等の回路要素を、クロック配信制御に利用することができる。しかし、これらの回路要素を利用すると、さらなる制御論理を利用する必要がでてくる。これら回路要素及び関連する制御論理を利用することで、さらに電力が消散され、チップ内のさらなる領域を占有してしまう。
【0009】
対照的に、マルチプレクサ及び関連する制御論理などの回路要素と比べて、クロックゲーティング論理はあまり電力を消散させず、チップ上で利用する領域も小さい。従って電力及びチップ領域の節減という目的からは、マルチプレクサ及び関連する制御論理の代わりにクロックゲーティングを利用するとよいと思われる。
【発明の概要】
【0010】
システムは、電圧検知モジュールと周波数調節モジュールとを含む。電圧検知モジュールは、回路ブロックの供給電圧を検知し、供給電圧が第1の電圧以下である場合、第1の制御信号を生成し、供給電圧が第2の電圧の所定の範囲内にある場合、第2の制御信号を生成する。周波数調節モジュールは、電力投入再設定の後に初めて供給電圧が回路ブロックに供給された場合、及び、第1の制御信号または第2の制御信号が受信された場合に、回路ブロックに供給されるクロック信号の周波数を、回路ブロックの通常の動作周波数未満の値に設定する。
【0011】
他の態様として、周波数調節モジュールは、第1の制御信号または第2の制御信号が受信された後に所定の時間が経った場合、及び、第2の制御信号が受信された場合に、回路ブロックに供給されるクロック信号の周波数を、通常の動作周波数に設定する。
【0012】
他の態様として、周波数調節モジュールは、第1の制御信号が再度受信されると、周波数を、通常の動作周波数から通常の動作周波数未満の値に切り替え、第2の制御信号が再度受信されると、周波数を、通常の動作周波数未満の値から通常の動作周波数に切り替える。
【0013】
また他の態様として、システムは、電圧検知モジュールと周波数調節モジュールとを含む。電圧検知モジュールは、回路ブロックの供給電圧を検知し、供給電圧が所定の電圧以下である場合、第1の制御信号を生成し、供給電圧が供給電圧の所定の範囲の定格値以内である場合、第2の制御信号を生成する。周波数調節モジュールは、第1の制御信号が受信されると、回路ブロックに供給されるクロック信号の周波数を、回路ブロックの通常の動作周波数未満の値に設定して、第2の制御信号がアサートされると、クロック信号の周波数を通常の動作周波数に設定する。
【0014】
他の態様として、周波数調節モジュールは、第1の制御信号が再度受信されると、周波数を、通常の動作周波数から通常の動作周波数未満の値に切り替え、第2の制御信号が再度受信されると、周波数を、通常の動作周波数未満の値から通常の動作周波数に切り替える。
【0015】
また他の態様として、方法は、回路ブロックの供給電圧を検知する段階と、供給電圧が第1の電圧以下である場合、第1の制御信号を生成する段階と、供給電圧が第2の電圧の所定の範囲以内である場合、第2の制御信号を生成する段階とを備える。方法はさらに、電力投入再設定の後に初めて供給電圧が回路ブロックに供給された場合、及び、第1の制御信号または第2の制御信号が受信された場合に、回路ブロックに供給されるクロック信号の周波数を、回路ブロックの通常の動作周波数未満の値に設定する段階とを備える。
【0016】
他の態様として、方法は、第1の制御信号または第2の制御信号が受信された後に所定の時間が経った場合、及び、第2の制御信号が受信された場合に、回路ブロックに供給されるクロック信号の周波数を、通常の動作周波数に設定する段階をさらに備える。
【0017】
他の態様として、方法は、第1の制御信号が再度受信されると、周波数を、通常の動作周波数から通常の動作周波数未満の値に切り替える段階と、第2の制御信号が再度受信されると、周波数を、通常の動作周波数未満の値から通常の動作周波数に切り替える段階とをさらに備える。
【0018】
本開示のさらなる用途については、以下の詳細な記載、請求項、及び図面を読むことで明らかとなろう。詳細な記載及び特定の例示は、例示のみを目的としており、本開示の範囲を制限する意図はない。
【0019】
本開示は、以下の記載及び添付図面を読むことで理解が深まる。
【図面の簡単な説明】
【0020】
【
図1A】回路ブロックのクロック信号をシーケンスにするシステムの機能ブロック図である。
【0021】
【0022】
【
図2】回路ブロックのクロック信号をシーケンスにする方法のフローチャートである。
【0023】
【
図3】回路ブロックのクロック信号をシーケンスにする方法のフローチャートである。
【発明を実施するための形態】
【0024】
以下の記述は本質的に単に例示であり、本開示、その用途または利用を制限する意図はない。明瞭性を期して、図面間で利用される同じ参照番号は類似した要素同士を示している。ここで利用されるA、B、及びCの少なくとも1つといった言い回しは、論理ORを利用して、論理(AまたはBまたはC)を意味することが意図されている。往々にして、方法内の各段階は異なる順序で実行されても、本開示の原理は変わらない。
【0025】
ここで利用するモジュールという用語は、特定用途向け集積回路(ASIC)、電子回路、統合論理回路、フィールドプログラマブルゲートアレイ(FPGA)、コードを実行するプロセッサ(共有、専用、またはグループ)、その他の、記述する機能の提供に適したコンポーネント、または、これらの一部または全ての組み合わせ(例えばシステムオンチップ等)のことであったり、これらの一部であったり、これらを含んだりするものであってよい。モジュールという用語は、プロセッサが実行するコードを格納するメモリ(共有、専用、またはグループ)を含んでもよい。
【0026】
上述したようなコードという用語は、ソフトウェア、ファームウェア、及び/または、マイクロコードを含んでよく、プログラム、ルーチン、機能、クラス、及び/または、オブジェクトのことであってよい。上述したような共有という用語は、複数のモジュールからの一部または全てのコードが、単一の(共有)プロセッサで実行されることを示している。加えて、複数のモジュールからの一部または全てのコードが、単一の(共有)メモリで格納できることを示している。上述したようなグループという用語は、単一のモジュールからの一部または全てのコードを、一群のプロセッサにより実行することができることを示している。加えて、単一のモジュールからの一部または全てのコードを、一群のメモリを用いて実行することができることを示している。
【0027】
ここに記載する装置及び方法は、1以上のプロセッサが実行する1以上のコンピュータプログラムにより実装することができる。コンピュータプログラムには、持続性有形コンピュータ可読媒体に格納されるプロセッサ実行可能命令が含まれる。コンピュータプログラムは格納データを含んでいてもよい。持続性有形コンピュータ可読媒体の、制限ではない例には、不揮発性メモリ、磁気ストレージ、及び光ストレージが含まれる。
【0028】
コンピューティングデバイスがデータを処理する速度は、コンピューティングデバイスの供給電圧及び動作周波数の組み合わせに依存する。一般的には、供給電圧が高くなると、動作周波数も高くてよくなる。また往々にして、コンピューティングデバイスの供給電圧(ひいては電力消散量)と、コンピューティングデバイスの動作周波数との間には相殺関係が存在する。動作電力を低減するためには、供給電圧を、任意の動作周波数で必要となる最小の値に設定するという方法がよく行われている。しかしこうすると、電力供給の妨害のためのマージンがなくなる。
【0029】
さらに動作電力を低減させるためには、電力ゲーティング及び/またはクロックゲーティングにより、数多くの回路ブロックを遮断する方法がある。しかし、電力ゲーティング及び/またはクロックゲーティングによる電力消費の変調により、供給電圧が大きく変化する場合がある。過渡動作(transient operations)においては、供給電圧の最小値により、最大動作周波数が決定される。
【0030】
回路ブロックの電力投入/停止中の電圧過渡に対するマージンを提供するためには、しばしば、供給電圧を少し高めの電圧に設定するという方法がとられる。しかしこうすると、デバイスのベースライン電力消散量が増加して、電力ゲーティング及び/またはクロックゲーティングが提供する節電効果に悪影響がでる場合がある。
【0031】
殆どの回路ブロックは、徐々に起動することで、電力妨害を最小限に抑えている。しかし、ある回路ブロックに対する電力妨害は、他のブロックの起動特性によっても生じうる。例えば、電力妨害は、他の回路ブロックが同時に立ち上がったとき、及び/または、幅幅広い速度マージンを有する回路ブロックが徐々に起動されない場合等にも生じうる。
【0032】
本開示は、回路ブロックが引き起こす電力妨害を監視して、電力妨害に基づいて回路ブロックの動作周波数を調節するシステム及び方法に関する。従って、ここに開示するシステム及び方法によって、最小供給電圧を利用しながらも、積極的且つ広範な電力ゲーティング及び/またはクロックゲーティングが実現される。
【0033】
特に、電圧検知モジュールを利用することで、回路ブロックの供給電圧を検知することができる。電圧検知モジュールは、供給電圧が所定の電圧以下になると(つまり、低供給条件が検知されると)、第1の制御信号を生成する。電圧検知モジュールは、供給電圧が該供給電圧の所定の範囲の定格値にあるときには(つまり、供給有効条件が検知されると)、第2の制御信号を生成する。
【0034】
第2の制御信号は、供給電圧が該供給電圧の所定の範囲の定格値にある間は(つまり、供給有効条件が続く限りは)アサートされ続ける。従って第2の制御信号が生成されていない、またはアサートされていないときは、供給無効条件であると示される。一部の実装例では、供給無効条件は、第1の制御信号及び第2の制御信号の両方が生成されないときに示されてよい。
【0035】
電圧検知モジュールは、供給電圧を検知する際にヒステリシスを利用する。例えば、電圧検知モジュールは、供給電圧が、第2の制御信号が生成される電圧を下回ると生成されてよい。つまり、所定の電圧は、定格供給電圧値より低くてよい。
【0036】
電力投入クロックシーケンスは、第1の制御信号及び第2の制御信号に基づいて回路ブロックに対して提供される。特に、回路ブロックは、電力投入再設定(power on reset operation)の後に初めて起動されるとき、回路ブロックへのクロックは、第1の制御信号または第2の制御信号を受けて始めて起動される。第1の制御信号または第2の制御信号を受けると、クロックの周波数を、公称目標周波数より低く設定する。例えば、周波数を公称目標周波数を20%下回る値に設定する。設計を簡潔にするべく、周波数は、公称目標周波数の整数の約数とする(つまり、Xを1より大きい整数としたときに、1/Xとする)ことができる。次いで、プログラミング可能な期間が経ち、第2の制御信号がアサートされると、周波数を公称目標周波数に設定する。
【0037】
上述したシーケンスを始めに起動した後はいつでも、以下の自動シーケンスを実行することができる。第1の制御信号が再度検知されると、周波数を自動的に、低いほうの周波数に設定する。この後は、第2の制御信号が再度アサートされると、周波数を公称目標周波数へとリセットする。
【0038】
一部の実施形態では、回路ブロックが電力投入再設定の後に初めて起動されるときには、初期起動クロックシーケンスを行わずに、自動シーケンスを直に実行することもできる。こうすることで、回路ブロックが電力投入再設定の後に初めて起動されるときには、クロックの周波数を直接、公称目標周波数に設定することができるので、回路ブロックはフルスピードで動作することができるようになる。しかし、供給電圧は、起動等によって降下する場合があり、この場合には、他の回路ブロックも自動シーケンスを実行しはじめることになる。
【0039】
図1A及び
図1Bを参照すると、本開示において、回路ブロックをシーケンスするシステム100が示されている。システム100は複数の回路ブロック102−1、102−2、…、及び102−Nを含む(まとめて回路ブロック102と称する)。ここでNは1より大きい整数である。システム100はさらに、電源104、クロック生成器106、電力ゲーティングモジュール108、クロックゲーティングモジュール110、及び制御モジュール112を含む。
【0040】
加えて、システム100は、回路ブロック102それぞれのクロック信号をシーケンスするクロックシーケンスモジュール114−1、114−2、…、及び114−Nを含む(まとめてクロックシーケンスモジュール114と称する)。一部の実装例では、回路ブロック102がそれぞれクロックシーケンスモジュール114を含むこともできる。
【0041】
電源104は、回路ブロック102に電力を供給する。クロック生成器106は、回路ブロック102が利用するクロック信号を生成する。電力ゲーティングモジュール108は、電力ゲーティング技術を利用して、回路ブロック102に供給する電力を制御する。クロックゲーティングモジュール110は、クロックゲーティング技術を利用して、回路ブロック102が利用するクロック信号を制御する。クロックゲーティング及び電力ゲーティングを、以下で詳述する。
【0042】
制御モジュール112は、電力ゲーティングモジュール108及びクロックゲーティングモジュール110を制御する。例えば、制御モジュール112は、電力ゲーティングモジュール108及びクロックゲーティングモジュール101が利用する電力ゲーティングスキーム及びクロックゲーティングスキームを決定する。
【0043】
クロックシーケンスモジュール114−1を詳述する。他のクロックシーケンスモジュール114も、クロックシーケンスモジュール114−1同様に動作する。従って、繰り返しを避けるために、他のクロックシーケンスモジュール114に関しては
図1Aに図示せず、詳述もしない。
【0044】
クロックシーケンスモジュール114−1は、電力投入検知モジュール116、電圧検知モジュール118、及び、周波数調節モジュール120を含む。電力投入検知モジュール116は、電力再投入後に初めて電力が回路ブロック102−1に供給され始めると、これを検知する。回路ブロック102−1は、電源再投入処理後に初めて作動されると、回路ブロック102−1へのクロックは、第1の制御信号または第2の制御信号を受信して初めて作動される。電圧検知モジュール118は、電力ゲーティングモジュール108が回路ブロック102に供給する電圧を検知する。第1の制御信号及び第2の制御信号は、電圧検知モジュール118により生成される。
【0045】
具体的には、
図1Bに示すように、電圧検知モジュール118は、第1のコンパレータC1と第2のコンパレータC2とを含む。第1のコンパレータC1は、回路ブロック114−1への供給電圧を、所定の電圧V1と比較する。第2のコンパレータC2は、回路ブロック114−1への供給電圧を、第2の電圧V2と比較する。電圧V2は、所定の範囲の回路ブロック102−1の定格供給電圧値内の値を有する。所定の電圧V1は、回路ブロック102−1の定格供給電圧値よりも低い。加えて、所定の電圧V1は電圧V2より低い。
【0046】
第1のコンパレータC1は、回路ブロック102−1に供給される電圧が、所定の電圧v1以下である場合に、第1の制御信号を生成する。第2のコンパレータC2は、回路ブロック102−1に供給される電圧が、所定の範囲の回路ブロック102−1の定格供給電圧値内である場合に、第2の制御信号を生成する。所定の電圧V1が、回路ブロック102−1の定格供給電圧値より低いことから、第1の制御信号は、第2の制御信号よりも低い電圧で生成される。
【0047】
所定の電圧V1を、定格供給電圧値より低い値に設定することで、ヒステリシスが保たれる。具体的には、回路ブロック102−1は、電源再投入処理後に初めて作動されると、回路ブロック102−1へのクロックは、第1の制御信号または第2の制御信号を受信して初めて作動される。V1を定格供給電圧値より低く設定することで、電圧検知モジュール118は、供給電圧が第2の制御信号が生成された電圧を下回ったときに、第1の制御信号を生成することができるようになる。従って、回路ブロック102−1が電源再投入処理後に初めて作動されると、V1が、定格供給電圧値より低く設定されていることから、回路ブロック102−1へのクロック投入は、第1の制御信号または第2の制御信号が受信されないと行われない。従って、所定の電圧V1を、定格供給電圧値より低い値に設定することで、ヒステリシスが保たれる。
【0048】
図1Aでは、周波数調節モジュール120が、クロックゲーティングモジュール110が回路ブロック102−1に供給するクロックの周波数を調節する。周波数調節モジュール120は、電力ゲーティングモジュール108から回路ブロック102−1に供給する電圧の値に応じて、クロックの周波数を調節する。周波数調節モジュール120は、第1の制御信号及び第2の制御信号に基づいてクロックの周波数を調節する。
【0049】
周波数調節モジュール120は、2段階でクロックの周波数を調節する。第1の段階は、電力再投入処理後に回路ブロック102−1に初めて電力が投入されるときの初期クロックシーケンス段階と称される。第2の段階は第1の段階の後に行われ、自動シーケンス段階と称される。
【0050】
第1の段階では、電力投入再設定の後に回路ブロック102−1に初めて電力が供給され始めると、周波数調節モジュール120は、回路ブロック102−1へのクロック出力を以下のようにして制御する。周波数調節モジュール120は、電圧検知モジュール118から第1の制御信号または第2の制御信号が受信されるまでは、クロックゲーティグモジュール110が受信したクロックを回路ブロック102−1に出力しない。第1の制御信号または第2の制御信号が受信されると、周波数調節モジュール120は、クロックの周波数を、回路ブロック102−1の通常の動作周波数未満の低いほうの周波数に設定する。例えば低いほうの周波数とは、通常の動作周波数の1/Xであってよく、ここでXは1より大きい。
【0051】
次に、周波数調節モジュール120は、所定期間をカウントするタイマーを開始させる。所定の期間はプログラミング可能であり、制御モジュール112によりプログラミングすることができる。所定の期間が経つと、周波数調節モジュール120は、電圧検知モジュール118が第2の制御信号をアサートしたかを判断する。第2の制御信号がアサートされた場合には、周波数調節モジュール120は、クロックの周波数を、回路ブロック102−1の通常動作周波数に設定する。
【0052】
後の第2の段階で、周波数調節モジュール120は、第1の制御信号及び第2の制御信号を監視する。電圧検知モジュール118が第1の制御信号を生成する場合には、周波数調節モジュール120は、クロックの周波数を、通常の動作周波数から、低いほうの周波数へと切り替える。逆に、電圧検知モジュール118が第2の制御信号を生成する場合には、周波数調節モジュール120は、クロックの周波数を、低いほうの周波数から通常の動作周波数へと切り替える。
【0053】
一部の実装例では、第1の段階を省いてよい。周波数調節モジュール120は、電力投入再設定の後に初めて電力が回路ブロック102−1に供給され始めたときを含み、全ての時点で、第1の制御信号及び第2の制御信号のみに基づいてクロックの周波数を制御する。従って、制御モジュール112は、周波数調節モジュール120が利用しているタイマー及び電力投入検知モジュール116に対して電力をディセーブルにする。
【0054】
電力投入再設定の後に初めて電力が回路ブロック102−1に供給され始めると、周波数調節モジュール120は、電圧検知モジュール118から第1の制御信号または第2の制御信号のいずれかを受信することができる。第1の制御信号が受信された場合には、周波数調節モジュール120は、クロックの周波数を、回路ブロック102−1の、低いほうの周波数に設定する。これと反対に、第2の制御信号が受信された場合には、周波数調節モジュール120は、クロックの周波数を、回路ブロック102−1の通常の周波数に設定する。
【0055】
続いて、電圧検知モジュール118から第1の制御信号が受信されるたびに、周波数調節モジュール120は、通常の動作周波数から、低いほうの周波数へと、クロックの周波数を切り替える。逆に、電圧検知モジュール118から第2の制御信号が受信されるたびに、周波数調節モジュール120は、低いほうの周波数から通常の動作周波数へと、クロックの周波数を切り替える。
【0056】
図2を参照すると、回路ブロック(N≧1)のクロックをシーケンスする方法200が示されている。制御は202から始まる。204で、制御は、回路ブロックNに電源が投入されたかを判断する。制御は、回路ブロックNに電力が投入されるまで待つ。回路ブロックNに電力が投入されると、制御は、206で、第1の制御信号か第2の制御信号かが受信されたか、判断する。制御は、第1の制御信号または第2の制御信号が受信されるまで待つ。第1の制御信号または第2の制御信号が受信されると、制御は回路ブロックNに対してクロックを作動させ始める(208)。
【0057】
210で、制御は、クロックの周波数を、回路ブロックNの通常の動作周波数より低い周波数(低いほうの周波数)に設定する。212で、制御は、低いほうの周波数にクロックの周波数が設定されてから所定の期間が経ったかを判断する。制御は、所定の期間が経つまで待つ。214で、制御は、第2の制御信号が受信されたかを判断する。制御は、第2の制御信号が受信されるまで待つ。第2の制御信号が受信されると、制御は、クロックの周波数を、通常の動作周波数に設定する(216)。
【0058】
218で、制御は、第1の制御信号を再度受信したかを判断する。制御は、第1の制御信号を再度受信するまで待つ。第1の制御信号を再度受信すると、制御は、クロックの周波数を、再度、低いほうの周波数へと設定する。この後に制御は214に戻る。
【0059】
図3を参照すると、本開示における、回路ブロック(N≧1)のクロックをシーケンスする方法300が示されている。制御は302から始まる。304で、制御は、回路ブロックNに電力が投入されたかを判断する。制御は、回路ブロックNに電力が投入されるまで待つ。回路ブロックNに電力が投入されると、制御は、306で、第1の制御信号か第2の制御信号かが受信されたかを判断する。制御は、第1の制御信号か第2の制御信号かが受信されるまで待つ。第1の制御信号または第2の制御信号が受信されると、制御は回路ブロックNに対してクロックを作動させ始める(308)。
【0060】
310で、第2の制御信号が受信されると、制御は、クロックの周波数を通常の動作周波数に設定する。また、第1の制御信号が受信された場合には、制御は、クロックの周波数を、通常の動作周波数より低い周波数に設定する。
【0061】
後の312で、制御は、クロックの周波数が通常の動作周波数に設定された後に第1の制御信号が再度受信されたかを判断する。このように第1の制御信号を再度受信すると、制御は、クロックの周波数を、通常の動作周波数から、低いほうの周波数へ切り替える(314)。
【0062】
この後で、または、第1の制御信号が再度受信されない場合には、制御は316で、クロックの周波数を、低いほうの周波数に設定してから、第2の制御信号が再度受信されたかを判断する。第2の制御信号が再度受信されると、制御は、クロックの周波数を、低いほうの周波数から、通常の動作周波数へと切り替える(318)。この後で、または、第2の制御信号が再度受信されない場合には、制御は312に戻る。
【0063】
本開示の広義の教示は、様々な形態で実装することができる。従って本開示には特定の例しか含まれないかもしれないが、本開示の真の範囲は、これに限定されるべきではない。他の変形例も、図面、明細書、及び以下の請求項を研究することで明らかになる。