(57)【要約】【課題】  プロセッサポーリング情報を収集し動的に更新する方法および装置を提供する。【解決手段】  本発明は、ブート時に、オペレーティングシステムに提供されるプロセッサポーリング情報を収集する。プロセッサポーリング情報は、統合プロセッサシステムの動作状態を記述する。そして、オペレーティングシステムに対し、統合プロセッサシステムの動作状態を潜在的に変更する可能性のあるトリガリングイベントが発生したことを通知する。実行時間中にオペレーティングシステムに対して、トリガリングイベントの発生後に統合プロセッサシステムの動作状態を反映する更新されたプロセッサポーリング情報を提供する。【選択図】図５
2005032243.tif 000002
【特許請求の範囲】
【請求項１】
更新されたプロセッサポーリング情報を提供する方法であって、
ブート時に、オペレーティングシステムに提供されるプロセッサポーリング情報を収集すること（４０２）であって、該プロセッサポーリング情報は、統合プロセッサシステムの動作状態を記述するものであることと、
前記オペレーティングシステムに対し、トリガリングイベントが発生した（４０４）ことを通知する（４０６）ことであって、前記トリガリングイベントは、前記統合プロセッサシステムの前記動作状態を潜在的に変更するものであることと、
実行時間中に、前記オペレーティングシステムに対し更新されたプロセッサポーリング情報を提供すること（４０８〜４１２）であって、該更新されたプロセッサポーリング情報は、前記トリガリングイベントの発生後に前記統合プロセッサシステムの動作状態を反映するものであることと
を含む方法。
【請求項２】
修正プラットフォームエラーポーリング（ＣＰＥＰ）テーブルを作成することであって、該ＣＰＥＰテーブルは、ブート時に収集されたプロセッサポーリング情報で占められること
を含む請求項１に記載の方法。
【請求項３】
前記トリガリングイベントは、プロセッサデバイスの追加に基づく（４０８）
請求項１に記載の方法。
【請求項４】
前記トリガリングイベントは、プロセッサデバイスの削除に基づく（４１０）
請求項１に記載の方法。
【請求項５】
前記トリガリングイベントは、プロセッサデバイスの構成解除に基づく（４１２）
請求項１に記載の方法。
【請求項６】
プロセッサデバイスに関連するオブジェクトに対しプロセスを実行し、前記統合プロセッサシステムのオペレーティングシステムに値を返すことであって、該値は対応するプロセッサポーリング情報に取って代るものであること
をさらに含む請求項１に記載の方法。
【請求項７】
前記返される値は、前記対応するプロセッサデバイスをポーリングするべきではないことを示すゼロである
請求項６に記載の更新されたプロセッサポーリング情報を提供する方法。
【請求項８】
前記返される値は、最小ポーリング頻度を示す非ゼロ数値である
請求項７に記載の方法。
【請求項９】
更新されたプロセッサポーリング情報を提供するコンピュータ読取可能媒体において具体化されたコンピュータプログラムであって、コンピュータに対し、
プロセッサポーリング情報テーブルを作成するステップ（４０２）であって、該プロセッサポーリング情報テーブルは、ブート時プロセッサポーリング情報で占められ、該プロセッサポーリング情報は、統合プロセッサシステムの動作状態を記述するものであるステップ（４０２）と、
トリガリングイベントが発生した（４０４）という通知を受け取ると（４０６）前記プロセッサポーリング情報テーブルを更新するステップ（４１０）であって、該トリガリングイベントは、前記統合プロセッサシステムの前記動作状態を、潜在的に変更する可能性がある（４０８〜４１２）ものであるステップ（４１０）と
を実行させるコンピュータプログラム。
【請求項１０】
前記コンピュータに対し、
プロセッサデバイスのオンライン追加時（４０８）に、バスチェック通知を呼び出すこと
をさらに行わせ、
該バスチェック通知は、オペレーティングシステムに対してデバイスツリーの再列挙を実行する必要のあることを指示するものであり、
該オペレーティングシステムは、前記追加されたプロセッサデバイスに対するポーリング頻度を示す値を返す修正プラットフォームエラー（_PPE）プロシージャに対するポーリングを呼び出すものである
請求項９に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、包括的にはコンピュータシステムに関し、詳細には、マルチプロセッサシステムに対し、動的に更新されたプロセッサポーリング情報を提供するシステムおよび方法に関する。
【０００２】
［関連出願］
本出願は、２００３年７月７日に出願された、発明者Dong WEIによる「Corrected Platform Error Polling(CPEP) table specification」と題された米国仮特許出願第６０／４８５，６３４号からの優先権を主張する。
【背景技術】
【０００３】
最新のコンピュータシステムは、クラッシュすることなくいくつかの種類のプロセッサおよびプラットフォームエラーを修正しそこから回復することができる可能性のあるプロセッサのクラス（たとえば、Ｉｔａｎｉｕｍ（商標）ベースプラットフォーム）を有する。
かかるプラットフォームは、修正プラットフォームエラー（corrected platform error（ＣＰＥ））を処理することができるプラットフォームという。
しかしながら、これらのシステムは、いくつかのタイプのエラーには回復力がありエラーの発生にもかかわらず動作を継続するが、オペレーティングシステムまたは他の管理ソフトウェアが使用し分析するためにはＣＰＥの何らかのアカウンティングが必要である。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ＣＰＥデータを収集する１つの方法は、割込みポーリングモデルに基づく。
割込みモデルベースのシステムでは、エラーの発生時にオペレーティングシステムに割込みが送信される。
プラットフォームが割込みモデルをサポートする場合、システムファームウェアは、アドバンスド・コンフィギュレーション・アンド・パワー・インターフェース（Advanced Configuration and Power Interface（ＡＣＰＩ））仕様のプラットフォーム割込みソース構造（Platform Interrupt Sources Structure）およびプラットフォームシステム抽象化層仕様とにおいて定義されるように、修正プラットフォームエラー割込み（corrected platform error interrupt（ＣＰＥＩ））構造を介してオペレーティングシステムと通信する必要がある。
しかしながら、ミッションクリティカルサーバシステム等、場合によっては、修正プラットフォームエラーのための割込みモデルは、多数の同時プラットフォームエラーが発生する場合に割込みストームの可能性があるため、好ましい解決法ではない。
【０００５】
したがって、割込みストーム等の潜在的な問題を回避するために、修正プラットフォームエラーを収集する代替メカニズムが必要である。
さらに、実行時間中のシステムの動的再構成によるプロセッサポーリング情報変化を更新するためにＣＰＥデータを収集する新たな方法とともに、ＣＰＥデータを格納し更新するメカニズムが必要である。
【課題を解決するための手段】
【０００６】
本発明の実施形態は、プロセッサポーリング情報を収集し動的に更新する方法および装置を提供する。
一方法実施形態では、本発明は、ブート時に、オペレーティングシステムに提供されるプロセッサポーリング情報を収集する。
プロセッサポーリング情報は、統合プロセッサシステムの動作状態を記述する。
そして、オペレーティングシステムに対し、統合プロセッサシステムの動作状態を潜在的に変更する可能性のあるトリガリングイベントが発生したことを通知する。
実行時間中にオペレーティングシステムに対して、トリガリングイベントの発生後に統合プロセッサシステムの動作状態を反映する更新されたプロセッサポーリング情報を提供する。
【０００７】
この出願に組み込まれその一部を形成する添付図面は、本発明の実施形態を例示し、説明とともに、本発明の原理を説明する役割を果たす。
言及しない限り、この説明に対して参照される図面は、一定の比率で描かれていないものと理解されるべきである。
【発明を実施するための最良の形態】
【０００８】
この発明は、オペレーティングシステム（ＯＳ）に対し、プロセッサステータスおよび動作データのためにいずれのプロセッサにポーリングすべきかと、かかるポーリングをいかなる間隔で実行すべきかと、を命令する完全な解決法（ブート時スナップショットと実行時更新メカニズムとの両方）を提供する。
したがって、本発明による実施形態は、潜在的な割込みストームを含む、割込みベースモデルに関連する問題なしに、マルチプロセッサプラットフォーム内の個々のプロセッサをポーリングするための効率的かつ更新可能モデルを提供する。
【０００９】
多くの最近のアプリケーションは、マルチプロセッサとマルチセル統合システムまたはプラットフォームを使用する。
プラットフォームは、いくつかのセルから構成されてもよく、それらの各々は、概して１個から数個のプロセッサを含んでもよい。
これらのより大型のシステムの多くの場合、プラットフォームを含むセルおよびプロセッサは、並列に動作してもよい。
さらに、統合プロセッサシステムを備えたセルおよびプロセッサは、互いから独立して動作する必要のある場合がある。
これは、特に、耐故障性でありおよび／または容易に拡張可能でありアップグレード可能でなければならない多くのミッションクリティカルなシステムおよびアプリケーションの場合に必要である。
ミッションクリティカルでありかつ容易に拡張可能なシステムが必要であることにより、あるタイプのシステムエラーを修正しそれらから回復する能力を有するプラットフォームが開発された。
これらの修正されたエラーを、修正プラットフォームエラー（corrected platform error（ＣＰＥ））とも呼ぶ。
【００１０】
これら複雑なシステムの管理機能は、オペレーティングシステム（ＯＳ）の制御下にある。
プラットフォーム内の資源を適当に管理し割り付けるために、オペレーティングシステムは、統合プロセッサシステムまたはプラットフォームを備えた各セルおよびプロセッサのステータスおよびパフォーマンスに関する最新情報を取得する必要がある。
【００１１】
統合プロセッサシステム内の個々のプロセッサのステータスまたはパフォーマンスに関するデータを収集する１つの方法は、割込みモデルに基づく。
情報収集の割込みベースシステムの下で、各プロセッサは、イベントの発生時に割込み信号をオペレーティングシステムに送信してもよい。
割込みの生成を必要とする可能性のあるイベントのタイプは、システム毎に異なる場合がある。
しかしながら、これらの割込みベースシステムは１つの潜在的な問題を共有する。
この問題は、多数のプラットフォームエラーの同時生成によってもたらされる割込みストームの可能性に基づく。
【００１２】
プロセッサステータスおよびパフォーマンス情報を収集する代替モデルは、ポーリングモデルに基づく。
ポーリングモデルの下では、イベントの発生時にはいかなる情報もオペレーティングシステムに送信されない。
代わりに、ポーリングモデルベースシステムでは、オペレーティングシステムが、プロセッサステータスおよび／またはパフォーマンス情報を収集するために所定の時間間隔で統合プロセッサシステム内の選択されたプロセッサをポーリングする。
これにより、割込みモデルベースシステムでは発生する可能性のある割込みストームの可能性が回避される。
【００１３】
図１は、本発明の一実施形態によるプロセッサポーリング情報を収集するためのポーリング方法から利益を得るマルチセルプラットフォームの例を示す。
図１に示すように、統合プロセッサシステムすなわちプラットフォーム１００は、複数のセルすなわちブレード１０２を含んでもよく、それらの各々は複数のプロセッサ１０４を含んでもよい。
多くのミッションクリティカルシステムを含む最近のシステムによっては、安定しているとともに拡張可能でなければならないものがある。
したがって、図１のシステムのようなシステムを、実行時間中にセルを追加するかまたはセルを削除することによりシステムの構成のオンライン変更を可能にするように設計してもよい。
同時に、セルおよびプロセッサが過度なエラーを生成する場合、システムは、故障セルおよびプロセッサのオンライン構成解除を可能にしてもよい。
【００１４】
ポーリング方法に基づいて統合プロセッサシステム内のプロセッサから収集された情報を、概して、プロセッサポーリング情報と呼んでもよい。
プロセッサポーリング情報のサブカテゴリは、修正プラットフォームエラー（ＣＰＥ）に関連するデータを含む。
より新しいコンピュータシステムの多くは、いくつかの種類のエラーを修正しそれらから回復する能力を有する。
これらの修正エラーをＣＰＥと呼んでもよい。
修正プラットフォームエラーは、統合処理システムの動作状態を反映する。
したがって、これらの修正プｓラットフォームエラーに関連する情報は、依然として、エラー分析を含むさまざまな目的のために収集しなければならないものである。
ＣＰＥデータを収集する代替方法は、ポーリングモデルを用いる。
しかしながら、ポーリングモデルについては、業界標準インタフェース、すなわちアドバンスド・コンフィギュレーション・アンド・パワー・インタフェース仕様（ＡＣＰＩ）ｖ２．０において詳細に扱われなかった。
同様に、ほとんどのハードウェア仕様もまた、ポーリングモデルの効率的な実現をサポートする構造を提供しない。
結果として、ＡＣＰＩ規格に基づくポーリングモデルベースシステムにおける、ＣＰＥを含むプロセッサステータスおよびパフォーマンス情報を収集するデフォルト設定では、統合プロセッサシステムのすべてのプロセッサのポーリングが必要である。
しかしながら、多くの場合、すべてのプロセッサをポーリングすることは非常に冗漫で時間がかかり、作業の重複をもたらす可能性がある。
システムが大型になるほど、システムパフォーマンス全体に対するこのデフォルト設定の負担が大きくなる。
【００１５】
本発明の実施形態によれば、修正プラットフォームエラーポーリング（Corrected Platform Error Polling（ＣＰＥＰ））テーブルと呼ぶファームウェアインタフェースのための仕様の開発に基づき、より効率的なポーリングモデルを提供する。
【００１６】
図２は、本発明の実施形態による例示的なＣＰＥＰテーブルを示す。
ＣＰＥＰテーブルを使用して、オペレーティングシステムに対し、修正プラットフォームエラーデータを収集するためにいずれのプロセッサをポーリングするべきかを通信する。
ＣＰＥＰテーブルで利用可能な情報により、オペレーティングシステムは、システムのすべてのプロセッサではなく、テーブルに記載されているプロセッサのみをポーリングすることができる。
オペレーティングシステムに対する節約が重要な場合がある。
たとえば、オペレーティングシステムは、４つのプロセッサを含むセルにおいて１つのプロセッサのみをポーリングすればよい場合があり、それにより７５％までの節約が可能になる。
一実施形態では、ＣＰＥＰテーブルに格納された情報を使用して、ＯＳは、SAL_GET_STATE_INFOと呼ばれるプロシージャを呼び出して、ＣＰＥＰテーブルに列挙された各プロセッサに関連しおよびそれによって収集されたポーリング情報を調べる。
【００１７】
ＣＰＥＰテーブルは、ＣＰＥＰ構造と呼ぶ下位構造を有する。
図３は、本発明の実施形態による例示的なＣＰＥＰ構造を示す。
ＣＰＥＰテーブルは、１つまたは複数のＣＰＥＰ構造を含む。
各ＣＰＥＰ構造は、オペレーティングシステムに対して提案するために使用される情報、すなわちポーリングすべきプロセッサ（プロセッサのローカル識別によって識別される）とその対応するプラットフォーム提案ポーリング間隔とを含む。
ポーリング間隔値は、ハードウェア構成に基づく、推奨ポーリング間隔に関するＯＳに対する各プラットフォームのアドバイスである。
しかしながら、ＯＳは、ポーリングに関するそれ自体のポリシーを有することができる。
たとえば、ＯＳは、プラットフォームが提案する間隔より頻繁にポーリングすることができる。
ＯＳはまた、プラットフォームが提案する間隔より短い間隔を使用してすべての指定されたプロセッサに対し一様にポーリングすることも可能である。
【００１８】
このように、オペレーティングシステムは、ＣＰＥＰテーブルで利用可能な情報を使用して、プラットフォームのすべてのプロセッサではなくテーブルに記載されているプロセッサのみを排他的におよび効率的にポーリングすることができる。
しかしながら、従来、ＣＰＥＰテーブルは、静的であり、システムブート時間中オペレーティングシステムへのハンドオフ前にハードウェアのステータスを報告するのみである。
しかしながら、本発明による実施形態は、実行時間中にプロセッサポーリング情報（ＣＰＥＰテーブルで利用可能な情報を含む）を更新するシステムおよび方法を提供する。
【００１９】
より高度な技術を有するより新しいシステムでは、統合プロセッサシステムの動的分割が可能である。
さらに、これらのより新しいプラットフォームは、プロセッサのオンライン削除と同様にオンラインまたは実行時追加あるいはホットプラグをサポートしてもよい。
マルチセルプラットフォームは、システム全体をシャットダウンする必要なしに、システム使用が増大するに従い追加のセルまたはブレードを受け取ってもよい。
セル、ブレードおよびプロセッサを、消耗したため、修理・メンテナンスのためまたはシステム資源に対する要求の低減のために統合システムから削除してもよい。
これらのイベントの発生は、実行時間中の統合システム構成に影響を与える。
【００２０】
さらに、プラットフォームは、プロセッサが非常に多くのエラーを生成している時には実行時プロセッサ構成解除をサポートしてもよい。
このため、プロセッサ、セルもしくはプロセッサまたはセルのバンク全体を、システムシャットダウンを必要とすることなく実行時間中に構成解除してもよい。
これらの場合、構成解除されたプロセッサのポーリングを続けることは適当ではない。
【００２１】
このように、プロセッサの実行時またはオンライン追加、削除および構成解除等の場合は特に、従来のＣＰＥＰテーブルの情報は古くなり、オンライン再構成後に最新でなくなる。
これは、ＣＰＥＰテーブルを占めるデータが、ブート時間中に収集された情報のみを含むためである。
本発明とは異なり、従来の手法では、この情報をファームウェアからオペレーティングシステムへのハンドオフ中にＣＰＥＰテーブルインタフェースを介してオペレーティングシステムに提供する。
したがって、システム構成の実行時変更の可能性があるため、ブート時間後に、ＣＰＥＰテーブルデータを含む更新されたプロセッサポーリングデータを収集しオペレーティングシステムに提供する手段が必要である。
本発明による実施形態は、ＣＰＥＰテーブルデータを含む更新されたプロセッサポーリングデータをブート時間後にオペレーティングシステムに提供する能力を提供する。
【００２２】
より詳細には、図４は、本発明の実施形態によるプロセッサポーリング情報を更新する方法のフローチャートである。
図４に示すように、第１ステップ４０２において、ブート時に収集されたプロセッサポーリング情報をオペレーティングシステムに提供する。
プロセッサポーリング情報を、オペレーティングシステムに提示するために統合プロセッサプラットフォーム内の各プロセッサによって収集してもよい。
オペレーティングシステムは、収集されたプロセッサポーリングデータを取得し、それを将来使用するためにそれ自体のデータベースに格納する。
【００２３】
本発明の実施形態によれば、ファームウェアインタフェース構造は、ハードウェアとオペレーティングシステムとのインタフェースとしての役割を果たし、それら２つの間の通信およびデータ転送を容易にする。
このように、ファームウェアインタフェース構造を使用して収集されたプロセッサポーリングデータをオペレーティングシステムに通信する。
【００２４】
ＡＣＰＩ規格に基づく本発明の一実施形態では、プロセッサポーリングインタフェース構造はＣＰＥＰテーブルである。
ＣＰＥＰテーブルは、追加された構造であり、ＡＣＰＩインタフェース規格に基づくシステムにおいて利用可能となり得る修正プラットフォームエラー割込み（ＣＰＥＩ）構造の代替となりおよび／またはそれを補足する。
プロセッサ状態およびパフォーマンスデータを収集する割込みモデルを使用するシステムでは、ファームウェアからオペレーティングシステム（ソフトウェア）へのインタフェース構造が必要である。
業界容認ＡＣＰＩ規格の下では、そのファームウェア構造はＣＰＥＩである。
ＡＣＰＩインタフェース仕様が要求するように定義されたＣＰＥＩ構造を有していないプラットフォームまたはデータ収集のポーリングモデルに依存するプラットフォームは、ＣＰＥＰテーブル等のインタフェース構造を使用して、ブート時に、オペレーティングシステムに対し、ＣＰＥについていずれのプロセッサをポーリングすべきかといかなるポーリング間隔であるかとに対する案内として使用される統合プロセッサシステムのスナップショットを提供してもよい。
【００２５】
ＣＰＥデータを取得する際にポーリングを使用することは、多数のＣＰＥが同時に発生する可能性のある場合の潜在的な割込みストームの問題を回避するため、割込みベースシステムには好ましい場合がある。
さらに、ＣＰＥＰテーブル等の構造を使用することにより、テーブルはいずれのプロセッサをポーリングするべきかといかなる頻度でポーリングを実行すべきかとに関する情報を提供するため、ＣＰＥについてシステムの効率的なポーリングが可能になる。
【００２６】
本発明の一実施形態では、オペレーティングシステムは、ＣＰＥＰテーブルおよびＣＰＥＰ構造等のファームウェアインタフェースに収集されたブート時ポーリング情報を受け取ると、そのデータを将来使用するためにそのレジストリまたはデータベースに転送する。
そのデータベースに格納された情報に基づき、オペレーティングシステムは、効率的なポーリングシナリオおよび頻度を確定することができる。
ファームウェアインタフェースによってオペレーティングシステムに提供されたデータは、案内としての役割のみを果たし、オペレーティングシステムに必ずしも従う必要はない。
このため、ＯＳは、システムのすべてのプロセッサをポーリングするように選択しても、ファームウェアインタフェースを介して提供された値より多いかまたは少ない頻度でポーリングしてもよい。
【００２７】
ふたたび図４を参照すると、本発明の同じ実施形態では、ステップ４０４において、システムは、システムの状態を潜在的に変更した可能性のあるイベントの発生まで、ループに留まる。
かかるイベントの例は、実行時間中のプロセッサの追加、削除または構成解除であってもよい。
上述したように、かかるイベントの発生により、オペレーティングシステムに提供されたブート時収集プロセッサポーリング情報が変化しそのため古くなる可能性がある。
代替実施形態では、システムは、イベント駆動手法に依存しなくてもよい。
代りに、オペレーティングシステムは、システム構成を潜在的に変更する可能性のあるイベントの発生に対し、ファームウェアインタフェースを定期的にポーリングしてもよい。
【００２８】
本発明の同じ実施形態のステップ４０６において、システムの状態を変更する可能性のあるイベントが発生すると、オペレーティングシステムに対して通知する。
システムに影響を与える可能性のあるイベントのいくつかには、特に、たとえば、プロセッサまたはセルのホットプラグまたはオンライン追加と、プロセッサまたはセルのオンライン削除と、プロセッサまたはセルのオンライン構成解除（プロセッサが過度な数のエラーを生成している場合）と、がある。
【００２９】
本発明の一実施形態において、１つまたはいくつかのプロセッサのオンライン追加の場合、プロセス４０８を適用する。
プロセッサのオンライン追加の場合、オペレーティングシステムは、「バスチェック通知」を介してイベントの発生の指示を受け取る。
バスチェック通知は、デバイスオブジェクトで実行された場合、ＯＳに対し、それが、デバイスツリーにおいて、通知されたポイントから開始して「プラグアンドプレイ」再列挙操作を実行する必要があることを指示する。
一実施形態では、オンライン追加がプロセッサの追加を含む場合、ＯＳは、プロセッサポーリング情報データに対する更新された値を返す追加プロセッサに関連するプロシージャまたはオブジェクトを呼び出すことができる。
【００３０】
本発明の一実施形態では、オペレーティングシステムは、対応する追加プロセッサに関連する修正プラットフォームエラー（_PPE）オブジェクトに対するポーリングを呼び出す。
_PPEオブジェクトは、プロセッサオブジェクトまたはプロセッサデバイスに関連し、ブート時プロセッサポーリング情報に取って代る更新されたプロセッサポーリングデータをオペレーティングシステムに提供する方法としての役割を果たす。
ＡＣＰＩ規格に基づく名前空間の記述では、統合プロセッサシステムのすべてのプロセッサを含んでもよい。
一実施形態では、_PPEオブジェクトはこの名前空間に関連し、名前空間の各プロセッサに対応するＤＷＯＲＤ整数値を返す。
_PPEオブジェクトの戻り値がゼロである場合、それは、オペレーティングシステムに対し、関連するプロセッサをポーリングする必要がないことを指示する。
_PPEオブジェクトによって非ゼロ値が返される場合、それは、オペレーティングシステムに対し、戻り値より小さい間隔でこのプロセッサをポーリングするように指示する。
戻り値の単位はミリ秒である。
【００３１】
相応じて、本発明の一実施形態では、プロセッサのオンライン削除の場合、プロセス４１０において、オペレーティングシステムは、「イジェクト要求（Eject Request）」通知を受け取るとプラグアンドプレイ再列挙操作を実行する必要がある。
オンライン削除には、１つまたは複数のプロセッサを削除することが含まれるため、オペレーティングシステムは、ＣＰＥに対するポーリングを含むプロセッサポーリングのためにその内部構造からプロセッサを取り除く。
【００３２】
本発明の一実施形態では、オンライン構成解除の場合にプロセス４１２を適用する。
プロセッサを、実行時間中にエラーのために構成解除することができる。
構成解除は次のブートに対して発生するが、オペレーティングシステムがもはや構成解除されたプロセッサからのＣＰＥをポーリングしないように推奨してもよい。
【００３３】
一実施形態では、潜在的にシステムを変更する可能性のあるイベントの発生をオペレーティングシステムに通知するために、新たな通知値ＣＰＥＰチェックを定義し使用する。
ＣＰＥＰチェック値はデバイスオブジェクトに送信され、それによりデバイスオブジェクトは、オペレーティングシステムに対し、_PPEオブジェクトを呼び出す必要のあることを指示する。
それによって、オペレーティングシステムは、通知されたポイントから開始するデバイスツリーにおいて、プロセッサに関連する_PPEオブジェクトを呼び出す。
構成解除されたプロセッサに関連する各_PPEオブジェクトは、オペレーティングシステムに対して対応するプロセッサをポーリングする必要のないことを示すゼロ値を返す。
これにより、代替プロセッサがＣＰＥポーリングを実行することも可能となる。
【００３４】
図５は、本発明の実施形態によるシステムのブロック図である。
図５に示すように、プロセッサポーリング情報システム５００は、ＣＰＥＰテーブル発生部５０２と、ＣＰＥＰテーブル更新部５０４と、トリガリングイベント検出部５０６と、ポーリング頻度計算部５０８と、を有する。
【００３５】
本発明の一実施形態では、ブート時、ＣＰＥＰテーブル発生部５０２は、提示しオペレーティングシステム５１０によって使用されるために、ＣＰＥＰテーブル構造に編成されるシステムデータを収集する。
ＣＰＥＰテーブルデータを、ブート時間中にオペレーティングシステム５１０へのファームウェアハンドオフにおいてオペレーティングシステム５１０に提供する。
【００３６】
本発明の一実施形態では、トリガリングイベント検出部５０６は、プラットフォーム構成およびＣＰＥに対するポーリングに潜在的に影響を与える可能性のあるイベントの発生を検出する。
検出されたイベント（１つまたは複数）の発生時、トリガリングイベント検出部５０６は、ＣＰＥＰテーブル更新部５０４を介してオペレーティングシステム５１０に対し、ＣＰＥＰテーブル発生部５０２を通して受け取られたブート時情報が古くなっている可能性のあることを通知する。
オンラインホットプラグの場合のバスチェック通知、オンライン削除の場合のイジェクト要求通知およびオンライン構成解除の場合のＣＰＥＰチェック通知の形態のファームウェアからの入力を、ハードウェアによってトリガリングイベント検出部５０６に送信してもよい。
代替実施形態では、トリガリングイベント検出部５０６は、オペレーティングシステム５１０に対して直接イベントの発生と利用可能な情報を潜在的に更新する必要とを通知する。
【００３７】
ＣＰＥＰテーブル更新部５０４は、トリガリングイベント検出部５０６を通してイベントの発生の通知を受け取ると、イベントの発生によって影響を受けたプロセッサに関連する実行時情報を収集する。
一実施形態では、ＣＰＥデータの収集のための更新されたプロセッサポーリング情報の収集は、影響を受けたプロセッサの各々に対応する_PPEオブジェクトを使用することによって行ってもよい。
【００３８】
本発明の一実施形態では、プロセッサのオンライン追加の場合、ポーリング頻度計算部５０８を使用して、ホットプラグ中に追加されたプロセッサに対して推奨された最小ポーリング頻度を計算してもよい。
ポーリング頻度計算部５０８によって提供される値を、ＣＰＥＰテーブル更新部が、イベントの発生後にオペレーティングシステム５１０に対して更新されたポーリング情報を提供するために使用してもよい。
【００３９】
本発明の一実施形態では、プロセッサのオンライン削除または実行時構成解除の場合、頻度計算部５０８は、対応する削除または構成解除されたプロセッサに対するポーリング頻度についてゼロ値を返す。
このゼロ戻り値は、オペレーティングシステム５１０に対して関連するプロセッサをＣＰＥについてポーリングする必要のないことを指示する。
【００４０】
本発明のさまざまな実施形態の教示により、効率的かつ更新可能なポーリングモデルを使用するＣＰＥデータの収集が可能になる。
本発明の特定の実施形態の上述した説明は、例示および説明のために提示した。
それらは、網羅的であるようにも発明を開示した厳密な形態に限定するようにも意図されておらず、上記教示に鑑みて多くの変更および変形が可能である。
本発明の原理とその実際的な適用をもっともよく説明するために、実施形態を選択し説明した。
それにより当業者は、企図された特定の使用に適するようなさまざまな変更をともなって本発明とさまざまな実施形態とをもっともよく利用することができる。
本発明の範囲は、添付の特許請求の範囲とそれらの等価物とによって定義されることが意図されている。
【図面の簡単な説明】
【００４１】
【図１】本発明の一実施形態によるプロセッサポーリング情報の収集のためのポーリング方法から利益を得るマルチセルプラットフォームの例を示す図である。
【図２】本発明の実施形態による例示的なＣＰＥＰテーブルである。
【図３】本発明の実施形態による例示的なＣＰＥＰ構造を示す図である。
【図４】本発明の実施形態によるプロセッサポーリング情報を更新する方法のフローチャートである。
【図５】本発明の実施形態によるプロセッサポーリング情報を更新するシステムのブロック図である。
【符号の説明】
【００４２】
１００・・・プラットフォーム、
１０４・・・プロセッサ、
１０２・・・ブレード、
５００・・・プロセッサポーリング情報システム、
５０２・・・ＣＰＥＰテーブル発生部、
５０４・・・ＣＰＥＰテーブル更新部、
５０６・・・トリガリングイベント検出部、
５０８・・・ポーリング頻度計算部、
【図１】
2005032243.tif 000003
【図２】
2005032243.tif 000004
【図３】
2005032243.tif 000005
【図４】
2005032243.tif 000006
【図５】
2005032243.tif 000007