(57)【特許請求の範囲】
【請求項１】
電力／エネルギー配分を制御するシステムであって、
主ポリシー設定および制御サーバと、
前記主ポリシー設定および制御サーバに結合されたネットワークルータと、
前記ルータに結合された、複数の電力管理されるドメイン／クラスタと、
を備え、
前記主ポリシー設定および制御サーバは、予め決められたインターバルにおいて、前記電力管理されるドメイン／クラスタのそれぞれにエネルギー目標を配分することにより、前記電力管理されるドメイン／クラスタのそれぞれが、前記エネルギー目標を満たすよう、各自のエネルギー消費を管理できるようにし、
各予め決められたインターバルの終わりにおいて、前記エネルギー目標と、フィードバックループを介して受け取った現実の電力消費出力とに基づき誤差信号が決定されて、次のインターバルにおける次のエネルギー目標が提供される、システム。
【請求項２】
前記電力管理されるドメイン／クラスタのそれぞれは、少なくとも１つのローカル設定サーバと、複数の構成ノードとを有し、前記構成ノードのそれぞれは、サーバと、ワークステーションと、ラップトップと、周辺構成要素と、他のネットワーク化された構成要素とを有し、前記少なくとも１つのローカル設定サーバは、重み付けされたエネルギー目標を受け取って、前記複数の構成ノード内の電力を動的に配分する、請求項１に記載のシステム。
【請求項３】
前記少なくとも１つのローカル設定サーバは、前記電力管理されるドメイン／クラスタ内の特定の構成要素の電力状態を遷移させることにより、前記重み付けされたエネルギー目標を満たす、請求項２に記載のシステム。
【請求項４】
前記電力管理されるドメイン／クラスタのぞれぞれは、物理的近さ、ネットワーク距離、配備タイプ、アプリケーションタイプの少なくとも１つに基づく、請求項１から３のいずれか１項に記載のシステム。
【請求項５】
前記電力管理されるドメイン／クラスタのそれぞれは、インフラまたはデータセンター、ワークステーション、ラップトップ、および、他の構成要素におけるサーバのラックを有する、請求項１から４のいずれか１項に記載のシステム。
【請求項６】
電力管理されるドメイン／クラスタには、予め決められたインターバルごとに、前記エネルギー目標の一部分が割り当てられる、請求項１から５のいずれか１項に記載のシステム。
【請求項７】
前記電力管理されるドメイン／クラスタのぞれぞれは、インバンドＯＳ（オペレーティングシステム）デーモン、ファームウェア、または、アウトオブバンドベースボード管理コントローラ（ＢＭＣ）を介して電力／エネルギー消費を動的に監視する、請求項１から６のいずれか１項に記載のシステム。
【請求項８】
前記電力管理されるドメイン／クラスタのそれぞれは、複数のノードを有し、それぞれのノードは、１つ以上の構成要素を有し、それぞれの構成要素は、前記電力管理されるドメイン／クラスタのそれぞれがエネルギー目標を満たすために利用することが可能な複数の電力設定を提供する、複数の電力状態を有する、請求項１から７のいずれか１項に記載のシステム。
【請求項９】
前記複数の電力状態は、Ｓ状態、Ｐ状態、Ｃ状態、および、Ｄ状態を含む、請求項８に記載のシステム。
【請求項１０】
前記電力管理されるドメイン／クラスタのそれぞれは、各自の電力設定を再設定して、予め決められたインターバルごとに集計されたエネルギー目標を達成する、請求項１から９のいずれか１項に記載のシステム。
【請求項１１】
前記複数の電力管理されるドメイン／クラスタは、電力を調整して再配分する複数の制御システムを有し、前記複数の制御システムは、インフラレベル制御システム内で入れ子にされ、前記インフラレベル制御システムは、電力レベルを調整して前記複数の電力管理されるドメイン／クラスタのそれぞれに再配分する、請求項１から１０のいずれか１項に記載のシステム。
【請求項１２】
電力配分をコンピュータにより管理する方法であって、
インフラを初期化する段階と、
インフラレベル制御システムによりエネルギー目標を受け取って、前記エネルギー目標を満たすよう、前記インフラの電力設定を適合させる段階と、
誤差を決定する段階と、
前記誤差に基づき、次の前記エネルギー目標を調整する段階と、
前記調整されたエネルギー目標をシステムプラントに配分することによって、前記システムプラントが、前記システムプラントの前記エネルギー目標を満たすよう、前記インフラ内の前記システムプラントに含まれる特定の構成要素の電力状態を遷移させて、電力消費を動的に管理できるようにする段階と、を備え、
前記システムプラントは複数の電力管理されるドメイン／クラスタを含み、
前記調整された前記エネルギー目標をシステムプラントに配分することによって、前記システムプラントが、前記システムの次の前記エネルギー目標を満たすよう、前記インフラ内の前記システムプラントに含まれる特定の構成要素の電力状態を遷移させて、電力消費を動的に管理できるようにする段階は、
前記調整されたエネルギー目標を受け取る段階と、
前記調整されたエネルギー目標を重み付けする段階と、
前記調整されて重み付けされた次のエネルギー目標と、フィードバックループによって提供される最近のインターバルにおける、前記電力管理されるドメイン／クラスタによって消費される電力とに基づき、ローカル誤差を決定する段階と、
を有する方法。
【請求項１３】
インフラを初期化する段階は、前記インフラ内の構成要素をオンにして、前記システムプラント内の電力管理される各々の前記ドメイン／クラスタの重み付け係数を決定する段階を含む、請求項１２に記載の方法。
【請求項１４】
前記誤差は、前記エネルギー目標と、前記インフラレベル制御システムの最近のインターバルにおける実際の電力消費と、に基づく、請求項１２又は１３に記載の方法。
【請求項１５】
前記調整されたエネルギー目標をシステムプラントに配分することによって、前記システムプラントが、前記システムの前記エネルギー目標を満たすよう、前記インフラ内の特定の前記システムプラントに含まれる構成要素の電力状態を遷移させて、電力消費を動的に管理できるようにする段階は、
前記ローカル誤差を調整して前記電力管理されるドメイン／クラスタのそれぞれに最適なエネルギー目標を提供する段階と、
前記電力管理されるドメイン／クラスタのぞれぞれの前記最適なエネルギー目標を満たすよう、前記特定の構成要素の前記電力状態を遷移させる段階と、
を含む、請求項１２から１４のいずれか１項に記載の方法。
【請求項１６】
前記電力管理されるドメイン／クラスタのそれぞれの実際の電力管理されるドメイン／クラスタ出力電力を決定する段階と、
前記インフラレベル制御システムのためのフィードバックとして用いられるよう、前記実際の電力管理されるドメイン／クラスタ出力電力のそれぞれを集計する段階と、
をさらに備える、請求項１５に記載の方法。
【請求項１７】
前記電力管理されるドメイン／クラスタのぞれぞれの前記最適なエネルギー目標を満たすよう、前記特定の構成要素の前記電力状態を遷移させる段階は、前記特定の構成要素のＳ状態、Ｐ状態、Ｃ状態、および、Ｄ状態を遷移させる段階を含む、請求項１５又は１６に記載の方法。
【請求項１８】
コンピュータに、
インフラを初期化する段階と、
インフラレベル制御システムによりエネルギー目標を受け取って、前記エネルギー目標を満たすよう、前記インフラの電力設定を適合させる段階と、
誤差を決定する段階と、
前記誤差に基づき、次の前記エネルギー目標を調整する段階と、
前記調整されたエネルギー目標をシステムプラントに配分することによって、前記システムプラントが、前記システムプラントの前記エネルギー目標を満たすよう、前記インフラ内の前記システムプラントに含まれる特定の構成要素の電力状態を遷移させて、電力消費を動的に管理できるようにする段階であって、
前記システムプラントは複数の電力管理されるドメイン／クラスタを含み、
前記調整されたエネルギー目標を受け取る段階と、
前記調整されたエネルギー目標を重み付けする段階と、
前記調整されて重み付けされたエネルギー目標と、フィードバックループによって提供される最近のインターバルにおける、前記電力管理されるドメイン／クラスタによって消費される電力とに基づき、ローカル誤差を決定する段階と、
を有する段階と、
を実行させるためのプログラム。
【請求項１９】
インフラを初期化する段階は、前記インフラ内の構成要素をオンにし、各々の前記システムプラント内の電力管理される各々の前記ドメイン／クラスタの重み付け係数を決定する段階を含む、請求項１８に記載のプログラム。
【請求項２０】
前記誤差は、前記エネルギー目標と、前記インフラレベル制御システムの最近のインターバルにおける実際の電力消費と、に基づく、請求項１８又は１９に記載のプログラム。
【請求項２１】
前記調整されたエネルギー目標をシステムプラントに配分することによって、前記システムプラントが、前記システムプラントの前記エネルギー目標を満たすよう、前記インフラ内の特定の前記システムプラントに含まれる構成要素の電力状態を遷移させて、電力消費を動的に管理できるようにする段階は、
前記ローカル誤差を調整して前記電力管理されるドメイン／クラスタのそれぞれに最適なエネルギー目標を提供する段階と、
前記電力管理されるドメイン／クラスタのぞれぞれの前記最適なエネルギー目標を満たすよう、前記特定の構成要素の前記電力状態を遷移させる段階と、
をさらに含む、請求項１８から２０のいずれか１項に記載のプログラム。
【請求項２２】
前記コンピュータに、
前記電力管理されるドメイン／クラスタごとに、実際の電力管理されるドメイン／クラスタ出力電力を決定する段階と、
前記インフラレベル制御システムのためのフィードバックとして用いられるよう、前記実際の電力管理されるドメイン／クラスタ出力電力のそれぞれを集計する段階と、
をさらに実行させる、請求項２１に記載のプログラム。
【請求項２３】
前記電力管理されるドメイン／クラスタのぞれぞれの前記最適なエネルギー目標を満たすよう、前記特定の構成要素の前記電力状態を遷移させる段階は、前記特定の構成要素のＳ状態、Ｐ状態、Ｃ状態、および、Ｄ状態を遷移させる段階を含む、請求項２１又は２２に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概してエネルギー消費に関する。より詳しくは、本発明は、大規模な情報技術（ＩＴ）データセンターまたはＩＴインフラにおいて、エネルギー消費を確定して動的に制御するシステムおよび方法に関する。
【背景技術】
【０００２】
大規模なＩＴインフラ、および、データセンターでは、システムの電力消費は、厳密にも、おおざっぱにも制御されている。厳密な制御の一例は、プロセッサを低電力のＰ状態（プロセッサのパフォーマンス状態）に遷移させるＤＶＦＳ（ダイナミックな電圧と周波数のスケーリング）を用いることを含む。おおざっぱな制御は、マシン、または、マシンラックの全体をオフにすることを含みうる。これらのアプローチは、個々のプラットフォーム内の構成要素ごと、または、インフラ全体といった異なるレベルでの管理ポリシーに基づく電力削減を実現する。ポリシーは、異種のプラットフォームに対して中央部から指示される。そして、地理的に電力が制限される地域では、コンピュータのインフラを収容する場所に配給されうる電力量に上下限があり、そんな地域の保守的なデータセンターは、最悪の場合のシステム電力消費量の予測に基づいて、限られた数のシステムしか購入しない。これらのタイプの制御システムの判断力を欠いた配備は、パフォーマンスの損失を招き、最悪の場合、エネルギーコストを増大させて信頼性を損なう。
【図面の簡単な説明】
【０００３】
本願明細書に組み込まれて明細書の一部をなす添付の図面は、本発明の実施形態を示し、また、説明を伴い、本発明の原理を説明する役目を果たし、さらに、当業者が本発明を作製して使用できるようにする。図面では、同様の参照番号は、通常、同一の、機能的に類似した要素を示す。対応する参照番号の左側の桁が示すのは、要素が最初に現れる図面の番号である。
【０００４】
【図１】データセンターまたはＩＴインフラ全体の、ピーク電力消費対時間のパーセンテージを示す典型的なグラフである。
【０００５】
【図２】現在のＩＴインフラおよび／またはデータセンターにおける電力状態を制御する単純なモデルを示す典型的な図である。
【０００６】
【図３】本発明の一実施形態における、電力状態を制御する電力ドメイン／クラスタモデルを示す典型的な図である。
【０００７】
【図４】本発明の一実施形態における、インフラの電力／エネルギー消費を動的に管理する多段階制御システムを示す典型的な図である。
【０００８】
【図５】本発明の一実施形態における、インフラの電力／エネルギー消費を動的に管理する方法を示す典型的なフローチャートである。
【０００９】
【図６】本発明の一実施形態における、システムプラントの電力／エネルギー消費を動的に管理する方法を示す典型的なフローチャートである。
【００１０】
【図７】記載された実施形態の側面が用いられる典型的なコンピュータシステムを示すブロック図である。
【発明を実施するための最良の形態】
【００１１】
本発明は、特定の用途のための例示的実施形態を参照して説明されるが、本発明は、それに限定されないものとする。本願明細書における教示に触れる機会のある当業者あれば、追加の変形例および用途も理解できるであろうし、本発明の実施形態が非常に有益であるその範囲内、および、追加の分野の実施形態も理解できよう。
【００１２】
明細書において、本発明の「１つの実施形態」、「一実施形態」、または、「他の実施形態」への言及は、実施形態に関連して記載される特定の特徴、構造、または、特性が本発明の少なくとも１つの実施形態に含まれることを意味する。したがって、明細書を通じて随所に見られる「１つの実施形態において」というフレーズは、必ずしもすべて同じ実施形態に言及しているわけではない。
【００１３】
本発明の実施形態は、ピアシステムのネットワークをグループ化することすることによって、データセンターまたはＩＴインフラ全体における電力中枢ドメインおよび／またはクラスタを確定して管理し、エネルギー目標を動的に集計するシステムおよび方法を目的とする。このようなネットワーク化された構成は、電力管理されるドメイン／クラスタ内に電力／エネルギー目標を中継するために費やされる通信オーバーヘッドを減少させ、管理およびポリシー調整サーバ（すなわち、サーバを管理するサーバ）における消費を必要最小限に留める。例えば、マルチキャスティング、または、いくつかの他の一対多の通信機構を介し、異種のプラットフォームを中枢的に制御しかつ配備することに代わり、エネルギー目標は、外部で決定された測定基準に基づき、それぞれ電力管理されるドメイン／クラスタに配分される。それぞれ電力管理されるクラスタ内では、全体のエネルギー割当量は、すべてのノードに配分され、全体的な目標エネルギー割当量が達成すると、クラスタ内のノードに移管する。その場合、例えば、ＤＶＦＳ、クロックゲーティング、未使用のハードウェアコンポーネントのオフライン化などの高性能コンポーネントまたはシステムレベルのパワーマネジメント技術が用いられうる。
【００１４】
本発明の実施形態は、大規模なデータセンター、および、ＩＴインフラに基づくが、本発明は、そのような大規模なデータセンターおよびＩＴインフラでの使用に限定されない。他の小規模なデータセンターおよびＩＴインフラでも同等のシステムのネットワークのグループ化において価値を見出すことができ、電力管理されるドメインおよび／またはクラスタを確立してエネルギー目標を動的に集計させうる。
【００１５】
本発明の実施形態は、例えば、物理的移動、重大な障害などによって、システムがいつでもネットワークに出入りするなど、電力管理されるドメイン／クラスタにおける変化に対し、巧みにかつ自動的に規模を拡大・縮小することによって、予め決められながらも設定可能なインターバルで電力／エネルギー割当量目標を最適化する多段階制御システムを提供する。換言すると、本発明の実施形態は、電力管理されるドメイン／クラスタにより消費されるエネルギーが全体の目標電力／エネルギー割当量を決して超えないようにすることによって、実際の電力容量を制御しかつリダイレクトすることを可能にする。
【００１６】
図１は、データセンターまたはＩＴインフラ全体における、ピーク電力消費対時間のパーセンテージを示す典型的なグラフ１００である。グラフ１００は、ピーク電力対時間１０２、実際の電力消費対時間１０４、および、目標電力対時間１０６の３つの異なる電力消費パターンを示す。ピーク電力対時間１０２は、最悪の場合の予測に基づく。このような予測は、通常、特定の環境に配備される個別のマシンすべてのＵＬ（アンダーライターズ・ラボラトリーズ社）銘柄の定格値の総和として計算される。目標電力対時間１０６は、ピーク電力対時間１０４の５０％に設定される。したがって、ピーク電力対時間１０２、および、目標電力対時間１０６は、時間を経ても一定である。実際の電力消費対時間１０４は、時間によって変化する。図１に示すように、実際の電力消費１０４は、最悪の場合のピーク電力１０２よりかなり小さい。事実、４１分間に、実際の電力消費１０４は、１回だけ１分間未満ピーク電力１０２に達する。そして、目標電力１０６を超えるのは３回だけで、３回分の合計時間は約１０分である。したがって、図に示すような４１分間のうちの約３０分間は、実際の電力１０４は、時間の約７５％は目標電力１０６以下であり、時間の約９９％はピーク電力１０２以下である。したがって、大規模かつ異種のシステム複合体全体のエネルギー消費を動的に管理する能力を考えると、組織は、実際の計算上の電力（システムの数および／または密度）は増やすかもしれないが、現実的な供給は、依然として、制御可能なエネルギー割当量の範囲内で行われる。
【００１７】
図２は、現在のＩＴインフラおよび／またはデータセンターにおける電力状態を制御する単純なモデルを示す典型的な図２００である。図２００は、主設定サーバ２０２と、ルータ２０４と、３つのシステム２０６ａ、２０６ｂ、および、２０６ｃを有するＩＴインフラおよび／またはデータセンターとを備える。主設定サーバ２０２は、ルータ２０４に結合される。ルータ２０４は、システム２０６ａ、２０６ｂ、および２０６ｃに結合される。図２には、インフラまたはデータセンターに対して３つのシステム２０６ａ、２０６ｂ、および、２０６ｃしか示されていないが、単なる例に過ぎない。インフラまたはデータセンターは、配備されるコンピュータインフラまたはデータセンターの規模に応じて、３より多いかまたは少ないシステムを有してもよい。
【００１８】
主設定サーバ２０２は、３つのシステム（２０６ａ、２０６ｂ、および、２０６ｃ）すべてに対して割り当てられた１つのルータ２０４を介してシステム２０６ａ、２０６ｂ、および、２０６ｃに電力を供給する。ルータ２０４は、インフラまたはデータセンターに割り当てられたエネルギー量をシステム２０６ａ、２０６ｂ、および、２０６ｃに伝搬する。各システム（２０６ａ、２０６ｂ、および、２０６ｃ）は、ＩＴインフラまたはデータセンター内に設置されたブレードまたはモジュラーサーバのラックを含む。各ラック内の各ブレードまたはモジュラーサーバは、適応可能なパワーマネジメント技術によってノードレベルのエネルギーポリシーに影響を及ぼすことが可能なルータ２０４を介してネットワーク経由でアクセスできる構成ノードを表す。例えば、システム２０６ａ、２０６ｂ、および、２０６ｃの３組の電力管理ラックすべてに対する総エネルギー割り当て量を１５０×１０６ジュールとすると、各システム２０６ａ、２０６ｂ、および、２０６ｃは、各構成ノード間に等しく割り当てられた５０×１０６ジュールを受け取る。現在のこのＩＴインフラおよび／またはデータセンターでは、（１）熱リスクに対して、（２）特定のタイプのアプリケーションに役立つか、または、（３）予め決められたサービス品質を必要とするかどうかに応じて、サーバセットごとに電力割り当て量を自動的に制限する方法はない。所定のＩＴインフラまたはデータセンターに対する総エネルギー割当量を最適化または制限するには、主設定サーバ２０２は、システム２０６ａ、２０６ｂ、および、２０６ｃのそれぞれにおける各構成ノードにポリシーを中継せざるを得ない。高密度で大規模なコンピューティング環境またはデータセンターを想定すると、このようなポリシー配分は、特に、高解像度制御を伴うネットワーク性能に悪影響を与えかねない。
【００１９】
本発明の実施形態は、大規模なＩＴインフラまたはデータセンター全体のエネルギー消費の動的管理を実現する。これは、電力管理されるドメイン／クラスタを用いて総システム電力を分類しかつ制御することによって為し得る。総システム電力の分類および制御は、環境を最も重視した設定可能な方法でシステムのクラスタ化されたサブセットによりなされる。換言すると、電力／エネルギー目標は、クラスタサブセットごとに設定されることにより、組織ごとに実施される配備ポリシーに適合する。例えば、クラスタ化は、アプリケーションベースの、コスト構造に対して効果的に関連する総実現パフォーマンスであってよい。また、クラスタ化は、特に、収容施設の熱消散要件に関連する日時の測定基準、または、物理的ローカリティに基づいてもよい。
【００２０】
図３は、本発明の一実施形態における、電力状態を制御する電力ドメイン／クラスタモデル３００を示す典型的な図である。電力／クラスタモデル３００は、主設定サーバ３０２と、ルータ２０４と、複数の電力ドメインまたはクラスタ３０４ａ、３０４ｂ、および、３０４ｃとを有する。主設定サーバ３０２は、ルータ２０４に結合される。ルータ２０４は、電力管理されるドメイン／クラスタ３０４ａ、３０４ｂ、および、３０４ｃに結合される。
【００２１】
主設定サーバ３０２は、電力／エネルギー目標を予め決められたインターバルで、個々の電力管理されるドメイン／クラスタ３０４ａ、３０４ｂ、および、３０４ｃに配分する。図３に示すように、ＩＴインフラは、３つの電力管理されるドメイン／クラスタ３０４ａ、３０４ｂ、および、３０４ｃに細別される。説明を簡単にすべく、本例では３つの電力管理されるドメイン／クラスタしか示していない。本発明の実施形態は、３つの電力管理されるドメイン／クラスタに限らない。事実、あらゆる大規模インフラに対して、３つより多い電力管理されるドメイン／クラスタ、または、３つより少ない電力管理されるドメイン／クラスタが実装されてよい。
【００２２】
電力管理されるドメイン／クラスタ３０４ａ、３０４ｂ、および、３０４ｃは、例えば、物理的近さ、ネットワーク距離、配備目的、アプリケーションタイプなど、ある状況におけるローカリティに基づくマシンの集合に過ぎない。電力管理されるドメイン／クラスタ３０４ａ、３０４ｂ、および、３０４ｃは、インフラまたはデータセンター、ワークステーション、ラップトップなどにおけるブレードまたはモジュラーサーバのラックを含むが、これらに限定されない。このような環境におけるほとんどのシステムは、例えば、ローカルなインストールが個別のマシンになされてアプリケーションがダウンロードされ、設定され、開始する、主設定サーバ３０２などのＩＴ設定サーバによって自立的に設定される。このようなインストール／設定は、主に、システムがインフラまたはデータセンターに入ると同時に行われる。
【００２３】
各電力ドメイン／クラスタ（３０４ａ、３０４ｂ、３０４ｃ）は、次のインターバルの目標電力／エネルギー消費量を割り当てられる。各電力ドメイン／クラスタ（３０４ａ、３０４ｂ、３０４ｃ）は、主設定サーバ３０２と同様に動作するローカル設定サーバ（明確に図示せず）も有する。ローカル設定サーバは、クラスタ固有のエネルギー目標をその構成ノードに中継する。そして構成ノードは、それらの設定を総目標エネルギー割当量を満たすよう適合させる。
【００２４】
図３に示すように、アプリケーションタイプ、日時測定基準、物理的ローカリティなどに基づき、異なる電力管理されるドメイン／クラスタに対して異なるエネルギーレベルが目標とされうる。例えば、１５０×１０６ジュールの総割当量が電力ドメインクラスタ３０４ａ、３０４ｂ、および、３０４ｃのすべてに割り当てられる。主設定サーバ３０２は、エネルギー目標を個別の電力ドメイン／クラスタ３０４ａ、３０４ｂ、および、３０４ｃに割り当てる。図に示す例では、所定のインターバルでの総目標エネルギーに関し、クラスタ３０４ａにはエネルギー目標の３３．３３％が割り当てられ、クラスタ３０４ｂにはエネルギー目標の１３．３３％が割り当てられ、クラスタ３０４ｃにはエネルギー目標の５３．３３％が割り当てられる。例えば、インフラが金融機関である場合、最大の目標エネルギーが割り当てられたクラスタ３０４ｃは、株式取引に使用されてよい。なぜなら、この業務を実行するのに必要とされるのは、遅延なしにベストパフォーマンスを提供することであるからである。一方、最少の目標エネルギーが割り当てられたクラスタ３０４ｂは、市場分析に用いられ、２番目に大きい目標エネルギーが割り当てられたクラスタ３０４ａは、他のすべての日常業務に用いられてよい。本発明の実施形態は、電力ドメイン／クラスタの割り当てを再設定することもできる。例えば、アメリカの市場は夜閉まっているので、夜のうちに市場分析を集中して行い、クラスタ３０４ｃが市場分析に割り当てられている間に、クラスタ３０４ｂが市場取引に割り当てられてもよい。また、１つのクラスタに割り当てられる目標電力／エネルギーの量を減らすこともでき、未使用の部分は、再利用するか、他のクラスタに移すか、または、何か他の方法で用いてもよい。本例では、市場分析をクラスタ３０４ｃに移動させる代わりに、夜間にクラスタ３０４ｃに割り当てられるエネルギー／電力を減らしてクラスタ３０４ｂに移動することによって、市場分析がヘビーな場合の性能要件を満たしている。
【００２５】
本発明の実施形態は、電力管理されるドメイン／クラスタ３０４ａ、３０４ｂ、および、３０４Ｃがそれらの電力／エネルギー消費を個々に動的に監視できるようにする。監視は、ＰＭバスなどのプロプラエタリまたは標準インターフェースを介して、インバンドまたはアウトオブバンドのベースボード管理コントローラ（ＢＭＣ）、あるいは、プロセッサ、メモリ、ネットワークコントローラなどの個別の構成要素と協働するソフトウェアモニタによって、行うことができる。電力ドメイン／クラスタ３０４ａ、３０４ｂ、および、３０４ｃのそれぞれは、各自のエネルギー消費をいくつかの設定可能な、または、予め決められたインターバルで中継する。電力ドメイン／クラスタ３０４ａ、３０４ｂ、および、３０４ｃの各ノードは、さまざまな構成要素に固有の動作レベルに基づき、例えば、Ｓ状態つまりシステム状態などの複数の電力状態と、Ｓ状態の範囲内における、例えばＰ状態つまりプロセッサパフォーマンス状態、Ｃ状態つまりプロセッサ電力状態、および、Ｄ状態つまりデバイス状態などの中間電力状態とを有する。
【００２６】
Ｓ状態つまりシステム状態は、例えば、システムがＳ０、Ｓ１、Ｓ２、Ｓ３などにある電力状態である。例えば、Ｓ０状態は、システムがオンであるシステム状態を指し、Ｓ３状態は、例えば、システムを完全にシャットダウンさせずにラップトップコンピュータを閉じた場合などのシステムがスタンバイにある状態を指し、Ｓ５状態は、システムのオフボタンを押すなどしてシステムがオフラインにあるシステム状態を指す。
【００２７】
Ｐ状態つまりプロセッサパフォーマンス状態は、プロセッサの供給電圧または周波数を変更できる。低電圧および／または周波数は、エネルギー消費を減少させ、パフォーマンスを落とすことに等しく、高電圧および／または周波数は、エネルギー消費を増大させてパフォーマンスを向上させることに等しい。
【００２８】
Ｃ状態つまりプロセッサ電力状態は、アイドル状態のときにプロセッサが移行する異なる電力状態である。Ｃ状態が増えると、レイテンシが増加する代償として、電力は節約できる。
【００２９】
Ｄ状態またはデバイス状態は、例えば、Ｉ／Ｏ（入出力）デバイスなどのシステムにおける他のいかなるデバイスのデバイス固有の電力設定である。このようなＩ／Ｏデバイスは、Ｉ／Ｏアダプタカード、外部メモリデバイスなどを含んでよいが、これらに限定されない。
【００３０】
システムが目標電力／エネルギー割当量に適合されうる利用可能な電力設定の範囲は、上記のシステム、プロセッサ、および、デバイス状態のすべてによって定められる。したがって、本発明の実施形態は、これらの状態を利用して多数の電力設定を提供することにより、目標電力／エネルギー割り当て量を得てよい。例えば、Ｐ状態遷移、または、さらにはＣ状態遷移の結果として、プロセッサが低電圧および周波数で動作する場合、Ｓ０状態にあるシステムは、電力消費を低下させてよい。これらの状態を利用する、それぞれ可能性のある電力設定は、特定のシステムの電力設定と称する。例えば、３０４ａ、３０４ｂ、および、３０４ｃなどの各電力ドメイン／クラスタの目標エネルギー消費に基づき、各電力ドメイン／クラスタは、その電力設定を再設定することによって、各インターバルの総目標エネルギー割当量を得ることができる。各インターバルの終わりにおいて、ローカル設定サーバは、全体の電力ドメイン／クラスタのエネルギー消費を集計する。目標電力／エネルギー割当量と、実際の電力／エネルギー割当量との間の誤差が決定され、次のインターバルの目標電力／エネルギー割当量が構成ノードに直接マルチキャストされるか、または、フィードバック駆動制御システムを用いてピアツーピア方式で中継される。サンプリングおよび制御周波数は、層または階層のレベル間で非対称であってよい。例えば、電力ドメイン／クラスタレベルの短い制御インターバルである、より密なインターバルを用いることにより、目標エネルギー割当量を満たすための正確さを高めることができるかもしれないが、制御オーバーヘッドを増大させる可能性もある。
【００３１】
本発明の実施形態は、多段階制御システムを用いて、大規模なデータセンターまたはＩＴインフラにおけるエネルギー消費を動的に制御できるようにする。図４は、本発明の一実施形態における、インフラの電力／エネルギー消費を動的に管理する多段階制御システム４００を示す典型的な図である。制御システム４００は、システムコントローラ４０４、システムプラント４０６、および、フィードバックループ４０８を有するインフラレベル制御システム４０２を備える。システムコントローラ４０４は、システムプラント４０６に結合され、システムプラント４０６の出力は、フィードバック信号４０８を介してシステムコントローラ４０４にフィードバックされる。インフラレベル制御システム４０２に対して許容される最大エネルギー消費は、単一のパラメータさえあれば変更できるように、インフラレベル制御システム４０２に対してシステムセットポイントまたはエネルギー目標が設定される。
【００３２】
インフラレベル制御システム４０２では、アドミニストレータによってエネルギー目標がいつでも変更できるようになっている。例えば、ＨＶＡＣ（換気空調設備）システムが故障するか、または、一連の環境制御システムが故障した場合、本発明は、人工的に低エネルギー目標を設定することにより、結果として生じた熱消散の広がりを抑えて、熱により誘発される、データ損失を招きうる異常なシャットダウンを確実に防ぐよう用いられてよい。
【００３３】
システムコントローラ４０４は、当該システムコントローラ４０４への入力に基づき、インフラ制御システム４０２に対する電力設定を管理する。システムコントローラ４０４への入力ｅ（ｔ）は、フィードバックループ４０８を用いて入力にフィードバックされるシステムプラント４０６の出力信号ｐ（ｔ）を引いたシステムセットポイント入力、または、エネルギー目標入力ｒ（ｔ）を含み、ｐ（ｔ）は、システムプラント４０６によって消費される実際の電力を示す。したがって、システムコントローラ４０４への入力ｅ（ｔ）は、エネルギー目標入力と、最近のシステムレベルインターバル（すなわちｅ（ｔ）＝ｒ（ｔ）−ｐ（ｔ）の間に消費される実際の電力との間の誤差を生じる誤差信号である。そして、システムプラント４０６に対するエネルギー目標入力を決定すべく、誤差信号ｅ（ｔ）が用いられる。
【００３４】
システムコントローラ４０４が動作して最適な変化率をもたらすことにより、平衡状態を得ることができる。すなわち、ゼロ（０）の誤差信号ｅ（ｔ）である。換言すると、システムコントローラ４０４は、誤差をなくす働きをする。システムコントローラ４０４は、比例制御器、比例積分調節器、比例積分微分制御器、または、変化する変数に追随するよう制御する他のいかなるタイプのコントローラであってもよい。
【００３５】
システムコントローラ４０４からの出力信号ｃ（ｔ）は、システムプラント４０６に供給される制御信号である。したがって、出力信号ｃ（ｔ）は、システムプラント４０６への入力エネルギー目標を提供する。
【００３６】
システムプラント４０６は、それぞれが重み付けモジュール４１２ａ、４１２ｂ、および、４１２ｃをもつ複数のノード４１０ａ、４１０ｂ、および、４１０ｃと、対応する個別の制御システム４１４ａ、４１４ｂ、および、４１４ｃとを有する。個別の制御システム４１４ａ、４１４ｂ、および、４１４ｃは、それぞれ、インフラレベル制御システム４０２と同様に動作する。重み付けモジュール、および、対応する個別の制御システムのそれぞれは、システムプラント４０６内で用いられる電力ドメイン／クラスタを表す。システムプラント４０６は、ドメインが重み付けされた３つの個別の制御システムを有するように示されているが、当業者であれば、ドメインが重み付けされた３つより多いまたは３つより少ない個別の制御システムを用いてもよく、また、ドメインが重み付けされた個別の制御システムの実際の数は、データセンターまたはＩＴインフラで用いられる電力ドメイン／クラスタの数と直接関係することがわかっているであろう。
【００３７】
ドメイン重み付けモジュール４１２ａ、４１２ｂ、および、４１２ｃによって、各電力ドメイン／クラスタは、すべての電力ドメイン／クラスタ間のシステムコントローラ４０４により配分される電力（出力電力ｃ（ｔ））に関連して重み付けされるようになる。したがって、ドメイン重み付けモジュール４１２ａ、４１２ｂ、および、４１２ｃは、システムへの電力の配分をデータセンターまたはＩＴインフラが支持できることによる、サービス品質のスキームを提供する。例えば、電力管理されるドメイン／クラスタ３０４ａ、３０４ｂ、および、３０４ｃは、図３に示すように、それぞれ３３．３３％、１３．３３％、および、５３．３３％の加重乗算を用いて総目標電力／エネルギーのドメインを重み付けする。
【００３８】
個別の制御システム４１４ａ、４１４ｂ、および、４１４ｃのそれぞれへの入力は、フィードバックループを介して提供される対応する電力ドメイン／クラスタ（制御システム４１４ａ、４１４ｂ、および、４１４ｃの出力）により消費される実際の電力を引いた重み付けされた目標電力／エネルギーレベルを示す誤差信号である。個別の制御システム４１４ａ、４１４ｂ、および、４１４ｃは、データセンター、または、ＩＴインフラにおける各電力ドメイン／クラスタに対するローカル電力設定を管理するために用いられる。各制御システム４１４ａ、４１４ｂ、および、４１４ｃは、ローカルコントローラ４１６ａ、４１６ｂ、および、４１６ｃと、ローカルシステムプラント４１８ａ、４１８ｂ、および、４１８ｃと、フィードバックループ４２０ａ、４２０ｂ、および、４２０ｃとを有する。ローカルコントローラ４１６ａ、４１６ｂ、および、４１６ｃは、上記システムコントローラ４０４と同様に動作し、ローカルシステムプラント４１８ａ、４１８ｂ、および、４１８ｃは、上記システムプラント４０６と同様に動作する。つまり、制御システム４１４ａ、４１４ｂ、および、４１４ｃは、ローカルコントローラ４１６ａ、４１６ｂ、および、４１６ｃからの入力に基づき、ローカルシステムプラント４１８ａ、４１８ｂ、および、４１８ｃの電力設定を管理する。
【００３９】
したがって、本発明は、各ローカル制御システムのローカルコントローラ出力が入れ子になった制御システム内の入力として用いられるよう、入れ子になった異なる有効範囲に基づく個別の制御システムを提供する。全体の制御システムの各段階では、各レベルは、システムのすべてにおける特定の構成要素の電力状態を遷移させるために用いる所与のエネルギー目標が与えられる。各ノードにおける電力状態の遷移は、ランタイムエージェントを用いたさまざまな方法に影響される。例えば、これは、ランタイムＯＳ（オペレーティングシステム）デーモン、ファームウェアを用いてインバンドで、または、ベースボード管理コントローラ（ＢＭＣ）を介してアウトオブバンドで実現しうる。
【００４０】
インフラレベル制御システム４０２の出力に関し、ｚドメインにおける入れ子になった制御システム間の相互作用を説明するために、一般変換関数４２２が示される。正式な制御理論に基づく本発明の実施形態によって、セットポイントにおける各レベルでの変化に関わらず、安定性を保証するレベルのそれぞれに対して制御ゲインが注意深く選ばれ、分析されてよい。
【００４１】
入れ子になった制御システムの１つのレベルだけが示されているが、本発明の実施形態は、入れ子になった制御システムの１つのレベルに限定されない。当業者であれば、本発明の範囲から逸脱せずに入れ子になった制御システムの複数のレベルが用いられてよいことがわかっていよう。
【００４２】
図５は、本発明の一実施形態におけるインフラの電力／エネルギー消費を動的に管理する方法を示す典型的なフローチャート５００である。本発明は、フローチャート５００に関して本願明細書中に記載される実施形態に限定されない。本願明細書中に記載される教示を読了後の当業者であれば、他の機能フローチャートも本発明の範囲に含まれることが理解できよう。プロセスは、ブロック５０２から始まり、すぐブロック５０４へと進む。
【００４３】
ブロック５０４において、データセンターまたはＩＴインフラが初期化される。データセンターまたはＩＴインフラの初期化は、オンにされる必要があるあらゆる機器の電源を入れることと、アドミニストレータによってエネルギー目標を設定することと、を含む。またこれは、データセンターまたはＩＴインフラにおける各電力管理されるドメイン／クラスタに対してドメインの重み付けを行うことを含む。このプロセスは、一般的には、データセンターのオペレータ（データセンターの場合）、または、システムアドミニストレータ（より一般的な大規模ＩＴ配備の場合）によって設定されるだろう。正常な状態では、一旦設定されると、システムは、自発的に動作するだろう。そして、プロセスは、ブロック５０６へと進む。
【００４４】
ブロック５０６では、セットポイントのエネルギー目標は、データセンターまたはＩＴインフラの電力／エネルギー消費を制御するインフラレベル制御システムに配分される。これが、主要な制御システムを構築する。プロセスは、ブロック５０８に進む。
【００４５】
ブロック５０８では、誤差信号が決定される。誤差信号は、受け取ったセットポイント目標と、最近の予め決定されたサンプリングインターバルの間に受け取ったインフラの実際のエネルギー消費とに基づく。そして、プロセスは、ブロック５１０へと進む。
【００４６】
ブロック５１０では、誤差信号に基づき調整されたエネルギー目標が決定される。調整済みエネルギー目標は、例えば、システムコントローラ４０４などのインフラレベル制御システムコントローラにより決定される。そして、プロセスは、ブロック５１２へと進む。
【００４７】
ブロック５１２では、調整済みエネルギー目標、または、調整済みセットポイントエネルギー目標がシステムプラントに配分され、システムプラントは、当該システムプラント、ひいてはインフラ全体のエネルギー目標を満たすよう、特定の構成要素の電力状態を遷移させることによって、エネルギー消費を動的に管理できるようになる。システムプラントの動作は、階層の範囲内のレベルによって決定される。例えば、最高レベルでは、プラントは、アップデートされたポリシーをインフラ内の低いレベルのコントローラに配分してよい。階層内の中間レベルでは、システムプラントは、上のレベルのコントローラから送られるグローバルポリシーと、例えば、いくつかのシステムにおける増大した熱負荷などのローカル効果との相互作用に基づく制御下で、アップデートされたポリシーをマシンのサブセットに送ってよい。制御システムの最低レベルでは、プラントは、中間レベルのコントローラから送られるポリシー要件を満たすべく、電力状態の遷移に影響を及ぼすだろう。
【００４８】
図６は、本発明の一実施形態における、システムプラントの電力／エネルギー消費を動的に管理する方法を示す典型的なフローチャート６００である。本発明は、フローチャート６００に関して本願明細書中に記載される実施形態に限定されない。本願明細書中に記載される教示を読了後の当業者であれば、他の機能フローチャートも本発明の範囲に含まれることが理解できよう。プロセスは、ブロック６０２から始まり、すぐブロック６０４へと進む。
【００４９】
ブロック６０４では、システムプラントのエネルギー目標は、入力として受け取られる。システムプラントのエネルギー目標は、例えば、システムコントローラ４０４などのシステムコントローラからの出力として送られる調整済みのエネルギー目標である。プロセスは、ブロック６０６へと進む。
【００５０】
前述のごとく、各システムプラントは、ローカル制御システムをモデルにし、また、ローカル制御システムによって制御される複数の電力ドメイン／クラスタに結合される複数のドメイン重み付けモジュールを有する。ブロック６０６において、システムプラント内の電力ドメイン／クラスタごとに、システムプラントのエネルギー目標が重み付けされる。重み付けされることによって、各電力ドメイン／クラスタは、システムプラントの目標セットポイントの一部を受け取ることができるようになる。このような重み付けポリシーは、一般的にはデータセンターのオペレータ、または、システムアドミニストレータによって設定されるだろう。各電力ドメイン／クラスタに割り当てられるシステムプラント目標セットポイントの量は、例えば、アプリケーションタイプ、日時測定基準、物理的ローカリティなどの要因によって変化しうる。そして、プロセスは、ブロック６０８へと進む。
【００５１】
ブロック６０８では、ローカル誤差信号は、その電力ドメイン／クラスタに対して重み付けされたセットポイントと、ローカルフィードバックループを介して提供される最近のインターバルにおける電力ドメイン／クラスタによって消費される電力とにより決定される。プロセスは、ブロック６１０へと進む。
【００５２】
ブロック６１０において、ローカルシステムコントローラは、ローカル誤差信号を調整して電力ドメイン／クラスタに対し、最適なエネルギー目標を入力として提供する。そして、プロセスは、ブロック６１２へと進む。
【００５３】
ブロック６１２において、電力管理されるドメイン／クラスタに対し、エネルギー目標に基づく電力設定が決定される。プロセスは、ブロック６１４へと進む。
【００５４】
ブロック６１４において、電力管理されるドメイン／クラスタは、特定のエネルギー目標にその設定を適合させる。換言すると、電力ドメイン／クラスタは、最適なエネルギー目標を用いて特定の構成要素の電力状態をその設定範囲内で遷移させる。これは、例えば、上記のようなＳ状態、Ｐ状態、Ｃ状態、および、Ｄ状態などの電力状態を調整することを含んでよい。そして、プロセスは、ブロック６１６へと進む。
【００５５】
ブロック６１６では、すべての電力ドメイン／クラスタから出力されるシステムプラント電力が決定される。この出力電力は、フィードバックループとして提供されることにより、インフラの誤差信号を決定する。
【００５６】
先に示すように、入れ子になった制御システムの１つのレベルだけが示されているが、本発明の実施形態は、入れ子になった制御システムの１つのレベルに限定されない。したがって、入れ子になった制御システム、または、システムプラントの追加のレベルについては、レベルごとにエネルギー目標が与えられる。そしてエネルギー目標は、組み込みシステムにおける特定の構成要素の電力状態をそのエネルギー目標を満たすよう遷移させるような、上述と同様の方法でレベルごとに用いられる。本発明の実施形態により、電力状態はいつでも変更できる。
【００５７】
図７は、記載された実施形態の側面が用いられる典型的なコンピュータシステムを示すブロック図である。コンピュータシステム７００は、プロセッサ７０１（インバンドプロセッサとして知られる）を有する。プロセッサ７０１は、メモリコントローラハブ（ＭＣＨ）７０３を介してランダムアクセスメモリ７０５に接続されてよい。プロセッサ７０１は、例えば、マイクロプロセッサ、デジタル信号プロセッサ、マイクロコントローラなどの、ソフトウェアを実行可能ないかなるタイプのプロセッサであってもよい。図７は、プロセッサ７０１などの１つのプロセッサしか示していないが、プラットフォーム７００内には１つ以上のプロセッサが存在してよく、プロセッサの１つ以上は、マルチスレッド、マルチコアなどを含んでよい。
【００５８】
プロセッサ７０１は、入出力コントローラハブ（ＩＣＨ）７０７を介して入出力（Ｉ／Ｏ）デバイスにさらに結合されてよい。ＩＣＨ７０７は、ローピンカウント（ＬＰＣ）バス７０２を介して、例えば、スーパーＩ／Ｏコントローラ（ＳＩＯ）、キーボードコントローラ（ＫＢＣ）、および、トラステッドプラットフォームモジュール（ＴＰＭ）などのさまざまなデバイスに結合されうる。ＳＩＯは、例えば、フロッピードライブ、または、ＩＳＡ（ｉｎｄｕｓｔｒｙ  ｓｔａｎｄａｒｄ  ａｒｃｈｉｔｅｃｔｕｒｅ）デバイスへのアクセスを有してよい。一実施形態では、ＩＣＨ７０７は、シリアルペリフェラルインターフェース（ＳＰＩ）バス７０４を介して不揮発性メモリに結合される。不揮発性メモリは、フラッシュメモリ、または、スタティックランダムアクセスメモリ（ＳＲＡＭ）などであってよい。コンピュータシステム７００は、アウトオブバンド（ＯＯＢ）マイクロコントローラ７１０を含んでもよい。ＯＯＢマイクロコントローラ７１０は、一般的にはＰＣＩ（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ）、または、ＰＣＩ  Ｅｘｐｒｅｓｓバスであるバス７１２を介してＩＣＨ７０７に接続されうる。ＯＯＢマイクロコントローラ７１０は、ＳＰＩバス７０４を介して不揮発性メモリ（ＮＶ記憶）７１７に結合されてもよい。ＮＶ記憶７１７は、フラッシュメモリ、または、スタティックＲＡＭ（ＳＲＡＭ）などであってよい。多くの既存のシステムにおいて、ＮＶ記憶７１７は、フラッシュメモリである。
【００５９】
ＯＯＢマイクロコントローラ７１０は、ＯＯＢマイクロコントローラ７１０とプロセッサ７０１とにより共有されるメモリ内の指示を含む「メッセージ」を格納してよい。例示された実施形態では、プロセッサ７０１は、プロセッサ７０１およびＯＯＢマイクロコントローラ７１０の両方からアクセス可能な共有メモリ７５２を含む。共有メモリ７５２は、ＲＡＭ１０５の予約領域７５２ａにあるか、または、別の不揮発性メモリ７５２ｂなどの中に配置されてよい。共有メモリ７５２は、上記メッセージのためのメールボックスとして動作してよい。したがって、一側面では、ＯＯＢコントローラ７１０は、オペレーティングシステム（ＯＳ）を含むプロセッサ７０１の状態、および、プロセッサ７０１において動作する他のいかなるプログラムとは無関係に、共有メモリ７５２内にメッセージを格納するか、または、共有メモリ７５２からメッセージを読み出してよい。したがって、例示された実施形態では、ＯＯＢマイクロコントローラ７１０は、プロセッサ７０１が初期化されるかまたはオフにされるかに関わらず、あるいは、オペレーティングシステムがブート中か、動作中か、クラッシュしたか、またはそれ以外の状態にあるかどうかに関わらず、共有メモリ７５２内にメッセージを格納するか、または、共有メモリ７５２内のメッセージを読み出してよい。共有メモリ７５２は、フラッシュメモリまたはスタティックランダムアクセスメモリ（ＲＡＭ）などの不揮発性（ＮＶ）メモリであってよい。
【００６０】
ＯＯＢマイクロコントローラ７１０は、専用の制御回路、ファームウェア、オペレーティングシステムなどを有することにより、コンピュータシステム７００の他の構成要素の状態とは無関係にＯＯＢマイクロコントローラ７１０の動作を制御するように、オペレーティングシステム、または、いかなるシステムスタートアッププログラムとも関わりなく動作する。ＯＯＢマイクロコントローラおよび他の構成要素から独立した動作の度合いは、特定のアプリケーションによって変化してよいと理解されたい。
【００６１】
ＯＯＢマイクロコントローラ７１０は、「小型」プロセッサに例えられてよい。ＯＯＢマイクロコントローラ７１０は、キャッシュメモリ７１５、ＲＡＭ（ランダムアクセスメモリ）、および、ＲＯＭ（リードオンリーメモリ）からなるメモリ７１３に結合されうる、全能力プロセッサのようなプロセッサユニット７１１を有する。ＯＯＢマイクロコントローラ７１０は、組み込みネットワークインターフェース７２３、および、電源７２５への独立した接続を有することによって、インバンドプロセッサ７０１が動作しない場合でもアウトオブバンド通信を可能にする。
【００６２】
本発明の実施形態の特定の側面は、ハードウェア、ソフトウェア、または、その組合せを用いて実装されてよく、１つ以上のコンピュータシステム、または、他の処理システムに実装されてよい。実際に、一実施形態では、例えば、モバイルまたはステーショナリーコンピュータ、ＰＤＡ（パーソナル携帯情報機器）、セットトップボックス、携帯電話、ポケベルなど、また、複数のプロセッサコア、当該プロセッサコアにより読み取り可能な記憶媒体（揮発性および不揮発性メモリ、および／または、記憶素子）、少なくとも１つの入力デバイス、および、１つ以上の出力デバイスをそれぞれ含む他の電子デバイスなど、のプログラム可能な機械で実行されるプログラムに実装されうる。プログラムコードは、入力デバイスを用いて入力されるデータに適用されることにより、記述された機能を実行し、出力情報を生成する。出力情報は、１つ以上の出力デバイスに適用されてよい。当業者であれば、本発明の実施形態は、マルチプロセッサシステム、ミニコンピュータ、メインフレームコンピュータなどを含むさまざまなコンピュータシステムにより実行されてよいことが理解できよう。
【００６３】
各プログラムは、高水準手続き、または、オブジェクト指向プログラミング言語で実装されて処理システムと通信してよい。しかしながら、プログラムは、必要に応じてアセンブリまたは機械言語で実装されてもよい。いずれの場合も、言語は、コンパイルまたは翻訳されてよい。
【００６４】
プログラム命令が用いられることにより、命令によってプログラムされる多目的または特殊目的の処理システムは、本願明細書中に記載される方法を実行できるようになる。あるいは、方法は、方法を実行するハードワイヤードロジックを含む特定のハードウェアコンポーネントによって、あるいは、プログラムされたコンピュータコンポーネントと、カスタムハードウェアコンポーネントとのいかなる組合せによって実行されてよい。本願明細書中に記載される方法は、当該方法を実行する処理システム、または、他の電子デバイスをプログラムするのに用いられうる命令を格納した機械可読媒体を含みうるコンピュータプログラム製品として提供されてよい。本願明細書中で用いられる「機械可読媒体」、または、「機械アクセス可能媒体」という用語は、機械によって実行される命令シーケンスを格納またはエンコードでき、本願明細書中に記載されている方法のいずれか１つを機械が実行できるようにするあらゆる媒体を含むものとする。したがって、「機械可読媒体」、および、「機械アクセス可能媒体」という用語は、固体メモリ、光および磁気ディスク、および、データ信号をエンコードする搬送波を含むが、これらに限定されないものとする。さらに、１つまたは他の形態（例えば、プログラム、手続き、プロセス、アプリケーション、モジュール、ロジックなど）において、１つの動作を起こす、または、１つの結果を生じるとしてソフトウェアを説明するのは、従来技術では一般的なことである。このような表現は、処理システムによってソフトウェアを起動させることにより、プロセッサに動作を実行させるかまたは結果を生じさせる簡単明瞭な言い方に過ぎない。
【００６５】
これまで本発明のさまざまな実施形態を説明してきたが、それらは例として示したに過ぎず、限定ではないことを理解されたい。添付の請求項に定められたような本発明の趣旨および範囲に逸脱せずに、形式および詳細におけるさまざまな変更がなされうることが当業者には明らかであろう。したがって、本発明の範囲は、上記の例示的実施形態のいずれにも限定されないものとし、添付の請求項およびそれらの均等物によって定義されるものとする。
【図１】
0004822165.tif 000002
【図２】
0004822165.tif 000003
【図３】
0004822165.tif 000004
【図４】
0004822165.tif 000005
【図５】
0004822165.tif 000006
【図６】
0004822165.tif 000007
【図７】
0004822165.tif 000008