(57)【要約】      （修正有）【課題】ハードウェアプラットフォームクラスの識別を高速化する。【解決手段】コンピュータシステムのハードウェアコンフィギュレーションを単一のシグネチャ値を介して簡潔に識別する技術であって、このシグネチャ値は、特定のハードウェアコンフィギュレーション情報をハッシュ関数に通すことによって計算される。ハードウェアコンフィギュレーション情報は、とりわけ、ＳＭＢＩＯＳシステムの記述の選択されたエレメント、ＰＣＩトポロジー、及びＰＣＩバスタイプ情報を含む。【選択図】図１
2008090819.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムのハードウェアコンフィギュレーションを一意に特定するよう構成されたコンピュータシステムであって、
一以上の中央処理ユニット（ＣＰＵ）と、
一以上のグラフィック処理ユニット（ＧＰＵ）と、
前記一以上のＣＰＵを前記一以上のＧＰＵに結合する少なくとも一つのバスと、
シグネチャ生成器と、
を備え、
前記シグネチャ生成器は、
前記コンピュータシステム用に生成されたシステム管理基本入出力システム（ＳＭＢＩＯＳ）デバイスリストからデータを収集し、
前記コンピュータシステム内のバスを調べてバストポロジーを決定し、前記バスに結合された各デバイスに固有の識別子を割り当て、
前記バスに結合された各デバイスのコンフィギュレーションスペースレジスタにアクセスして、バスタイプを決定し、
少なくとも、前記ＳＭＢＩＯＳデバイスリストから収集された前記データ、及び前記バスタイプに基づいて、前記コンピュータシステム用のシグネチャ値を計算する、
ように構成されている、コンピュータシステム。
【請求項２】
前記ＳＭＢＩＯＳデバイスリストを生成するように構成されたファームウェアを更に備える、請求項１に記載のコンピュータシステム。
【請求項３】
前記バスタイプは、前記少なくとも一つのバスの幅、前記少なくとも一つのバスの電圧整合性、前記少なくとも一つのバスの速度整合性、及び、前記少なくとも一つのバスのバージョンを反映している、請求項１に記載のコンピュータシステム。
【請求項４】
前記シグネチャ値を計算するステップは、前記ＳＭＢＩＯＳデバイスリストから収集された前記データ、及び、前記バスタイプを、ハッシュ関数に通すことを含む、請求項１に記載のコンピュータシステム。
【請求項５】
前記ＳＭＢＩＯＳデバイスリストから収集された前記データは、中央処理ユニット（ＣＰＵ）のタイプを含む、請求項１に記載のコンピュータシステム。
【請求項６】
前記ＳＭＢＩＯＳデバイスリストから収集された前記データは、前記コンピュータシステム内のＣＰＵの個数を含む、請求項１に記載のコンピュータシステム。
【請求項７】
前記ＳＭＢＩＯＳデバイスリストから収集された前記データは、グラフィック処理ユニット（ＧＰＵ）のタイプを含む、請求項１に記載のコンピュータシステム。
【請求項８】
前記ＳＭＢＩＯＳデバイスリストから収集されたデータは、ネットワークインタフェイスカード（ＮＩＣ）のタイプ、又は、アドバンスト・コンフィギュレーション・パワー・インタフェース（ＡＣＰＩ）レベルを含む、請求項１に記載のコンピュータシステム。
【請求項９】
前記バスは、ペリフェラル・コンポーネント・インタフェイス（ＰＣＩ）バス、又は、ＰＣＩ  Ｅｘｐｒｅｓｓバスである、請求項１に記載のコンピュータシステム。
【請求項１０】
前記コンピュータシステムは、複数のバスを備えており、
前記シグネチャ生成器は、前記複数のバス内の各バスを調べ、各バスについて、該バスに結合された各デバイスに固有の識別子を割り当て、該バスに結合された各デバイスのコンフィギュレーションスペースレジスタにアクセスしてバスタイプを決定するように構成されている、
請求項１に記載のコンピュータシステム。
【発明の詳細な説明】
【発明の背景】
【０００１】
＜技術分野＞
[0001]本発明の実施形態は、広く、コンピュータシステムのコンフィギュレーションを識別することに関するものであり、より詳細には、ハードウェアプラットフォームクラスの識別を高速化するシステム及び方法に関するものである。
【０００２】
＜関連技術の説明＞
[0002]典型的な近代のＸ８６ベースのコンピュータシステムは、様々なコンポーネント製造者からの多数の異なるハードウェアコンポーネントを備えている。これらコンポーネントは、コンピュータシステムのニーズに適した特定のバス及び入出力アーキテクチャで、構成されることがある。例えば、このようなシステムは、制限するものではないが、特定の製造業者からの一以上のグラフィックプロセッサ、一以上のネットワークインターフェイスコントローラ（ＮＩＣ）、一以上のＣＰＵ、ＰＣＩ（商標）又はＰＣＩ−ｅｘｐｒｅｓｓ（商標）といったある個数の、且つ、混成のバスインターフェイスに対応する種々の可能性のあるバス構造、ある量のインストールされたメモリ、０個以上のハードディスク、又は、０個以上の光記憶媒体ドライブを備えることがある。バスアーキテクチャは、製造時に選択され、通常は、特定のシステムに対して固定されている。しかしながら、各コンポーネント、又は、各コンポーネントのバージョンは、コストを最小化し、古い部品を使用した増産後に発見されるバグを修正するために、製造者によって状況に応じて選択され、また、特定のモデルのコンピュータシステムで使用される。場合によっては、特定のモデルのコンピュータシステムが、種々の速度等級のＣＰＵを備えることがある。更に複雑なことに、種々のコンポーネントが、ユーザによって取り除かれ、置き換えられ、又は、追加されることがある。
【０００３】
[0003]特定のコンピュータシステムを、特定のクラスのハードウェアプラットフォームのメンバーとして識別することは、多くの目的、例えば、資産運用及びシステム管理自動化に有用である。特定のコンピュータシステムのハードウェアプラットフォームを識別する現在の技術は、ハードウェアプラットフォームに関連する仕様及び特徴を列挙したリストに基づくものである。所与のコンピュータシステムが、特定のクラスのハードウェアプラットフォームの一部であるか否かを決定するために、コンピュータシステムの仕様及び特徴は、ハードウェアプラットフォームのクラスを定義する列挙型のリストと比較される。コンピュータシステムを分類するプロセスは、通常、手動で行われるものであり、相当な作業時間及び費用を要する。これは、特定のシステムを記述するために必要なデータ量が、相当に大規模で多すぎるものだからである。多数のコンピュータシステムが手動で分類される例示のシナリオは、異なるタイプ及びバージョンのディスクレス計算デバイスの混成に関するコンピュータシステムの配置であり、ここでは、ブートサーバが、各クラスのハードウェアプラットフォーム用の固有のブートイメージを有する。この場合にも、かかるシナリオは時間を消費し高価なものである。更に、かかるシナリオでは、人為的エラーが多くなる。
【０００４】
[0004]上述したように、本技術分野では、異なるハードウェアコンフィギュレーションを有するコンピュータシステムを分類するより効率の良い手法が求められている。
【発明の概要】
【０００５】
[0005]本発明のある実施形態は、コンピュータシステムのハードウェアコンフィギュレーションを一意的に識別するための方法を示す。この方法は、コンピュータシステムに対して生成されたシステム管理基本入出力システム（ＳＭＢＩＯＳ）デバイスリストからデータを集めるステップと、コンピュータシステム内のバスを調べて、バスのトポロジーを決定し、バスに結合された各デバイスに固有の識別子を割り当てるステップと、バスに結合された各デバイスのコンフィギュレーションスペースレジスタにアクセスして、バスタイプを決定するステップと、コンピュータシステムのシグネチャ値を、少なくともＳＭＢＩＯＳデバイスリストから集めたデータとバスタイプとに基づいて計算するステップと、を含む。
【０００６】
[0006]開示する本方法の一つの利点は、コンピュータのハードウェアコンフィギュレーションを単一のシグネチャ値を介して簡潔に識別する方法が提供されることである。
【０００７】
[0007]本発明の上述した特徴をより詳細に理解できるように、上で要約した本発明のより詳細な説明を、実施形態を参照して行う。実施形態のうち幾つかについては、添付の図面で示す。しかしながら、添付の図面は、本発明の典型的な実施形態だけを示すものであり、したがって、本発明を限定するものと見做すべきではなく、本発明は他の等しく効果的な実施の形態も発明の範囲も許容するものであることに留意されたい。
【詳細な説明】
【０００８】
[0011]図１は、種々のシステムコンポーネントを備える本発明の実施形態に係るコンピュータシステム１００の概念図である。図示するように、コンピュータシステム１００は、限定するものではないが、ＣＰＵ１１０、システムメモリ１２４、及び、ある場合には、第２のＣＰＵ１１２のような複数の高帯域幅デバイスを相互接続するために使用されるノースブリッジ１１４を備えている。ノースブリッジ１１４は、メモリコントローラ及び調停器を有しており、当該調停器は、種々の接続デバイスによって発せられたメモリ要求を管理する。コンピュータシステム１００の典型的な構成はまた、ノースブリッジ１１４に接続されたＧＰＵ１１６を備える。ある例では、第２のＧＰＵ１１８がノースブリッジ１１４に接続して、追加の特徴又は単一のＧＰＵシステムよりも高い性能を提供してもよい。一以上の拡張ポート、例えば、ＰＣＩ−ｅｘｐｒｅｓｓポート１３０又は標準ＰＣＩポート１３２が、ノースブリッジ上に存在してもよい。ＧＰＵ１１６及び１１８は、通常、幾つかの利用可能なＰＣＩ−ｅｘｐｒｅｓｓポートのうちの一つを介してノースブリッジ１１４に接続する。ＮＩＣ１２０が、ノースブリッジ１１４に接続されていてもよく、或いは、サウスブリッジ１４０に接続されていてもよい。双方の場合に、ＮＩＣ１２０は、コンピュータシステム１００にネットワーク機能を提供する。プログラマブル読み取り専用メモリ（ＰＲＯＭ）１２２が、ノースブリッジに取り付けられており、ファームウェア１２３の不揮発性記憶を提供している。ファームウェア１２３は、限定するものではないが、システムをブートする手続きを含んでいる。別の実施形態では、ファームウェア１２３を記憶するＰＲＯＭ１２２が、サウスブリッジ１４０に取り付けられていてもよい。シグネチャ生成器１５０は、より詳細には後述するが、システム１２４内のソフトウェアモジュールとして動作し、固有のシグネチャ値を生成する。このシグネチャ値は、コンピュータシステム１００のハードウェアコンフィギュレーションを示す。シグネチャ生成器１５０は、ＰＲＯＭ１２２内に含められているファームウェア１２３からシステムメモリ１２４に実行のためにロードされてもよい。別の実施形態では、シグネチャ生成器１５０は、ＰＲＯＭ１２２内に上述するファームウェア１２３のイメージ内でそのまま動作してもよい。
【０００９】
[0012]サウスブリッジ１４０は、通常、３２ビットＰＣＩポート１３４及び１３６のようなより低速度の拡張インタフェイスを提供する。サウスブリッジ１４０はまた、ＵＳＢ、即ち、キーボード及びマウスのインタフェイス（図示せず）のような多様な共通の更に低速のポートを提供する。サウスブリッジ１４０は、通常、共通のシステム機能を有しており、電力制御インターフェース（ＡＣＰＩ）の電力管理標準規格を、ＡＣＰＩ電力管理モジュール内に実装している。
【００１０】
[0013]多くの異なる汎用（commodity)ハードウェアコンポーネントが、コンピュータシステム１００のハードウェアインフラストラクチャを構築するために使用されることがある。例えば、ＣＰＵ１１０及び１１２は、種々の世代から、また、利用可能な速度等級から選択されることがある。同様に、ＧＰＵ１１６及び１１８は、種々の世代から、また、一つより多いプロダクトファミリーから選択されることがある。コンピュータシステムの統一したハードウェアコンフィギュレーション検出（discovery）を提供する業界全体のメカニズムを促進するために、ＤＭＴＦ（Distributed Management Task Force）が、ハードウェアコンフィギュレーションの検出を標準化する仕様を定義しており、システム管理ＢＩＯＳ（ＳＭＢＩＯＳ）と称されている。ＳＭＢＩＯＳ仕様は、本技術分野では公知であり、ｘ８６コンピュータシステム製造者の間でよく採用されている。ＳＭＢＩＯＳは、ファームウェア１２３内のモジュールとして実装されており、所与のコンピュータシステム内に存在する全てのハードウェアデバイスのリストを提供するために使用される。しかしながら、ＳＭＢＩＯＳデバイスのリストは、ＰＣＩバスのトポロジー、番号又はタイプ情報を含まないので、ＳＭＢＩＯＳは、コンピュータシステムのハードウェアコンフィギュレーションの部分的な記述のみに使用される。
【００１１】
[0014]図２は、本発明の実施形態に係り、シグネチャ生成器１５０を経由する収集されたコンフィギュレーションデータ２１０〜２２２のフローであって、コンピュータシステム用のシグネチャ値２４０をもたらすフローを示している。シグネチャ値２４０は一意的なものであり、所与のコンピュータシステムのハードウェアコンフィギュレーションを示す比較的短い数値である。重要なのは、機能的に等価なハードウェアコンフィギュレーションを有する異なるコンピュータシステムは、同一のシグネチャ値を有することである。したがって、同じシグネチャ値を共有するコンピュータシステムは、機能的に等価なハードウェアコンフィギュレーション又はプラットフォームのクラスのメンバーである。このような等価なクラスの各々は、任意の多数のメンバーを有しており、同じ等価なクラス内のコンピュータシステムは、ドライバやオペレーティングシステムの要件に対して同一の動作を行う。逆に、特定の等価なクラス外のコンピュータシステムは、同一の動作を行う保障はなく、異なる又は追加のドライバを必要とする。
【００１２】
[0015]意味のあるメンバーシップを等価なクラスにおいて確立するために必要なコンピュータシステム１００の重要なハードウェアコンポーネントの全てをキャプチャするシグネチャ値を計算するために、本明細書で先述したＳＭＢＩＯＳデバイスリストに含まれているあるコンポーネントに関する情報、及び、コンピュータシステム１００のＰＣＩバスコンフィギュレーションに関する情報が、考慮される。ある実施形態では、シグネチャ値２４０を計算するためにＳＭＢＩＯＳデバイスリストから使用されるデータの特定のサブセットは、ＣＰＵタイプ２１０、ＣＰＵの個数２１２、ＣＰＵタイプ２１４、ＮＩＣタイプ２１６、及びＡＣＰＩレベル２１８を含む。シグネチャ値２４０を計算するために使用されるＰＣＩバスコンフィギュレーション関する情報は、ＰＣＩバスサブシステムを、本技術分野で知られた技術を用いて調べることによって、決定されてもよい。まず、シグネチャ生成器１５０は、ＰＣＩバスシステムに取り付けられているデバイスを求めるためにＰＣＩバスを調べ、次いで、そのような各デバイスに、当該デバイスを一意に識別する番号を割り当てる。全体のバスのトポロジー、及び割り当てられた番号は、図２のＰＣＩバストポロジー及び番号２２０によって表される。次に、シグネチャ生成器１５０は、取り付けられたデバイスの各々のコンフィギュレーションスペースレジスタをアクセスして、ＰＣＩバスのＰＣＩバスタイプ２２２を決定する。ＰＣＩバスタイプ２２２は、バス幅、電圧整合性、速度整合性、及びバスバージョン（例えば、バスがＰＣＩバスか又はＰＣＩ  Ｅｘｐｒｅｓｓバスか）のようなバス特性を反映する番号の集合である。バスサブシステム内に一より多いバスが存在する場合には、バストポロジーの探索によって、複数のバスの存在を示し、次いで、コンフィギュレーションスペースレジスタからアクセスされる情報を使用して、各バスのバスタイプを特定する。
【００１３】
[0016]ＳＭＢＩＯＳデバイスリストデバイスリストから特別に選択されたエントリからのデータを、ＰＣＩバス探索の結果と組み合わせることによって、システム特性のリストが集められる。このリストは、所与のコンピュータシステムが特定の等価なクラスのメンバーであるか否かを決定するのに十分なものである。未処理の形態では、このシステム特性のリストは、数百バイトのデータを有しており、このリストを自動マッチングオペレーションに使用することを困難とする。したがって、更なる効率化を図るために、システム特性のリストは、シグネチャ生成器１５０を通され、ここで、適切なハッシュ関数が、未加工のデータをシグネチャ値２４０に変換する。この場合にも、シグネチャ値２４０は、コンピュータシステム１００の等価なクラスを示す。ＳＭＢＩＯＳデバイスリストデバイスリストで表されたデータを収集し、ＰＣＩバスを探索し、収集したコンフィギュレーションデータをフォーマットし、データをハッシュ変換してシグネチャ値２４０を生成する全プロセスは、シグネチャ生成器１５０によって管理される。
【００１４】
[0017]図３は、コンピュータシステム１００の特定のハードウェアコンフィギュレーションを表すシグネチャ値２４０を生成するための本発明の実施形態に係る方法ステップのフロー図である。本方法ステップを図１及び図２と共に説明するが、当業者は、本方法ステップを任意の順序で実行する任意のシステムが、本発明の範囲に含まれることを理解するであろう。
【００１５】
[0018]シグネチャ値２４０を生成するための方法は、ステップ３１０で開始し、ここでは、シグネチャ生成器１５０が、コンピュータシステム１００用に生成されたＳＭＢＩＯＳデバイスリストからのデータ、例えば、図２のデータエレメント２１０〜２１８を集める。ステップ３１２では、シグネチャ生成器１５０は、本明細書で先述したように、ＰＣＩバスを調べて、ＰＣＩバストポロジーを検出し、番号２２０を決定する。ステップ３１４では、シグネチャ生成器１５０は、取り付けられたデバイスであってステップ３１２で特定された当該デバイスの各々のコンフィギュレーションスペースレジスタをアクセスして、バスサブシステム内の各バスタイプを決定する。ステップ３１６では、シグネチャ生成器１５０は、ＳＭＢＩＯＳデバイスリストからのデータ及びＰＣＩコンフィギュレーションデータを、選択されたハッシュ関数への入力のためにフォーマットする。ステップ３１８では、シグネチャ生成器１５０は、ハッシュ関数を使用して、コンピュータシステム１００用のシグネチャ値２４０を、収集されたデータに基づいて生成する。本方法は、次いで、ステップ３２０において終了する。
【００１６】
[0019]近代のｘ８６コンピュータシステムは、多様なシステムコンフィギュレーションを有しており、多様なコンポーネントから組み合わされており、これらコンポーネントの各々は定義された機能要件を満たしている。ＰＣＩトポロジー及びタイプ情報、並びに、ＳＭＢＩＯＳデバイスリストからの選択されたデータを含む重要なシステムコンフィギュレーション情報を選択してハッシングすることによって、所与のコンピュータシステムのハードウェアクラスを一意に識別するシグネチャ値を生成する。この技術の効率性は、例えば、本明細書に説明した技術を使用してコンピュータシステム用に生成した１２８ビットのシグネチャ値を、他の方法ではコンピュータシステムのハードウェアコンフィギュレーションを識別するために要する数百バイトと比較することによって実証される。
【００１７】
[0020]上記説明は、本発明の実施形態に向けたものであるが、他の又は更なる本発明の実施形態を本発明の基本的な範囲から逸脱することなく考案することができる。例えば、図１〜３はＰＣＩタイプのバス及びバスサブシステムを備えるコンピュータ一ステムを示しているが、本明細書に開示した本発明の概念は、コンピュータシステムに含まれることがある任意のタイプのバス又はバスサブシステムに当てはまる。したがって、本発明の範囲は、特許請求の範囲によって決定される。
【図面の簡単な説明】
【００１８】
【図１】種々のシステムコンポーネントを含む本発明の実施形態に係るコンピュータシステムの概念図である。
【図２】本発明の実施形態に係り、シグネチャ生成器を経由する収集されたコンフィギュレーションデータのフローであって、コンピュータシステム用のシグネチャ値をもたらすフローを示す図である。
【図３】本発明の実施形態に従ってコンピュータシステムの特定のハードウェアコンフィギュレーションを表すためにシグネチャ値を生成する方法ステップのフロー図である。
【符号の説明】
【００１９】
１００…コンピュータシステム、１１０，１１２…ＣＰＵ、１１４…ノースブリッジ、１１６，１１８…ＧＰＵ、１２０…ＮＩＣ、１２４…システムメモリ、１２２…ＰＲＯＭ、１２３…ファームウェア、１２４…システムメモリ、１４０…サウスブリッジ、１５０…シグネチャ生成器。
【図１】
2008090819.tif 000003
【図２】
2008090819.tif 000004
【図３】
2008090819.tif 000005
【外国語明細書】
2008090819000001.pdf