(57)【要約】【課題】デバイス部品を活性交換した場合の障害を防止すること。【解決手段】インタフェース切替部１０は、デバイス部品６０が接続されたインタフェース部１１を備える。インタフェース切替部１０は、デバイス部品６０の活性除去を検出すると、インタフェース部１１とインタフェース切替部１０が接続されるインタフェース部２１との間の信号経路を遮断する。インタフェース切替部１０は、インタフェース部１１に新たに活性挿入されたデバイス部品７０に対する診断が完了すると、診断結果に応じてインタフェース部１１，２１間の信号経路の遮断を解除する。制御部２０は、インタフェース部２１を備える。制御部２０は、インタフェース切替部１０が無応答状態から応答可能状態に遷移したことによりデバイス部品７０の存在を検出し、デバイス部品７０に対する初期化処理を実行する。【選択図】図１
2020024558.tif 000002
【特許請求の範囲】
【請求項１】
第１のデバイス部品が接続された第１のインタフェース部を備え、前記第１のデバイス部品の活性除去を検出すると、前記第１のインタフェース部と自身が接続される第２のインタフェース部との間の信号経路を遮断し、前記第１のインタフェース部に新たに活性挿入された第２のデバイス部品に対する診断が完了すると、診断結果に応じて前記信号経路の遮断を解除するインタフェース切替部と、
前記第２のインタフェース部を備え、前記インタフェース切替部が無応答状態から応答可能状態に遷移したことにより前記第２のデバイス部品の存在を検出し、前記第２のデバイス部品に対する初期化処理を実行する制御部と、
を有する情報処理装置。
【請求項２】
前記インタフェース切替部は、前記第２のインタフェース部と接続される第３のインタフェース部を備え、前記第３のインタフェース部と前記第２のインタフェース部との間の通信を強制停止させることで、前記信号経路を遮断する、
請求項１記載の情報処理装置。
【請求項３】
前記インタフェース切替部に接続され、前記第２のデバイス部品の診断を行う診断部を更に有し、
前記インタフェース切替部は、前記信号経路を遮断すると、前記第１のインタフェース部と前記第３のインタフェース部とを接続するパスを、前記第１のインタフェース部と前記診断部とを接続するパスに切り替える、
請求項２記載の情報処理装置。
【請求項４】
前記インタフェース切替部は、前記診断の結果が正常である場合に前記信号経路の遮断を解除し、前記診断の結果が異常である場合に前記信号経路の遮断を維持する、
請求項１記載の情報処理装置。
【請求項５】
前記制御部を介して前記第２のデバイス部品にアクセスする演算部を更に有し、
前記制御部は、前記第２のデバイス部品の存在を検出すると、前記演算部に割り込みを通知し、前記演算部による初期化の指示に応じて、前記初期化処理を実行する、
請求項１記載の情報処理装置。
【請求項６】
第１のデバイス部品が接続された第１のインタフェース部を備えるインタフェース切替部が、前記第１のデバイス部品の活性除去を検出すると、前記第１のインタフェース部と自身が接続される第２のインタフェース部との間の信号経路を遮断し、前記第１のインタフェース部に新たに活性挿入された第２のデバイス部品に対する診断が完了すると、診断結果に応じて前記信号経路の遮断を解除し、
前記第２のインタフェース部を備える制御部が、前記インタフェース切替部が無応答状態から応答可能状態に遷移したことにより前記第２のデバイス部品の存在を検出し、前記第２のデバイス部品に対する初期化処理を実行する、
制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置および制御方法に関する。
【背景技術】
【０００２】
現在、情報処理装置には種々のデバイスが接続されている。情報処理装置には、デバイスの故障時などに、当該デバイスを代替のデバイスと容易に交換可能にする仕組みを備えるものがある。
【０００３】
例えば、周辺電子回路基板の増設あるいは抜き取りを行うとき、当該基板を搭載する装置の電源を切らずに周辺電子回路基板の挿抜を行えるようにする活線挿抜方法の提案がある。提案の活線挿抜方法では、入力手段から命令を発して制御基板から周辺電子回路基板へのデータ授受を禁止し、データバスを使用しない状態として周辺電子回路基板の活線挿抜を行う。
【０００４】
また、障害の発生したボードを抜き差し交換する場合に、新たに挿入されたボード自体が自動で自己診断を行い、自己診断結果を制御ボードに通知し、自己診断結果に基づいて制御ボードにおいて障害回復確認を行うオンライン保守方法の提案もある。
【０００５】
なお、バスマスタとなる論理カードを含む複数の論理カードがバックパネル上のバスラインにコネクタを介して共通接続される共通バスシステムにおける論理カードの増設方法の提案もある。提案の増設方法では、バスマスタとなる論理カードが、システム動作中に、新たな論理カードが共通バスに接続されたことを検出する。すると、バスマスタとなる論理カードが、自身を含む他の論理カードにより発行されるバス要求を待機させ、新たな論理カードの試験を行い正常であることが確認された場合のみ当該論理カードを共通バスに組み込む。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開昭６２−１４４９９号公報
【特許文献２】特開平７−２８６５８号公報
【特許文献３】特開２０００−２９８６２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
情報処理装置に新たに接続されるデバイス部品には、初期不良があることがある。活性交換により初期不良のあるデバイス部品が情報処理装置に組み込まれると、デバイス部品の交換後の運用中に、初期不良を要因とするデバイス部品へのアクセス異常が生じ、情報処理装置の性能が低下することがある。
【０００８】
これに対し、例えば上記提案のように新たに挿入されたボードの自己診断結果を制御ボードにより確認する、または、バスマスタとなる論理カードが新たな論理カードの試験を行うことが考えられる。しかし、上記提案の方法では、新たに挿入されたボードと制御ボートとの共通バスを介した通信や、新たな論理カードとバスマスタとなる論理カードとの共通バスを介した通信が生じる。このため、既存のデバイス部品に影響を及ぼす可能性がある。
【０００９】
１つの側面では、本発明は、デバイス部品を活性交換した場合の障害を防止する情報処理装置および制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
１つの態様では、情報処理装置が提供される。情報処理装置は、インタフェース切替部と制御部とを有する。インタフェース切替部は、第１のデバイス部品が接続された第１のインタフェース部を備え、第１のデバイス部品の活性除去を検出すると、第１のインタフェース部と自身が接続される第２のインタフェース部との間の信号経路を遮断し、第１のインタフェース部に新たに活性挿入された第２のデバイス部品に対する診断が完了すると、診断結果に応じて信号経路の遮断を解除する。制御部は、第２のインタフェース部を備え、インタフェース切替部が無応答状態から応答可能状態に遷移したことにより第２のデバイス部品の存在を検出し、第２のデバイス部品に対する初期化処理を実行する。
【００１１】
また、１つの態様では、制御方法が提供される。
【発明の効果】
【００１２】
１つの側面では、デバイス部品を活性交換した場合の障害を防止できる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態の情報処理装置を示す図である。
【図２】第２の実施の形態のサーバ装置のハードウェア例を示すブロック図である。
【図３】接続回路のハードウェア例を示すブロック図である。
【図４】ＩＦ切替回路とＨＤＤコントローラとの接続例を示す図である。
【図５】接続回路の制御例を示す図である。
【図６】接続回路の制御例（続き）を示す図である。
【図７】ＩＦ切替回路の処理例を示すフローチャートである。
【図８】接続回路を介する通信経路の例を示す図である。
【図９】初期化シーケンスの例（正常時）を示す図である。
【図１０】初期化シーケンスの例（異常時）を示す図である。
【図１１】ＨＤＤ挿入時の制御の比較例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本実施の形態について図面を参照して説明する。
［第１の実施の形態］
第１の実施の形態を説明する。
【００１５】
図１は、第１の実施の形態の情報処理装置を示す図である。
情報処理装置１は、インタフェース切替部１０、制御部２０、演算部３０、メモリ４０および診断部５０を有する。情報処理装置１では、デバイス部品６０の活性交換が可能である。活性交換とは、情報処理装置１が稼働した状態で、デバイス部品６０を新たな（代替の）デバイス部品７０に交換することを示す。例えば、情報処理装置１のユーザは、情報処理装置１を稼働したまま、デバイス部品６０をデバイス部品７０に交換する作業を行える。情報処理装置１が稼働した状態でデバイス部品６０を情報処理装置１から取り外すことを、活性除去や活性抜去と言うことがある。情報処理装置１が稼働した状態でデバイス部品７０を情報処理装置１に取り付けることを、活性挿入と言うことがある。
【００１６】
デバイス部品６０，７０としては、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などの記憶デバイスが考えられる。デバイス部品６０，７０は、ネットワークアダプタやＲＡＭ（Random Access Memory）などの他の種類のデバイスでもよい。
【００１７】
インタフェース切替部１０は、デバイス部品６０（またはデバイス部品７０）と制御部２０との間に介在し、デバイス部品６０（またはデバイス部品７０）と制御部２０との間で信号を中継する。インタフェース切替部１０は、診断部５０にも接続される。インタフェース切替部１０は、デバイス部品６０と診断部５０との間で信号を中継することもある。インタフェース切替部１０は、インタフェース部１１，１２および接続制御部１３を有する。
【００１８】
インタフェース部１１は、デバイス部品６０またはデバイス部品７０と接続される。例えば、インタフェース部１１およびデバイス部品６０，７０は、それぞれ接続用のコネクタを有する。インタフェース部１１のコネクタとデバイス部品６０（またはデバイス部品７０）のコネクタとが直接、または、所定のケーブルを介して結合されることで、両者が接続される。
【００１９】
インタフェース部１２は、制御部２０のインタフェース部２１と接続される。インタフェース部１２，２１は、それぞれ接続用のコネクタを有する。インタフェース部１２のコネクタとインタフェース部２１のコネクタとが直接、または、所定のケーブルを介して結合されることで、両者が接続される。
【００２０】
接続制御部１３は、インタフェース部１２，２１の間の信号経路の遮断、および、遮断の解除を制御する。また、接続制御部１３はインタフェース部１１，１２の間の信号経路と、インタフェース部１１および診断部５０の間の信号経路の切替を制御する。
【００２１】
制御部２０は、デバイス部品６０，７０のリンクアップ（通信可能状態とする処理）や情報処理装置１への組み込みを行う。その後、制御部２０は、演算部３０によるデバイス部品６０，７０へのアクセス要求を受け付け、デバイス部品６０，７０へのアクセスを行う。制御部２０は、インタフェース部２１を有する。インタフェース部２１は、前述のように、インタフェース部１２と接続するためのインタフェースを提供する。インタフェース部２１は、制御部２０に複数設けられてもよい。
【００２２】
演算部３０は、メモリ４０に格納されたソフトウェアのプログラムを実行する。演算部３０は、例えば、ＣＰＵ（Central Processing Unit）である。演算部３０は、ソフトウェアの処理に応じて、情報処理装置１に組み込み済のデバイス部品６０，７０へのアクセス要求を制御部２０に出力する。また、演算部３０は、デバイス部品６０からデバイス部品７０へ活性交換が行われた後、制御部２０からの割り込みによりデバイス部品７０の存在を検知すると、デバイス部品７０に対する初期化処理を制御部２０に指示する。
【００２３】
メモリ４０は、演算部３０により実行されるソフトウェアのプログラムを記憶する。メモリ４０は、例えば、ＲＡＭである。
診断部５０は、インタフェース部１１に新たに活性挿入されたデバイス部品７０の動作が正常であるか否かを診断する。診断部５０は、診断結果を接続制御部１３に通知する。診断結果は、デバイス部品７０の動作が正常であるか、異常であるかを示す情報を含む。デバイス部品７０の診断結果が正常を示す場合、デバイス部品７０に初期不良がない（あるいは、初期不良がある可能性が低い）ことになる。デバイス部品７０の診断結果が異常を示す場合、デバイス部品７０に初期不良がある（あるいは、初期不良がある可能性が高い）ことになる。
【００２４】
例えば、情報処理装置１は、診断部５０による診断結果の正常または異常を情報処理装置１のユーザに通知するＬＥＤ（Light Emitting Diode）などの通知部を更に備えてもよい。診断部５０は、当該通知部を制御して、デバイス部品７０の診断結果をユーザに通知することが考えられる。
【００２５】
ここで、以下では、インタフェース部１１にデバイス部品６０が接続された状態から、デバイス部品６０の故障などの障害により、デバイス部品６０がデバイス部品７０に交換されるケースを考える。デバイス部品６０が活性除去される前の段階では、接続制御部１３は、インタフェース部１１，１２を接続する。
【００２６】
接続制御部１３は、インタフェース部１１からのデバイス部品６０の活性除去を検出する。すると、接続制御部１３は、インタフェース部１１とインタフェース部２１との間の信号経路を遮断する（ステップＳ１）。
【００２７】
具体的には、接続制御部１３は、インタフェース部１２とインタフェース部２１との間の信号送受信を強制停止することで、制御部２０にデバイス部品６０の活性除去を通知する。接続制御部１３は、例えば、インタフェース部１２の送受信ドライバの動作を制御する所定の制御レジスタの設定を変更することで当該信号送受信の強制停止を行える。当該強制停止により、インタフェース切替部１０は、制御部２０に対し、応答可能状態から無応答状態に遷移する。そして、接続制御部１３は、インタフェース部１１，１２間のパス（インタフェース切替部１０内部のパス）を、インタフェース部１１と診断部５０との間のパスに切り替える。
【００２８】
接続制御部１３は、インタフェース部１１へのデバイス部品７０の活性挿入を検出する。すると、接続制御部１３は、デバイス部品７０により送信される所定の信号を内部のパスを介して診断部５０に送信する。ここで、接続制御部１３は、診断部５０による診断を行うための通信を可能とするための所定の初期化処理をデバイス部品７０に対して行ってもよい。これにより、診断部５０は、デバイス部品７０のインタフェース部１１への接続を検出し、デバイス部品７０の診断を行う。接続制御部１３は、診断部５０による診断の結果（診断結果）を取得する。
【００２９】
なお、接続制御部１３は、デバイス部品７０の活性挿入を検出し、診断部５０による診断が行われている間も、インタフェース部１２，２１の間の信号経路における信号送受信を強制停止した状態を維持する。
【００３０】
接続制御部１３は、インタフェース部１１に新たに活性挿入されたデバイス部品７０に対する診断が完了すると、診断結果に応じてインタフェース部１１とインタフェース部２１との間の信号経路の遮断を解除する（ステップＳ２）。
【００３１】
具体的には、接続制御部１３は、デバイス部品７０の診断結果が正常である場合、インタフェース部１１と診断部５０との間のパスを、インタフェース部１１，１２間のパスに切り替える。そして、接続制御部１３は、インタフェース部１２，２１の間の信号送受信の強制停止を解除する。接続制御部１３は、例えば、インタフェース部１２の送受信ドライバの動作を制御する所定の制御レジスタの設定を変更することで信号送受信の強制停止を解除し、インタフェース部１２，２１の間の信号送受信を再開させる。これにより、インタフェース切替部１０は、制御部２０に対して無応答状態から応答可能状態に遷移する。なお、接続制御部１３は、インタフェース部１２からインタフェース部２１へ新規デバイス接続時の所定信号を送信させるため、インタフェース部１２をリセットしてもよい。
【００３２】
制御部２０は、インタフェース切替部１０が無応答状態から応答可能状態に遷移したことによりデバイス部品７０の存在を検出する。例えば、制御部２０は、インタフェース部１２により出力される所定の信号を受信することで、新たに活性挿入されたデバイス部品７０の存在を検出する。制御部２０は、デバイス部品７０の活性挿入を演算部３０に通知するための割り込みを発生させる。演算部３０は、割り込みによりデバイス部品７０の存在を検出すると、デバイス部品７０の初期化指示を制御部２０に通知する。制御部２０は、演算部３０からデバイス部品７０の初期化指示を受信する。制御部２０は、初期化指示に応じて、第２のデバイス部品に対する初期化処理（例えば、リンクアップおよび情報処理装置１への組み込みのための処理）を実行する。こうして、演算部３０による制御部２０を介したデバイス部品７０へのアクセス要求が可能になる。
【００３３】
一方、接続制御部１３は、デバイス部品７０の診断結果が異常である場合、インタフェース部１１，２１の間の信号経路の遮断を維持する。例えば、接続制御部１３は、インタフェース部１１と診断部５０との間のパスを維持し、インタフェース部１２，２１の間の信号送受信の強制停止状態を維持する。これにより、デバイス部品７０に初期不良があった場合には、デバイス部品７０の存在が制御部２０により検出されない。情報処理装置１のユーザは、例えば、前述の通知部によりデバイス部品７０の異常を把握し、デバイス部品７０を代替のデバイス部品に交換することができる。
【００３４】
情報処理装置１によれば、インタフェース切替部１０により、インタフェース部１１からのデバイス部品６０の活性除去が検出されると、インタフェース部１１とインタフェース部２１との間の信号経路が遮断される。インタフェース部１１に新たに活性挿入されたデバイス部品７０に対する診断が完了すると、診断結果に応じて当該信号経路の遮断が解除される。制御部２０により、インタフェース切替部１０が無応答状態から応答可能状態に遷移したことによりデバイス部品７０の存在が検出され、デバイス部品７０に対する初期化処理が実行される。
【００３５】
これにより、デバイス部品６０をデバイス部品７０に活性交換した場合の障害を防止できる。特に、診断の前に、インタフェース切替部１０は、制御部２０との信号経路を遮断し、制御部２０を診断に関与させない。このため、診断による制御部２０および演算部３０への影響や、デバイス部品７０に万一初期不良があった場合の制御部２０および演算部３０への影響を抑えることができる。また、診断時や初期不良存在時において、制御部２０と接続される他のデバイス部品や、制御部２０が接続された内部バスに接続される他の種類のデバイス部品への影響を抑えることができる。
【００３６】
例えば、インタフェース切替部１０は、診断によりデバイス部品７０が正常と判断された場合に、制御部２０による、デバイス部品７０の検出を可能にする。一方、インタフェース切替部１０は、診断によりデバイス部品７０が異常と判断された場合に、制御部２０による、デバイス部品７０の検出を阻止する。これにより、初期不良がない（あるいは、初期不良の可能性が低い）デバイス部品７０のみを情報処理装置１に組み込めるようになり、組み込み後に、デバイス部品７０の初期不良を要因とする情報処理装置１の性能低下が生じる可能性を低減できる。
【００３７】
情報処理装置１は、例えば、大容量の記憶領域を提供するストレージ装置や、サーバ装置およびクライアント装置などのコンピュータである。以下では、情報処理装置１の一例としてサーバ装置を示し、情報処理装置１の機能をより詳細に説明する。
【００３８】
［第２の実施の形態］
次に、第２の実施の形態を説明する。
図２は、第２の実施の形態のサーバ装置のハードウェア例を示すブロック図である。
【００３９】
サーバ装置８０は、接続回路１００，２００，・・・、ＨＤＤ１０１，２０１，・・・、ＨＤＤコントローラ３００、ＣＰＵ４００およびＲＡＭ５００を有する。
接続回路１００は、ＨＤＤコントローラ３００に接続されている。また、接続回路１００には、ＨＤＤ１０１が接続されている。接続回路１００は、インタフェース（ＩＦ：InterFace）切替回路１１０、診断回路１２０およびＬＥＤ１３０を有する。
【００４０】
ＩＦ切替回路１１０は、ＨＤＤ１０１とＨＤＤコントローラ３００との間に介在し、ＨＤＤ１０１とＨＤＤコントローラ３００との間で信号を中継する。ＩＦ切替回路１１０は、診断回路１２０にも接続される。ＩＦ切替回路１１０は、ＨＤＤ１０１と診断回路１２０との間で信号を中継することもある。ここで、ＩＦ切替回路１１０とＨＤＤ１０１との接続、および、ＩＦ切替回路１１０とＨＤＤコントローラ３００との間のインタフェースの一例としてＳＡＴＡ（Serial Advanced Technology Attachment）を考える。
【００４１】
なお、ＩＦ切替回路１１０は、第１の実施の形態のインタフェース切替部１０の一例である。また、ＨＤＤ１０１は、サーバ装置８０の補助記憶装置であり、第１の実施の形態のデバイス部品６０の一例である。
【００４２】
診断回路１２０は、ＨＤＤ１０１または接続回路１００に活性挿入されたＨＤＤの動作の診断を行う。診断回路１２０は、診断結果をＩＦ切替回路１１０に通知する。また、診断回路１２０は、診断結果に応じて、サーバ装置８０に設けられたＬＥＤ１３０を発光させ、サーバ装置８０のユーザに診断結果を通知する。診断回路１２０は、第１の実施の形態の診断部５０の一例である。
【００４３】
ＬＥＤ１３０は、診断回路１２０の制御により発光する。例えば、ＬＥＤ１３０は、診断回路１２０による診断結果が正常の場合に発光するＬＥＤ、および、当該診断結果が異常の場合に発光するＬＥＤというように複数のＬＥＤを含んでもよい。あるいは、ＬＥＤ１３０は、診断結果に応じて発光色を変更することで、１つのＬＥＤにより複数の診断結果を通知してもよい。
【００４４】
接続回路２００を含む他の接続回路も接続回路１００と同様にＩＦ切替回路、診断回路およびＬＥＤを有する。以下では、接続回路１００を主に説明するが、他の接続回路も、接続回路１００と同様の機能をもつ。１つの接続回路には、１つのＨＤＤが挿入される。例えば、接続回路２００には、ＨＤＤ２０１が接続されている。
【００４５】
ＨＤＤコントローラ３００は、サーバ装置８０の内部バスを介して、ＣＰＵ４００に接続される。ＨＤＤコントローラ３００は、ＣＰＵ４００によるアクセス要求に応じて、ＨＤＤ１０１，２０１，・・・へのデータの書き込みや読み出しなどのアクセス制御を行う。また、ＨＤＤコントローラ３００は、ＣＰＵ４００の指示に応じて、ＨＤＤ１０１，２０１，・・・に対する初期化処理を行う。初期化処理は、例えば、ＨＤＤ１０１，２０１，・・・のリンクアップやサーバ装置８０への組み込みの処理を含む、ＳＡＴＡにおける所定の手順（初期化シーケンス）である（他の規格を用いる場合は当該規格に準じた手順となる）。ＨＤＤコントローラ３００は、第１の実施の形態の制御部２０の一例である。
【００４６】
ＣＰＵ４００は、サーバ装置８０のＯＳ（Operating System）やアプリケーションなどのソフトウェアのプログラムを実行する。プログラムは、ＲＡＭ５００に格納される。ＣＰＵ４００は、サーバ装置８０の内部バスを介してＨＤＤコントローラ３００およびＲＡＭ５００に接続される。ＣＰＵ４００は、第１の実施の形態の演算部３０の一例である。
【００４７】
ＲＡＭ５００は、サーバ装置８０の主記憶装置である。ＲＡＭ５００は、ＣＰＵ４００により実行されるプログラムやＣＰＵ４００の処理に用いられるデータを記憶する。ＲＡＭ５００は、第１の実施の形態のメモリ４０の一例である。
【００４８】
サーバ装置８０の内部バスには、ディスプレイと接続する画像信号処理部、マウスやキーボードなどの入力デバイスと接続する入力信号処理部、ネットワークに接続して通信するための通信処理部など、他の種類のデバイス部品も接続される（図示を省略している）。
【００４９】
ここで、サーバ装置８０は、ＨＤＤの活性交換が可能である。例えば、ＨＤＤ１０１が故障した場合、サーバ装置８０のユーザは、サーバ装置８０を稼働させた状態で、ＨＤＤ１０１を代替のＨＤＤに交換する作業を行うことができる。
【００５０】
ただし、代替のＨＤＤには一定の割合で初期不良品が存在する。初期不良には、工場出荷時から存在する不良の他にも、例えば、保守部品を保管しているパーツセンターからサーバ装置８０への輸送中、開封時、または、搭載時の静電破壊などに起因する不良（故障）もある。
【００５１】
ＨＤＤの初期不良によるアクセス異常としては、例えば、ＣＲＣ（Cyclic Redundancy Check）エラー、ｉｎｖａｌｉｄＣｈａｒａｃｔｅｒを代表とするインタフェースエラー、メディアエラーやキャッシュエラーを代表とするＨＤＤ内部エラーなどが挙げられる。こうした初期不良のあるＨＤＤがサーバ装置８０に組み込まれてしまうと、組み込み後にＣＰＵ４００によるアクセス異常が生じ、リトライ多発によりシステム性能が低下したり、最悪の場合、システム停止を引き起こしたりすることもある。
【００５２】
そこで、接続回路１００は、活性挿入されたＨＤＤの初期不良に起因するシステム障害を抑止する機能を提供する。
図３は、接続回路のハードウェア例を示すブロック図である。
【００５３】
ＩＦ切替回路１１０は、ホストＩＦ回路１１１、デバイスＩＦ回路１１２、インタコネクト回路１１３および監視回路１１４を有する。
ホストＩＦ回路１１１は、ＨＤＤ１０１と接続されるＳＡＴＡインタフェース（デバイス側のＳＡＴＡインタフェース）である。ホストＩＦ回路１１１は、ＨＤＤ１０１と直接またはケーブルを介して接続するためのアダプタを有する。
【００５４】
デバイスＩＦ回路１１２は、ＨＤＤコントローラ３００のホストＩＦ回路３１０と接続されるＳＡＴＡインタフェース（ホスト側のＳＡＴＡインタフェース）である。デバイスＩＦ回路１１２は、ホストＩＦ回路３１０と直接またはケーブルを介して接続するためのアダプタを有する。
【００５５】
インタコネクト回路１１３は、ホストＩＦ回路１１１とデバイスＩＦ回路１１２とを接続するパスと、ホストＩＦ回路１１１と診断回路１２０とを接続するパスとの切替に用いられる中継回路である。
【００５６】
監視回路１１４は、ホストＩＦ回路１１１、デバイスＩＦ回路１１２およびインタコネクト回路１１３に接続される。また、監視回路１１４は、インタコネクト回路１１３を介して診断回路１２０に接続される。監視回路１１４は、ホストＩＦ回路１１１およびデバイスＩＦ回路１１２からの通知を監視し、当該通知に応じて、デバイスＩＦ回路１１２の状態変更、インタコネクト回路１１３によるパス切替制御、診断回路１２０による診断結果の取得などを行う。
【００５７】
診断回路１２０は、ＣＰＵ１２１およびメモリ１２２を有する。診断回路１２０は、監視回路１１４の指示に応じて、インタコネクト回路１１３のパス切替を行う。
ＣＰＵ１２１は、ホストＩＦ回路１１１に新たに接続されたＨＤＤの動作の診断を行う。ＣＰＵ１２１は、診断結果に応じてＬＥＤ１３０の発光を制御する。
【００５８】
メモリ１２２は、ＣＰＵ１２１によるＨＤＤの動作の診断に用いられるデータを記憶する。ホストＩＦ回路１１１やデバイスＩＦ回路１１２は、それぞれＤＭＡ（Direct Memory Access）コントローラを備えており、メモリ１２２に対するデータの書き込みや読み出しが可能である。
【００５９】
例えば、ＣＰＵ１２１は、ホストＩＦ回路１１１を用いてＨＤＤ１０１へのテストデータの書き込みやＨＤＤ１０１からのテストデータの読み出しなどを行い、ＨＤＤ１０１が期待される動作をするか確認することで、ＨＤＤ１０１の診断処理を実行する。ホストＩＦ回路１１１は、メモリ１２２にテストデータの書き込み結果や、読み出し結果を含む診断結果を格納する。ＣＰＵ１２１は、メモリ１２２に格納された診断結果を監視回路１１４に出力する。監視回路１１４は、診断結果に応じてインタコネクト回路１１３のパスの切替指示やデバイスＩＦ回路１１２の状態の更新を行う。
【００６０】
ＨＤＤコントローラ３００は、ホストＩＦ回路３１０を有する。ホストＩＦ回路３１０は、デバイスＩＦ回路１１２と接続されるＳＡＴＡインタフェースである。前述のように、ＨＤＤコントローラ３００には、複数の接続回路が接続される。このため、ＨＤＤコントローラ３００は、複数のホストＩＦ回路を有する。
【００６１】
なお、ホストＩＦ回路３１０は、ホストＩＦ回路１１１と同じＳＡＴＡインタフェースであるため、ホストＩＦ回路３１０にＨＤＤ１０１を直接接続することも可能である。ただし、サーバ装置８０では、ＨＤＤコントローラ３００とＨＤＤ１０１との間に接続回路１００を設ける点が、ＨＤＤコントローラ３００とＨＤＤ１０１とを直接接続する構成と異なる。
【００６２】
図４は、ＩＦ切替回路とＨＤＤコントローラとの接続例を示す図である。
ＩＦ切替回路１１０は、図３で例示した回路に加えて、ドライバ１１５，１１６およびイネーブル（Enable）レジスタ１１７を有する。
【００６３】
ドライバ１１５は、ＨＤＤコントローラ３００に対して信号（差動信号）を送信する送信ドライバ（出力バッファ）である。ドライバ１１６はＨＤＤコントローラ３００からの信号を受信する受信ドライバ（入力バッファ）である。ドライバ１１５，１１６は、デバイスＩＦ回路１１２に接続される。
【００６４】
イネーブルレジスタ１１７は、ドライバ１１５，１１６の動作を制御するためのレジスタである。例えば、イネーブルレジスタ１１７がＯＮの場合、ドライバ１１５，１１６は信号送受信が可能な状態となる。イネーブルレジスタ１１７がＯＦＦの場合、ドライバ１１５，１１６は信号送受信が不可能な状態となる。デバイスＩＦ回路１１２（あるいは、監視回路１１４）は、イネーブルレジスタ１１７をＯＮからＯＦＦに設定変更することで、ドライバ１１５，１１６による信号送受信を強制停止することができる。デバイスＩＦ回路１１２（あるいは、監視回路１１４）は、イネーブルレジスタ１１７をＯＦＦからＯＮに設定変更することで、ドライバ１１５，１１６による信号送受信の強制停止を解除することができる。
【００６５】
また、ＨＤＤコントローラ３００は、更に、ドライバ３２１，３２２を有する。ドライバ３２１は、ドライバ１１５からの信号を受信する受信ドライバ（入力バッファ）である。ドライバ３２２は、ドライバ１１６に信号を送信する送信ドライバ（出力バッファ）である。ドライバ３２１，３２２は、ホストＩＦ回路３１０に接続される。
【００６６】
図５は、接続回路の制御例を示す図である。
ＲＡＭ５００には、ＨＤＤ１０１にアクセスして処理を行うソフトウェア５０１およびＨＤＤコントローラ３００の配下に接続されている各ＨＤＤに関する情報を含むドライブ情報５０２が記憶されている。ＨＤＤ１０１の故障により、ＨＤＤ１０１に異常が発生した場合を考える。
【００６７】
まず、ＣＰＵ４００は、ソフトウェア５０１の機能によりＨＤＤ１０１の異常を検出する。すると、ＣＰＵ４００は、ＨＤＤコントローラ３００におけるホストＩＦ回路３１０の内部に存在する制御レジスタ（例えば、「Device Detect Initialize」値）を“０ｈ”に設定することで、ＨＤＤ１０１のリンクダウンおよび切り離しの処理を実行する。当該切り離しの処理により、ＨＤＤコントローラ３００は、異常が発生したＨＤＤ１０１を論理的に切り離した状態と認識する。ただし、この段階では、ＨＤＤ１０１は物理的には接続された状態であり、ホストＩＦ回路３１０の内部に保持されたステータス情報レジスタ（例えば、「Device Detect」値）は、ＨＤＤ１０１の存在を示している状態（値）となる。
【００６８】
また、上記のＨＤＤ１０１のリンクダウンおよび切り離しの処理によって、ＩＦ切替回路１１０のデバイスＩＦ回路１１２の内部に保持されたステータス情報レジスタ（例えば、「Host Detect」値）は、ＨＤＤ１０１の論理的切り離し状態を示す値に設定される。すると、ＩＦ切替回路１１０は、ＨＤＤ１０１が論理的切り離し状態となったことを監視回路１１４に通知する。
【００６９】
監視回路１１４は、当該通知を受け付けると、ホストＩＦ回路１１１の内部に保持されたステータス情報レジスタ（例えば、「Device Detect」値）が、ＨＤＤ１０１の物理的切り離し状態に対応する値になったことを示す通知を受け付けるまで待機する。こうして、ＨＤＤ１０１の活性除去が可能な状態となる。
【００７０】
図５（Ａ）は、ＨＤＤ１０１の活性除去時の制御例を示す。
サーバ装置８０のユーザは、ＨＤＤ１０１を活性抜去する。これにより、ＨＤＤ１０１は、接続回路１００から取り外される（ステップＳＴ１）。すると、ホストＩＦ回路１１１は、ホストＩＦ回路１１１の内部のステータス情報レジスタを、物理的切り離し状態を示す値に設定する。ホストＩＦ回路１１１は、物理的切り離し状態となったことを監視回路１１４に通知する。
【００７１】
監視回路１１４は、ホストＩＦ回路１１１から物理的切り離し状態の通知を受け付けることで、ＩＦ切替回路１１０におけるＨＤＤ未実装状態を認識する。すると、監視回路１１４は、当該物理的切り離し状態を、デバイスＩＦ回路１１２に通知する。
【００７２】
デバイスＩＦ回路１１２は、監視回路１１４から物理的切り離し状態の通知を受け付ける。デバイスＩＦ回路１１２は、当該通知に応じて、デバイスＩＦ回路１１２が接続する物理レイヤ（ＰＨＹ）のドライバ１１５，１１６（ＩＯ（Input/Output）バッファ）のイネーブルレジスタ１１７をＯＮからＯＦＦに設定する。すなわち、ＨＤＤコントローラ３００に対して信号の送受信が強制的に停止され、接続回路１００はＨＤＤコントローラ３００に対して無応答状態となる。なお、イネーブルレジスタ１１７のＯＮからＯＦＦへの設定変更は、前述のように、監視回路１１４により行われてもよい。デバイスＩＦ回路１１２による信号送受信の強制停止は、ＨＤＤコントローラ３００へのＨＤＤ１０１の活性抜去の通知となる（ステップＳＴ２）。
【００７３】
ステップＳＴ２の処理により、ホストＩＦ回路３１０とデバイスＩＦ回路１１２との間でのドライバ１１５，３２１、および、ドライバ１１６，３２２を介した信号の送受信が強制的に停止される。また、ホストＩＦ回路３１０の内部のステータス情報レジスタがＨＤＤ１０１の物理的切り離し状態を示す値に設定される。これにより、ＨＤＤコントローラ３００は、ＨＤＤ１０１の活性抜去（ＨＤＤ未実装状態）を検出する。
【００７４】
監視回路１１４は、ホストＩＦ回路３１０とデバイスＩＦ回路１１２との信号の送受信を強制停止したことを、診断回路１２０に通知する。診断回路１２０は、当該通知を受け付けると、インタコネクト回路１１３におけるホストＩＦ回路１１１とデバイスＩＦ回路１１２とを繋ぐパスを、診断回路１２０とホストＩＦ回路１１１とを繋ぐパスに切り替える（ステップＳＴ３）。なお、インタコネクト回路１１３のパス切替は、監視回路１１４により行われてもよい。
【００７５】
更に、監視回路１１４は、ホストＩＦ回路１１１の内部に保持されたステータス情報レジスタが物理的切り離し状態を示すことを診断回路１２０に通知する。診断回路１２０は、当該通知を受け付けると、ホストＩＦ回路１１１の内部に保持されたステータス情報レジスタが物理的接続状態を示す値に設定されるまで、待ち状態となる。
【００７６】
図５（Ｂ）は、ＨＤＤ１０２の活性挿入時の制御例を示す。
サーバ装置８０のユーザは、ＨＤＤ１０１の代替品であるＨＤＤ１０２を活性挿入する。これにより、ＨＤＤ１０２が接続回路１００に取り付けられる（ステップＳＴ４）。すると、ＨＤＤ１０２の電源がＯＮになる。ＨＤＤ１０２は、デバイスとして存在していることを示す所定のパケットを、ホストＩＦ回路１１１に対して送信する。当該パケットは、ＨＤＤ１０２から継続的に送信される。当該パケットは、ホストＩＦ回路１１１により受信される。そして、ホストＩＦ回路１１１のステータス情報レジスタがＨＤＤ１０２の物理的接続状態を示す値に設定される。
【００７７】
監視回路１１４は、ホストＩＦ回路１１１のステータス情報レジスタがＨＤＤ１０２の物理的接続状態を示す値に設定されたことを検出する。すると、監視回路１１４は、診断回路１２０にＨＤＤ１０２の活性挿入を通知する。ここで、ＨＤＤ１０２の活性挿入が監視回路１１４により検出されるが、監視回路１１４は、イネーブルレジスタ１１７をＯＦＦに維持する。すなわち、ＨＤＤコントローラ３００に対しては信号送受信の強制停止の状態を維持することで、ＨＤＤコントローラ３００にＨＤＤ未実装状態を通知し続ける。
【００７８】
監視回路１１４は、ホストＩＦ回路１１１に対して、ホストＩＦ回路１１１の初期化シーケンスを指示する。ホストＩＦ回路１１１は、指示に応じて、ＨＤＤ１０２に対するＳＡＴＡ−ＩＦの初期化シーケンスを実行し、実行結果を監視回路１１４に通知する（ステップＳＴ５）。監視回路１１４は、ホストＩＦ回路１１１から受信した初期化シーケンスの実行結果（正常終了）を診断回路１２０に通知する。
【００７９】
ＣＰＵ１２１は、初期シーケンスの正常終了の通知を受信すると、メモリ１２２にＨＤＤ１０２のテストデータを展開し、インタコネクト回路１１３を介して、ホストＩＦ回路１１１へ診断開始を指示する。ホストＩＦ回路１１１は、診断開始の指示を受け付けると、メモリ１２２に格納されたＨＤＤ１０２のテストデータを読み出し、ＨＤＤ１０２の動作の診断（例えば、テストデータの読み書きなどのチェック）を行う。ホストＩＦ回路１１１は、ＨＤＤ１０２の診断が完了すると、ＨＤＤの１０２の診断結果をメモリ１２２に格納し、ＣＰＵ１２１に診断完了を通知する（ステップＳＴ６）。
【００８０】
ＣＰＵ１２１は、メモリ１２２に格納されている診断結果（正常または異常）を解析し、診断結果に応じてＬＥＤ１３０の発光を制御することで、サーバ装置８０のユーザに診断結果を通知する（ＳＴ７）。また、ＣＰＵ１２１は、監視回路１１４に診断結果を通知する。
【００８１】
図６は、接続回路の制御例（続き）を示す図である。
図６（Ａ）は、診断回路１２０によるＨＤＤ１０２の診断結果が正常である場合を例示する。
【００８２】
ＩＦ切替回路１１０は、ＨＤＤ１０２からの信号を受信可能な状態となっている（ステップＳＴ１０）。
ＣＰＵ１２１は、ＨＤＤ１０２の診断結果が正常であると、インタコネクト回路１１３における診断回路１２０とホストＩＦ回路１１１とを繋ぐパスを、ホストＩＦ回路１１１とデバイスＩＦ回路１１２とを繋ぐパスに切り替える（ステップＳＴ１１）。なお、前述のように、監視回路１１４により当該パスの切替を行ってもよい。
【００８３】
監視回路１１４は、ＣＰＵ１２１から正常を示す診断結果を受け付けると、デバイスＩＦ回路１１２をリセットする。更に、監視回路１１４は、イネーブルレジスタ１１７をＯＦＦからＯＮに変更する。すなわち、ＨＤＤコントローラ３００に対して信号の送受信が強制的に停止された状態（無応答状態）が解除され、接続回路１００はＨＤＤコントローラ３００に対して応答可能状態に遷移する。デバイスＩＦ回路１１２は、リセットにより、ＨＤＤ１０２の存在を示すパケットの送信を開始する。デバイスＩＦ回路１１２の無応答状態が解除されたことで、当該パケットがホストＩＦ回路３１０に到達し、ＨＤＤコントローラ３００は、当該パケットの受信により、ＨＤＤ１０２が活性挿入されたことを認識する（ステップＳＴ１２）。
【００８４】
ＨＤＤコントローラ３００は、ＨＤＤ１０２の活性挿入を認識すると、ソフトウェア５０１を実行するＣＰＵ４００にＨＤＤ１０２の活性挿入を通知するための割り込みを発生させる。
【００８５】
ＣＰＵ４００は、ＨＤＤコントローラ３００からの割り込みを受け付けると、ソフトウェア５０１の機能により、ＨＤＤ１０２に対する初期化シーケンスの開始を、ＨＤＤコントローラ３００に指示する。ＨＤＤコントローラ３００は、ホストＩＦ回路３１０の内部の制御レジスタ（例えば、「Device Detect Initialize」値）を“１ｈ”に設定することで、初期化シーケンスであるリンクアップおよび組み込みの実行を開始する。
【００８６】
また、ホストＩＦ回路３１０は、ＣＰＵ４００からの指示に応じて、デバイスＩＦ回路１１２に対し、ＳＡＴＡのＣＯＭＲＥＳＥＴを発行する。ここで、ＣＯＭＲＥＳＥＴは、ホストからデバイスへ送信されるＳＡＴＡのＯｕｔ  Ｏｆ  Ｂａｎｄ信号の１つであり、デバイスに対するＲＥＳＥＴ信号である。デバイスＩＦ回路１１２は、ＣＯＭＲＥＳＥＴを検出すると、ＣＯＭＲＥＳＥＴの検出を監視回路１１４に通知する。
【００８７】
監視回路１１４は、デバイスＩＦ回路１１２の通知を受け付けると、ホストＩＦ回路１１１に対してＨＤＤ１０２へのＣＯＭＲＥＳＥＴの発行を指示する。ホストＩＦ回路１１１は、監視回路１１４の指示を受け付けると、ＨＤＤ１０２に対してＣＯＭＲＥＳＥＴを発行し、再度、ＨＤＤ１０２に対するＳＡＴＡ−ＩＦの初期化シーケンスを実行する。ホストＩＦ回路１１１は、初期化シーケンスが完了すると、初期化シーケンスの完了を監視回路１１４に通知する。監視回路１１４は、ホストＩＦ回路１１１からの通知に応じて、デバイスＩＦ回路１１２に、ＨＤＤ１０２側のホストＩＦ回路１１１による初期化シーケンスの完了を通知する。デバイスＩＦ回路１１２は、当該完了の通知を受け付けると、ホストＩＦ回路３１０に対して、ＣＯＭＩＮＩＴを応答し、ホストＩＦ回路３１０との間で、当該ＣＯＭＩＮＩＴ以降の一連の初期化シーケンスを完了させる。ここで、ＣＯＭＩＮＩＴは、デバイスからホストへ送信されるＳＡＴＡのＯｕｔ  Ｏｆ  Ｂａｎｄ信号の１つであり、通信の初期化信号である。
【００８８】
ホストＩＦ回路３１０とデバイスＩＦ回路１１２との間の初期化シーケンスが完了すると、ＨＤＤコントローラ３００は、初期化シーケンスの完了を、ＣＰＵ４００により実行されるソフトウェア５０１に通知する。ソフトウェア５０１は、ＨＤＤ１０２の実装状態を認識し、ドライブ情報５０２を更新する（ステップＳＴ１３）。こうして、ＨＤＤ１０２がサーバ装置８０に組み込まれる。そして、ソフトウェア５０１は、ＨＤＤコントローラ３００を介して、ＨＤＤ１０２へのアクセスを開始する（ステップＳＴ１４）。なお、ＣＰＵ４００は、ソフトウェア５０１によるアクセスの開始の前に、ＨＤＤ１０２に対してバックアップデータのリストアや、他のＨＤＤとのＲＡＩＤ（Redundant Arrays of Inexpensive Disks）構成のリビルドなどを行ってもよい。
【００８９】
上記のように、ＩＦ切替回路１１０は、診断前にＨＤＤ１０２との初期化シーケンスを行い、更に、ホストＩＦ回路３１０からのＣＯＭＲＥＳＥＴに応じてＨＤＤ１０２との初期化シーケンスを再度行った後、ホストＩＦ回路３１０との初期化シーケンスを行う。
【００９０】
図６（Ｂ）は、診断回路１２０によるＨＤＤ１０２の診断結果が異常である場合を例示する。
ＩＦ切替回路１１０は、ＨＤＤ１０２からの信号を受信可能な状態となっている。ＣＰＵ１２１は、ＨＤＤ１０２の診断結果が異常であると、インタコネクト回路１１３における診断回路１２０とホストＩＦ回路１１１とを繋ぐパスを維持する。すなわち、ＣＰＵ１２１は、ホストＩＦ回路１１１とデバイスＩＦ回路１１２とを繋ぐパスへの切替を行わない（ステップＳＴ２０）。
【００９１】
また、監視回路１１４は、ＣＰＵ１２１から異常を示す診断結果を受け付けると、イネーブルレジスタ１１７をＯＦＦに維持する。すなわち、監視回路１１４は、ＨＤＤコントローラ３００に対して信号の送受信が強制的に停止された状態（無応答状態）を維持する（ステップＳＴ２１）。すなわち、監視回路１１４は、ＨＤＤコントローラ３００に対して、ＨＤＤ未実装状態（活性抜去状態）の通知を維持する。
【００９２】
このため、ＨＤＤコントローラ３００は、ＨＤＤ未実装状態を認識したままとなる。また、ソフトウェア５０１を実行するＣＰＵ４００も、ＨＤＤ１０２の存在を検出しないままとなる。
【００９３】
次に、ＩＦ切替回路１１０による処理手順を説明する。
図７は、ＩＦ切替回路の処理例を示すフローチャートである。
（Ｓ１０）監視回路１１４は、ホストＩＦ回路１１１のステータス情報レジスタを監視することで、ＨＤＤ側インタフェース信号（ＨＤＤ１０１により送信される所定のＨＤＤ信号）を監視する。
【００９４】
（Ｓ１１）監視回路１１４は、ＨＤＤ信号があるか否かを判定する。ＨＤＤ信号がある場合、ステップＳ１１に処理が進み、監視回路１１４による監視が継続される。ＨＤＤ信号がない場合、ステップＳ１２に処理が進む。例えば、監視回路１１４は、ホストＩＦ回路１１１のステータス情報レジスタが物理的接続状態を示す場合にＨＤＤ信号ありと判定し、物理的切り離し状態を示す場合にＨＤＤ信号なしと判定する。ＨＤＤ信号なしは、ユーザによりＨＤＤ１０１が活性除去されたことを示す。
【００９５】
（Ｓ１２）監視回路１１４は、デバイスＩＦ回路１１２のイネーブルレジスタをＯＮからＯＦＦに設定することで、ＨＤＤコントローラ３００へのインタフェース信号を強制停止し、これにより、ＨＤＤコントローラ３００へＨＤＤ１０１の活性抜去状態を通知する。また、監視回路１１４は、インタコネクト回路１１３によるパスの切替を診断回路１２０に指示することで、当該パスの切替を制御する。診断回路１２０は、ホストＩＦ回路１１１とデバイスＩＦ回路１１２とのパスを、ホストＩＦ回路１１１と診断回路１２０とのパスに切り替える。
【００９６】
（Ｓ１３）監視回路１１４は、ホストＩＦ回路１１１のステータス情報レジスタを監視することで、ＨＤＤ側インタフェース信号（ＨＤＤ信号）を監視する。
（Ｓ１４）監視回路１１４は、ＨＤＤ信号があるか否かを判定する。ＨＤＤ信号がある場合、ステップＳ１５に処理が進む。ＨＤＤ信号がない場合、ステップＳ１４に処理が進み、監視回路１１４による監視が継続される。例えば、監視回路１１４は、ホストＩＦ回路１１１のステータス情報レジスタが物理的切り離し状態を示す場合にＨＤＤ信号なしと判定し、物理的接続状態を示す場合にＨＤＤ信号ありと判定する。ＨＤＤ信号ありは、ユーザによりＨＤＤ１０２が活性挿入されたことを示す。
【００９７】
（Ｓ１５）監視回路１１４は、デバイスＩＦ回路１１２のイネーブルレジスタのＯＦＦを維持することで、ＨＤＤコントローラ３００へのインタフェース信号を継続して停止する。これにより、監視回路１１４は、ＨＤＤコントローラ３００へ活性抜去状態を継続して通知する。
【００９８】
（Ｓ１６）監視回路１１４は、ホストＩＦ回路１１１に初期化シーケンスの実行を指示する。ホストＩＦ回路１１１は、指示に応じてＨＤＤ１０２に対する初期化シーケンスを行う（ＨＤＤインタフェースの初期化）。
【００９９】
（Ｓ１７）監視回路１１４は、ステップＳ１６における初期化シーケンスの結果が正常であるか否かを判定する。正常である場合、ステップＳ１８に処理が進む。正常でない、すなわち、異常である場合、ステップＳ２２に処理が進む。
【０１００】
（Ｓ１８）診断回路１２０は、ＨＤＤ１０２の診断を実行する。
（Ｓ１９）診断回路１２０は、ＨＤＤ１０２の診断結果が正常であるか否かを判定する。正常である場合、ステップＳ２０に処理が進む。正常でない、すなわち、異常である場合、ステップＳ２２に処理が進む。
【０１０１】
（Ｓ２０）診断回路１２０は、ＬＥＤ１３０における正常通知用ＬＥＤを点灯させる。診断回路１２０は、インタコネクト回路１１３のパスの切替を行う。診断回路１２０は、診断結果を監視回路１１４に通知する。
【０１０２】
（Ｓ２１）監視回路１１４は、デバイスＩＦ回路１１２をリセットし、ＨＤＤコントローラ３００へのインタフェース信号の強制停止を解除することで、ＨＤＤ１０２の活性挿入状態をＨＤＤコントローラ３００に通知する。そして、処理が終了する。
【０１０３】
（Ｓ２２）診断回路１２０は、ＬＥＤ１３０における異常通知用ＬＥＤを点灯させる。
（Ｓ２３）監視回路１１４は、デバイスＩＦ回路１１２のイネーブルレジスタのＯＦＦを維持することで、ＨＤＤコントローラ３００へのインタフェース信号の強制停止を継続し、ＨＤＤコントローラ３００へ活性抜去状態を継続して通知する。そして、処理が終了する。
【０１０４】
ステップＳ２１以降、ＨＤＤコントローラ３００および接続回路１００は、ＣＰＵ４００の指示に応じて、ＨＤＤ１０２に対する初期化シーケンスを実行し、ＨＤＤ１０２をサーバ装置８０に組み込む。一方、ステップＳ２３以降では、接続回路１００は、ＨＤＤコントローラ３００によるＨＤＤ１０２の存在検出を阻止し、ＬＥＤ１３０による異常通知を行うことで、ユーザによるＨＤＤ１０２の代替品への交換を促す。接続回路１００は、ユーザによるＨＤＤ１０２の活性抜去を検出し、代替のＨＤＤの活性挿入を検出すると、当該ＨＤＤの診断を行うことになる。その間、接続回路１００は、ＨＤＤコントローラ３００との間での信号送受信を強制停止したままとする。
【０１０５】
次に、接続回路１００を用いる場合の初期化シーケンスの例を説明する。まず、接続回路１００を介する通信経路を例示する。
図８は、接続回路を介する通信経路の例を示す図である。
【０１０６】
前述のように、ＨＤＤコントローラ３００とＩＦ切替回路１１０との間には送信用／受信用の２つの信号経路がある。また、ＩＦ切替回路１１０とＨＤＤ１０２との間には、送信用／受信用の２つの信号経路がある。ＨＤＤコントローラ３００からＩＦ切替回路１１０に向かう信号経路をパス（ａ）とする。ＩＦ切替回路１１０からＨＤＤコントローラ３００へ向かう信号経路をパス（ｂ）とする。ＩＦ切替回路１１０からＨＤＤ１０２へ向かう信号経路をパス（ｃ）とする。ＨＤＤ１０２からＩＦ切替回路１１０へ向かう信号経路をパス（ｄ）とする。
【０１０７】
図９は、初期化シーケンスの例（正常時）を示す図である。
サーバ装置８０に対してＨＤＤ１０１の活性抜去が行われており、パス（ａ）、（ｂ）は、オープン状態（信号送受信が強制停止された状態）となっている。
【０１０８】
ＩＦ切替回路１１０は、診断回路１２０による診断が行われる前に、パス（ｃ）を介して、活性挿入されたＨＤＤ１０２に対しＣＯＭＲＥＳＥＴを送信する。ＨＤＤ１０２は、ＣＯＭＲＥＳＥＴに対してＣＯＭＩＮＩＴをパス（ｄ）を介して応答し、以降、複数回の所定の信号の送受信により、ＩＦ切替回路１１０とＨＤＤ１０２との間で初期化シーケンスが実行される。初期化シーケンスが正常に完了すると、診断回路１２０によるＨＤＤ１０２の診断が行われる。図９の例では、診断時のＨＤＤ１０２の応答が正常応答であるため、ＩＦ切替回路１１０は、ＨＤＤコントローラ３００側のＰＨＹ（パス（ａ）、（ｂ））のオープン状態を解除する。
【０１０９】
その後、ＨＤＤコントローラ３００は、パス（ａ）を介して、ＩＦ切替回路１１０に対しＣＯＭＲＥＳＥＴを送信する。ＩＦ切替回路１１０は、ＣＯＭＲＥＳＥＴに対してＣＯＭＩＮＩＴをパス（ｂ）を介して応答し、以降、複数回の所定の信号の送受信により、ＨＤＤコントローラ３００とＩＦ切替回路１１０との間で初期化シーケンスが実行される。初期化シーケンスが正常に完了すると、ＨＤＤ１０２に対するユーザデータに関するアクセスが開始される。
【０１１０】
なお、パス（ａ）を介して、ＣＯＭＲＥＳＥＴがＩＦ切替回路１１０に送信された後、ＩＦ切替回路１１０がパス（ｂ）を介してＣＯＭＩＮＩＴを応答するまでの間に、ＩＦ切替回路１１０は、再度、ＨＤＤ１０２に対する初期化シーケンスを実行する。
【０１１１】
図１０は、初期化シーケンスの例（異常時）を示す図である。
サーバ装置８０に対してＨＤＤ１０１の活性抜去が行われており、パス（ａ）、（ｂ）は、オープン状態（信号送受信が強制停止された状態）となっている。
【０１１２】
ＩＦ切替回路１１０は、診断回路１２０による診断が行われる前に、パス（ｃ）を介して、活性挿入されたＨＤＤ１０２に対しＣＯＭＲＥＳＥＴを送信する。ＨＤＤ１０２は、ＣＯＭＲＥＳＥＴに対してＣＯＭＩＮＩＴをパス（ｄ）を介して応答し、以降、複数回の所定の信号の送受信により、ＩＦ切替回路１１０とＨＤＤ１０２との間で初期化シーケンスが実行される。初期化シーケンスが正常に完了すると、診断回路１２０によるＨＤＤ１０２の診断が行われる。図１０の例では、診断時のＨＤＤ１０２の応答が異常応答であり、ＩＦ切替回路１１０は、ＨＤＤ１０２でエラーを検知する。例えば、ＩＦ切替回路１１０は、パス（ｃ）、（ｄ）のＰＨＹ（物理レイヤ）をリンクダウンに遷移させる。この場合、ＩＦ切替回路１１０は、ＨＤＤコントローラ３００側のＰＨＹ（パス（ａ）、（ｂ））をオープン状態のまま維持する。
【０１１３】
次に、接続回路１００を介さずに、ＨＤＤ１０１，１０２，２０１，・・・をＨＤＤコントローラ３００に接続する比較例を説明する。
図１１は、ＨＤＤ挿入時の制御の比較例を示す図である。
【０１１４】
図１１（Ａ）は、ＨＤＤ１０２の活性挿入時の制御の比較例を示す。
まず、ユーザは、ＨＤＤ１０１をＨＤＤコントローラ３００から活性抜去して、ＨＤＤ１０１の代わりにＨＤＤ１０２をＨＤＤコントローラ３００に活性挿入する。すると、ＨＤＤ１０２に電源が投入される（ステップＳＴ３０）。
【０１１５】
ＨＤＤ１０２の電源投入後、ＨＤＤコントローラ３００は、ＨＤＤ１０２の挿入を認識すると、初期化シーケンスを実行することで、ＨＤＤ１０２との接続性を確認する（ステップＳＴ３１）。
【０１１６】
ＨＤＤコントローラ３００は、初期化シーケンスを正常終了すると、ＨＤＤ１０２の活性挿入を、ソフトウェア５０１を実行するＣＰＵ４００に対して割り込み通知する（ステップＳＴ３２）。
【０１１７】
ＣＰＵ４００は、ＨＤＤコントローラ３００を介してＨＤＤ１０２にアクセスし、ＨＤＤ１０２の実装状態を認識して、ＨＤＤ１０２からＨＤＤ情報を収集し、ＲＡＭ５００に格納されたドライブ情報５０２を更新する。これにより、ＨＤＤ１０２の組み込みが完了する。その後、ＣＰＵ４００は、ソフトウェア５０１の機能により、ＨＤＤ１０２に対するバックアップデータのリストアやＲＡＩＤ構成のリビルドなどを行い、ＨＤＤ１０２へのユーザデータに関するアクセスを開始する（ステップＳＴ３３）。
【０１１８】
ところが、ＨＤＤ１０２に初期不良があると、初期不良によりシステム性能の低下を引き起こすことがある。
図１１（Ｂ）は、ＨＤＤ１０２の初期不良に起因するエラー発生時の制御の比較例を示す。
【０１１９】
まず、図１１（Ａ）の場合と同様に、ユーザは、ＨＤＤ１０１をＨＤＤコントローラ３００から活性抜去して、ＨＤＤ１０１の代わりにＨＤＤ１０２をＨＤＤコントローラ３００に活性挿入する。すると、ＨＤＤ１０２に電源が投入される。そして、ＨＤＤコントローラ３００は、ＨＤＤ１０２に対する初期化シーケンスを正常終了すると、ＨＤＤ１０２の活性挿入を、ソフトウェア５０１を実行するＣＰＵ４００に対して割り込み通知する。
【０１２０】
その後、ＣＰＵ４００は、ＨＤＤ１０２を組み込む処理、または、組み込み後の運用中のＨＤＤ１０２に対するアクセスを行う（ステップＳＴ４０）。このとき、ＨＤＤ１０２のアクセス異常が発生する（ステップＳＴ４１）。ＨＤＤ１０２のアクセス異常が、ＣＰＵ４００に通知される（ステップＳＴ４２）。
【０１２１】
ＣＰＵ４００は、ソフトウェア５０１の機能により、ＨＤＤ１０２の異常を認識し、リトライを行うことで運用を継続する。ＣＰＵ４００は、リトライが多発し、システム性能の低下を検出すると、ＨＤＤ１０２の切り離し処理を行い、ＨＤＤ１０２へのアクセスログやエラーメッセージを含むエラーログ５０３をＲＡＭ５００に出力する。ユーザは、エラーログ５０３を確認して、被疑箇所を切り分ける作業を行う。ユーザは、ＨＤＤ１０２のエラーを発見すると、ＨＤＤ１０２を更に別のＨＤＤに交換する作業を行う。
【０１２２】
図１１の比較例のように、ＨＤＤ１０２がＨＤＤコントローラ３００に接続されて、ＨＤＤ１０２に電源が投入されると、ＨＤＤ１０２は、ＨＤＤ１０２の存在を示すパケット送信を継続的に行い、ＨＤＤコントローラ３００にＨＤＤ１０２の存在を検出させる。図１１の比較例では、ＨＤＤ１０２へのアクセス異常として検出される故障が、ＨＤＤ１０２に内在していたとしても、当該パケット送信を強制的に停止する仕組みがない。このため、当該パケットを受信したホスト側は、初期不良のあるＨＤＤ１０２の存在を認識してしまうことになる。ホスト側（ＣＰＵ４００）では、活性挿入されたＨＤＤ１０２の存在を認識した時点で、システムへの組み込みを行うため、組み込みが完了し、運用が開始された後で、ＨＤＤ１０２の初期不良が検出されるという問題がある。
【０１２３】
そこで、ＨＤＤコントローラ３００とＨＤＤ１０１（あるいはＨＤＤ１０２）との間に、接続回路１００を設ける。独立した診断用の回路（接続回路１００）が活性交換されたＨＤＤ１０２を診断し、不良品のシステムへの組み込みを阻止するため、不良品が実装されたときに発生するリトライ多発による性能低下やシステムダウンを抑制することができる。
【０１２４】
また、接続回路１００がＨＤＤ１０２の診断を行うため、ＨＤＤ１０２の診断機能をもつソフトウェアからＨＤＤ１０２の診断を行わなくてよく、運用中のサーバ装置８０に当該診断に伴う余計な負荷を与えずに済む。
【０１２５】
こうして、ＨＤＤなどのデバイス部品を活性交換した場合の障害を防止できる。特に、診断の前に、ＩＦ切替回路１１０は、ＨＤＤコントローラ３００との信号経路を遮断し、ＨＤＤコントローラ３００を診断に関与させない。このため、診断によるＨＤＤコントローラ３００およびＣＰＵ４００への影響や、ＨＤＤ１０２に万一初期不良があった場合のＨＤＤコントローラ３００およびＣＰＵ４００への影響を抑えることができる。
【０１２６】
例えば、ＩＦ切替回路１１０は、診断によりＨＤＤ１０２が正常と判断された場合に、ＨＤＤコントローラ３００による、ＨＤＤ１０２の存在の検出を可能にする。一方、ＩＦ切替回路１１０は、診断によりＨＤＤ１０２が異常と判断された場合に、ＨＤＤコントローラ３００による、ＨＤＤ１０２の存在の検出を阻止する。これにより、初期不良がない（あるいは、初期不良の可能性が低い）ＨＤＤ１０２のみをサーバ装置８０に組み込めるようになり、組み込み後に、ＨＤＤ１０２の初期不良を要因とするサーバ装置８０の性能低下が生じる可能性を低減できる。
【０１２７】
更に、接続回路１００にＨＤＤ１０２のフォーマット機能を付加することで、ＨＤＤ１０２の活性挿入後、ソフトウェア５０１が認識する時点では、ＨＤＤ１０２をフォーマット済とすることもできる。このため、ＨＤＤ１０２を迅速に利用開始可能にすることも可能である。
【０１２８】
以上の第１，第２の実施の形態を含む実施形態に関し、更に以下の付記を開示する。
（付記１）  第１のデバイス部品が接続された第１のインタフェース部を備え、前記第１のデバイス部品の活性除去を検出すると、前記第１のインタフェース部と自身が接続される第２のインタフェース部との間の信号経路を遮断し、前記第１のインタフェース部に新たに活性挿入された第２のデバイス部品に対する診断が完了すると、診断結果に応じて前記信号経路の遮断を解除するインタフェース切替部と、
前記第２のインタフェース部を備え、前記インタフェース切替部が無応答状態から応答可能状態に遷移したことにより前記第２のデバイス部品の存在を検出し、前記第２のデバイス部品に対する初期化処理を実行する制御部と、
を有する情報処理装置。
【０１２９】
（付記２）  前記インタフェース切替部は、前記第２のインタフェース部と接続される第３のインタフェース部を備え、前記第３のインタフェース部と前記第２のインタフェース部との間の通信を強制停止させることで、前記信号経路を遮断する、
付記１記載の情報処理装置。
【０１３０】
（付記３）  前記インタフェース切替部に接続され、前記第２のデバイス部品の診断を行う診断部を更に有し、
前記インタフェース切替部は、前記信号経路を遮断すると、前記第１のインタフェース部と前記第３のインタフェース部とを接続するパスを、前記第１のインタフェース部と前記診断部とを接続するパスに切り替える、
付記２記載の情報処理装置。
【０１３１】
（付記４）  前記インタフェース切替部は、前記診断の結果が正常である場合に前記信号経路の遮断を解除し、前記診断の結果が異常である場合に前記信号経路の遮断を維持する、
付記１記載の情報処理装置。
【０１３２】
（付記５）  前記制御部を介して前記第２のデバイス部品にアクセスする演算部を更に有し、
前記制御部は、前記第２のデバイス部品の存在を検出すると、前記演算部に割り込みを通知し、前記演算部による初期化の指示に応じて、前記初期化処理を実行する、
付記１記載の情報処理装置。
【０１３３】
（付記６）  第１のデバイス部品が接続された第１のインタフェース部を備えるインタフェース切替部が、前記第１のデバイス部品の活性除去を検出すると、前記第１のインタフェース部と自身が接続される第２のインタフェース部との間の信号経路を遮断し、前記第１のインタフェース部に新たに活性挿入された第２のデバイス部品に対する診断が完了すると、診断結果に応じて前記信号経路の遮断を解除し、
前記第２のインタフェース部を備える制御部が、前記インタフェース切替部が無応答状態から応答可能状態に遷移したことにより前記第２のデバイス部品の存在を検出し、前記第２のデバイス部品に対する初期化処理を実行する、
制御方法。
【０１３４】
（付記７）  前記インタフェース切替部は、前記第２のインタフェース部と接続される第３のインタフェース部を備え、前記第３のインタフェース部と前記第２のインタフェース部との間の通信を強制停止させることで、前記信号経路を遮断する、
付記６記載の制御方法。
【０１３５】
（付記８）  前記第２のデバイス部品の診断を行う診断部が前記インタフェース切替部に接続されており、
前記インタフェース切替部は、前記信号経路を遮断すると、前記第１のインタフェース部と前記第３のインタフェース部とを接続するパスを、前記第１のインタフェース部と前記診断部とを接続するパスに切り替える、
付記７記載の制御方法。
【０１３６】
（付記９）  前記インタフェース切替部は、前記診断の結果が正常である場合に前記信号経路の遮断を解除し、前記診断の結果が異常である場合に前記信号経路の遮断を維持する、
付記６記載の制御方法。
【０１３７】
（付記１０）  前記制御部は、前記第２のデバイス部品の存在を検出すると、前記制御部を介して前記第２のデバイス部品にアクセスする演算部に割り込みを通知し、前記演算部による初期化の指示に応じて、前記初期化処理を実行する、
付記６記載の制御方法。
【符号の説明】
【０１３８】
１  情報処理装置
１０  インタフェース切替部
１１，１２，２１  インタフェース部
１３  接続制御部
２０  制御部
３０  演算部
４０  メモリ
５０  診断部
６０，７０  デバイス部品
【図１】
2020024558.tif 000003
【図２】
2020024558.tif 000004
【図３】
2020024558.tif 000005
【図４】
2020024558.tif 000006
【図５】
2020024558.tif 000007
【図６】
2020024558.tif 000008
【図７】
2020024558.tif 000009
【図８】
2020024558.tif 000010
【図９】
2020024558.tif 000011
【図１０】
2020024558.tif 000012
【図１１】
2020024558.tif 000013