(57)【特許請求の範囲】
【請求項１】
自装置と通信先装置とを接続する複数のパスのうちデータの送信処理中ではなく、かつ、データ送信を終了した後にデータ送信を所定時間禁止する禁止期間内でもないパスが存在するか否かを判定する判定部と、
前記判定部によって、データの送信処理中ではなく、かつ、前記禁止期間内でもないパスが存在しないと判定された場合、データの送信処理を終了したが禁止期間を経過していないパスをデータ送信用に選択する選択部と
を有することを特徴とする通信制御装置。
【請求項２】
前記選択部は、前記判定部によって、前記データの送信処理を終了したが禁止期間を経過していないパスが複数存在すると判定された場合には、当該パスのうち禁止期間の残り時間が最も短いパスをデータ送信用に選択することを特徴とする請求項１に記載の通信制御装置。
【請求項３】
データの送信処理を終了したパスすべてが禁止期間を経過した場合、複数のパスのうちデータの送信処理中ではなく、かつ、前記禁止期間内でもないパスが存在するか否かを１番目に判定するパスである基準パスを所定の順序に基づいて切替る切替部を更に有することを特徴とする請求項１または２に記載の通信制御装置。
【請求項４】
前記切替部により基準パスが切替えられた場合、前記切替部により切替えられる前に基準パスであったパスの電源をオフにする電源制御部を更に有することを特徴とする請求項３に記載の通信制御装置。
【請求項５】
前記選択部は、前記判定部によって、データの送信処理中ではなく、かつ、前記禁止期間内でもないパスが存在すると判定された場合、当該パスをデータ送信用に選択することを特徴とする請求項１に記載の通信制御装置。
【請求項６】
前記選択部は、前記判定部によって、すべてのパスがデータ送信中であると判定された場合、所定の時間が経過後に、データの送信処理中ではなく、かつ、前記禁止期間内でもないパスが存在するか否かを再び前記判定部に判定させることを特徴とする請求項１に記載の通信制御装置。
【請求項７】
前記判定部は、前記禁止期間が完了したことを示す禁止完了応答をいずれかのパスから取得した場合、当該パスが前記禁止期間を経過したと判定することを特徴とする請求項１〜６のいずれか一つに記載の通信制御装置。
【請求項８】
前記判定部は、データの送信処理が終了したことを示す送信終了応答をいずれかのパスから取得し、前記禁止期間を予め記憶する記憶部から読み出した前記禁止期間と前記送信終了応答を取得した時間とに基づいて当該パスが前記禁止期間を経過したか否かを判定することを特徴とする請求項１〜６のいずれか一つに記載の通信制御装置。
【請求項９】
複数パスごとに設けられ、前記複数パスを介して接続された通信先装置とのデータ送信を行う複数のインターフェース部と、前記通信先装置へのデータの送信処理をいずれかのインターフェース部に割り当てる通信制御部とを有する情報処理装置において、
前記インターフェース部の各々は、
データ送信を終了後のパスに対する新たなデータの送信処理を所定の期間禁止する禁止期間を設定し、
前記通信制御部は、
データの送信処理中でもなく前記禁止期間内にもないインターフェース部が存在せず、かつ、前記禁止期間内にあるインターフェース部が存在する場合には、前記禁止期間内にあるインターフェース部に対して新たなデータの送信処理を割り当てる
ことを特徴とする情報処理装置。
【請求項１０】
通信制御装置が、
自装置と通信先装置とを接続する複数のパスのうちデータの送信処理中ではなく、かつ、データ送信を終了した後にデータ送信を所定時間禁止する禁止期間内でもないパスが存在するか否かを判定し、
データの送信処理中ではなく、かつ、前記禁止期間内でもないパスが存在しないと判定した場合、データの送信処理を終了したが禁止期間を経過していないパスをデータ送信用に選択する
処理を実行することを特徴とするパス選択方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御装置、情報処理装置及びパス選択方法に関する。
【背景技術】
【０００２】
従来、サーバは、ＩＯ装置との間で入出力処理を実行する場合、ＩＯ（Input  Output）装置に対してコマンドを発行する。図１６を用いて、ＩＯ装置との間で入出力処理を実行するサーバについて説明する。
【０００３】
図１６は、ＩＯ装置との間で入出力処理を実行するサーバの構成を示す図である。図１６に示すように、サーバ９１０は、Ｉ／Ｆ（Inter/Face）９１１〜９１４、ＣＰＵ（Central  processing  Unit）９１５を有し、Ｉ／Ｆ９１１〜９１４及びＣＰＵ９１５は、それぞれ内部バスで接続されている。また、ＩＯ装置９２０は、Ｉ／Ｆ９２１〜９２４、Ｉ／Ｏ部９２５を有し、Ｉ／Ｆ９２１〜９２４及びＩ／Ｏ部９２５はそれぞれ内部バスで接続されている。
【０００４】
また、サーバ９１０が有するＩ／Ｆ９１１は、ＩＯ装置９２０が有するＩ／Ｆ９２１と光ケーブル等のパス９０１によって接続される。同様に、Ｉ／Ｆ９１２とＩ／Ｆ９２２との間はパス９０２によって接続され、Ｉ／Ｆ９１３とＩ／Ｆ９２３との間はパス９０３によって接続され、Ｉ／Ｆ９１４とＩ／Ｆ９２４との間はパス９０４によって接続される。
【０００５】
このようなサーバ９１０が、例えばパス９０１を介してＩＯ装置９２０と通信する場合、ＣＰＵ９１５は、パス９０１と接続されるＩ／Ｆ９１１に対してコマンドを発行する。そして、Ｉ／Ｆ９１１は、ＣＰＵ９１５により発行されたコマンドをＩ／Ｆ９１１の規格に適合する信号に変換しパス９０１へ送信する。ＩＯ装置９２０は、サーバ９１０から受信した信号をＩ／Ｆ９２１でコマンドに変換しＩ／Ｏ部９２５へ出力する。なお、ＩＯ装置９２０からサーバ９１０に対して通信を行う場合には、サーバ９１０とＩＯ装置９２０との関係が入れ替わり同様の処理を実行することになる。
【０００６】
また、ＣＰＵ９１５は、Ｉ／Ｆ９１１〜９１４のうちのいずれのＩ／Ｆに対してコマンドを発行するかを選択する。例えば、ＣＰＵ９１５は、Ｉ／Ｆを選択する際、最初に選択したＩ／Ｆに接続されるパスを基準パスとし、基準パスをはじめとして各Ｉ／Ｆに接続されるパスが使用可能であるか否かを順次判定する。
【０００７】
図１７を用いて、基準パスを設定した場合のパスの選択方法について説明する。図１７は、基準パスを設定した場合のパスの選択方法を示す図である。ここでは、パス９０１を基準パスとしＣＰＵ９１５がコマンドＣ１、コマンドＣ２、コマンドＣ３、コマンドＣ４、コマンドＣ５を順に発行する場合を説明する。
【０００８】
図１７に示すように、ＣＰＵ９１５は、コマンドＣ１を発行する際に、まず基準パス９０１を選択し、使用可能であるか否かを判定する。ＣＰＵ９１５は、パス９０１が使用可能であると判定すると、パス９０１が接続されるＩ／Ｆ９１１に対してコマンドＣ１を発行する。この結果、パス９０１の状態は、コマンド実行中であることを示すＥｘｅｃｕｔｅに変更される。ＣＰＵ９１５は、パス９０１の状態がＥｘｅｃｕｔｅである間、このパス９０１が接続されるＩ／Ｆ９１１に対して別のコマンドを発行しない。
【０００９】
次に、ＣＰＵ９１５は、コマンドＣ２を発行する際に、まず基準パス９０１を選択し、使用可能であるか否かを判定する。ＣＰＵ９１５は、基準パス９０１の状態がＥｘｅｃｕｔｅであるので、使用可能でないと判定する。そして、ＣＰＵ９１５は、次にパス９０２を選択し、使用可能であるか否かを判定する。ＣＰＵ９１５は、パス９０２が使用可能であると判定すると、パス９０２が接続されるＩ／Ｆ９１２に対してコマンドＣ２を発行する。この結果、パス９０２の状態は、Ｅｘｅｃｕｔｅに変更される。なお、ＣＰＵ９１５がコマンドＣ３〜Ｃ５を発行する場合も同様である。
【００１０】
また、使用するパスをラウンドロビン方式で選択し、コマンドを発行する技術も知られている。図１８を用いて、ラウンドロビン方式によるパスの選択方法について説明する。図１８は、ラウンドロビン方式によるパスの選択方法を示す図である。ここでは、ＣＰＵ９１５がコマンドＣ１、コマンドＣ２、コマンドＣ３、コマンドＣ４、コマンドＣ５を順に発行し、使用するパスをパス９０１、パス９０２、パス９０３、パス９０４の順に選択する場合を説明する。
【００１１】
図１８に示すように、ＣＰＵ９１５は、コマンドＣ１をパス９０１が接続されるＩ／Ｆ９１１に発行し、コマンドＣ２が接続されるＩ／Ｆ９１２をパス９０２に発行する。また、ＣＰＵ９１５は、コマンドＣ３をパス９０３が接続されるＩ／Ｆ９１３に発行し、コマンドＣ４をパス９０４が接続されるＩ／Ｆ９１４に発行する。そして、ＣＰＵ９１５は、パス９０１を介したコマンドＣ１の送信を終了した場合に、コマンドＣ５をパス９０１が接続されるＩ／Ｆ９１１に発行する。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００７−２５８３９号公報
【特許文献２】特開平７−２２５７３７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら、上述した従来の技術では、パスを効率的に使用することができないという課題がある。
【００１４】
具体的には、基準パスを設定した場合、基準パスばかりを使用することが起こりうる。例えば、基準パス９０１がコマンドＣ１の送信終了後に、新たなコマンドＣ２を発行する場合、ＣＰＵ９１５は、基準パス９０１が接続されるＩ／Ｆ９１１にコマンドＣ２を発行する。同様に、コマンドＣ２の送信終了後に、新たなコマンドＣ３を発行する場合、ＣＰＵ９１５は、基準パス９０１が接続されるＩ／Ｆ９１１にコマンドＣ３を発行する。この結果、基準パス９０１が接続されるＩ／Ｆ９１１及びＩ／Ｆ９２１の負荷が上がってしまい、発熱量が増大してしまう。Ｉ／Ｆ９１１及びＩ／Ｆ９２１が有する電子部品は熱に弱いため、発熱量が増大すると電子部品の磨耗につながる。
【００１５】
また、使用するパスをラウンドロビン方式で選択する場合、順番にパス９０１〜９０４をすべて使用することになる。コマンドの発行間隔が長い場合、コマンドの発行数に対するパス数が過剰になる。また、この場合、すべてのパス９０１〜９０４に電力を供給することになり、消費電力も多くなる。
【００１６】
１つの側面では、パスを効率的に使用することができる通信制御装置、情報処理装置及びパス選択方法を提供することを目的とする。
【課題を解決するための手段】
【００１７】
第１の案では、通信制御装置は、自装置と通信先装置とを接続する複数のパスのうちデータの送信処理中ではなく、かつ、データ送信を終了した後にデータ送信を所定時間禁止する禁止期間内でもないパスが存在するか否かを判定する。そして、通信制御装置は、データの送信処理中ではなく、かつ、前記禁止期間内でもないパスが存在しないと判定した場合、データの送信処理を終了したが禁止期間を経過していないパスをデータ送信用に選択する。
【発明の効果】
【００１８】
パスを効率的に使用することができる。
【図面の簡単な説明】
【００１９】
【図１】図１は、実施例１に係る情報処理システムの構成を示すブロック図である。
【図２】図２は、情報処理システムにおけるコマンド実行処理を示す図である。
【図３】図３は、低負荷時のパス選択処理を示す図である。
【図４】図４は、中負荷時のパス選択処理を示す図である。
【図５】図５は、高負荷時のパス選択処理を示す図である。
【図６】図６は、ＣＨＥの構成を示すブロック図である。
【図７】図７は、禁止期間の設定を示す図である。
【図８】図８は、ＩＯＰの構成を示す機能ブロック図である。
【図９】図９は、タイムスタンプ管理テーブルとして記憶される情報の一例を示す図である。
【図１０】図１０は、基準パス管理テーブルとして記憶される情報の一例を示す図である。
【図１１】図１１は、コマンドの実行中ではなく、かつ、禁止期間内でもないパスが存在する場合のパス選択処理の動作を示す図である。
【図１２】図１２は、コマンドの実行中ではなく、かつ、禁止期間内でもないパスが存在しない場合のパス選択処理の動作を示す図である。
【図１３】図１３は、ＩＯＰによる基準パス変更処理の動作を示す図である。
【図１４】図１４は、実施例１に係るＩＯＰによるコマンド発行処理の処理手順を示すフローチャートである。
【図１５】図１５は、実施例１に係るＩＯＰによるパス選択処理の処理手順を示すフローチャートである。
【図１６】図１６は、ＩＯ装置との間で入出力処理を実行するサーバの構成を示す図である。
【図１７】図１７は、基準パスを設定した場合のパスの選択方法を示す図である。
【図１８】図１８は、ラウンドロビン方式によるパスの選択方法を示す図である。
【発明を実施するための形態】
【００２０】
以下に、本願の開示する通信制御装置、情報処理装置及びパス選択方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００２１】
［システム構成］
図１は、実施例１に係る情報処理システムの構成を示すブロック図である。図１に示すように、情報処理システム１は、サーバ１０と、ＩＯ（Input  Output）装置２０とを有する。サーバ１０とＩＯ装置２０とは、パス２〜５によって互いに通信可能に接続される。
【００２２】
サーバ１０は、例えばメインフレーム型のサーバであり、ＭＳ（Main  Storage）１１、ＣＨＥ（Channel  Element）１２ａ〜１２ｄ、ＣＰＵ（Central  processing  Unit）１３、ＩＯＰ（I/O  Processor）１４を有する。ＭＳ１１は、演算処理に用いる各種情報を記憶する。
【００２３】
ＣＨＥ１２ａ〜１２ｄは、ＩＯ装置２０と行う通信のインターフェース部である。ＣＨＥ１２ａは、パス２を介してＩＯ装置２０と接続され、ＣＨＥ１２ｂは、パス３を介してＩＯ装置２０と接続され、ＣＨＥ１２ｃは、パス４を介してＩＯ装置２０と接続され、ＣＨＥ１２ｄは、パス５を介してＩＯ装置２０と接続される。なお、サーバ１０と、ＩＯ装置２０とを接続するパス、サーバ１０及びＩＯ装置２０が各々備えるＣＨＥの数は、４つに限らず、複数であればいずれであってもよい。
【００２４】
ＩＯＰ１４は、ＣＰＵ１３からのデータ入出力要求に応じて、ＣＨＥ１２ａ〜１２ｄに対してデータ入出力を要求するコマンドを発行する。ＣＨＥ１２ａ〜１２ｄは、ＩＯＰ１４から受付けたコマンドを実行する。具体的には、ＣＨＥ１２ａ〜１２ｄは、ＩＯＰ１４から受付けたコマンドをデータ入出力を要求する信号へ変換し、変換した信号をＩＯ装置２０へ送信する。そして、ＣＨＥ１２ａ〜１２ｄは、ＩＯＰ１４から受付けたコマンドの実行が完了した場合、コマンドの実行が完了したことを示す応答（以下、ＣＭＤ  Ｅｎｄと記す）をＩＯＰ１４に通知する。
【００２５】
また、ＣＨＥ１２ａ〜１２ｄは、コマンドの実行が完了後に、所定の時間パスの使用を禁止することを示す禁止期間を設定する。そして、ＣＨＥ１２ａ〜１２ｄは、禁止期間の終了後に、パスの使用を許可し、受付けたコマンドを実行する。
【００２６】
ＣＰＵ１３は、各種演算処理を実行する。また、ＣＰＵ１３は、ＩＯ装置２０に対してデータ入出力を要求する信号を送信する場合、ＩＯＰ１４に、対応するコマンドを発行するように通知する。この結果、ＩＯＰ１４は、ＣＨＥを選択することにより、データ入出力を要求する信号をＩＯ装置２０へ送信するパスを選択する。
【００２７】
ＩＯＰ１４は、ＭＳ１１と、ＣＨＥ１２ａ〜１２ｄと、ＣＰＵ１３と接続され、例えばＣＰＵ１３によるＭＳ１１へのデータの入出力を制御する。また、ＩＯＰ１４は、ＩＯ装置２０から受付けたデータをＭＳ１１に入力することを制御する。なお、ＩＯＰ１４は、サーバ１０において、ＣＰＵ１３の処理負荷を軽減させるために設けられたプロセッサである。
【００２８】
ＩＯＰ１４は、ＣＰＵ１３からＩＯ装置２０へのデータ入出力の要求を受付けた場合、対応するコマンドを発行するＣＨＥを選択する。例えば、ＩＯＰ１４は、コマンドの実行中でもなく禁止期間内にもないＣＨＥが存在するか否かを判定する。ここで、ＩＯＰ１４は、データの送信処理中でもなく禁止期間内にもないＣＨＥが存在すると判定した場合、当該ＣＨＥに対してコマンドを発行する。
【００２９】
また、ＩＯＰ１４は、コマンドの実行中でもなく禁止期間内にもないＣＨＥが存在せず、かつ、禁止期間内にあるＣＨＥが存在する場合には、禁止期間内にあるＣＨＥに対して新たなコマンドを発行する。また、ＩＯＰ１４は、すべてのＣＨＥがコマンド実行中であると判定した場合、所定の時間が経過後に再びコマンドの実行中でもなく禁止期間内にもないＣＨＥが存在するか否かを判定する。
【００３０】
ＩＯ装置２０は、ＩＯ部２１、ＣＨＥ２２ａ〜２２ｄ、ＩＯ制御部２３を有する。
【００３１】
ＩＯ部２１は、例えば、ＨＤＤ（Hard  Disk  Drive）などの記憶装置であり、データやプログラム等を記憶する。なお、ここでは、ＩＯ部２１をＨＤＤなどの記憶装置として説明するが、ＨＤＤなどの記憶装置に限定されず、例えば、各種センサ、プリンタ、ディスプレイ等の各種のデータの入出力装置であってもよい。
【００３２】
ＣＨＥ２２ａ〜２２ｄは、サーバ１０とのインターフェースである。ＣＨＥ２２ａは、パス２を介してサーバ１０と接続され、ＣＨＥ２２ｂは、パス３を介してサーバ１０と接続され、ＣＨＥ２２ｃは、パス４を介してサーバ１０と接続され、ＣＨＥ２２ｄは、パス５を介してサーバ１０と接続される。
【００３３】
ＩＯ制御部２３は、ＣＨＥ２２ａ〜２２ｄを介して受付けたデータをＩＯ部２１に入出力することを制御する。
【００３４】
［情報処理システムにおけるコマンド実行処理］
次に、図２を用いて、情報処理システム１におけるコマンド実行処理について説明する。図２は、情報処理システム１におけるコマンド実行処理を示す図である。なお、ここでは、ＣＨＥ１２ａ〜１２ｄを代表してＣＨＥ１２ａについて説明する。
【００３５】
ＣＨＥ１２ａは、ＩＯＰ１４からコマンドを受付けた場合（ステップＳ１）、パス２の状態をＩＤＬＥからＥｘｅｃｕｔｅに変更してコマンドを実行する（ステップＳ２）。ここで、パスの状態がＩＤＬＥであることは、コマンド実行中ではなく、かつ、禁止期間内でもない状態であり、コマンドの実行が可能であることを示す。また、パスの状態がＥｘｅｃｕｔｅであることは、コマンド実行中であることを示す。パス２の状態がＥｘｅｃｕｔｅである間、ＩＯＰ１４は、このパス２に対して別のコマンド発行を行わない。
【００３６】
ＣＨＥ１２ａは、コマンドの実行が完了した場合、ＣＭＤ  ＥｎｄをＩＯＰ１４に通知する（ステップＳ３）。続いて、ＣＨＥ１２ａは、パス２の状態をＥｘｅｃｕｔｅからＬｏｃｋに変更する（ステップＳ４）。ここで、パスの状態がＬｏｃｋであることは、コマンド実行中ではないが、禁止期間であることを示す。すなわち、ＣＭＤ  Ｅｎｄを通知されたＩＯＰ１４は、処理を再開できるが、同一のＣＨＥに対してコマンドを発行する場合、禁止期間を経過するまで待つことになる。
【００３７】
そして、ＣＨＥ１２ａは、禁止期間が経過後に、パスの状態をＬｏｃｋからＩＤＬＥに変更する（ステップＳ５）。
【００３８】
［パス選択処理］
次に図３〜図５を用いてパス選択処理について説明する。図３は、低負荷時のパス選択処理を示す図であり、図４は、中負荷時のパス選択処理を示す図であり、図５は、高負荷時のパス選択処理を示す図である。
【００３９】
なお、低負荷時とは、例えば、一つ前に発行されたコマンドがＣＨＥで実行され禁止期間が終了した後に次のコマンドが発行される場合をいう。また、中負荷時とは、例えば、一つ前に発行されたコマンドがＣＨＥで実行され禁止期間が終了する以前に次のコマンドが発行されるが、全てのパスが同時にＩＤＬＥでない状態とはならない場合をいう。また、高負荷時とは、例えば、一つ前に発行されたコマンドがＣＨＥで実行され禁止期間が終了する以前に次のコマンドが発行され、かつ、全てのパスが同時にＩＤＬＥでない状態が発生することがある場合をいう。なお、ＩＤＬＥとは、当該のパスが使用可能である状態をいう。
【００４０】
（低負荷時のパス選択）
図３に示すように、ＩＯＰ１４は、コマンドＣ１の発行指示をＣＰＵ１３から受付けた場合、パス２〜パス５の全ての状態がＩＤＬＥであるので、パス２が接続されるＣＨＥ１２ａに対してコマンドを発行する。
【００４１】
また、ＩＯＰ１４は、コマンドＣ２の発行指示をＣＰＵ１３から受付けた場合、パス２〜パス５の全ての状態がＩＤＬＥであるので、パス２と接続するＣＨＥ１２ａにコマンドを発行する。同様に、ＩＯＰ１４は、コマンドＣ３の発行をＣＰＵ１３から受付けた場合、パス２〜パス５の全ての状態がＩＤＬＥであるので、パス２が接続されるＣＨＥ１２ａに対してコマンドを発行する。
【００４２】
（中負荷時のパス選択）
図４に示すように、ＩＯＰ１４は、コマンドＣ１の発行指示をＣＰＵ１３から受付けた場合、パス２〜パス５の全ての状態がＩＤＬＥであるので、パス２が接続されるＣＨＥ１２ａに対してコマンドを発行する。
【００４３】
そして、ＩＯＰ１４は、コマンドＣ２の発行指示をＣＰＵ１３から受付けた場合、パス２の状態がＥｘｅｃｕｔｅであり、パス３〜パス５の状態がＩＤＬＥであるので、パス３が接続されるＣＨＥ１２ｂに対してコマンドを発行する。
【００４４】
また、ＩＯＰ１４は、コマンドＣ３の発行指示をＣＰＵ１３から受付けた場合、パス２の状態がＬｏｃｋであり、パス３の状態がＥｘｅｃｕｔｅであり、パス４とパス５の状態がＩＤＬＥであるので、パス４が接続されるＣＨＥ１２ｃに対してコマンドを発行する。
【００４５】
続いて、ＩＯＰ１４は、コマンドＣ４の発行指示をＣＰＵ１３から受付けた場合、パス２とパス５の状態がＩＤＬＥであり、パス３の状態がＬｏｃｋであり、パス４の状態がＥｘｅｃｕｔｅであるので、パス２が接続されるＣＨＥ１２ａに対してコマンドを発行する。
【００４６】
また、ＩＯＰ１４は、コマンドＣ５の発行指示をＣＰＵ１３から受付けた場合、パス２の状態がＥｘｅｃｕｔｅであり、パス３とパス５の状態がＩＤＬＥであり、パス４の状態がＬｏｃｋであるので、パス３が接続されるＣＨＥ１２ｂに対してコマンドを発行する。
【００４７】
そして、ＩＯＰ１４は、コマンドＣ６の発行指示をＣＰＵ１３から受付けた場合、パス２の状態がＬｏｃｋであり、パス３の状態がＥｘｅｃｕｔｅであり、パス４とパス５の状態がＩＤＬＥであるので、パス４が接続されるＣＨＥ１２ｃに対してコマンドを発行する。
【００４８】
（高負荷時のパス選択）
図５に示すように、ＩＯＰ１４は、コマンドＣ１の発行指示をＣＰＵ１３から受付けた場合、パス２〜パス５の全ての状態がＩＤＬＥであるので、パス２が接続されるＣＨＥ１２ａに対してコマンドを発行する。
【００４９】
そして、ＩＯＰ１４は、コマンドＣ２の発行指示をＣＰＵ１３から受付けた場合、パス２の状態がＥｘｅｃｕｔｅであり、パス３〜パス５の状態がＩＤＬＥであるので、パス３が接続されるＣＨＥ１２ｂに対してコマンドを発行する。
【００５０】
また、ＩＯＰ１４は、コマンドＣ３の発行指示をＣＰＵ１３から受付けた場合、パス２とパス３の状態がＥｘｅｃｕｔｅであり、パス４とパス５の状態がＩＤＬＥであるので、パス４が接続されるＣＨＥ１２ｃに対してコマンドを発行する。
【００５１】
続いて、ＩＯＰ１４は、コマンドＣ４の発行指示をＣＰＵ１３から受付けた場合、パス２の状態がＬｏｃｋであり、パス３とパス４の状態がＥｘｅｃｕｔｅであり、パス５の状態がＩＤＬＥであるので、パス５が接続されるＣＨＥ１２ｄに対してコマンドを発行する。
【００５２】
また、ＩＯＰ１４は、コマンドＣ５の発行指示をＣＰＵ１３から受付けた場合、パス２の状態がＬｏｃｋであり、パス３〜パス５の状態がＥｘｅｃｕｔｅであり、いずれのパスの状態もＩＤＬＥでないと判定する。この場合、ＩＯＰ１４は、パスの状態がＬｏｃｋであるパス２が接続されるＣＨＥ１２ａに対してコマンドを発行する。
【００５３】
上述してきたように、情報処理システム１では、パスの利用の偏りを抑える事で基板上の素子の負荷の偏りを抑えることで、素子の発熱分布の偏りを緩和する事ができる。
【００５４】
［ＣＨＥの構成］
次に、図６を用いてＣＨＥの構成を説明する。図６は、ＣＨＥの構成を示すブロック図である。図６に示すように、ＣＨＥ１２ａは、通信部３１とＩＣ（Integrated  Circuit）部３２とＳＤ（Serial  Desirial）部３３とＯＭ（optical  module）部３４とを有する。通信部３１とＩＣ部３２との間、ＩＣ部３２とＳＤ部３３との間は、複数のバスを介して接続される。また、ＳＤ部３３とＯＭ部３４との間は、単一のバスを介して接続される。
【００５５】
通信部３１は、ＩＯＰ１４からパラレルに入力されたコマンドをＩＣ３２に出力する。ＩＣ部３２は、通信部３１からパラレルに入力されたコマンドを解釈してＳＤ部３３に出力する。ＳＤ部３３は、ＩＣ部３２からパラレルに入力されたコマンドをシリアル化し、ＯＭ部３４に出力する。ＯＭ部３４は、シリアル化されたコマンドを光信号へ変換してパス２へ送出する。
【００５６】
また、ＯＭ部３４は、パス２を介してシリアルに受信した光信号を電気信号へ変換してＳＤ部３３へ出力する。また、ＳＤ部３３は、ＯＭ部３４からシリアルに入力された信号をパラレル化してＩＣ部３２へ出力する。また、通信部３１は、ＩＣ部３２からパラレルに入力された信号をＣＰＵ１３へ出力する。
【００５７】
このＣＨＥ１２ａにおいて、ＩＣ部３２は、禁止期間を設定する。この禁止期間は、データ送信によりＳＤ部３３やＯＭ部３４に生じる熱を放熱するまでに要する期間に応じて設定される。すなわち、禁止期間は、ＳＤ部３３やＯＭ部３４の放熱性に基づいて適切に設定される。図７を用いて、禁止期間の設定について説明する。図７は、禁止期間の設定を示す図である。
【００５８】
図７に示すように、ＣＨＥ１２ａが、受付けたコマンドを実行すると、ＳＤ部３３やＯＭ部３４の温度はＴ０からＴ１まで上昇する。ＯＭ部３４の温度は、コマンドの実行中、温度Ｔ１が継続し、コマンドの実行が終了すると、Ｔ０まで再び低下する。
【００５９】
禁止期間は、この温度Ｔ１から温度Ｔ２まで冷却するまでに要する時間に設定される。なお、この禁止期間は、ＳＤ部３３やＯＭ部３４の放熱性に応じて設定され、温度Ｔ２の値は、ＳＤ部３３やＯＭ部３４の放熱性に応じて、温度Ｔ０及び温度Ｔ１の値に基づいて任意に設定可能である。
【００６０】
［ＩＯＰの構成］
次に、図８を用いてＩＯＰ１４の構成を説明する。図８は、ＩＯＰ１４の構成を示す機能ブロック図である。図８に示すように、ＩＯＰ１４は、タイムスタンプ管理テーブル５１と基準パス管理テーブル５２とコマンド処理部５３とパス状態判定部５４とパス選択部５５と応答受信部５６と基準パス変更部５７と電源制御部５８とを有する。
【００６１】
タイムスタンプ管理テーブル５１は、コマンド実行処理に関する時刻を示す情報を記憶する。図９を用いてタイムスタンプ管理テーブル５１として記憶される情報の一例を説明する。図９は、タイムスタンプ管理テーブル５１として記憶される情報の一例を示す図である。
【００６２】
図９に示すように、タイムスタンプ管理テーブル５１は、「パスＩＤ」と「ＣＭＤ発行」と「ＣＭＥ＿Ｅｎｄ時刻」と「Ｌｏｃｋ＿Ｅｎｄ予定時刻」とを対応付けて記憶する。
【００６３】
ここで、「パスＩＤ」は、パスの識別子を示す。例えば、「パスＩＤ」には、パス２を識別する「ｘｘｘ２」、パス３を識別する「ｘｘｘ３」、パス４を識別する「ｘｘｘ４」、パス５を識別する「ｘｘｘ５」が格納される。
【００６４】
「ＣＭＤ発行」は、コマンドの発行時刻を示す。例えば、「ＣＭＤ発行」には、コマンドを発行した時刻を示す「００：０５：００３」やコマンドを発行していないことを示す「―」などが格納される。なお、以下では、装置の電源を投入してからの経過時間によって時刻を表現する。
【００６５】
「ＣＭＤ＿Ｅｎｄ時刻」は、ＣＨＥ１２ａ〜１２ｄからＣＭＤ＿Ｅｎｄを通知された時刻を示す。例えば、「ＣＭＤ＿Ｅｎｄ時刻」には、ＣＭＤ＿Ｅｎｄを通知された時刻を示す「００：０５：１７５」やＣＭＤ＿Ｅｎｄを通知されていないことを示す「―」などが格納される。
【００６６】
「Ｌｏｃｋ＿Ｅｎｄ予定時刻」は、禁止期間が終了する予定時刻を示す。ここで、禁止期間は装置によって決定される値なので装置が動作中この値は変化しない。このため、例えばパス状態判定部５４は、装置の電源投入時に各ＣＨＥから禁止期間の値を取得しておく。そして、パス状態判定部５４は、ＣＭＤ  Ｅｎｄを受け取ったらタイムスタンプを取得し、Ｌｏｃｋ＿Ｅｎｄの予定時刻を算出する。例えば、「Ｌｏｃｋ＿Ｅｎｄ予定時刻」には、Ｌｏｃｋ＿Ｅｎｄの予定時刻を示す「００：０５：４７５」やＬｏｃｋ＿Ｅｎｄの予定時刻を未算出であることを示す「―」などが格納される。
【００６７】
図９に示すタイムスタンプ管理テーブル５１は、パス２では、５．００３秒にコマンドの実行を開始し、５.１７５秒にコマンドの実行を終了したことを示す。また、タイムスタンプ管理テーブル５１は、パス２が禁止期間中であり、５.４７５秒に禁止期間を終了することを示す。また、図９に示すタイムスタンプ管理テーブル５１は、パス３では、５.１３７秒に開始したコマンドを実行中であることを示す。また、図９に示すタイムスタンプ管理テーブル５１は、パス４及びパス５がパスの状態がコマンドの実行中ではなく、かつ、禁止期間中でもないことを示す。
【００６８】
なお、ここで記憶される「ＣＭＤ発行」は、後述するパス選択部５５によって格納される。また、ここで記憶される「ＣＭＥ＿Ｅｎｄ時刻」は、後述する応答受信部５６によって格納される。また、ここで記憶される「Ｌｏｃｋ＿Ｅｎｄ予定時刻」は、後述するパス状態判定部５４によって格納される。
【００６９】
基準パス管理テーブル５２は、複数のパス１２ａ〜１２ｄのうちいずれのパスが基準パスであるかを示す情報を記憶する。図１０を用いて基準パス管理テーブル５２として記憶される情報の一例を説明する。図１０は、基準パス管理テーブル５２として記憶される情報の一例を示す図である。
【００７０】
図１０に示すように、基準パス管理テーブル５２は、「パスＩＤ」と「基準パスフラグ」と「電源フラグ」とを対応付けて記憶する。ここで、「パスＩＤ」は、タイムスタンプ管理テーブル５１として記憶される「パスＩＤ」と同様である。
【００７１】
「基準パスフラグ」は、パスが基準パスであるか否かを示す。例えば、「基準パスフラグ」には、基準パスであることを示す「１」、基準パスでないことを示す「０」が格納される。
【００７２】
「電源フラグ」は、パスの電源がオンであるか否かを示す。例えば、「電源フラグ」には、パスの電源がオンであることを示す「ＯＮ」、パスの電源がオフであることを示す「ＯＦＦ」が格納される。
【００７３】
図１０に示す基準パス管理テーブル５２は、パス２が基準パスであり、パス２の電源がオンであることを示す。また、図１０に示す基準パス管理テーブル５２は、パス３の電源及びパス４の電源がオンであることを示す。また、図１０に示す基準パス管理テーブル５２は、パス５の電源がオフであることを示す。なお、ここでは、サーバ１０の電源投入時に、情報処理システム１が有するパスのうち、１つのパスの電源がオフに設定されるものとして説明するが、これに限定されるものではない。また、例えば、負荷に応じてオフに設定した電源をオンに設定するようにしてもよい。
【００７４】
コマンド処理部５３は、ＣＰＵ１３からコマンドの発行指示を受付ける。そして、コマンド処理部５３は、コマンドの発行指示を受付けたことをパス状態判定部５４に通知する。この結果、パス状態判定部５４は、パスの状態を判定する。また、コマンド処理部５３は、後述するようにパス選択部５５により選択されたパスが接続されるＣＨＥに対して発行指示を受けたコマンドを発行する。
【００７５】
パス状態判定部５４は、コマンド処理部５３を介してＣＰＵ１３からコマンド発行を受付けた場合、タイムスタンプ管理テーブル５１として記憶される情報に基づいてパスの状態を基準パスから所定の順に判定する。ここで、基準パスとは、複数のパスのなかでパスの状態を１番目に判定するパスである。この基準パスは予め設定される。また、基準パスはサーバ１０の動作中に変更可能であるものとして説明するが、これに限定されるものではなく、サーバ１０の動作中に変更不可としてもよい。
【００７６】
パス状態判定部５４は、基準パス管理テーブル５２から基準パスフラグに「１」が格納される「パスＩＤ」の値を読み出して、基準パスを特定する。そして、パス状態判定部５４は、特定したパスＩＤに対応する「ＣＭＤ発行」「ＣＭＤ＿Ｅｎｄ」「Ｌｏｃｋ＿Ｅｎｄ」の各値をタイムスタンプ管理テーブル５１から読み出す。続いて、パス状態判定部５４は、読み出した各値に基づいて、パスの状態を判定する。
【００７７】
例えば、パス状態判定部５４は、「ＣＭＤ発行」の値が「−」である場合、パスの状態をコマンドの実行中ではなく、かつ、禁止期間内でもないと判定する。すなわちこの場合、パス状態判定部５４は、パスの状態がＩＤＬＥであると判定する。
【００７８】
一方、パス状態判定部５４は、「ＣＭＤ発行」の値が「−」ではない場合、パスの状態をコマンドの実行中である、または禁止期間内であると判定する。この場合、パス状態判定部５４は、「ＣＭＤ＿Ｅｎｄ時刻」「Ｌｏｃｋ＿Ｅｎｄ予定時刻」の各値が「−」である場合、パスの状態をコマンドの実行中であると判定する。すなわちこの場合、パス状態判定部５４は、パスの状態がＥｘｅｃｕｔｅであると判定する。
【００７９】
パス状態判定部５４は、「ＣＭＤ＿Ｅｎｄ時刻」「Ｌｏｃｋ＿Ｅｎｄ予定時刻」の各値が「−」ではない場合、パスの状態を禁止期間内であると判定する。すなわちこの場合、パス状態判定部５４は、パスの状態がＣＭＤ＿Ｅｎｄであると判定する。
【００８０】
また、パス状態判定部５４は、基準パスの状態がＩＤＬＥではないと判定した場合、所定の順序に基づいて次のパスの状態を判定する。ここで、所定の順序とは、パスＩＤの数が小さいパスからパスＩＤの数が大きいパスの順序とする。例えば、情報処理システム１においてパス２を基準とした場合、パス状態判定部５４は、パス２、パス３、パス４、パス５の順序でパスの状態を判定する。また、パス状態判定部５４は、パス５の次に、パス２に戻ってパスの状態を判定するものとする。なお、所定の順序はこれに限定されるものではなく、任意に設定可能である。
【００８１】
また、パス状態判定部５４は、判定結果をパス選択部５５に出力する。例えば、パス状態判定部５４は、判定結果として、コマンドの実行中ではなく、かつ、禁止期間内でもないパスが存在することをパス選択部５５に出力する。また、パス状態判定部５４は、判定結果として、コマンドの実行中ではなく、かつ、禁止期間内でもないパスが存在しないが、禁止期間内にあるパスが存在することをパス選択部５５に出力する。また、パス状態判定部５４は、判定結果として、すべてのパスがコマンドの実行中であることをパス選択部５５に出力する。
【００８２】
パス選択部５５は、パス状態判定部５４により判定されたパスの状態に基づいて、複数のパスのうち、いずれのパスにコマンドを発行するかを選択する。例えば、パス選択部５５は、パス状態判定部５４によって、コマンドの実行中ではなく、かつ、禁止期間内でもないパスが存在すると判定された場合、当該パスをコマンド実行用に選択する。
【００８３】
また、パス選択部５５は、パス状態判定部５４によって、コマンドの実行中ではなく、かつ、禁止期間内でもないパスが存在しないと判定された場合、コマンドの実行処理を終了したが禁止期間を経過していないパスをコマンド実行用に選択する。
【００８４】
ここで、パス選択部５５は、パス状態判定部５４によって、コマンドの実行処理を終了したが禁止期間を経過していないパスが複数存在すると判定された場合には、当該パスのうち禁止期間の残り時間が最も短いパスをコマンド実行用に選択する。
【００８５】
また、パス選択部５５は、パス状態判定部５４によって、すべてのパスがコマンドの実行中であると判定された場合、所定の時間が経過後に、コマンドの実行中ではなく、かつ、禁止期間内でもないパスが存在するか否かを再びパス状態判定部５４に判定させる。
【００８６】
応答受信部５６は、ＣＨＥ１２ａ〜１２ｄから、コマンドの実行が終了したことを示すＣＭＤ＿Ｅｎｄ通知を受信する。応答受信部５６は、ＣＭＤ＿Ｅｎｄを受信した場合、タイムスタンプ管理テーブル５１の「ＣＭＤ＿Ｅｎｄ時刻」にＣＭＤ＿Ｅｎｄを受信した時刻を格納する。
【００８７】
基準パス変更部５７は、タイムスタンプ管理テーブル５１を読み出し、コマンドを実行中の全てのパスが禁止期間を経過した場合、基準パス管理テーブル５２として記憶される「基準パスフラグ」を変更する。例えば、基準パス変更部５７は、パス２を基準パスとしてコマンドをパス２、パス３、パス４に発行し、パス２、パス３、パス４が禁止期間を経過した場合、以下の処理を実行することで基準パスをパス２からパス３へ変更する。すなわち、基準パス変更部５７は、基準パス管理テーブル５２の「パスＩＤ」が「ｘｘｘ２」に対応する「基準パスフラグ」を「０」に変更し、「パスＩＤ」が「ｘｘｘ３」に対応する「基準パスフラグ」を「１」に変更する。
【００８８】
電源制御部５８は、基準パス変更部５７によって基準パスが変更された場合、変更前の基準パスの電源をオフにするように制御する。また、電源制御部５８は、基準パス変更部５７によって基準パスが変更された場合、変更後の基準パスの電源をオンにするように制御する。
【００８９】
例えば、電源制御部５８は、基準パス変更部５７によって基準パス管理テーブル５２として記憶される基準パスが「パスＩＤ」が「ｘｘｘ２」であるパスから「パスＩＤ」が「ｘｘｘ３」であるパスに変更された場合、以下の処理を実行する。すなわち、電源制御部５８は、「パスＩＤ」が「ｘｘｘ２」に対応する「電源フラグ」を「オフ」に、「パスＩＤ」が「ｘｘｘ３」に対応する「電源フラグ」を「オン」に変更する。また、電源制御部５８は、「パスＩＤ」が「ｘｘｘ２」である電源をオフに、「パスＩＤ」が「ｘｘｘ３」である電源をオンに制御するように各ＣＨＥに通知する。
【００９０】
［実施例１に係るＩＯＰによる処理の動作］
次に図１１から図１３を用いて、実施例１に係るＩＯＰ１４による処理の動作を説明する。ここでは、図１１を用いてＩＯＰによる、コマンドの実行中ではなく、かつ、禁止期間内でもないパスが存在する場合のパス選択処理の動作を説明する。また、図１２を用いてＩＯＰによる、コマンドの実行中ではなく、かつ、禁止期間内でもないパスが存在しない場合のパス選択処理の動作を説明する。そして、図１３を用いてＩＯＰによる基準パス変更処理の動作を説明する。なお、以下の説明では、パス２を基準パスとして説明する。
【００９１】
図１１は、コマンドの実行中ではなく、かつ、禁止期間内でもないパスが存在する場合のパス選択処理の動作を示す図である。図１１に示すように、ＩＯＰ１４は、コマンドＣ１の発行指示をＣＰＵ１３から受付けた場合、パス２の状態がＩＤＬＥであるので、パス２が接続するＣＨＥ１２ａに対してコマンドを発行する。そして、ＩＯＰ１４は、コマンドＣ２の発行指示をＣＰＵ１３から受付けた場合、パス２の状態がＥｘｅｃｕｔｅであり、パス３の状態がＩＤＬＥであるので、パス３が接続されるＣＨＥ１２ｂに対してコマンドを発行する。
【００９２】
また、ＩＯＰ１４は、コマンドＣ３の発行指示をＣＰＵ１３から受付けた場合、パス２の状態がＩＤＬＥであるので、パス２が接続するＣＨＥ１２ａに対してコマンドを発行する。続いて、ＩＯＰ１４は、コマンドＣ４の発行指示をＣＰＵ１３から受付けた場合、パス２の状態がＥｘｅｃｕｔｅであり、パス３の状態がＩＤＬＥであるので、パス３が接続するＣＨＥ１２ｂに対してコマンドを発行する。
【００９３】
また、ＩＯＰ１４は、コマンドＣ５の発行指示をＣＰＵ１３から受付けた場合、パス２の状態がＩＤＬＥであるので、パス２が接続するＣＨＥ１２ａに対してコマンドを発行する。
【００９４】
図１２は、コマンドの実行中ではなく、かつ、禁止期間内でもないパスが存在しない場合のパス選択処理の動作を示す図である。図１２に示すように、ＩＯＰ１４は、コマンドＣ１の発行指示をＣＰＵ１３から受付けた場合、パス２の状態がＩＤＬＥであるので、パス２が接続するＣＨＥ１２ａに対してコマンドを発行する。そして、ＩＯＰ１４は、コマンドＣ２の発行指示をＣＰＵ１３から受付けた場合、パス２の状態がＥｘｅｃｕｔｅであり、パス３の状態がＩＤＬＥであるので、パス３が接続するＣＨＥ１２ｂに対してコマンドを発行する。
【００９５】
また、ＩＯＰ１４は、コマンドＣ３の発行指示をＣＰＵ１３から受付けた場合、パス２とパス３の状態がＥｘｅｃｕｔｅであり、パス４の状態がＩＤＬＥであるので、パス４が接続するＣＨＥ１２ｃに対してコマンドを発行する。続いて、ＩＯＰ１４は、コマンドＣ４の発行指示をＣＰＵ１３から受付けた場合、パス２、パス３及びパス４の状態がＥｘｅｃｕｔｅであり、パス５の状態がＩＤＬＥであるので、パス５が接続するＣＨＥ１２ｄに対してコマンドを発行する。
【００９６】
そして、ＩＯＰ１４は、コマンドＣ５の発行指示をＣＰＵ１３から受付けた場合、パス２とパス３の状態がＬｏｃｋであり、パス４とパス５の状態がＥｘｅｃｕｔｅである。すなわち、いずれのパスの状態もＩＤＬＥではない。したがって、ＩＯＰ１４は、禁止期間内のパス２が接続するＣＨＥ１２ａまたはパス３が接続するＣＨＥ１２ｂに対してコマンドを発行する。ここで、ＩＯＰ１４は、パス２及びパス３のうち禁止期間の残り時間が最も短いパスとしてパス３を選択し、パス３が接続するＣＨＥ１２ｂに対してコマンドを発行する。
【００９７】
図１３は、ＩＯＰ１４による基準パス変更処理の動作を示す図である。図１３に示すように、ＩＯＰ１４は、コマンドＣ１の発行指示をＣＰＵ１３から受付けた場合、パス２の状態がＩＤＬＥであるので、パス２が接続するＣＨＥ１２ａに対してコマンドを発行する。そして、ＩＯＰ１４は、コマンドＣ２の発行指示をＣＰＵ１３から受付けた場合、パス２の状態がＥｘｅｃｕｔｅであり、パス３の状態がＩＤＬＥであるので、パス３が接続するＣＨＥ１２ｂに対してコマンドを発行する。
【００９８】
また、ＩＯＰ１４は、コマンドＣ３の発行指示をＣＰＵ１３から受付けた場合、パス２の状態がＩＤＬＥであるので、パス２が接続するＣＨＥ１２ａに対してコマンドを発行する。
【００９９】
そして、ＩＯＰ１４は、コマンドＣ４の発行指示をＣＰＵ１３から受付けた場合、コマンドＣ１、コマンドＣ２、コマンドＣ３はコマンドの実行が終了し、禁止期間を経過している。ここで、ＩＯＰ１４は、基準パスをパス２からパス３に変更する。そして、ＩＯＰ１４は、パス３の状態がＩＤＬＥであるので、パス３が接続するＣＨＥ１２ｂに対してコマンドを発行する。
【０１００】
また、ＩＯＰ１４は、コマンドＣ５の発行指示をＣＰＵ１３から受付けた場合、パス３の状態がＥｘｅｃｕｔｅであり、パス４の状態がＩＤＬＥであるので、パス４が接続するＣＨＥ１２ｃに対してコマンドを発行する。そして、ＩＯＰ１４は、コマンドＣ６の発行指示をＣＰＵ１３から受付けた場合、パス３とパス４の状態がＥｘｅｃｕｔｅであり、パス５の状態がＩＤＬＥであるので、パス５が接続するＣＨＥ１２ｄに対してコマンドを発行する。
【０１０１】
また、ＩＯＰ１４は、コマンドＣ７の発行指示をＣＰＵ１３から受付けた場合、パス３の状態がＩＤＬＥであるので、パス３が接続するＣＨＥ１２ｂに対してコマンドを発行する。
【０１０２】
そして、ＩＯＰ１４は、コマンドＣ８の発行指示をＣＰＵ１３から受付けた場合、コマンドＣ４、コマンドＣ５、コマンドＣ６、コマンドＣ７はコマンドの実行が終了し、禁止期間を経過している。ここで、ＩＯＰ１４は、基準パスをパス３からパス４に変更する。そして、ＩＯＰ１４は、パス４の状態がＩＤＬＥであるので、パス４が接続するＣＨＥ１２ｃに対してコマンドを発行する。
【０１０３】
また、ＩＯＰ１４は、コマンドＣ９の発行指示をＣＰＵ１３から受付けた場合、パス４の状態がＥｘｅｃｕｔｅであり、パス５の状態がＩＤＬＥであるので、パス５が接続するＣＨＥ１２ｄに対してコマンドを発行する。そして、ＩＯＰ１４は、コマンドＣ１０の発行指示をＣＰＵ１３から受付けた場合、パス４の状態がＬｏｃｋであり、パス５の状態がＥｘｅｃｕｔｅであり、パス２の状態がＩＤＬＥであるので、パス２が接続するＣＨＥ１２ａに対してコマンドを発行する。
【０１０４】
［実施例１に係るＩＯＰによる処理の処理手順］
次に図１４及び図１５を用いて、実施例１に係るＩＯＰ１４による処理の処理手順を説明する。ここでは、図１４を用いてＩＯＰによるコマンド発行処理を説明し、図１５を用いてＩＯＰによるパス選択処理を説明する。
【０１０５】
（コマンド発行処理）
図１４は、実施例１に係るＩＯＰ１４によるコマンド発行処理の処理手順を示すフローチャートである。例えば、ＩＯＰ１４は、コマンド発行指示を受付けたことを契機に処理を実行する。
【０１０６】
図１４に示すように、ＩＯＰ１４は、コマンド発行指示を受付けたか否かを判定する（ステップＳ１０１）。ここで、ＩＯＰ１４は、コマンド発行指示を受付けたと判定した場合（ステップＳ１０１、Ｙｅｓ）、パス選択処理を実行する（ステップＳ１０２）。一方、ＩＯＰ１４は、コマンド発行指示を受付けていないと判定した場合（ステップＳ１０１、Ｎｏ）、引き続きコマンド発行指示を受付けたか否かを判定する。
【０１０７】
そして、ＩＯＰ１４は、パス選択処理の結果パスを選択できたか否かを判定する（ステップＳ１０３）。ここで、ＩＯＰ１４は、パスを選択できなかったと判定した場合（ステップＳ１０３、Ｎｏ）、所定の時間経過後にステップＳ１０２に移行して再びパス選択処理を実行する。
【０１０８】
一方、ＩＯＰ１４は、パスを選択できたと判定した場合（ステップＳ１０３、Ｙｅｓ）、選択したパスが接続するＣＨＥに対してコマンドを発行する（ステップＳ１０４）。そして、ＩＯＰ１４は、発行したコマンドに対して全てのパスが禁止期間を経過したか否かを判定する（ステップＳ１０５）。ここで、ＩＯＰ１４は、全てのパスが禁止期間を経過したと判定した場合（ステップＳ１０５、Ｙｅｓ）、基準パスを変更し（ステップＳ１０６）、ステップＳ１０７に移行する。
【０１０９】
一方、ＩＯＰ１４は、全てのパスのうち禁止期間を経過していないパスが存在すると判定した場合（ステップＳ１０５、Ｎｏ）、ステップＳ１０７に移行する。
【０１１０】
ステップＳ１０７において、ＩＯＰ１４は、新たなコマンド発行指示を受付けたか否かを判定する。ここで、ＩＯＰ１４は、新たなコマンド発行指示を受付けていないと判定した場合（ステップＳ１０７、Ｎｏ）、ステップＳ１０５に移行する。一方、ＩＯＰ１４は、新たなコマンド発行指示を受付けたと判定した場合（ステップＳ１０７、Ｙｅｓ）、ステップＳ１０２に移行する。
【０１１１】
（パス選択処理）
図１５は、実施例１に係るＩＯＰ１４によるパス選択処理の処理手順を示すフローチャートである。なお、この処理は、図１４に示すステップＳ１０２に対応する。なお、図１５に示すフローチャートは、サーバ１０とＩＯ装置２０とを接続するパスがパス２〜５の４つである場合を示す。
【０１１２】
図１５に示すように、ＩＯＰ１４は、基準パスを選択する（ステップＳ２０１）。そして、ＩＯＰ１４は、選択したパスがＩＤＬＥ状態であるか否かを判定する（ステップＳ２０２）。ここで、ＩＯＰ１４は、選択したパスがＩＤＬＥ状態であると判定した場合（ステップＳ２０２、Ｙｅｓ）、選択したパスが接続されるＣＨＥに対してコマンド発行を要求する応答を行い（ステップＳ２０８）、処理を終了する。
【０１１３】
一方、ＩＯＰ１４は、選択したパスがＩＤＬＥ状態でないと判定した場合（ステップＳ２０２、Ｎｏ）、未選択のパスがあるか否かを判定する（ステップＳ２０３）。
【０１１４】
ここで、ＩＯＰ１４は、未選択のパスがあると判定した場合（ステップＳ２０３、Ｙｅｓ）、新たなパスを選択して（ステップＳ２０４）、ステップＳ２０２に移行し、以降の処理を実行する。一方、ＩＯＰ１４は、未選択のパスがないと判定した場合（ステップＳ２０３、Ｎｏ）、禁止期間内のパスがあるか否かを判定する（ステップＳ２０５）。
【０１１５】
ここで、ＩＯＰ１４は、禁止期間内のパスがないと判定した場合（ステップＳ２０５、Ｎｏ）、コマンド発行を要求したＣＰＵ１３にＰａｔｈ  Ｂｕｓｙ  Ｒｅｓｐｏｎｓｅを応答し（ステップＳ２０９）、処理を終了する。なお、Ｐａｔｈ  Ｂｕｓｙ  Ｒｅｓｐｏｎｓｅは、全てのパスがＩＤＬＥでないことを示す応答である。
【０１１６】
一方、ＩＯＰ１４は、禁止期間内のパスがあると判定した場合（ステップＳ２０５、Ｙｅｓ）、禁止期間内のパスが２つ以上あるか否かを判定する（ステップＳ２０６）。ここで、ＩＯＰ１４は、禁止期間内のパスが２つ以上あると判定した場合（ステップＳ２０６、Ｙｅｓ）、禁止期間の残り時間を比較し、残り時間が最も短いパスを選択する（ステップＳ２０７）。そして、ＩＯＰ１４は、選択したパスが接続するＣＨＥに対してコマンド発行を要求する応答を行い（ステップＳ２０８）、処理を終了する。
【０１１７】
一方、ＩＯＰ１４は、禁止期間内のパスが２つ以上でないと判定した場合（ステップＳ２０６、Ｎｏ）、禁止期間内のパスが接続するＣＨＥに対してコマンド発行を要求する応答を行い（ステップＳ２０８）、処理を終了する。
【０１１８】
［実施例１の効果］
上述してきたように、本実施例１では、ＣＨＥ１２ａ〜１２ｄに搭載されている部品の発熱を軽減することができる。
【０１１９】
また、ＩＯＰ１４は、コマンドの実行処理を終了したが禁止期間を経過していないパスが複数存在すると判定された場合には、当該パスのうち禁止期間の残り時間が最も短いパスをコマンド実行用に選択する。この結果、より効率的にパスを使用することができる。
【０１２０】
また、ＩＯＰ１４は、基準パスを変更することで、特定のパスが発熱によって摩耗することを防止できる。さらに、基準パスを変更した場合、変更前の基準パスの電源をオフに制御する。この結果、消費電力を削減することができる。
【０１２１】
また、ＩＯＰ１４は、ＣＭＤ発行、ＣＭＤ  Ｅｎｄ時のタイムスタンプを取得する。これを利用すると禁止期間の残り時間を容易に算出でき、禁止期間の比較をより簡単に行う事ができる。また、ＩＯＰ１４は、コマンド発行間隔を管理するようにしてもよい。また、タイムスタンプを利用するとコマンドの実行間隔に合わせて禁止期間を変化させる事も可能である。
【実施例２】
【０１２２】
ところで、本発明は、上述した実施例以外にも、種々の異なる形態にて実施されてよい。そこで、実施例２では、本発明に含まれる他の実施例について説明する。
【０１２３】
（システム構成等）
本実施例において説明した各処理のうち自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文章中や図面中で示した処理手順、制御手順、具体的名称については、特記する場合を除いて任意に変更することができる。
【０１２４】
サーバ１０は、メインフレーム型のサーバとして説明したが、これに限定されるものではない。例えば、ＩＯＰ１４と同等の機能を有するチップセットと、各ＣＨＥと同様に禁止期間を設定可能なＩＦ（interface）カードとを有していればオープンシステムのサーバとして実現されてもよい。
【０１２５】
また、図示した記憶部が格納する情報は一例に過ぎず、必ずしも図示のごとく情報が格納される必要はない。例えば、タイムスタンプ管理テーブル５１は、禁止期間の残り時間を算出した情報を記憶していてもよい。
【０１２６】
パス状態判定部５４は、禁止期間が完了したことを示す禁止完了応答をいずれかのパスから取得した場合、当該パスが前記禁止期間を経過したと判定するようにしてもよい。
【０１２７】
また、電源投入時にＩＯＰ１４に渡す禁止期間の値を時間ではなく係数として渡すようにしてもよい。そして、ＩＯＰ１４は、受け取った係数にコマンドの実行時間を合わせて禁止期間の時間を計算する。これによって長い実行時間のコマンドほど素子温度が高くなり放熱にかかる時間が増加する問題を回避することが出来る。
【０１２８】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理の順番を変更してもよい。例えば、図１４に示すステップＳ１０４の後にステップＳ１０５及びステップＳ１０６の処理を実行せず、ステップＳ１０７の処理に移行するようにしてもよい。
【０１２９】
また、図示した各構成部は、機能概念的なものであり、必ずしも物理的に図示のごとく構成されていることを要しない。例えば、ＩＯＰ１４では、コマンド処理部５３とパス状態判定部５４とが統合されてもよい。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１３０】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１３１】
（付記１）自装置と通信先装置とを接続する複数のパスのうちデータの送信処理中ではなく、かつ、データ送信を終了した後にデータ送信を所定時間禁止する禁止期間内でもないパスが存在するか否かを判定する判定部と、
前記判定部によって、データの送信処理中ではなく、かつ、前記禁止期間内でもないパスが存在しないと判定された場合、データの送信処理を終了したが禁止期間を経過していないパスをデータ送信用に選択する選択部と
を有することを特徴とする通信制御装置。
【０１３２】
（付記２）前記選択部は、前記判定部によって、前記データの送信処理を終了したが禁止期間を経過していないパスが複数存在すると判定された場合には、当該パスのうち禁止期間の残り時間が最も短いパスをデータ送信用に選択することを特徴とする付記１に記載の通信制御装置。
【０１３３】
（付記３）データの送信処理を終了したパスすべてが禁止期間を経過した場合、複数のパスのうちデータの送信処理中ではなく、かつ、前記禁止期間内でもないパスが存在するか否かを１番目に判定するパスである基準パスを所定の順序に基づいて切替る切替部を更に有することを特徴とする付記１または２に記載の通信制御装置。
【０１３４】
（付記４）前記切替部により基準パスが切替えられた場合、前記切替部により切替えられる前に基準パスであったパスの電源をオフにする電源制御部を更に有することを特徴とする付記３に記載の通信制御装置。
【０１３５】
（付記５）前記選択部は、前記判定部によって、データの送信処理中ではなく、かつ、前記禁止期間内でもないパスが存在すると判定された場合、当該パスをデータ送信用に選択することを特徴とする付記１に記載の通信制御装置。
【０１３６】
（付記６）前記選択部は、前記判定部によって、すべてのパスがデータ送信中であると判定された場合、所定の時間が経過後に、データの送信処理中ではなく、かつ、前記禁止期間内でもないパスが存在するか否かを再び前記判定部に判定させることを特徴とする付記１に記載の通信制御装置。
【０１３７】
（付記７）前記判定部は、前記禁止期間が完了したことを示す禁止完了応答をいずれかのパスから取得した場合、当該パスが前記禁止期間を経過したと判定することを特徴とする付記１〜６のいずれか一つに記載の通信制御装置。
【０１３８】
（付記８）前記判定部は、データの送信処理が終了したことを示す送信終了応答をいずれかのパスから取得し、前記禁止期間を予め記憶する記憶部から読み出した前記禁止時間と前記送信終了応答を取得した時間とに基づいて当該パスが前記禁止期間を経過したか否かを判定することを特徴とする付記１〜６のいずれか一つに記載の通信制御装置。
【０１３９】
（付記９）前記禁止期間は、データ送信により生じる熱を放熱するまでに要する期間に応じて設定されることを特徴とする付記１〜８のいずれか一つに記載の通信制御装置。
【０１４０】
（付記１０）複数パスごとに設けられ、前記複数パスを介して接続された通信先装置とのデータ送信を行う複数のインターフェース部と、前記通信先装置へのデータの送信処理をいずれかのインターフェース部に割り当てる通信制御部とを有する情報処理装置において、
前記インターフェース部の各々は、
データ送信を終了後のパスに対する新たなデータの送信処理を所定の期間禁止する禁止期間を設定し、
前記通信制御部は、
データの送信処理中でもなく前記禁止期間内にもないインターフェース部が存在せず、かつ、前記禁止期間内にあるインターフェース部が存在する場合には、前記禁止期間内にあるインターフェース部に対して新たなデータの送信処理を割り当てる
ことを特徴とする情報処理装置。
【０１４１】
（付記１１）通信制御装置が、
自装置と通信先装置とを接続する複数のパスのうちデータの送信処理中ではなく、かつ、データ送信を終了した後にデータ送信を所定時間禁止する禁止期間内でもないパスが存在するか否かを判定し、
データの送信処理中ではなく、かつ、前記禁止期間内でもないパスが存在しないと判定した場合、データの送信処理を終了したが禁止期間を経過していないパスをデータ送信用に選択する
処理を実行することを特徴とするパス選択方法。
【０１４２】
（付記１２）前記データの送信処理を終了したが禁止期間を経過していないパスが複数存在すると判定した場合には、当該パスのうち禁止期間の残り時間が最も短いパスをデータ送信用に選択することを特徴とする付記１１に記載のパス選択方法。
【０１４３】
（付記１３）前記通信制御装置が、
データの送信処理を終了したパスすべてが禁止期間を経過した場合、複数のパスのうちデータの送信処理中ではなく、かつ、前記禁止期間内でもないパスが存在するか否かを１番目に判定するパスである基準パスを所定の順序に基づいて切替る処理を更に実行することを特徴とする付記１１または１２に記載のパス選択方法。
【０１４４】
（付記１４）前記通信制御装置が、
基準パスを切替えた場合、切替える前に基準パスであったパスの電源をオフにする処理を更に実行することを特徴とする付記１３に記載のパス選択方法。
【０１４５】
（付記１５）データの送信処理中ではなく、かつ、前記禁止期間内でもないパスが存在すると判定した場合、当該パスをデータ送信用に選択することを特徴とする付記１１に記載のパス選択方法。
【０１４６】
（付記１６）すべてのパスがデータ送信中であると判定した場合、所定の時間が経過後に、データの送信処理中ではなく、かつ、前記禁止期間内でもないパスが存在するか否かを再び判定することを特徴とする付記１１に記載のパス選択方法。
【０１４７】
（付記１７）前記禁止期間が完了したことを示す禁止完了応答をいずれかのパスから取得した場合、当該パスが前記禁止期間を経過したと判定することを特徴とする付記１１〜１６のいずれか一つに記載のパス選択方法。
【０１４８】
（付記１８）データの送信処理が終了したことを示す送信終了応答をいずれかのパスから取得し、前記禁止期間を予め記憶する記憶部から読み出した前記禁止時間と前記送信終了応答を取得した時間とに基づいて当該パスが前記禁止期間を経過したか否かを判定することを特徴とする付記１１〜１６のいずれか一つに記載のパス選択方法。
【０１４９】
（付記１９）前記禁止期間は、データ送信により生じる熱を放熱するまでに要する期間に応じて設定されることを特徴とする付記１１〜１８のいずれか一つに記載のパス選択方法。
【符号の説明】
【０１５０】
１  情報処理システム
２、３、４、５  パス
１０  サーバ
１１  ＭＳ
１２ａ、１２ｂ、１２ｃ、１２ｄ  ＣＨＥ
１３  ＣＰＵ
１４  ＩＯＰ
２０  ＩＯ装置
２１  ＩＯ部
２２ａ、２２ｂ、２２ｃ、２２ｄ  ＣＨＥ
２３  ＩＯ制御部
３１  通信部
３２  ＩＣ部
３３  ＳＤ部
３４  ＯＭ部
５１  タイムスタンプ管理テーブル
５２  基準パス管理テーブル
５３  コマンド処理部
５４  パス状態判定部
５５  パス選択部
５６  応答受信部
５７  基準パス変更部
５８  電源制御部
【図１】
0005741301.tif 000002
【図２】
0005741301.tif 000003
【図３】
0005741301.tif 000004
【図４】
0005741301.tif 000005
【図５】
0005741301.tif 000006
【図６】
0005741301.tif 000007
【図７】
0005741301.tif 000008
【図８】
0005741301.tif 000009
【図９】
0005741301.tif 000010
【図１０】
0005741301.tif 000011
【図１１】
0005741301.tif 000012
【図１２】
0005741301.tif 000013
【図１３】
0005741301.tif 000014
【図１４】
0005741301.tif 000015
【図１５】
0005741301.tif 000016
【図１６】
0005741301.tif 000017
【図１７】
0005741301.tif 000018
【図１８】
0005741301.tif 000019