(57)【要約】【課題】バスを機能強化する方法および配置を開示すること。【解決手段】実施形態によって、ビット・エラーに対して、バス・セグメント、デバイス・インターフェース、デバイスとデバイス・インターフェースとの間の結合、をテストすることができる。いくつかの実施形態では、デバイスをデバイス・インターフェースと結合させるのに応答してテスト信号を生成し、バス上に当該テスト信号を送信し、デバイス・インターフェースでのバス信号が予想されたバス信号と異なる時にエラー信号を生成する。当該テスト信号は、バス・セグメントと、バスからアダプタ・カードを分離するためのデバイス・インターフェースのバス・スイッチと、デバイス・インターフェースのスロットに挿入されるアダプタ・カードの回路またはバッファと、に関連する１つまたは複数の障害を識別するように構成された１つまたは複数のビット・パターンを有することができる。これらの実施形態の多くにおいては、バス信号は、デバイス・インターフェースのバス側および／またはスロット側にて判定される。【選択図】図１
2004152298.tif 000002
【特許請求の範囲】
【請求項１】
デバイスをバスに結合させるのに応答してテスト信号を生成するコントローラと、
前記バス上に前記テスト信号を送信するために、前記コントローラに応答可能なように結合されたブリッジと、
前記デバイスを前記バスに結合させ、前記バスからバス信号を受け取るための、そして、前記コントローラと前記ブリッジとに結合され、前記バス信号と前記テスト信号から導出された信号とに基づいてエラー信号を確定するための、デバイス・インターフェースと、
を有する装置。
【請求項２】
前記コントローラが、前記デバイスが前記デバイス・インターフェースに結合された後に前記デバイスを検出する論理を有する、請求項１に記載の装置。
【請求項３】
前記コントローラが、前記エラー信号に基づいて障害の源を確定する回路を有する、請求項１に記載の装置。
【請求項４】
前記コントローラが、前記障害の前記源を分離する信号を送信する回路を有する、請求項３に記載の装置。
【請求項５】
前記デバイス・インターフェースが、前記デバイスを前記バスから分離するために前記デバイスと前記バスとの間に結合されたバス・スイッチを有する、請求項１に記載の装置。
【請求項６】
前記デバイス・インターフェースが、前記コントローラから比較信号を受け取るための、そして前記比較信号を前記バス信号と比較するための、前記バス・スイッチに結合された回路を有し、
前記比較信号が、前記バス信号になると予想される信号を有する、請求項５に記載の装置。
【請求項７】
前記回路が、制御信号に応答して前記バス信号を確定するために、前記バス・スイッチの第１の側および第２の側のバスに結合されたマルチプレクサを有する、請求項６に記載の装置。
【請求項８】
論理回路が、前記比較信号の前記バス信号との比較に基づいて前記エラー信号を生成する比較回路を有する、請求項６に記載の装置。
【請求項９】
デバイスをバスと結合させるのに応答してテスト信号を生成するコントローラと、
前記バス上に前記テスト信号を送信するために、前記コントローラに結合されたブリッジと、
前記デバイスを前記バスに結合させ、前記バスからバス信号を受け取るための、そして、前記コントローラと前記ブリッジとに結合され、前記テスト信号と前記バス信号とに基づいてエラー信号を確定するための、デバイス・インターフェースと、
前記デバイスと通信するために前記ブリッジと結合されたプロセッサと、
を有するシステム。
【請求項１０】
前記ブリッジと結合されたメモリ・デバイス、をさらに有する、請求項９に記載のシステム。
【請求項１１】
前記ブリッジが、ＰＣＩ（Peripheral ComponentInterconnect）ブリッジを有する、請求項９に記載のシステム。
【請求項１２】
前記デバイス・インターフェースが、前記デバイスから前記バスを分離するために、電界効果トランジスタを持ったバス・スイッチを有する、請求項９に記載のシステム。
【請求項１３】
前記デバイス・インターフェースが、前記バス信号を確定するために、バス・スイッチのバス側におけるバスに結合された比較回路を有する、請求項９に記載のシステム。
【請求項１４】
前記デバイス・インターフェースが、前記バス信号を確定するために、バス・スイッチのスロット側におけるバスに結合された比較回路を有する、請求項９に記載のシステム。
【請求項１５】
論理回路が、前記バス信号のビットに対して比較信号のビットを比較するのに基づいて前記エラー信号を生成する比較回路を有し、前記比較信号が、前記テスト信号の送信に応答して前記バスを介して受け取られると予想されるバス信号である、請求項９に記載のシステム。
【請求項１６】
前記プロセッサが、アプレットの実行に基づいて前記テスト信号を生成するように前記コントローラに指示をする、請求項９に記載のシステム。
【請求項１７】
命令を含むマシン可読媒体であって、前記命令が、マシンによって実行される時に、前記マシンに、
デバイスをバス用のデバイス・インターフェースと結合させるのに応答して、前記バス上に送信するためのテスト信号を確定するステップと、
前記バスに関連する障害を判定するために、前記テスト信号の送信に応答して生成されるエラー信号を解釈するステップと、
前記エラー信号の解釈が、前記障害が前記デバイスに関連するものであることを示す時に、前記バスから前記デバイスを分離するステップと、
を有する操作を実行させる、マシン可読媒体。
【請求項１８】
ユーザ・インターフェースを介して前記障害を伝達するステップ、をさらに有する、請求項１７に記載のマシン可読媒体。
【請求項１９】
テスト信号を確定するステップが、前記障害を識別するように構成されたビット・パターンを選択するステップを有する、請求項１７に記載のマシン可読媒体。
【請求項２０】
エラー信号を解釈するステップが、別のエラー信号の解釈に基づいて前記エラー信号を解釈するステップを有する、請求項１７に記載のマシン可読媒体。
【請求項２１】
前記デバイスを分離するステップが、バス・スイッチに信号を送るステップを有する、請求項１７に記載のマシン可読媒体。
【請求項２２】
デバイスをバス用のデバイス・インターフェースと結合させるのに応答してテスト信号を確定するステップと、
前記バス上に前記テスト信号を送信するステップと、
前記テスト信号を送信した後に前記デバイス・インターフェースでバス信号を確定するステップと、
前記バス信号と、前記バス上で前記テスト信号を送ることに対する応答として予想される比較信号と、の間の差異に基づいてエラー信号を生成するステップと、
を有する方法。
【請求項２３】
第２のバスを介して前記デバイス・インターフェースに前記比較信号を送信するステップ、をさらに有する、請求項２２に記載の方法。
【請求項２４】
前記バス信号を前記比較信号と比較するステップ、をさらに有する、請求項２２に記載の方法。
【請求項２５】
テスト信号を確定するステップが、前記バスに関連する障害を識別するように構成されたビット・パターンを選択するステップを有する、請求項２２に記載の方法。
【請求項２６】
バス信号を確定するステップが、ブリッジと前記デバイス・インターフェースとの間のバス上での障害を検出するために、前記デバイス・インターフェースの入力での前記バス信号を確定するステップを有する、請求項２２に記載の方法。
【請求項２７】
バス信号を確定するステップが、前記デバイス・インターフェースに関連する障害を検出するために、前記デバイス・インターフェースの出力での前記バス信号を確定するステップを有する、請求項２２に記載の方法。
【請求項２８】
エラー信号を生成するステップが、ＸＯＲ論理を用いて前記バス信号と前記比較信号とを組み合わせるステップを有する、請求項２２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エラー検出およびバス分離の分野に関するものである。より具体的には、本発明は、ホット・プラグ・（＝活線挿抜型）アダプタ・カードなどのために、バス・スイッチとバス・バッファのエラー、アダプタ・カードのエラー、およびバス短絡、といったバス上のエラーおよび／または障害を検出する方法および配置を提供するものである。
【背景技術】
【０００２】
サーバ・アプリケーションは、しばしば、サーバが継続的に動作状態にあることを必要とする。たとえば、「On-Forever」サーバは、サーバが動作状態のままＰＣＩアダプタ・カードをバスに接続するためのデバイス・インターフェースを備えた、１つまたは複数のＰＣＩ（PeripheralComponent Interconnect）バスを有する。とりわけ、このデバイス・インターフェースはＰＣＩスロットに接続された電力コントローラおよびバス・スイッチを有しており、これにより、よくホット・プラグ・（活線挿抜型）アダプタ・カードと称されるアダプタ・カードがスロットに挿入されるまで、当該ＰＣＩスロットの接続を分離している。
【０００３】
アダプタ・カードが使用可能なスロットに挿入された後に、ホット・プラグ・コントローラは、バスに接続された他のアダプタ・カードの要件に基づいて、当該アダプタ・カードの電力要件および周波数要件を判定し、バスの電力および周波数を選択する。電力要件および周波数要件が確立されたら、電力コントローラは、アダプタ・カードに電力を印加する。その後、当該コントローラが、アダプタ・カードをバス・スイッチを介してバスに接続することによって、アダプタ・カードを有効化する。ＰＣＩブリッジは、サーバとアダプタ・カードとの間の通信を調整する。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
電力コントローラは、バスに接続されたアダプタ・カードへの電力を調整し、過電流障害を認識するが、バスはその他の形式の障害に対しては脆弱なままである。たとえば、電力コントローラは、バス・スイッチおよびバス・バッファの問題、アダプタ・カードの問題、および、故障しやすいコネクタと機械的に誤挿入されたアダプタ・カードとによって引き起こされるバス短絡的障害、に関連した障害は認識しない。そのような障害は、ブリッジとアダプタ・カードとの間の通信に干渉し、たとえば、システム・クラッシュをもたらすことがあり得る。さらに、電力コントローラは、バス・セグメントを作動不能にする、また、サーバをクラッシュさせる、障害の源を確定しないので、技術者が、アダプタ・カード、バス・スイッチ、およびバス・セグメントのそれぞれの正しい動作を確認して、障害の源を確定し、サーバを修理しなければならない。
【課題を解決するための手段】
【０００５】
上で確認された問題は、主に、ビット・エラーに関して、バス・セグメント、デバイス・インターフェース、デバイスとデバイス・インターフェースの間の結合、をテストする方法および配置によって対処される。実施形態によって、デバイス・インターフェースへデバイスを結合させるのに応答して、テスト信号を確定し、バス上に当該テスト信号を送信し、デバイス・インターフェースでのバス信号が予想されたバス信号と異なる時にエラー信号を生成することができる。より具体的には、いくつかの実施形態においては、当該テスト信号をブリッジに送信し、当該ブリッジは、バスを介してデバイス・インターフェースに当該テスト信号を送信する。当該テスト信号は、バス・セグメントと、バスからアダプタ・カードを分離するバス・スイッチと、そしてアダプタ・カードまたはアダプタ・カードのバッファと、に関連する１つまたは複数の障害を識別するように構成された１つまたは複数のビット・パターンを有することができる。これらの実施形態の多くでは、バス信号は、デバイス・インターフェースのバス側および／またはスロット側にて判定される。さらには、当該バス信号は、アダプタ・カードから分離されたバスにおいて、および／またはアダプタ・カードに通信的に結合されたバスにおいて判定されることもある。デバイス・インターフェースでのバス信号が、当該テスト信号に対する応答になると予想される比較信号と異なる時に、エラー信号を生成することができる。
【発明を実施するための最良の形態】
【０００６】
以下は、添付図面に示された発明の模範実施形態の詳細な説明である。当該模範実施形態は、本発明を明瞭に伝達するために詳細に示されたものである。しかし、提供される詳細のすべてによって、実施形態の予想される変化形態を制限することを意図するものではなく、逆に、添付の請求項によって定義される本発明の趣旨および範囲に含まれるすべての修正形態、相当形態、および代替形態を対象とすることを意図するものである。以下の詳細な説明は、そのような実施形態を当業者に明白にすることを企図して行われたものである。
【０００７】
バスを機能強化する方法および配置を開示する。実施形態では、ビット・エラーに対して、バス・セグメント、デバイス・インターフェース、アダプタ・カードなどのデバイスとデバイス・インターフェースとの間の結合、をテストすることができる。いくつかの実施形態においては、デバイス・インターフェースへのデバイスの結合に応答して、あるテスト信号を生成し、バス上に当該テスト信号を送信し、デバイス・インターフェースにおけるバス信号が、予想されるバス信号と異なる時に、エラー信号を生成する。より具体的には、いくつかの実施形態においては、当該テスト信号をブリッジに送信し、当該ブリッジはバスを介してデバイス・インターフェースに当該テスト信号を送信する。当該テスト信号は、バス・セグメントと、アダプタ・カードをバスから分離するためのデバイス・インターフェースのバス・スイッチと、およびデバイス・インターフェースのスロットに挿入されるアダプタ・カードの回路、レジスタ、またはバッファと、に関連する１つまたは複数の障害を識別するように構成された１つまたは複数のビット・パターンを有することができる。これらの実施形態の多くにおいては、バス信号は、デバイス・インターフェースのバス側および／またはスロット側にて確定される。さらには、当該バス信号は、デバイスから分離されたバスにおいて、および／またはアダプタ・カードに通信的に結合されたバスをにおいて、確定されることもある。デバイス・インターフェースでのバス信号が、当該テスト信号に対する応答になると予想される信号と異なる時に、エラー信号を生成することができる。
【０００８】
図面に移ると、図１は、システム・バス１２０を介してシステム・メモリ１３０に結合された１つまたは複数のプロセッサＰ１からＰｎと、システム１００が動作を継続しながら、周辺デバイス１５０、１５５、１７０、および１７５の、デバイス・インターフェース１４６、１４８、１６６、および１６８を介した、システム・バス１２０への結合を容易にするための、ホット・プラグ・コントローラ１４０および１６０に結合された１つまたは複数のブリッジＢ１からＢｍと、を有している。システム１００は、周辺デバイス１５０、１５５、１７０、および１７５を結合した後で、周辺デバイス１５０、１５５、１７０、および１７５の完全な有効化の前に、バス・スイッチ・エラー、バス・バッファ・エラー、アダプタ・カード・エラー、およびバス短絡など、といった入出力（Ｉ／Ｏ）バス１４４および１６４でのエラーおよび／または障害を検出することができる。いくつかの実施形態では、システム１００は、障害の源を確定し、故障または対応するバスを分離し、ハードウェア・ユーザ・インターフェースおよび／またはソフトウェア・ユーザ・インターフェースを介してユーザに故障を伝えることがある。他の実施形態では、障害の源に対応するＩ／Ｏバス１４４および１６４が、使用不可にされることがある。
【０００９】
プロセッサＰ１からＰｎは、汎用マイクロプロセッサなど、さまざまなプロセッサのいずれかを用いて実施してもよい。いくつかの実施形態では、プロセッサＰ１からＰｎは、サーバ用および周辺デバイス１５０、１５５、１７０、および１７５からのブリッジＢ１からＢｍを介したサービス要求用に設計されたプロセッサを有している。たとえば、プロセッサＰ１からＰｎの１つまたは複数が、オペレーティング・システム（Ｏ／Ｓ）・アプレットなどのアプレットを実行して、ホット・プラグ・コントローラ１４０および１６０に診断コマンドを発行してもよい。これらの実施形態の多くでは、当該アプレットによって、プロセッサＰ１からＰｎに対し、ホット・プラグ・コントローラ１４０および１６０による使用のために、データまたはビット・パターンといった異なるテスト信号を、セット・アップまたは選択するように指示することがある。当該テスト信号は、正しい動作を妨げる可能性があるバス障害またはコンポーネント障害を判定するように構成することができる。たとえば、アダプタ・カードなどの周辺デバイス１５０、１５５、１７０、および１７５で障害が識別される時に、アダプタ・カードの有効化を禁止してもよい。これに対し、バス・セグメントでまたはデバイス・インターフェース１４６のバス・スイッチで障害が識別される時には、対応する入出力バス１４４を使用不可にして、システム１００のクラッシュを避けることができる。
【００１０】
システム・メモリ１３０は、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）コンポーネントの配列といった、揮発性記憶要素を用いて実施することができ、当該システム・メモリは、ブリッジＢ１からＢｍを介して周辺デバイス１５０、１５５、１７０、および１７５によってアクセスされるデータを有することができる。更なる実施形態では、システム・メモリ１３０は、読取専用メモリ（ＲＯＭ）および／または不揮発性読取／書込メモリを有することがある。
【００１１】
ブリッジＢ１からＢｍは、入出力バス１４４から１６４上での通信と、入出力バス１４４から１６４とシステム・バス１２０との間での通信と、を調整するために、それぞれ入出力バス１４４から１６４に結合される。ブリッジＢ１からＢｍは、システム・バス１２０とホット・プラグ・コントローラ１４０から１６０との間の通信を容易にすることができる。たとえば、ブリッジＢ１は、周辺デバイス１５０と周辺デバイス１５５との間で入出力バス１４４へのアクセスを調停することができる。
【００１２】
本発明では、ブリッジＢ１が、入出力バス１４４上でデバイス・インターフェース１４６および１４８にテスト信号を送信して、障害を検出する。たとえば、ブリッジＢ１は、入出力バス１４４を介してデバイス・インターフェース１４８または周辺デバイス１５５にそのテスト信号を送信せよという指示とともに、ビット・パターンなどのテスト信号を受け取ることがある。ブリッジＢ１は、デバイス・インターフェース１４８または周辺デバイス１５５によって認識可能な、テスト信号およびアドレスを送ることができる。いくつかの実施形態では、デバイス・インターフェース１４８へのトランザクション（＝データ処理要求）のアドレス指定によって、当該テスト信号とデバイス・インターフェース１４８のバス分離スイッチとを用いた周辺デバイス１５５のテストが容易になる。
【００１３】
ホット・プラグ・コントローラ１４０および１６０は、同様に、システム１００が動作中のままでありながら周辺デバイスをバスに結合する時に現れる障害を検出し、識別し、分離するように機能することができる。たとえば、ホット・プラグ・コントローラ１４０は、システム１００が動作中のままでありながら周辺デバイス１５０を入出力バス１４４に結合し、周辺デバイス１５０を完全に有効化する前に入出力バス１４４および周辺デバイス１５０に関連する障害を検出するのを容易にすることができる。特に、ホット・プラグ・コントローラ１４０は、Ｏ／Ｓアプレットから受け取る命令に基づいて、周辺デバイス１５０を入出力バス１４４に結合することに応答して、入出力バス１４４のテスト信号を確定する。いくつかの実施形態では、当該命令によって、実行されるテストが記述され、ホット・プラグ・コントローラ１４０は、当該テストに関連する１つまたは複数のテスト信号を確定する。これらの実施形態のいくつかにおいては、ホット・プラグ・コントローラ１４０は、１つまたは複数のビット・パターンを組み合わせることによって、テスト信号を生成する。他の実施形態では、当該Ｏ／Ｓアプレットが、ホット・プラグ・コントローラ１４０にテスト信号を送る。その後、ホット・プラグ・コントローラ１４０は、ブリッジＢ１に命令を発行して、入出力バス１４４上で当該テスト信号を駆動することができる。
【００１４】
ホット・プラグ・コントローラ１４０は、入出力バス１４４上でのテスト信号の送出に対する予想される応答を表す比較信号を、副バス１４２を介してデバイス・インターフェース１４６および／または１４８に送信して、障害からもたらされるビット・エラーを判定することもできる。たとえば、周辺デバイス１５０が、デバイス・インターフェース１４６のスロットに挿入されてはいるが、入出力バス１４４から分離されたままであってもよい。プロセッサＰ１が、Ｏ／Ｓアプレットを実行して、ホット・プラグ・コントローラ１４０にコマンドを発行することもある。このコマンドに応答して、ホット・プラグ・コントローラ１４０が、副バス１４２を介して、ブリッジＢ１およびデバイス・インターフェース１４６にテスト信号を送信することができる。ブリッジＢ１が、当該テスト信号をデバイス・インターフェース１４６に送信してもよい。
【００１５】
多くの実施形態において、ホット・プラグ・コントローラ１４０は、テスト信号と異なる比較信号をデバイス・インターフェース１４６に送って、障害が、ブリッジＢ１からデバイス・インターフェース１４６に送られたデータに影響したかどうかを判定することができる。そのような実施形態では、周辺デバイス１５０のバッファおよび／またはレジスタにデータを保管および／または検索することによって、テスト信号が、周辺デバイス１５０と相互に作用することができる。さらに、ホット・プラグ・コントローラ１４０は、デバイス・インターフェース１４６における入出力バス１４４上のバス信号と比較信号との間に相違があることを示すため、テスト信号と比較信号とに応答してデバイス・インターフェース１４６からエラー信号を受け取る。いくつかの実施形態では、ホット・プラグ・コントローラ１４０は、障害が検出された時に当該エラー信号を受け取る。他の実施形態では、ホット・プラグ・コントローラ１４０が、当該信号を受け取り、障害が当該エラー信号に関連するかどうかを判定するか、あるいはエラー信号の解釈のために当該エラー信号をＯ／Ｓアプレットに転送する。
【００１６】
ホット・プラグ・コントローラ１６０は、同様の方法で、入出力バス１６４およびバス１６２を介して、ブリッジＢｍと、デバイス・インターフェース１６６および１６８と、周辺デバイス１７０および１７５とに相互に作用する。いくつかの実施形態では、ホット・プラグ・コントローラ１４０および１６０は、プロセッサＰ１からＰｎまたはＯ／Ｓアプレットからコマンドおよび／または命令を受け取らずにテスト信号を生成する論理を有する場合がある。さらなる実施形態では、ホット・プラグ・コントローラ１４０および１６０は、Ｏ／Ｓアプレットに似たソフトウェアを実行するプロセッサを有することもある。
【００１７】
デバイス・インターフェース１４６は、周辺デバイス１５０を入出力バス１４４に結合し、デバイス・インターフェース１４６でのバス信号と比較信号との間の差異に基づいてエラー信号を生成する。いくつかの実施形態では、バス信号が、デバイス・インターフェース１４６のバス側で入出力バス１４４からサンプリングされて、デバイス・インターフェース１４６とブリッジＢ１との間に障害があるかどうかが判定される。いくつかの実施形態では、周辺デバイス１５０が入出力バス１４４から分離されたままでありながら、バス信号がデバイス・インターフェース１４６のスロット側でサンプリングされて、デバイス・インターフェース１４６に関連する障害が判定される。そのような実施形態では、バス信号をテスト信号と比較してエラー信号を生成し、それによって入出力バス１４４上に送信されるテスト信号と、テスト信号の送信に応答して受け取られるバス信号と、の間の１つまたは複数の相違を判定することができる。さらなる実施形態では、周辺デバイス１５０が入出力バス１４４に結合されている間に、バス信号がデバイス・インターフェース１４６のスロット側でサンプリングされ、周辺デバイス１５０に関連する障害が判定される。これらの実施形態では、バス信号を比較信号と比較することによって、エラー信号を生成することができる。
【００１８】
いくつかの実施形態では、エラーが判定されたならば、デバイス・インターフェース１６６および１６８、またはブリッジＢ１およびＢｍ、に結合されたライト（＝光）の形でエラーをユーザに表示する場合がある。さらなる実施形態では、エラー信号が解釈され、障害が、グラフィカル・ユーザ・インターフェース（ＧＵＩ）、オーディオ・（＝音声）インターフェース、などを介してユーザに伝えられる場合もある。たとえば、Ｏ／Ｓアプレットが、ホット・プラグ・コントローラ１４０からエラー信号を検索し、エラー信号を解釈し、システムに関連する端末上に障害に関するメッセージを表示してもよい。
【００１９】
図２を参照すると、ＰＣＩバス２８２上のエラーおよび／または障害を検出するための、ホット・プラグ・コントローラ２１０、ＰＣＩホスト・ブリッジ２８０、デバイス・インターフェース２３０、およびアダプタ・カード２７０、を有する装置２００の実施形態が示されている。ホット・プラグ・コントローラ２１０は、アダプタ・カード２７０の電力および周波数の定格を判断し、アダプタ・カード２７０に電力を印加するように電力コントローラ２４０に指示し、アダプタ・カード２７０のＰＣＩ拡張スロット・コネクタ２６０との結合に応答してＰＣＩバス２８２用にテスト信号を生成することができる。たとえば、ホット・プラグ・コントローラ２１０は、デバイス・インターフェース２３０のＰＣＩ拡張スロット・コネクタ２６０から信号２１２を受け取り、当該ホット・プラグ・コントローラ２１０は、ＰＣＩ拡張スロット・コネクタ２６０がアダプタ・カード２７０に結合されているかどうかを判定する論理を有している。それに応答して、ホット・プラグ・コントローラ２１０は、スロット・リセット信号２１４を送信し、アダプタ・カード２７０から定格信号を受け取る。その後、ホット・プラグ・コントローラ２１０は、スロット電力制御信号２１８を送信して、アダプタ・カード２７０に電力を加える。
【００２０】
デバイス・インターフェース２３０の電力コントローラ２４０は、スロット電力制御信号２１８を受け取り、パワー電界効果トランジスタ（ＦＥＴ）の状態を変更して、システムおよび補助電力２４２からスロット電力２４４を介してＰＣＩ拡張スロット・コネクタ２６０に電力を加える。いくつかの実施形態では、電力コントローラ２４０が、電源調整が良好である時および／または過電流障害が発生した時を判定する回路を有する場合がある。電力調整および過電流障害の状況は、スロット電力状況２１６を介してホット・プラグ・コントローラ２１０に送信することができる。
【００２１】
電力が加えられた後、アダプタ・カード２７０の完全な有効化の前に、ホット・プラグ・コントローラ２１０は、ＰＣＩバス２８２、デバイス・インターフェース２３０、および、デバイス・インターフェース２３０に結合されたアダプタ・カード２７０などのアダプタ・カード、に関連する１つまたは複数の障害の検出、識別、および分離を優位に試みる。特に、ホット・プラグ・コントローラ２１０は、ＰＣＩバス２８２の短絡、ＦＥＴバス・スイッチ２５０の誤動作しているバス・スイッチ、アダプタ・カード２７０に関連する障害、またはアダプタ・カード２７０とデバイス・インターフェース２３０の間の接続に関連する障害、などの障害を識別するように構成されたビット・パターンからなるテスト信号を生成する。当該テスト信号は、ＪＴＡＧバス２２８を介してＰＣＩホスト・ブリッジ２８０に送信され、当該テスト信号に対する応答として予想される比較信号が、Ｉ２Ｃバス２２２を介してデバイス・インターフェース２３０に送信される。当該テスト信号は、ＰＣＩホスト・ブリッジ２８０の出力ピンに接続されるバウンダリスキャン・レジスタのラッチされた出力にあらかじめロードされ、ホット・プラグ・コントローラ２１０は、ＪＴＡＧバス２２８を介してＪＴＡＧ  ＥＸＴＥＳＴ命令を発行して、出力ピンを介してテスト信号を駆動する。ホット・プラグ・コントローラ２１０は、複数のサイクルを待って、テスト信号の送信後のＰＣＩバス２８２上のバス信号に基づいてデバイス・インターフェース２３０によって決定されたエラー信号２２０を取り込む。エラー信号２２０は、ホット・プラグ・コントローラ２１０に送信され、テスト信号から生じる１つまたは複数の他のエラー信号と共にエラー信号２２０が解釈される。
【００２２】
ホット・プラグ・コントローラ２１０は、Ｉ２Ｃバス２２２およびスロット・バス制御２２４を介して送信される信号を用いて、デバイス・インターフェース２３０内のテストの条件を調整することができる。たとえば、複数の実施形態では、ホット・プラグ・コントローラ２１０が、Ｉ２Ｃバス２２２を介して信号を送信して、デバイス・インターフェース２３０に関連するバス信号の、バス側のバス信号とスロット側のバス信号との間での選択を制御する。バス側のバス信号は、ＰＣＩバス２８２からサンプリングされる信号であり、スロット側のバス信号は、スロットＰＣＩバス信号２５４からサンプリングされる信号である。
【００２３】
多くの実施形態では、ホット・プラグ・コントローラ２１０は、スロット・バス制御２２４を介して信号を送信して、ＦＥＴバス・スイッチ２５０の状態を制御する。たとえば、ホット・プラグ・コントローラ２１０は、スロット・バス制御２２４を介して信号を送信して、ＰＣＩバス２８２とスロットＰＣＩバス信号２５４との間に結合されたＦＥＴをオフまたはオンにすることによって、ＦＥＴバス・スイッチ２５０に、アダプタ・カード２７０をＰＣＩバス２８２から分離させることができる。
【００２４】
他の実施形態では、ホット・プラグ・コントローラ２１０の処置が、アプレットなどのソフトウェアによって発行される、命令またはコマンドへの応答からなる場合がある。多くのそのような実施形態では、アプレットが、エラー信号またはエラー信号を表すデータを受け取り、エラー信号を解釈して、障害の源を確定し、ＰＣＩバス２８２からアダプタ・カード２７０を分離するといったように、障害を分離する命令を生成することができる。
【００２５】
図３に、バス３６０およびスロット・バス３７０といった、バス上のエラーおよび／または障害を検出するための、図２に示されたＦＥＴバス・スイッチ２５０のうちのあるバス・スイッチ３００の実施形態を示す。バス・スイッチ３００は、スイッチ３０４、３１４、および３２４と、マルチプレクサ３０８、３１８、および３２８と、コンパレータ３１０、３２０、３３０、および３５０と、Ｉ２Ｃコントローラ３４０を有している。スイッチ３０４、３１４、および３２４は、スロット・バス制御信号ＳＥＬ＃に応じた、バス３６０とスロット・バス３７０との間の分離または結合をもたらす。たとえば、バス３６０は、周辺デバイスを接続するためのシステムの第２のバスからなることがあり、またスロット・バス３７０は、スロット内のアダプタ・カードをバス３６０へ結合させるためのバスからなることがあり、したがって、コントローラは、信号ＳＥＬ＃を送信して、アダプタ・カードの機械的誤挿入、アダプタ・カードの障害、アダプタに結合されたデバイスの障害、またはアダプタ・カードのスロットへの挿入中に生じた障害、といった障害について、スロット・バス３７０が検査されるまで、バス３６０をスロット・バス３７０から分離することができる。さらなる実施形態では、いくつかのテストについては、スイッチ３０４、３１４、および３２４によって、バス３６０をスロット・バス３７０から分離し、他のテストについては、バス３６０をスロット・バス３７０に結合することがある。
【００２６】
マルチプレクサ３０８、３１８、および３２８は、スイッチ３０４、３１４、および３２４のバス側からとスロット側からとのバス信号の比較を容易にすることができる。特に、マルチプレクサ３０８、３１８、および３２８は、バス側の信号Ａ（０）、Ａ（１）、およびＡ（ｎ）をサンプリングするためにノード３０２、３１２、および３２２に結合してもよいし、スロット側信号Ｂ（０）、Ｂ（１）、およびＢ（ｎ）をサンプリングするためにノード３０６、３１６、および３２６に結合してもよい。Ｉ２Ｃコントローラ３４０からの信号Ｉ２ＣｏｍｐＳｅｌは、コントローラからのＩ２Ｃバス上の信号に応答して、サンプリングするバス信号を選択することができる。他の実施形態では、マルチプレクサ３０８、３１８、および３２８のそれぞれの別々の信号によって、さらなるテストを容易化する場合がある。
【００２７】
コンパレータ３１０、３２０、および３３０は、Ａ（０）上のビットなどのバス３６０上のデータ・パターンのビットを、Ｉ２Ｃコントローラ３４０からのビット、Ｉ２ＣＲｅｇ（０）と比較して、障害がバス３６０に関連するかどうかを判定することができる。たとえば、コントローラが、テスト信号を生成し、そのテスト信号をバス３６０を介してバス・スイッチ３００に送信したとする。また、コントローラは、比較信号またはノード３０２、３１２、および３２２におけるテスト信号に対する応答になると予想される信号を、Ｉ２Ｃバスを介してＩ２Ｃコントローラ３４０に送信したとする。これに応答して、Ｉ２Ｃコントローラ３４０は、マルチプレクサ３０８、３１８、および３２８に信号を送信して、バス側の信号を選択し、ビット比較信号Ｉ２ＣＲｅｇ（０：ｎ）を対応するコンパレータ３１０から３３０に送信して、比較信号Ｃｏｍｐａｒｅ（０）からＣｏｍｐａｒｅ（ｎ）を生成する。この実施形態では、コンパレータは、バス信号とテスト信号の両方がロー（＝低値）の時にハイ（＝高値）出力を生成し、それ以外の時にロウ出力を生成するするＸＯＲからなっている。
【００２８】
コンパレータ３５０は、コンパレータ３１０、３２０、および３３０の出力を組み合わせて、エラー信号であるバス・スイッチ・エラーを生成する。コンパレータ３５０は、ＡＮＤ論理を用いて出力を組み合わせて、すべてのテスト信号がハイの時に論理１またはハイ出力からなり、そうでない場合に論理０またはロー出力からなるエラー信号を生成する。いくつかの実施形態では、コンパレータ３５０の出力によって、Ｉ２Ｃコントローラ３４０へのフィードバックを提供して、エラー信号を生成するための論理のレイテンシー（＝待ち時間）を知らせることがある。
【００２９】
図４は、バス上のエラーおよび／または障害を検出する実施形態のフロー・チャートを示したものである。この実施形態は、デバイスをバス用のデバイス・インターフェースへ結合させるのに応答してテスト信号を確定するステップ４００を有している。デバイスをバス用のデバイス・インターフェースへ結合させるのに応答してテスト信号を確定するステップ４００は、アプレットからビット・パターンまたはデータを受け取るステップを有する場合がある。いくつかの実施形態では、デバイスをバス用のデバイス・インターフェースへ結合させるのに応答してテスト信号を確定するステップ４００は、バスに関連する障害を識別するように構成されたテスト信号またはビット・パターンを選択するステップを有している。たとえば、コントローラが、テスト信号を選択して、短絡または故障コネクタといった周辺バスでの障害を検出することができる。
【００３０】
当該テスト信号を決定した後は、多数の実施形態では、バス上にテスト信号を送信するステップ４１０および第２のバスを介してデバイス・インターフェースに比較信号を送信するステップ４２０を有している。たとえば、コントローラは、当該バスに結合されたブリッジに当該テスト信号を送信し、当該テスト信号は、ブリッジの出力レジスタにラッチされる。当該コントローラはまた、デバイス・インターフェースの比較回路に比較信号を送信する。
【００３１】
テスト信号を送信した後にデバイス・インターフェースでバス上のバス信号を確定するステップ４３０では、当該バス信号のサンプリングのために選択されたノードにおいて、当該バス上の信号が読み取られる。いくつかの実施形態で、バス信号を確定するステップは、さらに、どのノードから当該バス信号をサンプリングするかを知らせるための信号を受け取るステップを有している。たとえば、当該コントローラは、デバイス・インターフェースにノード選択を送信してもよく、当該デバイス・インターフェースは、その信号を、当該デバイス・インターフェースに結合されたバスの各信号媒体ごとのマルチプレクサ用の信号に変換してもよい。より具体的には、各マルチプレクサの状態によって、デバイス・インターフェースのバス側またはデバイス・インターフェースのスロット側のどちらからバス信号をサンプリングするかを決定することができる。多くの実施形態では、デバイス・インターフェースのバス側からバス信号をサンプリングすることは、デバイス・インターフェースとブリッジまたはコントローラとの間のバス・セグメントにおける障害の検出および分離を容易にすることができる。これらの実施形態のいくつかにおいては、デバイス・インターフェースのスロット側からバス信号をサンプリングすることは、デバイス・インターフェースのスロットに結合されたアダプタ・カードに関連する障害の、またはデバイス・インターフェースのＦＥＴといったスイッチに関連する障害の、検出および分離を容易にすることができる。
【００３２】
テスト信号および比較信号がバス上に送信され、バス信号がデバイス・インターフェースにおいてバスからサンプリングされた後に、バス信号および比較信号は比較され、障害が存在するかどうかを判定することができる。この比較により障害が存在することが示される時には、多くの実施形態では、コントローラにエラーを伝えるために、バス信号と、バス上にテスト信号を送信することに対する応答として予想される比較信号と、の間の差異に基づいてエラー信号を生成するステップ４４５を有している。コントローラは、１つまたは複数のテスト信号に関連したエラー信号を解釈して、障害が存在するかどうかと、障害がどこにあるかとを判定することができ、その結果、障害をシステムの残りから分離できるようになる。たとえば、障害がバス・セグメントまたはバス・スイッチにある時に、作動不能な周辺バスから生じるシステム全体のクラッシュを回避するために、バスを使用不能にする場合がある。これに対して、障害がアダプタ・カードに関連する時には、さらなるテストによって、障害がアダプタ・カードのバッファまたはレジスタ、アダプタ・カードとスロットとの間の接続の故障、またはデバイス・インターフェースのスロットへのアダプタ・カードの機械的挿入、のいずれに関連するのかを示すことができる。この後者の状況では、障害が訂正されるか修理されるまで、そのスロットはバスから分離されることがある。
【００３３】
いくつかの実施形態においては、いったんエラーが判定されたならば、デバイス・インターフェースに結合されたライトの形で、および／または、エラー信号を解釈し、グラフィカル・ユーザ・インターフェース（ＧＵＩ）を介してユーザに障害を伝えることによって、当該エラーをユーザに表示することができる。
【００３４】
図５を参照すると、本発明のマシン・アクセス可能媒体の実施形態が示されている。マシン・アクセス可能媒体には、当該マシンによって実行される時に本明細書に記載の機能を実行することができる、マシン（たとえばコンピュータ）によって読取可能な形の情報を提供する（すなわち、記憶する、および／または送信する）すべての機構が含まれる。たとえば、マシン・アクセス可能媒体には、読取専用メモリ（ＲＯＭ）や、ランダム・アクセス・メモリ（ＲＡＭ）や、磁気ディスク記憶媒体や、光学記憶媒体や、フラッシュ・メモリ・デバイスや、電気的、光学的、音響的、または他の形態の伝搬信号（たとえば、搬送波、赤外線信号、ディジタル信号など）、などを含めることができる。本発明のいくつかの実施形態では、マシンの設計に応じて、複数のマシン・アクセス可能媒体を有することができる。
【００３５】
実施形態５００は、テスト信号を決定する処理５１０、バスに関連する障害を判定するためにエラー信号を解釈する処理５２０、障害がデバイスに関連する時にバスからデバイスを分離する処理５３０、およびユーザ・インターフェースを介して障害を知らせる処理５４０、のための諸命令を有することができる。テスト信号を判定する処理５１０によって、デバイスをバス用デバイス・インターフェースへ結合させるのに応答してバス上に送信されるテスト信号を決定することができ、バスに関連する障害を識別するように構成されたビット・パターンを選択する処理５１５のための命令を有することもある。たとえば、テスト信号を決定する命令によって、プロセッサに、１つまたは複数の診断コマンドをコントローラに送信させることができ、それらコマンドは、バス障害を判定するために異なるデータ・パターンをバス・セグメント上でセット・アップする。
【００３６】
バスに関連する障害を判定するためにエラー信号を解釈する処理５２０では、テスト信号の送信に応答して生成されたエラー信号を解釈して、バスに関連する障害を判定することができる。バスに関連する障害を判定するためにエラー信号を解釈する処理５２０は、別のエラー信号の解釈に基づいてエラー信号を解釈する処理５２５のための命令を有する場合がある。たとえば、テスト信号を確定した後に、そのテスト信号をデバイス・インターフェースに送信して、バスまたはデバイス・インターフェースに関連する障害によって、テスト信号またはアダプタ・カードからのテスト信号に対する応答において、誤ったビットが引き起こされるかどうかを判定することができる。比較信号を、異なるバスを介してコントローラからデバイス・インターフェースに送信し、テスト信号、あるいはテスト信号への正しい応答、の模範を提供することができる。次に、当該比較信号を、デバイス・インターフェースにおけるバス信号と１ビットずつ比較して、障害の結果としてエラーが発生したかどうかを判定することができる。信号の比較によって、エラー信号の生成を容易にすることができ、当該エラー信号は、コントローラに送信することができる。次に、当該エラー信号は、前の診断からもたらされた他のエラー信号に鑑みて解釈され、適用できる場合は、障害が存在しているかもしれない場所が確定される。
【００３７】
障害がデバイスに関連する時にバスからデバイスを分離する処理５３０によって、エラー信号の解釈から、障害がデバイスに関連することが示される時に、デバイスをバスから分離することができ、この処理は、信号をバス・スイッチに送信する処理５３５のための命令を有することがある。信号をバス・スイッチに送信する処理５３５は、ＦＥＴの状態を変更する信号を送信して、アダプタ・カードをバスから分離することができる。これに対して、障害のあるＦＥＴなどのアダプタ・カードを分離することによっても障害を分離することができない時には、システム全体のクラッシュを回避するため、修理ができるまでバスを非有効化することができる。
【００３８】
さらなる実施形態では、ユーザ・インターフェースを介して障害を知らせる処理５４０を有する場合がある。ユーザ・インターフェースを介して障害を知らせる処理５４０は、問題をユーザに示すためにシステムを介してメッセージを送信またはブロードキャスト（＝一斉通報）する命令を有することができる。たとえば、システムは、サーバの一部を有していてもよいし、１つまたは複数のサーバを監視および／または保守するために設計された管理端末にメッセージを送信してもよい。
【００３９】
本発明が、ホット・プラグ・デバイスおよび／またはホット・プラグ・デバイスに関連するバスを完全に有効化する前に、動作状態のままであるシステム内で、ホット・プラグ・デバイスをバスに結合することに関連した障害の検出と、いくつかの実施形態ではその障害の分離と、を企図しているのだということは、この開示により恩恵を受ける当業者には明白であろう。詳細な説明および図面において図示および説明された本発明の形態は、現在好ましい例としてのみ解釈されなければならないことを理解されたい。請求項が、開示された好ましい実施形態のすべての変化形を含むように広義に解釈されなければならないということを意図するものである。
【図面の簡単な説明】
【００４０】
【図１】入出力（Ｉ／Ｏ）バスでのエラーおよび／または障害を検出するための、１つまたは複数のプロセッサ、システム・メモリ、およびホット・プラグ・デバイス用の１つまたは複数のブリッジ、を有するシステムの実施形態を示す図である。
【図２】ＰＣＩバス上でエラーおよび／または障害を検出するための、ホット・プラグ・コントローラ、ＰＣＩホスト・ブリッジ、デバイス・インターフェース、およびアダプタ・カード、を有する装置の実施形態を示す図である。
【図３】バス上のエラーおよび／または障害を検出するための、図２のバス・スイッチの実施形態を示す図である。
【図４】バス上のエラーおよび／または障害を検出するための実施形態のフロー・チャートを示す図である。
【図５】バス上のエラーおよび／または障害を検出するための命令を持った、マシン・アクセス可能な媒体の実施形態を示す図である。
【符号の説明】
【００４１】
１００  システム
１２０  システム・バス
１３０  システム・メモリ
１４０  ホット・プラグ・コントローラ
１４２  副バス
１４４  Ｉ／Ｏバス
１４６  デバイス・インターフェース
１４８  デバイス・インターフェース
１５０  周辺デバイス
１５５  周辺デバイス
１６０  ホット・プラグ・コントローラ
１６２  副バス
１６４  Ｉ／Ｏバス
１６６  デバイス・インターフェース
１６８  デバイス・インターフェース
１７０  周辺デバイス
１７５  周辺デバイス
２００  装置
２１０  ホット・プラグ・コントローラ
２１２  信号
２１４  スロット・リセット信号
２１６  スロット電力状況
２１８  スロット電力制御信号
２２０  エラー信号
２２２  Ｉ２Ｃバス
２２４  スロット・バス制御
２２８  ＪＴＡＧバス
２３０  デバイス・インターフェース
２４０  電力コントローラおよびパワーＦＥＴ
２４４  スロット電力
２５０  ＦＥＴバス・スイッチ
２５４  スロットＰＣＩバス信号
２６０  ＰＣＩ拡張スロット・コネクタ
２７０  アダプタ・カード
２８０  ＰＣＩホスト・ブリッジ
２８２  ＰＣＩバス  
３００  バス・スイッチ
３０２  ノード
３０４  スイッチ
３０６  ノード
３０８  マルチプレクサ
３１０  コンパレータ
３１２  ノード
３１４  スイッチ
３１６  ノード
３１８  マルチプレクサ
３２０  コンパレータ
３２２  ノード
３２４  スイッチ
３２６  ノード
３２８  マルチプレクサ
３３０  コンパレータ
３４０  Ｉ２Ｃコントローラ
３５０  コンパレータ
３６０  バス
３７０  スロット・バス
４００  ステップ（処理）
４１０  ステップ（処理）
４２０  ステップ（処理）
４３０  ステップ（処理）
４４０  ステップ（条件分岐）
４４５  ステップ（処理）
４５０  ステップ（条件分岐）
４６０  ステップ（終了）
４９０  実施形態のフロー・チャート
５００  実施形態
５１０  処理
５１５  処理
５２０  処理
５２５  処理
５３０  処理
５３５  処理
５４０  処理
【図１】
2004152298.tif 000003
【図２】
2004152298.tif 000004
【図３】
2004152298.tif 000005
【図４】
2004152298.tif 000006
【図５】
2004152298.tif 000007