(57)【要約】【課題】ファイバ・チャネル上のデバイス自信がエラーの原因となっているデバイスを特定すると共に、エラー原因となっている２台のデバイス間でのエラー回復を行う。【解決手段】本発明の一形態のＦＣ−ＡＬシステムにおいて、ＨＤＤ−Ｎがインターフェース・エラーを検出すると、エラーが発生したノードを特定するための信号を送信する。各ＨＤＤは、転送された信号に自身のエラー情報をセットして下流側に転送する。ＨＤＤ−Ｎは、戻ってきた信号のエラー情報を解析し、そのエラー情報に基づいてインターフェース・エラーを起こしたＨＤＤを特定する。さらに、特定された二つのＨＤＤは、内部のパラメータの適正値を学習し、各ＨＤＤ個々に適正な値を設定する。【選択図】図２
2008042851.tif 000002
【特許請求の範囲】
【請求項１】
ループ状ネットワークと、そのループ状ネットワークに接続された第１のノード及び他の複数のノードと、を有するループ状ネットワーク・システムであって、
前記第１のノードは、前記ループ状ネットワーク上のインターフェース・エラーを検出すると、そのインターフェース・エラーが発生したノードを特定するための信号を送信し、
前記他の複数ノードのそれぞれは、受信した前記信号に自身のエラー情報をセットして送信し、
前記第１のノードは、戻ってきた前記信号に含まれるエラー情報に基づいて前記インターフェース・エラーの原因なっているノードを特定する、
システム。
【請求項２】
前記第１のノードは、前記信号を前記ループ状ネットワークに送信し、
前記他の複数ノードのそれぞれは、受信した前記信号に自身のエラー情報をセットして前記ループ状ネットワークの下流に順次転送する、
請求項１に記載のループ状ネットワーク・システム。
【請求項３】
前記第１のノードは、前記インターフェース・エラーの原因なっている送信側ノードと受信側ノードとを特定し、
前記送信側ノードは前記受信側ノードに前記ループ状ネットワークを介してデータを送信し、その送信に関するパラメータの調整を行う、
請求項１に記載のループ状ネットワーク・システム。
【請求項４】
前記第１のノードは、前記インターフェース・エラーの原因なっている送信側ノードと受信側ノードとを特定し、
前記受信側ノードは前記送信側ノードから前記ループ状ネットワークを介してデータを受信し、その受信に関するパラメータの調整を行う、
請求項１に記載のループ状ネットワーク・システム。
【請求項５】
前記他の複数のノードのそれぞれは、前記信号における異なる位置のエリアにエラー情報を順次セットし、
前記第１のノードは、エラー情報がセットされている位置及び前記ループ状ネットワークにおける各ノードの位置を示すマップを参照して、前記インターフェース・エラーの原因なっているノードを特定する、
請求項２に記載のループ状ネットワーク・システム。
【請求項６】
前記信号は、カウンタ・フィールドを有し、
前記他の複数のノードのそれぞれは、前記カウンタ・フィールドを参照して特定した前記信号内のエリアにそのエラー情報をセットし、さらに、前記カウンタ・フィールドの値をカウントして転送する、
請求項５に記載のループ状ネットワーク・システム。
【請求項７】
前記エラー情報は、前記他の複数のノードのそれぞれにおける、予め定められたエラーの過去の発生回数であり、
前記第１のノードは、前記発生回数が最も大きいノードを前記インターフェース・エラーの原因なっているノードと特定する、
請求項１に記載のループ状ネットワーク・システム。
【請求項８】
ループ状ネットワークに接続されるデータ記憶装置であって、
前記ループ状ネットワーク上のインターフェース・エラーを検出する検出部と、
前記インターフェース・エラーが発生したノードを特定するための信号を送信する送信部と、
戻ってきた前記信号に含まれる前記ループ状ネットワークに接続された他のデータ記憶装置の各エラー情報に基づいて、前記インターフェース・エラーの原因なっているデータ記憶装置を特定する特定部と、
を有するデータ記憶装置。
【請求項９】
ループ状ネットワークと、
前記ループ状ネットワークに接続された第１のノードと、
前記第１のノードの下流側において隣接する第２のノードと、を有し、
前記第１のノードは、前記第２のノードにテスト信号を送信し、
前記第１のノード及び／もしくは前記第２のノードは、前記テスト信号の通信において互いの通信に関するパラメータを調整する、
ループ状ネットワーク・システム。
【請求項１０】
前記第１のノードもしくは前記第２のノードは、互いのデータ通信において予め設定されたエラー基準を超えた場合に、前記テスト信号の通信によるパラメータ調整の開始を決定する、
請求項９に記載のループ状ネットワーク・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ループ状ネットワーク・システム及びデータ記憶装置に関し、特にループ状ネットワークにおけるエラーに対応した処理に関する。
【背景技術】
【０００２】
現在、記憶装置等のインターフェースにおいては、取り扱うデータの大容量化に伴い、データ転送の高速化、ホスト・コントローラ１台あたりの接続装置台数の増加、そして接続距離の増加が望まれている。これらの要求を満たすため、近年ファイバ・チャネル仲裁型ループ（Fibre Channel Arbitrated Loop：ＦＣ−ＡＬ）というインターフェースの利用が増加している。ＦＣ−ＡＬは、ループ上のシリアルインターフェースであり、データをシリアルに高速転送することができる。
【０００３】
ＦＣ−ＡＬにおいて、特定のデバイス（ノード）間の通信データは、ループ・ネットワーク上の他のデバイスを介して転送される。このため、ＦＣ−ＡＬを使用して構成されたネットワーク・システムにおいて、データ転送中にデバイスのいずれかでエラーが発生した場合、全てのデバイスにおいてエラーが発生したように見えてしまう。ＦＣ−ＡＬ上に多くのデバイスが存在する場合、どのデバイスがエラーの原因なのかを特定するためには１台ずつループから切り離さなければならない。これを人が行う場合には、大きな手間と時間が必要となる。
【０００４】
このため、エラーが発生したデバイスをホスト・コントローラが自動で特定する手法が、例えば特許文献１に開示されている。特許文献１におけるディスク・アレイ接続システムは、ＦＣ−ＡＬコンセントレータ内にイニシエータ・ホストと複数のターゲット・ディスク・アレイとを接続するためのスイッチ回路を有する。エラーが発生した場合に、ＦＣ−ＡＬループにおいてコンセントレータ内でスイッチを切替えることでループをいったん切断し、イニシエータ・ホストとディスク・アレイ・デバイスとを１台ずつ順に接続して調査していき、エラー発生デバイスを特定する。エラー発生デバイスを特定した後にそのデバイスをループから切離し、他のデバイスでループを構築する。
【特許文献１】特開平１１−３５３１２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述のように、ＦＣ−ＡＬ上のあるデバイスが、インターフェース・エラー、例えば、同期エラーを起因とするフレームＣＲＣエラーを検出したとき、ＦＣ−ＡＬ上に多くのデバイスが存在する場合、どのデバイスがエラーの原因なのかを特定するためには１台ずつループから切り離さなければならない。この作業を、特許文献１に示すようにホストを含む上位システムが行うか、あるいは人が行うことになる。しかし、上位システムが行うにしてもこの処理は複雑な仕組みと処理が必要となり、また、人が行う場合には多大な手間と時間を要する。
【０００６】
あるいは、ＦＣ−ＡＬに接続されるデバイスは、その内部のパラメータの設定値を固定で持っている。従って、各デバイス個々のハードウェアの差に対して対応できず、個々のハードウェアに最適なパラメータ設定値になっていない場合がある。これがＦＣ−ＡＬに接続されているデバイスから他のデバイスへの信号伝送における同期エラーのような、インターフェース・エラーの一因となることがわかった。
【課題を解決するための手段】
【０００７】
本発明の一態様は、ループ状ネットワークと、そのループ状ネットワークに接続された第１のノード及び他の複数のノードと、を有するループ状ネットワーク・システムである。前記第１のノードは、前記ループ状ネットワーク上のインターフェース・エラーを検出すると、そのインターフェース・エラーが発生したノードを特定するための信号を送信する。前記他の複数ノードのそれぞれは、受信した前記信号に自身のエラー情報をセットして送信する。前記第１のノードは、戻ってきた前記信号に含まれるエラー情報に基づいて前記インターフェース・エラーの原因なっているノードを特定する。これによって、エラー・ノードを効率的に特定することができる。
【０００８】
好ましくは、前記第１のノードは前記信号を前記ループ状ネットワークに送信し、前記他の複数ノードのそれぞれは受信した前記信号に自身のエラー情報をセットして前記ループ状ネットワークの下流に順次転送する。これによって、他の伝送路を使用することなくエラー・ノードを特定することができる。さらに、前記他の複数のノードのそれぞれは、前記信号における異なる位置のエリアにエラー情報を順次セットし、前記第１のノードは、エラー情報がセットされている位置及び前記ループ状ネットワークにおける各ノードの位置を示すマップを参照して、前記インターフェース・エラーの原因なっているノードを特定する。さらに、前記信号は、カウンタ・フィールドを有し、前記他の複数のノードのそれぞれは、前記カウンタ・フィールドを参照して特定した前記信号内のエリアにそのエラー情報をセットし、さらに、前記カウンタ・フィールドの値をカウントして転送する。これによって、エラー情報を収集する信号をシンプルな構成とすることができる。
【０００９】
好ましくは、前記第１のノードは前記インターフェース・エラーの原因なっている送信側ノードと受信側ノードとを特定し、前記送信側ノードは前記受信側ノードに前記ループ状ネットワークを介してデータを送信してその送信に関するパラメータの調整を行う。あるいは、前記第１のノードは、前記インターフェース・エラーの原因なっている送信側ノードと受信側ノードとを特定し、前記受信側ノードは前記送信側ノードから前記ループ状ネットワークを介してデータを受信してその受信に関するパラメータの調整を行う。これによって、エラー回復をすることができる。
【００１０】
前記エラー情報は、前記他の複数のノードのそれぞれにおける、予め定められたエラーの過去の発生回数であり、前記第１のノードは、前記発生回数が最も大きいノードを前記インターフェース・エラーの原因なっているノードと特定する。これによって、エラー・ノードをより正確に特定することができる。
【００１１】
本発明の他の態様は、ループ状ネットワークに接続されるデータ記憶装置であって、前記ループ状ネットワーク上のインターフェース・エラーを検出する検出部と、前記インターフェース・エラーが発生したノードを特定するための信号を送信する送信部と、戻ってきた前記信号に含まれる前記ループ状ネットワークに接続された他のデータ記憶装置の各エラー情報に基づいて前記インターフェース・エラーの原因なっているデータ記憶装置を特定する特定部を有するものである。これによって、エラー・ノードを効率的に特定することができる。
【００１２】
本発明の他の態様に係るループ状ネットワーク・システムは、ループ状ネットワークと、前記ループ状ネットワークに接続された第１のノードと、前記第１のノードの下流側において隣接する第２のノードと、を有する。前記第１のノードは、前記第２のノードにテスト信号を送信し、前記第１のノード及び／もしくは前記第２のノードは、前記テスト信号の通信において互いの通信に関するパラメータを調整する。これによって、二つのノード間のインターフェース・エラーの発生を抑制することができる。
【００１３】
前記第１のノードもしくは前記第２のノードは、互いのデータ通信において予め設定されたエラー基準を超えた場合に、前記テスト信号の通信によるパラメータ調整の開始を決定することができる。
【発明の効果】
【００１４】
本発明によれば、複数のノードが接続されたループ状ネットワーク・システムにおいて、効果的なエラー対応処理を行うことができる。
【発明を実施するための最良の形態】
【００１５】
以下に、本発明を適用可能な実施の形態が説明される。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略されている。以下においては、データ記憶装置の一例であるハードディスク・ドライブ（ＨＤＤ）を例として、本発明の実施形態を説明する。ノードの一例であるＨＤＤはループ状ネットワークに接続され、ループ状ネットワークと各ノードとが、ループ状ネットワーク・システムを構成する。
【００１６】
本形態の特徴点は、ループ状ネットワークに接続された複数のＨＤＤからインターフェース・エラーを起こしたＨＤＤを特定する処理、あるいはインターフェース・エラーを起こしたＨＤＤのエラー回復処理にあるが、最初に、ノードの一例であるＨＤＤの構成を説明する。図１は、ＨＤＤ１の全体構成を模式的に示すブロック図である。図１に示すように、ＨＤＤ１は、エンクロージャ１０内に、データを記憶するディスクの一例である磁気ディスク１１、ヘッド素子部１２、アーム電子回路（アームエレクトロニクス：ＡＥ）１３、スピンドル・モータ（ＳＰＭ）１４、ボイス・コイル・モータ（ＶＣＭ）１５、そしてアクチュエータ１６を備えている。
【００１７】
ＨＤＤ１は、エンクロージャ１０の外側に固定された回路基板２０を備えている。回路基板２０上には、リード・ライト・チャネル（ＲＷチャネル）２１、モータ・ドライバ・ユニット２２、ハードディスク・コントローラ（ＨＤＣ）とＭＰＵの集積回路（以下、ＨＤＣ／ＭＰＵ）２３、ＲＡＭ２４及びＥＥＰＲＯＭ２５などの各ＩＣを備えている。尚、各回路構成は一つのＩＣに集積すること、あるいは、複数のＩＣに分けて実装することができる。
【００１８】
ＳＰＭ１４は、そこに固定されている磁気ディスク１１を、所定の角速度で回転する。ＨＤＣ／ＭＰＵ２３からの制御データに従って、モータ・ドライバ・ユニット２２がＳＰＭ１４を駆動する。本例の磁気ディスク１１は、データを記録する記録面を両面に備え、各記録面に対応するヘッド素子部１２が設けられている。各ヘッド素子部１２はスライダ（不図示）に固定されている。また、スライダは、ヘッド移動機構の一例であるアクチュエータ１６に固定されている。データのリード及びライト時において、スライダは回転する磁気ディスク１１上を浮上する。アクチュエータ１６はＶＣＭ１５に連結され、回動軸を中心に回動することによって、ヘッド素子部１２（及びスライダ）を磁気ディスク１１上において半径方向に移動する。
【００１９】
モータ・ドライバ・ユニット２２は、ＨＤＣ／ＭＰＵ２３からの制御データに従ってＶＣＭ１５を駆動する。ヘッド素子部１２には、典型的には、ライト・データに応じて電気信号を磁界に変換するライト素子及び磁気ディスク１１からの磁界を電気信号に変換するリード素子を備えている。なお、磁気ディスク１１は、１枚以上あればよく、記録面は磁気ディスク１１の片面あるいは両面に形成することができる。また、本発明をリード素子のみを備えるデータ記憶装置に適用することができる。
【００２０】
ＡＥ１３は、複数のヘッド素子部１２の中からデータ・アクセスが行われる１つのヘッド素子部１２を選択し、選択されたヘッド素子部１２により再生される再生信号を一定のゲインで増幅（プリアンプ）し、ＲＷチャネル２１に送る。また、ＲＷチャネル２１からの記録信号を選択されたヘッド素子部１２に送る。ＲＷチャネル２１は、ライト処理において、ＨＤＣ／ＭＰＵ２３から供給されたライト・データをコード変調し、更にコード変調されたライト・データをライト信号に変換してＡＥ１３に供給する。リード処理において、ＲＷチャネル２１はＡＥ１３から供給されたリード信号を一定の振幅となるように増幅し、取得したリード信号からデータを抽出し、デコード処理を行う。読み出されるデータは、ユーザ・データとサーボ・データを含む。デコード処理されたリード・データは、ＨＤＣ／ＭＰＵ２３に供給される。
【００２１】
ＨＤＣ／ＭＰＵ２３において、ＭＰＵはＲＡＭ２４にロードされたマイクロ・コードに従って動作する。ＨＤＤ１の起動に伴い、ＲＡＭ２４には、ＭＰＵ上で動作するマイクロ・コードの他、制御及びデータ処理に必要とされるデータが磁気ディスク１１あるいはＨＤＣ／ＭＰＵ２３内のＲＯＭなどからロードされる。また、必要な各パラメータが、ＥＥＰＲＯＭ２５からＲＡＭ２４にロードされる。ＨＤＣはロジック回路として構成され、ＭＰＵと一体的に様々な処理を実行する。例えば、ＨＤＣ／ＭＰＵ２３は、コマンド実行順序の管理、ヘッド素子部１２のポジショニング制御、インターフェース制御、ディフェクト管理などのデータ処理に関する必要な処理を行う。本形態のＨＤＣ／ＭＰＵ２３は、特に、ＨＤＤ１が参加するループ状ネットワークにおけるインターフェース処理及び内部処理を実行する。
【００２２】
次に、本発明のループ状ネットワーク・システムを、図２に示すような、ファイバ・チャネル・アービトレイティッドループ・システム（ＦＣ−ＡＬシステム）を利用して説明する。図２はファイバ・チャネルの同一ループ上に、ノードとして複数台のＨＤＤ１(ＨＤＤ−Ａ１ａ、ＨＤＤ−Ｂ１ｂ、ＨＤＤ−Ｃ１ｃ、・・・、ＨＤＤ−Ｎ１ｄ、ＨＤＤ−Ｏ１ｅ、・・・)が存在する状態を示している。各ＨＤＤは、ループ状ネットワークであるＦＣ−ＡＬにおいてデータ通信を行うポート（Port）を有しており、各ポートはトランスミッタＴｘ及びレシーバＲｘを有している。各ＨＤＤ内のＨＤＣ／ＭＰＵ２３が、ポートとして機能する。
【００２３】
ＦＣ−ＡＬシステムにおいては、ループ状に接続されたノードとノードとが調停（Arbitration）信号をやりとりすることによって１：１の調停が成立し、それらノードのポートがオープンとなって通信が行われる。例えば、図２に示すＨＤＤ−Ａ１ａとＨＤＤ−Ｎ１ｄとの通信であれば、ＨＤＤ−Ａ１ａから送信された調停信号がＨＤＤ−Ｂ１ｂ、ＨＤＤ−Ｃ１ｃ、・・・を通ってＨＤＤ−Ｎ１ｄに到達し、更に、ＨＤＤ−Ｏ１ｅ、・・・を通ってＨＤＤ−Ａ１ａに戻った時点でＨＤＤ−Ａ１ａとＨＤＤ−Ｎ１ｄとの間に調停が成立する。ＨＤＤ−Ａ１ａとＨＤＤ−Ｎ１ｄとのポートがオープンとなり、データ通信が可能となる。ＦＣ−ＡＬにおいては、このようにデータ転送方向は一方向となる。
【００２４】
この様なＦＣ−ＡＬシステムにおいて、ＨＤＤ−Ａ１ａとＨＤＤ−Ｎ１ｄとの間で調停が成立し、ＨＤＤ−Ａ１ａからＨＤＤ−Ｎ１ｄへユーザ・データを送信する場合を考える。ＨＤＤ−Ａ１ａからＨＤＤ−Ｎ１ｄへデータを送信において、ユーザ・データは、ＨＤＤ−Ｂ１ｂ、ＨＤＤ−Ｃ１ｃ、・・・を通ってＨＤＤ−Ｎ１ｄに到達する。さらに、ＨＤＤ−Ｎ１ｄは、ユーザ・データの受信に応答して、応答信号をＨＤＤ−Ａ１ａに送信する。応答信号は受信したデータの状態によって異なり、ＨＤＤ−Ｏ１ｅ、・・・を通ってＨＤＤ−Ａ１ａに到達する。
【００２５】
ＨＤＤ−Ａ１ａとＨＤＤ−Ｎ１ｄとの間のデータ通信において、ネットワーク上のエラーのために、正常にデータが転送されない場合がある。ここで、ノード間におけるユーザ・データや制御信号の伝送におけるエラーをインターフェース・エラーと呼ぶ。例えば、ＨＤＤ−Ａ１ａからＨＤＤ−Ｎ１ｄまでの間に含まれる各ノード間に同期のずれがあると、ＨＤＤ−Ａ１ａから送信されたデータのビットが、ノード間の同期エラーによって、ＨＤＤ−Ｎ１ｄに到達するまでに変化することがある。転送データにはＣＲＣが付加されており、ＨＤＤ−Ｎ１ｄはそのＣＲＣを参照することで、フレームＣＲＣエラーが起き、不正確なデータを受信したことを検出することができる。
【００２６】
また、ＨＤＤ−Ｎ１ｄからＨＤＤ−Ａ１ａまでの間に含まれる各ノード間に同期のずれがあると、ＨＤＤ−Ａ１ａから送信されたデータがＨＤＤ−Ｎ１ｄに正確に伝送された場合でも、ＨＤＤ−Ｎ１ｄからＨＤＤ−Ａ１ａに対して送信される応答信号のビットがＨＤＤ−Ａ１ａに到達するまでにノード間の同期エラーによって変化し、認識できない可能性もある。
【００２７】
本形態のＦＣ−ＡＬシステムにおいては、特定のノードのポートがインターフェース・エラーを検出すると、そのポートが、エラーが発生したノードを特定するための信号を送信する。この信号は、各ノード（ポート）のエラー情報を収集する役割を有する。具体的には、各ノードのポートは、転送された信号に自身のエラー情報をセットして下流側に転送する。最初に上記のエラー情報を収集する信号を送信したポートは、戻ってきた信号のエラー情報を解析し、そのエラー情報に基づいてインターフェース・エラーを起こしたポートを特定する。
【００２８】
ここで、ＦＣ−ＡＬシステムにおいて使用されている同期（Sync）信号のエラー数は、各ポートがセットするエラー情報として、好ましい例である。ＦＣ−ＡＬシステムにおいては、各ポート間で通信が行われていない場合に、待機（Idle）信号が伝送路上を伝送されている。この待機信号には信号の同期を確認するための同期（Sync）信号が含まれている。
【００２９】
各ポートは待機信号を受信する度に、この同期信号が正しく受信できているかをチェックする。即ち、同期信号としての所定のビット列が、受信した待機信号の中に同期信号として含まれているか否かをチェックする。そして、各ポートは、同期信号を正しく受信できていない回数のカウント値（Loss of Sync）をエラー情報としてＲＡＭ２４等の内部の記憶媒体に保持している。以下においては、エラー情報としてこのカウント値（Loss of Sync）を使用する例について説明する。
【００３０】
本形態においては、さらに、インターフェース・エラーの原因と特定された二つのポート間において、ＦＣ−ＡＬ上の通信に関するパラメータ調整を行う。具体的には、送信側ポートは送信に関するパラメータを調整し、受信側ポートは受信に関するパラメータを調整する。これによって、特定されたポート間におけるインターフェース・エラーの再発を抑制することができる。通信に関するパラメータとしては、例えば、EqualizerやPre-emphasis等、ポートが行う波形調整に関するパラメータが挙げられる。
【００３１】
図３、図４に示す一連のフローチャートを用いて、本形態に係るエラー対応処理の具体的な例について説明する。図３におけるステップＳ１０１からステップＳ１０５までが、エラー・ノードの特定処理に関し、それ以降のステップは、エラー・ノード間におけるパラメータ調整処理に関する。本例においては、ＨＤＤ−Ｎ１ｄがインターフェース・エラーを検出し、エラー・ノードとして、ＨＤＤ−Ｂ１ｂとＨＤＤ−Ｃ１ｃとが特定される。なお、以下における各ＨＤＤの処理は、ＨＤＤ内のＨＤＣ／ＭＰＵ２３が実行する。ＨＤＤ−Ｎ１ｄにおいて、ＨＤＣ／ＭＰＵ２３は、インターフェース・エラーを検出する検出部及びエラー・ノードを特定する特定部として機能する。
【００３２】
図３に示すように、インターフェース・エラーをファイバ・チャネル上のＨＤＤ−Ｎ１ｄが検出（Ｓ１０１）する。例えば、上記例のように、ＨＤＤ−Ａ１ａから送信されたデータにおいてＨＤＤ−Ｎ１ｄがフレームＣＲＣエラーを検出すると、ＨＤＤ−Ｎ１ｄは、各ノードのポートが持っているエラー情報を収集するためのエラー情報収集信号Ａ（以下、信号Ａ）をＦＣ−ＡＬの下流に送信する（Ｓ１０２）。
【００３３】
この信号Ａ３０１の基本構造を図５に示す。信号Ａ３０１は、エラー情報収集信号であることを意味する識別子３０２、有効なエラー情報の個数を示すカウンタ値を格納するフィールド３０３、および各デバイスがエラー情報を入れるためのエリア３０４を有する。エラー情報を入れるためのエリア３０４はノード毎にあり、ＦＣ−ＡＬ上に存在し得る最大数分の情報（最大エリア数）を格納することができる。
【００３４】
各ポートは、信号Ａ３０１を受信すると、自身が持っているエラー情報（Loss of Sync）を、エラー情報を入れるためのエリア３０４内における空いているエリアに、順次格納していく。具体的には、空いているエリアの内の最も順序の小さいエリアに格納する。各ポートは、有効なエラー情報の個数を示すカウンタ３０３の値を参照して、エラー情報を格納するエリアを決定する。さらに、各ポートは、エラー情報を格納した後に、有効なエラー情報の個数を示すカウンタ３０３の値をインクリメントして、次のポートに転送して行く（Ｓ１０３）。
【００３５】
例えばエラーを検出したＨＤＤ−Ｎ１ｄから送信された信号Ａ３０１はＨＤＤ−Ｎ１ｄの下流のＨＤＤ−Ｏ１ｅに受け取られる。このとき、エラー情報の個数を示すカウンタ３０３の値はゼロである。ＨＤＤ−Ｏ１ｅは受信した信号Ａ３０１のカウンタ３０３の値がゼロなので、エラー情報を入れるエリア３０４の最初（１番目）のエリア３０４ａに、自身のエラー情報を格納する。エラー情報を有効なエラー情報の個数を示すエリア３０３の値を１つ増やして次のポートに送信する。次のポートは、エリア３０４の２番目のエリア３０４ｂに自身のエラー情報を格納する。さらに、有効なエラー情報の個数を示すカウンタ３０３の値をインクリメントして２とし、次の下段のポートに送信する。このようにして、最終的にはＦＣ−ＡＬ上の全ノードのエラー情報が信号Ａ３０１に入り、ＨＤＤ−Ｎ１ｄに戻ってくる（Ｓ１０４）。
【００３６】
ＨＤＤ−Ｎ１ｄは信号Ａ３０１のエラー情報とループ初期化の時に入手したポジション・マップから、エラー情報であるLoss of Syncのカウント値が一番大きいポートのネットワーク・アドレスを特定する（Ｓ１０５）。信号Ａはネットワーク上のポート順番に従って、各エラー情報を格納している。ポジション・マップは、各ポートのネットワーク・アドレスとＦＣ−ＡＬ上の位置とを対応づけるマップである。これらから、ＨＤＤ−Ｎ１ｄは、Loss of Syncのカウント値が一番大きいポートのネットワーク・アドレスを特定することができる。以下において、ＨＤＤ−Ｃ１ｃのエラー・カウント（Loss of Sync）が一番大きい例について、以下説明する。
【００３７】
ＨＤＤ−Ｃ１ｃのエラー・カウントが一番大きい原因としては、ＨＤＤ−Ｃ１ｃのレシーバＲｘ２０２、あるいは、その上流のＨＤＤ−Ｂ１ｂのトランシーバＴｘ２０１の送受信に関するパラメータ設定が適切ではない可能性がある。ＨＤＤ−Ｎ１ｄは、ループ初期化処理において入手したポジション・マップから、ＨＤＤ−Ｃ１ｃの上流の隣接ノードとしてＨＤＤ−Ｂ１ｂを特定することができる。ＨＤＤ−Ｎ１ｄはＨＤＤ−Ｃ１ｃの上流のＨＤＤ−Ｂ１ｂに対して、エラー・ノード指定信号Ｂ（以下、信号Ｂ）４０１を送信する（Ｓ１０６）。
【００３８】
信号Ｂは、ＨＤＤ−Ｂ１ｂのＴｘ２０１、もしくはＨＤＤ−Ｃ１ｃのＲｘ２０２に問題がある疑いがあることを示し、それらの間でエラー回復処理を開始することを指示する命令となる。信号Ｂ４０１の基本構造を図６に示す。信号Ｂ４０１は、当該信号であることを意味する識別子４０２、Ｔｘに問題がある可能性があるノード（ポート）のアドレス４０３、Ｒｘに問題がある可能性があるノードのアドレス４０４を有する。
【００３９】
Ｔｘに問題があるノードのアドレス４０３が示すノード、本例においてＨＤＤ−Ｂ１ｂがこの信号Ｂ４０１を受信すると、ＨＤＤ−Ｂ１ｂは信号Ｂ内のＲｘに問題があるノードのアドレス３０４のノード、本例においてＨＤＤ−Ｃ１ｃに対して、パラメータ調整を開始することを示す信号Ｃ（以下、信号Ｃ）を送る（Ｓ１０７）。この信号Ｃは、ＨＤＤ−Ｂ１ｂが送信側のパラメータ調整を開始することを示し、識別子のみで構成する。
【００４０】
ＨＤＤ−Ｃ１ｃから信号Ｃに対する応答信号を受信すると、ＨＤＤ−Ｂ１ｂは、EqualizerやPre-emphasis等の送信に関するパラメータを、予め決められた設定値の組み合わせに変更して、テスト信号Ｄを送信する（Ｓ１０８）。ＨＤＤ−Ｂ１ｂは、予め複数の組み合わせを有している。なお、テスト信号Ｄも、識別子のみで構成する。ＨＤＤ−Ｃ１ｃはこのテスト信号Ｄを正常に認識できた場合、応答信号ＥをＨＤＤ−Ｂ１ｂに送信する。この応答信号Ｅも識別子のみで構成する。
【００４１】
ＨＤＤ−Ｂ１ｂはテスト信号Ｄを送信後、予め設定された時間以内にＨＤＤ−Ｃ１ｃから応答信号Ｅを受け取るかどうかをチェックする（Ｓ１０９）。所定時間内に応答信号Ｅを受け取らなければ（Ｓ１０９におけるＮ）、ＨＤＤ−Ｂ１ｂはこの送受信に関するパラメータの設定は不適と判断し、別のパラメータ・セットに変えて、テスト信号Ｄを再度送信する。所定時間内に応答信号Ｅを受け取った場合（Ｓ１０９におけるＹ）、ＨＤＤ−Ｂ１ｂは、その時のパラメータ・セットの設定をＲＡＭ２４上の候補テーブルに登録しておく（Ｓ１１０）。この動作を繰り返してＨＤＤ−Ｃ１ｃから応答信号Ｅが戻ってくるパラメータ・セットを探す。このＨＤＤ−Ｂ１ｂのＴｘ２０１の調整は、設定可能なパラメータ・セット全てについて実施する（Ｓ１１１）。
【００４２】
複数の組み合わせの設定で応答信号Ｅを受信した場合は（Ｓ１１２におけるＹ）、ＨＤＤ−Ｂ１ｂは、候補テーブルに登録されているパラメータ・セットの内、予め設定された基準に従った最適パラメータ・セットを選択する（Ｓ１１３）。例えば、候補パラメータ・セットの内、中間のパラメータ値を有するパラメータ・セットを選択する。例えば、特定のパラメータについて連続する複数の値が存在する場合、最大最小値以外の値を有するパラメータ・セットを選択する。また、好ましくは、最大値と最小値の中心に相当する値を選択する。例えば、パラメータ・セットが１、２、３、・・・、ｎ、・・・とあり、パラメータ・セットの番号に従って各パラメータが単調増加もしくは単調減減少するとする。パラメータ・セットのうち３、４、５でテスト信号Ｄが正常に認識できた場合には、パラメータ・セット４を採用する。
【００４３】
この好ましいパラメータの採用方法の例について、図７を用いて更に説明する。図７は、変更すべきパラメータがパラメータ１とパラメータ２との２つである場合に、（パラメータ１、パラメータ２）とすると、（ａ_1、ａ_2）、（ｂ_1、ｂ_2）、（ｃ_1、ｃ_2）、（ｄ_1、ｄ_2）で囲まれる範囲５０１においてＨＤＤ−Ｃ１ｃから信号Ｅが戻ってきた場合を示している。この様な場合に、範囲５０１の略中心であり、パラメータ１、パラメータ２の値共に範囲５０１の境界までマージンが最も大きい（ｅ_1、ｅ_2）のパラメータの組み合わせ５０２を用いる。ＨＤＤ−Ｂ１ｂは、選択したパラメータ・セットをＥＥＰＲＯＭ２５に保存する。
【００４４】
ＨＤＤ−Ｂ１ｂの送受信に関するパラメータで設定可能な組み合わせの全てが試されてもＨＤＤ−Ｃ１ｃから応答信号Ｅを受信しなかった場合（Ｓ１１２におけるＮ）、ＨＤＤＤ−Ｃ１ｃのＲｘ２０２に問題がある可能性が高い。そこで、ＨＤＤ−Ｂ１ｂは、送信に関するパラメータを調整前のもとの設定に戻し（Ｓ１１４）、ＨＤＤ−Ｃ１ｃに送受信に関するＲｘパラメータ調整を開始させることを指示する信号Ｆを送信する（Ｓ１１５）。この受信側パラメータ調整開始信号Ｆも識別子のみで構成する。ＨＤＤ−Ｃ１ｃはこの信号Ｆを受信すると、自身の送受信に関するＲｘパラメータの設定を変更して（Ｓ１１６）、正常に信号を受信できるパラメータ設定を探す。
【００４５】
ＨＤＤ−Ｃ１ｃのＲｘパラメータの最適化においては、ＨＤＤ−Ｃ１ｃがパラメータの組み合わせを変えながら、ＨＤＤ−Ｂ１ｂからの信号を正確に受信できているかどうかをチェック（Ｓ１１７）し、受信できた場合（Ｓ１１７におけるＹ）は、その時のパラメータ・セットの設定を候補テーブルに登録する（Ｓ１１８）。ここで、ＨＤＤ−Ｃ１ｃが受信するＨＤＤ−Ｂ１ｂからの信号は特別な信号を必要とせず、テスト信号として、Idle信号のような通常のＦＣ−ＡＬのカレント・フィル・ワードを使用することができる。
【００４６】
上流のＴｘ２０１のパラメータ調整の場合は、下流のノードからの応答信号Ｅによって正確に送信されたか否かを判断する。受信した応答信号Ｅがどのパラメータ設定において送信された信号に対する応答信号か区別する必要があるため、特別なテスト信号Ｄを用いて、パラメータ毎に識別子を付加する。
【００４７】
しかしながら、Ｒｘ２０２の場合は、パラメータを変更するノード自身が、信号を受信できたか否か判断できるため、Ｔｘ２０１の場合のように、パラメータ・セット毎の識別子等が不要であり、テスト信号としてIdle信号等を受信するのみで良い。なお、Idle信号等のカレント・フィル・ワードとは異なるテスト用の信号を用いても良い。
【００４８】
このような、パラメータ動作を繰り返して受信できるパラメータ・セットの設定を変更出来る全設定について実施する（Ｓ１１９）。複数の候補パラメータ・セットが存在する場合、ＨＤＤ−Ｃ１ｃは、上記のＨＤＤ−Ｂ１ｂと同様の手法で、最適なパラメータ・セットを選択する。選択したパラメータ・セットは、ＥＥＰＲＯＭ２５に保存される。ＨＤＤ−Ｃ１ｃの送受信に関するパラメータ調整が完了すると、ＨＤＤ−Ｃ１ｃが調整完了信号Ｇを送信（Ｓ１２０）し、ＦＣ−ＡＬ上の全ノードに調整作業が完了したことを知らせる。
【００４９】
以上のように、本実施形態により、ファイバ・チャネル上のデバイス自信がエラーの原因となっているデバイスを特定すると共に、エラー原因となっている２台のデバイス間でデバイス内部のパラメータの適正値を学習し、各デバイス個々に適正な値を設定することができる。
【００５０】
ここで、上記のＨＤＤ−Ｂ１ｂとＨＤＤ−Ｃ１ｃとの間におけるパラメータ調整を、ＨＤＤ−Ｎ１ｄによるエラー・ノード特定処理とは独立に行ってもよい。例えば、ＨＤＤ−Ｃ１ｃが、Loss of Syncのカウント値が予め設定された基準値を超えたことを以って、パラメータ調整の開始を決定する。この場合、エラー原因となっているノードは自ノードであるので、信号Ａ３０１を発信することなく、パラメータ調整を開始することを示す信号を発信すれば良い。
【００５１】
具体的には、Loss of Syncのカウント値が基準値を超えると、ＨＤＤ−Ｃ１ｃは、ＨＤＤ−Ｂ１ｂにパラメータ調整処理の開始を指示する信号を送信する。ＨＤＤ−Ｂ１ｂとＨＤＤ−Ｃ１ｃとは、上述の処理方法と同様に、それぞれの送受信パラメータの調整を実行する。なお、設計によって、ＨＤＤ−Ｂ１ｂが所定基準に従ってパラメータ調整処理の開始を決定するように構成してもよい。
【００５２】
なお、上記の説明においては、Ｒｘ２０２のパラメータ設定の調整を開始する際、Ｔｘ２０１側のパラメータ設定を元の設定値に戻してから行っているが、Ｔｘ２０１とＲｘ２０２との各パラメータ・セットで設定可能な組み合わせを全て試してもよい。この場合、Ｔｘ２０１側のパラメータで設定可能な組み合わせの全てが試された後、Ｒｘ２０２のパラメータ・セットを変更して、再度信号Ｄを送信しながらＴｘ２０１側のパラメータの調整を実施する。このようにしてＴｘ２０１とＲｘ２０２とのパラメータ設定の全ての組み合わせについて試すことができる。
【００５３】
また、上記の説明においては、図２に示すように一の伝送路を有するＦＣ−ＡＬシステムを例として説明したが、二重以上の多重化された伝送路を有するＦＣ−ＡＬシステム、あるいは、ＦＣ−ＡＬ以外のプロトコルに従う伝送路を有するシステムに用いることもできる。特に、エラー箇所の特定及びエラーの回復処理を、エラーが検出された伝送路とは異なる伝送路を通して行うことにより、より確実にエラー箇所の特定及びエラーの回復を図ることができる。
【００５４】
また、上記の説明においては、同期信号が正しく受信できていない回数のカウント値（Loss of Sync）をエラー情報としてＲＡＭ２４やＥＥＰＲＯＭ２５等の内部の記憶媒体に保持している例を説明したが、これ以外にも、受信されるべきタイミングにおいて信号が受信されない回数のカウント値（Loss of Signal）をエラー情報としても良い。上記例は、複数のパラメータからなるパラメータ・セットを変更したが、一つのパラメータのみを調整するようにしてもよい。
【００５５】
以上、本発明を好ましい実施形態を例として説明したが、本発明が上記の実施形態に限定されるものではない。当業者であれば、上記の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。例えば、本発明は、データ記憶装置をノードとするループ状ネットワーク・システムに好適であるが、他の装置をループ状ネットワークにノードとして接続することができる。
【図面の簡単な説明】
【００５６】
【図１】本発明の実施形態に係るＨＤＤの全体構成を模式的に示すブロック図である。
【図２】本発明の実施形態に係るループ状ネットワーク・システムを表した図である。
【図３】本発明の実施形態に係るエラー処理を示すフローチャートである。
【図４】本発明の実施形態に係るエラー処理を示すフローチャートである。
【図５】本発明の実施形態に係るエラー情報収集信号の構造を示す図である。
【図６】本発明の実施形態に係るエラー・ノード特定信号の構造を示す図である。
【図７】本発明の実施形態に係るパラメータ調整における好適値の決定方針を示す図である。
【符号の説明】
【００５７】
１、１ａ、１ｂ、１ｃ、１ｄ  ＨＤＤ、１０  エンクロージャ、１１  磁気ディスク
１２  ヘッド素子部、１３  アーム・エレクトロニクス、１４  スピンドル・モータ
１５  ボイス・コイル・モータ、１６  アクチュエータ、２０  回路基板
２１  リード・ライト・チャネル、２２  モータ・ドライバ・ユニット
２３  ハードディスク・コントローラ／ＭＰＵ、２４  ＲＡＭ、２５  ＥＥＰＲＯＭ
２０１  トランシーバ、２０２  レシーバ、３０１  エラー情報収集信号
４０１  エラー・ノード指定信号
【図１】
2008042851.tif 000003
【図２】
2008042851.tif 000004
【図３】
2008042851.tif 000005
【図４】
2008042851.tif 000006
【図５】
2008042851.tif 000007
【図６】
2008042851.tif 000008
【図７】
2008042851.tif 000009