(57)【特許請求の範囲】
【請求項１】
管理コントローラーによりシステムの少なくとも一つの周辺機器用バススイッチを動的再配置する方法であって、
サーバシステムが、前記システムの各周辺機器用バススロットに接続されて、検出結果を生成するか否かを検出する検出工程と、
前記検出結果に基づいて、前記少なくとも一つの周辺機器用バススイッチに対し、周辺機器用バススイッチトポロジーを選択する選択工程と、
前記周辺機器用バススイッチトポロジーに基づいて、前記少なくとも一つの周辺機器用バススイッチの各ポートを、アップストリームポート配置、あるいは、ダウンストリームポート配置に設定する設定工程と、
を有すること、
前記サーバシステムに接続される周辺機器用バススロットがないことを検出するとき、前記周辺機器用バススイッチトポロジーは、前記少なくとも一つの周辺機器用バススイッチを設定して、前記システムの中央処理装置に接続することを特徴とする、
管理コントローラーにより周辺機器用バススイッチを動的再配置する方法。
【請求項２】
前記アップストリームポート配置は、ルート複合体に接続されることを特徴とする、請求項１に記載の管理コントローラーによりシステムの少なくとも一つの周辺機器用バススイッチを動的再配置する方法。
【請求項３】
前記ダウンストリームポート配置は、周辺機器用バスエンドポイントに接続されることを特徴とする、請求項１に記載の管理コントローラーによりシステムの少なくとも一つの周辺機器用バススイッチを動的再配置する方法。
【請求項４】
第一周辺機器用バススロットが第一サーバシステムに接続され、第二周辺機器用バススロットが第二サーバシステムに接続されることが検出されるとき、前記周辺機器用バススイッチトポロジーは、前記第一周辺機器用バススロットに接続される前記少なくとも一つの周辺機器用バススイッチの第一ポートを、前記アップストリームポート配置に設定し、前記第二周辺機器用バススロットに接続される前記少なくとも一つの周辺機器用バススイッチの第二ポートを、前記アップストリームポート配置に設定するとともに、その他の全てのポートを、前記ダウンストリームポート配置に設定することを特徴とする、請求項１に記載の管理コントローラーによりシステムの少なくとも一つの周辺機器用バススイッチを動的再配置する方法。
【請求項５】
前記システムの周辺機器用バススロットに接続される単一サーバシステムのみが検出されるとき、前記周辺機器用バススイッチトポロジーは、前記少なくとも一つの周辺機器用バススイッチの一ポートを、前記アップストリームポート配置、および、前記少なくとも一つの周辺機器用バススイッチのその他の全ポートを、前記ダウンストリームポート配置に設定することを特徴とする、請求項１に記載の管理コントローラーによりシステムの少なくとも一つの周辺機器用バススイッチを動的再配置する方法。
【請求項６】
サーバ位置とサーバ数量に対し、サーバ配置を不揮発性メモリに保存する保存工程と、
前記システムの前記不揮発性メモリから、前記サーバ配置を読み取る読取工程と、
を有することを特徴とする、請求項１に記載の管理コントローラーによりシステムの少なくとも一つの周辺機器用バススイッチを動的再配置する方法。
【請求項７】
前記保存工程は、内部集積回路信号をシリアルペリフェラルインターフェースブリッジに送信して、前記内部集積回路信号から変換されたシリアルペリフェラルインターフェース信号が、前記サーバ配置を前記不揮発性メモリに書き込む書き込み工程を有することを特徴とする、請求項６に記載の管理コントローラーによりシステムの少なくとも一つの周辺機器用バススイッチを動的再配置する方法。
【請求項８】
前記保存工程は、内部集積回路信号を周辺機器用バススイッチに送信し、前記周辺機器用バススイッチは、前記サーバ配置を前記不揮発性メモリに書き込む書き込み工程を有することを特徴とする、請求項６に記載の管理コントローラーによりシステムの少なくとも一つの周辺機器用バススイッチを動的再配置する方法。
【請求項９】
管理コントローラーによりシステムの少なくとも一つの周辺機器用バススイッチを動的再配置するシステムであって、
周辺機器用バススロットに接続される少なくとも一つの周辺機器用バススイッチと、
前記少なくとも一つの周辺機器用バススイッチのダウンストリームポートに接続される少なくとも一つのグラフィックスプロセッシングユニットと、
前記少なくとも一つの周辺機器用バススイッチに接続される管理コントローラーと、を有し、
前記管理コントローラーは、
サーバシステムが、各周辺機器用バススロットに接続されて、検出結果を生成するか否かを検出し、
前記検出結果に基づいて、少なくとも一つの周辺機器用バススイッチに、周辺機器用バススイッチトポロジーを選択し、
前記周辺機器用バススイッチトポロジーに基づいて、前記少なくとも一つの周辺機器用バススイッチの各ポートを、アップストリームポート配置、あるいは、ダウンストリームポート配置に設定すること、
前記サーバシステムに接続される周辺機器用バススロットがないことを検出するとき、前記周辺機器用バススイッチトポロジーは、前記少なくとも一つの周辺機器用バススイッチを設定して、前記システムの中央処理装置に接続することを特徴とする、管理コントローラーによりシステムの少なくとも一つの周辺機器用バススイッチを動的再配置するシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバシステムに関するものであって、特に、周辺機器用バススイッチの動的再配置のシステムおよびその方法に関するものである。
【背景技術】
【０００２】
デスクトップコンピュータおよびゲーム機は、通常、一つ以上のコンピュータディスプレイを駆動する専用のグラフィックスサブシステムを用いることにより、中央処理装置(ＣＰＵ)リソースを保存する。グラフィックスプロセッシングユニット(ＧＰＵ)は、グラフィックスサブシステムの心臓部に位置する。ＣＰＵは、多種多様な演算方法を効果的に実行するために設計された汎用プロセッサである。しかし、グラフィックス処理は、有限且つ既存の演算法のセットにより構成される。ＧＰＵは、専用のプロセッサであり、グラフィックス処理においては優れているが、その他のタスクにおいては優れているとは限らない。
【０００３】
コンピュータシステムの発展に伴い、グラフィックスプロセッシングユニット(ＧＰＵ)は、その複雑性と計算能力がますます進歩している。計算能力の向上により、ＧＰＵは、現在、グラフィックス処理とより多くの通用計算タスクを実行することが可能である。
【０００４】
当該分野において最近なされた革新は、汎用目的グラフィックスプロセッシングユニット計算(ＧＰＧＰＵ)である。ＧＰＵのグラフィックス能力も、その他の数学的密集型アプリケーションをさらに理想的なものへと発展させている。主要なグラフィックスチップ製造者は、すでに、ＧＰＵの非グラフィックスアプリケーションの使用をサポートし始めている。これは、時に、ＧＰＵ加速と称されることがある。
【０００５】
一般的に、ＧＰＧＰＵサーバを構築するため、管理者は、ＧＰＵカードを必須の周辺機器用バススロット空間とバンド幅を有するサーバにインストールして、ＧＰＵカードを収める。しかし、多くのサーバは、周辺機器用バススロットをわずかしか有していない。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、周辺機器用バススイッチの動的再配置のシステムおよびその方法を提供する。
【課題を解決するための手段】
【０００７】
以下の段落で、本発明の一つ、あるいは、複数の実施形態中の簡単な要約を提供して、本発明における技術の基本的な理解を提供する。この要約は、本発明の技術で考慮されうるすべての実施形態に拡張されるものではなく、全ての例示における要点や重要な要素を定義するのに用いられるものでもない。本発明におけるいかなる、あるいは全ての技術範囲を描写するものでもない。本発明の目的は、簡単な形式で、一つ、あるいは、多くの実施形態中のいくつかの概念を表して、本発明の後に描写される詳細な説明部分の前置きとする。
【０００８】
いくつかの実施形態において、管理コントローラーにより、システムの少なくとも一つの周辺機器用バススイッチを動的再配置する方法は、サーバシステムが管理コントローラーを有し、該管理コントローラーがシステムの各周辺機器用バススロットに接続されて、検出結果を生成するか否かを検出する検出工程と、管理コントローラーが、検出結果に基づいて、少なくとも一つの周辺機器用バススイッチに対し、周辺機器用バススイッチトポロジーを選択する選択工程と、管理コントローラーが、周辺機器用バススイッチトポロジーに基づいて、少なくとも一つの周辺機器用バススイッチの各ポートを、アップストリームポート配置、あるいは、ダウンストリームポート配置のいずれかに設定する設定工程と、を有する。 
【０００９】
いくつかの実施形態において、管理コントローラーにより、システムの少なくとも一つの周辺機器用バススイッチを動的再配置するシステムは、少なくとも一つの周辺機器用バススイッチを有し、周辺機器用バススイッチは、それぞれ、周辺機器用バススロットに接続される。該システムは、少なくとも一つの周辺機器用バススイッチのダウンストリームポートに接続される少なくとも一つのグラフィックスプロセッシングユニットを有する。該システムは、さらに、少なくとも一つの周辺機器用バススイッチに接続される管理コントローラーを有し、管理コントローラーは、サーバシステムが、各周辺機器用バススロットに接続されて、検出結果を生成するか否かを検出し、検出結果に基づいて、周辺機器用バススイッチトポロジーを、少なくとも一つの周辺機器用バススイッチに選択し、周辺機器用バススイッチトポロジーに基づいて、少なくとも一つの周辺機器用バススイッチの各ポートを、アップストリームポート配置、あるいは、ダウンストリームポート配置に設定する。
【発明の効果】
【００１０】
本発明は、ＧＰＧＰＵとともに用いられる周辺機器用バススイッチの動的再配置を行う方法を提供する。本方法は、大量のＧＰＵを含む専用のＧＰＧＰＵサーバとして、サーバシステムの柔軟な調整を可能にする。専用のＧＰＧＰＵサーバは、ＧＰＵリソースをその他のサーバに提供する。
【００１１】
本発明の実施形態は、図面と後続の詳細な説明を参照する。
【図面の簡単な説明】
【００１２】
【図１】ペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩｅ）機構のブロック図である。
【図２】第一実施形態における周辺機器用バススイッチの動的再配置システム配置のブロック図である。
【図３】第二実施形態における周辺機器用バススイッチの動的再配置のシステム配置のブロック図である。
【図４】第三実施形態における周辺機器用バススイッチの動的再配置のシステム配置のブロック図である。
【図５】第一実施形態におけるシステム配置を保存するサーバのブロック図である。
【図６】第二実施形態におけるシステム配置を保存するサーバのブロック図である。
【図７】周辺機器用バススイッチの動的再配置行う方法を示す図である。
【図８】コンピュータシステムのブロック図である。
【発明を実施するための形態】
【００１３】
本発明は、周辺機器用バススイッチの動的再配置を行う技術を提供する。本発明の各種形態は、図面を参照しながら説明する。以下の記述において、説明のため、いくつかの特定の詳細な説明が提供されており、一つ以上の形態が十分に理解できるようにされている。しかし、本発明は、これらの特定の詳細な説明がなくても実施することができる。他の例では、既知の構造と装置は、ブロック図で示され、これらの形態の記述をわかりやすくする。
【００１４】
図１は、ペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩｅ）機構１００のブロック図である。ＰＣＩｅは、高速シリアルコンピュータ拡張バス基準であり、古いＰＣＩ、ＰＣＩ−ＸとＡＧＰバス基準に代替する。ＰＣＩｅは、消費者、サーバ、および、工業用アプリケーション、例えば、マザーボードレベル相互接続で操作され、マザーボード搭載周辺装置、パッシブバックプレーン相互接続を連結し、さらに付加板の拡張カードインターフェースとなる。
【００１５】
説明を簡単にするため、本発明は、ＰＣＩｅをその他の周辺アーキテクチャとバス基準だけに用いていることを理解されたい。上述のように、本発明は、さらに、その他の周辺アーキテクチャとバス基準でも実現される。
【００１６】
現在多くのコンピュータにおいて、消費者のノートパソコンおよびデスクトップコンピュータから、企業型データサーバまで、ＰＣＩｅバスは、プライマリーマザーボードレベル相互接続として作用し、ホストシステムプロセッサを、集積周辺装置(表面搭載ＩＣ)と付加周辺設備(拡張カード)との両方に接続させている。これらのシステムにおいて、レガシーＰＣＩ周辺装置の大きな本体と互換性を有するため、ＰＣＩｅバスは、一つ以上のレガシーＰＣＩバスと共存する。
【００１７】
ＰＣＩエクスプレスバスリンクは、任意の二つのエンドポイント間の全二重通信をサポートし、且つ、複数のエンドポイントの並行アクセスにおいては、固有の限界がない。ＰＣＩｅ装置は、相互接続、あるいは、リンクと称される論理結合により通信する。リンクは、ポイントトゥーポイントの通信チャネルであり、通信チャネルが二つのＰＣＩｅポート間にあり、それらの両方に、元のＰＣＩ要求(配置、Ｉｎｐｕｔ/Ｏｕｔｐｕｔ、あるいは、メモリ読み取り/書き込み)と中断信号を送受信させる。物理レベルで、リンクは一つ以上のレーンから構成される。低速周辺装置（たとえば、８０２．１１  Ｗｉ-Ｆｉカード)は、単一のレーン（×１）リンクを用いるが、ＧＰＵは、通常、より広くより速い１６レーンリンク（×１６）を用いる。
【００１８】
ＰＣＩｅカード（たとえば、ＧＰＵカード）は、その物理的サイズまたはより大きなスロット(×１６は使用する最大のスロット)に適合するが、小さいＰＣＩｅスロットには適合しない。たとえば、ａ×１６カードは、ａ×４や×８ ＰＣＩｅスロットには適合しない。いくつかのスロットは、開放式ソケットを用いて、実際より長いカードを許容するとともに、最適な利用可能な電気的論理的結合を協議する。
【００１９】
例示した機構１００は、中央処理装置（ＣＰＵ）１１０、ルート複合体１２０、メモリ１２１、ＰＣＩｅスイッチ１３０、および、複数のＰＣＩｅエンドポイント１２２、１４０およびＰＣＩｅブリッジ１２４を有する。
【００２０】
ルート複合体１２０は、ＣＰＵ１１０とＰＣＩｅバスとの間のインターフェースであり、ＰＣＩｅバスは、いくつかの素子（プロセッサインターフェース、ＤＲＡＭインターフェース等）、および、可能なその他の複数のチップを含む。ルート複合体１２０は、ルートポートと称される一つ以上のＰＣＩｅポートをサポートするとともに、論理的に、ＰＣＩｅ階層ドメインを、一つの単一ＰＣＩｅ階層に凝集する。ルート複合体１２０は、ＰＣＩｅリンクにより、ＣＰＵ１１０、ＰＣＩｅスイッチ１３０、および、ＰＣＩｅエンドポイントに接続される複数のルートポートを有する。各ルートポートは、単一エンドポイント、あるいは、一つ以上のスイッチ素子、および、エンドポイント１２２、１４０およびＰＣＩｅブリッジ１２４を含むサブ階層を含む分離階層ドメインを定義する。
【００２１】
ＰＣＩｅスイッチ１３０は、さらに多くの装置を単一ルートポートに取り付けられるようにする。ＰＣＩｅ１３０は、パケットルーターとして機能し、どの経路が、そのアドレスまたはその他のルーティング情報に基づいて所定のパケットを得る必要があるのかを識別する。ＰＣＩｅスイッチ１３０は、複数のダウンストリームポート（エンドポイント方向）を有するが、アップストリームポート（ルート複合体１２０方向）は一つしか有していない。ＰＣＩｅブリッジ１２４は、インターフェースを、その他のバス（たとえば、ＰＣＩ、ＰＣＩ―Ｘ、更に別のＰＣＩｅバス）に提供する。アップストリームは、エンドポイント１２２、１４０およびＰＣＩｅブリッジ１２４からＣＰＵ１１０へのデータフローを示し、ダウンストリームは、ＣＰＵ１１０からエンドポイント１２２、１４０およびＰＣＩｅブリッジ１２４へのデータフローを示す。
【００２２】
ＰＣＩｅエンドポイント装置（たとえばＧＰＵ）は、エンドポイント１２２、１４０およびＰＣＩｅブリッジ１２４に接続される。ＰＣＩｅエンドポイント装置は、ＰＣＩｅツリートポロジーの分岐の底部に存在し、ルート複合体に面する単一アップストリームポートを有する。
【００２３】
図２は、第一実施形態における周辺機器用バススイッチの動的再配置システム配置２００のブロック図である。サーバ２０２は、一つ以上のプロセッサ２１０、ＰＣＩｅスイッチ２２０、ＰＣＩｅスロット２３０、および、ＧＰＵ２４０を有する。システム配置２００は、ＣＰＵとＧＰＵとの両方を含むＧＰＧＰＵサーバ２０２の代表例であり、ＣＰＵを含まないＧＰＧＰＵサーバの代表例ではない。システム配置２００のＧＰＧＰＵサーバは、一般に、その他のサーバにＧＰＵリソースを提供しない。
【００２４】
ＰＣＩｅスイッチ２２０は、プロセッサ２１０とＰＣＩｅエンドポイント(たとえば、ＰＣＩｅスロット２３０とＧＰＵ２４０)間のデータを導引する。各ＰＣＩｅスイッチ２２０は、システム中のその他の素子に接続される複数のポートを有する。各ＰＣＩｅスイッチ２２０は、経路２５６をＧＰＵ２４０に接続する一つ以上のダウンストリームポートを有する。各ＰＣＩｅスイッチ２２０は、経路２５４をＰＣＩｅスロット２３０に接続する一つ以上のダウンストリームポートを有する。各ＰＣＩｅスイッチ２２０は、さらに、経路２５２をプロセッサ２１０に接続するアップストリームポートを有する。
【００２５】
各ＰＣＩｅスイッチ２２０は、管理コントローラー（図示しない）に接続され、管理コントローラーは、ＰＣＩｅスイッチ２２０の各ポートを、図２に示されるシステム配置２００におけるアップストリームポート（プロセッサ方向）、あるいは、ダウンストリームポート（ＰＣＩｅエンドポイント方向）として動的に設定する。
【００２６】
図３は、第二実施形態における周辺機器用バススイッチの動的再配置のシステム配置３００のブロック図である。サーバ３０２は、ＰＣＩｅスイッチ３２０、３２２、ＰＣＩｅスロット３３０、３３２、および、ＧＰＵ３４０を有する。第二実施形態におけるシステム配置３００は、サーバ３０２の二つのＰＣＩｅスロット３３０、３３２が、その他のサーバ３６０、３６２に接続されるため、第一実施形態におけるシステム配置２００とは異なる。いくつかの実施形態において、サーバ３０２は、サーバ２０２と同じである。いくつかの実施形態において、サーバ３０２はＣＰＵを含まない。サーバ３０２は、ＧＰＵリソースをその他のサーバ３６０、３６２に提供することができる。第一サーバ３６０は、ＰＣＩｅスロット３３０またはＰＣＩｅスロット３３２のいずれかを介してサーバ３０２に接続される。第二サーバ３６２は、ＰＣＩｅスロット３３０またはＰＣＩｅスロット３３２のいずれか一つにより、サーバ３０２に接続される。
【００２７】
ＰＣＩｅスイッチ３２０、３２２は、その他のサーバ３６０、３６２、ＰＣＩｅスロット３３０、３３２、および、ＧＰＵ３４０間のデータを導引する。各ＰＣＩｅスイッチ３２０、３２２は、システム中のその他の素子に接続される複数のポートを有する。各ＰＣＩｅスイッチ３２０、３２２は、経路３５６をＧＰＵ３４０に接続する一つ以上のダウンストリームポートを有する。いくつかの実施形態において、各ＰＣＩｅスイッチ３２０、３２２は、さらに、経路３５８を別のＰＣＩｅスイッチ３２０、３２２に接続するダウンストリームポートを有する。
【００２８】
いくつかの実施形態において、第一サーバ３６０は、ＰＣＩｅスロット３３０により、経路３５２をＰＣＩｅスイッチ３２０のアップストリームポートに接続する。第二サーバ３６２は、ＰＣＩｅスロット３３０により、経路３５２をＰＣＩｅスイッチ３２０のアップストリームポートに接続する。サーバ３６０及びサーバ３６２には、一アップストリーム経路３５２が一つだけ必要である。よって、サーバ３６０及びサーバ３６２には、一ＰＣＩｅスイッチ３２０上のアップストリームポートが一つだけ必要である。ＰＣＩｅスイッチ３２０、３２２のその他の全てのポートは、ダウンストリームポートとして設定される。第一サーバ３６０または第二サーバ３６２に接続されないＰＣＩｅスロット３３２が、ＰＣＩｅスイッチ３２２のダウンストリームポートに接続される。
【００２９】
その他のいくつかの実施形態において、第一サーバ３６０は、ＰＣＩｅスロット３３２により、経路３５４をＰＣＩｅスイッチ３２２に接続する。第二サーバ３６２は、ＰＣＩｅスロット３３２により、経路３５４をＰＣＩｅスイッチ３２２のアップストリームポートに接続する。第一サーバ３６０または第二サーバ３６２に接続されないＰＣＩｅスロット３３０が、ＰＣＩｅスイッチ３２０のダウンストリームポートに接続される。
【００３０】
各ＰＣＩｅスイッチ３２０、３２２は、管理コントローラー（図示しない）に接続され、管理コントローラーは、ＰＣＩｅスイッチ３２０、３２２の各ポートを、図３に示すシステム配置３００において、アップストリームポート（第一サーバ３６０または第二サーバ３６２のプロセッサ方向）、あるいは、ダウンストリームポート（その他の全ポート）として動的に設定する。
【００３１】
図４は、第三実施形態における周辺機器用バススイッチの動的再配置のシステム配置４００のブロック図である。サーバ４０２は、ＰＣＩｅスイッチ４２０、４２２、ＰＣＩｅスロット４３０、４３２、および、ＧＰＵ４４０を有する。システム配置４００は、一ＰＣＩｅスロット４３０、４３２が一サーバ４６０に接続されるため、システム配置３００とは異なる。いくつかの実施形態において、サーバ４０２はサーバ３０２と同じである。いくつかの実施形態において、サーバ４０２はＣＰＵを有していない。サーバ４０２はＧＰＵリソースをサーバ４６０に提供することができる。サーバ４６０は、四つのＰＣＩｅスロット４３０、４３２のうち任意の一つによってサーバ４０２に接続される。
【００３２】
ＰＣＩｅスイッチ４２０、４２２は、サーバ４６０、ＰＣＩｅスロット４３０、４３２、および、ＧＰＵ４４０間のデータを導引する。各ＰＣＩｅスイッチ４２０、４２２は、システムにおける他の素子に接続される複数のポートを有する。各ＰＣＩｅスイッチ４２０、４２２は、経路４５６をＧＰＵ４４０に接続する一つ以上のダウンストリームポートを有する。いくつかの実施形態において、各ＰＣＩｅスイッチ４２０、４２２は、ダウンストリームポートをさらに有し、ダウンストリームポートは、経路４５８を別のＰＣＩｅスイッチ４２０、４２２に接続する。
【００３３】
いくつかの実施形態において、サーバ４６０は、ＰＣＩｅスロット４３０により、経路４５２をＰＣＩｅスイッチ４２０のアップストリームポートに接続する。サーバ４６０には、アップストリーム経路４５２が一つだけ必要である。よって、サーバ４６０には、ＰＣＩｅスイッチ４２０上のアップストリームポートが一つだけ必要である。ＰＣＩｅスイッチ４２０、４２２のその他の全てのポートは、ダウンストリームポートとして設定される。サーバ４６０に接続されないＰＣＩｅスロット４３２は、ＰＣＩｅスイッチ４２２のダウンストリームポートに接続される。
【００３４】
いくつかのその他の実施形態において、サーバ４６０は、一つのＰＣＩｅスロット４３２により、経路４５４をＰＣＩｅスイッチ４２２に接続する。サーバ４６０に接続されないＰＣＩｅスロットは、ＰＣＩｅスイッチのダウンストリームポートに接続される。
【００３５】
各ＰＣＩｅスイッチ４２０、４２２は、管理コントローラー（図示しない）に接続され、管理コントローラーは、ＰＣＩｅスイッチ４２０、４２２の各ポートを、図４のシステム配置４００内でアップストリームポート（サーバ４６０のプロセッサ方向）、あるいはダウンストリームポート （その他の全ポート）に動的に設定する。
【００３６】
図５は、第一実施形態によるシステム配置を保存するサーバ５００のブロック図である。サーバ５００は、ＣＰＵ５１０、基盤管理コントローラー（ＢＭＣ）５２０、ＰＣＩｅスイッチ５３０、および、不揮発性メモリ５４０を有する。
【００３７】
ＢＭＣ５２０は、システムマネジメントソフトウェアとプラットホームハードウェア間のインターフェースを管理するマイクロコントローラーである。いくつかの実施形態において、各ＢＭＣ５２０は、サーバ５００中のハードウェア素子（たとえば、複数のプロセッサ、メモリ、ストレージデバイス、ＰＳＵ、ファン、回路基盤等）を管理することができる。
【００３８】
ＢＭＣ５２０は、ＩＰＭＢ（Ｉｎｔｅｌｌｉｇｅｎｔ  Ｐｌａｔｆｏｒｍ  Ｍａｎａｇｅｍｅｎｔ  Ｂｕｓ）サブシステム２０４の一部である。ＩＰＭＩサブシステムは、サーバ５００のその他の部分から独立して操作することができ、且つ、サーバ５００が電源オフ、あるいは、シャットダウン時でも機能できる。サーバ５００のシャットダウン時、ＩＰＭＩサブシステムは、待機電源、あるいは、低電力モードで操作することができる。
【００３９】
ＢＭＣ５４０は、ＢＭＣ５４０がＩＰＭＩプロトコルを用いて管理する各種サーバと通信する。ＩＰＭＩは、独立したコンピュータサブシステムに用いられる一組の仕様で、この仕様は、コンピュータシステムのＣＰＵ、ファームウェアおよびＯＳを管理し、監視するとともに、システム管理者により、帯域外管理や監視を行う。ＢＭＣ５４０は、任意のバスインターフェース（たとえば、システム管理バス（ＳＭＢｕｓ）、ＲＳ−２３２シリアルバス、内部集積回路  （ＩＩＣあるいはＩ２Ｃ）プロトコル、イーサネット、ＩＰＭＢ、低ピンカウント(ＬＰＣ)バス等）を用いて、各種サーバ素子（たとえば、サウスブリッジ２４０、あるいは、ＮＩＣ２７０）に接続される。Ｉ２Ｃプロトコルは、７ビットまたは１０ビットアドレス空間を用いるマルチマスター（ｍｕｌｔｉ−ｍａｓｔｅｒ）、マルチスレーブ（ｍｕｌｔｉ−ｓｌａｖｅ）、シングルエンド（ｓｉｎｇｌｅ−ｅｎｄｅｄ）、シリアルコンピュータバスを有するシリアルデータライン（Ｓｅｒｉａｌ  Ｄａｔａ  Ｌｉｎｅ）、および、シリアルクロックライン（Ｓｅｒｉａｌ  Ｃｌｏｃｋ  Ｌｉｎｅ）を特徴とする。ＳＭＢｕｓプロトコルの特徴は、Ｉ２Ｃプロトコルから派生するシングルエンド（ｓｉｎｇｌｅ−ｅｎｄｅｄ）、二線式バス（ｔｗｏ−ｗｉｒｅ ｂｕｓ）、および、Ｉ２ＣハードウェアとI２Ｃアドレッシングを用いることである。ＩＰＭＢはI２Ｃベースのシリアルバスで、サーバ中の各種回路板を接続する。いくつかの実施形態において、ＢＭＣ５２０は、Ｉ２Ｃプロトコルを用いて、ＰＣＩｅスイッチ５３０と通信する。
【００４０】
ＢＭＣ５２０は、サーバシステムが、システムの各周辺機器用バススロットに接続されて、検出結果を生成するか判断し、検出結果に基づいて、少なくとも一つの周辺機器用バススイッチに、周辺機器用バススイッチトポロジーを選択する。ＢＭＣ５２０は、周辺機器用バススイッチトポロジーに基づいて、少なくとも一つの周辺機器用バススイッチの各ポートを、アップストリームポート配置、あるいは、ダウンストリームポート配置に設定する。
【００４１】
いくつかの実施形態において、ＢＭＣ５２０は、検出された配置（その他のサーバが、一つ以上の周辺機器用バススロットによりサーバ５００に接続されるかどうか、および、その他のサーバが、一つ以上の周辺機器用バススロットによりサーバ５００に接続される場所）を不揮発性メモリ５４０に保存して、のちに回収および利用する。
【００４２】
たとえば、ＢＭＣ５２０が、システムの周辺機器用バススロットに接続される単一のサーバシステムだけを検出する場合、ＢＭＣ５２０は、一つのポートをアップストリームポート配置に設定するとともに、その他の全ポートをダウンストリームポート配置に設定する周辺機器用バススイッチトポロジーを選択する。
【００４３】
ＢＭＣ５２０は、第一周辺機器用バススロットが第一サーバシステムに接続され、第二周辺機器用バススロットが第二サーバシステムに接続されるのを検出する場合、ＢＭＣ５２０は、周辺機器用バススイッチトポロジーを選択し、周辺機器用バススイッチトポロジーは、（１）第一周辺機器用バススロットに接続される少なくとも一つの周辺機器用バススイッチの第一ポートをアップストリームポート配置に設定する、（２）第二周辺機器用バススロットに接続される少なくとも一つの周辺機器用バススイッチの第二ポートをアップストリームポート配置に設定する、および、（３）その他の全ポートをダウンストリームポート配置に設定する。
【００４４】
ＢＭＣ５２０が、サーバシステムに接続される周辺機器用バススロットがないことを検出する場合、ＢＭＣ５２０は、周辺機器用バススイッチトポロジーを選択し、周辺機器用バススイッチトポロジーは、少なくとも一つの周辺機器用バススイッチを設定して、それぞれをサーバ５００のＣＰＵに接続する。
【００４５】
いくつかの実施形態において、ＢＭＣ５２０は、内部集積回路（Ｉ２Ｃ）信号を周辺機器用バススイッチに送信する。周辺機器用バススイッチ５３０は、サーバ配置を不揮発性メモリ５４０に書き込む。
【００４６】
図６は、第二実施形態におけるシステム配置を保存するサーバ６００のブロック図である。サーバ６００は、ＣＰＵ６１０、基盤管理コントローラー(ＢＭＣ)６２０、ＰＣＩｅスイッチ６３０、Ｉ２Ｃシリアルペリフェラルインターフェース（ＳＰＩ）ブリッジ６５０、および、不揮発性メモリ６４０を有する。サーバ６００は、ＢＭＣ６２０が、内部集積回路（Ｉ２Ｃ）信号をＳＰＩブリッジ６５０に送信することにより、サーバ配置を保存するので、図５のサーバ５００とは異なる。ＳＰＩブリッジ６５０はＳＰＩ信号を変換して、サーバ配置を不揮発性メモリ６４０に書き込む。
【００４７】
図７は、管理コントローラー（図５のＢＭＣ５２０、あるいは、図６のＢＭＣ６２０）による周辺機器用バススイッチの動的再配置の方法を説明する図である。工程７１０において、管理コントローラーは、サーバシステムが、システムの各周辺機器用バススロットに接続されて、検出結果を生成するか否かを検出する。
【００４８】
工程７２０において、管理コントローラーは、検出結果に基づいて、周辺機器用バススイッチトポロジーを、少なくとも一つの周辺機器用バススイッチに選択する。
【００４９】
工程７３０において、管理コントローラーは、周辺機器用バススイッチトポロジーに基づいて、少なくとも一つの周辺機器用バススイッチの各ポートを、アップストリームポート配置、あるいは、ダウンストリームポート配置に設定する。
【００５０】
図８は、コンピュータシステム８００のブロック図である。コンピュータシステム８００は、プロセッサ８４０、ネットワークインターフェース８５０、管理コントローラー８８０、メモリ８２０、ストレージ８３０、ＢＩＯＳ８１０、ノースブリッジ８６０、および、サウスブリッジ８７０を有する。
【００５１】
コンピュータシステム８００は、たとえば、サーバ（データセンターのサーバラック中のサーバ）、あるいは、パソコンである。プロセッサ（たとえば、中央処理装置（ＣＰＵ））８４０は、メモリ８２０中に保存されるプログラミング指令を回収し、実行するチップオンマザーボードである。プロセッサ８４０は、単一のプロセシングコアを有する単一ＣＰＵ、複数のプロセッサコアを有する単一ＣＰＵ、あるいは、複数のＣＰＵである。一つ以上のバス（図示しない）は、各種コンピュータ素子（たとえば、プロセッサ８４０、メモリ８２０、ストレージ８３０、および、ネットワークインターフェース８５０）の間で、命令およびアプリケーションデータを送信する。
【００５２】
メモリ８２０は、一時的または永久的に、データやプログラムを保存するために用いられる任意の物理的デバイス（たとえば、各種形式のランダムアクセスメモリ（ＲＡＭ））を有する。ストレージ８３０は、不揮発性データストレージに用いられる任意の物理的デバイス（たとえば、ＨＤＤ、あるいは、フラッシュドライブ）を有する。ストレージ８３０は、メモリ８２０よりも優れた能力を有し、且つ、より経済的な各単位ストレージを有するが、ストレージ８３０は、メモリ８２０よりも送信速度が遅い。
【００５３】
ＢＩＯＳ８１０は、基本Ｉｎｐｕｔ/Ｏｕｔｐｕｔシステム（ＢＩＯＳ）、その後継（ｓｕｃｃｅｓｓｏｒｓ）、または等価素子（ｅｑｕｉｖａｌｅｎｔｓ）、たとえば、ＥＦＩ（Ｅｘｔｅｎｓｉｂｌｅ  Ｆｉｒｍｗａｒｅ  Ｉｎｔｅｒｆａｃｅ）、あるいは、ＵＥＦＩ（Ｕｎｉｆｉｅｄ  Ｅｘｔｅｎｓｉｂｌｅ  Ｆｉｒｍｗａｒｅ  Ｉｎｔｅｒｆａｃｅ）を有する。ＢＩＯＳ８１０は、ＢＩＯＳソフトウェアプログラムを保存するコンピュータシステム８００のマザーボード上に位置するＢＩＯＳチップを有する。ＢＩＯＳ８１０は、ＢＩＯＳ８１０に指定される一組の配置と連動してコンピュータシステムが起動するときに実行されるファームウェアを保存する。ＢＩＯＳファームウェア、および、ＢＩＯＳ配置は、不揮発性メモリ（ＮＶＲＡＭ）またはＲＯＭ（たとえば、フラッシュメモリ）に保存される。フラッシュメモリは、不揮発性コンピュータストレージ媒体であり、電気的に消去したり再プログラム化することができる。
【００５４】
コンピュータシステム８００が起動するとき、ＢＩＯＳ８１０は一連のシーケンスプログラムを読み取って、実行する。ＢＩＯＳ８１０は、一組の配置に基づいて、所定のコンピューティングシステム中に存在するハードウェアを認識、初期化、および、テストを行う。ＢＩＯＳ８１０は、コンピュータシステム８００で、セルフテスト、たとえば、パワーオンセルフテスト（ＰＯＳＴ）を実施する。このセルフテストは、各種ハードウェア素子（たとえば、ハードディスクドライブ、光学読み取り装置、冷却装置、メモリモジュール、拡張カード等）の機能性をテストする。ＢＩＯＳは、メモリ８２０内の一領域をアドレスおよび割り当てて、操作システムを保存する。その後、ＢＩＯＳ８１０は、ＯＳにコンピュータシステムの制御権を与える。
【００５５】
コンピュータシステム８００のＢＩＯＳ８１０は、ＢＩＯＳ８１０が、どのように、コンピュータシステム８００内で、各種ハードウェア素子を制御するかを定義するＢＩＯＳ配置を有する。ＢＩＯＳ配置は、コンピュータシステム８００中の各種ハードウェア素子の開始順序を決定する。ＢＩＯＳ８１０は、インターフェース（たとえば、ＢＩＯＳセットアップユーティリティ）を提供し、各種異なるパラメータの設定を許可し、該パラメータはＢＩＯＳデフォルト配置におけるパラメータとは異なる。たとえば、ユーザー（たとえば、管理者）は、ＢＩＯＳ８１０を用いて、クロックとバス速度を設定し、どの周辺設備がコンピュータシステムに取り付けられるかを設定し、健康状態の監視を設定し（たとえば、ファン速度とＣＰＵ温度制限）、さらにコンピュータシステムのパフォーマンス全体と電力使用に影響する各種その他のパラメータを設定する。
【００５６】
管理コントローラー８８０は、コンピュータシステムのマザーボードに設置される専用のマイクロコントローラーである。たとえば、管理コントローラー８８０は、基盤管理コントローラー（ＢＭＣ）である。管理コントローラー８８０は、システムマネジメントソフトウェアとプラットホームハードウェア間のインターフェースを管理する。コンピュータシステム中に設置される異なるタイプのセンサーは、パラメータ、たとえば、温度、冷却ファン速度、電力状態、操作システム状態等を管理コントローラー８８０に報告する。管理コントローラー８８０はセンサーを監視する能力を有する。任意のパラメータが規定の範囲内にない場合、管理コントローラー８８０は、ネットワークインターフェース８５０により、管理者に警告を送信し、システムの潜在的な欠陥を示す。管理者は、管理コントローラー８８０と遠隔で通信して、校正動作（たとえば、システムの再設定、あるいはパワーサイクル/動力サイクル）を実行し、システムの機能性を回復させる。
【００５７】
ノースブリッジ８６０は、直接プロセッサ８４０に接続される、あるいはプロセッサ８４０に統合されるチップオンマザーボードである。たとえば、ノースブリッジ８６０とサウスブリッジ８７０は単一ダイに組み合わされる。ノースブリッジ８６０とサウスブリッジ８７０は、プロセッサ８４０とマザーボードのその他の素子間の通信を管理する。ノースブリッジ８６０は、サウスブリッジ８７０よりも高いパフォーマンスを必要とするタスクを管理する。ノースブリッジ８６０は、プロセッサ８４０、メモリ８２０、および、ビデオコントローラー（図示しない）の間の通信を管理する。たとえば、ノースブリッジ８６０はビデオコントローラーを有する。
【００５８】
サウスブリッジ８７０は、ノースブリッジ８６０に接続されるチップオンマザーボードであるが、ノースブリッジ８６０と異なる点は、プロセッサ８４０に直接接続する必要がないという点である。サウスブリッジ８７０は、入力／出力機能、たとえば、コンピュータシステム８００のユニバーサルシリアルバス（ＵＳＢ）、オーディオ、シリアル、ＢＩＯＳ、シリアルＡＴＡ（ＳＡＴＡ）、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）バス、ＰＣＩｅＸｔｅｎｄｅｄ（ＰＣＩ−Ｘ）バス、ＰＣＩエクスプレスバス、ＩＳＡバス、ＳＰＩバス、ｅＳＰＩバス、ＳＭＢｕｓを管理する。サウスブリッジ８７０は、管理コントローラー、ダイレクトメモリアクセス（ＤＭＡ）コントローラー、割り込みコントローラー（ＰＩＣｓ）、および、リアルタイムクロックに接続される、あるいは、その中に含まれる。いくつかの実施形態において、ノースブリッジ８６０はプロセッサ８４０中に統合される。いくつかのシステムにおいて、ノースブリッジ８６０およびサウスブリッジ８７０は、単一ダイ、たとえば、プラットフォームコントローラーハブ(ＰＣＨ)に結合される。
【００５９】
ネットワークインターフェース８５０は、有線または無線ローカルエリアネットワーク（ＬＡＮ）、あるいは、広域ネットワーク（ＷＡＮ）、たとえば、イーサネット、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ、Ｗｉ−Ｆｉ、Ｂｌｕｅｔｏｏｔｈ、Ｆｉｒｅｗｉｒｅ、Ｉｎｔｅｒｎｅｔ等をサポートする任意のインターフェースである。たとえば、ネットワークインターフェース８５０は、イーサネットのネットワークインターフェースコントローラー（ＮＩＣ）を有する。イーサネットは、ローカルエリアネットワーク（ＬＡＮ）と広域ネットワーク（ＷＡＮ）両方で、コンピュータを接続する最も幅広く用いられているネットワーク形成基準である。イーサネットは、アクセス制御（ＭＡＣ）／データリンク層でネットワークアクセスの手段、および、コモンアドレス指定方式により、物理レイヤー（ＰＨＹ）媒体の複数の配線およびシグナリング基準を定義する。イーサネット有効装置は、通常、個別に送信および伝達されるデータのブロックを有するデータパケットを送信することにより通信する。
【００６０】
各種説明された論理ブロック、モジュール、および回路は、開示される様々な状況において、汎用プロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、あるいは、その他のプログラム可能論理装置、離散ゲート、あるいは、トランジスタロジック、離散ハードウェア素子、あるいは、それらを組み合わせた設計によって実施、あるいは実行されて、ここに記述された機能を実行する。汎用プロセッサはマイクロプロセッサ、あるいは、その他の例では、任意の従来のプロセッサ、コントローラー、マイクロコントローラー、あるいは、ステート・マシンである。プロセッサは、計算装置の組み合わせ、たとえば、ＤＳＰとマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、一つ以上のマイクロプロセッサ、および、ＤＳＰコア、あるいは、任意のその他の配置により構成される。
【００６１】
本発明の明細書で開示される方法と演算法の工程は、プロセッサにより直接実行されるハードウェア、ソフトウェア、あるいは、両者の組み合わせで具体化される。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ-ＲＯＭ、あるいは、従来の技術における任意の形式のストレージ媒体中に存在する。例示したストレージ媒体はプロセッサに結合されて、プロセッサは、ストレージ媒体から情報を読み取り、ストレージ媒体に情報を書き込む。別の実施形態において、ストレージ媒体はプロセッサに統合される。プロセッサおよびストレージ媒体はＡＳＩＣ中に設置される。ＡＳＩＣはユーザー端末に設置される。ある実施形態において、プロセッサ、および、ストレージ媒体は、ユーザー端末中のディスクリート部品/ディスクリートコンポーネントとして設置される。
【００６２】
一つ以上の設計において、記述された機能は、ハードウェア、ソフトウェア、ファームウェア、あるいは、任意のそれらの組み合わせによって実現される。ソフトウェアで実施される場合、機能は、持続性コンピュータ読み取り可能媒体上の一つ以上の指令、あるいは、コードとして保存、または送信される。持続性コンピュータ読み取り可能媒体は、コンピュータプログラムの一か所から別の箇所への転送を助ける任意の媒体を有するコンピュータストレージ媒体と通信媒体両方を含む。ストレージ媒体は、汎用または特殊用途コンピュータによりアクセスが可能な任意の利用可能な媒体である。たとえば、これに限定されないが、このようなコンピュータ読み取り可能媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、またはその他の光学ディスクストレージ、磁気ディスクストレージ、またはその他の磁気ストレージデバイス、あるいは、任意のその他の媒体を有し、指令もしくはデータ構造の形式で、所望のプログラムコードを実現、あるいは、保存するのに用いられ、さらに、汎用または特殊用途コンピュータ、もしくは、汎用または特殊用途プロセッサによりアクセスすることができる。ここで用いられるディスクは、コンパクトディスク（ＣＤ）、レーザーディスク、光学ディスク、デジタル多用途ディスク（ＤＶＤ）、フロッピーディスク、および、ブルーレイディスクを有し、これらのディスクは、通常、データ磁気性を再現し、ディスクは、レーザーにより、データ光学的に再現する。上述の組み合わせも、持続性コンピュータ読み取り可能媒体に含まれる。
【００６３】
本発明では好ましい実施形態を前述の通り開示したが、これらは決して本発明に限定されるものではなく、当該技術を熟知する者なら誰でも、本発明の精神と領域を脱しない範囲内で各種の変更や潤色を加えることができ、従って本発明の保護範囲は、特許請求の範囲で指定した内容を基準とする。
【符号の説明】
【００６４】
１００  ペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩｅ）機構
１１０、５１０、６１０  中央処理装置
１２０  ルート複合体
１２１、８２０  メモリ
１２２、１４０  ＰＣＩｅエンドポイント
１２４  ＰＣＩｅブリッジ
１３０、２２０、３２０、３２２、４２０、４２２、５３０、６３０  ＰＣＩｅスイッチ
２００  第一実施形態によるシステム配置
２１０、８４０  プロセッサ
２３０、３３０、３３２、４３０、４３２  ＰＣＩｅスロット
２４０、３４０、４４０  グラフィックスプロセッシングユニット
２５２、２５４、２５６、３５２、３５４、３５６、３５８、４５２、４５４、４５６、４５８  経路
３６０、３６２、４６０  サーバ
３００  第二実施形態によるシステム配置
４００  第三実施形態によるシステム配置
５００  第一実施形態によるサーバ
５２０、６２０  基板管理コントローラー
５４０、６４０  不揮発性メモリ
６００  第二実施形態によるサーバ
６５０  シリアルペリフェラルインターフェースブリッジ
７１０  検出工程
７２０  選択行程
７３０  設定工程
８００  コンピュータシステム
８１０  ＢＩＯＳ
８３０  ストレージ
８５０  ネットワークインターフェース
８６０  ノースブリッジ
８７０  サウスブリッジ
８８０  管理コントローラー
【図１】
0006360588.tif 000002
【図２】
0006360588.tif 000003
【図３】
0006360588.tif 000004
【図４】
0006360588.tif 000005
【図５】
0006360588.tif 000006
【図６】
0006360588.tif 000007
【図７】
0006360588.tif 000008
【図８】
0006360588.tif 000009