(57)【要約】【課題】電力管理、特に、アプリケーション処理要求に応答した電圧及び周波数の管理の技術を提供する。【解決手段】オンデマンド電力管理の方法は、第１の組の電圧及び周波数で作動する処理システム内の処理要求をモニタし、処理要求に応答して第２の組の電圧及び周波数を発生させる。本方法は、処理システムを停止することなく第１の組の電圧及び周波数から第２の組の電圧及び周波数に切り換える。【選択図】図２Ａ
2008524744.tif 000002
【特許請求の範囲】
【請求項１】
第１の１つ又はそれよりも多くの電圧と第１の１つ又はそれよりも多くのクロック周波数で作動する処理システム内の処理要求をモニタする段階と、
前記処理要求に応答して、第２の１つ又はそれよりも多くのクロック周波数を発生させる段階と、
前記処理システムを停止することなく、前記第１の１つ又はそれよりも多くのクロック周波数から前記第２の１つ又はそれよりも多くのクロック周波数に切り換える段階と、
を含み、
前記第１の１つ又はそれよりも多くのクロック周波数に対する前記第２の１つ又はそれよりも多くのクロック周波数の比率のマグニチュードは、約６桁までである、
ことを特徴とする方法。
【請求項２】
処理システム内の処理要求を判断する方法であって、
システムバス上の複数の処理イベントを検出する段階と、
処理イベントパターンを認識する段階と、
前記処理イベントパターンを処理要求と相関付ける段階と、
を含むことを特徴とする方法。
【請求項３】
前記複数の処理イベントは、複数のシステム指令を含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記処理イベントパターンは、単位時間当たりの平均的な処理イベント数を含むことを特徴とする請求項２に記載の方法。
【請求項５】
前記処理イベントパターンを処理要求と相関付ける段階は、前記単位時間当たりの平均的な処理イベント数を作動クロック周波数と比較する段階を含むことを特徴とする請求項２に記載の方法。
【請求項６】
第１の複数の電圧を処理システムに供給する段階と、
処理要求に応答して第２の複数の電圧を発生させる段階と、
過渡電力サージを最小にする順番で前記第１の複数の電圧の各々から前記第２の複数の電圧の各々に切り換える段階と、
を含むことを特徴とする方法。
【請求項７】
各々が周波数と位相を含む第１の複数のクロック信号を処理システムに供給する段階と、
処理要求に応答して、各々が周波数と位相を含む第２の複数のクロック信号を発生させる段階と、
前記第１の複数のクロック信号と前記第２の複数のクロック信号の前記位相を調節して、切り換え移行のスペクトル成分を制御する段階と、
前記第１の１つ又はそれよりも多くのクロック周波数から前記第２の１つ又はそれよりも多くのクロック周波数に切り換える段階と、
を含むことを特徴とする方法。
【請求項８】
処理システム上のアプリケーション処理要求をモニタし、かつ該処理システムが作動する１つ又はそれよりも多くのクロック周波数と１つ又はそれよりも多くの電圧とを自動的に制御するシステムコントローラと、
１つ又はそれよりも多くの作動電圧を前記処理システムに供給し、かつ該処理システムを停止すことなく第１の１つ又はそれよりも多くの電圧と第２の１つ又はそれよりも多くの電圧の間で切り換えるために前記システムコントローラに結合された配電マネージャと、
１つ又はそれよりも多くのクロック信号を前記処理システムに供給し、かつ前記処理システムを停止することなく第１の１つ又はそれよりも多くのクロック周波数と第２の１つ又はそれよりも多くのクロック周波数の間で切り換えるために前記システムコントローラに結合されたクロック領域マネージャと、
を含み、
前記システムコントローラは、前記１つ又はそれよりも多くの電圧と前記１つ又はそれよりも多くのクロック周波数との前記自動制御を無効にする指令割り込みを含み、
前記システムコントローラは、前記配電マネージャに１つ又はそれよりも多くの所定の電圧を前記処理システムに供給するように指令し、かつ
前記システムコントローラは、前記クロック領域マネージャに１つ又はそれよりも多くの所定のクロック信号を前記処理システムに供給するように指令する、
ことを特徴とする機器。
【請求項９】
第１の１つ又はそれよりも多くの電圧と、該第１の１つ又はそれよりも多くの電圧から独立し、かつ基準周波数に位相固定された第１の１つ又はそれよりも多くのクロック周波数とで作動する処理システム内の処理要求をモニタする段階と、
前記処理要求に応答して、前記基準周波数に位相固定され、かつ前記第１の１つ又はそれよりも多くのクロック周波数に位相整合された第２の１つ又はそれよりも多くのクロック周波数を発生させる段階と、
前記処理要求に応答して、前記第２の１つ又はそれよりも多くの周波数から独立した第２の１つ又はそれよりも多くの電圧を発生させる段階と、
前記処理システムを停止することなく、前記第１の１つ又はそれよりも多くのクロック周波数から前記第２の１つ又はそれよりも多くのクロック周波数に切り換える段階と、
前記処理システムを停止することなく、前記第１の１つ又はそれよりも多くの電圧から前記第２の１つ又はそれよりも多くの電圧に切り換える段階と、
を含むことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、電力管理に関するものであり、特に、アプリケーション処理要求に応答した電圧及び周波数の管理に関する。
【背景技術】
【０００２】
デジタル電子処理システムが、より高い作動周波数及び装置幾何学形状の小形化に向う傾向がある時に、電力管理は、システム性能を維持しかつ携帯システムのバッテリ長寿命化を図りながら熱過負荷を防止する上で益々重要になってきている。
【０００３】
デジタル論理回路における２つの主要の電力消散源は、静的電力消散及び動的電力消散である。静的電力消散は、温度、装置技術、及び処理変数に依存し、主として漏れ電流から成る。動的電力消散は、デジタル回路における支配的な損失要素であり、作動クロック周波数、作動電圧の２乗、及び容量性負荷に比例する。容量性負荷は、装置技術及び処理変数に大きく依存し、そこで、殆どの動的電力管理に対する手法は、周波数及び電圧制御に注目するものである。
【０００４】
１つの従来の電力管理手法は、コアクロック周波数及び電圧を調節するために処理システムを停止させ、その時間中、プロセッサは、オペレーティングシステムコード又はアプリケーションコードを実行せず、次に、新しい周波数及び電圧が安定した後にシステムを再起動させる。このような手法は、図１に示すように、米国特許第６，７５４，８３７号に説明されている。図１は、プロセッサ又は処理システム１が、プログラマブル電圧ＩＤ（ＶＩＤ）レジスタ３と、クロック周波数制御レジスタ４と、カウントレジスタ５とを収容することを示している。プロセッサが電圧及び／又は周波数の変化が望ましいと判断した時、望ましい電圧及び周波数制御情報は、それぞれ、ＶＩＤレジスタ及びクロック周波数制御レジスタに取り込まれる。これらのレジスタへのアクセスにより、ＣＰＵコア論理１１への停止要求９がトリガされる。停止要求に応答して、ＣＰＵは、現在の命令を終了し、停止許可信号１３を出して処理が停止したことを電力コントローラ７に示す。カウントレジスタ内の値によって判断される時間にわたって停止許可状態が維持され、一方、電圧及び／又は周波数は、変更されて安定化される。停止許可状態中に損失した処理時間に加えて、この手法はまた、プロセッサが再起動した時に大きな過渡電力サージをもたらす場合がある。
【０００５】
米国特許第６，７８８，１５６号に説明されている別の従来の電力管理の手法は、プロセッサの作動中にプロセッサのクロック周波数を変えるが、大きな周波数ステップが引き起こすと考えられる処理エラーを回避するために、小さな増分で周波数変更を行うことを要求する。その結果、この手法は、望ましい作動周波数を達成するために大幅な期間を要求する場合がある。
【０００６】
米国特許第６，７７８，４１８号に説明されている更に別の従来の電力管理の手法は、ルックアップテーブルを通じて又は周波数対電圧変換器を使用して電圧と周波数の間の固定した関係を採用するものである。この手法では、周波数の増加は、常に電圧の増加によって先行され、周波数の減少は、常に電圧の減少に先行する。更に、周波数の増加は、電圧が対応する電圧まで上がる間は遅延される。新しい周波数及び電圧は、独立にはスケーリングされず、新しい作動点は、アプリケーションの処理要求に対して最適でない場合がある。
【０００７】
本発明は、添付図面の図において限定的でなく一例として示される。
【０００８】
【特許文献１】米国特許第６，７５４，８３７号
【特許文献２】米国特許第６，７８８，１５６号
【特許文献３】米国特許第６，７７８，４１８号
【発明の開示】
【０００９】
以下の説明においては、本発明の実施形態の完全に理解することができるように、特定の構成要素、装置、方法などの実施例のような多くの特定の詳細を示す。しかし、これらの特定の詳細は、本発明の実施形態を実施する上で採用する必要はないことが当業者には明らかであろう。他の場合には、本発明の実施形態を不必要に曖昧にすることを避けるために、公知の材料又は方法に対しては詳細説明を割愛している。要素を接続する本明細書で説明する「線」又は「複数の線」は、単一の線又は複数の線とすることができることに注意すべきである。本明細書で使用される時、「結合された」という用語は、直接結合されるか又は１つ又はそれよりも多くの介在構成要素を通じて間接的に結合されることを意味することができる。また、線及び／又は他の結合要素は、それらが運ぶ信号の性質によって特定することができること（例えば、「クロック線」は、黙示的に「クロック信号」を搬送することができる）、及び入力及び出力ポートは、それらが受信又は送信する信号の性質によって特定することができること（例えば、「クロック入力部」は、黙示的に「クロック信号」を受信することができる）が当業者によって理解されるであろう。
【００１０】
オンデマンド電力管理の方法及び機器を説明する。一実施形態では、本方法は、第１の１つ又はそれよりも多くの電圧、及び基準周波数に位相固定された第１の１つ又はそれよりも多くのクロック周波数で作動する処理システムにおける処理要求をモニタする段階を含む。本方法はまた、基準周波数に位相固定され、かつ第１の１つ又はそれよりも多くのクロック周波数に位相整合された第２の１つ又はそれよりも多くのクロック周波数を処理要求に応答して発生させる段階を含む。本方法はまた、処理システムを停止することなく、第１の１つ又はそれよりも多くのクロック周波数から第２の１つ又はそれよりも多くのクロック周波数に切り換える段階を含む。一実施形態では、本方法は、処理要求に応答して第２の１つ又はそれよりも多くの電圧を発生させる段階と、処理システムを停止することなく第１の１つ又はそれよりも多くの電圧から第２の１つ又はそれよりも多くの電圧に切り換える段階を更に含む。
【００１１】
一実施形態では、機器は、処理システム上のアプリケーション処理要求をモニタし、かつ処理システムが作動する１つ又はそれよりも多くのクロック周波数及び１つ又はそれよりも多くの電圧を判断するシステムコントローラを含む。機器はまた、システムコントローラに結合されて１つ又はそれよりも多くの作動電圧を処理システムに供給し、かつ処理システムを停止することなく第１の１つ又はそれよりも多くの電圧と第２の１つ又はそれよりも多くの電圧の間で切り換える配電マネージャを含む。機器はまた、システムコントローラに結合されて１つ又はそれよりも多くのクロック信号を処理システムに供給し、かつ処理システムを停止することなく第１の１つ又はそれよりも多くのクロック周波数と第２の１つ又はそれよりも多くのクロック周波数の間で切り換えるクロック領域マネージャを含む。第１の１つ又はそれよりも多くのクロック周波数及び第２の１つ又はそれよりも多くのクロック周波数は、共通基準周波数に位相固定され、第２の１つ又はそれよりも多くのクロック周波数は、第１の１つ又はそれよりも多くのクロック周波数に位相整合される。一実施形態では、機器はまた、システムコントローラ、配電マネージャ、及びクロック領域マネージャに結合されて電圧指令及び周波数指令をシステムコントローラから受信し、かつ温度変数及び処理変数に関して電圧指令及び周波数指令を補正する補正エンジンを含む。
【発明を実施するための最良の形態】
【００１２】
図２Ａは、処理システム１００におけるオンデマンド電力管理の一実施形態を示している。処理システム１００は、マイクロプロセッサ又は中央演算処理装置などの汎用処理装置とすることができるシステムプロセッサ１０１を含むことができる。代替的に、システムプロセッサ１０１は、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタル信号処理装置（ＤＳＰ）などの専用処理装置とすることができる。また、システムプロセッサ１０１は、汎用処理装置と専用処理装置のあらゆる組合せとすることができる。システムプロセッサ１０１は、システムプロセッサ１０１に対してシステムデータ及び指令を搬送することができるシステムバス１０２に結合することができる。システムバス１０２は、プログラム及びデータを格納することができるメモリ１０３に結合することができる。メモリ１０３は、以下に限定されるものではないが、ランダムアクセスメモリ（ＲＡＭ）及び読み出し専用メモリ（ＲＯＭ）を含むあらゆる形式のメモリとすることができる。また、システムバス１０２は、周辺機器１０４−１から１０４−ｋと結合して、周辺機器１０４−１から１０４−ｋへ及びそれからシステム指令及びデータを搬送することができる。
【００１３】
また、処理システム１００は、電力マネージャ１０５を含むことができ、電力マネージャ１０５は、システムバス１０２と、周波数供給源１０８と、電圧電源１０９とに結合することができる。また、電力マネージャ１０５は、クロックバス１０６と電圧バス１０７とを通じて、システムプロセッサ１０１及び周辺機器１０４−１から１０４−ｋに結合することができる。一実施形態では、図２ａに示すように、電力マネージャ１０５は、外部周波数供給源１０８に結合することができる。電力マネージャ１０５は、周波数供給源１０８からの基準周波数ｆ0を基準周波数ｆ0に位相固定された１つ又はそれよりも多くのクロック周波数ｆ1からｆmに変換し、クロック信号をシステムプロセッサ１０１及び周辺機器１０４−１から１０４−ｋに供給することができると考えられる。他の実施形態では、周波数供給源１０８は、電力マネージャ１０５と一体化し、例えば、集積回路（ＩＣ）ダイ基板又はマルチチップモジュール基板などの共通キャリア基板上で電力マネージャ１０５と共存することができる。また、電力マネージャ１０５は、電圧電源１０９からの電圧Ｖ0を１つ又はそれよりも多くの作動電圧Ｖ1からＶnに変換して、電圧をシステムプロセッサ１０１及び周辺機器１０４−１から１０４−ｋに供給することができると考えられる。図２ａに示す実施形態では、システムプロセッサ１０１及び周辺機器１０４−１から１０４−ｋは、ｍ＝ｎ＝ｋ＋１であるような１つの電圧と１つのクロック入力を有するように示されている。他の実施形態では、システムプロセッサ１０１及び周辺機器１０４−１から１０４−ｋのいずれも２つ又はそれよりも多くの作動電圧及び／又は２つ又はそれよりも多くのクロック信号が必要である場合があることが認められるであろう。一実施形態では、システムプロセッサ１０１、メモリ１０３、電力マネージャ１０５、周波数供給源１０８、及び周辺機器１０４−１から１０４−ｋの２つ又はそれよりも多くは、共通キャリア基板、例えば、図２Ｂに示すマザーボード１１０、図２Ｂに示すドーターボード１１１、又は、ラインカードなどのプリント回路基板（ＰＣＢ）上に存在することができる。代替的に、システムプロセッサ１０１、メモリ１０３、電力マネージャ１０５、周波数供給源１０８、及び周辺機器１０４−１から１０４−ｋの２つ又はそれよりも多くが存在することができる共通キャリア基板は、集積回路（ＩＣ）ダイ基板とすることができる。
【００１４】
図２Ｂを参照すると、周辺機器１０４−１から１０４−ｋは、システムバス１０２を通じてシステムプロセッサ１０１と通信することができるあらゆる形式の装置、構成要素、回路、サブシステム、又はシステムとすることができる。例えば、周辺機器１０４−１から１０４−ｋのいずれも、チップ上のシステム、ＡＳＩＣ、ＦＰＧＡ、メモリチップ、又は類似の装置のような単一チップ装置１１２とすることができる。また、周辺機器１０４−１から１０４−ｋのいずれも、共通集積回路基板上の単一チップ装置同士のあらゆる組合せを含むマルチチップモジュール１１３とすることができる。代替的に、周辺機器１０４−１から１０４−ｋは、例えば、マザーボード１１０、ドーターボード１１４、又は他の形式の回路カードのような１つ又はそれよりも多くのプリント回路基板上に存在することができる。
【００１５】
図２Ｃは、オンデマンド電力管理の一実施形態における電力マネージャ１０５を示している。電力マネージャ１０５は、処理システム１００内のアプリケーション処理要求をモニタし、かつ処理システム１００の作動点を選択するためのシステムコントローラ２０１を含むことができる。また、電力マネージャ１０５は、システムコントローラ２０１に結合して１つ又はそれよりも多くの作動電圧Ｖ1からＶnを処理システム１００に供給し、かつ以下で説明するように処理システム１００を停止することなく第１の１つ又はそれよりも多くの電圧Ｖ1’からＶn’と第２の１つ又はそれよりも多くの電圧Ｖ1’’からＶn’’の間で切り換える配電マネージャ２０２を含むことができる。また、電力マネージャ１０５は、システムコントローラ２０１に結合して１つ又はそれよりも多くのクロック信号ｆ1からｆmを処理システム１００に供給し、かつ以下で説明するように処理システム１００を停止することなく第１の１つ又はそれよりも多くのクロック信号ｆ1’からｆm’と第２の１つ又はそれよりも多くのクロック信号ｆ1’’からｆm’’の間で切り換えるクロック領域マネージャ２０３を含むことができる。一実施形態では、電力マネージャ１０５は、システムコントローラ２０１と、配電マネージャ２０２と、クロック領域マネージャ２０３とに結合された補正エンジン２０４を含むこともできる。補正エンジン２０４は、以下で詳細するように、温度及び処理変数に対してシステムコントローラ２０１によって選択された作動点を補正するように構成することができる。
【００１６】
一実施形態では、電力マネージャ１０５は、第１の１つ又はそれよりも多くのクロック周波数ｆ1’からｆm’及び第１の１つ又はそれよりも多くの電圧Ｖ1’からＶn’をシステムプロセッサ１０１及び周辺機器１０４−１から１０４−ｋに供給しながら、システムバス１０２上の処理活動をモニタするように構成することができる。また、電力マネージャ１０５は、モニタされた処理活動に基づいて処理要求を判断し、かつ処理要求に応答して第２の１つ又はそれよりも多くのクロック周波数ｆ1’’からｆm’’及び第２の１つ又はそれよりも多くの電圧Ｖ1’’からＶn’’を発生するように構成することができる。また、電力マネージャ１０５は、処理システム１００を停止することなく、第１の１つ又はそれよりも多くの電圧から第２の１つ又はそれよりも多くの電圧に切り換え、かつ処理システム１００を停止することなく、第１の１つ又はそれよりも多くのクロック周波数から第２の１つ又はそれよりも多くのクロック周波数に切り換えるように構成することができる。
【００１７】
システムコントローラ２０１は、システムバス１０２上の処理活動をモニタし、かつ処理システム１００に対して新しい作動点を選択するバスインタフェースユニット２０５を含むことができる。また、システムコントローラ２０１は、バスインタフェースユニット２０５に結合されたプログラマブルメモリ２０６を含むことができる。プログラマブルメモリ２０６は、バスインタフェースユニット２０５が、システムバス１０２上の活動を処理システム１００内のアプリケーション処理要求と相関付けることを可能にするプログラムされた情報を含むことができる。
【００１８】
一実施形態では、バスインタフェースユニット２０５は、システムバス１０２上の複数の指令を検出し、かつアプリケーション処理要求の変化に関連したプログラマブルメモリ２０６内にプログラムされた指令パターンを認識するように構成することができる。指令パターンは、一般的な処理指令パターン、又は特定のシステムプロセッサ１０１又はシステムプロセッサ１０１がそのメンバである場合があるプロセッサ群に関連した指令パターン及びバストランザクションサイクルとすることができる。指令パターンの認識に応答して、バスインタフェースユニット２０５は、処理システム１００に対して新しい作動点を選択することができる。新しい作動点は、現在の組の作動電圧Ｖ1’からＶn’’とは異なる新しい組の作動電圧Ｖ1’’からＶn’’、及び／又は現在の組の作動クロック周波数ｆ1’からｆm’とは異なる新しい組の作動クロック周波数ｆ1’’からｆm’’を含むことができる。一実施形態では、現在の組の作動電圧及びクロック周波数と新しい組の作動電圧及びクロック周波数は、システムコントローラ２０１内のハードウエアレジスタ（図示せず）又はソフトウエア定義レジスタ（例えば、プログラマブルメモリ２０６内のメモリロケーション）に書き込むことができる。
【００１９】
代替的に、バスインタフェースユニット２０５は、システムバス１０２上の単位時間当たりの平均的な処理イベント数を検出し、かつその平均的な処理イベント数を１つ又はそれよりも多くの現在のクロック周波数１１２と比較するように構成することができる。比較結果に基づいて、バスインタフェースユニット２０５は、上述のように新しい作動点を選択することができる。
【００２０】
以下でより詳細に説明するように、システムコントローラ２０１はまた、配電マネージャ２０２における電圧Ｖ1からＶnの供給、及びクロック領域マネージャ２０３におけるクロック周波数ｆ1からｆmの供給を制御するインターフェースユニット２０６及びコマンドバス２０８に結合された状態機械２０７を含むことができる。
【００２１】
システムコントローラ２０１は、システムバス１０２上の処理活動を自動的にモニタし、かつ処理システム１００内のアプリケーション処理要求が変化した時に新しい作動点を選択するように、１つ又はそれよりも多くの電圧Ｖ1からＶn及び１つ又はそれよりも多くのクロック周波数ｆ1からｆmを自律的に指令するように構成することができることが当業者によって認められるであろう。しかし、システムコントローラ２０１はまた、１つ又はそれよりも多くの電圧値Ｖ1からＶn及び１つ又はそれよりも多くのクロック周波数ｆ1からｆmの自動制御を無効にする（例えば、システムプロセッサ１０１又は周辺機器１０４−１から１０４−ｎの１つ又はそれよりも多くからの極めて重要な電力要件に応答して）状態機械２０７に結合された指令割り込み線２０９を含むことができる。指令割り込み線２０９を使用して、処理システム１００を所定の作動点に設定することができ、システムコントローラ２０１は、１つ又はそれよりも多くの所定の電圧を処理システム１００に供給するように配電マネージャ２０２に命じ、システムコントローラは、１つ又はそれよりも多くの所定のクロック周波数を処理システム１００に供給するようにクロック領域マネージャに指令する。
【００２２】
図３は、オンデマンド電力管理の一実施形態における補正エンジン２０４を示している。補正エンジン２０４は、アプリケーション処理要求に応答してシステム１００の作動点を変えるようにシステムコントローラ２０１によって選択された１つ又はそれよりも多くの電圧指令と１つ又はそれよりも多くの周波数指令とをシステムコントローラ２０１から受信する受信器３０１を含むことができる。受信器３０１によって受信した電圧指令及び周波数指令は、デジタル指令とすることができる。また、補正エンジン２０４は、温度を測定しかつ報告する温度センサ３０２を含むことができ、温度は、例えば、装置温度、システム温度、周囲温度、又は処理システム１００の作動点に影響を与える場合があるあらゆる温度とすることができる。また、補正エンジン２０４は、処理システム１００用較正データを格納する、温度センサ３０２に結合された不揮発性メモリ３０３を含むことができる。不揮発性メモリ３０３内に格納された較正データは、装置又はシステム処理技術（例えば、ＣＭＯＳ処理）、又はシステムプロセッサ１０１及び周辺機器１０４−１から１０４−ｋのような１つ又はそれよりも多くの個々の装置のための温度依存電圧及び周波数補正係数を含むことができる。また、補正エンジン２０４は、受信器３０１と、温度センサ３０２と、不揮発性メモリ３０３とに結合することができる補正モジュール３０４を含むことができる。補正モジュール３０４は、温度と温度依存処理及び装置変数とに対して受信器３０１からの電圧指令及び周波数指令を補正するように構成することができる。補正モジュール３０４は、スケーリング回路３０５に結合され、指令バス３０６を通じて１つ又はそれよりも多くのスケーリングされた電圧指令を配電マネージャ２０２に、及び１つ又はそれよりも多くのスケーリングされた周波数指令をクロック領域マネージャ２０３に供給することができる。
【００２３】
図４は、オンデマンド電力管理の一実施形態における配電マネージャ２０２を示している。配電マネージャ２０２は、１つ又はそれよりも多くの作動電圧Ｖ1からＶnに応答する１つ又はそれよりも多くの電圧制御チャンネル４０１−１から４０１−ｎを含むことができる。各電圧制御チャンネル４０１−１から４０１−ｎは、ピンポンコントローラ４０２とマルチプレクサ４０４の間に結合された二重電圧調整器４０３を含むことができる。ピンポンコントローラは、システムコントローラ２０１内の状態機械２０７から補正エンジン２０４を通じて指令バス３０６を通して指令を受信することができる。ピンポンコントローラ４０２は、第１の電圧調整器４０３ａを第１の電圧に、及び第２の電圧調整器４０３ｂを第２の電圧に設定し、かつ状態機械２０７からの電圧指令に応答して第１の電圧と第２の電圧の間から選択することができる。例えば、電圧制御チャンネル４０１−１においては、電圧調整器４０３ａは、第１の電圧Ｖ1’に設定することができ、電圧調整器４０３ｂは、第２の電圧Ｖ1’’に設定することができる。また、配電マネージャ２０２は、過渡電力要件を管理するために第１の１つ又はそれよりも多くの電圧Ｖ1’からＶn’と第２の１つ又はそれよりも多くの電圧Ｖ1’’からＶn’’の間の遷移を順序付ける、システムコントローラ２０１によって制御されるシーケンスコントローラ４０５を含むことができる。上述の電圧変化は、あらゆる周波数変化とは独立に行うことができるので、電圧は、処理システム１００を停止することなく切り換えることができることが認められるであろう。
【００２４】
図５は、オンデマンド電力管理の一実施形態におけるクロック領域マネージャ２０３を示している。クロック領域マネージャ２０３は、１つ又はそれよりも多くの周波数指令ｆ１からｆｍに応答する１つ又はそれよりも多くの周波数制御チャンネル５０１−１から５０１−ｍを含むことができる。各周波数制御チャンネル５０１−１から５０１−ｍは、ピンポンコントローラ５０２とマルチプレクサ５０４の間に結合された二重位相固定ループ（ＰＬＬ）５０３を含むことができる。ピンポンコントローラは、補正エンジン２０４を通して指令バス３０６を通じてシステムコントローラ２０１内の状態機械２０７から指令を受信することができる。ピンポンコントローラ５０２は、第１のＰＬＬ５０３ａを第１のクロック周波数に、及び第２のＰＬＬ５０３ｂを第２のクロック周波数に設定し、かつ状態機械２０７からの周波数指令に応答して第１のクロック周波数と第２のクロック周波数の間から選択することができる。例えば、周波数制御チャンネル５０１−１においては、ＰＬＬ５０３ａは、第１のクロック周波数ｆ１’に設定することができ、ＰＬＬ５０３ｂは、第２のクロック周波数ｆ１’’に設定することができる。各ＰＬＬ５０３ａ及び５０３ｂは、周波数供給源１０８（図示せず）からの基準周波数１１０に位相固定することができ、ＰＬＬ５０３ａ及び５０３ｂによって供給されたクロック周波数は、全て、基準周波数１１０の倍数又は約数であるようになっている。周波数乗算ＰＬＬ’及び周波数割算ＰＬＬ’は、当業技術に公知なのでここでは詳細には論じない。また、クロック領域マネージャ２０３は、クロック周波数ｆ1からｆm間の差動伝播遅延を調節し、かつクロック周波数ｆ1からｆmの結合スペクトル成分を制御する、システムコントローラ２０１によって制御されるジッタ及び位相コントローラ５０５を含むことができる。
【００２５】
全てのクロック周波数ｆ1からｆmは、全てが基準周波数１１０に位相固定されるので調和的に関連付けられることになることが当業者によって認められるであろう。特に、単一の周波数制御チャンネルにおけるあらゆる２つのクロック周波数（周波数制御チャンネル５０１−１におけるクロック周波数ｆ1’及びｆ1’’）は、調和的に関連付けられることになる。図６は、処理システム１００を停止することなく、第１のクロック周波数と第２のクロック周波数の間で切り換えるようにこの調和関係を使用することができる方法を示している。図６は、周波数ｆ0と周波数Ｔ0ａ＝１／ｆ0、クロック周波数ｆ1’＝Ａｆ0と周期Ｔ1＝Ｔ0／Ａ、周波数ｆ1’’＝Ｂｆ0と周期Ｔ2＝Ｔ0／Ｂを有する基準周波数１１０を示している。図６に示すように、クロック周波数ｆ1’の位相は、Ｔ1とＴ2の最小公倍数に応答する時間間隔で周期的にクロック周波数ｆ1’’（例えば、時間ｔ1、ｔ2、ｔ3などで）と整列することになる。この時間間隔は、例えば、システムコントローラ２０１によって計算することができる。従って、アプリケーション処理要求に対応してシステムコントローラによって新しい作動点が指令された時、第１のクロック周波数（例えば、ｆ1’）から第２のクロック周波数（例えば、ｆ1’’）への切り換わりは、第１のクロック周波数と第２のクロック周波数の位相が整列した時に発生するように時間調節することができる。周波数が切り換えられた時に（例えば、マルチプレクサ５０４により）第１のクロック周波数と第２のクロック周波数の位相が整列した場合、処理システム１００内には位相の不連続性はなく、周波数は、処理システム１００を停止することなく切り換わることができる。第２のクロック周波数と第１のクロック周波数の比率は、基準周波数１０９の安定性によるが、非常に大きなもの、すなわち、ほぼ６桁までのマグニチュードとすることができる。
【００２６】
上述のように、配電マネージャ２０２内のピンポンコントローラ４０２は、システムコントローラ２０１内の状態機械２０７から指令を受信して二重電圧調整器４０３を制御することができ、クロック領域マネージャ２０３内のピンポンコントローラ５０２は、システムコントローラ２０１内の状態機械２０７から指令を受信して二重ＰＬＬ５０３を制御することができる。図７は、図８に示すように、例示的な電圧制御チャンネル４０１−１（電圧調整器４０３ａ及び４０３ｂは、それぞれ、ＶＲ1及びＶＲ2と指定されている）及び例示的な周波数制御チャンネル５０１−１（第１のＰＬＬ５０３ａ及び５０３ｂは、それぞれ、ＰＬＬ1及びＰＬＬ2と指定されている）に関するオンデマンド電力管理の一実施形態における状態機械２０７の状態図を示している。図７のような状態図は、配電マネージャ２０２における各電圧制御チャンネル、及びクロック領域マネージャ２０３における各周波数制御チャンネルに適用することができることが認められるであろう。
【００２７】
一実施形態では、新しい作動電圧及び／又は新しいクロック周波数がシステムコントローラによって指令された時、状態機械２０７は、ピンポンモード又は定常モードで作動することができる。ピンポンモードは、新しい定常状態の作動電圧が、各変化を伴ってＶＲ1及びＶＲ2によって交互に供給され、新しい定常状態のクロック周波数が、各変化を伴ってＰＬＬ1及びＰＬＬ2によって交互に供給される対称形モードである。定常モードは、非対称形モードであり、そこでは、新しい定常状態の電圧は、常に、過渡変化が他方の電圧調整器（例えば、ＶＲ2）によって供給された後に一方の電圧調整器（例えば、ＶＲ1）によって供給され、定常状態のクロック周波数は、常に、過渡変化が他方のＰＬＬ（例えば、ＰＬＬ2）によって供給された後に一方のＰＬＬ（例えば、ＰＬＬ1）によって供給される。表１は、図７及び以下の説明で使用される状態変数を定めるものである。
【００２８】
（表１）
2008524744.tif 000003
【００２９】
初期状態（７０１）においては、ＶＲ1は、第１の電圧に設定され、第１の電圧は、マルチプレクサ４０４によって選択されて処理システム１００に供給される。初期状態においては、ＰＬＬ1は、第１のクロック周波数に設定され、第１のクロック周波数は、マルチプレクサ５０４によって選択されて処理システム１００に供給される。バスインタフェースユニット２０５は、処理活動に対してシステムバス１０２を定期的に検査する。バスインタフェースユニット２０５が処理活動の変化を検出しなかった場合、変更周波数フラグが解除され（ｃｍｄ＿ｆｃ＝０）、変化電圧フラグが解除される（ｃｍｄ＿ｖｃ＝０）。バスインタフェースユニット２０５が、処理システム１００の作動点の変化を保証するシステムバス１０２上の処理活動の変化を検出した場合、バスインタフェースユニット２０５は、プログラマブルメモリ２０６から新しい作動点を選択し、新しい作動点には、新しい電圧及び／又は新しいクロック周波数が必要であると考えられる。
【００３０】
新しい電圧を必要とする場合（ｃｍｄ＿ｖｃ＝１）、ＶＲ2は、新しい電圧へと指令される（７０２）。新しい電圧が安定した後（ｃｈｋ＿ｓｔ＝１）、ＶＲ2の出力が選択される（７０３）。ピンポンモードにおいては（ｍｏｄｅ＿ｐｐ＝１）、ＶＲ2は、電圧要件が変更しない間は（ｃｍｄ＿ｖｃ＝０）選択され続ける。電圧要件が変化した場合（ｃｍｄ＿ｖｃ＝１）、ＶＲ1は、新しい電圧に指令される（７０４ａ）。新しい電圧が安定した後（ｃｈｋ＿ｓｔ＝１）、ＶＲ1の出力が選択され（７０５）、システムは、新しい電圧で初期状態に戻る。７０３の定常モードにおいては（ｍｏｄｅ＿ｓｓ＝１）、ＶＲ1の出力は、ＶＲ2の出力に等しいように指令され（７０４ｂ）、ＶＲ1の出力は、ＶＲ1が安定した時（ｃｈｋ＿ｓｔ＝１）に選択され（７０５）、システムは、新しい電圧で初期状態に戻る。
【００３１】
新しいクロック周波数を必要とする場合（ｃｍｄ＿ｆｃ＝１）、ＰＬＬ2は、新しい周波数に指令される（７０６）。新しい周波数が安定した後（ｃｈｋ＿ｓｔ＝１）、ＰＬＬ2の出力が選択される（７０７）。ピンポンモードにおいては（ｍｏｄｅ＿ｐｐ＝１）、ＰＬＬ2は、周波数要件が変化しない間は（ｃｍｄ＿ｆｃ＝０）選択され続ける。周波数要件が変化した場合（ｃｍｄ＿ｆｃ＝１）、ＰＬＬ1は、新しい周波数に指令される（７０８ａ）。新しい周波数が安定した後（ｃｈｋ＿ｓｔ＝１）、ＰＬＬ1の出力が選択され（７０９）、システムは、新しい周波数で初期状態に戻る（７０１）。７０７の定常モードにおいては（ｍｏｄｅ＿ｓｓ＝１）、ＰＬＬ1の出力は、ＰＬＬ2の出力に等しいように指令され（７０８ｂ）、ＰＬＬ1が安定した時に（ｃｈｋ＿ｓｔ＝１）、ＰＬＬ1の出力が選択され（７０９）、システムは、新しい周波数で初期状態に戻る（７０１）。
【００３２】
図９Ａは、オンデマンド電力管理の方法９００の一実施形態を示している。図１から図４を参照すると、本方法は、第１の１つ又はそれよりも多くの電圧１１３と、基準周波数１１０に位相固定された第１の１つ又はそれよりも多くのクロック周波数１１２とで作動する処理システム１００における処理要求をモニタする段階（段階９１０）と、基準周波数１０９に位相固定され、かつ第１の１つ又はそれよりも多くのクロック周波数１１２に位相整合された第２の１つ又はそれよりも多くのクロック周波数１１２を処理要求に対応して発生させる段階（段階９２０）と、処理要求に応答して第２の１つ又はそれよりも多くの電圧１１３を発生させる段階（段階９３０）と、処理システム１００を停止することなく、第１の１つ又はそれよりも多くの電圧１１０から第２の１つ又はそれよりも多くの電圧１１３に切り換える段階（段階９４０）と、処理システム１００を停止することなく、第１の１つ又はそれよりも多くのクロック周波数１１２から第２の１つ又はそれよりも多くのクロック周波数１１２に切り換える段階（段階９５０）とを含むことができる。
【００３３】
一実施形態では、図９Ｂに示すように、処理要求をモニタする段階（段階９１０）は、バスインタフェースユニット２０５でシステムバス１０２上で複数の処理イベントを検出する段階（段階９１１）と、クロック周波数要件を複数の処理イベントと相関付ける段階（段階９１２）とを含むことができる。
【００３４】
一実施形態では、図９Ｃに示すように、処理要求に応答して第２の１つ又はそれよりも多くのクロック周波数１１１を発生させる段階（段階９２０）は、処理要求から第２の１つ又はそれよりも多くのクロック周波数１１２の値を判断する段階（段階９２１）と、補正エンジン２０４内の第２の１つ又はそれよりも多くのクロック周波数の値をスケーリングしてシステム温度と処理変数とを補正する段階（段階９２２）と、１つ又はそれよりも多くの二重位相固定ループ５０３の第２の１つ又はそれよりも多くのクロック周波数１１２のスケーリングされた値を合成する段階（段階９２３）と、１つ又はそれよりも多くのマルチプレクサ５０４で第１の１つ又はそれよりも多くのクロック周波数１１２から第２の１つ又はそれよりも多くのクロック周波数１１２に切り換える前に第２の１つ又はそれよりも多くのクロック周波数１１２のスケーリングされた値を安定化させる段階とを含むことができる。
【００３５】
一実施形態では、図９Ｄに示すように、処理要求に応答して第２の１つ又はそれよりも多くの電圧１１３を発生させる段階（段階９３０）は、処理要求から第２の１つ又はそれよりも多くの電圧１１３の値を判断する段階（段階９３１）と、補正エンジン２０４内の第２の１つ又はそれよりも多くの電圧１１３の値をスケーリングしてシステム温度と処理変数とを補正する段階（段階９３２）と、第２の１つ又はそれよりも多くの電圧１１３のスケーリングされた値を１つ又はそれよりも多くの二重電圧調整器４０３において設定する段階（段階９３３）と、１つ又はそれよりも多くのマルチプレクサ４０４で第１の１つ又はそれよりも多くの電圧１１３から第２の１つ又はそれよりも多くの電圧１１３に切り換える前に第２の１つ又はそれよりも多くの電圧１１３のスケーリングされた値を安定化させる段階とを含むことができる。
【００３６】
以上、オンデマンド電力管理の方法及び機器を説明した。本発明の態様は、少なくともある程度はソフトウエアにおいて実施することができることが先の説明から明らかであろう。すなわち、これらの技術は、プログラマブルメモリ２０６のようなメモリに含まれた命令のシーケンスを実行するシステムコントローラ２０１のようなそのプロセッサに応答してコンピュータシステム又は他のデータ処理システムにおいて実行することができる。様々な実施形態では、コンピュータに組み込まれた回路をソフトウエア命令と組み合わせて使用して本発明を実行することができる。従って、これらの技術は、コンピュータに組み込まれた回路とソフトウエアのいずれかの特定の組合せ、又はデータ処理システムによって実行される命令の特定のソースに限定されない。更に、本明細書を通じて、様々な機能及び作動は、説明を簡素化するためにソフトウエアコードによって実行されるか、又はソフトウエアコードによって引き起こされると説明することができる。しかし、当業者は、このような表現が意味することは、これらの機能が、プロセッサ又はシステムコントローラ２０１のようなコントローラによるコードの実行から生じるということであることを認識するであろう。
【００３７】
機械可読媒体を使用して、データ処理システムによって実行された時にシステムに本発明の様々な方法を実行させるソフトウエア及びデータを格納することができる。この実行可能ソフトウエア及びデータは、例えば、メモリ１０３及びプログラマブルメモリ２０６、又はソフトウエアプログラム及び／又はデータを格納することができるあらゆる他の装置を含む様々な場所に格納することができる。
【００３８】
従って、機械可読媒体は、機械（例えば、コンピュータ、ネットワーク装置、携帯情報端末、製造ツール、１つ又はそれよりも多くのプロセッサの組を有するあらゆる装置など）によってアクセス可能な形態で情報を提供する（例えば、格納及び／又は送信する）あらゆる機構を含む。例えば、機械可読媒体は、記録可能／非記録可能媒体（例えば、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置など）、並びに電気、光、音響、又は他の形態の伝播信号（例えば、搬送波、赤外線信号、デジタル信号など）、その他を含む。
【００３９】
本明細書を通じて「一実施形態」又は「実施形態」への言及は、実施形態に関連して説明する特定の特徴、構造、又は特性が本発明の少なくとも１つの実施形態に含まれることを意味することを認めるべきである。従って、本明細書の様々な部分における２回又はそれよりも多くの「実施形態」又は「一実施形態」又は「代替的実施形態」への言及は、必ずしも全てが同じ実施形態を言及しているとは限らないことが強調されると共にそれを認めるべきである。更に、特定の特徴、構造、又は特性は、本発明の１つ又はそれよりも多くの実施形態において適切なように組み合わせることができる。更に、本発明は、いくつかの実施形態に関して説明したが、当業者は、本発明が説明した実施形態に限定されないことを認識するであろう。本発明の実施形態は、特許請求の範囲に修正又は変更を行って実施することができる。従って、本明細書及び図面は、本発明を限定する代わりに例示するものとして見なされるものとする。
【図面の簡単な説明】
【００４０】
【図１】従来のパワー管理システムを示す図である。
【図２Ａ】処理システムにおけるオンデマンド電力管理の一実施形態を示す図である。
【図２Ｂ】分散処理システムにおけるオンデマンド電力管理の一実施形態を示す図である。
【図２Ｃ】オンデマンド電力マネージャの一実施形態を示す図である。
【図３】オンデマンド電力管理の一実施形態における補正エンジンを示す図である。
【図４】オンデマンド電力管理の一実施形態における配電マネージャを示す図である。
【図５】オンデマンド電力管理の一実施形態におけるクロック領域マネージャを示す図である。
【図６】オンデマンド電力管理における位相整合の一実施形態を示す図である。
【図７】オンデマンド電力管理の一実施形態を示す状態図である。
【図８】オンデマンド電力管理の一実施形態における電圧及び周波数制御を示す図である。
【図９Ａ】オンデマンド電力管理の一実施形態における方法を示す図である。
【図９Ｂ】図９Ａによって示す方法の一実施形態を示す図である。
【図９Ｃ】図９Ａによって示す方法の更なる実施形態を示す図である。
【図９Ｄ】図９Ａによって示す方法の別の更なる実施形態を示す図である。
【符号の説明】
【００４１】
１００  処理システム
１０１  システムプロセッサ
１０２  システムバス
１０３  メモリ
【図１】
2008524744.tif 000004
【図２Ａ】
2008524744.tif 000005
【図２Ｂ】
2008524744.tif 000006
【図２Ｃ】
2008524744.tif 000007
【図３】
2008524744.tif 000008
【図４】
2008524744.tif 000009
【図５】
2008524744.tif 000010
【図６】
2008524744.tif 000011
【図７】
2008524744.tif 000012
【図８】
2008524744.tif 000013
【図９Ａ】
2008524744.tif 000014
【図９Ｂ】
2008524744.tif 000015
【図９Ｃ】
2008524744.tif 000016
【図９Ｄ】
2008524744.tif 000017
【国際調査報告】
2008524744.tif 000018