(57)【特許請求の範囲】
【請求項１】
計算システムであって、
複数のプロセッサであって、各プロセッサは無線周波数（ＲＦ）信号で前記プロセッサに関連するＲＦ識別（ＩＤ）タグデータをブロードキャストするＲＦＩＤタグを含み、各プロセッサはシステム相互接続により複数の他のプロセッサと結合した、複数のプロセッサと、
前記複数のプロセッサのうち少なくとも一プロセッサに結合したプラットフォーム制御ハブ（ＰＣＨ）であって、前記ＰＣＨは前記複数のプロセッサのＲＦＩＤタグからＲＦ信号を受信するＲＦＩＤレシーバと、前記複数のプロセッサから受信したＲＦＩＤタグデータを格納する複数のＲＦＩＤレジスタとを含む、プラットフォーム制御ハブと、
前記ＰＣＨに結合し、ベーシック入力／出力システム（ＢＩＯＳ）を格納するフラッシュメモリであって、前記ＢＩＯＳは対応するプロセッサに前記ＰＣＨの前記複数のＲＦＩＤレジスタから前記ＲＦＩＤタグデータを読み出し、前記システム相互接続の最適ルーティングテーブルを決定させる、フラッシュメモリと
を有する、計算システム。
【請求項２】
前記ＲＦＩＤタグデータは、プロセッサの相互接続ロケーションと初期化状態とを含む、請求項１に記載の計算システム。
【請求項３】
前記ＲＦＩＤタグデータは、前記プロセッサのケーパビリティＩＤを含み、前記相互接続ロケーションはソケットＩＤを含む、請求項２に記載の計算システム。
【請求項４】
前記初期化状態は前記プロセッサのビルトイン・セルフテスト（ＢＩＳＴ）ステータスを含む、請求項２に記載の計算システム。
【請求項５】
前記ＰＣＨは、プロセッサのＲＦＩＤレジスタにＲＦＩＤタグデータがあれば、前記プロセッサのＢＩＳＴステータスをシステムイベントログに格納し、前記プロセッサのＲＦＩＤレジスタにＲＦＩＤタグデータがなければ、前記計算システムのベースバンド管理コントローラに警告を送るマイクロコントローラをさらに有する、
請求項４に記載の計算システム。
【請求項６】
前記ＢＩＯＳは、前記対応するプロセッサに、前記システム相互接続により各プロセッサに問い合わせすることなく、前記最適ルーティングテーブルに少なくとも部分的に基づいて前記システム相互接続の仮想ネットワークを構成させる、
請求項１に記載の計算システム。
【請求項７】
前記ＢＩＯＳは、前記対応するプロセッサに、システム相互接続リンクの等化パラメータを設定し、高速モードへの前記リンクのトレーニングを開始させる、
請求項６に記載の計算システム。
【請求項８】
前記システム相互接続はＱｕｉｃｋＰａｔｈ相互接続を含む、
請求項１に記載の計算システム。
【請求項９】
計算システムの初期化方法であって、
前記計算システムの複数のプロセッサの各プロセッサをパワーオンするステップであって、各プロセッサは無線周波数（ＲＦ）識別（ＩＤ）タグを含み、各プロセッサはシステム相互接続により複数の他のプロセッサと結合しているステップと、
各プロセッサの前記ＲＦＩＤタグが、ＲＦ信号により前記プロセッサと関連するＲＦＩＤタグデータをブロードキャストするステップと、
前記複数のプロセッサの少なくとも一プロセッサに結合したプラットフォーム制御ハブ（ＰＣＨ）のＲＦＩＤレシーバが、前記複数のプロセッサのＲＦＩＤタグからＲＦ信号を受信するステップと、
前記ＰＣＨの複数のＲＦＩＤレジスタに、前記ＲＦ信号からのＲＦＩＤタグデータを格納するステップと、
ベーシック入力／出力システム（ＢＩＯＳ）が、対応するプロセッサに、前記ＲＦＩＤレジスタからＲＦＩＤタグデータを読み出し、前記ＲＦＩＤタグデータを用いて、前記システム相互接続の最適ルーティングテーブルを決定させるステップと
を有する、方法。
【請求項１０】
前記ＲＦＩＤタグデータは、プロセッサの相互接続ロケーションと初期化状態とを含む、
請求項９に記載の方法。
【請求項１１】
前記ＲＦＩＤタグデータは、前記プロセッサのケーパビリティＩＤを含み、前記相互接続ロケーションはソケットＩＤを含む、請求項１０に記載の方法。
【請求項１２】
前記初期化状態は前記プロセッサのビルトイン・セルフテスト（ＢＩＳＴ）ステータスを含む、請求項１０に記載の方法。
【請求項１３】
前記ＰＣＨはマイクロコントローラを有し、前記マイクロコントローラは、前記プロセッサのＲＦＩＤレジスタにＲＦＩＤタグデータがあれば、前記プロセッサのＢＩＳＴステータスをシステムイベントログにロギングし、前記プロセッサのＲＦＩＤレジスタにＲＦＩＤタグデータがなければ、前記計算システムのベースバンド管理コントローラに警告を送る、請求項１２に記載の方法。
【請求項１４】
前記ＢＩＯＳが前記対応するプロセッサに、前記システム相互接続により各プロセッサに問い合わせすることなく、前記最適ルーティングテーブルに少なくとも部分的に基づいて前記システム相互接続の仮想ネットワークを構成させるステップをさらに有する、請求項９に記載の方法。
【請求項１５】
前記ＢＩＯＳが前記対応するプロセッサに、システム相互接続リンクの等化パラメータを設定し、高速モードへの前記リンクのトレーニングを開始させるステップをさらに有する、請求項１４に記載の方法。
【請求項１６】
前記ＢＩＯＳが前記対応するプロセッサに、オペレーティングシステム（ＯＳ）に制御を渡させるステップをさらに有する、請求項１５に記載の方法。
【請求項１７】
前記システム相互接続はＱｕｉｃｋＰａｔｈ相互接続を含む、請求項９に記載の方法。
【請求項１８】
前記ＢＩＯＳが前記対応するプロセッサに、パワーオン・セルフテスト（ＰＯＳＴ）モード中に前記最適ルーティングテーブルを決定させるステップをさらに有する、
請求項９に記載の方法。
【請求項１９】
前記ＢＩＯＳが前記対応するプロセッサに、前記システム相互接続により前記プロセッサに問い合わせせずに、前記プロセッサのＢＩＳＴステータスにアクセスさせるステップをさらに有する、請求項１２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概してコンピュータシステムに関し、より具体的には、複数のプロセッサを有するサーバの初期化と管理に関する。
【背景技術】
【０００２】
計算システムはますます複雑化している。計算システムがより多くのプロセッサ、より多くのソケット、及びより入り込んだ相互接続方式を含めば、初期化処理に手間と時間がかかるようになる。複数のプロセッサを有するサーバシステム、例えば４ウェイシステムや８ウェイシステムなどの場合、（一般性を失わずに）システム初期化処理の際にファブリック内の有効なプロセッサのネットワークを決定する時間と努力が大きくなりつつある。ある計算システムでは、この初期化処理の大部分は、ＢＩＯＳ（Basic  Input/Output  System）に処理がまかされている。ＢＩＯＳを用いてシステムトポロジディスカバリタスクを実行し、システム相互接続によりプロセッサにクエリを送るのは不十分であるが、現在のシステムでは必要である。計算システムのプロセッサやサーバコンポーネントが増えると、それにより初期化処理時間と手間が増え、システムブーティングの性能に負の影響を与える。
【発明の概要】
【課題を解決するための手段】
【０００３】
一実施形態による計算システムは、複数のプロセッサであって、各プロセッサはラジオ周波数（ＲＦ）信号で前記プロセッサに関連するＲＦ識別（ＩＤ）タグをブロードキャストするＲＦＩＤタグを含み、システム相互接続により複数の他のプロセッサと結合した複数のプロセッサと、前記プロセッサのうち少なくとも一に結合したプラットフォーム制御ハブ（ＰＣＨ）であって、前記ＰＣＨは前記プロセッサのＲＦＩＤタグからＲＦ信号を受信するＲＦＩＤレシーバと、前記プロセッサから受信したＲＦＩＤタグデータを格納する複数のＲＦＩＤレジスタとを含む、プラットフォーム制御ハブと、前記ＰＣＨに結合し、ベーシック入力／出力システム（ＢＩＯＳ）を格納するフラッシュメモリであって、前記ＢＩＯＳは前記ＰＣＨの前記ＲＦＩＤレジスタから前記ＲＦＩＤタグデータを読み出し、前記システム相互接続の最適ルーティングテーブルを決定する、フラッシュメモリとを有する。
【０００４】
他の一実施形態による計算システムの初期化方法は、前記計算システムの複数のプロセッサの各々をパワーオンするステップであって、各プロセッサはラジオ周波数（ＲＦ）識別情報（ＩＤ）タグを含み、システム相互接続により複数の他のプロセッサと結合しているステップと、ＲＦ信号により前記プロセッサと関連するＲＦＩＤタグデータを、各プロセッサのＲＦＩＤタグにより、ブロードキャストするステップと、前記プロセッサの少なくとも一に結合したプラットフォーム制御ハブ（ＰＣＨ）のＲＦＩＤレシーバにより、前記プロセッサのＲＦＩＤタグからＲＦ信号を受信するステップと、前記ＰＣＨの複数のＲＦＩＤレジスタに、前記ＲＦ信号からのＲＦＩＤタグデータを格納するステップと、ベーシック入力／出力システム（ＢＩＯＳ）により、前記ＲＦＩＤレジスタからＲＦＩＤタグデータを読み出し、前記ＲＦＩＤタグデータを用いて、前記システム相互接続の最適ルーティングテーブルを決定するステップとを有する。
【図面の簡単な説明】
【０００５】
本発明の他の特徴及び効果は、以下の詳細な説明を読めば明らかとなるであろう。
【図１】本発明の一実施形態による計算システムを示す図である。
【図２】本発明の一実施形態によるＲＦＩＤタグの内容を示す図である。
【図３】本発明の一実施形態によるルーティングテーブルを示す図である。
【図４】本発明の一実施形態によるシステム初期化処理を示すフロー図である。
【図５】本発明の一実施形態によるシステム初期化処理を示すフロー図である。
【発明を実施するための形態】
【０００６】
本発明の一実施形態は、計算システム内のプロセッサに埋め込まれたＲＦＩＤ（radio  frequency  identification）タグを用いてシステム初期化処理を支援するシステムと方法である。ＲＦＩＤタグ、初期化処理の際に計算システムの他のコンポーネントへの、システム相互接続とは別の通信経路を提供する。計算システムに電力が供給されると、システム中の各プロセッサは、そのＲＦＩＤタグに、プロセッサの相互接続ロケーションと初期化状態に関するデータをブロードキャストさせる。一実施形態では、ＲＦＩＤタグは計算システムのプラットフォームコントロールハブ（ＰＣＨ）中のＲＦＩＤレシーバにより検知され、各プロセッサの相互接続ロケーションと初期化状態データがＰＣＨ内のレジスタに格納される。ＢＩＯＳは、システム初期化処理において実行されると、これらのＰＣＨレジスタにアクセスして、プロセッサのデータを取得する。相互接続ロケーションと初期化状態データは、最適なルーティングテーブルを選択し、最適なルーティングテーブルとＲＦＩＤタグデータとに少なくとも部分的に基づいて、システム相互接続により各プロセッサに個別に問い合わせしなくても、計算システム内に仮想ネットワークを構成するため、ＢＩＯＳにより用いられる。これにより、システムブート時間が改善され、相互接続にデッドロックの無い最適なルーティングが用いられることが。改善されたＲＡＳ（信頼性、可用性、及びサービサビリティ）を提供するシステムを展開する場合、デッドロックの無いルーティングが重要である。
【０００７】
本明細書において本発明の「一実施形態」とは、その実施形態に関して説明する機能、構造、特徴が少なくとも本発明の１つの実施形態に含まれることを意味している。よって、本明細書ではいろいろな箇所で「一実施形態では」と記載するが、必ずしも同じ実施形態を指すものではない。
【０００８】
一実施形態では、本発明は、Intel  Corporationから商業的に入手できるQuick  Path  Interconnect（ＱＰＩ）テクノロジーをサポートする計算システムで実現できるが、その他のシステム相互接続を用いても良い。ＱＰＩは、一定のＩｎｔｅｌプロセッサと用いる、高速、パケット化、ポイント・ツー・ポイント相互接続である。狭い高速リンクにより、プロセッサは、分散共有メモリ型プラットフォームアーキテクチャで通信できる。以前のフロントサイドバスアーキテクチャと比較して、ＱＰＩは低レイテンシで非常に大きな帯域幅を提供する。ＱＰＩは、以前の技術よりも、より大きな相互接続性能を達成できる効率的なアーキテクチャを有する。ＱＰＩは、低レイテンシと高スケーラビリティのために最適化されたスヌーププロトコル（snoop  protocol）を提供し、トランザクションの素早い完了を可能とするパケット・レーン構造を提供する。ミッション・クリティカルサーバの必要性に応えるため、信頼性、可用性、及びサービサビリティ（ＲＡＳ）がアーキテクチャに組み込まれている。
【０００９】
計算システム初期化プロセスの始めに、電力を供給し、すべての重要なクロック回路を安定化させ、計算システムが予測され制御された具合に動作を開始するようにいろいろなリセット信号の発行を制御する。ここでは、リセットは、ハードウェアの初期状態を確立する一組のハードウェアベースのイベントであると定義する。初期化は、リセットに続き、ハードウェアにブートファームウェアの実行を準備させる一組の命令シーケンスであると定義する。次に、ブートファームウェア（すなわちＢＩＯＳ）は、オペレーティングシステム（ＯＳ）のロードと、ＯＳへの制御の移行を準備する。これらのハードウェアとブートファームウェアの目標は、そのタスクを効率的に完了させ、できるだけ早く制御をＯＳに渡すことである。これは、フォーナイン又はファイブナインの信頼性が必要なシステムにとって重要である。こうしたシステムでは、システムブートは年に１、２回だけ許される。システムブートプロセスは、システムアドミニストレータが計算システムを柔軟にサービスできるように、できるだけ速いことが必要である。
【００１０】
計算システムが最初にリセットされ、ＢＩＯＳが実行されると、複数のタスクの一は、どんなリソースが利用でき、それらはどう相互接続されているかディスカバリすることである。ここでは、プロセッサソケットを設定するときにブートストラッププロセッサがいろいろな役割を果たすのと同様に、いろいろなハードウェア機能が役割を果たす。しかし、入手可能な情報を調べ、何のリソースが存在し、リソースが劣化状態にある場合にどれが機能しているか判断する方法プロセスを行い、それらのリソースを最適かつ信頼できるやり方でＯＳに向けて設定するのは、システムブートストラッププロセッサ（ＳＢＳＰ）である。このプロセスはトポロジーディスカバリと呼ぶ。
【００１１】
既存のシステムでは、システム初期化の際に、プロセッサのパワーコントロールユニット（ＰＣＵ）に常駐するソフトウェアにより、ＱＰＩトポロジーディスカバリが行われる。しかし、トポロジーディスカバリは、ＱＰＩネットワークのＢＩＯＳから２ホップ以内にあるプロセッサに対して行える。８個のソケットと「ピンホィール」すなわちリングアーキテクチャで構成された８までのプロセッサを有するシステムの例では、これは一般的に、６個のソケットが、それらのソケットに接続されたプロセッサのＰＣＵで実行されているＰｃｏｄｅにより構成されたＱＰＩリンクを有せないことを意味する。それにもかかわらず、ＢＩＯＳは、ＱＰＩディスカバリ処理の一部として、その６個のプロセッサに対してＱＰＩリンクを構成しなければならない。これを行うには、ＢＩＯＳは、システム相互接続中の各ＱＰＩリンクをディスカバし、低速動作モード用のリンクを、もしそのリンクがＢＩＯＳを実行しているプロセッサに直接接続されていなければトレーニングし、その他の（仮想ネットワーク（ＶＮ）０又はＶＮ１などの）プロセッサソケット機能をディスカバし、ディスカバされたＱＰＩルーティングトポロジ中にデッドロックが無いことを確認し、ディスカバされたリンクに基づきトポロジが最適であることを確認し、ＱＰＩリンクにエラーがあるか確認し、最後にすべてのリンクを高速動作モードに対してトレーニングしなければならない。ＢＩＯＳ  ＱＰＩディスカバリ処理は、一般的に、（例えば、現在の４ウェイシステムや８ウェイシステムでは）実行に数十分かかり、場合によっては、ルーティングにデッドロックが無いことは保証しても、ＱＰＩ構成が最適であることは保証しない。また、リモートソケットにインストールされたプロセッサが、そのプロセッサのビルトイン・セルフテスト（ＢＩＳＴ）の一部（any  aspect）に合格しなかったことを、トポロジーディスカバリが完了するまで、ＢＩＯＳには知るすべがない。
【００１２】
本発明の実施形態では、プロセッサに組み込まれたＲＦＩＤタグを用いて、システム相互接続のトポロジディスカバリプロセスを改善する。図１は、本発明の一実施形態による計算システムを示す図である。計算システム１００には具体的な構成で８個のプロセッサを示した。しかし、他の計算システムでは、用いるプロセッサの数や構成は異なってもよい。計算システム１００の各プロセッサは、マザーボードの物理ソケット（図示せず）に接続されている。実施形態によっては、インストールされるプロセッサの数は用意されたソケットの数より少なくてもよい。例えば、計算システムには８個のソケットを設けても、そのうちの６個のみにプロセッサをインストールしてよい。どのソケットにプロセッサがインストールされており、そのプロセッサのうちのどれが初期化され機能中であるかのディスカバリは、本発明の実施形態により行われる。図１の構成例に示したように、計算システム１００は、プロセッサ０  １０２、プロセッサ１  １０４、プロセッサ２  １０６、プロセッサ３  １０８、プロセッサ４  １１０、プロセッサ５  １１２、プロセッサ６  １１４、プロセッサ７  １１６を含む。各プロセッサは、プロセッサへの電力供給と初期化を制御する電力制御部（ＰＣＵ）（図示せず）を有する。一実施形態では、ソケットは３つのリンクのみを有する。したがって、このシステム構成例では、プロセッサ０  １０２は、プロセッサ１  １０４、プロセッサ７  １１６、及びプロセッサ４  １１０へのリンクを有する。プロセッサ１  １０４は、プロセッサ０  １０２、プロセッサ２  １０６、及びプロセッサ５  １１２へのリンクを有する。他のプロセッサは図示したリンクを有する。
【００１３】
図１に示した構成例では、プロセッサ０  １０２は、システムブートストラッププロセッサ（ＳＢＳＰ）として用いられ、プラットフォーム制御ハブ（ＰＣＨ）１１８との直接メディアインタフェース（ＤＭＩ）を有する。ＰＣＨ１１８は、計算システム中の他のコンポーネント（簡明化のため図示せず）の通信と動作を制御するチップセットコンポーネントを有する。ＰＣＨは計算システムのパワー初期化シーケンスを制御する。ＰＣＨ１１８は、マネージャビリティエンジン（ＭＥ）１４２を含む。ＭＥは、システムがオフになっていても、計算システムへのリモートアクセスと管理を許すマイクロコントローラを有する。ＭＥ１４２は、サイドバンド通信チャネルでプロセッサと通信し、ネットワーク（図１には図示せず）で他の計算プラットフォームと通信する。また計算システム１００は、シリアルペリフェラルインタフェース（ＳＰＩ）によりＰＣＨに結合したフラッシュメモリ１４４を含む。フラッシュメモリ１４４はＢＩＯＳ１２０を記憶している。一実施形態では、ＢＩＯＳ１２０は、プロセッサ０  １０２の処理コアで実行される。一般的に、システム初期化処理では、ＭＥとプロセッサ内のＰＣＵがＢＩＯＳの前に実行される。
【００１４】
本発明の実施形態では、各プロセッサはＲＦＩＤタグを有する。図１に示したように、プロセッサ０  １０２はＲＦＩＤタグ０  １２２を含み、プロセッサ１  １０４はＲＦＩＤタグ１  １２４を含み、プロセッサ２  １０６はＲＦＩＤタグ２  １２６を含み、プロセッサ３  １０８はＲＦＩＤタグ３  １２８を含み、プロセッサ４  １１０はＲＦＩＤタグ４  １３０を含み、プロセッサ５  １１２はＲＦＩＤタグ５  １３２を含み、プロセッサ６  １１４はＲＦＩＤタグ６  １３４を含み、プロセッサ７  １１６はＲＦＩＤタグ７  １３６を含む。各ＲＦＩＤタグは、従来から知られているように、プロセッサに関するデータをＲＦ信号で送信する。ＰＣＨ１１８は、ＲＦＩＤタグからＲＦ信号を受信するＲＦＩＤレシーバ１３８を有する。各ＲＦＩＤタグのデータは、そのＲＦＩＤタグが組み込まれているプロセッサを一意的に識別する。プロセッサへのＲＦＩＤタグの組み込みは、本発明と同一の譲受人に譲渡された米国特許出願第１２／５９２，２１２（発明の名称「Radio-Frequency  Reconfigurations  of  Microelectronic  Systems  in  Commercial  Packages」、２００９年１１月２０日出願、発明者Shahidzadeh  et  al.）に記載されている。この文献はここに参照援用する。
【００１５】
ＲＦＩＤレシーバ１３０は、ＲＦ信号を受信し、そのＲＦ信号に含まれるＲＦＩＤタグデータをＰＣＨに送る。ＰＣＨは、そのＲＦＩＤタグがどのプロセッサからのものか判断し、ＰＣＨ内のＲＦＩＤレジスタ１４０のうちの選択されたものに、ＲＦＩＤタグデータを格納する。プロセッサからのデータがＲＦＩＤレジスタに格納されると、ＭＥ１４２とＢＩＯＳ１２０は、ＲＦＩＤレジスタにアクセスして、そのデータをシステム相互接続トポロジの決定とディスカバリを含むシステム初期化目的に用いることができる。このデータにはシステムパワーアッププロセスの初期にアクセス可能なので、全体的なシステム初期化時間が短縮され得る。ＭＥ及び／又はＢＩＯＳが、システム初期化タスク（最適ルーティング設定の決定など）を実行するとき、ＱＰＩリンクによりプロセッサに明示的かつ個別に問い合わせするのではなく、利用できるデータを用いるからである。デッドロックの無い最適なルーティングを決定するのは、４個以上のプロセッサを有するサーバには、一般的に難しい問題である。しかし、本発明の実施形態では、ディスカバリの前にどのプロセッサがインストールされているかＭＥ及び／又はＢＩＯＳが知っていれば、ルーティングには、複雑で時間のかかるクローリングアルゴリズムではなく、ルックアップテーブルを用いる。
【００１６】
他の実施形態では、ＲＦＩＤレジスタは、サウスブリッジチップセット（Ｉ／Ｏコントロールハブ（ＩＣＨ））中のＴＣＯ（トータルコスト・オブ・オーナーシップ）ポートを介して、ベースバンド管理コントローラ（ＢＭＣ）によりアクセスされる。
【００１７】
図２は、本発明の一実施形態によるＲＦＩＤタグ２００の内容を示す図である。一実施形態では、ＲＦＩＤタグは次のデータフィールドを含む。他の実施形態では、プロセッサに関連する他のデータがＲＦＩＤタグに格納され、ＰＣＨに送信されてもよい。ソケット識別子（ＩＤ）２００は、ＲＦＩＤタグを送信したプロセッサが物理的に配置されているマザーボード上のプロセッサソケットを一意的に識別する番号である。８個のソケットを有する一実施形態では、ソケットＩＤは０から７までの番号である。一実施形態では、ソケットを識別するその他の番号やインジケータを用いても良い。ケーパビリティＩＤ２０４は、プロセッサのケーパビリティを既述し、中央処理装置（ＣＰＵ）ＩＤを含む。
【００１８】
ビルトイン・セルフテスト（ＢＩＳＴ）ステータス２０６は、キャッシュ結果、Ｉ／Ｏ結果などを含むプロセッサのＢＩＳＴ処理の結果を含む。ＢＩＳＴ結果はパワーアップの結果としてプロセッサにより決定される。プロセッサが複数のコアを含む場合、ＢＩＳＴステータスは各コアのＢＩＳＴ結果（すなわち、特定コアＢＩＳＴ結果）を含んでいてもよい。ＢＩＳＴ結果をＲＦＩＤタグデータに含めると、プロセッサがＢＩＳＴ結果をそのプロセッサ内のＥＡＸレジスタにロードする現在の方法とシステムに対して、利点がある。ＥＡＸレジスタは、システム相互接続トポロジとディスカバリ処理が完了した後でないと用いることができない）ＱＰＩリンクにより、（第１のＢＩＯＳコードフェッチ時に、ローカルＢＩＳＴ結果のみフェッチでき、リモートＢＩＳＴ結果はフェッチできない）ＢＩＯＳによってのみアクセス可能である。ＱＰＩリンクを介したプロセッサディスカバリとＳＢＳＰファームウェアエージェントが選択されるまで、リモートＢＩＳＴ結果は見えない。しかし、本発明の実施形態では、ＰＣＨのＲＦＩＤレジスタにＢＩＳＴ結果を格納するので、ＢＩＯＳがＢＩＳＴ結果に早くアクセスでき、プロセッサに直接問い合わせする必要がない。このため、ソケットの数が４個より多いシステムのパワーオン・セルフテスト（ＰＯＳＴ）動作が高速になり、ディスカバリ前に最適なルーティングを選択できる。ＦＲＢ（Fault  Resilient  Booting）シナリオでは、ＢＩＯＳは、どのＣＰＵコアとキャッシュスライスがＢＩＳＴテストに合格しなかったのか知る必要がある。ＢＩＯＳは、テストに合格しなかったコアやキャッシュスライスをディスエーブルするが、リセットが必要である。本発明の実施形態を用いて、BIOSは、どのコアとキャッシュスライスをディスエーブルしなければならないか知り、それによりリセットをまとめて一イベントにする。また、BIOSは、ＰＯＳＴ又はプラットフォーム動作に利用するのに先立って、エラーを起こしたコア又はキャッシュスライスを知っているので、ランタイムエラーを起こすリスクを生じずにディスエーブルできる。これにより、コードが故障したハードウェア上で実行されないので、プラットフォームがより安定しロバストになる。
【００１９】
また、ＢＩＯＳは、ソケットＩＤとケーパビリティＩＤから、ノードＩＤを連想して、ディスカバリ前に、計算システムにどのプロセッサがインストールされているか、構成できるＱＰＩリンクの数、及びデッドロックの無い正しいルーティングを知ることができる。これにより、ＢＩＯＳは、計算システムのトポロジの動的変化とプロセッサのＢＩＳＴ結果とに基づき、サポートされた各ＲＡＳモードの最適なルーティングのテーブルを維持できる。これは、最初のアーキテクチュアルＢＩＯＳフェッチの際に、しかしＱＰＩディスカバリの前にできる。一ソケットにつき２個以上の（それぞれが論理プロセッサに対応した）ノードＩＤがあってもよい。ＢＩＳＴ結果は、（エラーが無いことを示す）ゼロでも、（ＢＩＳＴ中にプロセッサにエラーが発生したことを示す）非ゼロでもよい。
【００２０】
図３は、本発明の一実施形態によるルーティングテーブルを示す図である。計算システムに格納されるルーティングテーブルの数はいくつでもよい。一実施形態では、計算システムにインストールされたプロセッサの数ごとに、最適なルーティングテーブルを予め決めてもよい。例えば、インストールされたプロセッサの数が８である場合、所定の最適ルーティングテーブルを選択する。システム構成が変わったとき（例えば、プロセッサが故障して動作しなくなったとき）、新しい構成に対応した最適ルーティングテーブルを選択する。最適ルーティングテーブルは、予め決められ、フラッシュメモリに又はＰＣＨに記憶される。インストールされたプロセッサの数が計算システムでサポートされるプロセッサの最大数より小さい場合のソケットの利用は、利用規則により決められる。
【００２１】
一実施形態では、トポグラフィ例を用いてデッドロックの無いルーティングを実現するには、２つの仮想ネットワーク（ＶＮ０とＶＮ１）が必要である。一実施形態では、偶数番号ノードから発せられるメッセージにはＶＮ０を用い、奇数番号ノードから発せられるメッセージにはＶＮ１を用い、宛先への最終ホップするメッセージはＶＮ０にスイッチされる。
【００２２】
図４は、本発明の一実施形態によるシステム初期化処理を示すフロー図である。ブロック４００において、ＰＣＨ１１８が、システム中の各プロセッサに、それぞれのパワーオンシーケンスを開始させる。一実施形態では、これは、各プロセッサにＸＸＲＥＳＥＴ信号をアサートすることにより開始される。各プロセッサはＢＩＳＴを実行する。各プロセッサは、少なくともＢＩＳＴ結果、そのソケットＩＤ、そのケーパビリティＩＤを、そのＲＦＩＤタグに格納し、そのＲＦＩＤタグを既知のＲＦ通信方法によりブロードキャストする。ブロック４０２において、ＰＣＨは、ＲＦＩＤレシーバ１３８により検知されたＲＦ信号中のプロセッサからのＲＦＩＤタグを受信し、ＲＦＩＤタグデータをＲＦＩＤレジスタ１４０に格納する。一実施形態では、一組のＲＦＩＤレジスタが各ソケットに関連している。あるソケットに関連するＲＦＩＤレジスタにデータが格納されていないとき、ＢＩＯＳは、そのプロセッサのパワーアップ時にエラーが発生したか、そのソケットが空であると推論する。ＲＦＩＤタグデータが格納されると、ＰＣＨ１１８は、ブロック４０４において、一実施形態では、ＸＸＲＥＳＥＴ信号をデ・アサート（de-assert）し、ＢＩＯＳにフラッシュメモリからのコードのフェッチを開始させる。次に、ブロック４０６において、ＢＩＯＳ１２０は、実行され、ＲＦＩＤレジスタ１４０から、自分のＲＦＩＤタグをブロードキャストしたプロセッサのＲＦＩＤタグデータを読み出す。ブロック４０８において、ＢＩＯＳは、ＲＦＩＤタグデータを用いて、入手できるプロセッサ特性とプロセッサがインストールされたソケットとＢＩＳＴ結果とに基づき、最適ルーティングテーブルを決定する。
【００２３】
また、ＢＩＯＳは、ＲＦＩＤタグデータを用いてさらに計算システムを構成する。例えば、あるソケットにプロセッサが実装（populate）されていないことをＲＦＩＤタグデータが示す場合、その空のソケットを初期化する試みは行われない。他の一例では、計算システムユーザが、現在構成されたシステムには不可能なＲＡＳトポロジを選択すると、ＢＩＯＳはこのことをユーザにすぐに表示することができる。
【００２４】
図５は、本発明の一実施形態によるシステム初期化処理を示すフロー図である。図５は、ＢＩＯＳとマネージャビリティエンジン（ＭＥ）によるＲＦＩＤタグデータの処理を示す。ブロック５００において、ＢＩＯＳがパワーオン・セルフテスト（ＰＯＳＴ）処理を開始する。ＢＩＯＳは、ＰＯＳＴの一部として、ＲＦＩＤレジスタ１４０をチェックして、プロセッサからのＲＦＩＤタグデータが格納されているか調べる。ＲＦＩＤタグデータがないとき、ブロック５０４において、ＭＥは、ＢＩＯＳリセットベクトルが実行されていないので、この状態を検知する。これは、プロセッサ又はプロセッサコアが正しくパワーアップされなかったこと、又はそのプロセッサへのシステム相互接続リンクが初期化されなかったことを意味する。ブロック５０６において、ＭＥは、エラーを報告するため、ベースバンド管理コントローラ（ＢＭＣ）及び／又はシステムアドミニストレータに警告を送る。ブロック５０２においてＲＦＩＤタグデータが検出されると、ブロック５０８において、ＭＥは、システムイベントログに各プロセッサのＢＩＳＴ結果のログを生成し、通常のシステムブートプロセスに参加する。ブロック５０２においてＲＦＩＤタグデータが検出されると、ブロック５１０において、ＢＩＯＳは、格納されたＲＦＩＤタグデータから知れるソケットトポロジに基づき、最適なルーティングテーブルを決定する。ブロック５１２において、ＢＩＯＳは、現在のトポロジに基づき計算システムのＱＰＩ仮想ネットワークを構成する。次に、ブロック５１４において、ＢＩＯＳは、ＱＰＩリンクの物理的及び電気的特性の等化（ＥＱ）パラメータを設定し、ＱＰＩ高速モードへのＱＰＩリンクのトレーニングを開始する。ブロック５１６において、ＢＩＯＳはＯＳに制御を渡す。
【００２５】
他の実施形態では、本発明は、ＱＰＩ以外のシステム相互接続技術を、例えばＨｙｐｅｒＴｒａｎｓｐｏｒｔコンソーシアムにより画定されたハイパートランスポート（ＨＴ）その他の相互接続を、サポートする計算システムで実施することもできる。
【００２６】
以下の動作は順次プロセスとして説明するかも知れないが、動作の一部は並行して又は同時に実行することができる。また、実施形態によっては、動作の順序は並べ替えてもよい。
【００２７】
ここに説明する手法は、特定のハードウェア又はソフトウェアの構成に限定されず、どんな計算環境や処理環境にも適用できる。これらの手法は、ハードウェア、ソフトウェア、またはこれらの組み合わせで実施できる。これらの手法は、例えば、モバイル又は固定コンピュータ、パーソナルデジタルアシスタント、セットトップボックス、携帯電話及びページャ、その他の電子装置であって、それぞれプロセッサ、そのプロセッサにより読み取り可能な（揮発性及び不揮発性メモリ、及び／又は記憶要素を含む）記憶媒体、少なくとも一の入力装置、一又は複数の出力装置を有するものであるプログラマブルマシンで実行されるプログラムで実施できる。プログラムコードは、入力装置を用いて入力されたデータに適用され、説明した機能を実行し、出力情報を生成する。出力情報は一又は複数の出力装置に適用される。本技術分野の当業者には言うまでもなく、本発明は、マルチプロセッサシステム、ミニコンピュータ、メインフレームコンピュータなど、様々なコンピュータシステム構成で実施できる。本発明は、通信ネットワークによりリンクされたリモート処理装置によりタスクが実行される分散計算環境で実施することもできる。
【００２８】
各プログラムは、高レベルの、手続き型又はオブジェクト指向プログラミング言語で実装され、処理システムと通信してもよい。しかし、プログラムは、必要ならアセンブラ又は機械語で実装してもよい。いずれの場合でも、言語はコンパイルされるかインタープリットされる。
【００２９】
プログラム命令を用いて、ここに説明する動作を実行する命令でプログラムされた汎用又は特定用途の処理システムを構成してもよい。あるいは、動作を実行するハードウェアロジックを含む特定のハードウェアコンポーネントにより、又はプログラムされたコンピュータコンポーネントとカスタムハードウェアコンポーネントの任意の組合せにより、動作を実行させてもよい。ここに説明する方法は、処理システムその他の電子装置をプログラムしてその方法を実行させる命令を格納したマシン読み取り可能媒体を含むコンピュータプログラム製品として提供され得る。ここで「マシン読み取り可能媒体」との用語は、マシンにより実行される一連の命令を記憶又はエンコードでき、そのマシンにここに説明する方法のいずれかを実行させる任意の媒体を含む。したがって、「マシン読み取り可能媒体」との用語は、固体メモリ、光ディスク及び磁気ディスクを含むが、これらに限定されない。さらに、本技術分野では、ソフトウェアが、（例えば、プログラム、手順、プロセス、アプリケーション、モジュール、ロジックなどの）ある形式では、動作をして結果を生じることは一般的なことである。かかる表現は、処理システムによるソフトウェアの実行がプロセッサに動作を実行させて結果を生じさせることを述べる簡便な方法にすぎない。
【図１】
0005607250.tif 000002
【図２】
0005607250.tif 000003
【図３】
0005607250.tif 000004
【図４】
0005607250.tif 000005
【図５】
0005607250.tif 000006