(57)【要約】【課題】最大所要電力よりも高い公称最大所要電力を割り当てる等の電力の無駄を削減することのできるプロセッサモジュールを提供する。【解決手段】プロセッサモジュールは、命令デコーダ３３と、実行ユニット３１と、前記命令デコーダ３３を含むプロセッサコンポーネント及び前記実行ユニット３１に電力を供給するための電力ノードと、この電力ノードを介して供給された電力の消費を表す電力消費データを生成するための電力消費モニタと３９と、を備える。【選択図】図１
2007042091.tif 000002
【特許請求の範囲】
【請求項１】
命令デコーダと、
実行ユニットと、
前記命令デコーダを含むプロセッサコンポーネント及び前記実行ユニットに電力を供給するための電力ノードと、
この電力ノードを介して供給された電力の消費を表す電力消費データを生成するための電力消費モニタと、
を備えることを特徴とするプロセッサモジュール。
【請求項２】
プログラマブル乗算器モードを有するクロック乗算器をさらに備え、前記電力消費モニタは、前記乗算器のモードを表すデータを前記電力消費データに関連付けることを特徴とする請求項１に記載のプロセッサモジュール。
【請求項３】
前記実行ユニットは、複数の実行モードを有し、前記電力消費モニタは、前記実行モードに対応する構成データを前記電力消費データに関連付けることを特徴とする請求項１に記載のプロセッサモジュール。
【請求項４】
前記実行ユニット及び前記電力モニタが規定される集積回路をさらに備えることを特徴とする請求項１に記載のプロセッサモジュール。
【請求項５】
キャリアをさらに備え、このキャリアは、前記実行ユニットを組み込む第１の集積回路と、前記電力消費モニタを有する第２の集積回路とを有することを特徴とする請求項１に記載のプロセッサモジュール。
【請求項６】
プロセッサモジュールが、このプロセッサモジュール自身の電力の消費を表す電力消費データを生成すること、及び
前記電力消費データの関数として前記プロセッサのモードを選択すること、
とを含むことを特徴とする方法。
【請求項７】
前記モードは、命令サイクルの継続期間に影響を与えることを特徴とする請求項６に記載の方法。
【請求項８】
前記モードは、前記プロセッサモジュールによって達成される並列性に影響を与えることを特徴とする請求項６に記載の方法。
【請求項９】
前記電力消費データが警告判定基準を満たす場合に警告を出すことをさらに含むことを特徴とする請求項６に記載の方法。
【請求項１０】
前記判定基準はプログラミング可能であることを特徴とする請求項９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータに関し、より詳細には、コンピュータのコンピュータプロセッサモジュールに関する。この明細書では、「従来技術」というラベルが付けられた関連技術は、公認された従来技術であり、「従来技術」というラベルが付けられていない関連技術は、公認された従来技術ではない。
【背景技術】
【０００２】
コンピュータは、通常、プロセッサ、ソリッドステートメモリ及びディスクベースのメモリ、入出力デバイス、並びに入出力デバイスのインターフェースを含む。その上、多くのコンピュータは、拡張可能であり、且つ／又は、アップグレード可能である。したがって、コンピュータには、通常、コンピュータの初期構成においてコンピュータにより必要とされる最大電力を取り扱うことができるだけでなく、追加電力を必要とし得る追加されたコンポーネント及びアップグレードされたコンポーネントの余裕も可能にする電源装置が設けられる。一般に、コンピュータの電源装置は、事前にインストールされたコンポーネントに必要とされる最大電力に、追加されるコンポーネント及びアップグレードされるコンポーネントのマージンを加えた合計を取り扱うように選択することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明の過程において、すべてのコンポーネントが常に最大電力で動作されるとは限らないので、最大の要求を満たす電力を配分することは、無駄の多いものとなる可能性があることが認識された。これは、一部の製造者が、実際の最大所要電力よりも高い公称最大所要電力を割り当てて、たとえば、電力が不十分であるために障害が発生した時の責任を回避するような場合にはなおさらそうである。
【課題を解決するための手段】
【０００４】
したがって、本発明は、特許請求の範囲で定義されるように、電力消費の監視を伴うプロセッサモジュールを提供する。これによって、プロセッサにより消費される実際の電力を動的に求めることが可能になる。公称定格とは対照的に、実際の電力に関する情報によって、電力の配分に必要な許容範囲が削減される。放熱は電力消費に関連するので、本発明によって、熱を除去するためのより適度な備えも可能になる。
【０００５】
本発明は、実際の電力消費データに備えるので、公称電力定格のみの使用、理論的な電力消費値のみの使用、さらには設計及び／又は検証時に決定される経験的データのみの使用で利用可能になる電力消費データよりも正確な電力消費データを提供する（電力消費はデバイスの寿命にわたって変化する可能性があるので）。本発明の一定の実施の形態によって、電力消費が高すぎる時に電力消費を削減する動作を取ることが可能になる。たとえば、いくつかのプロセッサのクロックレートを削減して、それらのプロセッサの電力消費を下げることができる。これらの実施の形態によって、電力の配分の許容範囲をさらに削減することが可能になる。一般に、本発明は、（たとえば、電源装置及び熱除去に関する）コストと機能との間のより都合の良いバランス（トレードオフ）を提供する。本発明のこれらの特徴及び他の特徴並びにこれらの利点及び他の利点は、以下の説明から、及び、添付図面を参照することにより明らかである。
【発明を実施するための最良の形態】
【０００６】
本発明によって提供される多くの可能なシステムの１つであるホストコンピュータシステムＡＰ１は、プロセッサモジュール３０及び４０、システムバス１１、ファームウェア１３、入出力（Ｉ／Ｏ）デバイス１５、並びにメモリ１７に加えて、当業者により理解されるような他のコンポーネントも備える。メモリ１７は、オペレーティングシステム２１、他のプログラム２３、及びデータ２５を記憶する。メモリ１７には、ソリッドステートメモリ及びディスクベースのメモリの双方が含まれる。ファームウェア１３は、電源投入オペレーションをガイドし、システムＡＰ１の低レベルの機能を提供する。Ｉ／Ｏデバイス１５は、ネットワーク、他のデバイス、及び人間（たとえば、キーボード及びディスプレイを介して）とのインターフェイスに備える。
【０００７】
プロセッサモジュール３０は、実行ユニット３１、命令デコーダ３３、レジスタ３５、クロック乗算器３７、及び電力モニタ３９に加えて、当業者により理解されるような他の機能コンポーネントも備える。プロセッサモジュール３０は、たとえば、オペレーティングシステム２１及びプログラム２３のプログラム命令に従ってデータを操作する。これらの命令は、命令デコーダ３３によって復号され、実行ユニット３１によって実行される。実行ユニット３１は、命令を並列に実行できるように複数の機能サブユニットを含むことができる。レジスタ３５は、実行ユニット３１によって操作されているデータの短期ストレージを提供する。
【０００８】
プロセッサモジュール３０のさまざまなコンポーネントによって行われるオペレーションは、クロック乗算器３７によって分配されるクロック信号により同期される個別のステップで実行される。クロック乗算器３７は、一定のクロック周波数を有するシステムクロック信号を受け取って、内部クロック信号を導き出す。この内部クロック信号は、通常、互いに対する所定の位相においてシステムクロック周波数の単純な倍数である。
【０００９】
電力モニタ３９は、プロセッサモジュール３０への電源装置及び接地源に接続されて、プロセッサモジュール３０による電力消費を監視する。実際には、多くの電源ライン及び接地ラインが存在し得る。実施の形態に応じて、すべての電源ライン及び接地ラインを監視することもできるし、それらの一部のみを監視することもできる。電力モニタ３９は、電力消費を時間の関数として求め、所定の時刻の電力消費を、１年の現時点、及び、クロック乗算器３７によって適用される乗算器等の現在の構成に関連付ける。電力消費データは、たとえば、バックグラウンドで実行されているシステム資源モニタといったプログラム命令に応答して、実行ユニット３１を介してアクセス可能である。
【００１０】
電力消費データが、対処する必要のある問題を示している場合、電力モニタ３９は、たとえば割り込みの形で警告を発することができる。警告を発する条件は、実行ユニット３１を介してプログラミングすることができる。たとえば、電力モニタコンソールプログラムによって、ユーザは、それを超えた時に警告を出させる電力消費しきい値を指定することが可能になる。状況に応じて、警告の結果、自動保護動作又は自動是正動作を行うこともできるし、このような動作が必要とされることをユーザに通知することもできる。
【００１１】
オペレーションが実行される速度は、システムクロックレートを調整することによって制御することもできるし、クロック乗算器３７により適用される異なる基本倍数を選択することによって制御することもできる。通常、クロックレートが高くなることは、電力消費が多くなることを意味し、したがって、クロックレートを削減することによって、電力を節減でき、放熱を削減することができる。また、電力消費は、実行ユニット３１の１つ又は２つ以上の実行サブユニットを停止することによっても削減することができる。もちろん、これは、性能ペナルティを招く可能性がある。電力モニタ３９がどのように構成されるかに応じて、クロックレートの削減や実行サブユニットの停止等の動作（たとえば、「モード」入力を使用する）を自動的に行うこともできるし、人間の介入により行うこともできる。
【００１２】
プロセッサモジュール３０は、実行ユニット３１、命令デコーダ３３、レジスタ３５、クロック乗算器３７、及び電力モニタ３９を組み込む単一の集積回路を有する集積回路パッケージである。これとは対照的に、プロセッサモジュール４０は、図２にさらに詳細に示すが、プロセッサ４２及び別個の電圧レギュレータ４４を備える。これらは共にキャリア４６に実装されている。キャリア４６は、たとえば、ホストコンピュータシステムＡＰ１のマザーボード上の差込用ソケット（mating socket）に差し込むことができるドーターボードである。プロセッサ４２は、オンチップ電力モニタが存在しない点を除いて、プロセッサモジュール３０のコンポーネントに対応するコンポーネントを含む集積回路パッケージである。
【００１３】
プロセッサモジュール４０の場合、電力モニタ４９は、電圧レギュレータ４４に内蔵されている。電圧レギュレータ４４は、キャリア４６の導体を介してプロセッサ４２に正確な電圧を提供する。電圧レギュレータが、専らプロセッサ４２にのみ電力を供給することに使用されるので、組み込まれた電力モニタは、ホストコンピュータシステムＡＰ１の他のコンポーネントとは独立にプロセッサ４２による電力消費を監視することができる。
【００１４】
電力モニタ４９は、プロセッサ４２に接続されて、プロセッサ４２から構成情報を受け取る。この構成情報は、クロック乗算器の設定を含むことができ、どの実行サブユニットがアクティブであるかを示すことができる。これに加えて、プロセッサ４２は、電力モニタ４９から電力消費データを読み出すことができ、たとえば警告しきい値といった構成データを電力モニタ４９に書き込むことができる。
【００１５】
電力モニタ４９は、電力レギュレータ４４に内蔵されたフィールドプログラマブルゲートアレイ（ＦＰＧＡ）とすることができる。他の実施の形態では、電力モニタは、たとえばＦＰＧＡ又は特定用途向け集積回路（ＡＳＩＣ）といった独立の集積回路とすることができる。たとえば、プロセッサ及び電圧レギュレータを共通のキャリア上に有する電源モジュールでは、電力モニタを、キャリアにおける、電圧レギュレータとプロセッサとの間に電気的に実装することができる。
【００１６】
多くの電源ライン及び接地ラインが存在する可能性があり、電源ラインは異なる電圧である可能性があるという点で、図１及び図２の電源及び接地の表現は簡略化されている。電力モニタ３９及び４９は、このようなすべてのラインを監視することもできるし、ラインの一部を監視することもできる。たとえば、全体の電力消費の正確な表現を提供するのに、単一の接地ラインで十分な場合もあるし、既存の電源ラインのサブセットで十分な場合もある。
【００１７】
本発明によって提供される多くの可能な方法の１つが、図３にフローチャート化されている。方法Ｍ１は、電力消費が監視される方法セグメントＳ１で開始する。電力モニタ３９及び４９は、共に、自身が監視する各電源ラインについて消費される電力のアナログ表現を生成する。このアナログ表現は、デジタルデータに変換される。
【００１８】
方法セグメントＳ２では、生の電力監視データが操作され、関連付けられ、そして記憶される。電力モニタ３９及び４９は、電力消費に対応するアナログ信号を生成するセンサを備える。オプションとして、これらの信号は、アナログ領域において、センサ間で結合することができる。アナログ／デジタル変換後、コンテクストデータ（context data）を電力消費データに関連付けることができる。たとえば、電力消費対時刻の測定を行うことができるように、電力消費データにタイムスタンプを付けることができる。電力モニタ３９及び４９は、タイムスタンプデータを提供するための時期クロック（time-of-year clock）を含む。これに加えて、プロセッサ構成データ（たとえば、実行ユニット３１を介して提供される）を電力データに関連付けることもできる。たとえば、乗算器の設定、及び、実行サブユニットの駆動／非駆動ステータスを電力設定に関連付けることができる。図示した実施の形態では、電力データ及び関連付けられたデータは、電力モニタ３９及び４９内にローカルに記憶される。
【００１９】
方法セグメントＳ３では、近時に取得された電力データが警告判定基準と比較され、判定基準を満たした場合に、警告が出される。この判定基準は、複数の要素で構成することができる。たとえば、異なるしきい値を、異なる可能なプロセッサ構成又はクロック乗算器に割り当てることができる。このように、実行ユニット３１がフルに駆動された場合に予想される電力消費レベルは、実行ユニット３１のサブユニットの一部が停止された場合の問題を示すものとみなすことができる。同様に、高いクロック乗算器に関連付けられた電力消費レベルは、乗算器が低く設定される時の警告となる可能性がある。警告は割り込みの形にすることができる。或いは、他の警告信号を使用することもできる。
【００２０】
方法セグメントＳ４では、解析のために、電力モニタに記憶された電力データが、ホストコンピュータシステムへ送信される。通常、この転送は、たとえばオペレーティングシステム２１に関連するバックグラウンドで実行されるソフトウェアプログラムによって統制される。或いは、ファームウェア１３が、電力データを管理することもできる。また、電力データは、ファームウェア及びソフトウェアの組み合わせによって管理することもできる。転送の１つの目的は、限られたローカルストレージを解放して、より多くの近時の電力データを取り込む一方、古い電力データをアーカイブに入れることである。この定型化したデータ収集は、故障の予測につながる可能性のある解析、及び、その後に続く潜在的な故障に対処する動作も含むことができる。また、警告の基になったものを特定することができ、且つ、あらゆる関連した問題を診断することができるように、データ転送は、方法セグメントＳ３で出された警告信号に応答して行うこともできる。
【００２１】
解析が方法セグメントＳ５で実行される。各電力モニタについて、データは、傾向分析（trending）及び他の統計的解析を受けることができる。さらに、電力モニタ間でデータを結合することができ、それによって、たとえば、プロセッサモジュール３０及び４０のその全電力消費を求めて、それらのプロセッサに配分された電力しきい値と比較することができる。他のプロセッサモジュールが存在する場合、監視データ（又は、たとえば公称値を使用するといった別の方法で取得されたデータ）をモジュール間で結合して電力の配分を行うことができる。この結合は、メモリやＩ／Ｏデバイス等の他のタイプのコンポーネント間に拡張して、電力消費の総合的な測定を得ることができる。より総合的な測定によって、利用可能な電力のより効率的な割り当てが可能になる。
【００２２】
調整及び是正動作を方法セグメントＳ６で行うことができる。たとえば、ステップＳ５で実行された解析が、電力予算を超えることを示す場合、乗算器又はプロセッサの構成を変更して、電力消費を削減することができる。逆に、電力消費が十分予算内にある場合、性能を向上させるようにプロセッサを構成することができる（プロセッサがまだ最大能力で動作していない場合）。マルチプロセッサシステムでは、事前にアクティブなプロセッサモジュールが予算内にある場合、追加のプロセッサモジュールを駆動することができる。
【００２３】
解析が、問題の存在又は可能性を示す場合、方法セグメントＳ６が、保護動作及び／又は是正動作を提供する。ほとんどの場合、これは、ユーザ又は管理者へ通知を送信することを含むことができる。一方、場合によっては、ホストコンピュータシステムＡＰ１は、自動的に動作することができる。第３の可能性は、ホストコンピュータシステムＡＰ１とネットワーク接続された自動化管理システムへ通知を送信することである。この場合、管理システムは、保護動作及び／又は是正動作を行う。極端な場合には、ホストコンピュータシステムＡＰ１をシャットダウンして、修復及び／又はコンポーネントの取り替えを行うことができる。それ以外に、オペレーションの継続を可能にすると同時に、プロセッサモジュールの構成に或る変更を実施することもできる。明らかに、一連の可能な動作を自動的に取ることもできるし、人間の介入によって取ることもできる。
【００２４】
本発明は、シングルプロセッサシステム及びマルチプロセッサシステムに備える。いずれの場合も、シングルコアプロセッサ及びマルチコアプロセッサが提供される。各コア又は各プロセッサについて電力モニタを設けることもできるし、１つの電力モニタを２つ又は３つ以上のプロセッサによって共有することもできる。
【００２５】
電力モニタは、「オンボード」とする、すなわち、プロセッサに内蔵することもできるし、「アウトボード」とする、すなわち、プロセッサの外部とすることもできる。後者の場合、モニタは、共通の集積回路上の別個の存在とすることもできるし、プロセッサが規定される集積回路から分離することもできる。分離された場合、モニタをプロセッサと共にパッケージ化することもできるし、プロセッサパッケージから分離することもできる。プロセッサモジュール４０と同様に、モニタを、電圧レギュレータ等の別個のデバイスに内蔵することもできるし、独立のコンポーネントとすることもできる。
【００２６】
本発明は、監視されているプロセッサモジュールとのさまざまなタイプの通信を提供する。たとえば、従来のプログラム命令を使用して、電力モニタを構成でき、電力モニタにプロセッサ構成を示すことができ、且つ、電力モニタにより記憶されたデータにアクセスできるように、電力モニタに関連付けられたメモリは、アドレス空間内とすることもできるし、プロセッサのレジスタ空間内とすることもできる。或いは、データ通信が、命令サイクルの間、プログラムと競合しないように、電力モニタは、ファームウェアに対する別個のインターフェースを有することもできる。
【００２７】
本発明は、さまざまな方法で監視される電力消費以外のパラメータ、及び電力消費データと結び付けられた結果に備える。たとえば、温度を監視して、局所的な高熱エリアを特定することができる。高温領域の電力消費しきい値を下げて、さらなる熱の増加を制限することができる。電力の予算の制約のためにプロセッサの性能を限定しなければならないシステムでは、全体の性能にペナルティを科すことなく、利用可能な処理性能をより低温のエリアのプロセッサへシフトさせることができる。電力消費と性能との間でより聡明なバランス（トレードオフ）を取れるように、性能を監視することができる。本発明におけるこれらの変形及び他の変形並びに本発明に対するこれらの変更及び他の変更は、添付の特許請求の範囲によって定義された本発明により提供される。
【図面の簡単な説明】
【００２８】
【図１】本発明の範囲内にある多くのプロセッサモジュールの１つを組み込んだコンピュータシステムの概略図である。
【図２】図１のシステムに組み込み可能な多くの可能なプロセッサモジュールのうちの１つの細部の概略図である。
【図３】本発明の範囲内にある多くの方法のうちの１つのフローチャートである。
【符号の説明】
【００２９】
ＡＰ１    ホストコンピュータシステム
１１      バス
１３      ファームウェア
１５      入出力
１７      メモリ
２１      オペレーティングシステム
２３      プログラム
２５      データ
３０      プロセッサモジュール
３１      実行ユニット
３３      命令デコーダ
３５      レジスタ
３７      クロック乗算器
３９      電力モニタ
４０      プロセッサモジュール
４２      プロセッサ
４４      電圧レギュレータ
４６      キャリア
４９      電力モニタ
【図１】
2007042091.tif 000003
【図２】
2007042091.tif 000004
【図３】
2007042091.tif 000005