(57)【特許請求の範囲】
【請求項１】
ネットワークを介して互いに接続された複数のホストと一乃至複数のＩ／Ｏとを備えるＩ／Ｏ接続システムにおいて、
前記ホストに前記Ｉ／Ｏを接続するための複数の処理からなるホットプラグ処理を実行するホットプラグ処理手段と、
前記ホットプラグ処理の中の前記Ｉ／Ｏにアクセスする直前までの処理である第１のホットプラグ処理を前記ホットプラグ処理手段が完了するのに応じて、前記ホットプラグ処理手段に対して、前記ホットプラグ処理の停止を指示する停止指示手段と、
前記ホストと前記Ｉ／Ｏとの間の接続が確立し、前記ホストが前記Ｉ／Ｏにアクセス可能になったことを検知する検知手段と、
前記検知手段による検知に応じて、前記ホットプラグ処理手段に対し、前記ホットプラグ処理の中の前記第１のホットプラグ処理以外の処理である第２のホットプラグ処理の開始を指示する開始指示手段と
を備え、
前記第１のホットプラグ処理はＩ／Ｏスロットの電源を立ち上げて有効にする処理を含み、
前記第２のホットプラグ処理はＩ／Ｏに対応するデバイスドライバをロードする処理及びホストが保持する接続Ｉ／Ｏ情報を更新する処理の少なくとも一方を含む
ことを特徴とするＩ／Ｏ接続システム。
【請求項２】
請求項１に記載のＩ／Ｏ接続システムにおいて、
ロードされたプログラムに従って動作する処理装置と、前記処理装置を前記開始指示手段として動作させる開始指示プログラムとを備え、
前記検知手段は、前記開始指示プログラム自身のアドレス空間にマップされたフラグを更新し、
前記開始指示手段は、前記フラグに応じて前記第２のホットプラグ処理の開始を指示する
ことを特徴とするＩ／Ｏ接続システム。
【請求項３】
請求項１及び２のいずれかに記載のＩ／Ｏ接続システムにおいて、
ロードされたプログラムに従って動作する処理装置と、前記処理装置を前記ホットプラグ処理手段として動作させるホットプラグ処理プログラムとを備え、
前記処理装置は、少なくとも前記第２のホットプラグ処理を実行中、排他制御を行う
ことを特徴とするＩ／Ｏ接続システム。
【請求項４】
ネットワークを介して互いに接続された複数のホストと一乃至複数のＩ／Ｏを備えるＩ／Ｏ接続システムにおいて、
第１のホストとＩ／Ｏの間のホットリムーブ処理のうち、前記第１のホストが前記Ｉ／Ｏにアクセスして行う処理の完了を検知する第１の検知手段と、
前記第１の検知手段での検知に応じて、前記Ｉ／Ｏの接続先を前記第１のホストから前記第１のホストとは異なる第２のホストに切り替えるホスト切り替え手段と、
前記第１のホストにおける、前記第１のホストのＩ／Ｏスロットの電源停止を含む前記ホットリムーブ処理全体の完了に先行して、前記第２のホストと前記Ｉ／Ｏの間の、前記第２のホストのＩ／Ｏスロットの電源立ち上げを含むホットプラグ処理を開始する手段と、
前記ホットプラグ処理のうち、前記第２のホストが前記Ｉ／Ｏにアクセスすることなく行う処理の完了を検知して、前記ホットプラグ処理を停止する停止手段と、
前記第２のホストが前記Ｉ／Ｏにアクセス可能になったことを検知する第２の検知手段と、
前記第２の検知手段での検知に応じて、前記停止手段が停止させた前記ホットプラグ処理を再開する手段と
を備えることを特徴とするＩ／Ｏ接続システム。
【請求項５】
請求項４に記載のＩ／Ｏ接続システムにおいて、
前記ホストと前記ネットワークとを接続し、前記ホストとの間で第１のプロトコルにてデータ通信を行い、前記ネットワークとの間で第２のプロトコルにてデータ通信を行う上流中継装置と、
前記Ｉ／Ｏと前記ネットワークとを接続し、前記ネットワークとの間で前記第２のプロトコルにてデータ通信を行い、前記Ｉ／Ｏとの間で前記第１のプロトコルにてデータ通信を行う下流中継装置とを備え、
前記上流及び下流中継装置は、前記第１及び第２のプロトコルをトンネリングすることにより前記ホスト及びＩ／Ｏとの間の接続を確立し、
トンネリングする前記ホスト及びＩ／Ｏの組み合わせを変更することにより、前記ホスト及びＩ／Ｏの接続を切り替える
ことを特徴とするＩ／Ｏ接続システム。
【請求項６】
請求項４及び５のいずれかに記載のＩ／Ｏ接続システムにおいて、Ｉ／Ｏをホットリムーブするホストに対して、ホットリムーブ処理の開始を指示すると共に、Ｉ／Ｏが次に割り当てられるホストを通知する信号を送信し、前記Ｉ／Ｏが次に割り当てられるホストに対して、ホットプラグ処理の開始を指示する信号を送信する制御手段を備えることを特徴とするＩ／Ｏ接続システム。
【請求項７】
請求項４乃至６のいずれかに記載のＩ／Ｏ接続システムにおいて、
前記第１のホストは、ロードされたプログラムに従って動作する第１の処理装置と、前記第１の処理装置を前記第１の検知手段として動作させるプログラムであって、当該プログラム自身のアドレス空間にマップされるホットリムーブ通知フラグをアサートすることにより検知結果を出力する第１の検知プログラムとを備え、
前記第２のホストは、ロードされたプログラムに従って動作する第２の処理装置と、前記第２の処理装置を前記停止手段として動作させるプログラムであって、当該プログラム自身のアドレス空間にマップされるホットプラグ開始フラグをポーリングすることにより、前記第２のホストが前記Ｉ／Ｏにアクセスするための処理の再開を検知する停止プログラムとを備える
ことを特徴とするＩ／Ｏ接続システム。
【請求項８】
請求項７に記載のＩ／Ｏ接続システムにおいて、
前記ホットリムーブ通知フラグのアサートに応じて、前記ホスト切り替え手段に対し、ホストの切り替えの開始を指示する手段と、
前記ホスト切り替え手段から受信するホストの切り替え完了の通知に応じて、前記ホットプラグ開始フラグをアサートする手段と
を更に備えることを特徴とするＩ／Ｏ接続システム。
【請求項９】
請求項４乃至８のいずれかに記載のＩ／Ｏ接続システムにおいて、開始から前記第１のホストが前記Ｉ／Ｏにアクセスして行う処理を完了するまでの前記ホットリムーブ処理、及び、前記第２のホストが前記Ｉ／Ｏにアクセス可能になってから完了するまでの前記ホットプラグ処理は、排他制御が行われることを特徴とするＩ／Ｏ接続システム。
【請求項１０】
ネットワークを介して互いに接続された複数のホストと一乃至複数のＩ／Ｏとを備えるＩ／Ｏ接続システムでホストとＩ／Ｏとを接続する方法において、
前記ホストに前記Ｉ／Ｏを接続するための複数の処理からなるホットプラグ処理の中の前記Ｉ／Ｏにアクセスする直前までの処理である第１のホットプラグ処理が完了するのに応じて、前記ホットプラグ処理を停止する停止段階と、
前記ホストと前記Ｉ／Ｏとの間の接続が確立し、前記ホストが前記Ｉ／Ｏにアクセス可能になったことを検知する検知段階と、
前記検知に応じて、前記ホットプラグ処理の中の前記第１のホットプラグ処理以外の処理である第２のホットプラグ処理を開始する開始段階と
を含むことを特徴とするＩ／Ｏ接続方法。
【請求項１１】
請求項１０に記載のＩ／Ｏ接続方法において、
前記開始段階での前記第２のホットプラグ処理の開始は、ロードされた開始指示プログラムに従って動作する処理装置が指示し、
前記検知段階では、前記開始指示プログラム自身のアドレス空間にマップされるフラグが検知に応じて更新され、
前記処理装置は、前記フラグに応じて前記第２のホットプラグ処理の開始を指示する
ことを特徴とするＩ／Ｏ接続方法。
【請求項１２】
請求項１０及び１１のいずれかに記載のＩ／Ｏ接続方法において、
前記ホットプラグ処理は、ロードされたプログラムに従って動作する処理装置と、前記処理装置にて前記ホットプラグ処理を実行させるためのホットプラグ処理プログラムとにより実行され、
前記処理装置は、少なくとも前記第２のホットプラグ処理を実行中、排他制御を行う
ことを特徴とするＩ／Ｏ接続方法。
【請求項１３】
ネットワークを介して互いに接続された複数のホストと一乃至複数のＩ／Ｏを備えるＩ／Ｏ接続システムにてホストとＩ／Ｏとを接続するＩ／Ｏ接続方法において、
第１のホストとＩ／Ｏの間のホットリムーブ処理のうち、前記第１のホストが前記Ｉ／Ｏにアクセスして行う処理の完了を検知する第１の検知段階と、
前記第１の検知段階での検知に応じて、前記Ｉ／Ｏの接続先を前記第１のホストから前記第１のホストとは異なる第２のホストに切り替えるホスト切り替え段階と、
前記第１のホストにおける、前記第１のホストのＩ／Ｏスロットの電源停止を含む前記ホットリムーブ処理全体の完了に先行して、前記第２のホストと前記Ｉ／Ｏの間の、前記第２のホストのＩ／Ｏスロットの電源立ち上げを含むホットプラグ処理を開始する段階と、
前記ホットプラグ処理のうち、前記第２のホストが前記Ｉ／Ｏにアクセスすることなく行う処理の完了を検知して、前記ホットプラグ処理を停止する停止段階と、
前記第２のホストが前記Ｉ／Ｏにアクセス可能になったことを検知する第２の検知段階と、
前記第２の検知段階での検知に応じて、前記停止段階にて停止させた前記ホットプラグ処理を再開する段階と
を含むことを特徴とするＩ／Ｏ接続方法。
【請求項１４】
請求項１３に記載のＩ／Ｏ接続方法において、
前記ホストと前記ネットワークとを接続し、前記ホストとの間で第１のプロトコルにてデータ通信を行い、前記ネットワークとの間で第２のプロトコルにてデータ通信を行う上流中継装置を介して前記ホストと前記ネットワークは接続され、
前記ネットワークとの間で前記第２のプロトコルにてデータ通信を行い、前記Ｉ／Ｏとの間で前記第１のプロトコルにてデータ通信を行う下流中継装置を介して前記Ｉ／Ｏと前記ネットワークは接続され、
前記上流及び下流中継装置は、前記第１及び第２のプロトコルをトンネリングすることにより前記ホスト及びＩ／Ｏとの間の接続を確立し、
トンネリングする前記ホスト及びＩ／Ｏの組み合わせを変更することにより、前記ホスト及びＩ／Ｏの接続を切り替える
ことを特徴とするＩ／Ｏ接続方法。
【請求項１５】
請求項１３及び１４のいずれかに記載のＩ／Ｏ接続方法において、
前記Ｉ／Ｏ接続システムにおけるＩ／Ｏの接続を制御する制御装置が、Ｉ／Ｏをホットリムーブするホストに対して、ホットリムーブ処理の開始を指示すると共に、Ｉ／Ｏが次に割り当てられるホストを通知する信号を送信する段階と、
前記制御装置が、前記Ｉ／Ｏが次に割り当てられるホストに対して、ホットプラグ処理の開始を指示する信号を送信する段階と
を含むことを特徴とするＩ／Ｏ接続方法。
【請求項１６】
請求項１３乃至１５のいずれかに記載のＩ／Ｏ接続方法において、
前記第１の検知段階は、ロードされたプログラムに従って動作する第１の処理装置と、前記第１の処理装置にて前記第１の検知段階を実行させるプログラムであって、当該プログラム自身のアドレス空間にマップされるホットリムーブ通知フラグをアサートすることにより検知結果を出力する第１の検知プログラムとを備える前記第１のホストによって実行され、
前記停止段階は、ロードされたプログラムに従って動作する第２の処理装置と、前記第２の処理装置にて前記停止段階を実行させるプログラムであって、当該プログラム自身のアドレス空間にマップされるホットプラグ開始フラグをポーリングすることにより、前記第２のホストが前記Ｉ／Ｏにアクセスするための処理の再開を検知する停止プログラムとを備える前記第２のホストによって実行される
ことを特徴とするＩ／Ｏ接続方法。
【請求項１７】
請求項１６に記載のＩ／Ｏ接続方法において、
前記ホットリムーブ通知フラグのアサートを前記第１の検知段階での検知として、前記アサートに応じて前記ホスト切り替え段階を開始し、
ホストの切り替え完了に応じて、前記ホットプラグ開始フラグをアサートする段階を更に含む
ことを特徴とするＩ／Ｏ接続方法。
【請求項１８】
請求項１３乃至１７のいずれかに記載のＩ／Ｏ接続方法において、開始から前記第１のホストが前記Ｉ／Ｏにアクセスして行う処理を完了するまでの前記ホットリムーブ処理、及び、前記第２のホストが前記Ｉ／Ｏにアクセス可能になってから完了するまでの前記ホットプラグ処理は、排他制御が行われることを特徴とするＩ／Ｏ接続方法。
【請求項１９】
ネットワークを介して互いに接続された複数のホストと一乃至複数のＩ／Ｏとを備えるＩ／Ｏ接続システムのホストとして動作するコンピュータにて実行されるプログラムにおいて、
前記ホストに前記Ｉ／Ｏを接続するための複数の処理からなるホットプラグ処理を実行するホットプラグ処理手段、
前記ホットプラグ処理の中の前記Ｉ／Ｏにアクセスする直前までの処理である第１のホットプラグ処理を前記ホットプラグ処理手段が完了するのに応じて、前記ホットプラグ処理手段に対して、前記ホットプラグ処理の停止を指示する停止指示手段、及び、
前記ホストと前記Ｉ／Ｏとの間の接続が確立し、前記ホストが前記Ｉ／Ｏにアクセス可能になったことを検知する検知手段による検知に応じて、前記ホットプラグ処理手段に対し、前記ホットプラグ処理の中の前記第１のホットプラグ処理以外の処理である第２のホットプラグ処理の開始を指示する開始指示手段
としてコンピュータを機能させることを特徴とするプログラム。
【請求項２０】
請求項１９に記載のプログラムにおいて、
前記検知手段は、前記開始指示プログラム自身のアドレス空間にマップされるフラグを更新し、
前記開始指示手段は、前記フラグに応じて前記第２のホットプラグ処理の開始を指示する
ことを特徴とするプログラム。
【請求項２１】
請求項１９及び２０のいずれかに記載のプログラムにおいて、少なくとも前記第２のホットプラグ処理を実行中、排他制御が行われることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のホストと一乃至複数のＩ／Ｏ（入出力ポート）を接続したＩ／Ｏ接続システムに関し、特に、この種のＩ／Ｏ接続システムでのＩ／Ｏのホットプラグ及びホットリムーブに関する。
【背景技術】
【０００２】
図５を参照して従来のＩ／Ｏ接続システム３００について説明する。Ｉ／Ｏ接続システム３００は、ホスト１ａ、１ｂ、イーサネット（登録商標）スイッチ３、Ｉ／Ｏ６ａ、６ｂ、上流ＰＣＩエクスプレス−イーサネット（登録商標）ブリッジ７ａ、７ｂ（以下夫々上流ブリッジ７ａ、７ｂと記す）、システムマネージャ８、下流ブリッジ９ａ、９ｂからなる。
【０００３】
ホスト１ａは、ＣＰＵ１５ａと、メモリ１７ａと、ＣＰＵ１５ａ、メモリ１７ａ、上流ブリッジ７ａを相互に接続するノースブリッジ１６ａと、ＣＰＵ１５ａにソフトウェアとして読み込まれ、Ｉ／Ｏ６ａのホスト１ａへのホットプラグを処理するホットプラグ処理部１１ａと、ＣＰＵ１５ａにソフトウェアとして読み込まれ、Ｉ／Ｏ６ａ、６ｂのホスト１ａからのホットリムーブを処理するホットリムーブ処理部１２ａとを備える。ホスト１ｂも同様である。
【０００４】
スイッチ３は、上流ブリッジ７ａ、７ｂと、下流ブリッジ９ａ、９ｂとを相互に接続する。
【０００５】
Ｉ／Ｏ６ａ、６ｂは、ホスト１ａ、１ｂに要求に応じて割り当てられる。
【０００６】
上流ブリッジ７ａはホスト１ａとイーサネット（登録商標）とを接続する。上流ブリッジ７ｂはホスト１ｂとイーサネット（登録商標）とを接続する。
【０００７】
システムマネージャ８は、上流ブリッジ７ａ、７ｂと、下流ブリッジ９ａ、９ｂとの接続を設定する。
【０００８】
下流ブリッジ９ａはＩ／Ｏ６ａとイーサネット（登録商標）とを接続する。下流ブリッジ９ｂはＩ／Ｏ６ｂとイーサネット（登録商標）とを接続する。
【０００９】
次に、Ｉ／Ｏ接続システム３００でＩ／Ｏをホストで使用可能にする動作について説明する。ここでは、ホスト１ａにＩ／Ｏ６ａをホットプラグで使用可能にするときの動作を説明する。
【００１０】
システム管理者からの入力やシステム管理ソフトウェアからの制御により、システムマネージャ８は、制御フレームを用いて、下流ブリッジ９ａが上流ブリッジ７ａに接続することを設定する。本設定により、下流ブリッジ９ａと接続するＩ／Ｏ６ａが、上流ブリッジ７ａと接続するホスト１ａに割り当てられる。
【００１１】
制御フレームを受信した下流ブリッジ９ａは、新たに接続されたホスト１ａにＩ／Ｏ６ａが割り当てられたことを通知するため、ホスト１ａのＣＰＵ１５ａに割り込みを上げる。本割り込みにより、ホットプラグ処理部１１ａが呼び出され、ホットプラグ処理が開始される。
【００１２】
ホットプラグ処理では、ホスト１ａに割り当てられたＩ／Ｏ６ａが探索され、Ｉ／Ｏ６ａに該当するデバイスドライバがロードされ、ホスト１ａが保持する接続Ｉ／Ｏ情報に、割り当てられたＩ／Ｏ６ａが登録される。
【００１３】
以上の処理により、割り当てられたＩ／Ｏ６ａがホスト１ａで使用可能となる。ここで、下流ブリッジ９ａが行ったＣＰＵ１５ａへの割り込みは、Ｉ／Ｏ６ａが割り当てられたホスト１ａが接続する上流ブリッジ７ａが行っても良い。
【００１４】
次に、Ｉ／Ｏ接続システム３００で現にホストに接続されているＩ／Ｏをホットリムーブするときの動作について説明する。ここでは、ホスト１ａに接続されているＩ／Ｏ６ａをホットリムーブし、ホスト１ｂに接続するときの動作を例に説明する。
【００１５】
上流ブリッジ７ａは、接続していた下流ブリッジ９ａが、システムマネージャ８からの制御パケットにより別の上流ブリッジ７ｂと接続したことを検知し、ＣＰＵ１５ａに割り込みを上げる。本割り込みにより、ホットリムーブ処理部１２ａが呼び出され、ホットリムーブ処理が開始される。
【００１６】
ホットリムーブ処理では、ホスト１ａから割り当てが解除されたＩ／Ｏ６ａが探索され、Ｉ／Ｏ６ａに該当するデバイスドライバがアンロードされ、ホスト１ａが保持する接続Ｉ／Ｏ情報から割り当てを解除されたＩ／Ｏ６ａが削除される。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】特開２００７−２１９８７３（図１）
【発明の概要】
【発明が解決しようとする課題】
【００１８】
従来のＩ／Ｏ接続システムにおけるＩ／Ｏのホットプラグ処理では、ホットプラグ処理を開始する指示を受けた後、これに応じてＩ／Ｏスロットの電源を立ち上げて有効にする等の時間を要する処理を行い、次に、Ｉ／Ｏに対応するデバイスドライバをロードする処理や、ホストが保持する接続Ｉ／Ｏ情報を更新する処理を行うといった手順で処理が行われていた。
【００１９】
ホットプラグ処理を構成する処理群は、ホットプラグしようとしているＩ／Ｏに接続していない状態でも実行可能なものと、接続していなければ実行できないものがある。
【００２０】
本発明はこのような状況に鑑みてなされたものであり、本発明が解決しようとする課題は、ホットプラグ処理の開始を指示してから完了するまでの時間を短縮することである。
【課題を解決するための手段】
【００２１】
上述の課題を解決するため、本発明は次のような技術を提供する。
【００２２】
ネットワークを介して互いに接続された複数のホストと一乃至複数のＩ／Ｏとを備えるＩ／Ｏ接続システムにおいて、ホストにＩ／Ｏを接続するための複数の処理からなるホットプラグ処理を実行するホットプラグ処理手段（ホットプラグ処理部１１）と、ホットプラグ処理の中の予め定められた一乃至複数の処理である第１のホットプラグ処理をホットプラグ処理手段が完了するのに応じて、ホットプラグ処理手段に対して、ホットプラグ処理の停止を指示する停止指示手段（ホットプラグ同期部１３）と、ホストとＩ／Ｏとの間の接続が確立し、ホストがＩ／Ｏにアクセス可能になったことを検知する検知手段（上流ブリッジ２）と、検知手段による検知に応じて、ホットプラグ処理手段に対し、ホットプラグ処理の中の第１のホットプラグ処理以外の処理である第２のホットプラグ処理の開始を指示する開始指示手段（ホットプラグ同期部１３）とを備えることを特徴とするＩ／Ｏ接続システムを提供する。丸括弧（）内に本願実施例において対応する構成要素を示すが、これは理解を助けることを目的とするものであり、権利範囲を実施例の構成要素に限定することを目的とするものではないことに注意されたい。以下本項において同様である。また、第１のホットプラグ処理は例えばＩ／Ｏスロットの電源を立ち上げて有効にする処理を含む。第２のホットプラグ処理は例えばＩ／Ｏに対応するデバイスドライバをロードする処理や、ホストが保持する接続Ｉ／Ｏ情報を更新する処理を含む。
【００２３】
また、本発明は、他の一態様として、ネットワークを介して互いに接続された複数のホストと一乃至複数のＩ／Ｏを備えるＩ／Ｏ接続システムにおいて、第１のホストからＩ／Ｏをホットリムーブするための処理と、Ｉ／Ｏを第１のホストとは異なる第２のホストにホットプラグするための処理との少なくとも一部を並行して実行することを特徴とするＩ／Ｏ接続システムを提供する。
【００２４】
また、本発明は、他の一態様として、ネットワークを介して互いに接続された複数のホストと一乃至複数のＩ／Ｏを備えるＩ／Ｏ接続システムにおいて、第１のホストとＩ／Ｏの間のホットリムーブ処理のうち、第１のホストがＩ／Ｏにアクセスして行う処理の完了を検知する第１の検知手段（切替元ホストのホットリムーブ通知部、ステップＢ３）と、第１の検知手段での検知に応じて、Ｉ／Ｏの接続先を第１のホストから第１のホストとは異なる第２のホストに切り替えるホスト切り替え手段（下流ブリッジ、ステップＢ４）と、第１のホストにおけるホットリムーブ処理全体の完了に先行して、第２のホストとＩ／Ｏの間のホットプラグ処理を開始する手段（ホットプラグ同期部、ステップＡ２）と、ホットプラグ処理のうち、第２のホストがＩ／Ｏにアクセスすることなく行う処理の完了を検知して、ホットプラグ処理を停止する停止手段（切替先ホストのホットプラグ同期部、ステップＡ３）と、第２のホストがＩ／Ｏにアクセス可能になったことを検知する第２の検知手段（切替先ホストの上流ブリッジ、ステップＡ５）と、第２の検知手段での検知に応じて、停止手段が停止させたホットプラグ処理を再開する手段（切替先ホストのホットプラグ同期部、ステップＡ７）とを備えることを特徴とするＩ／Ｏ接続システムを提供する。
【００２５】
また、本発明は、他の一態様として、ネットワークを介して互いに接続された複数のホストと一乃至複数のＩ／Ｏとを備えるＩ／Ｏ接続システムでホストとＩ／Ｏとを接続する方法において、ホストにＩ／Ｏを接続するための複数の処理からなるホットプラグ処理の中の予め定められた一乃至複数の処理である第１のホットプラグ処理が完了するのに応じて、ホットプラグ処理を停止する停止段階と、ホストとＩ／Ｏとの間の接続が確立し、ホストがＩ／Ｏにアクセス可能になったことを検知する検知段階と、検知に応じて、ホットプラグ処理の中の第１のホットプラグ処理以外の処理である第２のホットプラグ処理を開始する開始段階とを含むことを特徴とするＩ／Ｏ接続方法を提供する。
【００２６】
また、本発明は、他の一態様として、ネットワークを介して互いに接続された複数のホストと一乃至複数のＩ／Ｏを備えるＩ／Ｏ接続システムにてホストとＩ／Ｏとを接続するＩ／Ｏ接続方法において、第１のホストからＩ／Ｏをホットリムーブするための処理と、Ｉ／Ｏを第１のホストとは異なる第２のホストにホットプラグするための処理との少なくとも一部を並行して実行することを特徴とするＩ／Ｏ接続方法を提供する。
【００２７】
また、本発明は、他の一態様として、ネットワークを介して互いに接続された複数のホストと一乃至複数のＩ／Ｏを備えるＩ／Ｏ接続システムにてホストとＩ／Ｏとを接続するＩ／Ｏ接続方法において、第１のホストとＩ／Ｏの間のホットリムーブ処理のうち、第１のホストがＩ／Ｏにアクセスして行う処理の完了を検知する第１の検知段階（切替元ホストのホットリムーブ通知部、ステップＢ３）と、第１の検知段階での検知に応じて、Ｉ／Ｏの接続先を第１のホストから第１のホストとは異なる第２のホストに切り替えるホスト切り替え段階（下流ブリッジ、ステップＢ４）と、第１のホストにおけるホットリムーブ処理全体の完了に先行して、第２のホストとＩ／Ｏの間のホットプラグ処理を開始する段階（ホットプラグ同期部、ステップＡ２）と、ホットプラグ処理のうち、第２のホストがＩ／Ｏにアクセスすることなく行う処理の完了を検知して、ホットプラグ処理を停止する停止段階（切替先ホストのホットプラグ同期部、ステップＡ３）と、第２のホストがＩ／Ｏにアクセス可能になったことを検知する第２の検知段階（切替先ホストの上流ブリッジ、ステップＡ５）と、第２の検知段階での検知に応じて、停止段階にて停止させたホットプラグ処理を再開する段階（切替先ホストのホットプラグ同期部、ステップＡ７）とを含むことを特徴とするＩ／Ｏ接続方法を提供する。
【００２８】
また、本発明は、他の一態様として、ネットワークを介して互いに接続された複数のホストと一乃至複数のＩ／Ｏとを備えるＩ／Ｏ接続システムのホストとして動作するコンピュータにて実行されるプログラムにおいて、ホストにＩ／Ｏを接続するための複数の処理からなるホットプラグ処理を実行するホットプラグ処理手段（ホットプラグ処理部１１）、ホットプラグ処理の中の予め定められた一乃至複数の処理である第１のホットプラグ処理をホットプラグ処理手段が完了するのに応じて、ホットプラグ処理手段に対して、ホットプラグ処理の停止を指示する停止指示手段（ホットプラグ同期部１３）、及び、ホストとＩ／Ｏとの間の接続が確立し、ホストがＩ／Ｏにアクセス可能になったことを検知する検知手段（上流ブリッジ２）による検知に応じて、ホットプラグ処理手段に対し、ホットプラグ処理の中の第１のホットプラグ処理以外の処理である第２のホットプラグ処理の開始を指示する開始指示手段（ホットプラグ同期部１３）としてコンピュータを機能させることを特徴とするプログラムを提供する。
【発明の効果】
【００２９】
本発明によれば、Ｉ／Ｏをホットプラグするホストにおいて、予めＩ／Ｏへのアクセスが可能となる前に、Ｉ／Ｏスロットの電源を立ち上げ、有効にするなど時間を必要とする処理を完了させた後、Ｉ／Ｏをホットプラグするので、ホットプラグ処理の開始を指示してから完了するまでの所要時間を短縮することが出来る。
【図面の簡単な説明】
【００３０】
【図１】本発明の実施例１であるＩ／Ｏ接続システム１００を説明するためのブロック図である。
【図２】Ｉ／Ｏ接続システム１００のホットプラグ処理を説明するためのフローチャートである。
【図３】Ｉ／Ｏ接続システム１００のホットリムーブ処理を説明するためのフローチャートである。
【図４】本発明の実施例２であるＩ／Ｏ接続システム２００を説明するためのブロック図である。
【図５】従来のＩ／Ｏ接続システム３００について説明するためのブロック図である。
【発明を実施するための形態】
【００３１】
実施例に即して本発明について説明する。
【実施例１】
【００３２】
本発明の実施例１であるＩ／Ｏ接続システム１００について説明する。図１を参照すると、Ｉ／Ｏ接続システム１００は、ホスト１ａ、１ｂ、上流ＰＣＩエクスプレス−イーサネット（登録商標）ブリッジ２ａ、２ｂ（以下それぞれ上流ブリッジ２ａ、２ｂと記す）、イーサネット（登録商標）スイッチ３（以下スイッチ３と記す）、システムマネージャ４、下流ＰＣＩエクスプレス−イーサネット（登録商標）ブリッジ５ａ、５ｂ（以下下流ブリッジ５ａ、５ｂと記す）、Ｉ／Ｏ６ａ、６ｂからなる。
【００３３】
ホスト１ａは、ホットプラグ処理部１１ａ、ホットリムーブ処理部１２ａ、ホットプラグ同期部１３ａ、ホットリムーブ通知部１４ａ、ＣＰＵ１５ａ、ノースブリッジ１６ａ、メモリ１７ａを備える。ホットプラグ処理部１１ａ、ホットリムーブ処理部１２ａ、ホットプラグ同期部１３ａ、ホットリムーブ通知部１４ａはプログラムであり、ＣＰＵ１５ａに読み込まれて実行される。ホットプラグ処理部１１ａはＩ／Ｏ６ａまたは６ｂのホスト１ａへのホットプラグを処理する。ホットリムーブ処理部１２ｂはＩ／Ｏ６ａまたは６ｂのホスト１ａからのホットリムーブを処理する。ホットプラグ同期部１３ａは、システムマネージャ４からの制御により、ホットプラグ処理部１１ａを呼び出す。ホットプラグ同期部１３ａは、ホットプラグ処理部１１ａが、ホスト１１ａに割り当てられたＩ／Ｏ６ａまたは６ｂにアクセスする直前までの動作を完了させ、ホットプラグ処理部１１ａの残りの動作を停止させる。また、ホットプラグ同期部１３ａは、ホットプラグ同期部１３ａ自身のアドレス空間にマップされたホットプラグ開始フラグ２１ａをポーリングし、ホットプラグ開始フラグ２１ａのアサートを確認すると、ホットプラグ処理部１１ａに残りの動作を実行させる。ホットリムーブ通知部１４ａはホットリムーブ処理部１２ａの動作を通知する。ホットリムーブ通知部１４ａは、ホットリムーブ処理部１２ａのＩ／Ｏ６ａへのアクセスが完了するステップを検知し、本ステップにおいてホットリムーブ通知部１４ａ自身のアドレス空間にマップされたホットリムーブ通知フラグ２２ａをアサートする。ノースブリッジ１６ａはＣＰＵ１５ａとメモリ１７ａと上流ブリッジ２ａとを相互に接続する。ホスト１ｂについてもホスト１ａと同様である。
【００３４】
上流ブリッジ２ａはホスト１ａとイーサネット（登録商標）とを接続する。上流ブリッジ２ａは、接続する下流ブリッジ５ａまたは５ｂとの間でＰＣＩエクスプレスのパケットであるＴＬＰ（Ｔｒａｎｓａｃｔｉｏｎ  Ｌａｙｅｒ  Ｐａｃｋｅｔ）をトンネリングする。上流ブリッジ２ａは、ホットプラグ開始フラグ２１ａとホットリムーブ通知フラグ２２ａとを備える。上流ブリッジ２ａは、ホスト１ａに割り当てられたＩ／Ｏ６ａまたは６ｂがアクセス可能となったことを下流ブリッジ５ａまたは５ｂが発行する制御フレームから検知し、ホットプラグ開始フラグ２１ａをアサートする。一方、ホットリムーブ通知フラグ２２ａがホットリムーブ通知部１４ａからアサートされた場合、上流ブリッジ２ａは、下流ブリッジ５ａまたは５ｂに、割り当てられていたＩ／Ｏ６ａまたは６ｂを他のホストに移動させるように制御フレームを用いて通知する。上流ブリッジ２ｂの機能及び構成は上流ブリッジ２ａに準じるため説明を省略する。
【００３５】
スイッチ３は上流ブリッジ２ａ、２ｂと下流ブリッジ５ａ、５ｂとを接続する。
【００３６】
システムマネージャ４は上流ブリッジ２ａ、２ｂと下流ブリッジ５ａ、５ｂとの接続を設定する。システム管理者やシステム管理ソフトの制御に基づいていずれかのホストがＩ／Ｏをホットリムーブするとき、システムマネージャ４は、そのホストに接続されている上流ブリッジに対し、ホットリムーブするＩ／Ｏと、そのＩ／Ｏを次に割り当てるホストとを制御フレームを用いて通知する。また、ホットリムーブされたＩ／Ｏを新たに割り当てようとするホストに接続された上流ブリッジに対し、そのＩ／Ｏをホットプラグすることを制御フレームを用いて予め通知し、そのホストのホットプラグ同期部にホットプラグ処理部を開始させる。
【００３７】
例えば、今、Ｉ／Ｏ６ａがホスト１ａに割り当てられており、次にホスト１ｂに割り当てられるものとする。システム管理者やシステム管理ソフトの指示に基づいてホスト１ａがＩ／Ｏ６ａをホットリムーブするとき、システムマネージャ４は、Ｉ／Ｏ６ａをホットリムーブすること、及び、Ｉ／Ｏ６ａを次にホスト１ｂに割り当てることを、制御フレームを用いて上流ブリッジ２ａに通知する。また、Ｉ／Ｏ６ａをホットプラグすることを制御フレームを用いて上流ブリッジ２ｂに通知する。この通知を受けて、ホスト１ｂでは、ホットプラグ同期部１３ｂがホットプラグ処理部１１ｂを開始させる。
【００３８】
下流ブリッジ５ａはＩ／Ｏ６ａとイーサネット（登録商標）とを接続する。同様に下流ブリッジ５ｂはＩ／Ｏ６ｂとイーサネット（登録商標）とを接続する。下流ブリッジ５ａは上流ブリッジ２ａ及び２ｂのいずれかと接続する。接続する上流ブリッジは、上流ブリッジの制御フレームにより変更可能である。下流ブリッジ５ｂも同様である。
【００３９】
Ｉ／Ｏ６ａ、６ｂは、入出力ポートに加えて、このポートに接続するためのインタフェースを備えるコンピュータ周辺機器からなり、要求に応じてホスト１ａ、１ｂに割り当てられる。ここで入出力ポートは具体的にはＰＣＩｅポートである。また、コンピュータ周辺機器の例としては、ＰＣＩｅインタフェースを備えるものであればよく、例えばハードディスク装置、光磁気ディスク装置等の補助記憶装置や、ネットワークインタフェースカードであってもよい。
【００４０】
次に、Ｉ／Ｏ接続システム１００においてホストにＩ／Ｏをホットプラグするときの動作について図２を参照して説明する。ここでは、ホスト１ａにＩ／Ｏ６ａをホットプラグする場合を例に挙げて説明する。ホスト１ａにＩ／Ｏ６ｂをホットプラグする場合、ホスト１ｂにＩ／Ｏ６ａをホットプラグする場合、ホスト１ｂにＩ／Ｏ６ｂをホットプラグする場合でも同様である。
【００４１】
上流ブリッジ２ａは、システムマネージャ４からＩ／Ｏ６ａの割り当てに備えホットプラグ処理を開始するよう制御フレームによって通知される（ステップＡ１）。
【００４２】
上流ブリッジ２ａは、割り込みによりホットプラグ同期部１３ａを呼び出す。呼び出されたホットプラグ同期部１３ａは、ホットプラグ処理部１１ａの動作を開始する（ステップＡ２）。
【００４３】
ホットプラグ同期部１３ａは、ホットプラグ処理部１１ａが割り当てられたＩ／Ｏ６ａを探索するため、Ｉ／Ｏ６ａにアクセスする直前までホットプラグ処理部１１ａの動作を完了させ、そのステップで停止させる（ステップＡ３）。Ｉ／Ｏ６ａにアクセスするのに先行して、ホットプラグ処理１１ａは、ホスト１ａのＩ／Ｏスロットの電源を立ち上げ、有効にするなど時間を必要とする処理を完了させる。
【００４４】
続いてホットプラグ同期部１３ａは、ホットプラグ開始フラグ２１ａをポーリングする（ステップＡ４）。ホットプラグ開始フラグ２１ａは、ホットプラグ同期部１３ａのアドレス空間にマップされているため、ポーリングの際にコンテキストスイッチのコストは発生しない。
【００４５】
上流ブリッジ２ａは、割り当てられるＩ／Ｏ６ａと接続する下流ブリッジ５ａが発行する制御フレームにより、上流ブリッジ２ａと下流ブリッジ５ａの間の接続が確立し、Ｉ／Ｏ６ａがアクセス可能となったことを検知する（ステップＡ５）。上流ブリッジ２ａと下流ブリッジ５ａの間の接続は、ＴＬＰを送受信するためのトンネルを確立することで完了する。
【００４６】
続いて上流ブリッジ２ａは、ホットプラグ開始フラグ２１ａをアサートする（ステップＡ６）。
【００４７】
ホットプラグ同期部１３ａは、ホットプラグ開始フラグ２１ａがアサートされたことを検知すると、ホットプラグ処理部１１ａに処理の再開を指示し、これに応答して、ホットプラグ処理部１１ａはＩ／Ｏ６ａにアクセスが必要となる最終部分を実行し、Ｉ／Ｏ６ａに対応するデバイスドライバをロードし、ホスト１ａが保持する接続Ｉ／Ｏ情報を更新する（ステップＡ７）。ここでロードするデバイスドライバはＰＣＩｅポートの先に接続されたコンピュータ周辺機器のデバイスドライバである。これらの処理の後でホットプラグ処理を完了する（ステップＡ８）。
【００４８】
なお、ステップＡ２〜Ａ８までの処理は、ＣＰＵ１５ａ上で、必要に応じて全て、またはその一部分が排他処理で実行され、他の処理へのコンテキストスイッチが防止される。例えば、ホットプラグ処理部１１ａは、処理の再開後は排他制御にて実行されることが好ましい。
【００４９】
次に、Ｉ／Ｏ接続システム１００においてホストからＩ／Ｏをホットリムーブするときの動作について図３を参照して説明する。ここでは、ホスト１ａに接続されているＩ／Ｏ６ａをホットリムーブする場合を例に挙げて説明する。ホットリムーブされたＩ／Ｏ６ａは次にホスト１ｂに接続されるものとする。ホスト１ａからＩ／Ｏ６ｂをホットリムーブする場合、ホスト１ｂからＩ／Ｏ６ａをホットリムーブする場合、ホスト１ｂからＩ／Ｏ６ｂをホットリムーブする場合でも同様である。
【００５０】
今、上流ブリッジ２ａと下流ブリッジ５ａの間でＴＬＰを送受信するトンネルが確立している。
【００５１】
システムマネージャ４は、ホットリムーブしようとしているＩ／Ｏが現に接続されているホストの上流ブリッジに対して制御フレームを発行し、そのＩ／Ｏをホットリムーブすることと、そのＩ／Ｏが次に接続するホストとを通知する（ステップＢ１）。ここではＩ／Ｏ６ａをホスト１ａからホットリムーブしてホスト１ｂに接続するので、システムマネージャ４は、Ｉ／Ｏ６ａをホットリムーブすることと、Ｉ／Ｏ６ａの次の接続先がホスト１ｂであることを、上流ブリッジ２ａに通知する制御フレームを発行する。
【００５２】
この制御フレームに応答して、上流ブリッジ２ａは、ＣＰＵ１５ａに割り込みを上げてホットリムーブ処理部１２ａを呼び出し、ホットリムーブ処理を開始させる（ステップＢ２）。
【００５３】
ホットリムーブ通知部１４ａは、ホットリムーブ処理部１２ａがＩ／Ｏ６ａへのアクセスを停止したステップを検知し、ホットリムーブ通知フラグ２２ａをアサートする（ステップＢ３）。ホットリムーブ通知フラグ２２ａは、ホットリムーブ通知部１４ａのアドレス空間にマップされているため、アサートの際にコンテキストスイッチのコストは発生しない。
【００５４】
ステップＢ１〜Ｂ３までの処理は、ＣＰＵ１５ａ上で、必要に応じて全て、またはその一部分が排他処理で実行され、他の処理へのコンテキストスイッチが防止される。
【００５５】
上流ブリッジ２ａは、ホットリムーブ通知部１４ａからホットリムーブ通知フラグ２２ａがアサートされると、割り当てが変更されるＩ／Ｏ６ａと接続する下流ブリッジ５ａに対して制御フレームを発行し、次にＩ／Ｏ６ａが割り当てられるホスト１ｂとの接続を開始するように通知する（ステップＢ４）。
【００５６】
制御フレームを受信した下流ブリッジ５ａは、次にＩ／Ｏ６ａが割り当てられるホスト１ｂと接続する上流ブリッジ２ｂとの接続処理を制御フレームにより開始する（ステップＢ５）。
【００５７】
一方、ステップＢ３でホットリムーブ通知フラグ２２ａをアサートした後も、ホスト１ａのホットリムーブ処理部１２ａはホットリムーブ処理が完了するまで処理を継続する（ステップＢ６）。ホットリムーブ通知フラグ２２ａをアサートした後、ホットリムーブ処理部１２ａは、Ｉ／Ｏスロットの無効化や電源の停止等、時間を必要とする処理を行う。
【００５８】
次に、上述のホットプラグ処理及びホットリムーブ処理により、Ｉ／Ｏに接続されているホストを切り替える動作について説明する。ここでは、ホスト１ａに接続されているＩ／Ｏ６ａをホスト１ｂに接続するものとして説明する。
【００５９】
システムマネージャ４は、Ｉ／Ｏ６ａが現に接続されているホスト１ａ側の上流ブリッジ２ａに対して制御フレームを発行し、Ｉ／Ｏ６ａをホットリムーブすることと、Ｉ／Ｏ６ａの次の接続先がホスト１ｂであることを通知する（ステップＢ１）。これを受けて、ホスト１ａとＩ／Ｏ６ａとの間で前述のホットリムーブ処理が行われる。
【００６０】
また、この上流ブリッジ２ａ宛の制御フレームの発行と同時に、システムマネージャ４は、上流ブリッジ２ｂに対し、Ｉ／Ｏ６ａの割り当てに備えるホットプラグ処理の開始を指示する制御フレームを発行する（ステップＡ１）。これを受けて、ホスト１ｂとＩ／Ｏ６ａとの間で前述のホットプラグ処理が行われる。
【００６１】
ホスト１ａでは、ホットリムーブ処理部１２ａがＩ／Ｏ６ａへのアクセスを停止すると、ホットリムーブ通知部１４ａが検知してホットリムーブ通知フラグ２２ａをアサートし、アサートされたホットリムーブ通知フラグ２ａに応じて、上流ブリッジ２ａが下流ブリッジ５ａに対し、ホスト１ｂへの接続を指示する制御フレームを発行する。
【００６２】
一方で、ホスト１ｂでは、ホスト１ａでのホットリムーブ処理と並行して、ホットリムーブ処理の完了を待たずに、ホットプラグ処理を開始し、ホットプラグ処理のうち、Ｉ／Ｏ６ａへのアクセスが必須ではない処理を実行した後、Ｉ／Ｏ６ａがアクセス可能になるのを待つ。ホスト１ａでのホットリムーブ処理が完了し、ホスト１ｂがＩ／Ｏ６ａにアクセス可能になると、ホットプラグ処理が再開される。
【００６３】
このようにして、Ｉ／Ｏの接続ホストを切り替える際のホットリムーブ処理とホットプラグ処理の一部を同時並行に行うことにより、切り替えの所要時間を短縮することが可能となる。
【００６４】
本実施例では、Ｉ／Ｏをホットリムーブするホストにおいて、Ｉ／Ｏへのアクセスが停止すると直ちに、Ｉ／Ｏに対し次に割り当てられるホストとの接続を開始させる。そのため、Ｉ／Ｏスロットを無効とし、電源を停止するなど時間を必要とする処理の完了を待たない。Ｉ／Ｏをホットリムーブ、ホットプラグのタイミングの同期に用いるフラグは、ホットリムーブ、ホットプラグを処理するソフトウェアのメモリ空間にマップし、他の処理へコンテキストスイッチさせない。また、ホットリムーブ、ホットプラグを処理するソフトウェアでは、これらの処理を高速に実行するため、処理の一部、または開始から完了まで、他のプロセスにコンテキストスイッチしないよう必要に応じて排他制御で処理を実行する。これらにより、ホットリムーブ、ホットプラグの処理を各ホストで並列で行い、ホスト間で高速にＩ／Ｏをホットリムーブ、ホットプラグすることが可能となり、Ｉ／Ｏを使用するサービスの停止時間を削減することができる。
【実施例２】
【００６５】
実施例１では、ホットプラグ開始フラグ２１ａ及び２１ｂは上流ブリッジ２ａ及び２ｂにそれぞれ実装されていた。これに対して、本発明の実施例２であるＩ／Ｏ接続システム２００では、図４に示すように、ホットプラグ開始フラグ１７１ａをメモリ１７ａに実装し、ホットプラグ開始フラグ１７１ｂをメモリ１７ｂに実装する。
【００６６】
ホットプラグ開始フラグ１７１ａはホットプラグ同期部１３ａのメモリ空間にマップされる。このため、ホットプラグ同期部１３ａがホットプラグ開始フラグ２１ａをポーリングする際にコンテキストスイッチのコストは発生しない。同様に、ホットプラグ開始フラグ１７１ｂはホットプラグ同期部１３ｂのメモリ空間にマップされ、ホットプラグ同期部１３ｂがホットプラグ開始フラグ２１ｂをポーリングする際にコンテキストスイッチのコストは発生しない。
【００６７】
以上、実施例１及２を挙げて本発明について説明したが、本発明はこれに限定されるものではなく、当業者が適宜変更を加えることが出来るのは勿論である。
【００６８】
例えば、実施例１及び２では、２つのホストと２つのＩ／Ｏとを接続するＩ／Ｏ接続システムを挙げて説明したが、３つ以上のホストと１つ以上のＩ／Ｏを備えるシステムであれば本発明を適用可能である。
【００６９】
また、実施例１及び２では、ホストとＩ／Ｏとを接続するネットワーク手段としてイーサネット（登録商標）を用いるシステムについて説明したが、本発明はこれに限定されるものではなく、同等の機能を実現する他のネットワーク手段であってもよい。
【符号の説明】
【００７０】
１ａ、１ｂ  ホスト
２ａ、２ｂ  上流ＰＣＩエクスプレス−イーサネット（登録商標）ブリッジ
３    イーサネット（登録商標）スイッチ
４    システムマネージャ
５ａ、５ｂ  下流ＰＣＩエクスプレス−イーサネット（登録商標）ブリッジ
６ａ、６ｂ  Ｉ／Ｏ
１１ａ、１１ｂ  ホットプラグ処理部
１２ａ、１２ｂ  ホットリムーブ処理部
１３ａ、１３ｂ  ホットプラグ同期部
１４ａ、１４ｂ  ホットリムーブ通知部
１５ａ、１５ｂ  ＣＰＵ
１６ａ、１６ｂ  ノースブリッジ
１７ａ、１７ｂ  メモリ
２１ａ、２１ｂ、１７１ａ、１７１ｂ  ホットプラグ開始フラグ
２２ａ、２２ｂ  ホットリムーブ通知フラグ
【図１】
0005645014.tif 000002
【図２】
0005645014.tif 000003
【図３】
0005645014.tif 000004
【図４】
0005645014.tif 000005
【図５】
0005645014.tif 000006