(57)【要約】      （修正有）【課題】ＢＭＣ、または、サーバシステムの別のコンポーネントをリセットするためのシステムおよび方法を提供する。【解決手段】サーバシステム１００Ａにおいて、ハードウェアウォッチドッグタイマ回路１１５は、ＢＭＣ１０３からのハートビート信号をモニタリングし、ＢＭＣの健全状態を判定する。ＢＭＣの健全状態が予め定められた基準を満たさない場合、ハードウェアウォッチドッグタイマ回路は、ＢＭＣをリセットするためのリセット信号を生成する。ＣＰＬＤ１１３は、サーバシステムのコンポーネントの健全情報をＢＭＣから収集できる。ＣＰＬＤはまた、ＢＭＣの健全状態をハードウェアウォッチドッグタイマ回路から収集できる。ＣＰＬＤは、サーバシステムのどの特定のコンポーネントがハングアップしているかを判定すると、特定のコンポーネントをリセットするためのリセット信号を生成する。【選択図】図１Ａ
2019125339.tif 000002
【特許請求の範囲】
【請求項１】
サーバシステムのハングアップしたコンポーネントをリセットするためのコンピュータ実装方法であって、
前記サーバシステムのハードウェアウォッチドッグタイマ（ＨＷ  ＷＤＴ）回路によって、前記サーバシステムのベースボード管理コントローラ（ＢＭＣ）からハートビート信号を受信する段階と、
前記ＨＷ  ＷＤＴ回路によって、前記ハートビート信号に基づいて、前記ＢＭＣの健全状態を判定する段階と、
前記ＢＭＣの前記健全状態が、予め定められた基準を満たさない場合、前記ＢＭＣをリセットする段階と
を備えるコンピュータ実装方法。
【請求項２】
管理者またはリモートデバイスから管理メッセージを受信すると、物理層（ＰＨＹ）集積回路（ＩＣ）によって、電源管理イベント（ＰＭＥ）信号を介して第１コンプレックスプログラマブルロジックデバイス（第１ＣＰＬＤ）と通信する段階と、
前記第１ＣＰＬＤによって、前記サーバシステムのコンポーネントの健全情報を前記ＢＭＣから収集する段階と、
前記第１ＣＰＬＤによって、前記ＢＭＣの前記健全状態を前記ＨＷ  ＷＤＴ回路から収集する段階と、
収集された前記コンポーネントの健全情報、および、前記ＢＭＣの前記健全状態に基づいて、前記サーバシステムの特定のコンポーネントがハングアップしたと判定する段階と、
前記第１ＣＰＬＤによって、前記特定のコンポーネントをリセットするためのリセット信号を生成する段階と
を更に備える、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記第１ＣＰＬＤは、前記特定のコンポーネントへ送信される前記リセット信号をモニタリングするように構成されている第１タイムアウト検出モジュールを含み、前記コンピュータ実装方法は、前記リセット信号が前記特定のコンポーネントのリセットに失敗したという判定に応答して、前記第１ＣＰＬＤに前記リセット信号を再送信させる段階を備える、請求項２に記載のコンピュータ実装方法。
【請求項４】
前記サーバシステムは更に、第２ＣＰＬＤを備え、前記第２ＣＰＬＤは、前記第１ＣＰＬＤの冗長バックアップとして機能するように、または、前記サーバシステムの前記コンポーネントの前記健全情報を直接収集するように構成され、前記第２ＣＰＬＤは、第２タイムアウト検出モジュールを含む、請求項２に記載のコンピュータ実装方法。
【請求項５】
前記ＢＭＣに、前記サーバシステムの前記コンポーネントをスキャンさせ、前記サーバシステムの前記コンポーネントの健全情報を収集させる段階を更に備える、請求項１に記載のコンピュータ実装方法。
【請求項６】
前記ＢＭＣは、前記ＢＭＣの前記ハートビート信号によってリセット可能なソフトウェアＷＤＴを含み、前記ソフトウェアＷＤＴは、前記ＢＭＣの前記ハートビート信号が前記ソフトウェアＷＤＴのリセットに失敗した場合に、前記ＢＭＣをリセットするためのタイムアウト信号を生成するように構成されている、請求項１に記載のコンピュータ実装方法。
【請求項７】
プロセッサと、
ベースボード管理コントローラ（ＢＭＣ）と、
ハードウェアウォッチドッグタイマ（ＨＷ  ＷＤＴ）回路と、
物理層（ＰＨＹ）集積回路（ＩＣ）と、
第１コンプレックスプログラマブルロジックデバイス（第１ＣＰＬＤ）と、
命令を記憶するコンピュータ可読媒体と
を備えるシステムであって、前記命令は、前記プロセッサによって実行されるとき、前記システムに、
前記ＨＷ  ＷＤＴ回路によって、前記ＢＭＣからハートビート信号を受信すること、
前記ＨＷ  ＷＤＴ回路によって、前記ハートビート信号に基づいて、前記ＢＭＣの健全状態を判定すること、および、
前記ＢＭＣの前記健全状態が予め定められた基準を満たさない場合、前記ＢＭＣをリセットすること
を含む動作を実行させる、
システム。
【請求項８】
前記コンピュータ可読媒体が記憶する命令は、前記プロセッサによって実行されるとき、前記システムに、
管理者またはリモートデバイスから管理メッセージを受信すると、前記ＰＨＹ  ＩＣによって、電源管理イベント（ＰＭＥ）信号を介して、前記第１ＣＰＬＤと通信すること、
前記第１ＣＰＬＤによって、サーバシステムのコンポーネントの健全情報を前記ＢＭＣから収集すること、
前記第１ＣＰＬＤによって、前記ＢＭＣの前記健全状態を前記ＨＷ  ＷＤＴ回路から収集すること、
収集された前記コンポーネントの健全情報、および、前記ＢＭＣの前記健全状態に基づいて、前記サーバシステムの特定のコンポーネントがハングアップしたと判定すること、ならびに、
前記第１ＣＰＬＤによって、前記特定のコンポーネントをリセットするためのリセット信号を生成すること
を含む動作を更に実行させる、請求項７に記載のシステム。
【請求項９】
前記第１ＣＰＬＤは、前記特定のコンポーネントへ送信された前記リセット信号をモニタリングするように構成されている第１タイムアウト検出モジュールを含み、前記コンピュータ可読媒体が記憶する命令は、前記プロセッサによって実行されるとき、前記システムに、
前記リセット信号が前記特定のコンポーネントのリセットに失敗したという判定に応答して、前記第１ＣＰＬＤに、前記リセット信号を再送信させること
を含む動作を更に実行させる、請求項８に記載のシステム。
【請求項１０】
前記サーバシステムは更に、第２ＣＰＬＤを備え、前記第２ＣＰＬＤは、前記第１ＣＰＬＤの冗長バックアップとして機能するように、または、前記サーバシステムの前記コンポーネントの前記健全情報を直接収集させるように構成され、前記第２ＣＰＬＤは、第２タイムアウト検出モジュールを含む、請求項９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は一般的に、コンピューティングシステムにおけるシステム復旧に関する。 
【背景技術】
【０００２】
サーバアーキテクチャにおいて、サーバシステムは典型的には、米国特許出願第２０１３０２０５１２９号に開示されているＢＭＣなどのベースボード管理コントローラ（ＢＭＣ）を備える。ＢＭＣは、システム管理ステータス（例えば、温度および電源）のモニタリング、および、サーバシステムの制御に使用される。ＢＭＣによって制御されるシステム管理機能は、典型的には、サーバシステムにとって重要である。
【０００３】
しかしながら、ＢＭＣが誤動作、動作停止、または、ハングアップした場合、サーバシステムの性能および能力は大きな影響を受け得る。
【発明の概要】
【０００４】
本開示の様々な例によれば、システムおよび方法は、ハードウェアウォッチドッグタイマ（ＨＷ  ＷＤＴ）回路および／もしくはコンプレックスプログラマブルロジックデバイス（ＣＰＬＤ）を使用して、ハングアップしたベースボード管理コントローラ（ＢＭＣ）、または、サーバシステムの別のコンポーネントをリセットすることによって、上記の問題に対する解決策を提供する。ＨＷ  ＷＤＴ回路は、ＢＭＣからのハートビート信号をモニタリングし、ＢＭＣの健全状態を判定できる。ＢＭＣの健全状態が、予め定められた基準を満たさない場合、ＨＷ  ＷＤＴ回路は、ＢＭＣをリセットするためのリセット信号を生成する。ＣＰＬＤは、サーバシステムのコンポーネントの健全情報をＢＭＣから収集し、ＢＭＣの健全状態をＨＷ  ＷＤＴ回路から収集できる。ＣＰＬＤは、サーバシステムのどの特定のコンポーネントがハングアップしているかを判定すると、特定のコンポーネントをリセットするためのリセット信号を生成できる。
【０００５】
いくつかの実装において、ＣＰＬＤは、２またはより多くの部分（例えば、第１ＣＰＬＤ部および第２ＣＰＬＤ部）を含む。第１ＣＰＬＤ部は、サーバシステムのマザーボード上に配置でき、一方、第２ＣＰＬＤ部は、サーバシステムのバックプレーン上に配置できる。第１ＣＰＬＤ部および第２ＣＰＬＤ部の両方は、集積回路間（Ｉ２Ｃ）チャネルを介してＢＭＣに接続される。第１ＣＰＬＤ部は、サーバシステムのコンポーネントの健全情報をＢＭＣから収集し、ＢＭＣの健全状態をＨＷ  ＷＤＴ回路から収集できる。第２ＣＰＬＤ部は、第１ＣＰＬＤ部の冗長バックアップとして機能し得て、および／または、サーバシステムの複数の電源ユニット（ＰＳＵ）の健全情報を直接収集できる。いくつかの例において、第１ＣＰＬＰ部または第２ＣＰＬＤ部のいずれかは、再開および休止（ＲＳＭ＿ＲＳＴ）信号を受信後、リセット信号を送信できる。いくつかの例において、第１ＣＰＬＰは、サーバシステムの電源投入およびリセットの手順を扱うことができる。
【０００６】
いくつかの実装において、サーバシステムは更に、ネットワークを介してリモートデバイスと通信するための物理層（ＰＨＹ）集積回路（ＩＣ）を含む。ＰＨＹ  ＩＣは、管理メッセージを管理者またはリモートデバイスから受信し、電源管理イベント（ＰＭＥ）信号を介して第１ＣＰＬＤ部およびＢＭＣと通信できる。いくつかの例において、リモートデバイスまたは管理者は、ＰＨＹ  ＩＣ１１２および第１ＣＰＬＤ部を介してＢＭＣまたはサーバシステムの特定のコンポーネントをリモートでリセットすることが可能であり得る。いくつかの例において、ＰＨＹ  ＩＣは、ＢＭＣとＲＪ４５コネクタとの間のブリッジとして働く。ＰＨＹ  ＩＣは、ＰＨＹ＿ＭＤＩＰ信号を介してＲＪ４５コネクタと通信しながら、ＲＧＭＩＩ信号を介してＢＭＣと通信できる。
【０００７】
いくつかの実装において、ＢＭＣは、ソフトウェアＷＤＴを含む。ソフトウェアＷＤＴは、ＢＭＣのハートビート信号によってリセットされる。ＢＭＣのハートビート信号がソフトウェアＷＤＴのリセットに失敗した場合、ソフトウェアＷＤＴはタイムアウトし、ＢＭＣをリセットするためのタイムアウト信号を生成する。いくつかの実装において、ソフトウェアＷＤＴは、システム電源サイクル、プラットフォームコントローラハブ（ＰＣＨ）リセット、および、システムリセットを実行し得る。
【０００８】
いくつかの実装において、第１ＣＰＬＤ部および第２ＣＰＬＤ部の両方は、タイムアウト検出モジュールを含む。タイムアウト検出モジュールは、ＢＭＣまたはサーバシステムの別のコンポーネントへ送信されたリセット信号をモニタリングできる。タイムアウト検出モジュールは、リセット信号が目標コンポーネントのリセットに失敗したという判定に応答して、リセット信号を再送信するように、対応するＣＰＬＤ部をトリガできる。
【０００９】
本開示の一態様によれば、サーバシステムのハングアップしたコンポーネントをリセットするためのコンピュータ実装方法は、サーバシステムのＨＷ  ＷＤＴ回路によって、サーバシステムのＢＭＣからハートビート信号を受信する段階と、ＨＷ  ＷＤＴ回路によって、ハートビート信号に基づいて、ＢＭＣの健全状態を判定する段階と、ＢＭＣの健全状態が予め定められた基準を下回る場合にＢＭＣをリセットする段階とを備える。 
【００１０】
いくつかの実装において、サーバシステムのハングアップしたコンポーネントをリセットするためのコンピュータ実装方法は更に、ＰＨＹ  ＩＣによって、管理者またはリモートデバイスから管理メッセージを受信すると、ＰＭＥ信号を介して第１ＣＰＬＤと通信する段階と、第１ＣＰＬＤによって、サーバシステムのコンポーネントの健全情報をＢＭＣから収集する段階と、第１ＣＰＬＤによって、ＢＭＣの健全状態をＨＷ  ＷＤＴ回路から収集する段階と、収集されたコンポーネントの健全情報およびＢＭＣの健全状態に基づいて、サーバシステムが特定のコンポーネントがハングアップしたと判定する段階と、第１ＣＰＬＤによって、特定のコンポーネントをリセットするためのリセット信号を生成する段階とを備える。
【００１１】
本開示の別の態様によれば、命令を記憶する非一時的コンピュータ可読記憶媒体が提供される。命令は、プロセッサによって実行されるとき、サーバシステムのＨＷ  ＷＤＴ回路によって、サーバシステムのＢＭＣからハートビート信号を受信すること、ＨＷ  ＷＤＴ回路によって、ハートビート信号に基づいて、ＢＭＣの健全状態を判定すること、および、ＢＭＣの健全状態が予め定められた基準を下回る場合にＢＭＣをリセットすることを含む動作をプロセッサに実行させる。
【００１２】
いくつかの実装において、命令は、プロセッサによって実行されるとき、ＰＨＹ  ＩＣによって、管理者またはリモートデバイスから管理メッセージを受信すると、ＰＭＥ信号を介して第１ＣＰＬＤと通信すること、第１ＣＰＬＤによって、サーバシステムのコンポーネントの健全情報をＢＭＣから収集すること、第１ＣＰＬＤによって、ＢＭＣの健全状態をＨＷ  ＷＤＴ回路から収集すること、収集されたコンポーネントの健全情報、および、ＢＭＣの健全状態に基づいて、サーバシステムの特定のコンポーネントがハングアップしたと判定すること、ならびに、第１ＣＰＬＤによって、特定のコンポーネントをリセットするためのリセット信号を生成することを更に含む動作をプロセッサに実行させる。
【００１３】
いくつかの構成によれば、サーバシステムのコンポーネントの動作状態は、サーバシステムのメモリ、ハードドライブ、または、フラッシュメモリデバイスに記憶できる。コンポーネントの動作状態は、サーバシステム上のＢＭＣ、ラック管理コントローラ（ＲＭＣ）、または、中央処理装置（ＣＰＵ）によってアクセスできる。フラッシュメモリデバイスは、プログラム命令またはデータを一定期間記憶するように構成された任意の記憶媒体であってよい。いくつかの例によれば、フラッシュストレージデバイスは、フラッシュドライブ、ランダムアクセスメモリ（ＲＡＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、または、メールボックスレジスタであってよい。
【００１４】
本開示の更なる特徴および利点は、以下の記載において説明され、一部は記載から明らかとなり、または、本明細書において説明される原理の実践によって理解できる。本開示の特徴および利点は、添付の特許請求の範囲において特に指摘される手段および組み合わせを用いて実現および獲得できる。
【図面の簡単な説明】
【００１５】
本開示、ならびに、その利点および図面は、付属の図面を共に参照することによって、以下の例示的な実施形態の記載から、より良く理解されるであろう。これらの図面は、例示的な実施形態を描いているに過ぎず、従って、様々な実施形態の範囲または特許請求の範囲を限定するものと見なされるべきではない。
【００１６】
【図１Ａ】本開示の一実装例に係る例示的なシステムを示す概略ブロック図である。
【００１７】
【図１Ｂ】本開示の一実装例に係る、ＢＭＣ、および／または、例示的なシステムの別のコンポーネントをリセットするための例示的なＨＷ  ＷＤＴ回路および例示的なＣＰＬＤを示す概略ブロック図である。
【００１８】
【図２】本開示の一実装例に係る、サーバシステムのハングアップしたコンポーネントをリセットするための例示的な方法である。
【００１９】
【図３】本開示の様々な例に係る例示的なシステムを示す。
【図４】本開示の様々な例に係る例示的なシステムを示す。
【００２０】
以下の詳細な説明では、説明の目的で、開示された実施形態の十分な理解を提供するために、多数の具体的な詳細が説明されている。しかしながら、これらの具体的な詳細を用いずに、１または複数の実施形態が実施され得ることは明らかであろう。他の例では、よく知られている構造およびデバイスが、図面を簡略化するべく、概略的に示されている。
【発明を実施するための形態】
【００２１】
本開示は、多くの異なる形式で具現化できる。代表的な実施形態が図面に示されており、本明細書において詳細に記載されることになる。これらの実施形態は、本開示の原理の例または解説であり、その広い態様を限定することを意図するものではない。その程度まで、例えば、要約、概要、詳細な説明の章において開示されているが、特許請求の範囲において明示的に説明されていない要素および限定は、暗示、推論、または、それ以外によって、単独または複数として、特許請求の範囲に組み込まれるべきでない。本発明の詳細な説明の目的のために、別段の指定が無い限り、単数形は複数形を含み、その逆も成り立つ。「含む」という文言は、「含むがそれに限定されない」ことを意味する。更に、本明細書において、「約」、「ほとんど」、「実質的に」、「およそ」、および同様のものなどの概算の文言は、例えば、「〜において」、「〜に近い」、もしくは、「〜の近くで」、または、「〜の３〜５％以内」、または、「許容可能な製作公差の範囲内」、または、それらの任意の論理的組み合わせを意味するために使用できる。
【００２２】
本開示の様々な例は、ＨＷ  ＷＤＴ回路および／またはＣＰＬＤを使用して、ＢＭＣ、または、サーバシステムの別のコンポーネントをリセットするためのシステムおよび方法を提供する。ＨＷ  ＷＤＴ回路は、ＢＭＣからのハートビート信号をモニタリングし、ＢＭＣの健全状態を判定できる。ＢＭＣの健全状態が予め定められた基準を満たすことに失敗した場合、ＨＷ  ＷＤＴ回路はＢＭＣをリセットできる。ＣＰＬＤは、サーバシステムのコンポーネントの健全情報をＢＭＣから収集し、ＢＭＣの健全状態をＨＷ  ＷＤＴ回路から収集できる。サーバシステムのどの特定のコンポーネントが問題を引き起こしているか判定すると、ＣＰＬＤは、特定のコンポーネントをリセットするためのリセット信号を送信できる。 
【００２３】
図１Ａは、本開示の一実装例に係る例示的なサーバシステム１００Ａを示す概略ブロック図である。この例において、サーバシステム１００Ａは、少なくとも１つのマイクロプロセッサまたはプロセッサ１０４、ＢＭＣ１０３、ＰＨＹ  ＩＣ１１２、ＣＰＬＤ１１３、ＨＷ  ＷＤＴ回路１１５、１または複数の冷却モジュール１１０、メインメモリ（ＭＥＭ）１１１、および、少なくとも１つの電源ユニット（ＰＳＵ）１０２を備える。電源ユニット（ＰＳＵ）１０２は、交流電源ユニット（ＰＳＵ）１０１から交流電力を受信し、プロセッサ１０４、ノースブリッジ（ＮＢ）ロジック１０６、ＰＣＩｅスロット１６０、サウスブリッジ（ＳＢ）ロジック１０８、ストレージデバイス１０９、ＩＳＡスロット１５０、ＰＣＩスロット１７０、ＢＭＣ１０３、ＰＨＹ  ＩＣ１１２、ＣＰＬＤ１１３、および、ＨＷ  ＷＤＴ回路１１５など、サーバシステム１００Ａの様々なコンポーネントへ電力を提供する。サーバシステム１００Ａは、電源を投入された後に、様々な動作を実行するために、メモリ、コンピュータストレージデバイス、または、外部ストレージデバイスからソフトウェアアプリケーションをロードするように構成されている。ストレージデバイス１０９は、サーバシステム１００Ａのオペレーティングシステムおよびアプリケーションにとって利用可能な論理ブロックに構造化されている。ストレージデバイス１０９は、サーバシステム１００Ａの電源が切られているときでもサーバデータを保持するように構成されている。
【００２４】
図１Ａにおいて、メモリ１１１は、ＮＢロジック１０６を介してプロセッサ１０４と結合している。メモリ１１１は、これらに限定されないが、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、ダブルデータレートＤＲＡＭ（ＤＤＲ  ＤＲＡＭ）スタティックＲＡＭ（ＳＲＡＭ）、または、他の種類の適切なメモリなどを含み得る。メモリ１１１は、サーバシステム１００Ａのファームウェアデータを記憶するように構成され得る。いくつかの構成において、ファームウェアデータは、ストレージデバイス１０９上に記憶され得る。
【００２５】
いくつかの実装において、サーバシステム１００Ａは更に、フラッシュストレージデバイスを備えてよい。フラッシュストレージデバイスは、フラッシュドライブ、ランダムアクセスメモリ（ＲＡＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）または電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）であってよい。フラッシュストレージデバイスは、ファームウェアデータなどのシステム構成を記憶するように構成されてよい。
【００２６】
プロセッサ１０４は、特定の機能のためのプログラム命令を実行するように構成された中央処理装置（ＣＰＵ）であってよい。例えば、ブートプロセスの間、プロセッサ１０４は、ＢＭＣ１０３またはフラッシュストレージデバイスに記憶されたファームウェアデータにアクセスし、サーバシステム１００Ａを初期化するためにＢＩＯＳ１０５を実行できる。ブートプロセス後、プロセッサ１０４は、サーバシステム１００Ａのための特定のタスクを実行および管理するべく、オペレーティングシステムを実行できる。
【００２７】
いくつかの構成において、プロセッサ１０４は、マルチコアプロセッサであり得て、その各々は、ＮＢロジック１０６に接続されたＣＰＵバスに結合される。いくつかの構成において、ＮＢロジック１０６は、プロセッサ１０４と一体化されてよい。ＮＢロジック１０６はまた、複数のペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩｅ）スロット１６０およびＳＢロジック１０８（任意選択）と接続されてよい。ＰＣＩエクスプレスｘ１、ＵＳＢ２．０、ＳＭＢｕｓ、ＳＩＭカード、別のＰＣＩｅレーンのための将来の拡張、１．５Ｖおよび３．３Ｖ電源、および、サーバシステム１００Ａの筐体上の診断ＬＥＤへの配線など、接続およびバスのために、複数のＰＣＩｅスロット１６０を使用できる。
【００２８】
サーバシステム１００Ａにおいて、ＮＢロジック１０６およびＳＢロジック１０８は、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）バス１０７によって接続される。ＰＣＩバス１０７は、プロセッサ１０４のネイティブのバスのいずれかと無関係な標準化された形式であるが、プロセッサ１０４上の機能をサポートできる。ＰＣＩバス１０７は更に、複数のＰＣＩスロット１７０（例えばＰＣＩスロット１７１）に接続されてよい。バスコントローラ（図示せず）からは、ＰＣＩバス１０７に接続されたデバイスは、ＣＰＵバスに直接接続され、プロセッサ１０４のアドレス空間におけるアドレスを割り当てられ、単一のバスクロックに同期しているように見え得る。複数のＰＣＩスロット１７０内で使用されてよいＰＣＩカードとしては、限定ではないが、ネットワークインタフェースカード（ＮＩＣ）、サウンドカード、モデム、テレビチューナカード、ディスクコントローラ、ビデオカード、スモールコンピュータシステムインタフェース（ＳＣＳＩ）アダプタ、およびパーソナルコンピュータメモリカード国際協会（ＰＣＭＣＩＡ）カードが含まれる。
【００２９】
ＳＢロジック１０８は、拡張バスを介して、ＰＣＩバス１０７を複数の拡張カードまたはＩＳＡスロット１５０（例えばＩＳＡスロット１５１）に結合させてよい。拡張バスは、ＳＢロジック１０８とペリフェラルデバイスとの間の通信に使用されるバスであってよく、このようなものとしては、限定ではないが、業界標準アーキテクチャ（ＩＳＡ）バス、ＰＣ／１０４バス、ローピンカウントバス、拡張ＩＳＡ（ＥＩＳＡ）バス、ユニバーサルシリアルバス（ＵＳＢ）、インテグレーテッドドライブエレクトロニクス（ＩＤＥ）バス、またはペリフェラルデバイスのためのデータ通信に用いられてよい任意の他の適切なバスが含まれてよい。
【００３０】
この例において、ＢＩＯＳ１０５は、サーバシステム１００Ａの様々なコンポーネントを開始および識別するように構成されている任意のプログラム命令またはファームウェアであってよい。ＢＩＯＳは、対応するサーバシステムのハードウェアコンポーネントの初期化およびテストを担う、重要なシステムコンポーネントである。ＢＩＯＳは、ハードウェアコンポーネントの抽象化レイヤを提供することにより、アプリケーションおよびオペレーティングシステムが、キーボード、ディスプレイ、および他の入力／出力デバイスなどのペリフェラルデバイスとインタラクトするための、一貫した手段を提供してよい。
【００３１】
サーバシステム１００Ａにおいて、ＳＢロジック１０８は更に、少なくとも１つのＰＳＵ１０２およびＨＷ  ＷＤＴ回路１１５に接続されたＢＭＣ１０３に結合されている。いくつかの実装において、ＢＭＣ１０３はまた、ラック管理コントローラ（ＲＭＣ）であってよい。
【００３２】
ＢＭＣ１０３は、サーバシステム１００Ａのコンポーネントの動作ステータスをモニタリングし、コンポーネントの動作ステータスに基づいてサーバシステム１００Ａを制御するように構成される。例えばＢＭＣ１０３は、ＰＳＵ１０２に供給される電力、サーバシステム１００Ａのコンポーネントの消費電力、サーバシステム１００Ａの内部温度、および／または、サーバシステム１００Ａの特定のコンポーネントの温度をモニタリングできる。ＢＭＣ１０３は、サーバシステム１００Ａの内部温度、または、特定のコンポーネントの温度に基づいて、サーバシステム１００Ａまたは特定のコンポーネントの冷却を強める、または、弱めるように冷却モジュール１１０を制御し得る。いくつかの実装において、ＢＭＣ１０３は、サーバシステム１００Ａの特定のコンポーネント（例えば、プロセッサ１０４、メモリ１１１、ストレージデバイス１０９および／またはバス）の周波数および／または消費電力を減らし得る。
【００３３】
この例において、ＰＨＹ  ＩＣ１１２は、管理者またはリモートデバイス（図示せず）から管理メッセージを受信し、ＰＭＥ信号を介してＣＰＬＤ１１３およびＢＭＣ１０３と通信するように構成されている。
【００３４】
ＨＷ  ＷＤＴ回路１１５は、ＢＭＣ１０３からのハートビート信号をモニタリングし、ＢＭＣ１０３の健全状態を判定するように構成されている。ＢＭＣ１０３の健全状態が予め定められた基準を下回るとき、ＨＷ  ＷＤＴ回路１１５は、ＢＭＣ１０３をリセットするためのリセット信号を生成できる。
【００３５】
いくつかの実装において、ＨＷ  ＷＤＴ回路１１５は、ＢＭＣ１０３のハートビート信号によってリセットされるタイマであってよい。ＢＭＣ１０３からのハートビート信号がＨＷ  ＷＤＴ回路１１５のリセットに失敗した場合、または、ＢＭＣ１０３からのハートビート信号が無い場合、ＨＷ  ＷＤＴ回路１１５はタイムアウトして、ＢＭＣ１０３をリセットするためのタイムアウト信号を生成する。
【００３６】
ＣＰＬＤ１１３は、サーバシステム１００Ａのコンポーネントの健全情報をＢＭＣ１０３から収集し、ＢＭＣ１０３の健全状態をＨＷ  ＷＤＴ回路１１５から収集するように構成されている。サーバシステム１００Ａの特定のコンポーネントまたはＢＭＣ１０３がハングアップしたと判定すると、ＣＰＬＤ１１３は、特定のコンポーネントまたはＢＭＣ１０３をリセットするためのリセット信号を送信できる。
【００３７】
この構成の例は、図１Ｂにおいて更に示されている。図１Ｂは、本開示の一実装例に係る、ＢＭＣ１０３および／または例示的なサーバシステム１００Ｂの他のコンポーネントをリセットするための、例示的なＨＷ  ＷＤＴ回路１１５および例示的なＣＰＬＤ１１３−１および１１３−２を示す概略ブロック図である。
【００３８】
この例において、サーバシステム１００Ｂは、ＰＳＵ１０１、マザーボード１１６、および、バックプレーン１１７を備える。バックプレーンは、ＰＳＵ１０１および第１ＣＰＬＤ１１３−１に接続されている。マザーボード１１６は、ＰＨＹ  ＩＣ１１２、ＢＭＣ１０３、ＨＷ  ＷＤＴ回路１１５および第２ＣＰＬＤ１１３−２に接続されている。第１ＣＰＬＤ１１３−１および第２ＣＰＬＤ１１３−２はそれぞれ、第１タイムアウト検出モジュール１１３−１Ａおよび第２タイムアウト検出モジュール１１３−２Ａを含む。ＢＭＣ１０３は、Ｉ２Ｃチャネルを介して、第１タイムアウト検出モジュール１１３−１Ａおよび第２タイムアウト検出モジュール１１３−２Ａに接続されている。ＢＭＣ１０３はまた、通信チャネル（例えば、メディア非依存インタフェース（ＭＩＩ）、リデュースドメディア非依存インタフェース（ＲＭＩＩ）、ギガビットメディア非依存インタフェース（ＧＭＩＩ）、リデュースドギガビットメディア非依存インタフェース（ＲＧＭＩＩ）、１０ギガビットメディア非依存インタフェース（ＸＧＭＩＩ）、および、シリアルギガビットメディア非依存インタフェース（ＳＧＭＩＩ））を介してしてＰＨＹ  ＩＣ１１２に接続され、これにより、ＢＭＣ１０３がＰＨＹ  ＩＣ１１２を制御することが可能となる。
【００３９】
ＰＨＹ  ＩＣ１１２は、ネットワークを介してリモートデバイスに結合され、管理メッセージ／パケットをリモートデバイスまたは管理者から受信するように構成されている。ＰＨＹ  ＩＣ１１２は、ＰＭＥ信号を介して、ＢＭＣ１０３および第２ＣＰＬＤ１１３−２と通信するように動作可能である。いくつかの実装において、リモートデバイスまたは管理者は、ＰＨＹ  ＩＣ１１２および第２ＣＰＬＤ１１３−２を介して、ＢＭＣ１０３またはサーバシステム１００Ｂの特定のコンポーネントをリモートでリセットすることが可能である。
【００４０】
この例において、ＢＭＣ１０３はソフトウェアＷＤＴ１０３−１を含む。ソフトウェアＷＤＴ１０３−１は、ＢＭＣ１０３のハートビート信号によってリセットされる。ＢＭＣ１０３のハートビート信号がソフトウェアＷＤＴ１０３−１のリセットに失敗した場合、ソフトウェアＷＤＴ１０３−１は、タイムアウトして、ＢＭＣ１０３をリセットするためのタイムアウト信号を生成するように動作可能である。
【００４１】
図１Ａおよび図１Ｂではそれぞれ、例示的なサーバシステム１００Ａ‐１００Ｂにおける、あるコンポーネントだけが示されているが、データの処理もしくは記憶、または、信号の受信または送信が可能な、様々な種類の電子コンポーネントまたはコンピューティングコンポーネントを例示的なサーバシステム１００Ａ‐１００Ｂに含めることもできる。更に、例示的なサーバシステム１００Ａ−１００Ｂにおける電子コンポーネントまたはコンピューティングコンポーネントは、様々な種類のアプリケーションを実行するように構成でき、および／または、様々な種類のオペレーティングシステムを使用できる。これらのオペレーティングシステムには、限定はされないが、Ａｎｄｒｏｉｄ（登録商標）、Ｂｅｒｋｅｌｅｙ  Ｓｏｆｔｗａｒｅ  Ｄｉｓｔｒｉｂｕｔｉｏｎ（ＢＳＤ）、ｉＰｈｏｎｅ（登録商標）ＯＳ（ｉＯＳ）、Ｌｉｎｕｘ（登録商標）、ＯＳ  Ｘ、Ｕｎｉｘ（登録商標）系リアルタイムオペレーティングシステム（例えば、ＱＮＸ）、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）、Ｗｉｎｄｏｗ  ＰｈｏｎｅおよびＩＢＭ  ｚ／ＯＳを含めることができる。
【００４２】
例示的なサーバシステム１００Ａ−１００Ｂについての所望の実装に応じて、これらに限定されないが、ＴＣＰ／ＩＰ、オープンシステムインターコネクション（ＯＳＩ）、ファイル転送プロトコル（ＦＴＰ）、ユニバーサルプラグアンドプレイ（ＵｐｎＰ）、ネットワークファイルシステム（ＮＦＳ）、共有インターネットファイルシステム（ＣＩＦＳ）、ＡｐｐｌｅＴａｌｋ（登録商標）などを含む、様々なネットワーキングおよびメッセージングのプロトコルを使用できる。当業者であれば、図１Ａおよび図１Ｂにおいてそれぞれ示される例示的なサーバシステム１００Ａ−１００Ｂは、説明の目的で使用されていることを理解するであろう。従って、ネットワークシステムは多くの変形形態で適宜実装され得るが、それでもなお、本開示の様々な例に係るネットワークプラットフォームの構成を提供することができる。
【００４３】
図１Ａおよび図１Ｂの例示的な構成において、それぞれ、例示的なサーバシステム１００Ａ−１００Ｄは、特定の無線チャネルのコンピューティング範囲内で１または複数の電子デバイスと通信するように動作可能な１または複数の無線コンポーネントも含んでよい。無線チャネルは、デバイスによる無線通信を可能とするために使用される、Ｂｌｕｅｔｏｏｔｈ（登録商標）、セルラ、ＮＦＣまたはＷｉ−Ｆｉチャネルなどの任意の適切なチャネルであってよい。デバイスは、当技術分野で知られているような、１または複数の従来の有線通信接続を有し得るものと理解すべきである。様々な他の要素および／または組み合わせも様々な例の範囲内で考えられる。
【００４４】
上の説明は、本開示の原理および様々な例を示すことを意図している。ひとたび上記の開示を十分に理解すれば、多数の変形形態および修正形態が明らかになるであろう。
【００４５】
図２は、本開示の一実装例に係る、サーバシステムのハングアップしたコンポーネントをリセットするための例示的な方法２００である。例示的な方法２００は、単に例示の目的で提示され、本開示に係る他の方法は、同様なまたは代替的な順序で、または並行して実行される、追加の、より少ない、または代替的な段階を含み得ることが、理解されるべきである。例示的な方法２００は、段階２０２において、サーバシステムの電源を投入することによって開始する。
【００４６】
段階２０４において、ＨＷ  ＷＤＴ回路は、図１Ａおよび図１Ｂにおいて示されるように、サーバシステムのＢＭＣからハートビート信号を受信できる。ＨＷ  ＷＤＴ回路は、段階２０６において、ハートビート信号に基づいて、ＢＭＣの健全状態を判定でき、段階２０８において、ＢＭＣの健全状態が予め定められた基準を満たさない場合、ＢＭＣをリセットする。
【００４７】
いくつかの例において、ＢＭＣは、図１Ｂに示されるようにソフトウェアＷＤＴを含む。ソフトウェアＷＤＴは、ＢＭＣのハートビート信号によってリセットされる。ＢＭＣのハートビート信号がソフトウェアＷＤＴのリセットに失敗した場合、ソフトウェアＷＤＴは、ＢＭＣをリセットするためのタイムアウト信号を生成する。
【００４８】
段階２１０において、ＰＨＹ  ＩＣは、図１Ａおよび図１Ｂに示されるように、管理者またはリモートデバイスから管理メッセージを受信すると、ＰＭＥ信号を介して第１ＣＰＬＤと通信できる。第１ＣＰＬＤは、段階２１２において、サーバシステムのコンポーネントの健全情報をＢＭＣから収集し、段階２１４において、ＢＭＣの健全状態をＨＷ  ＷＤＴ回路から収集する。
【００４９】
段階２１６において、第１ＣＰＬＤは、収集されたコンポーネントの健全情報、および、ＢＭＣの健全状態に基づいて、サーバシステムの特定のコンポーネントがハングアップしたと判定できる。段階２１８において、第１ＣＰＬＤは、特定のコンポーネントをリセットするためのリセット信号を生成できる。いくつかの実装において、第１ＣＰＬＤは、ＢＭＣにサーバシステムのコンポーネントをスキャンさせ、サーバシステムのコンポーネントの健全情報を収集させることができる。
【００５０】
いくつかの例において、第１ＣＰＬＤは、Ｉ２Ｃチャネルを介してＢＭＣに接続された第１タイムアウト検出モジュールを含む。第１タイムアウト検出モジュールは、ＢＭＣ、または、サーバシステムの特定のコンポーネントへ送信されたタイムアウト信号をモニタリングできる。タイムアウト信号が目標コンポーネントのリセットに失敗したという判定に応答して、第１タイムアウト検出モジュールは、タイムアウト信号を再送信するように第１ＣＰＬＤをトリガできる。
【００５１】
いくつかの実装において、サーバシステムは更に、第２ＣＰＬＤを備える。第２ＣＰＬＤは、別のＩ２Ｃチャネルを介してＢＭＣに接続されている第２タイムアウト検出モジュールを含む。第２ＣＰＬＤ部は、サーバシステムのコンポーネントの健全情報をＢＭＣから直接収集でき、第１ＣＰＬＤの冗長バックアップとして機能し得る。
【００５２】
本明細書では、図３から図４に示されるように、例示的なシステムおよびネットワークの簡潔な導入的記載を開示する。本明細書では、様々な例を記載しながらこれらの変形形態について説明するものとする。ここで、本開示の図３を参照する。
【００５３】
図３は、コンピューティングシステムのコンポーネントがバス３０２を使用して互いに電気的に通信する、例示的コンピューティングシステム３００を示す。コンピューティングシステム３００は、処理ユニット（ＣＰＵまたはプロセッサ）３３０と、システムメモリ３０４（例えば、リードオンリメモリ（ＲＯＭ）３０６、ランダムアクセスメモリ（ＲＡＭ）３０８）を含む様々なシステムコンポーネントをプロセッサ３３０に結合するシステムバス３０２とを備える。コンピューティングシステム３００は、プロセッサ３３０に直接接続された、または、それに近接している、または、その一部として一体化されている、高速メモリのキャッシュを備えてよい。コンピューティングシステム３００は、メモリ３０４および／またはストレージデバイス３１２からのデータをキャッシュ３２８にコピーして、プロセッサ３３０が迅速にアクセスできるようにしてよい。このようにして、キャッシュは、データを待ちながら、プロセッサ３３０の性能の向上を提供できる。これらの、および他のモジュールは、様々な動作を実行するように、プロセッサ３３０を制御してよく、または、制御するように構成されてよい。他のシステムメモリ３０４も、使用のために利用可能であり得る。メモリ３０４は、異なる性能特性を有する複数の異なる種類のメモリを含んでよい。プロセッサ３３０は、任意の汎用プロセッサ、ならびに、ストレージデバイス３１２に埋め込まれたモジュール１  ３１４、モジュール２  ３１６、および、モジュール３  ３１８などのハードウェアモジュールまたはソフトウェアモジュールを含んでよい。ハードウェアモジュールまたはソフトウェアモジュールは、プロセッサ３３０、および、ソフトウェア命令が実際のプロセッサ設計に組み込まれた特定用途向けプロセッサを制御するように構成されている。プロセッサ３３０は、本質的に、完全に自己完結型のコンピューティングシステムであり得て、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュなどを含む。マルチコアプロセッサは、対称型または非対称型であり得る。
【００５４】
コンピューティングシステム３００とのユーザインタラクションを可能にするために、入力デバイス３２０が入力機構として提供される。入力デバイス３２０は、音声のためのマイク、ジェスチャ入力もしくはグラフィカル入力のためのタッチセンシティブ画面、キーボード、マウス、モーション入力などを含んでよい。いくつかの例において、多モードシステムは、ユーザがコンピューティングシステム３００と通信するための複数の種類の入力を提供することを可能にすることができる。この例において、出力デバイス３２２も提供される。通信インタフェース３２４は、ユーザ入力およびシステム出力を制御および管理できる。
【００５５】
ストレージデバイス３１２は、コンピュータによってアクセス可能なデータを記憶するための不揮発性メモリであってよい。ストレージデバイス３１２は、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタルバーサタイルディスク、カートリッジ、ランダムアクセスメモリ（ＲＡＭ）３０８、リードオンリメモリ（ＲＯＭ）３０６およびこれらの混成物であってよい。
【００５６】
コントローラ３１０は、ＢＭＣ（ベースボード管理コントローラ）など、コンピューティングシステム３００上の特殊化したマイクロコントローラまたはプロセッサであってよい。いくつかの場合において、コントローラ３１０は、インテリジェントプラットフォーム管理インタフェース（ＩＰＭＩ）の一部であってよい。更に、いくつかの場合において、コントローラ３１０は、コンピューティングシステム３００のマザーボード、または、主回路基板に埋め込まれてよい。コントローラ３１０は、システム管理ソフトウェアとプラットフォームハードウェアとの間のインタフェースを管理できる。また、コントローラ３１０は、以下で更に記載するように、コントローラまたはペリフェラルコンポーネントなど、様々なシステムデバイスおよびコンポーネント（内部および／または外部）と通信できる。
【００５７】
コントローラ３１０は、通知、アラート、および／または、イベントに対する特定の応答を生成し、自動ハードウェア復旧手順などのための命令またはコマンドを生成するためにリモートデバイスまたはコンポーネントと通信できる（例えば、電子メールメッセージ、ネットワークメッセージなど）。以下に更に記載されるように、管理者がコントローラ３１０とリモートで通信して、特定のハードウェア復旧の手順または動作を開始または実行することもできる。
【００５８】
また、コントローラ３１０は、コントローラ３１０によって受信されるイベント、アラートおよび通知を管理および維持するために、システムイベントログコントローラおよび／またはストレージを含んでよい。例えば、コントローラ３１０またはシステムイベントログコントローラは、１または複数のデバイスおよびコンポーネントからアラートまたは通知を受信し、システムイベントログストレージコンポーネントにおいてアラートまたは通知を維持できる。
【００５９】
フラッシュメモリ３３２は、ストレージおよび／またはデータ移動のためにコンピューティングシステム３００によって使用できる電子的な不揮発性コンピュータ記憶媒体またはチップであってよい。フラッシュメモリ３３２は、電気的に消去および／または再プログラムすることができる。フラッシュメモリ３３２は、例えば、ＥＰＲＯＭ（消去可能プログラマブルリードオンリメモリ）、ＥＥＰＲＯＭ（電気的消去可能プログラマブルリードオンリメモリ）、ＲＯＭ、ＮＶＲＡＭ、またはＣＭＯＳ（相補型金属酸化膜半導体）を含み得る。フラッシュメモリ３３２は、ファームウェア３３４について指定された一組の構成と共に、コンピューティングシステム３００が最初に電源投入されたときにコンピューティングシステム３００によって実行されるファームウェア３３４を記憶できる。フラッシュメモリ３３２はまた、ファームウェア３３４によって使用される構成を記憶できる。
【００６０】
ファームウェア３３４は、ベーシックインプット／アウトプットシステム、または、ＥＦＩ（拡張可能ファームウェアインタフェース）もしくはＵＥＦＩ（統一拡張ファームウェアインタフェース）などの均等物を含んでよい。ファームウェア３３４は、コンピューティングシステム３００が起動されるたびにロードされ、シーケンスプログラムとして実行されてよい。ファームウェア３３４は、一組の構成に基づいて、コンピューティングシステム３００に存在するハードウェアを認識、初期化およびテストできる。ファームウェア３３４は、コンピューティングシステム３００上で、ＰＯＳＴ（パワーオンセルフテスト）などのセルフテストを実行できる。このセルフテストは、ハードディスクドライブ、光学読み取りデバイス、冷却デバイス、メモリモジュール、拡張カード、および同様のものなど、様々なハードウェアコンポーネントの機能をテストできる。ファームウェア３３４は、メモリ３０４、ＲＯＭ３０６、ＲＡＭ３０８および／またはストレージデバイス３１２において、オペレーティングシステム（ＯＳ）を記憶するための領域をアドレス指定し、割り当てることができる。ファームウェア３３４は、ブートローダおよび／またはＯＳをロードし、コンピューティングシステム３００の制御権限をＯＳに付与できる。
【００６１】
コンピューティングシステム３００のファームウェア３３４は、ファームウェア３３４がコンピューティングシステム３００における様々なハードウェアコンポーネントをどのように制御するかを定義するファームウェア設定を含んでよい。ファームウェア設定は、コンピューティングシステム３００における様々なハードウェアコンポーネントが起動される順序を決定できる。ファームウェア３３４は、ファームウェアデフォルト構成におけるパラメータとは異なり得る、様々な異なるパラメータが設定されることを可能にする、ＵＥＦＩなどのインタフェースを提供できる。例えばユーザ（例えば管理者）は、ファームウェア３３４を使用して、クロックおよびバス速度を指定し、何のペリフェラルがコンピューティングシステム３００に取り付けられるかを定義し、健全状態のモニタリング（例えば、ファン速度およびＣＰＵ温度の限度）を設定し、および／または、コンピューティングシステム３００の全体的な性能および電力利用に影響する様々な他のパラメータを提供できる。ファームウェア３３４は、フラッシュメモリ３３２に記憶されるものとして示されているが、当業者であれば、ファームウェア３３４は、メモリ３０４またはＲＯＭ３０６などの他のメモリコンポーネントに記憶されてもよいことを容易に認識するであろう。
【００６２】
コンピューティングシステム３００は、１または複数のセンサ３２６を備えてよい。１または複数のセンサ３２６は、例えば、１または複数の気温センサ、温度センサ、酸素センサ、化学センサ、ノイズセンサ、熱センサ、電流センサ、電圧検出器、気流センサ、フローセンサ、赤外線温度計、熱流センサ、温度計、パイロメータなどを含んでよい。１または複数のセンサ３２６は、例えば、バス３０２を介して、プロセッサ、キャッシュ３２８、フラッシュメモリ３３２、通信インタフェース３２４、メモリ３０４、ＲＯＭ３０６、ＲＡＭ３０８、コントローラ３１０およびストレージデバイス３１２と通信することができる。１または複数のセンサ３２６は、また、集積回路間（Ｉ２Ｃ）、汎用出力（ＧＰＯ）などの１または複数の異なる手段を介して、システム内の他のコンポーネントとも通信し得る。コンピューティングシステム３００上の異なる種類のセンサ（例えば、センサ３２６）も、冷却ファン速度、電源ステータス、オペレーティングシステム（ＯＳ）ステータス、および、ハードウェアステータスなどのパラメータについてコントローラ３１０に報告できる。
【００６３】
図４は、記載された方法または動作の実行、ならびに、グラフィカルユーザインタフェース（ＧＵＩ）の生成および表示に使用できるチップセットアーキテクチャを有する例示的コンピューティングシステム４００を示す。コンピューティングシステム４００は、開示された技術を実装するために使用できるコンピュータハードウェア、ソフトウェアおよびファームウェアを備えてよい。コンピューティングシステム４００は、識別された計算を実行するように構成されているソフトウェア、ファームウェアおよびハードウェアを実行可能な、物理的および／または論理的に異なる様々なリソースを代表するプロセッサ４１０を備えてよい。プロセッサ４１０は、プロセッサ４１０との間の入力および出力を制御できるチップセット４０２と通信できる。この例において、チップセット４０２は、ディスプレイなどの出力デバイス４１４へ情報を出力し、例えば磁気媒体およびソリッドステート媒体を含んでよいストレージデバイス４１６との間で情報を読み書きできる。また、チップセット４０２は、ＲＡＭ４１８との間でデータを読み書きできる。様々なユーザインタフェースコンポーネント４０６とインタフェース接続するためのブリッジ４０４は、チップセット４０２とインタフェース接続するために提供されてよい。そのようなユーザインタフェースコンポーネント４０６は、キーボード、マイク、タッチ検出および処理回路、マウスなどのポインティングデバイスなどを含んでよい。一般に、コンピューティングシステム４００への入力は、機械によって生成された、および／または、人間によって生成された様々なソースのいずれかに由来してよい。
【００６４】
また、チップセット４０２は、異なる物理インタフェースを有してよい１または複数の通信インタフェース４０８とインタフェース接続してよい。そのような通信インタフェースは、有線および無線ローカルエリアネットワークのための、ブロードバンド無線ネットワークのための、およびパーソナルエリアネットワークのための、インタフェースを含んでよい。更に、機械は、ユーザインタフェースコンポーネント４０６を介してユーザからの入力を受信でき、プロセッサ４１０を使用してこれらの入力を解釈することによってブラウジング機能などの適切な機能を実行できる。
【００６５】
更に、チップセット４０２はまた、電源が投入されたときにコンピューティングシステム４００によって実行されてよいファームウェア４１２と通信してよい。ファームウェア４１２は、一組のファームウェア設定に基づいて、コンピューティングシステム４００に存在するハードウェアを認識、初期化、およびテストできる。ファームウェア４１２は、ＰＯＳＴなどのセルフテストをコンピューティングシステム４００上で実行できる。セルフテストは、様々なハードウェアコンポーネント４０２−４１８の機能をテストできる。ファームウェア４１２は、メモリ４１８において、ＯＳを記憶するための領域をアドレス指定し、割り当てることができる。ファームウェア４１２は、ブートローダおよび／またはＯＳをロードし、コンピューティングシステム４００の制御権限をＯＳに付与できる。いくつかの場合において、ファームウェア４１２は、ハードウェアコンポーネント４０２−４１０および４１４−４１８と通信できる。ここで、ファームウェア４１２は、チップセット４０２を通して、および／または、１または複数の他のコンポーネントを通して、ハードウェアコンポーネント４０２−４１０および４１４−４１８と通信できる。いくつかの場合において、ファームウェア４１２は、ハードウェアコンポーネント４０２−４１０および４１４−４１８と直接通信できる。
【００６６】
例示的コンピューティングシステム３００および４００は、より大きな処理能力を提供するために、１つより多くのプロセッサ（例えば、３３０、４１０）を備えてよく、または、互いにネットワークで接続されたコンピューティングデバイスのグループまたは集団の一部であってよいことを理解されたい。
【００６７】
説明を分かりやすくするために、いくつかの例において、本開示は、デバイス、デバイスコンポーネント、ソフトウェアにおいて具現化される方法における段階もしくはルーチン、または、ハードウェアおよびソフトウェアの組み合わを含む、個別の機能ブロックとして示され得る。
【００６８】
いくつかの実施形態において、コンピュータ可読ストレージデバイス、媒体、およびメモリは、ビットストリームおよび同様のものを含むケーブルまたは無線信号を含んでよい。しかしながら、非一時的コンピュータ可読記憶媒体に言及するときは、エネルギー、キャリア信号、電磁波、および信号そのものなどの媒体を、明示的に除外する。
【００６９】
上記の例に係る方法は、記憶された、または、そうでない場合、コンピュータ可読媒体から入手可能なコンピュータ実行可能命令を使用して実装できる。そのような命令は、例えば、汎用コンピュータ、特定用途コンピュータ、または特定用途処理デバイスに、ある機能または一組の機能を実行させる、またはそうでなければ、それらを実行するように構成する、命令およびデータを含んでよい。使用されるコンピュータリソースの一部は、ネットワークを介してアクセス可能であってよい。コンピュータ実行可能命令は、例えば、アセンブリ言語、ファームウェア、またはソースコードなどの、バイナリおよび中間形式の命令であり得る。
【００７０】
これらの開示に係る方法を実装するデバイスは、ハードウェア、ファームウェア、および／または、ソフトウェアを備えてよく、様々なフォームファクタのいずれかを取ってよい。そのようなフォームファクタの典型的な例は、ラップトップ、スマートフォン、スモールフォームファクタパーソナルコンピュータ、パーソナルデジタルアシスタント、ラックマウントデバイス、スタンドアロンデバイスなどを含む。本明細書に記載された機能は、また、ペリフェラルまたはアドインカードにおいても具現化されてよい。そのような機能は、また、更なる例として、異なるチップの間の回路基板上でも、または単一デバイスで実行する異なるプロセスでも、実装されてよい。
【００７１】
様々な例は、いくつかの場合において、複数のアプリケーションのいずれかを動作させるために使用できる、１または複数のサーバコンピュータ、ユーザコンピュータまたはコンピューティングデバイスを含んでよい幅広い様々な動作環境において更に実装できる。ユーザデバイスまたはクライアントデバイスは、標準的オペレーティングシステムを動作させるデスクトップまたはラップトップコンピュータなどの複数の汎用パーソナルコンピュータ、ならびに、モバイルソフトウェアを動作させ、複数のネットワーキングおよびメッセージングプロトコルをサポートすることが可能なセルラーデバイス、無線デバイス、およびハンドヘルドデバイスのいずれかを含んでよい。そのようなシステムは、様々な市販のオペレーティングシステム、および、開発およびデータベース管理などの目的の、他の知られているアプリケーションのいずれかを動作させる複数のワークステーションも含んでよい。これらのデバイスはまた、ダミー端末、シンクライアント、ゲームシステム、およびネットワークを介して通信可能な他のデバイスなどの、他の電子デバイスを含んでよい。
【００７２】
例またはその一部がハードウェアにおいて実装される限りでは、本開示は、データ信号に応じて論理機能を実装するための論理ゲートを有するディスクリートロジック回路、適切な組み合わせ論理ゲートを有する特定用途向け集積回路（ＡＳＩＣ）、プログラマブルゲートアレイ（ＰＧＡ）などのプログラマブルハードウェア、および／または、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）などの技術のいずれか、または、その組み合わせによって実装されてよい。
【００７３】
大部分の例は、ＴＣＰ／ＩＰ、ＯＳＩ、ＦＴＰ、ＵｐｎＰ、ＮＦＳ、ＣＩＦＳ、ＡｐｐｌｅＴａｌｋ（登録商標）など、市場で利用できる様々なプロトコルのいずれかを使用する通信をサポートするための、当業者に知られているであろう少なくとも１つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆スイッチ電話ネットワーク、赤外線ネットワーク、無線ネットワーク、およびそれらの任意の組み合わせであってよい。
【００７４】
これらの技術に係る方法を実装するデバイスは、ハードウェア、ファームウェア、および／または、ソフトウェアを備えてよく、様々なフォームファクタのいずれかを取ってよい。そのようなフォームファクタの典型的な例は、サーバコンピュータ、ラップトップ、スマートフォン、スモールフォームファクタパーソナルコンピュータ、パーソナルデジタルアシスタントなどを含む。本明細書に記載される機能は、また、ペリフェラルまたはアドインカードにおいても具現化されてよい。そのような機能は、また、更なる例として、異なるチップの間の回路基板上でも、または単一デバイスで実行する異なるプロセスでも、実装されてよい。
【００７５】
ウェブサーバを利用する例において、ウェブサーバは、ＨＴＴＰサーバ、ＦＴＰサーバ、ＣＧＩサーバ、データサーバ、Ｊａｖａ（登録商標）サーバ、ビジネスアプリケーションサーバを含む、任意の様々なサーバまたは中間層アプリケーションを実行できる。ユーザデバイスからのリクエストに応答して、また、ウェブサーバは、プログラムまたはスクリプトを実行可能であってもよい。例えば、ウェブサーバは、１または複数のウェブアプリケーションを実行し得、それは、Ｊａｖａ（登録商標）、Ｃ、Ｃ＃、またはＣ＋＋などの任意のプログラミング言語、または、Ｐｅｒｌ、Ｐｙｔｈｏｎ、またはＴＣＬなどの任意のスクリプト言語、および、それらの組み合わせで書かれた１または複数のスクリプトまたはプログラムとして実装されてよい。また、ウェブサーバは、自由市場で市販されるものを含むデータベースサーバを包含してもよい。
【００７６】
サーバシステムは、上で説明されたような、様々なデータストア、ならびに、他のメモリおよび記憶媒体を含んでよい。これらは、１または複数のコンピュータにローカルな（および／または、それらに常駐している）記憶媒体上、または、ネットワークにわたるコンピュータのいずれかまたはすべてからリモートな記憶媒体上などの、様々な位置に存在してよい。特定の組の例において、情報は、当業者によく知られるストレージエリアネットワーク（ＳＡＮ）に存在してよい。同様に、コンピュータ、サーバ、またはその他のネットワークデバイスに帰属する機能を実行するための任意の必要なファイルが、適宜、ローカルに、および／またはリモートに記憶されてよい。システムがコンピュータ化されたデバイスを含む場合、そのような各デバイスは、バスを介して電気的に結合され得るハードウェア要素を含み得、それらの要素は、例えば、少なくとも１つの中央処理装置（ＣＰＵ）、少なくとも１つの入力デバイス（例えば、マウス、キーボード、コントローラ、タッチセンシティブディスプレイ要素、またはキーパッド）、および、少なくとも１つの出力デバイス（例えば、ディスプレイデバイス、プリンタ、またはスピーカ）を含む。そのようなシステムは、ディスクドライブ、光学ストレージデバイス、およびランダムアクセスメモリ（ＲＡＭ）またはリードオンリメモリ（ＲＯＭ）などのソリッドステートストレージデバイス、ならびに、リムーバブルメディアデバイス、メモリカード、フラッシュカードなどといった、１または複数のストレージデバイスも含んでよい。
【００７７】
コードまたはコードの一部を含む記憶媒体およびコンピュータ可読媒体は、これらに限定されないが、データまたは情報を記憶および／または伝送するための、リムーバブルおよび非リムーバブル媒体を含む、当該分野において知られている、または、使用されている任意の適切な媒体を含んでよい。リムーバブルおよび非リムーバブル媒体は、所望の情報を記憶するために使用され得て、かつ、システムデバイスによりアクセスされ得る、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたはその他のメモリ技術、ＣＤ−ＲＯＭ、デジタルバーサタイルディスク（ＤＶＤ）、またはその他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、またはその他の磁気ストレージデバイスを含む。データまたは情報は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを含んでよい。本明細書に提供される技術および教示に基づいて、当業者は、本開示の様々な態様を実装するための他の手段および／または方法を理解するであろう。
【００７８】
従って、本明細書および図面は、限定の意味ではなく、例示として見なされるべきである。しかしながら、特許請求の範囲において説明されるような、本特許出願の幅広い思想および範囲を逸脱することなく、様々な修正および変更が加えられることは明らかであろう。
【００７９】
開示された実施形態に対して様々な修正および変形が行われ得ることは、当業者には明らかであろう。本明細書および例は、単に例示的なものと見なされ、真の開示範囲は、以下の特許請求の範囲およびそれらの均等物によって示されることが意図されている。
【図１Ａ】
2019125339.tif 000003
【図１Ｂ】
2019125339.tif 000004
【図２】
2019125339.tif 000005
【図３】
2019125339.tif 000006
【図４】
2019125339.tif 000007