(57)【要約】【課題】  基板管理コントローラー(ＢＭＣ)およびハードウェアウォッチドッグ(ＨＷ)回路を用いたＩ２Ｃバスステータスの監視方法を提供する。【解決手段】  本方法は、ＨＷ回路を用いて、Ｉ２Ｃバスの失効を検出し、ＨＷ回路が、Ｉ２Ｃバス上の複数のＩ２Ｃデバイスを自動でリセットすることができるか否か判断する工程を有する。本方法は、ＨＷ回路がＩ２Ｃバス上のＩ２Ｃデバイスを自動でリセットすることができると判断する場合、ＨＷ回路を用いて、複数のＩ２Ｃデバイスをリセットする工程と、ＨＷ回路がＩ２Ｃバス上の複数のＩ２Ｃデバイスを自動でリセットできないと判断する場合、ＨＷ回路を用いて、検出された失効をＢＭＣに報告する工程と、を有する。本方法は、ＢＭＣを用いて検出された失効を処理する工程を有する。【選択図】図２
2018116679.tif 000002
【特許請求の範囲】
【請求項１】
基板管理コントローラー(ＢＭＣ)およびハードウェアウォッチドッグ(ＨＷ)回路を用いたＩ２Ｃバスステータスの監視方法であって、
前記ＨＷ回路を用いて、Ｉ２Ｃバスの失効を検出する検出工程と、
前記ＨＷ回路が、前記Ｉ２Ｃバス上の複数のＩ２Ｃデバイスを自動でリセットすることができるか否か判断する判断工程と、
前記ＨＷ回路が前記Ｉ２Ｃバス上の前記Ｉ２Ｃデバイスを自動リセットすることができると判断する場合、前記ＨＷ回路を用いて、前記複数のＩ２Ｃデバイスをリセットする工程と、
前記ＨＷ回路が前記Ｉ２Ｃバス上の前記Ｉ２Ｃデバイスを自動リセットできないと判断する場合、前記ＨＷ回路を用いて、検出された失効を前記ＢＭＣに報告し、前記ＢＭＣを用いて、前記検出された失効を処理する処理工程と、
を有することを特徴とする方法。
【請求項２】
前記判断工程は、
前記ＨＷ回路で、リセットイネーブル信号が前記ＢＭＣから受信されたか否かを検出する工程と、
前記リセットイネーブル信号が受信された場合、前記ＨＷ回路が前記Ｉ２Ｃデバイスを自動リセットすることができると判断する工程と、
を有することを特徴とする請求項１に記載の方法。
【請求項３】
前記検出工程は、
前記ＨＷ回路を用いて、前記Ｉ２Ｃバスのクロックライン／データライン(ＳＣＬ／ＳＤＡピン)を監視する工程を有することを特徴とする請求項１に記載の方法。
【請求項４】
前記処理工程は、 
前記ＢＭＣを用いて、前記Ｉ２Ｃデバイスをリセットする工程と、
前記Ｉ２Ｃデバイスが前記Ｉ２Ｃデバイス失効を解決することができない場合、前記Ｉ２Ｃデバイスをテストして、前記Ｉ２Ｃバスの前記失効の原因を判断するテスト工程と、
処理結果をＣＰＵに報告する工程と、
を有することを特徴とする請求項１に記載の方法。
【請求項５】
前記テスト工程はさらに、
順序通りに、前記Ｉ２Ｃデバイスのそれぞれ一つを評価する評価工程と、
前記Ｉ２Ｃデバイスのうち選択された一つを隔離する工程と、
前記隔離後、前記Ｉ２Ｃバスステータスをチェックする工程と、
前記Ｉ２Ｃデバイスの前記ひとつが対応する前記Ｉ２ＣバスステータスがＯＫではないと判断される場合、前記Ｉ２Ｃデバイスの前記のひとつの失効を記録する工程と、を有し、
前記評価工程は、前記Ｉ２Ｃデバイスの前記選択された一つに関連する全チャネルに実行されることを特徴とする請求項４に記載の方法。
【請求項６】
スイッチデバイスであって、
基板管理コントローラー(ＢＭＣ)と、
ハードウェアウォッチドッグ(ＨＷ)回路と、
Ｉ２Ｃデバイスを接続するＩ２Ｃバスと、
ＣＰＵと、を有し、
前記ＨＷ回路は、前記Ｉ２Ｃバスの失効を検出し、前記ＨＷ回路が前記Ｉ２Ｃバス上の複数のＩ２Ｃデバイスを自動でリセットできるか否か判断し、
前記ＨＷ回路が前記Ｉ２Ｃバス上の前記Ｉ２Ｃデバイスを自動リセットできると判断する場合、前記ＨＷ回路を用いて、前記複数のＩ２Ｃデバイスをリセットし、
前記ＨＷ回路が、前記Ｉ２Ｃバス上の前記Ｉ２Ｃデバイスを自動リセットすることができないと判断する場合、前記ＨＷ回路を用いて、検出された失効を前記ＢＭＣに報告し、前記ＢＭＣを用いて前記検出された失効を処理することを特徴とするスイッチデバイス。
【請求項７】
前記ＨＷ回路は、前記ＨＷ回路でリセットイネーブル信号が前記ＢＭＣから受信されたか否かを検出し、前記リセットイネーブル信号が受信された場合、前記ＨＷ回路が前記Ｉ２Ｃデバイスを自動リセットできると判断することを特徴とする請求項６に記載のスイッチデバイス。
【請求項８】
前記ＨＷ回路は、前記Ｉ２Ｃバスのクロックライン／データライン(ＳＣＬ／ＳＤＡピン)を監視することを特徴とする請求項６に記載のスイッチデバイス。
【請求項９】
前記ＢＭＣは、前記Ｉ２Ｃデバイスをリセットし、前記Ｉ２Ｃデバイスが前記Ｉ２Ｃデバイス失効を解決することができない場合、前記Ｉ２Ｃデバイスをテストして、前記Ｉ２Ｃバスの前記失効の原因を判断し、
前記ＢＭＣは、処理結果をＣＰＵに報告することを特徴とする請求項６に記載のスイッチデバイス。
【請求項１０】
前記ＢＭＣは、順序通りに、前記Ｉ２Ｃデバイスのそれぞれ一つを評価し、
前記Ｉ２Ｃデバイスのうち選択されたひとつを隔離し、
前記隔離後、前記Ｉ２Ｃバスステータスをチェックし、
前記Ｉ２Ｃデバイスの前記ひとつが対応する前記Ｉ２ＣバスステータスがＯＫではないと判断される場合、前記Ｉ２Ｃデバイスの前記ひとつの失効を記録し、
前記ＢＭＣは、前記ＨＷ回路が前記Ｉ２Ｃバスを自動リセットできないと判断する場合、前記Ｉ２Ｃデバイスの前記の選択された一つに関連する全チャネルを処理することを特徴とする請求項９に記載のスイッチデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスハング検出(bus hang detection)に関するものであって、とくに、基板管理コントローラー(ＢＭＣ)および結合プログラム可能論理回路(ＣＰＬＤ)であるハードウェアウォッチドッグ(ＨＷ)回路を用いたバスハング検出に関するものである。
【背景技術】
【０００２】
高いイーサネットトラフィック（イーサネット（登録商標））やサーバクラッシュ等の原因により、アイスクエアドシー(Ｉ２Ｃ)バスハングが発生する。一般に、Ｉ２Ｃバスハング検出は、Ｉ２Ｃデバイスのソフトウェアを用いて実行される。しかし、このような方法は非常に遅く、且つ、膨大なシステムメモリとＣＰＵリソースを消費する。
【０００３】
一般のＩ２Ｃ構造は、図１に示されるように、ＢＭＣを組み込んで、直接、Ｉ２Ｃデバイスを監視する。このような配置は、システムリソースとＣＰＵリソースを必要としないけれども、このような監視方法は、ＢＭＣリソースを消耗する。さらに、ソフトウェアソリューションは、ネットワークをサイバーテロにさらす。
【０００４】
よって、Ｉ２Ｃバスハングの検出と処理のための別のソリューションが必要である。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、基板管理コントローラー(ＢＭＣ)およびハードウェアウォッチドッグ(ＨＷ)回路を用いたＩ２Ｃバスステータスの監視方法又はスイッチングデバイスを提供する。
【課題を解決するための手段】
【０００６】
以下の段落で、本発明の一つ、あるいは、複数の実施形態中の簡単な要約を提供して、本発明における技術の基本的な理解を提供する。この要約は、本発明の技術で考慮されうるすべての実施形態に拡張されるものではなく、全ての例示における要点や重要な要素を定義するのに用いられるものでもない。本発明におけるいかなる、あるいは全ての技術範囲を描写するものでもない。本発明の目的は、簡単な形式で、一つ、あるいは、多くの実施形態中のいくつかの概念を表して、本発明の後に描写される詳細な説明部分の前置きとする。
【０００７】
第一実施形態において、基板管理コントローラー(ＢＭＣ)およびハードウェアウォッチドッグ(ＨＷ)回路を用いたＩ２Ｃバスステータスの監視方法を提供する。本方法は、ＨＷ回路を用いて、Ｉ２Ｃバスの失効を検出し、ＨＷ回路が、Ｉ２Ｃバス上の複数のＩ２Ｃデバイスを自動でリセットすることができるか否か判断する工程を有する。本方法は、ＨＷ回路が、Ｉ２Ｃバス上のＩ２Ｃデバイスを自動でリセットすることができると判断する場合、ＨＷ回路を用いて、複数のＩ２Ｃデバイスをリセットする工程と、ＨＷ回路が、Ｉ２Ｃバス上の複数のＩ２Ｃデバイスを自動でリセットできないと判断する場合、ＨＷ回路を用いて、検出された失効をＢＭＣに報告する工程と、を有する。本方法は、ＢＭＣを用いて、検出された失効を処理する工程を有する。
【０００８】
本方法において、判断工程は、ＨＷ回路で、リセットイネーブル信号がＢＭＣから受信されるか検出する工程と、リセットイネーブル信号が受信される場合、ＨＷ回路が、Ｉ２Ｃデバイスを自動リセットできると判断する工程と、を有する。
【０００９】
本方法において、検出工程は、ＨＷ回路を用いて、Ｉ２Ｃバスのクロックライン／データライン(ＳＣＬ／ＳＤＡピン)を監視する工程を有する。
【００１０】
本方法において、処理工程は、ＢＭＣを用いて、Ｉ２Ｃデバイスをリセットする工程と、Ｉ２Ｃデバイスが、Ｉ２Ｃデバイス失効を解決することができない場合、Ｉ２Ｃデバイスをテストして、Ｉ２Ｃバスの失効の原因を判断する工程と、を有する。処理工程は、順序通りに、Ｉ２Ｃデバイスのそれぞれ一つを評価する工程と、Ｉ２Ｃデバイスの選択されたひとつを隔離する工程と、隔離後、Ｉ２Ｃバスステータスをチェックする工程と、Ｉ２Ｃデバイスの前記ひとつが対応するＩ２ＣバスステータスがＯＫではないと判断される場合、Ｉ２Ｃデバイスのひとつの失効を記録する工程と、を有する。評価工程は、Ｉ２Ｃデバイスの選択された一つに関連する全チャネルに実行される。
【００１１】
本方法において、処理は、処理結果をＣＰＵに通知する工程を有する。
【００１２】
第二実施形態において、スイッチデバイスが提供される。スイッチデバイスは、基板管理コントローラー(ＢＭＣ)、ハードウェアウォッチドッグ(ＨＷ)回路、Ｉ２Ｃデバイスを接続するＩ２ＣバスおよびＣＰＵを有する。スイッチデバイスにおいて、ＨＷ回路は、ＨＷ回路を用いて、Ｉ２Ｃバスの失効を検出し、ＨＷ回路が、Ｉ２Ｃバス上の複数のＩ２Ｃデバイスを自動でリセットすることができるか否か判断し、ＨＷ回路が、Ｉ２Ｃバス上のＩ２Ｃデバイスを自動リセットすることができると判断する場合、ＨＷ回路を用いて、複数のＩ２Ｃデバイスをリセットし、Ｉ２Ｃバス上の複数のＩ２Ｃデバイスを自動でリセットできないと判断する場合、ＨＷ回路を用いて、検出された失効をＢＭＣに報告し、ＢＭＣを用いて、検出された失効を処理する。
【００１３】
スイッチデバイスにおいて、ＨＷ回路は、ＨＷ回路で、リセットイネーブル信号がＢＭＣから受信されたか否か検出する、および、リセットイネーブル信号が受信された場合、ＨＷ回路はＩ２Ｃデバイスを自動リセットすることができると判断する。
【００１４】
スイッチデバイスにおいて、ＨＷ回路は、Ｉ２Ｃバスのクロックライン／データライン(ＳＣＬ／ＳＤＡピン)を監視することができる。
【００１５】
スイッチデバイスにおいて、ＢＭＣは、Ｉ２Ｃデバイスをリセットし、Ｉ２Ｃデバイスが、Ｉ２Ｃデバイス失効を解決することができない場合、Ｉ２Ｃデバイスをテストして、Ｉ２Ｃバスの前記失効の原因を判断する。ＢＭＣはは、順序通りに、Ｉ２Ｃデバイスのそれぞれ一つを評価し、Ｉ２Ｃデバイスの選択されたひとつを隔離し、隔離後、Ｉ２Ｃバスステータスをチェックし、Ｉ２Ｃデバイスのひとつが対応するＩ２ＣバスステータスがＯＫではないと判断される場合、Ｉ２Ｃデバイスのひとつの失効を記録する。ＢＭＣは、ＨＷ回路がＩ２Ｃバスを自動リセットできないと判断する場合、Ｉ２Ｃデバイスの選択された一つに関連する全チャネルを処理する。
【００１６】
スイッチデバイスにおいて、ＢＭＣは、処理結果をＣＰＵに報告するように設定される。
【発明の効果】
【００１７】
本発明は、ソフトウェアベースやＢＭＣ-ベースソリューションの代替解決方法を発展させて、Ｉ２Ｃバスハングを検出並びに処理するとともに、さらに速い速度を用い、且つ、大量のメモリと処理リソースを必要としない。
【図面の簡単な説明】
【００１８】
本発明の実施形態は、図面と後続の詳細な説明を参照する。
【図１】従来の技術における、ＢＭＣを用いて、Ｉ２Ｃハングデバイスを直接監視するシステムのブロック図である。
【図２】ＢＭＣおよびハードウェアウォッチドッグ (ＨＷ)回路を用いて、Ｉ２Ｃバスステータスを監視するシステムのブロック図である。
【図３】一実施形態におけるＢＭＣとＨＷ回路を用いたＩ２Ｃバスステータスの検出のフローチャートである。
【図４】別の実施形態におけるＢＭＣとＨＷ回路を用いたＩ２Ｃバスステータスの検出のフローチャートである。
【図５】コンピュータシステムのブロック図である。
【発明を実施するための形態】
【００１９】
本発明は、サーバシステムにおけるネットワーク配置を管理する技術を提供する。本発明の各種形態は、図面を参照しながら説明する。以下の記述において、説明のため、いくつかの特定の詳細な説明が提供されており、一つ以上の形態が十分に理解できるようにされている。しかし、本発明は、これらの特定の詳細な説明がなくても実施することができる。他の例では、既知の構造と装置は、ブロック図で示され、これらの形態の記述をわかりやすくする。“例示”という用語が用いられ、“一例、実例や説明”としての役割を果たす。ここで記述される任意の“例示”としての実施形態は必ずしもその他の実施形態より好ましいまたは有利であると解釈されない。
【００２０】
しかし、当業者なら理解できるように、本発明は、一つ以上の特定の詳細がなくても、その他の方法によって実施することができる。本発明は、いくつかの動作は、その他の動作や事象と異なる順序および／または同時に発生するので、動作や事象の説明される順序に限定されない。さらに、説明される動作や事象が全て、本発明による方法論を実施する必要があるとは限らない。 
【００２１】
上述のとおり、本実施形態では、大きな利点を有して、ソフトウェアベースやＢＭＣ-ベースソリューションの代替解決方法を発展させて、Ｉ２Ｃバスハングを検出並びに処理するとともに、さらに速い速度を用い、且つ、大量のメモリと処理リソースを必要としない。前述のように、本発明は、図１〜図４に示される説明を用いて、バスハング検出を記述する。
【００２２】
図１は、従来の技術における、ＢＭＣを用いて、Ｉ２Ｃハングデバイスを直接監視するシステムのブロック図である。
【００２３】
図１は、ＢＭＣ１０１、Ｉ２Ｃスイッチ１０２、スイッチＣＰＵ１０３、Ｉ２Ｃエキスパンダ／遮断装置１０４およびＩ２Ｃエキスパンダ／遮断装置１０４のチャネルと関連する複数のスモールフォームファクタプラグ着脱可能なモジュール(ＳＦＰモジュール)１０５〜１０８を有するスイッチシステムを示す。一実施形態におけると、Ｉ２Ｃ信号ＳＦＰ+_Ｉ２Ｃ_１、ＳＦＰ+_Ｉ２Ｃ_２、ＳＦＰ+_Ｉ２Ｃ_３とＳＦＰ+_Ｉ２Ｃ_４を用いて、Ｉ２Ｃデバイス１０４とＳＦＰモジュール１０５、１０６、１０７と１０８間の通信が実施される。
【００２４】
従来の技術によると、図１に示されるように、ＢＭＣ１０１は、ＢＭＣ_Ｉ２Ｃ信号を用いて、Ｉ２Ｃスイッチ１０２と通信するとともに、Hang_Inform 信号を用いて、ハング情報をスイッチＣＰＵ１０３に提供する。
【００２５】
図１のシステムにおいて、Ｉ２Ｃ監視信号を用いて、ＢＭＣ１０１は、Ｉ２Ｃデバイス１０４(つまり、Ｉ２Ｃバス)とＩ２Ｃエキスパンダ上の装置を連続的に監視する。Ｉ２Ｃバスハングの事象において、ＢＭＣ１０１は、RESET_Device 信号を用いて、Ｉ２Ｃデバイス１０４をリセットすることができる。 
【００２６】
しかし、ＢＭＣ１０１は、Ｉ２Ｃデバイス１０４を直接監視して、Ｉ２Ｃデバイスのハングを検出するとともに、いつ、リセット信号を送信して、ハングアップしたＩ２Ｃデバイスをリセットするかを判断するので、この方法はＢＭＣリソースを使用する。これもまた、Ｉ２Ｃデバイスのソフトウェアを用いて、現場で技術者のサポートを必要とする。さらに、上記のとおり、Ｉ２Ｃデバイスソフトウェアを利用するこのようなソリューションは非常に遅く、且つ、大きいメモリと処理リソースを消費する。 
【００２７】
従来の検出方法およびＩ２Ｃバスハング事象の処理に関する問題に対処するため、本発明の各種実施形態は改善されたシステムを提供し、Ｉ２Ｃバスハングの検出と処理の少なくともいくつかの部分は、ハードウェアウォッチドッグ (ＨＷ)回路にオフロードされる。このようなシステムは、Ｉ２Ｃバスハング事象の検出と処理を速くすることができる。これは、図２で説明される。
【００２８】
図２は、一実施形態におけるＢＭＣおよびＨＷ回路を用いて、Ｉ２Ｃバスステータスを監視するシステムのブロック図である。
【００２９】
図１のシステムと同様に、図２のシステムは、ＢＭＣ２０１、Ｉ２Ｃスイッチ２０２、スイッチＣＰＵ２０３、Ｉ２Ｃエキスパンダ／遮断装置２０４、複数のスモールフォームファクタプラグ着脱可能なモジュール２０５〜２０８を有する。一実施形態において、Ｉ２Ｃ 信号ＳＦＰ+_Ｉ２Ｃ_１、ＳＦＰ+_Ｉ２Ｃ_２、ＳＦＰ+_Ｉ２Ｃ_３、及びＳＦＰ+_Ｉ２Ｃ_４を用いて、Ｉ２Ｃデバイス２０４とＳＦＰモジュール２０５〜２０８間の通信が、上記と同じ方式で実施される。  
【００３０】
しかし、図１のシステムと異なり、図２のシステムはさらに、ＨＷ回路２０９を有し、Ｉ２Ｃバスハングの検出と処理の少なくともいくつかの問題がオフロードされる。
【００３１】
図２に示される実施形態から分かるように、ＢＭＣ２０１は、信号ＢＭＣ_Ｉ２Ｃを用いて、Ｉ２Ｃスイッチ２０２と通信するとともに、さらに、Hang_Inform 信号を用いて、ハング情報をスイッチＣＰＵ２０３に提供する。しかし、図１のシステムに示されるように、ＢＭＣ２０１が、Ｉ２Ｃデバイス２０４を直接監視するのに代わって、ＨＷ回路２０９がＩ２Ｃデバイス２０４を監視する。ＢＭＣ２０１はさらに、信号reset_ENを伝達し、ＨＷ回路２０９を有効ならびに許可して、Ｉ２Ｃデバイス２０４を自動リセットする。ＨＷ回路２０９は、reset_EN 信号に基づいて、それ自身のRESET_Device 信号を用いて、適当な遅延で、Ｉ２Ｃデバイス２０４を自動リセットする。
【００３２】
ＨＷ回路２０９が、Ｉ２Ｃデバイス２０４を自動リセットするのに有効でない場合、代わりに、ＢＭＣ２０１が、信号 Hang_Alertを利用して、ＨＷ回路２０９から、ハング情報を受信する。 
【００３３】
ＨＷ回路２０９は、さらに、Ｉ２Ｃ監視信号を用いて、ＳＭ／Ｉ２Ｃバスクロックライン／データラインＳＣＬ／ＳＤＡピンを検出してＩ２Ｃバスロックが発生したか否か判断する。この情報は、リアルタイムで、ＨＷ回路２０９によって受信される。この受信情報に基づいて、ＨＷ回路が許可されて、Ｉ２Ｃデバイス２０４をリセットしても、Hang_Alert 信号はＢＭＣ２０１に伝達される。 
【００３４】
別の実施形態において、ＨＷ回路２０９は、受信信号に基づいて、ウェイクオンＬＡＮ(ＷＯＬ)信号を受信し、ＷＯＬ信号は、ＨＷ回路２０９をトリガーして、警告をＢＭＣ２０１に送信して、ハングデバイス、すなわち、Ｉ２Ｃバスハングを発生する装置をリセットする。
【００３５】
ＨＷ回路２０９がＩ２Ｃバスハングを解除できない又はＨＷ回路がRESET_Device 信号を生成するために有効でない場合には、ＢＭＣ２０１は、その後、プロセスを継続して探し、ダメージを判断するとともに、Hang_Inform 信号を用いて、情報をＣＰＵ２０３に報告する。
【００３６】
よって、この方式で、ＢＭＣ２０１は、Ｉ２Ｃデバイス２０４を連続的に監視する必要はないが、代わりに、ＨＷ回路２０９にＩ２Ｃデバイス２０４を監視させるとともに、任意のハング警告をＢＭＣ２０１に提供して、さらに処理する。一実施形態において、図２のシステムは別々のＨＷ回路２０９を示しているが、このようなＨＷ回路は、システムのその他の素子、たとえば、ＢＭＣ２０１中に組み込まれもよい。  
【００３７】
図３は、一実施形態におけるＨＷ回路を用いたＩ２Ｃバスステータスの検出のフローチャートである。
【００３８】
プロセスは工程３０１から開始され、ＨＷ回路を用いて、Ｉ２Ｃバスロックを検出する。たとえば、図２を参照すると、ＨＷ回路２０９は、Ｉ２Ｃ_Monitor 信号に関する異常状態を検出する。Ｉ２Ｃバスロックの検出後、ＨＷ回路は、Ｉ２Ｃデバイスを自動リセットすることができるか否か判断する。たとえば、図２を参照すると、ＨＷ回路２０９は、ＢＭＣ２０１から、reset_EN 信号を受信したか否か判断する。 
【００３９】
ＨＷ回路が、Ｉ２Ｃデバイスを自動でリセットできると判断する場合、工程３０３において、ＨＷ回路はリセット信号を送信するとともに、工程３０１に戻り、未来のＩ２Ｃバスロックを監視する。しかし、ＨＷ回路が、Ｉ２Ｃデバイスを自動でリセットすることができないと判断する場合、工程３０４において、ＨＷ回路は、Ｉ２ＣバスロックをＢＭＣに報告する。たとえば、上述のように、ＨＷ回路２０９は、Hang_Alert 信号をＢＭＣ２０１に送る。 
【００４０】
最後に、工程３０５において、Ｉ２Ｃバス失効のさらなる処理が、ＢＭＣに引き渡される。処理は、さらに、ＢＭＣを用いて、Ｉ２Ｃバスに接続される任意のＩ２Ｃデバイスをリセットおよびトラブルシューティングする工程を有する。
【００４１】
工程３０５におけるこのプロセスは、さらに、ＢＭＣを用いて、処理結果をＣＰＵに通知するとともに、失効チャネルをＣＰＵに記録する工程を有する。ＢＭＣによるＩ２Ｃバス失効の処理に関するさらなる詳細は図４の実施形態中で説明される。
【００４２】
図４は、別の実施形態におけるＢＭＣとＨＷ回路を用いたＩ２Ｃバスステータスの検出のフローチャートである。
【００４３】
プロセスは、工程４０１から開始され、システム中のＨＷ回路は、たとえば、システム中のＣＰＬＤ装置により、Ｉ２Ｃバスステータスを検出する。工程４０２において、Ｉ２Ｃ／ＳＭバスロックが発生するか否か判断する。発生していない場合、プロセスは工程４０１を繰り返し、且つ、ＨＷ回路は、Ｉ２Ｃバスステータスの監視を継続する。
【００４４】
しかし、工程４０２において、Ｉ２Ｃ／ＳＭバスロックが検出された場合、プロセスは工程４０３に進み、ＨＷ回路がＩ２Ｃデバイスの自動リセットを実行することが有効であるか判断する。ＨＷ回路がＩ２Ｃデバイスを自動リセットすることが有効である場合、工程４０４において、Ｉ２Ｃエキスパンダまたは遮断装置がリリースまたはリセットされ、プロセスが工程４０１に戻り、且つ、ＨＷ回路はＩ２Ｃステータスを検出する。このプロセスは図３に類似する。
【００４５】
しかし、工程４０３において、ＨＷ回路が、Ｉ２Ｃデバイスを自動リセットすることが有効でない場合、プロセスは、工程４０５に進み、ＨＷ回路は警告をＢＭＣに送信し、その後、工程４０６において、ＢＭＣは、Ｉ２Ｃ／ＳＭバス失効捜索（fail find out）処理を実行する。 
【００４６】
ＢＭＣにより実行される捜索プロセスはループにより実行され、工程４０７において、各Ｉ２Ｃエキスパンダまたは遮断装置および関連する任意のチャネルが一つずつ選択されるとともに、工程４０８において、Ｉ２Ｃ／ＳＭバスステータスがチェックされて、チャネルがＯＫである(すなわち、Ｉ２Ｃバスハングを発生しない)か否か判断する。工程４０８において、チャネルがＯＫである(すなわちＩ２Ｃバスハングを発生しない)と判断される場合、プロセスは工程４０７に戻り、次のＩ２Ｃデバイスおよび／またはチャネルを選択する。いくつかの実施形態において、ＢＭＣは、Ｉ２Ｃデバイスにトライおよびリセットして、Ｉ２Ｃバスロックを発生させる装置および／またはチャネルをリセットすることにより、Ｉ２Ｃバスロックをクリアにする。 
【００４７】
このプロセスは、全Ｉ２Ｃエキスパンダまたは遮断装置およびその全チャネルに実行される。工程４０８において、一装置またはそのチャネルがＯＫでないと判断されるとき、工程４０９において、この情報がＣＰＵに送信され、記録される。この情報は、未来の使用のために、一ログ中で維持される。あるいは、ＣＰＵにより情報が用いられて、ユーザーに警告を生成する。 
【００４８】
図５は、コンピュータシステム５００のブロック図である。コンピュータシステム５００は、プロセッサ５４０、ネットワークインターフェース５５０、管理コントローラー５８０、メモリ５２０、ストレージ５３０、基本入出力システム (ＢＩＯＳ)５１０、ノースブリッジ５６０およびサウスブリッジ５７０を有する。
【００４９】
コンピュータシステム５００は、たとえば、サーバ（データセンターのサーバラック中のサーバ）、あるいは、パソコンである。プロセッサ（たとえば、中央処理装置（ＣＰＵ））５４０は、メモリ５２０中に保存されるプログラミング指令を回収し、実行するチップオンマザーボードである。プロセッサ５４０は、単一のプロセシングコアを有する単一ＣＰＵ、複数のプロセッサコアを有する単一ＣＰＵ、あるいは、複数のＣＰＵである。一つ以上のバス（図示しない）は、各種コンピュータ素子(たとえば、プロセッサ５４０、メモリ５２０、ストレージ５３０、および、ネットワークインターフェース５５０）の間で、命令およびアプリケーションデータを送信する。
【００５０】
メモリ５２０は、一時的または永久的に、データやプログラムを保存するために用いられる任意の物理的デバイス（たとえば、各種形式のランダムアクセスメモリ（ＲＡＭ））を有する。ストレージ５３０は、不揮発性データストレージに用いられる任意の物理的デバイス(たとえば、ＨＤＤ、あるいは、フラッシュドライブ）を有する。ストレージ５３０は、メモリ５２０よりも優れた能力を有し、且つ、より経済的な各単位ストレージを有するが、ストレージ５３０は、メモリ５２０よりも送信速度が遅い。
【００５１】
ＢＩＯＳ５１０は、基本Ｉｎｐｕｔ/Ｏｕｔｐｕｔシステム(ＢＩＯＳ）、その後継(ｓｕｃｃｅｓｓｏｒｓ）、または等価素子（ｅｑｕｉｖａｌｅｎｔｓ）、たとえば、ＥＦＩ（Ｅｘｔｅｎｓｉｂｌｅ  Ｆｉｒｍｗａｒｅ  Ｉｎｔｅｒｆａｃｅ）、あるいは、ＵＥＦＩ（Ｕｎｉｆｉｅｄ  Ｅｘｔｅｎｓｉｂｌｅ  Ｆｉｒｍｗａｒｅ  Ｉｎｔｅｒｆａｃｅ）を有する。ＢＩＯＳ５１０は、ＢＩＯＳソフトウェアプログラムを保存するコンピュータシステム５００のマザーボード上に位置するＢＩＯＳチップを有する。ＢＩＯＳ５１０は、ＢＩＯＳ５１０に指定される一組の配置と連動してコンピュータシステムが起動するときに実行されるファームウェアを保存する。ＢＩＯＳファームウェア、および、ＢＩＯＳ配置は、不揮発性メモリ(ＮＶＲＡＭ）またはＲＯＭ（たとえば、フラッシュメモリ）に保存される。フラッシュメモリは、不揮発性コンピュータストレージ媒体であり、電気的に消去した再プログラム化することができる。
【００５２】
コンピュータシステム５００が起動するとき、ＢＩＯＳ５１０は一連のシーケンスプログラムを読み取って、実行する。ＢＩＯＳ５１０は、一組の配置に基づいて、所定のコンピューティングシステム中に存在するハードウェアを認識、初期化、および、テストを行う。ＢＩＯＳ５１０は、コンピュータシステム５００で、セルフテスト、たとえば、パワーオンセルフテスト（ＰＯＳＴ）を実施する。このセルフテストは、各種ハードウェア素子（たとえば、ハードディスクドライブ、光学読み取り装置、冷却装置、メモリモジュール、拡張カード等）の機能性をテストする。ＢＩＯＳは、メモリ５２０内の一領域をアドレスおよび割り当てて、操作システムを保存する。その後、ＢＩＯＳ５１０は、ＯＳにコンピュータシステムの制御権を与える。
【００５３】
コンピュータシステム５００のＢＩＯＳ５１０は、ＢＩＯＳ５１０が、どのように、コンピュータシステム５００内で、各種ハードウェア素子を制御するかを定義するＢＩＯＳ配置を有する。ＢＩＯＳ配置は、コンピュータシステム５００中の各種ハードウェア素子の開始順序を決定する。ＢＩＯＳ５１０は、インターフェース（たとえば、ＢＩＯＳセットアップユーティリティ）を提供し、各種異なるパラメータの設定を許可し、パラメータはＢＩＯＳデフォルト配置におけるパラメータとは異なる。たとえば、ユーザー（たとえば、管理者）は、ＢＩＯＳ５１０を用いて、クロックとバス速度を設定し、どの周辺設備がコンピュータシステムに取り付けられるかを設定し、健康状態の監視を設定し（たとえば、ファン速度とＣＰＵ温度制限）、さらにコンピュータシステムのパフォーマンス全体と電力使用に影響する各種その他のパラメータを設定する。
【００５４】
管理コントローラー５８０は、コンピュータシステムのマザーボードに設置される専用のマイクロコントローラーである。たとえば、管理コントローラー５８０は、基板管理コントローラー（ＢＭＣ）である。管理コントローラー５８０は、システムマネジメントソフトウェアとプラットホームハードウェア間のインターフェースを管理する。コンピュータシステム中に設置される異なるタイプのセンサーは、パラメータ、たとえば、温度、冷却ファン速度、電力状態、操作システム状態等を管理コントローラー５８０に報告する。管理コントローラー５８０はセンサーを監視する能力を有する。任意のパラメータが規定の範囲内にない場合、管理コントローラー５８０は、ネットワークインターフェース５５０により、管理者に警告を送信し、システムの潜在的な欠陥を示す。管理者は、管理コントローラー５８０と遠隔で通信して、校正動作（たとえば、システムの再設定、あるいはパワーサイクル/動力サイクル）を実行し、システムの機能性を回復させる。
【００５５】
ノースブリッジ５６０は、直接プロセッサ５４０に接続される、あるいはプロセッサ５４０に統合されるチップオンマザーボードである。たとえば、ノースブリッジ５６０とサウスブリッジ５７０は単一ダイに組み合わされる。ノースブリッジ５６０とサウスブリッジ５７０は、プロセッサ５４０とマザーボードのその他の素子間の通信を管理する。ノースブリッジ５６０は、サウスブリッジ５７０よりも高いパフォーマンスを必要とするタスクを管理する。ノースブリッジ５６０は、プロセッサ５４０、メモリ５２０、および、ビデオコントローラー（図示しない）の間の通信を管理する。たとえば、ノースブリッジ５６０はビデオコントローラーを有する。
【００５６】
サウスブリッジ５７０は、ノースブリッジ５６０に接続されるチップオンマザーボードであるが、ノースブリッジ５６０と異なる点は、プロセッサ５４０に直接接続する必要がないという点である。サウスブリッジ５７０は、入力／出力機能、たとえば、コンピュータシステム５００のユニバーサルシリアルバス（ＵＳＢ）、オーディオ、シリアル、ＢＩＯＳ、シリアルＡＴＡ（ＳＡＴＡ）、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）バス、ＰＣＩｅＸｔｅｎｄｅｄ（ＰＣＩ−Ｘ）バス、ＰＣＩエクスプレスバス、ＩＳＡバス、ＳＰＩバス、ｅＳＰＩバス、ＳＭＢｕｓを管理する。サウスブリッジ８７０は、管理コントローラー、ダイレクトメモリアクセス（ＤＭＡ）コントローラー、割り込みコントローラー（ＰＩＣｓ）、および、リアルタイムクロックに接続される、あるいは、その中に含まれる。
【００５７】
各種説明された論理ブロック、モジュール、および回路は、開示される様々な状況において、汎用プロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、あるいは、その他のプログラム可能論理装置、離散ゲート、あるいは、トランジスタロジック、離散ハードウェア素子、あるいは、それらを組み合わせた設計によって実施、あるいは実行されて、ここに記述された機能を実行する。汎用プロセッサはマイクロプロセッサ、あるいは、その他の例では、任意の従来のプロセッサ、コントローラー、マイクロコントローラー、あるいは、ステート・マシンである。プロセッサは、計算装置の組み合わせ、たとえば、ＤＳＰとマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、一つ以上のマイクロプロセッサ、および、ＤＳＰコア、あるいは、任意のその他の配置により構成される。
【００５８】
本発明の明細書で開示される方法と演算法の工程は、プロセッサにより直接実行されるハードウェア、ソフトウェア、あるいは、両者の組み合わせで具体化される。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ-ＲＯＭ、あるいは、従来の技術における任意の形式のストレージ媒体中に存在する。例示したストレージ媒体はプロセッサに結合されて、プロセッサは、ストレージ媒体から情報を読み取り、ストレージ媒体に情報を書き込む。別の実施形態において、ストレージ媒体はプロセッサに統合される。プロセッサおよびストレージ媒体はＡＳＩＣ中に設置される。ＡＳＩＣはユーザー端末に設置される。ある実施形態において、プロセッサ、および、ストレージ媒体は、ユーザー端末中のディスクリート部品/ディスクリートコンポーネントとして設置される。
【００５９】
一つ以上の設計において、記述された機能は、ハードウェア、ソフトウェア、ファームウェア、あるいは、任意のそれらの組み合わせによって実現される。ソフトウェアで実施される場合、機能は、持続性コンピュータ読み取り可能媒体上の一つ以上の指令、あるいは、コードとして保存、または送信される。持続性コンピュータ読み取り可能媒体は、コンピュータプログラムの一か所から別の箇所への転送を助ける任意の媒体を有するコンピュータストレージ媒体と通信媒体両方を含む。ストレージ媒体は、汎用または特殊用途コンピュータによりアクセスが可能な任意の利用可能な媒体である。たとえば、これに限定されないが、このようなコンピュータ読み取り可能媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、またはその他の光学ディスクストレージ、磁気ディスクストレージ、またはその他の磁気ストレージデバイス、あるいは、任意のその他の媒体を有し、指令もしくはデータ構造の形式で、所望のプログラムコードを実現、あるいは、保存するのに用いられ、さらに、汎用または特殊用途コンピュータ、もしくは、汎用または特殊用途プロセッサによりアクセスすることができる。ここで用いられるディスクは、コンパクトディスク（ＣＤ）、レーザーディスク（登録商標）、光学ディスク、デジタル多用途ディスク（ＤＶＤ）、フロッピーディスク、および、ブルーレイディスクを有し、これらのディスクは、通常、データ磁気性を再現し、ディスクは、レーザーにより、データ光学的に再現する。上述の組み合わせも、持続性コンピュータ読み取り可能媒体に含まれる。
【００６０】
本発明では好ましい実施形態を前述の通り開示したが、これらは決して本発明に限定されるものではなく、当該技術を熟知する者なら誰でも、本発明の思想を脱しない範囲内で各種の変形を加えることができる。
【符号の説明】
【００６１】
１００、２００…システム
１０１…ＢＭＣ
１０２…Ｉ２Ｃスイッチ
１０３…スイッチＣＰＵ
１０４…Ｉ２Ｃエキスパンダ
１０５…ＳＦＰ+モジュール
１０６…ＱＳＦＰ+モジュール
１０７…ｚＱＳＦＰ+モジュール
１０８…ＳＦＰ+モジュール
２０１…ＢＭＣ
２０２…Ｉ２Ｃスイッチ
２０３…スイッチＣＰＵ
２０４…Ｉ２Ｃエキスパンダ
２０５…ＳＦＰ+モジュール
２０６…ＱＳＦＰ+モジュール
２０７…ｚＱＳＦＰ+モジュール
２０８…ＳＦＰ+モジュール
２０９…ＨＷ回路
５００…コンピュータシステム
５１０…基本入出力システム (ＢＩＯＳ)
５２０…メモリ
５３０…ストレージ
５４０…プロセッサ
５５０…ネットワークインターフェース
５６０…ノースブリッジ
５７０…サウスブリッジ
５８０…管理コントローラー
reset_EN…リセットイネーブル
Hang_Alert…ハング警告信号
Ｉ２Ｃ Monitor…監視信号
ＢＭＣ_Ｉ２Ｃ…ＢＭＣ_Ｉ２Ｃ信号
Hang_Inform…ハング通知信号
【図１】
2018116679.tif 000003
【図２】
2018116679.tif 000004
【図３】
2018116679.tif 000005
【図４】
2018116679.tif 000006
【図５】
2018116679.tif 000007