(57)【要約】      （修正有）【課題】共通バス上のマルチマスターの問題を防止するマルチノードシステムを提供する。【解決手段】マルチノードシステム１００は、第１ノード１２０及び第２ノード１２２を有する。バックプレーン１０２は、システム管理バスを経由して第１ノード及び第２ノードに結合される。コンプレックスプログラマブルロジックデバイス１４０は、システム管理バスに結合される。コンプレックスプログラマブルロジックデバイスは、第１ノード及び第２ノードからのバスコマンド間を調整するように動作可能なハードウェアロジックを含む。【選択図】図３
2019160279.tif 000002
【特許請求の範囲】
【請求項１】
第１ノードと、
第２ノードと、
システム管理バスを経由して前記第１ノード及び前記第２ノードに結合されるバックプレーンと、
前記システム管理バスに結合されるコンプレックスプログラマブルロジックデバイスと
を備えるシステムであって、
前記コンプレックスプログラマブルロジックデバイスは、前記第１ノードからのバスコマンドと前記第２ノードからのバスコマンドとの間を調整すべく動作可能なハードウェアロジックを含む、
システム。
【請求項２】
前記システム管理バスは、Ｉ２Ｃプロトコルで動作し、前記第１ノード及び前記第２ノードのうち少なくとも１つは、前記システム管理バスに結合されるベースボード管理コントローラを含む、
請求項１に記載のシステム。
【請求項３】
電力管理バスを経由してバックプレーンに結合される電源ユニットをさらに備える
請求項１又は２に記載のシステム。
【請求項４】
前記コンプレックスプログラマブルロジックデバイスは、電力管理コマンドを含むメモリを有し、前記コンプレックスプログラマブルロジックデバイスは、前記電力管理バスを経由して前記電源ユニットから性能データを受信するように動作可能である、
請求項３に記載のシステム。
【請求項５】
前記ノードは、前記コンプレックスプログラマブルロジックデバイスに要求を送信することにより前記電源ユニットの性能データを得るように動作可能である、
請求項４に記載のシステム。
【請求項６】
システム管理バスを経由してバックプレーンに結合される２つのノード間でコマンドを調整する方法であって、
前記システム管理バスにコンプレックスプログラマブルロジックデバイスを結合する段階と、
前記システム管理バスを経由して第１ノードから第１コマンドを受信する段階と、
前記システム管理バスを経由して第２ノードから第２コマンドを受信する段階と、
前記コンプレックスプログラマブルロジックデバイスのハードウェアロジックを動作させ、前記システム管理バスのためにマスターを構成するのが、前記第１ノードなのか、又は前記第２ノードなのかを調整する段階と
を備える方法。
【請求項７】
前記システム管理バスは、Ｉ２Ｃプロトコルで動作し、前記第１ノード及び前記第２ノードのうち少なくとも１つは、前記システム管理バスに結合されるベースボード管理コントローラを含む、
請求項６に記載の方法。
【請求項８】
電源ユニットは、電力管理バスを経由してバックプレーンに結合される、
請求項６又は７に記載の方法。
【請求項９】
前記コンプレックスプログラマブルロジックデバイスは、電力管理コマンドを含むメモリを有し、前記方法はさらに、前記コンプレックスプログラマブルロジックデバイスが、前記電力管理バスを経由して前記電源ユニットから性能データを受信する段階を備える
請求項８に記載の方法。
【請求項１０】
前記第１ノードが、前記コンプレックスプログラマブルロジックデバイスに前記性能データの要求を送信する段階をさらに備える、
請求項９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概してマルチノードシステムのためのコマンドコードに関する。より具体的には、本開示の態様は、マルチマスターの問題を回避すべく、マルチノードシステムのコマンドコードのためにコンプレックスプログラマブルロジックデバイスを使用することに関する。
【背景技術】
【０００２】
サーバなどの電子デバイスは、様々なバスに接続されて、データ及びコマンドを送信及び受信する電子コンポーネントを含む。多くのサーバは、共通の電源用のバックプレーンに接続される複数のノードを有する。バックプレーンはまた、電源を監視すべく、データ及びコマンドが、ノードとバックプレーンとの間で交換されることを可能にするバスに接続される。
【０００３】
図１は、サーバ又は他の大きいネットワークデバイスであり得る周知である、従来技術のマルチノードシステム１０を示す。マルチノードシステム１０は、２つの電源ユニット１４及び１６に接続されるバックプレーン１２を有する。バックプレーン１２は、システム管理（ＳＭ）バスライン２４及び２６を経由してシステムノード２０及び２２にそれぞれ接続される。本例において、システムノード２０及び２２の両方は、それぞれのベースボード管理コントローラ（ＢＭＣ）３０及び３２を含む。ＢＭＣ３０及び３２は、バスライン２４及び２６を介して通信を処理する。バスライン２４及び２６は、バックプレーン１２に信号を送信すべく、ノード２０及び２２により使用される。共通のＳＭバスプロトコルは、集積回路間（アイ・スクウェア・シー：Ｉ２Ｃ）バスプロトコルである。Ｉ２Ｃプロトコルは、パケット交換型で、シングルエンドの、シリアルコンピュータバスプロトコルである。このプロトコルは、マスターデバイスがスレーブデバイスにコマンドを送信するマスタースレーブ構成に適応できる。Ｉ２Ｃプロトコルが、マルチノードシステムにおいて使用される場合、ノード２０及び２２などの各ノードがいつでもバックプレーン１２に対してバスライン２４及び２６を制御し得るので、複数のマスターであってよい。バックプレーン１２は、電力管理バス３４を経由して、電源ユニット１４及び１６にコマンドを送信し、電源ユニット１４及び１６からデータを受信する。ＢＭＣ３０及び３２は、電源ユニット１４及び１６からのコマンドをそれぞれのＳＭバスライン２４及び２６を介して送信及び受信する。
【０００４】
従って、システム１０は、複数のマスターがバックプレーン１２に対してバスを駆動中であり得るＩ２Ｃ環境の例である。Ｉ２Ｃトポロジー設計において１つのスレーブデバイスに接続している２又はそれより多い可能性があるマスターデバイスが存在する場合、マルチマスターの問題が生じ得る。そのような場合、各ノードは、別のノードが現在、バックプレーンと通信中であり得、それゆえバスがビジーであるという事実にもかかわらずバスにアクセスできる必要がある。この問題を解決すべく、サーバ産業において使用される一般的な解決手法は、バックプレーン上に設けられるマイクロコントローラである。そのようなマイクロコントローラは、ノードの各々からの通信を制御し、それゆえ１つのノードよりも多くがそのバスを使用しようとした場合、衝突（ｄｉｓｐｕｔｅ）を調整（ａｒｂｉｔｒａｔｅ）する。マイクロコントローラは、中央メッセージコントローラ（ＣＭＣ）と一般的に呼ばれる。
【０００５】
図２は、マルチマスターの問題を防止すべくＣＭＣを使用する別の従来技術のマルチノードシステム５０のブロック図である。マルチノードシステム５０は、２つの電源ユニット５４及び５６に接続されるバックプレーン５２を有する。バックプレーン５２は、ＳＭバスライン６４及び６６を経由してシステムノード６０及び６２にそれぞれ接続される。本例において、システム５０は、バスライン６４及び６６用のＩ２Ｃプロトコルを使用する。本例において、システムノード６０及び６２の両方が、それぞれのベースボード管理コントローラ（ＢＭＣ）７０及び７２を含む。バックプレーン５２は、電力管理バス７４を経由して、電源ユニット５４及び５６にコマンドを送信し、電源ユニット５４及び５６からデータを受信する。バックプレーン５２は、ノード６０及び６２からのマスターコマンド間の衝突を調整するソフトウェアを実行し、それによりマルチマスターの問題を回避するＣＭＣ８０を含む。
【０００６】
マルチマスターの問題に取り組むべくＣＭＣを使用することにより、潜在的な課題も引き起こされる。図２のＣＭＣ８０の動作は、純粋なソフトウェアにより基本的に構成されるので、コマンドを調整するためのソフトウェアがデッドロック状況になったなら、ＣＭＣは多くの場合、例えば、サーバなどのマルチノードシステムにシャットダウンを強いることとなる。そのような発生は、ＣＭＣにより実行されるソフトウェアの潜在的な信頼性の欠如に起因して継続的なサーバ動作を妨げる。
【０００７】
「マイクロサーバ」と題した米国特許出願第２０１７０１７７０６０号は、マイクロサーバが多くのサーバボードモジュールを含むことを開示する。こうしたサーバボードモジュールの各々は、シャーシに独立して設置され、マイクロサーバシステムを形成する。各々のサーバボードモジュールは、マザーボード及びコントローラボードを含む。マザーボードは、サーバボードモジュールのサーバ動作システムのサーバ動作システムを実行するために使用される。コントローラボードは、コンセントに差し込まれ、マザーボードに電気的に接続される。コントローラボードは、ＰＨＹイーサネット（登録商標）カード、マイクロコントローラ及びコンプレックスプログラマブルロジックデバイス（ＣＰＬＤ）を含む。ＰＨＹイーサネットカードは、遠隔管理システムに電気的に接続される。マイクロコントローラは、ＰＨＹイーサネットカード及びマザーボードにそれぞれ電気的に接続される。ＣＰＬＤは、マザーボードとマイクロコントローラとに電気的にそれぞれ接続される。
【０００８】
従って、システム管理バスに接続される複数のノードにより作られるマルチマスターコマンドをうまく調整するデバイスの必要がある。また、マルチマスターコマンドを調整するのにソフトウェアを当てにしないシステムの必要がある。マルチノードシステムのノードが、ノードのベースボード管理コントローラに追加の処理ロードをかけることなく、電源ユニットデータを得るのを可能にするシステムのさらなる必要がある。
【発明の概要】
【０００９】
１つの開示された例は、マルチマスターの問題を防止するマルチノードシステムである。そのシステムは、第１ノード及び第２ノードを有する。バックプレーンが、システム管理バスを経由して第１及び第２ノードに結合される。コンプレックスプログラマブルロジックデバイスが、システム管理バスに結合される。コンプレックスプログラマブルロジックデバイスは、第１ノードからのバスコマンドと第２ノードからのバスコマンドとの間を調整するように動作可能なハードウェアロジックを含む。
【００１０】
別の例は、システム管理バスを経由してバックプレーンに結合される２つのノード間のコマンドを調整する方法である。コンプレックスプログラマブルロジックデバイスが、システム管理バスに結合される。第１コマンドが、システム管理バスを経由して第１ノードから受信される。第２コマンドが、システム管理バスを経由して第２ノードから受信される。コンプレックスプログラマブルロジックデバイスのハードウェアロジックは、システム管理バスのマスターを構成するのが第１ノードなのか、又は第２ノードなのかを調整するように動作する。
【００１１】
上記の概要は、本開示の各実施形態又はあらゆる態様を表すことを意図していない。むしろ、前述の概要は単に、本明細書に記載される新規性のある態様及び特徴の一部に関する例を提供するにすぎない。上記の特徴及び利点、ならびに本開示の他の特徴及び利点は、添付図面及び添付の特許請求の範囲に関連して理解されると、本発明を実行するための代表的な実施形態及び方式に関する以下の詳細な説明から、容易に明らかになるであろう。
【図面の簡単な説明】
【００１２】
開示は、添付図面を共に参照して、以下の例示的な実施形態の説明から、より十分に理解されるであろう。
【００１３】
【図１】（従来技術）従来技術のマルチマスターシステムのブロック図である。
【００１４】
【図２】（従来技術）マルチマスターの問題を解決すべくＣＭＣを用いた従来技術のマルチマスターシステムのブロック図である。
【００１５】
【図３】マルチマスターの問題を解決すべくＣＰＬＤデバイスを用いた例示的なマルチマスターシステムのブロック図である。
【００１６】
【図４】図３のＣＰＬＤデバイス、電源ユニット及びベースボード管理コントローラの機能ブロック図である。
【００１７】
【図５】図３のＣＰＬＤデバイスにより実行され得るＩ２Ｃコマンドの表である。
【００１８】
【図６】本開示の様々な例に係る例示的なシステムを示す。
【図７】本開示の様々な例に係る例示的なシステムを示す。
【００１９】
本開示には、様々な修正形態及び代替形態が可能である。いくつかの代表的な実施形態が、例として図面に示されており、本明細書において詳細に説明されることになる。しかしながら、本発明は、開示される特定の形態に限定されることが意図されないことを、理解されたい。むしろ、本開示は、添付の特許請求の範囲によって規定されるように、本発明の精神及び範囲内に含まれる全ての修正形態、均等な形態、及び代替形態を包含することになる。
【発明を実施するための形態】
【００２０】
本発明は、多くの異なる形態で実施され得る。代表的な実施形態が、図面に示されており、本明細書において詳細に説明されることになる。本開示は、本開示の原理の例又は例示であり、本開示の広範な態様を、示される実施形態に限定することが意図されない。その程度まで、例えば、要約、概要、及び詳細な説明の項目に開示されるが、特許請求の範囲には明示的に記載されない要素及び限定が、示唆、推測、又は別の方法によって、個々に又はまとめて特許請求の範囲に組み込まれるべきではない。本件の詳細な説明の目的として、明確に否定されない限り、単数形は複数形を含み、逆もまた真なりである。用語「ｉｎｃｌｕｄｉｎｇ（含む）」は、「ｉｎｃｌｕｄｉｎｇ  ｗｉｔｈｏｕｔ  ｌｉｍｉｔａｔｉｏｎ（非限定的に含む）」ことを意味する。また、「ａｂｏｕｔ（約）」、「ａｌｍｏｓｔ（ほぼ）」、「ｓｕｂｓｔａｎｔｉａｌｌｙ（実質的）」、「ａｐｐｒｏｘｉｍａｔｅｌｙ（およそ）」などのような近似を表わす用語は、本明細書中、例えば、「ａｔ，ｎｅａｒ，ｏｒ  ｎｅａｒｌｙ  ａｔ（において、の近く、又は、の近傍）」又は「ｗｉｔｈｉｎ  ３−５％  ｏｆ（の３〜５％の範囲内）」又は「ｗｉｔｈｉｎ  ａｃｃｅｐｔａｂｌｅ  ｍａｎｕｆａｃｔｕｒｉｎｇ  ｔｏｌｅｒａｎｃｅｓ（許容可能な製造公差の範囲内）」、又はそれらの任意の論理的組み合わせを意味するために使用されていることがある。
【００２１】
本開示は、異なるノード間のバス通信を調整すべく、コンプレックスプログラマブルロジックデバイス（ＣＰＬＤ）を追加することによりマルチノードシステムにおけるマルチマスターの問題に取り組む。ＣＰＬＤは、各ノードのベースボード管理コントローラと、少なくとも１つの電源ユニット（ＰＳＵ）との間でＩ２Ｃ接続の中間に加えられる。ＣＰＬＤ上にゲートを構成するための適切なＣＰＬＤコードが、ノードと電源ユニットとの間のＩ２Ｃ接続上のマルチマスターの状況を処理すべく提供される。従って、動作のためにソフトウェアに依拠する通常のシャーシ管理集積回路が、省略され得る。従って、ＣＰＬＤ及びそのメモリキャッシュは、例えば、下記の例のようなＰＭバスを使用する任意のシステムなどのマルチマスタートポロジーを有する任意のシステム上のマルチマスターの問題を解決するために使用され得る。
【００２２】
図３は、バックプレーン１０２とのノード通信間のマルチマスターの問題を防止すべく、ＣＰＬＤを使用する例示的なマルチノードシステム１００のブロック図である。バックプレーン１０２は、２つの電源ユニット１０４及び１０６に接続される。電源ユニット１０４及び１０６は、電力管理（ＰＭ）バス１０８を経由してバックプレーン１０２に接続される。電力管理バス１０８は、バックプレーン１０２が電源ユニット１０４及び１０６からデータを受信するのを可能にする。電力管理バス１０８はまた、システム１００のために電力を管理すべく、バックプレーン１０２が電源ユニット１０４及び１０６に制御信号を送信するのを可能にする。
【００２３】
バックプレーン１０２は、ＳＭバスライン１２４及び１２６を経由してシステムノード１２０及び１２２にそれぞれ接続される。本例において、システム１００は、バスライン１２４及び１２６のためにＩ２Ｃプロトコルを使用する。本例において、システムノード１２０及び１２２の両方がそれぞれのベースボード管理コントローラ（ＢＭＣ）１３０及び１３２を含む。ＢＭＣ１３０及び１３２は、バスライン１２４及び１２６に直接接続される。本例において、ＢＭＣ１３０及び１３２は、バスライン１２４及び１２６を介してそれぞれのノード１２０及び１２２のために通信を処理する。ＢＭＣ１３０及び１３２は、ＳＭバスライン１２４及び１２６を介してバックプレーン１０２にコマンドを送信し、ＳＭバスライン１２４及び１２６を介してバックプレーン１０２からデータを受信する。
【００２４】
バックプレーン１０２は、ＳＭバスライン１２４及び１２６を介したノード１２０及び１２２からのマスターコマンド間の衝突を調整し、それによりマルチマスターの問題を回避するコンプレックスプログラマブルロジックデバイス１４０を含む。コンプレックスプログラマブルロジックデバイス（ＣＰＬＤ）１４０は、中程度に複雑なデータ処理機能の実施を可能にする多数のハードウェアロジックゲートを含むハードウェアデバイスである。ゲートの構成は、ＣＰＬＤ１４０がマルチマスターの問題のソリューションなどの異なる機能を行うのを可能にするコードによって実現される。ＣＰＬＤ１４０は、構成コードを格納する不揮発性構成メモリを含む。従って、ＣＰＬＤ１４０は、システム起動時に直ちに機能し得る。
【００２５】
ＣＰＬＤ１４０などのコンプレックスプログラマブルロジックデバイスは、ＣＰＬＤ１４０の機能がハードウェアロジックに組み込まれるので、ソフトウェアを実行する包括的なコントローラと比較してはるかに安定したデバイスである。システム１００においてＣＰＬＤ１４０などのＣＰＬＤの使用により、システム１０（図１における）などの従来のマルチノードシステムにおいて生じるマルチマスターの問題が解決される。ＣＰＬＤ１４０は、ＢＭＣ１３０及び１３２と、電源ユニット１０４及び１０６との間の通信間で仲裁者（ｍｅｄｉａｔｏｒ）としての機能を果たす。ＣＰＬＤ１４０は、ノード１２０及びノード１２２からのコマンドを受け取り、次にどちらのコマンドが優先されるかを決定する。優先順位付け後に、ＣＰＬＤ１４０は次に、電源ユニット１０４及び１０６にコマンドを送る。ＣＰＬＤ１４０のハードウェアロジックはまた、システム５０におけるＣＭＣ８０（図２）の使用などの、公知のソフトウェアソリューションから不安定な実施を解決する。例えば、ＣＰＬＤ１４０は、システム管理バスライン１２４を経由してノード１２０から第１コマンドを受信し得る。ＣＰＬＤ１４０は、システム管理バスライン１２６を経由して第２ノード１２２から第２コマンドを受信し得る。ＣＰＬＤ１４０はハードウェアロジックを動作させ、バックプレーン１０２に対するシステム管理バスのマスターを構成するのが、第１ノード１２０なのか、又は第２ノード１２２なのかを調整する。
【００２６】
図４は、電源ユニット１０４と、ベースボード管理コントローラ１３０及び１３２（図３における）とに関連したＣＰＬＤ１４０の構成のブロック図である。本例において、ＢＭＣ１３０及び１３２は、ＣＰＬＤ１４０とやりとりするＩ２Ｃコマンドをノード１２０及び１２２のそれぞれの主ボードにそれぞれ中継する。このＩ２Ｃ構成において、ＣＰＬＤ１４０は、ノード１２０及び１２２を表すスレーブモジュール４０４及び４０６にコマンドを発するマスターモジュール４０２を含む。本例において、スレーブモジュール４０４及び４０６は、ＢＭＣ１３０及び１３２からコマンドを受信する。マスターモジュール４０２は、電源ユニット１４０及び１０６にコマンドを送信する。
【００２７】
本例において、標準的な電力管理（ＰＭ）バスコマンドコードが、ＣＰＬＤ１４０のメモリ４１０に格納される。従って、ＣＰＬＤ１４０は、図４のＰＳＵ１０４などのシステム１００の電源ユニットためにメモリキャッシュとして使用される。図３に示されるように、ＣＰＬＤ１４０は、電力バス１０８を介してＰＭバスコマンドコードを用いて通信する。図４に示されるように、ＢＭＣ１３０などのホストが、標準的なＰＭバスコマンドコードで電源ユニット情報を得るべく、ＣＰＬＤ１４０にアクセスし得る。
【００２８】
図５は、図３の電源ユニット１０４及び１０６などの、電源ユニットから性能データを得るべく、ベースボード管理コントローラ１３０又は１３２（図３及び図４において）などの、ベースボード管理コントローラのうちの１つにより使用され得る例示的な標準の電力管理バスコマンドコードの表である。図５は、電源ユニット１０４及び１０６からステータスデータを得るために使用され得る様々なコマンドのコマンドコード及びコマンド名を示す。図５の表に示されるように、ベースボード管理コントローラは、正確な電力管理バスコマンドを用いることにより特定の電源ユニットの電圧出力、電流出力、温度及びファンステータスなどのデータを要求し得る。
【００２９】
図６は、例示的なコンピューティングシステム６００を示し、このコンピューティングシステムのコンポーネントが、バス６０２を使用して、互いに電気通信している。システム６００は、処理ユニット（ＣＰＵまたはプロセッサ）６３０およびシステムバス６０２を含んでおり、システムバス６０２は、システムメモリ６０４（例えば、リードオンリメモリ（ＲＯＭ）６０６およびランダムアクセスメモリ（ＲＡＭ）６０８）を含む様々なシステムコンポーネントを、プロセッサ６３０へ連結する。システム６００は、プロセッサ６３０と直接接続される、プロセッサ６３０と近接する、又はプロセッサ６３０の一部として統合される高速メモリのキャッシュを含み得る。システム６００は、プロセッサ６３０による迅速なアクセスのために、メモリ６０４及び／又はストレージデバイス６１２から、キャッシュ６２８へデータをコピーし得る。このようにして、キャッシュは、データを待つ間、プロセッサ６３０にパフォーマンス向上をもたらし得る。こうした、及びその他のモジュールは、様々な動作を実行すべく、プロセッサ６３０を制御し得る、又は、プロセッサ６３０を制御するように構成され得る。他のシステムメモリ６０４も、使用のため利用可能であり得る。メモリ６０４は、異なる性能特性を持つ、複数の異なる種類のメモリを含み得る。プロセッサ６３０は、任意の汎用プロセッサと、ストレージデバイス６１２に組み込まれた、例えば、モジュール１  ６１４、モジュール２  ６１６、モジュール３  ６１８などのハードウェアモジュール又はソフトウェアモジュールとを含み得る。ハードウェアモジュール又はソフトウェアモジュールは、プロセッサ６３０、ならびにソフトウェア命令が、実際のプロセッサ設計に組み込まれている専用プロセッサを制御するように構成される。プロセッサ６３０は本質的に、複数のコア又はプロセッサ、バス、メモリコントローラ、キャッシュなどを含む、完全に自己完結型のコンピューティングシステムであり得る。マルチコアプロセッサは、対称的又は非対称的であり得る。
【００３０】
コンピューティングデバイス６００とのユーザ対話を可能にすべく、入力デバイス６２０が入力メカニズムとして提供される。入力デバイス６２０は、音声用のマイク、ジェスチャ入力又はグラフィカル入力用のタッチセンサ式スクリーン、キーボード、マウス、動き入力などを備え得る。いくつかの例において、マルチモードのシステムは、システム６００と通信すべく、複数の種類の入力をユーザが提供することを可能にし得る。この例において、出力デバイス６２２も提供される。通信インタフェース６２４は、ユーザ入力及びシステム出力を制御及び管理し得る。
【００３１】
ストレージデバイス６１２は、コンピュータによりアクセス可能なデータを格納するための不揮発性メモリであり得る。ストレージデバイス６１２は、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ（ＲＡＭ）６０８、リードオンリメモリ（ＲＯＭ）６０６、及びそれらのハイブリッドであり得る。
【００３２】
コントローラ６１０は、ＢＭＣ（ベースボード管理コントローラ）などのシステム６００上の専用のマイクロコントローラ又はプロセッサであり得る。いくつかの場合において、コントローラ６１０は、インテリジェントプラットフォーム管理インタフェース（ＩＰＭＩ）の一部であり得る。さらに、いくつかの場合において、コントローラ６１０は、システム６００のマザーボード又はメイン回路基板に組み込まれ得る。コントローラ６１０は、システム管理ソフトウェアとプラットフォームハードウェアとの間のインタフェースを管理し得る。さらに以下に説明されるように、コントローラ６１０はまた、コントローラ又は周辺コンポーネント等の様々なシステムデバイス及びコンポーネント（内部及び／又は外部）と通信し得る。
【００３３】
コントローラ６１０は、通知、アラート、及び／又はイベントに対する特定の応答を生成し得、自動ハードウェアリカバリ手順などのための命令又はコマンドを生成すべく、リモートデバイス又はコンポーネントと通信し得る（例えば、電子メールメッセージ、ネットワークメッセージなど）。管理者はまた、以下にさらに説明されるように、特定のハードウェアリカバリ手順又は動作を開始又は実行すべく、コントローラ６１０とリモート通信し得る。
【００３４】
コントローラ６１０はまた、コントローラ６１０により受信されたイベント、アラート、ならびに通知を管理及び維持するためのシステムイベントログコントローラ、及び／又はストレージを含み得る。例えば、コントローラ６１０又はシステムイベントログコントローラは、１又は複数のデバイス及びコンポーネントからアラート又は通知を受信し得て、そのアラート又は通知をシステムイベントログストレージコンポーネントに維持し得る。
【００３５】
フラッシュメモリ６３２は、ストレージ及び／又はデータ転送のためにシステム６００により使用され得る、電子的不揮発性コンピュータストレージ媒体又はチップであり得る。フラッシュメモリ６３２は、電気的に消去及び／又は再プログラミングされ得る。フラッシュメモリ６３２は、例えば、ＥＰＲＯＭ（消去可能プログラマブルリードオンリメモリ）、ＥＥＰＲＯＭ（電気的消去可能プログラマブルリードオンリメモリ）、ＲＯＭ、ＮＶＲＡＭ、又はＣＭＯＳ（相補型金属酸化膜半導体）を含み得る。フラッシュメモリ６３２は、システム６００が最初に電源オンにされた場合にシステム６００により実行されるファームウェア６３４を、このファームウェア６３４に指定された一連の構成と共に格納できる。フラッシュメモリ６３２はまた、ファームウェア６３４により使用される構成を格納し得る。
【００３６】
ファームウェア６３４は、基本入出力システム又は、ＥＦＩ（拡張可能ファームウェアインタフェース）もしくはＵＥＦＩ（ユニファイド拡張可能ファームウェアインタフェース）のような、同等物を含み得る。ファームウェア６３４は、システム６００が起動されるたびに、一連のプログラムとしてロード及び実行され得る。ファームウェア６３４は、一連の構成に基づいて、システム６００に存在するハードウェアを認識し、初期化し、試験し得る。ファームウェア６３４は、ＰＯＳＴ（パワーオンセルフテスト）のようなセルフテストを、システム６００に対して実行し得る。このセルフテストは、ハードディスクドライブ、光学式読取デバイス、冷却デバイス、メモリモジュール、拡張カードなどの、様々なハードウェアコンポーネントの機能をテストし得る。ファームウェア６３４は、オペレーティングシステム（ＯＳ）を格納すべく、メモリ６０４、ＲＯＭ６０６、ＲＡＭ６０８、及び／又はストレージデバイス６１２内の領域をアドレス指定して、割り当て得る。ファームウェア６３４は、ブートローダ及び／又はＯＳをロードし得、システム６００の制御をＯＳに付与し得る。
【００３７】
システム６００のファームウェア６３４は、ファームウェア６３４が、システム６００内の様々なハードウェアコンポーネントを制御する方法を定義するファームウェア構成を含み得る。ファームウェア構成は、システム６００内の様々なハードウェアコンポーネントが起動される順序を決定してよい。ファームウェア６３４は、ファームウェアのデフォルト構成におけるパラメータとは異なり得る、様々な異なるパラメータを設定することができる、ＵＥＦＩのようなインタフェースを提供し得る。例えば、ユーザ（例えば、管理者）は、ファームウェア６３４を使用して、クロック速度及びバス速度を指定し、どんな周辺機器がシステム６００に取り付けられているかを規定し、健全性（例えば、ファン速度及びＣＰＵ温度限界）の監視を構成し、及び／又は、システム６００の全体的な性能及び電力使用量に影響を及ぼす様々なその他のパラメータを提供する。ファームウェア６３４はフラッシュメモリ６３２に格納されているものとして示されているが、メモリ６０４又はＲＯＭ６０６等の他のメモリコンポーネントにファームウェア６３４が格納され得ることを、当業者は容易に認識するであろう。
【００３８】
システム６００は、１又は複数のセンサ６２６を含み得る。１又は複数のセンサ６２６は、例えば、１又は複数の温度センサ、熱センサ、酸素センサ、化学センサ、ノイズセンサ、ヒートセンサ、電流センサ、電圧検出器、エアフローセンサ、流量センサ、赤外線温度計、熱流束センサ、温度計、パイロメータなどを含み得る。１又は複数のセンサ６２６は、例えば、バス６０２を介して、プロセッサ、キャッシュ６２８、フラッシュメモリ６３２、通信インタフェース６２４、メモリ６０４、ＲＯＭ６０６、ＲＡＭ６０８、コントローラ６１０、及びストレージデバイス６１２と通信し得る。また、１又は複数のセンサ６２６は、例えば、アイ・スクウェア・シー（Ｉ２Ｃ）、汎用出力（ＧＰＯ）などの１又は複数の異なる手段を介して、システム内の他のコンポーネントと通信し得る。システム６００の異なる種類のセンサ（例えば、センサ６２６）はまた、冷却ファン速度、電力ステータス、オペレーティングシステム（ＯＳ）ステータス、ハードウェアステータスなどのようなパラメータについて、コントローラ６１０にレポートし得る。ディスプレイ６３６は、システム６００により使用され、コントローラ６１０又はプロセッサ６３０により実行されるアプリケーションに関連するグラフィックスを提供し得る。
【００３９】
図７は、説明された方法又は処理の実行において、ならびに、グラフィカルユーザインタフェース（ＧＵＩ）の生成及び表示において使用され得るチップセットアーキテクチャを有する例示的なコンピュータシステム７００を示す。コンピュータシステム７００は、開示された技術を実装すべく使用され得る、コンピュータハードウェア、ソフトウェア、及びファームウェアを含み得る。システム７００は、特定の計算を実行するように構成されたソフトウェア、ファームウェア、及びハードウェアを実行することの可能な、様々な物理的及び／又は論理的に別個のリソースを代表する、プロセッサ７１０を含み得る。プロセッサ７１０は、プロセッサ７１０への入力及びプロセッサ７１０からの出力を制御し得る、チップセット７０２と通信し得る。この例において、チップセット７０２は、ディスプレイなどの出力デバイス７１４へ情報を出力し、ストレージデバイス７１６に対して情報の読み書きを行い得る。ストレージデバイス７１６は、例えば、磁気媒体及びソリッドステート媒体を含み得る。チップセット７０２はまた、ＲＡＭ７１８からデータを読み出し得、かつＲＡＭ７１８にデータを書き込み得る。様々なユーザインタフェースコンポーネント８０６にインタフェース接続するためのブリッジ７０４が、チップセット７０２にインタフェース接続するために提供され得る。ユーザインタフェースコンポーネント７０６は、キーボード、マイク、タッチ検出及び処理回路、マウスなどのポインティングデバイスを含み得る。
【００４０】
チップセット７０２はまた、異なる物理インタフェースを有し得る、１又は複数の通信インタフェース７０８とインタフェース接続し得る。そのような通信インタフェースは、有線及び無線ローカルエリアネットワークのための、ブロードバンド無線ネットワークのための、ならびにパーソナルエリアネットワークのためのインタフェースを含み得る。さらに、機械は、ユーザインタフェースコンポーネント７０６を介してユーザからの入力を受信することができ、かつ、プロセッサ７１０を使用してこうした入力を解釈することにより、閲覧機能などの適切な機能を実行することができる。
【００４１】
さらに、チップセット７０２は、ファームウェア７１２と通信し得、ファームウェア７１２は、コンピュータシステム７００の電源オン時に、コンピュータシステム７００によって実行され得る。ファームウェア７１２は、ファームウェア構成セットに基づいて、コンピュータシステム７００内に存在するハードウェアを認識、初期化及び試験してよい。ファームウェア７１２は、ＰＯＳＴのようなセルフテストを、システム７００に実行し得る。このセルフテストは、様々なハードウェアコンポーネント７０２〜７１８の機能を試験し得る。ファームウェア７１２は、ＯＳを格納すべく、ＲＡＭメモリ７１８の領域をアドレス指定し得て、割り当て得る。ファームウェア７１２は、ブートローダ及び／又はＯＳをロードし得、システム７００の制御をこのＯＳに与え得る。いくつかの場合において、ファームウェア７１２は、ハードウェアコンポーネント７０２〜７１０及び７１４〜７１８と通信し得る。ここで、ファームウェア７１２は、チップセット７０２を通じて、及び／又は１又は複数の他のコンポーネントを通じて、ハードウェアコンポーネント７０２〜７１０及び７１４〜７１８と通信し得る。いくつかの場合において、ファームウェア７１２は、ハードウェアコンポーネント７０２〜７１０及び７１４〜７１８と直接通信し得る。
【００４２】
例示的なシステム６００及び７００は、１つよりも多くのプロセッサ（例えば、６３０、７１０）を有し得ること、又は、より高い処理能力を提供すべく、一緒にネットワーク接続されたコンピューティングデバイスのグループ又はクラスタの一部であり得ることが理解され得る。
【００４３】
本出願において用いられるとき、「コンポーネント」、「モジュール」、「システム」等の用語は概して、コンピュータ関連のエンティティ、即ち、１又は複数の特定の機能を有する動作可能な機械に関連したハードウェア（例えば、回路）、ハードウェアとソフトウェアとの組み合わせ、ソフトウェア、若しくはエンティティのいずれかを指す。例えば、コンポーネントは、限定されないが、プロセッサ（例えば、デジタル信号プロセッサ）上で実行されるプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、及び／又はコンピュータであり得る。実例として、コントローラ上で実行されるアプリケーション、及びそのコントローラは両方とも、コンポーネントになり得る。１又は複数のコンポーネントは、プロセス及び／又は実行のスレッド内に存在し得、コンポーネントは、１つのコンピュータ上に局在化され得、及び／又は、２又はそれより多いコンピュータ間で分散され得る。さらに、「デバイス」が、特別に設計されたハードウェア、ハードウェアが特定の機能を行うことを可能にする搭載ソフトウェアを実行することで専門化された汎用ハードウェア、コンピュータ可読媒体に格納されたソフトウェア、又はこれらの組み合わせの形態でもたらされ得る。
【００４４】
本明細書において使用される用語は、特定の実施形態を説明することだけを目的としており、本発明を限定しようとすることが意図されない。本明細書において使用されるとき、単数形の「ａ」、「ａｎ」、及び「ｔｈｅ」は、複数形も含むことが意図されている。但し、そうではないことが文脈上で明確に示されている場合を除く。さらに、「含む（ｉｎｃｌｕｄｉｎｇ）」、「含む（ｉｎｃｌｕｄｅｓ）」、「有する（ｈａｖｉｎｇ）」、「有する（ｈａｓ）」、「有する（ｗｉｔｈ）」という用語、又はこれらの変化形が、詳細な説明及び／又は特許請求の範囲のいずれかに用いられる限りにおいて、そのような用語は、「備える（ｃｏｍｐｒｉｓｉｎｇ）」という用語と類似の方式で包括的であることが意図されている。
【００４５】
別途定義されない限り、本明細書において用いられる全ての用語（技術的用語及び科学的用語を含む）は、当業者によって一般に理解される意味と同じ意味を有する。さらに、一般に用いられる辞書に定義されている用語などの用語が、関連技術の文脈におけるそれらの用語の意味と一致する意味を有すると解釈されるべきであり、理想化された認識又は過度に形式的な認識で解釈されてはならない。但し、本明細書において明示的にそのように定義される場合を除く。
【００４６】
本発明の様々な実施形態が上述されたが、それらの実施形態は、例としてのみ提供されており、限定ではないことを理解されたい。本発明の精神又は範囲から逸脱することなく、本明細書の開示に従って、開示された実施形態への多数の変更が行われてよい。従って、本発明の広さ及び範囲は、上述された実施形態のいずれによっても限定されるべきではない。むしろ、本発明の範囲は、以下の特許請求の範囲及びこれらの均等物に従って定義されるべきである。
【００４７】
本発明は、１又は複数の実装について示され、説明されているが、本明細書及び添付図面の意味を読み取り理解するならば、均等な変更及び修正が行われるか、又はそれらが当業者に知られるであろう。さらに、本発明の特定の特徴は、いくつかの実施例のうちの１つのみに関して開示されてきたかもしれないが、そのような特徴は、任意の所与の又は特定のアプリケーションにとって望ましく、かつ有益であり得るので、他の実施例の１又は複数の他の特徴と組み合わされてもよい。
【図１】
2019160279.tif 000003
【図２】
2019160279.tif 000004
【図３】
2019160279.tif 000005
【図４】
2019160279.tif 000006
【図５】
2019160279.tif 000007
【図６】
2019160279.tif 000008
【図７】
2019160279.tif 000009