(57)【要約】  ＳＡＳエクスパンダは、ＳＡＳ  ＰＨＹに結合された対応するＳＡＳリンク上でＳＡＳデバイスとの信号の送受信を行うために、ＳＡＳ  ＰＨＹを含む。ＳＡＳエクスパンダは、ＳＡＳリンク上の通信に関する障害検出パラメータを提供する状態レジスタを含む。ＳＡＳエクスパンダのマイクロプロセッサは障害検出パラメータに基づいて、ＳＡＳリンクのうちの１つで障害のある通信を識別し、マイクロプロセッサが障害のある通信を識別したＳＡＳリンクに結合されたＳＡＳ  ＰＨＹのうちの対応する１つを無効にする。このマイクロプロセッサはまた、ＰＨＹを無効にしたことをＳＡＳイニシエータに報告してもよい。このマイクロプロセッサはまた、例えばＳＡＳデバイスからの表示であるユーザ入力に応じて、または修正アクションを自動的に検出することに応じて、修正アクションが行われた後にＰＨＹを再び有効にしてもよい。このエクスパンダはまた、自動的に修正アクションを行ってもよい。障害検出パラメータはエラーカウンタおよび対応するしきい値、割り込みインジケータ、ならびに状態値を含んでもよい。【その他】              本願に係る特許出願人の国際段階での記載住所は「アメリカ合衆国９２００８カリフォルニア州カールスバッド、ファラディ・ドライブ・２２００、スイート・１００」ですが、識別番号３０５０４９０８９を付与された国内書面に記載の住所が適正な住所表記であります。
2009540436.tif 000002
【特許請求の範囲】
【請求項１】
シリアルアタッチドＳＣＳＩ（ＳＡＳ）デバイス間の通信を容易にするためのＳＡＳエクスパンダであって、
複数のＳＡＳ  ＰＨＹに結合された対応する複数のＳＡＳリンク上で、ＳＡＳデバイスとの信号の送受信を行うための複数のＳＡＳ  ＰＨＹと、
前記複数のＳＡＳ  ＰＨＹに結合され、前記ＳＡＳリンク上の通信に関する障害検出パラメータを提供するように構成された状態レジスタと、
前記状態レジスタに結合されたマイクロプロセッサであって、前記状態レジスタによって提供された前記障害検出パラメータに基づいて、前記ＳＡＳリンクのうちの１つの障害のある通信を識別し、
前記マイクロプロセッサが前記障害のある通信を識別した前記ＳＡＳリンクのうちの前記１つに結合された、前記複数のＳＡＳ  ＰＨＹのうちの対応する１つを無効にするように構成されたマイクロプロセッサとを備える、ＳＡＳエクスパンダ。
【請求項２】
前記マイクロプロセッサが、前記複数のＳＡＳ  ＰＨＹのうちの前記１つが第２ＳＡＳエクスパンダに接続されている場合、前記複数のＳＡＳ  ＰＨＹのうちの前記１つを無効にしないように構成されており、前記第２ＳＡＳエクスパンダが、第１ＳＡＳエクスパンダに接続されたＳＡＳイニシエータからのダウンストリームである、請求項１に記載のＳＡＳエクスパンダ。
【請求項３】
前記状態レジスタによって提供される前記障害検出パラメータが、前記ＳＡＳリンクの各々の上の前記通信に関連した障害カウントを含む、請求項１に記載のＳＡＳエクスパンダ。
【請求項４】
前記マイクロプロセッサが、前記障害カウントのうちの１つまたは複数が対応する所定のしきい値を超えるかどうかに基づいて、前記複数のＳＡＳ  ＰＨＹのうちの前記１つを無効にするように構成されている、請求項３に記載のＳＡＳエクスパンダ。
【請求項５】
前記障害カウントが、前記ＳＡＳリンク上で受信されたディスパリティエラーのカウントを含む、請求項３に記載のＳＡＳエクスパンダ。
【請求項６】
前記障害カウントが、前記ＳＡＳリンク上で検出されたデコードエラーのカウントを含む、請求項３に記載のＳＡＳエクスパンダ。
【請求項７】
前記障害カウントが、前記ＳＡＳリンク上のリンク再設定シーケンスを再開させるｄｗｏｒｄ同期のロスのカウントを含む、請求項３に記載のＳＡＳエクスパンダ。
【請求項８】
前記障害カウントが、前記ＳＡＳリンク上のｄｗｏｒｄ同期の失敗のカウントを含む、請求項３に記載のＳＡＳエクスパンダ。
【請求項９】
前記障害カウントが、前記ＳＡＳリンク上で検出されたＣＲＣｄｗｏｒｄエラーのカウントを含む、請求項３に記載のＳＡＳエクスパンダ。
【請求項１０】
検出されたＣＲＣｄｗｏｒｄエラーの前記カウントが、ＩＤＥＮＴＩＦＹおよびＯＰＥＮアドレスフレームのために検出されたＣＲＣｄｗｏｒｄエラーを含む、請求項９に記載のＳＡＳエクスパンダ。
【請求項１１】
検出されたＣＲＣｄｗｏｒｄエラーの前記カウントが、ＳＡＳ接続の間に検出されたＣＲＣｄｗｏｒｄエラーを含む、請求項９に記載のＳＡＳエクスパンダ。
【請求項１２】
前記障害カウントが、前記ＳＡＳリンク上で生成されたＰＨＹ変更イベントのカウントを含む、請求項３に記載のＳＡＳエクスパンダ。
【請求項１３】
前記マイクロプロセッサが、前記障害のある通信を識別するため、および前記複数のＳＡＳ  ＰＨＹのうちの前記対応する１つを無効にするためのコード命令をフェッチし、実行するように構成されている、請求項１に記載のＳＡＳエクスパンダ。
【請求項１４】
前記複数のＳＡＳ  ＰＨＹを制御するために、前記マイクロプロセッサに結合された制御レジスタをさらに備え、
前記マイクロプロセッサが、前記複数のＳＡＳ  ＰＨＹのうちの前記１つを無効にするために、前記制御レジスタに書き込みを行うように構成されている、請求項１に記載のＳＡＳエクスパンダ。
【請求項１５】
前記ＳＡＳリンク上の前記通信に関するイベントを前記マイクロプロセッサに通知するために、前記マイクロプロセッサに結合され、前記複数のＳＡＳ  ＰＨＹによって生成される割り込みインジケータをさらに備え、
前記マイクロプロセッサが、前記割り込みインジケータに基づいて前記障害のある通信を識別するように構成されている、請求項１に記載のＳＡＳエクスパンダ。
【請求項１６】
前記複数のＳＡＳ  ＰＨＹに結合され、前記複数のＳＡＳ  ＰＨＹからデータを受信するように構成された入力バッファをさらに備え、
前記イベントが、前記入力バッファのうちの１つからの前記受信されたデータの超過を含む、請求項１５に記載のＳＡＳエクスパンダ。
【請求項１７】
前記イベントが、前記複数のＳＡＳ  ＰＨＹのうちの１つから準備完了状態への移行を含む、請求項１５に記載のＳＡＳエクスパンダ。
【請求項１８】
前記イベントが、前記複数のＳＡＳ  ＰＨＹのうちの１つを含むＳＡＳ  ＣＯＭＩＮＩＴシーケンスの実行の成功を含む、請求項１５に記載のＳＡＳエクスパンダ。
【請求項１９】
前記状態レジスタによって提供される前記障害検出パラメータが、前記ＳＡＳリンクの各々の上での前記通信に関連した状態を含み、前記マイクロプロセッサが、前記状態に基づいて、前記ＳＡＳリンクの前記１つの上で前記障害のある通信を識別するように構成されている、請求項１に記載のＳＡＳエクスパンダ。
【請求項２０】
前記状態が、前記ＳＡＳ  ＰＨＹが所定の回数、再設定されたかどうかを示す、請求項１９に記載のＳＡＳエクスパンダ。
【請求項２１】
前記状態が、ＳＡＳデバイスが前記ＳＡＳ  ＰＨＹに結合された前記対応するＳＡＳリンクに接続されているかどうかを示す、請求項１９に記載のＳＡＳエクスパンダ。
【請求項２２】
前記状態が、対応するＳＡＳリンクが前記ＳＡＳ  ＰＨＹに接続されているかどうかを示す、請求項１９に記載のＳＡＳエクスパンダ。
【請求項２３】
前記状態が、前記ＳＡＳ  ＰＨＹに接続された対応するＳＡＳリンクが初期化に成功したかどうかを示す、請求項１９に記載のＳＡＳエクスパンダ。
【請求項２４】
前記障害検出パラメータをさらに格納するために、前記マイクロプロセッサに結合されたメモリをさらに備え、前記マイクロプロセッサが、前記メモリの中に格納された前記障害検出パラメータにさらに基づいて、前記障害のある通信を識別するように構成されている、請求項１に記載のＳＡＳエクスパンダ。
【請求項２５】
シリアルアタッチドＳＣＳＩ（ＳＡＳ）イニシエータと複数のＳＡＳターゲットストレージデバイスとの間の通信を容易にするために、ＰＨＹを有するＳＡＳエクスパンダを含むＳＡＳシステムの中でデータ可用性を増加させるための方法であって、
ＳＡＳエクスパンダのＰＨＹに接続されたＳＡＳリンク上で障害のある通信を、ＳＡＳエクスパンダによって識別することと、
前記障害のある通信を識別することに応じて、ＳＡＳエクスパンダによってＳＡＳエクスパンダのＰＨＹを無効にすることとを含む、方法。
【請求項２６】
ＳＡＳエクスパンダによって、前記無効にすることを報告することをさらに含む、請求項２５に記載の方法。
【請求項２７】
前記無効にすることを前記ＳＡＳエクスパンダによって報告することが、前記無効にすることをＳＡＳエクスパンダによってＳＡＳイニシエータに報告することである、請求項２６に記載の方法。
【請求項２８】
前記無効にすることをＳＡＳエクスパンダによってＳＡＳイニシエータに報告することが、ＳＡＳイニシエータがユーザに対して報告するための、前記無効にすることの状態情報をＳＡＳエクスパンダによってＳＡＳイニシエータに報告することである、請求項２７に記載の方法。
【請求項２９】
前記無効にすることをＳＡＳエクスパンダによって報告することが、ＳＣＳＩエンクロージャサービス（ＳＥＳ）ページを介して、前記無効にすることをＳＡＳエクスパンダによって報告することである、請求項２６に記載の方法。
【請求項３０】
前記無効にすることをＳＡＳエクスパンダによって報告することが、シリアル管理プロトコル（ＳＭＰ）メッセージを介して、前記無効にすることをＳＡＳエクスパンダによって報告することである、請求項２６に記載の方法。
【請求項３１】
前記ＳＡＳエクスパンダのＰＨＹを無効にすることの後で、障害のある通信を修正するためにアクションが行われたことをＳＡＳエクスパンダによって検出することと、
前記検出することに応じて、ＳＡＳエクスパンダのＰＨＹをＳＡＳエクスパンダによって再び有効にすることをさらに含む、請求項２５に記載の方法。
【請求項３２】
前記検出することが、ユーザが修正アクションを行ったという情報をＳＡＳイニシエータから受信することを含む、請求項３１に記載の方法。
【請求項３３】
前記検出することが、ユーザが修正アクションを行ったという情報を複数のＳＡＳターゲットストレージデバイスのうちの１つから受信することを含む、請求項３１に記載の方法。
【請求項３４】
修正アクションが、ＳＡＳエクスパンダのＰＨＹに結合されたＳＡＳケーブルを交換することを含む、請求項３１に記載の方法。
【請求項３５】
修正アクションが、ＳＡＳコントローラを交換することを含む、請求項３１に記載の方法。
【請求項３６】
修正アクションが、複数のＳＡＳターゲットストレージデバイスのうちの１つを交換することを含む、請求項３１に記載の方法。
【請求項３７】
修正アクションが、ＳＡＳイニシエータがＳＡＳシステムの中のＰＨＹを再構成するためのコマンドを送信することを含む、請求項３１に記載の方法。
【請求項３８】
修正アクションが、ＳＡＳエクスパンダが修正アクションを行うことを含む、請求項３１に記載の方法。
【請求項３９】
ＳＡＳエクスパンダが修正アクションを行うことが、ＳＡＳエクスパンダがＳＡＳエクスパンダのＰＨＹのアナログ設定を調整することを含む、請求項３８に記載の方法。
【請求項４０】
前記検出することが、ＳＡＳエクスパンダのＰＨＹに結合されたＳＡＳケーブルが交換されたことをＳＡＳエクスパンダによって自動的に検出することである、請求項３１に記載の方法。
【請求項４１】
前記検出することが、ＳＡＳイニシエータが交換されたことをＳＡＳエクスパンダによって自動的に検出することである、請求項３１に記載の方法。
【請求項４２】
前記検出することが、複数のＳＡＳターゲットストレージデバイスのうちの前記１つが交換されたことをＳＡＳエクスパンダによって自動的に検出することである、請求項３１に記載の方法。
【請求項４３】
前記検出することが、ＳＡＳイニシエータがＳＡＳシステムの中のＰＨＹを再構成するためのコマンドを送信したことを含む、請求項３１に記載の方法。
【請求項４４】
前記検出することが、ＳＡＳエクスパンダが修正アクションを行うことをＳＡＳエクスパンダによって検出することである、請求項３１に記載の方法。
【請求項４５】
ＳＡＳエクスパンダが修正アクションを行うことが、ＳＡＳエクスパンダがＳＡＳエクスパンダのＰＨＹのアナログ設定を調整することを含む、請求項４４に記載の方法。
【請求項４６】
（１）前記無効にすることの後で、ＳＡＳエクスパンダによってＳＡＳエクスパンダのＰＨＹを再び有効にすることと、
（２）前記ＳＡＳエクスパンダのＰＨＹを再び有効にすることの後で、障害のある通信が持続しているかどうかをＳＡＳエクスパンダによって判定することと、
（３）障害のある通信が存続している場合に、ＳＡＳエクスパンダのＰＨＹをＳＡＳエクスパンダによって再度無効にすることと、
障害のある通信がステップ（２）で、もはや持続しなくなるまで、前記ステップ（１）、（２）および（３）をＳＡＳエクスパンダによって繰り返すこととをさらに含む、請求項２５に記載の方法。
【請求項４７】
前記繰り返すことが周期的に実行される、請求項４６に記載の方法。
【請求項４８】
前記繰り返すことが単調に増加する期間で実行される、請求項４７に記載の方法。
【請求項４９】
（４）前記ステップ（３）の後で、ＳＡＳエクスパンダのＰＨＹのアナログ設定をＳＡＳエクスパンダによって調整することと、
障害のある通信がステップ（２）で、もはや持続しなくなるまで、前記ステップ（１）、（２）、（３）および（４）をＳＡＳエクスパンダによって繰り返すことをさらに含む、請求項４６に記載の方法。
【請求項５０】
ＳＡＳエクスパンダによって維持される障害検出パラメータをＳＡＳエクスパンダによって監視することをさらに含み、
前記識別することが、前記監視することに基づいてＳＡＳエクスパンダによって実行される、請求項４９に記載の方法。
【請求項５１】
前記監視することが、ＳＡＳエクスパンダのマイクロプロセッサによって周期的に実行される、請求項５０に記載の方法。
【請求項５２】
ＳＡＳイニシエータが、低価格ディスク冗長アレイ（ＲＡＩＤ）コントローラを備える、請求項５１に記載の方法。
【請求項５３】
障害検出パラメータが、ＳＡＳエクスパンダのＰＨＹに接続されたＳＡＳリンク上の通信に関連したエラーカウント値を含む、請求項５０に記載の方法。
【請求項５４】
障害検出パラメータが、エラーカウント値と比較するためのしきい値を含み、そのしきい値を超えたかどうかを判定する、請求項５３に記載の方法。
【請求項５５】
障害検出パラメータが、ＳＡＳエクスパンダのＰＨＹに接続されたＳＡＳリンク上の通信に関連したイベントを示す、ＳＡＳエクスパンダのＰＨＹのマイクロプロセッサに対する割り込みインジケータを含む、請求項５０に記載の方法。
【請求項５６】
障害検出パラメータが、ＳＡＳエクスパンダのＰＨＹに接続されたＳＡＳリンク上の通信に関連した状態値を含む、請求項５０に記載の方法。
【請求項５７】
前記繰り返すことが所定の回数しか実行されない、請求項４９に記載の方法。
【請求項５８】
ＳＡＳイニシエータと、
複数のＳＡＳターゲットストレージデバイスと、
複数のＳＡＳリンクによって、前記ＳＡＳイニシエータおよび前記複数のＳＡＳターゲットデバイスに接続されたＳＡＳエクスパンダであって、前記複数のＳＡＳリンクに結合するために複数のＰＨＹを備えるＳＡＳエクスパンダとを備え、前記ＳＡＳエクスパンダが、前記複数のＳＡＳリンクの１つの上で障害のある通信を識別し、それに応じて、前記複数のＳＡＳリンクのうちの前記識別された１つに接続された前記複数のＰＨＹのうちの１つを無効にするように構成されている、シリアルアタッチドＳＣＳＩ（ＳＡＳ）システム。
【請求項５９】
第２ＳＡＳイニシエータと、
第２の複数のＳＡＳリンクによって、前記第２ＳＡＳイニシエータおよび前記複数のＳＡＳターゲットデバイスに接続された第２ＳＡＳエクスパンダとをさらに備え、
前記第２ＳＡＳイニシエータが、前記第１ＳＡＳエクスパンダが前記複数のＳＡＳリンクのうちの前記識別された１つに接続された前記複数のＰＨＹのうちの前記１つを無効にした後で、前記第２の複数のＳＡＳリンクを介して、前記複数のＳＡＳターゲットデバイスと通信し続けるように構成されている、請求項５８に記載のシステム。
【請求項６０】
前記複数のＰＨＹのうちの少なくとも２つが、前記複数のＳＡＳリンクのうちの対応する少なくとも２つを備えたワイドＳＡＳリンク上での前記ＳＡＳイニシエータとの通信のためにワイドＳＡＳポートにまとめられ、前記ＳＡＳエクスパンダが、前記ワイドＳＡＳポートの前記複数のＰＨＹの前記少なくとも２つのうちの１つを無効にするように構成されており、前記ＳＡＳエクスパンダが、前記ワイドＳＡＳポートの前記複数のＰＨＹの前記少なくとも２つのうちの前記１つを前記ＳＡＳエクスパンダが無効にした後で、前記複数のＰＨＹの前記少なくとも２つのうちの残りの１つを介して、前記ＳＡＳイニシエータと通信し続けるように構成されている、請求項５８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、参照により本明細書に組み込まれている、２００６年６月８日に出願した米国仮出願第６０／８０４，２６７号の優先権を主張するものである。
【０００２】
本発明は一般に、シリアルアタッチドＳＣＳＩ（ＳＡＳ）システムに関し、より詳細にはＳＡＳエクスパンダに関する。
【背景技術】
【０００３】
シリアルアタッチドＳＣＳＩ（ＳＡＳ）システムは、現代のコンピュータシステムにおいて、ますます一般的なものになっている。ＳＡＳシステムは、その原型であるスモールコンピュータシステムインタフェース（ＳＣＳＩ）がそうであるように、ＳＡＳイニシエータデバイスおよびＳＡＳターゲットデバイスを含む。ＳＡＳターゲットデバイスは典型的に、低価格ディスク冗長アレイ（ＲＡＩＤ）（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）コントローラのホストコンピュータまたはＳＡＳＩ／ＯコントローラのＳＡＳホストバスアダプタなどのＳＡＳイニシエータデバイスからコマンドを受信するディスクドライブなどのストレージデバイスである。
【０００４】
ＳＡＳの実装例および使用法は、すべての意図および目的について、各々がその全体において参照により本明細書に組み込まれている、以下の文書の中で詳細に説明されている。
・「Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ−１．１（ＳＡＳ−１．１）」、改訂１０、２００５年９月２１日、作業草案、プロジェクトＴ１０／１６０１−Ｄ、整理番号ＩＳＯ／ＩＥＣ１４７７６−１５１：２００ｘ、米国規格協会（ｈｔｔｐ：／／ｗｗｗ．ｔ１０．ｏｒｇ／ｆｔｐ／ｔ１０／ｄｒａｆｔｓ／ｓａｓ１／ｓａｓ１ｒ１０．ｐｄｆ）
・「Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ−２（ＳＡＳ−２）」、改訂６、２００６年９月２２日、作業草案、プロジェクトＴ１０／１７６０−Ｄ、整理番号ＩＳＯ／ＩＥＣ１４７７６−１５２：２００ｘ、米国規格協会（ｈｔｔｐ：／／ｗｗｗ．ｔ１０．ｏｒｇ／ｆｔｐ／ｔ１０／ｄｒａｆｔｓ／ｓａｓ２／ｓａｓ２ｒ０６．ｐｄｆ）
【０００５】
ＳＡＳシステムは、ＳＡＳ装置の間のポイント対ポイントのシリアル接続上に構築されている。各ポイント対ポイント接続はリンクまたはレーンと呼ばれ、２つのエンドポイントは、ＰＨＹと呼ばれる。ＰＨＹはトランシーバを含み、リンクの一方のエンドにある別のＰＨＹと通信するために、リンクに電気的に接続する。このリンクまたはレーンは、各方向にある２つの異なる信号ペアを含む。ＳＡＳポートは１つまたは複数のＰＨＹを含む。まとめられた２つ以上のＰＨＹを有するＳＡＳポートは、ワイドポートと呼ばれ、２つのワイドポートを結合する２つ以上のリンクは、ワイドリンクと呼ばれる。ワイドポートおよびリンクは、ＳＡＳエンドポイントの間で、増加されたデータ転送速度を提供する。
【０００６】
最も単純なＳＡＳトポロジは、単一のＳＡＳターゲットのＳＡＳポートへの単一のＳＡＳリンクによって接続された、ＳＡＳポートを有する単一のＳＡＳイニシエータである。しかしながら、高データアベイラビリティＲＡＩＤシステムなど、多くのアプリケーションでは、１つまたは複数のＳＡＳイニシエータが、複数のＳＡＳターゲットデバイスと通信できるようにすることが望ましい。イニシエータおよびターゲットの他に、ＳＡＳは、より複雑なトポロジを達成するためにＳＡＳシステムの中で用いられる、第３の種類のデバイスであるエクスパンダを含む。ＳＡＳエクスパンダは、ＳＡＳイニシエータおよびターゲットがＳＡＳポイント対ポイント接続を介して通信することができるように、ルーティングなどのスイッチと同様の機能を実行する。
【０００７】
本発明者は、論理的なエラー、不適切なＰＨＹのアナログ設定、不良もしくは限界にあるＰＨＹ、または不良もしくは限界にあるケーブル、コネクタもしくはプリントされた回路基盤組立物の見取り図を含んでもよい、不良もしくは限界にあるリンクを生成するＳＡＳデバイスなど、構成要素が限界または不良になった場合に、複雑なトポロジのＳＡＳシステムの中で様々な問題を見てきた。いくつかの障害のある構成要素の症状は、ＳＡＳデバイス間の断続的な通信エラー、ＳＡＳリンクの完全なロス、ＳＡＳ領域全体の故障を含む。その他の症状は、ＳＡＳデバイスが、トポロジの中に入ることを許されるには十分によく機能するようにするが、ＳＡＳデバイス間の効果的な通信を妨げるには十分に障害があるようにする断続的な故障によって、イニシエータがトポロジの中のＳＡＳターゲットを見ることができないということである。
【０００８】
これらの問題に対処する１つの方法は、イニシエータに基づく解決法である。イニシエータは障害のある構成要素を識別して、イニシエータが問題を分離するまで、試行錯誤のアプローチの中の領域にある様々なＰＨＹを無効にし、迂回するために、ＳＡＳ領域を通じてコマンドを送信する。しかしながら本発明者は、このイニシエータに基づく方法によって満足に修復されることが不可能な、いくつかの欠点のあるシナリオを見てきた。例えば、ＳＡＳエクスパンダが、最初にＳＡＳリンクが適切に動作していることを検出し、その後、リンクが適切に動作していないことを検出するようにし、比較的長い時間この連続が継続するようにする限界にあるＰＨＹなど、コンポーネントが断続的に故障すると仮定する。ＳＡＳ規格に従って、ＳＡＳエクスパンダは、別のＳＡＳ装置にＳＡＳ領域内の状態の変化を通知するために、そのＳＡＳポートの各々でＢＲＯＡＤＣＡＳＴプリミティブを送信しなければならない。ＳＡＳイニシエータがＢＲＯＡＤＣＡＳＴプリミティブを受信する度に、デバイスの種類、ＳＡＳのアドレス、およびＳＡＳ領域の中の各ＳＡＳ装置の支援されるプロトコルを発見するため、ならびに必要に応じてＳＡＳエクスパンダ内でルーティング表を構成するために、ＳＡＳ発見プロセスを実行することが必要とされる。ＳＡＳ発見プロセスには、比較的多くの時間がかかる可能性がある。ＳＡＳエクスパンダが、ＳＡＳ発見プロセスの時間に相当する期間に応じた動作可能リンクから動作不可能リンクへの移行によって、ＢＲＯＡＤＣＡＳＴプリミティブを送信する場合、結果的にＳＡＳイニシエータは、問題を識別し、修復するために、ＳＡＳ領域を通じてコマンドを効果的に送信することができない場合がある。または、たとえイニシエータが問題をうまく識別し、解決することができたとしても、ＳＡＳ領域は許容不可能な長さのために、ユーザデータの転送を提供するために効果的に利用することができなかった場合がある。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
したがって、前述の問題を起こしやすいＳＡＳシステムの中で、データ可用性を改善するための解決法が必要とされている。
【課題を解決するための手段】
【００１０】
本発明は、リンクのうちの１つで障害のある通信を自動的に検出し、障害のある通信を検出する、リンクに接続されたＰＨＹを無効にすることによって、その障害を分離する高機能ＳＡＳエクスパンダを提供する。１つの実施形態で、高機能ＳＡＳエクスパンダはまた、ＰＨＹを無効にすることを報告する。１つの実施形態で、高機能ＳＡＳエクスパンダはまた、修正アクションが行われた後で、以前に無効にされたＰＨＹを再び有効にすることによって回復を行う。高機能ＳＡＳエクスパンダは、障害のある通信を検出し、ＰＨＹを無効にすることによって障害のある構成要素を分離するために、様々な障害検出パラメータを監視し、分析する。
【００１１】
１つの態様で、本発明は、シリアルアタッチドＳＣＳＩ（ＳＡＳ）デバイス間の通信を容易にするためにＳＡＳエクスパンダを提供する。このＳＡＳエクスパンダは、複数のＳＡＳ  ＰＨＹに接続された対応する複数のＳＡＳリンクでＳＡＳデバイスとの信号の送受信を行うために、複数のＳＡＳ  ＰＨＹを含む。このＳＡＳエクスパンダはまた、ＳＡＳリンク上の通信に関する障害検出パラメータを提供するように構成された、複数のＳＡＳ  ＰＨＹに結合された状態レジスタも含む。このＳＡＳエクスパンダはまた、状態レジスタに結合されたマイクロプロセッサも含む。このマイクロプロセッサは、状態レジスタによって提供された障害検出パラメータに基づいて、ＳＡＳリンクのうちの１つで障害のある通信を識別する。このマイクロプロセッサはまた、マイクロプロセッサが障害のある通信を識別したＳＡＳリンクのうちの１つに結合された、複数のＳＡＳ  ＰＨＹのうちの対応する１つを無効にする。
【００１２】
別の態様で、本発明は、シリアルアタッチドＳＣＳＩ（ＳＡＳ）イニシエータと複数のＳＡＳターゲットストレージデバイスとの通信を容易にするためにＰＨＹを有するＳＡＳエクスパンダを含むＳＡＳシステムの中で、データ可用性を増加させるための方法を提供する。この方法は、ＳＡＳエクスパンダのＰＨＹに接続されたＳＡＳリンク上で障害のある通信を識別するＳＡＳエクスパンダを含む。この方法はまた、障害のある通信を識別することに応じて、ＳＡＳエクスパンダのＰＨＹを無効にするＳＡＳエクスパンダを含む。
【００１３】
別の態様で、本発明はシリアルアタッチドＳＣＳＩ（ＳＡＳ）システムを提供する。このシステムはＳＡＳイニシエータ、複数のＳＡＳターゲットストレージデバイス、および複数のＳＡＳリンクによって、ＳＡＳイニシエータと複数のＳＡＳターゲットデバイスとに接続されたＳＡＳエクスパンダを含む。このＳＡＳエクスパンダは、複数のＳＡＳリンクに結合するために、複数のＰＨＹを含む。このＳＡＳエクスパンダは、複数のＳＡＳリンクのうちの１つの上で障害のある通信を識別し、それに応じて、複数のＳＡＳリンクのうちの識別された１つに接続された複数のＰＨＹのうちの１つを無効にする。
【００１４】
本発明の利点は、本発明が、ＳＡＳシステムの中の障害に反応するために、ＳＡＳイニシエータに基づく解決法よりも直接的、決定的および強力な方法を提供するということである。特に、本明細書で説明されている高機能ＳＡＳエクスパンダは、本明細書で説明されているように、一部の障害のあるモードでは効果的ではないか、または許容できない場合があるイニシエータに基づく解決法によって必要とされるように、ＰＨＹを無効にするためにＳＡＳ領域を通じたコマンドの送信に依存することなく、ＰＨＹを制御するＳＡＳエクスパンダ内のレジスタに直接アクセスすることによって、検出された障害に関連したＰＨＹを直接無効にすることができる。
【発明を実施するための最良の形態】
【００１５】
ここで図１を参照すると、本発明によるＳＡＳシステム１００のブロック図が示されている。ＳＡＳシステム１００は、各々がイーサネット（登録商標）、ファイバチャネル等のホスト相互接続を介して２つのＳＡＳベースＲＡＩＤコントローラ１０４に結合されている２つのホストコンピュータ１０８を含む。各ＲＡＩＤコントローラ１０４は、ワイドＳＡＳリンク１１２を介して、対応するＳＡＳエクスパンダ１０２に結合されている。図１の実施形態では、ＲＡＩＤコントローラ１０４とＳＡＳエクスパンダ１０２との間のワイドＳＡＳリンク１１２は、４ｘの幅である。ＳＡＳエクスパンダ１０２の各々は、対応するＳＡＳリンク１１２を介して複数のＳＡＳディスク１０６に結合されている。図１の実施形態では、ＳＡＳエクスパンダ１０２とＳＡＳディスク１０６との間のＳＡＳリンク１１２はナロー（すなわち１ｘ）ＳＡＳリンク１１２である。ＲＡＩＤコントローラ１０４、ＳＡＳエクスパンダ１０２およびＳＡＳディスク１０６は、エンクロージャ１１４で囲まれている。さらに、エンクロージャ１１４内部のＳＡＳエクスパンダ１０２は、ＳＡＳリンク１１２を介して接続されている。１つの実施形態で、エクスパンダ間ＳＡＳリンク１１２は４ｘ幅のリンクである。エクスパンダ間ＳＡＳリンク１１２は有利にも、もう一方のＲＡＩＤコントローラ１０４に直接接続されたＳＡＳエクスパンダ１０２を通じてＳＡＳディスク１０６の各々と通信するために、各ＲＡＩＤコントローラ１０４のための第２ＳＡＳ経路を提供する。
【００１６】
ＳＡＳシステム１００のＳＡＳエクスパンダ１０２は有利にも、ＳＡＳエクスパンダ１０２ＰＨＹのうちの１つに接続されたＳＡＳ１１２リンク上で障害のある通信を識別する能力を含む高機能ＳＡＳエクスパンダ１０２である。さらに、高機能ＳＡＳエクスパンダ１０２は、識別されたＰＨＹを無効にして、ＰＨＹ自体であってもよい障害のある構成を、ＳＡＳシステム１００の残りのものから分離する能力を含む。さらに高機能ＳＡＳエクスパンダ１０２は、無効にされたＰＨＹを報告する能力を含む。最後に、高機能ＳＡＳエクスパンダ１０２は、障害のある状態から回復する能力を含む。１つの実施形態で、ユーザは、障害のある構成要素（例えば障害のあるケーブル、障害のあるＳＡＳディスク１０６、またはその他の障害のある構成要素など）の交換などの修正アクションを行うＳＡＳエクスパンダ１０２に通知を行い、ＳＡＳエクスパンダ１０２はそれに応じて、以前に無効にされたＰＨＹを再び有効にすることによって、ＳＡＳエクスパンダ１０２とその他のデバイスとの間の通信を修復する。１つの実施形態で、ＳＡＳエクスパンダ１０２は、ユーザが障害を修復したことを自動的に検出し、それに応じてＰＨＹを再び有効にするために十分に高機能である。１つの実施形態で、ＳＡＳエクスパンダ１０２は、信頼できる通信が復元されるまで、ＰＨＹのアナログ設定を調整することなどの障害を修復するためのアクションを自動的に行うために十分に高機能なものである。ＳＡＳエクスパンダ１０２は、以下で詳細に説明されるように、ＳＡＳリンク１１２上の障害のある通信を識別するために、ＰＨＹに関連した状態レジスタを監視し、レジスタを制御してＰＨＹを無効および再び有効にすることの書き込みを行い、報告機能を実行するマイクロプロセッサを含む。
【００１７】
図１のＳＡＳシステム１００はまた、上で説明された第１エンクロージャ１１４と同様の第２および第３エンクロージャ１１４を含むが、第２および第３エンクロージャ１１４はＲＡＩＤコントローラ１０４を含まず、ＳＡＳディスク１０６および２つのＳＡＳエクスパンダ１０２だけを囲むために用いられる。第１エンクロージャ１１４の中の各ＳＡＳエクスパンダ１０２は、対応するワイドＳＡＳリンク１１２を介して、第２エンクロージャ１１４の中のＳＡＳエクスパンダ１０２のうちの対応する１つに接続されている。同様に、第２エンクロージャ１１４の中の各ＳＡＳエクスパンダ１０２は、対応するワイドＳＡＳリンク１１２を介して、第３エンクロージャ１１４の中のＳＡＳエクスパンダ１０２のうちの対応する１つに接続されている。１つの実施形態で、各エンクロージャ１１４はＲＡＩＤコントローラ１０４、ＳＡＳエクスパンダ１０２、電源、冷却システム、管理コントローラ、およびストレージシステム業界でよく知られているその他の構成要素に加えて、１２個までのＳＡＳディスク１０６を囲むことができる。
【００１８】
図１のＳＡＳシステム１００は有利にも、ＳＡＳシステム１００の障害許容度を増加させるために、冗長な方法で配置されている。特に、各ＳＡＳディスク１０６はＲＡＩＤコントローラ１０４の各々によってアクセス可能なので、ＲＡＩＤコントローラ１０４、ＳＡＳリンク１１２またはＳＡＳエクスパンダ１０２が故障した場合、ホスト１０８は故障していないＲＡＩＤコントローラ１０４またはＳＡＳ経路を介して、ＳＡＳディスク１０６にアクセスし続けてもよい。図１のＳＡＳシステム１００は、本発明が用いられてもよいＳＡＳシステム１００の例であることが意図されている。しかしながら、本発明は図１に示されているシステム構成に限定されるわけではない。本発明はむしろ、ＳＡＳエクスパンダを含む様々なＳＡＳトポロジの中で用いられてもよい。一部の実施形態で、ホスト１０８はまた、第１エンクロージャ１１４の中に含まれてもよい。
【００１９】
上述のように、ＳＡＳリンク１１２はケーブル、コネクタ、および信号コンダクタを含むプリントされた回路基盤組立物などの様々な構成要素を含んでもよい。１つの実施形態で、ＳＡＳエクスパンダ１０２は、本発明者が本明細書で説明されている本発明の障害識別、分離、報告および修理ステップを実行するために（以下で論じられる）コード２２２を変更している、カリフォルニア州サンタクララのＰＭＣ−Ｓｉｅｒｒａ社から入手可能なＰＭ８３８８ＳＸＰ２４ｘ３Ｇ２４ポートＳＡＳエクスパンダを含む。別の実施形態では、ＳＡＳエクスパンダ１０２はＰＭ８３８７ＳＸＰ３６ｘ３Ｇ３６ポートＳＡＳエクスパンダ、ＰＭ８３９９ＳＸＰ２４ｘ３ＧＳＥＣ２４ポートＳＡＳエクスパンダまたはＰＭ８３９８ＳＸＰ３６ｘ３ＧＳＥＣ２４ポートＳＡＳエクスパンダの以下のＰＭＣ−Ｓｉｅｒｒａモデルの変更バージョンを備える。
【００２０】
図１は、ＳＡＳディスク１０６を含むＳＡＳシステム１００を示しているが、本発明は、ＳＡＳ領域内でＳＡＳディスクと共用利用可能なＳＡＴＡディスク１０６を含むＳＡＳシステム１００の中で用いられてもよい。特にＳＡＴＡトンネルプロトコル（ＳＴＰ）は、ＳＡＳ／ＳＡＴＡイニシエータがＳＡＳハードウェアインフラ上でＳＡＴＡディスクと通信する手段を提供する。
【００２１】
ここで図２を参照すると、図１のＳＡＳエクスパンダ１０２をより詳細に示すブロック図が示されている。ＳＡＳエクスパンダ１０２はメモリ２０４および複数のＳＡＳポート２１６に結合されたマイクロプロセッサ２０２を含む。メモリ２０４は、本明細書で説明されている障害識別、分離、報告および修理ステップを達成するために、マイクロプロセッサ２０２によってフェッチされ、実行されるコード２２２命令を格納する。メモリ２０４はまた、以下で論じられるように、マイクロプロセッサ２０２が障害のある通信を検出するために（図３に関して以下で説明される）カウンタ値３９２と比較する、しきい値２２４も格納する。
【００２２】
各ＳＡＳポート２１６は、図１のＳＡＳリンク１１２のうちの１つに接続された１つまたは複数のＳＡＳ  ＰＨＹ２０８を含む。示されているように、ＳＡＳポート２１６のうちのいくつかはワイドＳＡＳポート２１６であり、いくつかはナローＳＡＳポート２１６である。各ＳＡＳポート２１６はまた、ＳＡＳ  ＳＥＲＤＥＳ回路（不図示）も含む。
【００２３】
ＳＡＳエクスパンダ１０２はまた、マイクロプロセッサ２０２が（図３に関して以下で説明される）障害検出パラメータ３００を監視し、ＰＨＹ２０８を無効および有効にするなど、ＰＨＹ２０８を制御するために読み出しおよび書き込みを行う、各ＰＨＹ２０８に関連した制御および状態レジスタ（ＣＳＲ）２０６のセットも含む。障害検出パラメータ３００およびそれらの使用法は、残りの図面に関して以下でより詳細に説明される。さらに障害検出パラメータ３００は、ＳＡＳリンク１１２上の通信に関連したイベントをマイクロプロセッサ２０２に知らせるために示される、ＰＨＹ２０８からの割り込みインジケータ２１８を含む。
【００２４】
ＳＡＳエクスパンダ１０２はまた、様々なＰＨＹ２０８が１つのＰＨＹ２０８から別のものへコマンドおよびデータを転送して、ＳＡＳエクスパンダ１０２の切り換え機能を実行することができるようにするために様々なＰＨＹ２０８を相互接続する、多重化されたデータ経路（例えばクロスバーなど）および切り換え回路（不図示）も含む。ＳＡＳエクスパンダ１０２はまた、ポート２１６の中で受信し、ポート２１６の外で送信されるのを待機している場合にコマンドおよびデータをバッファするために、ＰＨＹ２０８の各々に関連したバッファリング回路も含んでよい。コマンドおよびデータは、１つの実施形態ではメモリ２０４の中に格納されているルーティング表情報に基づいて、ポート２１６間のネットワークを通じて発送される。
【００２５】
ここで図３を参照すると、本発明による障害検出パラメータ３００を示すブロック図が示されている。障害検出パラメータ３００は割り込みインジケータ２１８、ＣＳＲ２０６に格納された値、および図２のメモリ２０４に格納された値を含む。障害検出パラメータ３００は一般に、カウンタ３９２、割り込みインジケータ２１８、状態３９４、ＣＳＲ２０６に格納されたしきい値３９６、および図２のメモリ２０４に格納されたしきい値２２４に分類することができる。障害検出パラメータ３００はまた、ＣＳＲ２０６に格納されたパフォーマンス監視期間３７２も含み、その使用法は以下で説明される。
【００２６】
マイクロプロセッサ２０２は、各カウンタ３９２の各々のために、対応するしきい値３９６を維持する。しきい値３９６のうちのいくつか、すなわちディスパリティエラーインターバルしきい値３６２およびコード違反エラーインターバルしきい値３６４はＣＳＲ２０６の中に格納され、ＳＡＳエクスパンダ１０２ハードウェアは、それらを自動的に対応するカウンタ３９２値と比較し、しきい値を超えている場合には割り込みを生成する。その他のカウンタ３９２値に対応するしきい値２２４はメモリ２０４の中に格納され、マイクロプロセッサ２０２はＳＡＳリンク１１２上の障害のある通信を識別するために、カウンタ３９２値か、または周期的にサンプリングされたカウンタ３９２値から導き出された累積カウントを、しきい値２２４と周期的に比較する。
【００２７】
カウンタ３９２は、ＰＨＹ再設定シーケンスの外部で受信された無効なＤＷＯＲＤの数を示す無効ＤＷＯＲＤカウント３０２、ＰＨＹ再設定シーケンスの外部で受信された実行中ディスパリティエラーの数を示すディスパリティエラーカウント３０４、ビットストリーム上でデコードエラーが検出された回数を示すコード違反カウント３０６、ｄｗｏｒｄ同期を失ったためにＰＨＹ２０８がリンク再設定シーケンスを再開した回数（すなわちＰＨＹ２０８がＰＨＹ準備状態からＣＯＭＩＮＩＴ状態になった回数）を示すＤＷＯＲＤ同期のロスカウント３０８、最終ＳＡＳ速度の折衝の間にＰＨＹ２０８がｄｗｏｒｄ同期の取得に失敗した回数を示すＰＨＹ再設定の失敗カウント３１２、受信されたＩＤＥＮＴＩＦＹおよびＯＰＥＮアドレスフレームのために検出されたＣＲＣ  ＤＷＯＲＤエラーの数を示すＣＲＣエラーカウント３１４、接続中のＣＲＣエラーの数を示す接続中ＣＲＣエラーカウント３１６および生成されたＰＨＹ変更イベントの数を示すＰＨＹ変更カウント３１８を含む。
【００２８】
割り込みインジケータ２１８は、ＰＨＹ２０８が初期化を完了し、データを送受信する準備ができていることを示す（ＰＨＹ２０８は、ＣＯＭＩＮＩＴが検出された後にだけ準備完了となる）ＰＨＹ準備割り込み３２２、有効ＣＯＭＩＮＩＴバンド外（ＯＯＢ）シーケンスがうまく折衝を完了したことを示すＣＯＭＩＮＩＴ割り込み３２４、有効ＤＷＯＲＤが受信され、内部エラスティックストアまたはバッファがいっぱいであることを示すエラスティックストア超過割り込み３２６、パフォーマンス監視期間３７２の中で特定されたクロックサイクル数の間にディスパリティエラーインターバルしきい値３６２を上回ったことを示すディスパリティエラー割り込み３２８、パフォーマンス監視インターバル３７２の中で特定されたクロックサイクル数の間に、コード違反エラーインターバルしきい値３６４を上回ったことを示すコード違反エラー割り込み３３２、ＰＨＹ２０８上のＤＷＯＲＤ同期が失われ、その結果ＰＨＹ２０８がリンク再設定シーケンスを再開したことを示すＤＷＯＲＤ同期のロス割り込み３３４を含む。
【００２９】
状態３９４は、ポート２１６が接続された状態にあるかどうかを示すリンク接続状態３４２、ＰＨＹ２０８が現在ＤＷＯＲＤ同期を失っていることを示すＤＷＯＲＤ同期紛失状態３４４、ポート２１６がうまくリンク初期化シーケンスを完了したかどうかを示すｉｎｉｔパス状態３４６、デバイスがＰＨＹ２０８に接続されているかどうかを示すデバイスの存在状態３４８、ＳＡＳまたはＳＡＴＡデバイスが接続されているものとして検出されたかどうかを示す添付デバイス型状態３５２、最後の折衝されたライン速度が１．５または３．０Ｇｂｉｔｓ／ｓｅｃであるかどうかを示す速度状態３５４、ＰＨＹ２０８再設定しきい値に達したことを示すＰＨＹ再設定限界飽和状態３５６を含む。
【００３０】
１つの実施形態で、ＳＡＳエクスパンダ１０２は、様々な障害検出パラメータ３００を設定および取得し、ＰＨＹ２０８の状態を取得し、個々のＰＨＹ２０８を直接有効または無効にするＲＡＩＤコントローラ１０４からＳＣＳＩエンクロージャサービス（ＳＥＳ）ページを受信するように構成されている。１つの実施形態で、ＳＥＳページなどの制御および状態情報は、Ｉ２Ｃ接続またはその他の通信経路など、エンクロージャ１１４内部のＳＡＳエクスパンダ１０２間のバンド外通信経路を介して送信されてもよい。ＰＨＹ２０８を接続しているＳＡＳケーブルに障害がある場合に起こる可能性があることだが、ＳＡＳエクスパンダ１０２が、ＳＡＳエクスパンダ１０２をアップストリームのＳＡＳエクスパンダ１０２に接続するすべてのＰＨＹ２０８を無効にしている場合、有利にもバンド外通信経路が用いられてもよい。ＳＡＳエクスパンダ１０２が無効化を行うことは、ＰＨＹ２０８を無効にしたことを示す状態情報を、エンクロージャ１１４の中の別のＳＡＳエクスパンダ１０２に通信してもよい。この状況で再起動を回避するために、ユーザは、エンクロージャ１１４の中の別のＳＡＳエクスパンダ１０２が、ＰＨＹを無効にされたＳＡＳエクスパンダ１０２に、バンド外通信経路を介してＳＥＳページをブロードキャストして、ケーブルが交換された後に無効にされたＰＨＹ２０８を再び有効にするように、ＰＨＹを無効にされたＳＡＳエクスパンダ１０２に指示を出すようにしてもよい。バンド外通信経路は、ＳＡＳの仕様がＳＡＳトポロジ内部でループを認めないために存在しない可能性があるエクスパンダ間ＳＡＳリンク１１２を持たないエンクロージャ１１４の内部にあるＳＡＳエクスパンダ１０２にとって、特に有用である。さらに、ＳＡＳエクスパンダ１０２は、ＳＡＳエクスパンダ１０２の不揮発性メモリの中に格納されており、ＳＡＳエクスパンダ１０２の起動時に用いられる障害検出パラメータ３００のデフォルト値を含む。このデフォルト値は、動作の間にＲＡＩＤコントローラ１０４か、またはマイクロプロセッサ２０２によって変更されてもよい。
【００３１】
ここで図４を参照すると、本発明の１つの実施形態による図１のＳＡＳシステム１００の動作を示す流れ図が示されている。流れはブロック４０２で開始する。
【００３２】
ブロック４０２で、図１のＳＡＳエクスパンダ１０２の図２のマイクロプロセッサ２０２は、そのＰＨＹ２０８の各々の図３の障害検出パラメータ３００を周期的に監視する。割り込みインジケータ２１８は、マイクロプロセッサ２０２によってポーリングされる。１つの実施形態で、割り込みインジケータ２１８は割り込み要求信号として、マイクロプロセッサ２０２によって非同期で受信される。１つの実施形態で、障害検出パラメータ３００の監視に応じて、マイクロプロセッサ２０２はまた、状態情報をＲＡＩＤコントローラ１０４に提供するために維持するデータベースを更新する。１つの実施形態で、状態情報はＳＥＳページを介して提供される。１つの実施形態で、障害検出パラメータ３００の監視に応じて、マイクロプロセッサ２０２はまた、複数の監視期間にわたりメモリ２０４の中に格納された累積エラーカウントを維持し、更新する。１つの実施形態で、この監視期間はマイクロプロセッサ２０２に対するタイマ割り込みによって判定される。流れはブロック４０４へ進む。
【００３３】
ブロック４０４で、マイクロプロセッサ２０２は、ブロック４０２での監視に基づいて、そのＰＨＹ２０８のうちの１つに接続されたＳＡＳリンク１１２上で障害のある通信を識別する。マイクロプロセッサ２０２は、ＰＨＹ２０８を無効にする必要があるかどうかを判定するために、障害の表示のためにコード２２２の中で具体化された分離規則に従って、障害検出パラメータ３００を分析する。障害のある通信の識別は、本明細書で論じられているような様々な基準を含んでもよい。分離規則は、ＰＨＹ２０８が１つまたは複数の特定の状態に達したこと、１つまたは複数の割り込みインジケータ２１８によって示されるように、１つまたは複数の特定のイベントが生じていること、およびそれらの様々な組合せを検出することによって、しきい値を超える１つまたは複数の様々なカウントによって起動されてもよい。１つの実施形態で、マイクロプロセッサ２０２は、ＰＨＹ２０８が有効である場合には、ＰＨＹ２０８に関連した障害のある通信だけを識別する。１つの実施形態で、マイクロプロセッサ２０２は、分離がＰＨＹ２０８のために許可されている場合には、ＰＨＹ２０８に関連した障害のある通信だけを識別する。１つの実施形態で、ＳＡＳエクスパンダ１０２は、個々のＰＨＹ２０８を選択的に有効および無効にするため、ならびに個々のＰＨＹ２０８の分離を選択的に許可および否認するために、ＲＡＩＤコントローラ１０４からＳＥＳページを受信する。流れはブロック４０６へ進む。
【００３４】
ブロック４０６で、マイクロプロセッサ２０２は、ブロック４０４で識別されたＰＨＹ２０８を無効にするために、制御レジスタ２０６へ書き込みを行う。流れはブロック４０８へ進む。
【００３５】
ブロック４０８で、ＳＡＳエクスパンダ１０２は、ＰＨＹ２０８がＲＡＩＤコントローラ１０４の１つか、または両方に対して無効にされたという事実を報告する。１つの実施形態で、ＳＡＳエクスパンダ１０２はまた、ＰＨＹが無効にされた理由も報告する。１つの実施形態で、ＳＡＳエクスパンダ１０２はまた、ＰＨＹ２０８を無効にする判定を行うために、ＳＡＳエクスパンダ１０２によって使用されるすべてのしきい値も報告する。１つの実施形態で、ＳＡＳエクスパンダ１０２は、ＲＡＩＤコントローラ１０４にＳＥＳ診断ページを送信することによって報告を行う。１つの実施形態で、ＳＡＳエクスパンダ１０２は、ＲＡＩＤコントローラ１０４にシリアル管理プロトコル（ＳＭＰ）メッセージを送信することによって報告を行う。１つの実施形態で、ＳＡＳエクスパンダ１０２は、ＲＡＩＤコントローラ１０４が各ＰＨＹ２０８の状態、ならびに現在のエラーカウント、状態および本明細書で説明されているイベントを取得することが可能となるように、ＲＡＩＤコントローラ１０４に対してインタフェースを提供する。流れはブロック４１２へ進む。
【００３６】
ブロック４１２で、ＲＡＩＤコントローラ１０４は、ＰＨＹ２０８が無効にされたことをユーザに報告する。１つの実施形態で、ＲＡＩＤコントローラ１０４は、管理インタフェースを介してユーザに報告を行う。１つの実施形態で、ＲＡＩＤコントローラ１０４は、次にユーザに通知するホスト１０８の１つか、または両方に報告することによって、ユーザに報告を行う。流れはブロック４１４へ進む。
【００３７】
ブロック４１４で、無効にされたＰＨＹ２０８はワイドポート２１６の一部であると仮定すると、ＳＡＳエクスパンダポート１０２とポート２１６に接続されたＳＡＳデバイスとの間の通信は、適切に機能しているポート２１６のうちの残りのＰＨＹ２０８および関連したＳＡＳリンク１１２を介して継続する。ＳＡＳシステム１００は、無効にされたＰＨＹ２０８およびその各々のＳＡＳリンク１１２のために、比較的低いデータスループットになる場合があるということに留意されたい。しかしながら有利にも、障害のあるＳＡＳリンク１１２に関連したＰＨＹ２０８（またはＰＨＹ２０８自体が障害のあるものになっている場合がある）を無効にすることによって、ＳＡＳシステム１００が通常通りに機能し続ける可能性は増加し、それによって、本明細書で説明されている様々な問題を経験するのではなく、ホスト１０８に対するＳＡＳディスク１０６上のデータの可用性を改善する。流れはブロック４１４で終了する。
【００３８】
ここで図５を参照すると、本発明の代替実施形態による図１のＳＡＳシステム１００の動作を示す流れ図が示されている。図５で説明されるＳＡＳシステム１００の動作は、無効にされたＰＨＹ２０８が（図４に関して仮定されているように、ワイドポート２１６ではなく）ナローポート２１６の一部であったことが仮定されているので、ＳＡＳエクスパンダ１０２と、ブロック４０６で無効にされたＰＨＹ２０８に接続されたＳＡＳデバイスとの間の通信は、もはやナローＳＡＳリンク１１２を介して、ＳＡＳエクスパンダ１０２とＳＡＳデバイスとの間で可能ではない。さらに図５は、例えば図６から図８までに関して説明されているように、障害のあるＳＡＳリンク１１２の通常の機能を回復するための試みを説明していない。通常の機能の回復が実行される状況では、ＳＡＳシステム１００は通常の機能の回復が達成されるまで、（無効にされたＰＨＹ２０８がワイドポート２１６であったのか、またはナローポート２１６であったのかどうかによって）図４または図５に関して説明されているように動作し続けてもよい。
【００３９】
流れはブロック４０２で開始する。図５のブロック４０２から４１２までは、図４の同じ番号のブロックと同様であり、簡潔にするために、ここで再度説明されることはない。流れは図５のブロック４１２からブロック５１４へ進む。
【００４０】
ブロック５１４で、ホスト１０８は、無効にされたＰＨＹ２０８を含まない代替経路を介して、ブロック４０６で無効にされたＰＨＹ２０８によって、関係するＳＡＳディスク１０６にアクセスし続ける。図１のＳＡＳシステム１００に関して、ホスト１０８は別のＲＡＩＤコントローラ１０４を介して、ＳＡＳディスク１０６と通信する。流れはブロック５１２で終了する。
【００４１】
ここで図６を参照すると、本発明の代替実施形態による図１のＳＡＳシステム１００の動作を示す流れ図が示されている。図６は、ＳＡＳエクスパンダ１０２がさらに、障害が修正されたというユーザの入力に応じて、以前に無効にされたＰＨＹ２０８を再び有効にする、図１のＳＡＳシステム１００の動作を説明する。
【００４２】
流れはブロック４０２で開始する。図６のブロック４０２から４１２までは図４の同じ番号のブロックと同様であり、簡潔にするために、ここで再度説明されることはない。流れは図６のブロック４１２からブロック６１４へ進む。
【００４３】
ブロック６１４で、ユーザは、ブロック４１２での無効にされたＰＨＹ２０８の報告に応じて、障害のある構成要素を修正するためのアクションを行う。ユーザが障害のある構成要素を修正するために行ってもよいアクションの例は、以下のものに限定されるわけではないが、ケーブルの交換、コネクタの交換、ＳＡＳディスク１０６の交換、ＳＡＳエクスパンダ１０２の交換、ＲＡＩＤコントローラ１０４の交換、および例えば、そのアナログ設定を調整するためのＰＨＹ２０８の再構成を含む。流れはブロック６１６へ進む。
【００４４】
ブロック６１６で、ユーザはＲＡＩＤコントローラ１０４のうちの１つに、ブロック６１４で修正アクションを行ったことを通知する。１つの実施形態で、ユーザは管理インタフェースを介してＲＡＩＤコントローラ１０４に通知を行う。１つの実施形態で、ユーザは、次にＲＡＩＤコントローラ１０４に通知するホスト１０８のうちの１つに通知を行う。流れはブロック６１８へ進む。
【００４５】
ブロック６１８で、ＲＡＩＤコントローラ１０４はＳＡＳエクスパンダ１０２に、修正アクションが行われたことを通知する。１つの実施形態で、ＳＡＳエクスパンダ１０２は、ＲＡＩＤコントローラ１０４からＳＣＳＩエンクロージャサービス（ＳＥＳ）診断ページを受信することによって通知される。１つの実施形態で、ＳＡＳエクスパンダ１０２は、ＲＡＩＤコントローラ１０４からシリアル管理プロトコル（ＳＭＰ）メッセージを受信することによって通知される。１つの実施形態で、ＲＡＩＤコントローラ１０４は、明示的にＳＡＳエクスパンダ１０２にＰＨＹ２０８を再び有効にすることを指示することによって、ＳＡＳエクスパンダ１０２に通知を行う。流れはブロック６２２へ進む。
【００４６】
ブロック６２２で、マイクロプロセッサ２０２は、修正アクションが行われたという通知に応じて、以前にブロック４０６で無効にされたＰＨＹ２０８を再び有効にするために、制御レジスタ２０６へ書き込みを行う。流れはブロック６２２で終了する。
【００４７】
１つの実施形態で、マイクロプロセッサ２０２は、ＰＨＹ２０８が、障害を検出したＳＡＳエクスパンダ１０２に接続されたＲＡＩＤコントローラ１０４からのダウンストリームである別のＳＡＳエクスパンダ１０２へ接続されている場合、ブロック４０６でＰＨＹ２０８を無効にすることはない。このことは有利にも、図１のＳＡＳシステム１００などのカスケードにされたＳＡＳエクスパンダ１０２が関与するＳＡＳトポロジ上で、特定の故障モードを回復することを簡略化する。例えば、図１の２つのエンクロージャ１１４の各々の中のＳＡＳエクスパンダ１０２を接続するケーブルに障害があり、ＳＡＳエクスパンダ１０２の両方が障害を検出し、それらの各々のＰＨＹ２０８を無効にすると仮定する。この例では、一旦ケーブルが交換されたＳＡＳリンク１１２の動作を回復することは、２つのＳＡＳエクスパンダ１０２の間、および場合によっては２つのＲＡＩＤコントローラ１０４の間の調整を必要とする可能性がある。対照的に、ＰＨＹ２０８がダウンストリームのＳＡＳエクスパンダ１０２に接続されている場合には、ブロック４０６でＰＨＹ２０８を無効しないことによって、調整の必要性が回避される。
【００４８】
ここで図７を参照すると、本発明の代替実施形態による図１のＳＡＳシステム１００の動作を示す流れ図が示されている。図７は、ＳＡＳエクスパンダ１０２がさらに、障害が修正されたことを自動的に検出することに応じて、以前に無効にされたＰＨＹ２０８を再び有効にする図１のＳＡＳシステム１００の動作を説明する。
【００４９】
流れはブロック４０２で開始する。図７のブロック４０２から４１２および６１４までは図６の同じ番号のブロックと同様であり、簡潔にするために、ここで再度説明されることはない。流れは図７のブロック６１４から７１６へ進む。
【００５０】
ブロック７１６で、マイクロプロセッサ２０２は、ユーザがブロック６１４で修正アクションを行ったことを自動的に検出する。１つの実施形態で、マイクロプロセッサ２０２によって自動的に検出されるユーザの修正アクションは、ユーザがケーブルを交換することである。マイクロプロセッサ２０２は、リンク接続状態３４２障害検出パラメータ３００を介して、接続されていないリンクから、接続されたリンクへの状態の変化を検出することによって、ケーブルの交換を自動的に検出する。１つの実施形態で、マイクロプロセッサ２０２によって自動的に検出されるユーザの修正アクションは、ユーザがＳＡＳディスク１０６またはＳＡＴＡディスクを交換することである。マイクロプロセッサ２０２は、装置存在状態３４８障害検出パラメータ３００を介して、存在しないデバイスから存在するデバイスへの状態の変化を検出することによって、ディスクの交換を自動的に検出し、添付されたデバイス型状態３５２を介して、交換されたディスクがＳＡＳディスクであるのか、またはＳＡＴＡディスクであるのかを検出する。１つの実施形態で、マイクロプロセッサ２０２によって自動的に検出されるユーザの修正アクションは、ユーザがＳＡＳエクスパンダ１０２を交換することである。マイクロプロセッサ２０２は、図１のエクスパンダ間ＳＡＳリンク１１２を介してか、または図３に関して先に論じられたバンド外通信経路の状態を受信することを介して、交換されたＳＡＳエクスパンダ１０２に接続されたＰＨＹ２０８のデバイス存在状態３４８障害検出パラメータ３００を介して、存在しないデバイスから存在するデバイスへの状態の変化を検出することによって、ＳＡＳエクスパンダ１０２の交換を自動的に検出する。１つの実施形態で、マイクロプロセッサ２０２によって自動的に検出されるユーザの修正アクションは、ユーザがＲＡＩＤコントローラ１０４を交換することである。マイクロプロセッサ２０２は、ＳＡＳエクスパンダ１０２を交換されたＲＡＩＤコントローラ１０４へ接続するＰＨＹ２０８のデバイス存在状態３４８障害検出パラメータ３００を介して、存在しないデバイスから存在するデバイスへの状態の変化を検出することによって、ＲＡＩＤコントローラ１０４の交換を自動的に検出する。上述のものは、マイクロプロセッサ２０２によって実行される、自動的に検出されるユーザの修正アクションの例として示されているが、本発明は上述の実施形態に限定されるわけではなく、その他のユーザの修正アクションのために用いられてもよい。流れはブロック７１８へ進む。
【００５１】
ブロック７１８で、マイクロプロセッサ２０２は、ユーザによって修正アクションが行われたブロック７１６での自動検出に応じて、以前にブロック４０６で無効にされたＰＨＹ２０８を再び有効にするために、制御レジスタ２０６に書き込みを行う。流れはブロック７１８で終了する。
【００５２】
ここで図８を参照すると、本発明の代替実施形態による図１のＳＡＳシステム１００の動作を示す流れ図が示されている。図８は、ＳＡＳエクスパンダ１０２が、障害のある状態を修正し、以前に無効にされたＰＨＹ２０８上での通信を回復しようとするためのアクションを自動的に行う、図１のＳＡＳシステム１００の動作を説明する。
【００５３】
流れはブロック４０２で開始する。図８のブロック４０２から４１２までは図４の同じ番号のブロックと同様であり、簡潔にするために、ここで再度説明されることはない。流れは図８のブロック４１２からブロック８１４へ進む。
【００５４】
ブロック８１４で、マイクロプロセッサ２０２は、自動的に修正アクションを行う。１つの実施形態で、マイクロプロセッサ２０２によって行われる自動修正アクションは、ＰＨＹ２０８のアナログ設定を自動的に調整することであり、これによって、例えば前回ＰＨＹ２０８のアナログ設定が設定されてからケーブルの長さが変更されている場合に、ＳＡＳリンク１１２は適切に機能し始めることができる。流れはブロック８１６へ進む。
【００５５】
ブロック８１６で、マイクロプロセッサ２０２は、以前にブロック４０６で無効にされたＰＨＹ２０８を再び有効にするために、制御レジスタ２０６に書き込みを行う。流れは判定ブロック８１８へ進む。
【００５６】
判定ブロック８１８で、マイクロプロセッサ２０２は、ＰＨＹ２０８を再び有効にした後、ＳＡＳリンク１１２上で通常の通信が回復されたかどうかを判定する。回復されている場合、流れは終了し、回復されていない場合、流れはブロック８２２へ進む。
【００５７】
ブロック８２２で、マイクロプロセッサ２０２はＰＨＹ２０８を再度無効にする。流れはブロック８２２からブロック８１４へ戻る。
【００５８】
１つの実施形態で、マイクロプロセッサ２０２は再試行カウントしきい値を維持し、一旦マイクロプロセッサ２０２が、ブロック８１４から８２２までのループの中のステップを再試行しきい値を超える回数実行すると、マイクロプロセッサ２０２は、ＰＨＹ２０８を無効にし、ＰＨＹ２０８を再び有効にしなければならないことを示すイベントを検出するまで、障害の自動的な修復を試みることを止める。
【００５９】
１つの実施形態で、マイクロプロセッサ２０２は、ＰＨＹ２０８の無効／再有効化に応じて実行しなければならないＳＡＳ回復プロセスの回数を減らすために、ブロック８２２でＰＨＹ２０８を無効にする度に、ブロック８１４から８２２までのループの中で実行されるステップの期間を増やす。管理アプリケーションクライアントは、ＳＡＳ領域の中のすべてのＳＡＳデバイスおよびエクスパンダデバイスを発見するために、ＳＡＳ発見プロセスを実行する（すなわちそれらのデバイスの型、ＳＡＳアドレスおよび支援されるプロトコルを判定する）。ＳＡＳイニシエータデバイスは、接続を確立することができるＳＡＳアドレスを判定するために、この情報を使用する。セルフ構成エクスパンダデバイスは、そのエクスパンダルート表を満たすために、この情報を使用する。さらに、再有効化を必要とする複数の無効にされたＰＨＹ２０８が存在する場合、マイクロプロセッサ２０２は実行されなければならないＳＡＳ領域発見プロセスの回数をさらに減らすために、無効にされたＰＨＹ２０８のすべてを同時に再び有効にする。
【００６０】
本発明およびその目的、特徴ならびに利点が詳細に説明されてきたが、その他の実施形態は本発明によって包含される。例えば、ＳＡＳイニシエータがＲＡＩＤコントローラである実施形態が説明されているが、その他の種類のＳＡＳイニシエータが用いられるその他の実施形態が考えられる。さらに、ＳＡＳターゲットがディスクドライブである実施形態が説明されているが、その他の種類のＳＡＳストレージデバイスが用いられる、その他の実施形態が考えられる。
【００６１】
最後に、当業者であれば、添付の特許請求の範囲によって定義される本発明の精神および範囲から逸脱することなく、本発明と同じ目的を実行するために、その他の構造を構成または修正するための基準として、開示されている概念および特定の実施形態を簡単に使用することができるということを当業者には理解されたい。
【図面の簡単な説明】
【００６２】
【図１】本発明によるＳＡＳシステムのブロック図である。
【図２】図１のＳＡＳエクスパンダをより詳細に示すブロック図である。
【図３】本発明による障害検出パラメータを示すブロック図である。
【図４】本発明の１つの実施形態による図１のＳＡＳシステムの動作を示す流れ図である。
【図５】本発明の代替実施形態による図１のＳＡＳシステムの動作を示す流れ図である。
【図６】本発明の代替実施形態による図１のＳＡＳシステムの動作を示す流れ図である。
【図７】本発明の代替実施形態による図１のＳＡＳシステムの動作を示す流れ図である。
【図８】本発明の代替実施形態による図１のＳＡＳシステムの動作を示す流れ図である。
【図１】
2009540436.tif 000003
【図２】
2009540436.tif 000004
【図３】
2009540436.tif 000005
【図４】
2009540436.tif 000006
【図５】
2009540436.tif 000007
【図６】
2009540436.tif 000008
【図７】
2009540436.tif 000009
【図８】
2009540436.tif 000010
【国際調査報告】
2009540436.tif 000011
2009540436.tif 000012