(57)【特許請求の範囲】
【請求項１】
ホスト装置と、このホスト装置と複数のホストバスにより接続されたブリッジと、このブリッジと複数のデバイスバスにより接続された複数のデバイスを備えたデータ処理装置において、
前記ホスト装置は、上位層から受信したデータを所定の分割サイズに分割し、前記ホストバスの中から前記デバイスの使用状況に応じて合計のデータ転送能力が前記データの転送の対象である前記デバイスのデータ転送能力と同等または超える範囲で本数が最小となるように未使用の前記ホストバスを選択する機能と、選択した複数の前記ホストバスを用いて前記分割したデータを前記ブリッジに送信する機能と、前記ブリッジから複数の前記ホストバスを介して受信したデータを結合して前記上位層に送信する機能とを備えたホスト側データ分割結合器を備え、
前記ブリッジは、前記デバイスから受信したデータを所定の分割サイズに分割し、前記ホストバスの中から前記デバイスの使用状況に応じて合計のデータ転送能力が前記データの転送の対象である前記デバイスのデータ転送能力と同等または超える範囲で本数が最小となるように未使用の前記ホストバスを選択する機能と、選択した複数の前記ホストバスを用いて前記分割したデータを前記ホスト装置に送信する機能と、前記ホスト装置から複数の前記ホストバスを介して受信したデータを結合して前記デバイスに送信する機能とを備えたブリッジ側データ分割結合器を備えたことを特徴としたデータ処理装置。
【請求項２】
前記ホスト装置と前記ブリッジとの間および前記ブリッジと前記デバイスとの間のデータ送受信は、シリアルＡＴＡ方式によって行い、前記ホスト側データ分割結合器および前記ブリッジ側データ分割結合器は、前記分割したデータのヘッダに前記ブリッジと前記デバイスとの間の前記データの送受信に使用する前記デバイスバスを特定する情報と、前記分割されたデータを結合する順番を示す情報を付加することを特徴とした請求項１に記載のデータ処理装置。
【請求項３】
前記分割サイズは、３２ビットであることを特徴とした請求項２に記載のデータ処理装置。
【請求項４】
前記ホスト装置は、前記ホスト側データ分割結合器を、
前記デバイス装置に送信するデータを合計のデータ転送能力が前記データの転送の対象である前記デバイスのデータ転送能力と同等または超える範囲で本数が最小となるように未使用の前記ホストバスの本数に分割して分割データを生成しこの分割データを前記ホスト装置に予め備えられたメモリに格納するデータ分割手段と、
前記未使用のホストバスを特定する未使用バス特定情報を前記ブリッジに通知する未使用バス特定情報通知手段と、
前記メモリに格納された前記各分割データをそれぞれ一本の前記未使用のホストバスを用いて前記ブリッジに送信するデータ送信手段と、
前記ブリッジから送信された分割データを受信しメモリに格納する分割データ受信手段と、
この分割データ受信手段により前記メモリに格納された分割データを結合するデータ結合手段とによって構成すると共に、
前記ブリッジの前記ブリッジ側データ分割結合器が、
前記未使用バス特定情報を基に、前記デバイスから受信したデータを前記未使用のホストバスの本数で分割し、分割されたこれらのデータを前記未使用のホストバスを介して前記ホスト装置に送信する機能と、前記ホスト装置から受信した前記分割データを結合して前記デバイスに送信する機能とを備えたことを特徴とした請求項１に記載のデータ処理装置。
【請求項５】
ホスト装置とデバイスとの間でデータの転送を行う方法において、
前記ホスト装置が、前記デバイスに送信するデータを所定の分割サイズに分割し、前記ホストバスの中から前記デバイスの使用状況に応じて合計のデータ転送能力が前記データの転送の対象である前記デバイスのデータ転送能力と同等または超える範囲で本数が最小となるように未使用の前記ホストバスを選択し、選択した複数の前記ホストバスを用いて前記分割したデータを前記ホスト装置と前記デバイス装置の間に設けられたブリッジに送信し、このブリッジ装置が、前記ホスト装置から受信したデータを結合して前記デバイスに送信するホスト側送信工程と、
前記ブリッジが、前記デバイスから受信したデータを所定の分割サイズに分割し、前記ホストバスの中から前記デバイスの使用状況に応じて合計のデータ転送能力が前記データの転送の対象である前記デバイスのデータ転送能力と同等または超える範囲で本数が最小となるように未使用の前記ホストバスを選択する機能と、選択した複数の前記ホストバスを用いて前記分割したデータを前記ホスト装置に送信し、このホスト装置が、前記ブリッジから受信したデータを結合して上位層に送信するデバイス側送信工程とを備えたことを特徴としたデータ転送方法。
【請求項６】
前記ホスト装置と前記ブリッジとの間および前記ブリッジと前記デバイスとの間のデータ送受信は、シリアルＡＴＡ方式によって行い、前記ホスト側送信工程および前記デバイス側送信工程では、前記分割したデータのヘッダに前記ブリッジと前記デバイスとの間の前記データの送受信に使用する前記デバイスバスを特定する情報と、前記分割されたデータを結合する順番を示す情報を付加することを特徴とした請求項５に記載のデータ転送方法。
【請求項７】
前記分割サイズは、３２ビットであることを特徴とした請求項６に記載のデータ転送方法。
【請求項８】
前記ホスト側送信工程が、前記デバイス装置に送信するデータを合計のデータ転送能力が前記データの転送の対象である前記デバイスのデータ転送能力と同等または超える範囲で本数が最小となるように未使用の前記ホストバスの本数に分割して分割データを生成しこの分割データを前記ホスト装置に予め備えられたメモリに格納し、前記未使用のホストバスを特定する未使用バス特定情報を前記ホスト装置と前記デバイス装置の間に設けられたブリッジに通知し、前記メモリに格納された前記各分割データをそれぞれ一本の前記未使用のホストバスを用いて前記ブリッジに送信し、前記ブリッジが、前記未使用バス特定情報を基に、前記ホスト装置から受信した前記分割データを結合して前記デバイスに送信し、
前記デバイス側送信工程が、前記未使用バス特定情報を基に、前記デバイスから受信したデータを前記未使用のホストバスの本数で分割し、分割されたこれらのデータを前記未使用のホストバスを使用して前記ホスト装置に送信し、前記ホスト装置が前記ブリッジから送信された分割データを受信して前記メモリに格納し、このメモリに格納された分割データを結合することを特徴とした請求項５に記載のデータ転送方法。
【請求項９】
ホスト装置とデバイスとの間のデータの転送を制御するプログラムにおいて、
前記ホスト装置に、
前記デバイス装置に送信するデータを合計のデータ転送能力が前記データの転送の対象である前記デバイスのデータ転送能力と同等または超える範囲で本数が最小となるように未使用の前記ホストバスの本数に分割して分割データを生成しこの分割データを前記ホスト装置に予め備えられたメモリに格納するデータ分割処理と、
前記未使用のホストバスを特定する未使用バス特定情報を前記ホスト装置と前記デバイス装置の間に設けられたブリッジに通知する未使用バス特定情報通知処理と、
前記メモリに格納された前記各分割データをそれぞれ一本の前記未使用のホストバスを用いて前記ブリッジに送信するデータ送信処理と、
前記ブリッジから送信された分割データを受信し前記メモリに格納する分割データ受信処理と、
この分割データ受信手段により前記メモリに格納された分割データを結合するデータ結合処理とを実行させることを特徴としたデータ転送プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアル方式によるデータ転送技術に関し、特に空いているバス利用してデータ転送速度を向上させる技術に関する。
【背景技術】
【０００２】
データ処理装置で用いられているATA（AT
Attachment）の転送方式は転送速度を向上するためにパラレル転送からシリアル転送に移行しつつある。シリアルＡＴＡの規格においても1.5Gbps(bit/sec)、3Gbpsというように転送速度を向上させた規格も定義されてきており今後も速度向上が実施されていくと思われる。
実際にシリアル転送を行う物理層の速度向上は技術的に難しい面があり、ホスト側の速度制約またはホスト側とデバイス側双方の相性によってはデバイス側がサポートする最高速度で転送することができない場合があった。
【０００３】
また、図７に示すように、ホスト４００のインターフェースと記憶装置等のデバイス４０２等は１対１接続されており使用中のデバイスのバスのみが使用されており、未使用のデバイスのバスはデータ転送に使用されることがなく効率が悪いという問題もあった。たとえば、デバイス４０２だけがホスト４００との間でバス４０６を介してデータ転送を行っている場合、空いているバス４０７、４０８、４０９を有効に使用することはできなかった。
【０００４】
このような問題を解決しようとするデータ転送システムが特許文献１に記載されている。このデータ転送システムは、ホストシステムと記憶装置との間にデバイスシステムを備え、ホストシステムとデバイスシステムは、それぞれに備えられる複数のシリアルインタフェースコントローラを通して接続され、デバイスシステムと記憶装置は、少なくとも一つのインタフェースコントローラで接続され、ホストシステムとデバイスシステムは、複数のシリアルインタフェースコントローラの数に対応して転送するデータを分割及び、結合する機能を備えている。
【０００５】
【特許文献１】特開２００３−１３１８１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１には、記憶装置が複数接続されている場合のデータ転送方法については記載されていない。そのため、複数の記憶装置の動作状況（各記憶装置がホストシステムとの間でデータ転送を行っているか否か）に応じてデータ転送に用いるバス（シリアルインターフェースコントローラ）を適切に決定することができないという問題があった。
【０００７】
そこで、本発明は、ホスト装置に複数のデバイスが接続されている場合に、それらのデバイスの使用状況に応じてデータ転送に用いるバスを適切に決定することができるデータ転送方法等を提供することを、その目的とする。
【課題を解決するための手段】
【０００８】
本発明の、データ処理装置は、ホスト装置と、このホスト装置と複数のホストバスにより接続されたブリッジと、このブリッジと複数のデバイスバスにより接続された複数のデバイスを備えている。
ホスト装置は、上位層から受信したデータを所定の分割サイズに分割し、ホストバスの中からデバイスの使用状況に応じて合計のデータ転送能力がデータの転送の対象であるデバイスのデータ転送能力と同等または超える範囲で本数が最小となるように未使用のホストバスを選択する機能と、選択した複数のホストバスを用いて分割したデータをブリッジに送信する機能と、ブリッジから複数のホストバスを介して受信したデータを結合して上位層に送信する機能とを備えたホスト側データ分割結合器を備えている。
ブリッジは、デバイスから受信したデータを所定の分割サイズに分割し、ホストバスの中からデバイスの使用状況に応じて合計のデータ転送能力がデータの転送の対象であるデバイスのデータ転送能力と同等または超える範囲で本数が最小となるように未使用のホストバスを選択する機能と、選択した複数のホストバスを用いて分割したデータをホスト装置に送信する機能と、ホスト装置から複数のホストバスを介して受信したデータを結合してデバイスに送信する機能とを備えたブリッジ側データ分割結合器を備えている（請求項１ないし請求項４）。
【０００９】
上記データ処理装置によれば、デバイスの使用状況に応じて、データ転送を行っていないデバイスのホストバスを適切に選択して、ホスト装置とブリッジとの間のデータ転送に使用する。
そのため、デバイスが複数接続されている場合においても、ホストバスの使用効率を向上させてホストバスの転送能力をデバイスが持つ転送能力に近づけることができる。また、デバイスの持つ転送能力に応じて、必要十分な数のホストバスを選択して、ホスト装置とブリッジとの間のデータ転送に用いることができる。
【００１１】
上記データ処理装置において、ホスト装置とブリッジとの間およびブリッジとデバイスとの間のデータ送受信は、シリアルＡＴＡ方式によって行い、ホスト側データ分割結合器およびブリッジ側データ分割結合器は、分割したデータのヘッダにブリッジとデバイスとの間のデータの送受信に使用するデバイスバスを特定する情報と、分割されたデータを結合する順番を示す情報を付加するようにしてもよい（請求項２）。さらに、分割サイズを、３２ビットとしてもよい（請求項３）。
このようにすれば、広く普及しているシリアルＡＴＡ方式に対応したホスト装置とデバイスを利用して、データ処理装置を容易に構成することができる。分割サイズを３２ビットとすれば、シリアルＡＴＡ方式の最小データサイズと一致するので、送信部に渡すデータに送信データのサイズを示す情報を付加する必要がなくなる。
【００１２】
上記データ処理装置において、ホスト装置が上記のホスト側データ分割結合器を、デバイス装置に送信するデータを合計のデータ転送能力がデータの転送の対象であるデバイスのデータ転送能力と同等または超える範囲で本数が最小となるように未使用のホストバスの本数に分割して分割データを生成しこの分割データをホスト装置に予め備えられたメモリに格納するデータ分割手段と、未使用のホストバスを特定する未使用バス特定情報をブリッジに通知する未使用バス特定情報通知手段と、メモリに格納された各分割データをそれぞれ一本の未使用のホストバスを用いてブリッジに送信するデータ送信手段と、ブリッジから送信された分割データを受信しメモリに格納する分割データ受信手段と、この分割データ受信手段によりメモリに格納された分割データを結合するデータ結合手段とによって構成するようにしてもよい。
これに対応するブリッジのブリッジ側データ分割結合器は、未使用バス特定情報を基に、デバイスから受信したデータを未使用のホストバスの本数で分割し、分割されたこれらのデータを未使用のホストバスを介してホスト装置に送信する機能と、ホスト装置から受信した分割データを結合してデバイスに送信する機能とを備えている（請求項４）。
【００１３】
この構成にしても、デバイスが複数接続されている場合においても、ホストバスの使用効率を向上させてホストバスの転送能力をデバイスが持つ転送能力に近づけることができる。
【００１４】
本発明のデータ転送方法は、ホスト装置が、デバイスに送信するデータを所定の分割サイズに分割し、ホストバスの中からデバイスの使用状況に応じて合計のデータ転送能力がデータの転送の対象であるデバイスのデータ転送能力と同等または超える範囲で本数が最小となるように未使用のホストバスを選択し、選択した複数のホストバスを用いて分割したデータをホスト装置とデバイス装置の間に設けられたブリッジに送信し、このブリッジ装置が、ホスト装置から受信したデータを結合してデバイスに送信するホスト側送信工程と、ブリッジが、デバイスから受信したデータを所定の分割サイズに分割し、ホストバスの中からデバイスの使用状況に応じて合計のデータ転送能力がデータの転送の対象であるデバイスのデータ転送能力と同等または超える範囲で本数が最小となるように未使用のホストバスを選択する機能と、選択した複数のホストバスを用いて分割したデータをホスト装置に送信し、このホスト装置が、ブリッジから受信したデータを結合して上位層に送信するデバイス側送信工程とにより、ホスト装置とでバイトの間のデータ転送を行う（請求項５ないし請求項８）。
【００１５】
上記データ転送方法によれば、デバイスの使用状況に応じて、データ転送を行っていないデバイスのホストバスを適切に選択して、ホスト装置とブリッジとの間のデータ転送に使用する。
そのため、デバイスが複数接続されている場合においても、ホストバスの使用効率を向上させてホストバスの転送能力をデバイスが持つ転送能力に近づけることができる。また、デバイスの持つ転送能力に応じて、必要十分な数のホストバスを選択して、ホスト装置とブリッジとの間のデータ転送に用いることができる。
【００１７】
上記データ転送方法において、ホスト装置とブリッジとの間およびブリッジとデバイスとの間のデータ送受信は、シリアルＡＴＡ方式によって行い、ホスト側送信工程およびデバイス側送信工程では、分割したデータのヘッダにブリッジとデバイスとの間のデータの送受信に使用するデバイスバスを特定する情報と、分割されたデータを結合する順番を示す情報を付加するようにしても良い（請求項６）。さらに、分割サイズを３２ビットとしてもよい（請求項７）。
このようにすれば、広く普及しているシリアルＡＴＡ方式に対応したホスト装置とデバイスを利用して、データ処理装置を容易に構成することができる。
【００１８】
上記データ転送方法において、ホスト側送信工程が、デバイス装置に送信するデータを合計のデータ転送能力がデータの転送の対象であるデバイスのデータ転送能力と同等または超える範囲で本数が最小となるように未使用のホストバスの本数に分割して分割データを生成しこの分割データをホスト装置に予め備えられたメモリに格納し、未使用のホストバスを特定する未使用バス特定情報をホスト装置とデバイス装置の間に設けられたブリッジに通知し、メモリに格納された各分割データをそれぞれ一本の未使用のホストバスを用いてブリッジに送信し、ブリッジが、未使用バス特定情報を基に、ホスト装置から受信した分割データを結合してデバイスに送信するようにしてもよい。
これに対応するデバイス側送信工程は、未使用バス特定情報を基に、デバイスから受信したデータを未使用のホストバスの本数で分割し、分割されたこれらのデータを未使用のホストバスを使用してホスト装置に送信し、ホスト装置がブリッジから送信された分割データを受信しメモリに格納し、このメモリに格納された分割データを結合する（請求項８）。
【００１９】
この動作にしても、デバイスが複数接続されている場合においても、ホストバスの使用効率を向上させてホストバスの転送能力をデバイスが持つ転送能力に近づけることができる。
【００２０】
本発明のデータ転送プログラムは、デバイスとの間でデータ転送を行うホスト装置に、デバイス装置に送信するデータを合計のデータ転送能力がデータの転送の対象であるデバイスのデータ転送能力と同等または超える範囲で本数が最小となるように未使用のホストバスの本数に分割して分割データを生成しこの分割データをホスト装置に予め備えられたメモリに格納するデータ分割処理と、未使用のホストバスを特定する未使用バス特定情報をホスト装置とデバイス装置の間に設けられたブリッジに通知する未使用バス特定情報通知処理と、メモリに格納された各分割データをそれぞれ一本の未使用のホストバスを用いてブリッジに送信するデータ送信処理と、ブリッジから送信された分割データを受信しメモリに格納する分割データ受信処理と、この分割データ受信手段によりメモリに格納された分割データを結合するデータ結合処理とを実行させる（請求項９）。
【００２１】
上記データ転送プログラムによれば、デバイスが複数接続されている場合においても、ホストバスの使用効率を向上させてホストバスの転送能力をデバイスが持つ転送能力に近づけることができる。
【発明の効果】
【００２２】
本発明によれば、デバイスの使用状況に応じて、データ転送を行っていないデバイスのホストバスを適切に選択して、ホスト装置とブリッジとの間のデータ転送に使用する。
そのため、デバイスが複数接続されている場合においても、ホストバスの使用効率を向上させてホストバスの転送能力をデバイスが持つ転送能力に近づけることができる。
【発明を実施するための最良の形態】
【００２３】
以下、図を参照しながら本発明の第一の実施形態であるデータ処理装置４の構成と動作について説明する。
図１は、データ処理装置４の全体構成を示すブロック図である。
１はホスト、２はデバイス群、３はブリッジである。ホスト１は、ブリッジ３を介してデバイス群２との間でデータの転送を行う。
【００２４】
ホスト１は、たとえばパーソナルコンピュータであり、転送データの分割および分割された転送データの結合を行うデータ分割/結合器１１を備えている。
デバイス群２は、デバイス２１、デバイス２２、デバイス２３、デバイス２４からなる。各デバイスは、シリアルＡＴＡ方式に対応した任意の機器で、例えばハードディスク装置である。なお、特に区別する必要のない場合は、これらのデバイスの総称として「デバイス２０」ということにする。また、デバイスの数は、４台には限定されず、２台以上であれば何台でもよい。
ブリッジ３は、ホスト１とデバイス２０との間のデータ転送を中継する装置で、転送データの分割および分割された転送データの結合を行うデータ分割／結合器３１を備えている。
【００２５】
ブリッジ３とデバイス２１、２２、２３、２４は、それぞれデバイスバス５１、５２、５３、５４により接続されている。ホスト１１とブリッジ３は、４本のホストバス４１、４２、４３、４４により接続されている。ホスト１がデバイス２１、２２、２３、２４との間でデータ転送を行う際には、それぞれ、ホストバス４１、４２、４３、４４を使用する。すなわち、ホストバスとデバイスは１対１に対応付けられている。ただし、データ処理装置４においては、対応付けられているホストバス以外のホストバスがデータの転送に使用されていない（そのようなバスを以下「未使用バス」という）場合には、未使用バスもデータの転送に使用することによりデータ転送の高速化を実現している。
【００２６】
図２は、データ分割/結合器１１（ホスト側データ分割結合器の一例）の機能ブロック図である。
データ分割／結合器１１は、データ分割部１１１と制御部１１２とデータ結合部１１３を備えている。
制御部１１２は、デバイス２０の使用状況、すなわち各デバイスがいずれのホストバスを使用しているかという状況に応じてブリッジ３との間でデータを送受信するために用いるホストバスを選択する。
データ分割部１１１は、例えばデバイスドライバ等の上位層（図１のａｐ１、ａｐ２、ａｐ３、ａｐ４）から受信したデバイス２０への送信データa2hN(N=１〜４)を制御部１１２の指示により分割しブリッジ３への送信データh2bN(N=1〜4)を作成する。
データ結合部１１３はブリッジ３からの送信データb2hN(N=１〜４)を制御部１１２からの指示により結合し上位層への送信データh2aN(N=１〜4)を作成する。
【００２７】
図３は、データ分割/結合器３１（ブリッジ側データ分割結合器の一例）の機能ブロック図である。
データ分割／結合器３１は、データ分割部３１１と制御部３１２とデータ結合部３１３を備えている。
制御部３１２は、デバイス２０の使用状況に応じてホスト１との間でデータを送受信するために用いるホストバスを選択する。
データ結合部３１１はホスト部１からの送信データh2bN(N=１〜４)を制御部３１２からの指示により結合しデバイス２０への送信データb2dN(N=１〜4)を作成する。
データ分割部３１３はデバイスから上位層への送信データd2bN(N=１〜4)を制御部３１２からの指示により分割しホスト部への送信データb2hN(N=1〜４)を作成する。
【００２８】
次に、図１ないし図４を用いて、データ処理装置４の動作について説明する。図１に示すようにデバイス２１、２２、２３、２４の４デバイスが接続されるシステムを例に説明する。
デバイス２１、２２、３４、２４が全て動作している場合は、ホストバス４１、４２、４３、４４はそれぞれデバイス２１、２２、３４、２４のデータ転送のために使用される。
しかし、４デバイスのうち、１デバイスでも動作していない場合で、かつ、ホストのデータ転送速度より速い転送速度のデバイスがデータ転送を行う場合、このデータ転送用に未使用バスを使用する。以下の詳細説明では４つのデバイスのうち、デバイス24のみがデータ転送を行う場合の動作を説明する。デバイス２４は、６Ｇｂｐｓの転送能力があり、ホスト１側の転送能力は１．５Ｇｂｐｓとして説明する。データを分割するサイズは任意であるがシリアルＡＴＡの最小データサイズであるDword(32bit)として説明する。
【００２９】
図４に、データ分割／結合器１１、３１が分割データに付加する情報を示す。
データ分割／結合器１１、３１はシリアルＡＴＡのデータ転送フォーマットの未使用フィールドに新規に「PortNumber」と「DataNumber」の二つのフィールドを追加することにより分割データに情報を付加する。
「PortNumber」は、ホスト１との間でデータ転送を行うデバイス（すなわち、デバイスバスを）を特定する情報である。
「DataNumber」は、データ分割／結合器１１またはデータ分割／結合器３１により分割されたデータの分割前のデータにおける先頭からの順番を示すフィールドである。データ結合／分配器１１またはデータ結合／分配器３１は、このフィールドを参照して分割されたデータを元の順番に結合する。
【００３０】
では、以下に具体例で説明する。
まず、ホスト１からデバイス２４へのデータ転送について説明する。
（１）データ分割/結合器11は、上位層ap4からのデータ(a2h4)を受信する。
（２）データ分割/結合器11内のデータ分割部111はa2h4をDword毎にh2b1,2,3,4に分割しそれぞれホストバス４１、４２、４３、４４に送信する。つまり、a2h4の4N+1番目のDwordデータ(N=0,1,2・・・)の先頭にデバイス4-1番目を示す情報(図５のPortNumber=4、DataNumber=1)を付加したデータ(h2b1)をホストバス４１に送信する。同様にa2h4の4N+2番目のDwordデータとその先頭にデバイス4-2番目を示す情報(PortNumber=4、DataNumber=2) を付加したデータ(h2b2)をホストバス４２に、a2h4の4N+3番目のDwordデータとその先頭にデバイス4-3番目を示す情報(PortNumber=4、DataNumber=3) を付加したデータ(h2b3)をホストバス４３に、a2h4の4N+4番目のDwordデータとその先頭にデバイス4-4番目を示す情報(PortNumber=4、DataNumber=4) を付加したデータ(h2b4)をホストバス４４に送信する。
（３）ブリッジではデータ分割/結合器31内のデータ結合部311がh2b1,2,3,4のそれぞれの先頭に付加されたPortNumber、DataNumberを元に結合したデータ(b2d4)をデバイスバス５４に送信する。
（４）デバイス24がb2d4を受信する。
【００３１】
次に、デバイス２４からホスト１へのデータ転送について説明する。
（１）ブリッジではデバイス24からのデータ(d2b4)を受信する。
（２）データ分割/結合器31内のデータ分割部313はd2b4をDword毎にb2h1,2,3,4に分割しそれぞれホストバス４１、４２、４３、４４に送信する。つまり、d2b4の4N+1番目のDwordデータとその先頭にデバイス4-1番目を示す情報(PortNumber=4、DataNumber=1)を付加したデータ(b2h1)をホストバス４１に送信し、同様にd2b4の4N+2番目のDwordデータとその先頭にデバイス4-2番目を示す情報(PortNumber=4、DataNumber=2)を付加したデータ(b2h2)をホストバス４２に、d2b4の4N+3番目のDwordデータとその先頭にデバイス4-3番目を示す情報(PortNumber=4、DataNumber=3)を付加したデータ(b2h3)をホストバス４３に、d2b4の4N+4番目のDwordデータとその先頭にデバイス4-4番目を示す情報(PortNumber=4、DataNumber=4)を付加したデータ(b2h4)をホストバス４４に送信する。
（３）ホスト側ではデータ分割/結合器11内のデータ結合部113がb2h1,2,3,4のそれぞれの先頭に付加されたPortNumber、DataNumberを元に結合したデータ(h2a4)を上位層ap4に送信する。
（４）ap4がh2a4を受信する。
【００３２】
上記の例ではデバイス２４のデータ転送能力が6Gbpsで他の３デバイスが全てデータ転送を行っていないためホストバス４１、４２、４３、４４全てを使用したが、デバイスのデータ転送能力が3Gbpsの場合は最大２本のhost-busを使用する。つまり、バスの転送能力の合計がデバイスの転送能力以上となる範囲内で、最小本数のバスを使用する。
また、複数のデバイスがデータ転送を行っている場合も、上記の例と同様に未使用バスを適宜選択して使用する。例えば、デバイス２３とデバイス２４がデータ転送を行っている場合は、ホスト１とデバイス２３との間の転送には、ホストバス４１とホストバス４３を、ホスト１とデバイス２４との間の転送には、ホストバス４２とホストバス４４を、それぞれ使用する。
【００３３】
シリアルＡＴＡの仕様では、ホストのシリアルインターフェースの通信速度を認識するために、ホスト内にレジスタ等の通知手段を持つこととなっている。
本発明において、同様にホスト１がブリッジ３と各デバイス２０間の通信速度を認識する必要がある。これは、例えば、シリアルＡＴＡのコマンドのうち未使用のものを利用して行うことができる。つまり、ホスト１が各デバイス２０に対してこのコマンドを送信し、このコマンドに対してブリッジ３がホスト１に対して終了通知(レジスタＦＩＳ)を返信するが、その終了通知の空き領域を利用して速度情報を通知する。
【００３４】
次に、データ処理装置４の効果について説明する。
第１の効果は、デバイスが複数接続されている場合においても、ホストバスの使用効率を向上させてホストバスの転送能力をデバイス２０が持つ転送能力に近づけることができることにある。
その理由は、デバイスの使用状況に応じてデータ転送を行っていないデバイスのホストバス（未使用バス）を適切に選択して、ホスト１とブリッジ３との間のデータ転送に使用するためである。
【００３５】
次に、本発明の第２の実施形態であるデータ処理装置７ついて図面を参照して詳細に説明する。データ処理装置４と共通する構成要素には、第１の実施形態の場合と同一の符号を付して説明を省略する。
図５は、データ処理装置７の全体構成を示すブロック図である。
データ処理装置７は、ホスト５とブリッジ６とデバイス群２により構成されている。ホスト５とブリッジ６、ブリッジ６とデバイス群２に含まれるデバイス２０は、図１と同様に、それぞれ、ホストバスとデバイスバスで接続されている。
図１のデータ処理装置４においては、ホスト１は、データ分割/結合器11を備えているが、データ処理装置７ではデータ分割/結合器11が行う処理をソフトウェアで行うことにより、従来のホストのハードウェア構成をそのまま使用する。
ブリッジ部６は、データ分割／結合器６１を備えている。データ分割／結合器６１の構成は、図３に示したものと同様であるが、その動作はやや異なっている。ブリッジ部３ではデータを分割/結合するのみで、図４のように従来のS-ATAのデータ転送フォーマットの未使用フィールドに「PortNumber」および「DataNumber」フィールドを追加する処理は行わない。
【００３６】
図６は、ホスト５の機能ブロック図である。
ホスト５は、データ分割手段５０１、データ結合手段５０２、メモリ５０３、未使用バス特定情報通知手段５０４を備えている。
データ分割手段５０１は、デバイス２０に送信するデータを送信に使用するホストバスの本数に分割しメモリ５０３に格納する。
データ結合手段５０２は、上位層ａｐ１、ａｐ２、ａｐ３、ａｐ４がブリッジ６から受信しメモリ５０３に格納した分割されたデータを結合する。
未使用バス特定情報通知手段５０４は、ホストバス４１、４２、４３、４４のそれぞれがどのデバイス２０により使用されているかを示す情報、すなわち未使用バスを特定する情報をブリッジ６に通知する。この通知は、例えば、シリアルＡＴＡのコマンドのうち未使用のものを利用して行うことができる。
上記の各手段は、ホスト５のＣＰＵ(Central
Processing Unit)がコンピュータプログラムを実行し、ホスト５の各ハードウェアを制御することにより実現される。
【００３７】
次に、データ処理装置７の動作について説明する。
データを分割するサイズは任意であるが、ここでは、シリアルＡＴＡの最小データサイズに合わせてDwordで説明する。以下の詳細説明では４つのデバイスのうち、デバイス24のみがデータ転送を行う場合の動作を説明する。このデバイスは6Gbpsのデータ転送能力がありホスト側が1.5Gbpsのデータ転送能力しかないため、ホストバス４１、４２、４３、４４を全てデバイス24のデータ転送のために使用することによりデバイス24のフルデータ転送能力を使用することができる。
【００３８】
では、以下に具体例で説明する。
まず、ホスト５からデバイス２４へのデータ転送について説明する。
（１）ソフトウェアによりメモリ上にDword毎に４分割、すなわちデータ転送に使用するホストバスの本数に分割されたデータを用意する。具体的には、データ分割手段５０１がデータを４分割しメモリ５０３に格納する。
（２）未使用バス特定情報通知手段５０４は、未使用バスを特定する情報をブリッジ６に通知する。
（３）ホスト５は、デバイス24に対してコマンドを発行する。
（４）データ転送を開始しホスト側は上位層ap1,2,3,4からそれぞれ４分割されたデータを受信する。
（５）ホスト５は、ap1,2,3,4からのデータをそのままホストバス４１、４２、４３、４４に送信する。
（６）ブリッジ６は、デバイス24からDMA（Direct
Memory Access）送信要求（DMA_ACTIVATE_FIS）を受信する。
（７）ブリッジではデータ分割/結合器31内のデータ結合部311がホスト５から受信した分割されたデータh2b1,2,3,4を結合してデータ(b2d4)を生成し、デバイスバス５４に送信する。つまり、h2b1のN番目のデータとh2b2のN番目のデータとh2b3のN番目のデータとh2b4のN番目のデータ(N=1,2・・・)というふうに結合する。
（８）デバイス24がb2d4を受信する。
【００３９】
次に、デバイス２４からホスト５へのデータ転送について説明する。
（１）未使用バス特定情報通知手段５０４は、未使用バスを特定する情報をブリッジ６に通知する。
（２）ホスト５は、デバイス24に対して転送開始を要求するコマンドを発行する。
（３）ブリッジ６は、デバイス24からのデータ(d2b4)を受信する。
（４）データ分割/結合器６１のデータ分割部313はd2b4をDword毎にb2h1,2,3,4に分割しそれぞれhost-bus1,2,3,4に送信する。つまり、d2b4の4N+1番目のDwordデータ (b2h1)をホストバス４１に送信し、同様にd2b4の4N+2番目のDwordデータ (b2h2)をホストバス４２に、d2b4の4N+3番目のDwordデータ (b2h3)をホストバス４３に、d2b4の4N+4番目のDwordデータ (b2h4)をホストバス４４に送信する。
（５）ホスト５は、受信したデータをそのまま上位層ap1,2,3,4に送信する。
（６）ap1,2,3,4はそれぞれh2a1,2,3,4を受信し、それぞれデータ結合手段５０２によって設定されたメモリ上に送信する。
（７）データ結合手段５０２は、４つのメモリ領域のデータをDword毎に結合する。
【００４０】
上記の例ではデバイス２４のデータ転送能力が6Gbpsで他の３デバイスが全てデータ転送を行っていないためホストバス４１、４２、４３、４４の全てを使用した。デバイスのデータ転送能力が3Gbpsの場合は最大２本のホストバスを使用する。つまり、ホストバスの転送能力の合計がデバイスの転送能力以上となる範囲内で、最小本数のバスを使用する。
【００４１】
本実施例においても、ブリッジ６からホスト５への通信速度の通知は、第１の実施例と同様に、例えば、シリアルＡＴＡのコマンドのうち未使用のものを用いて行うことができる。
【００４２】
データ処理装置７によれば、データ処理装置４と同様に、ホストバスの使用効率を向上させてホストバスの転送能力をデバイス２０が持つ転送能力に近づけることができる。
また、データ処理装置７においては、ホスト５におけるデータの分割および結合をソフトウェアにより行っている。
そのため、ホスト装置５のハードウェアは、従来のものに変更を加えることなくそのまま使用することができる。また、分割された転送データのヘッダに新たなフィールドを設ける必要もない。
【図面の簡単な説明】
【００４３】
【図１】本発明の第１の実施形態であるデータ処理装置のブロック図である。
【図２】ホストのデータ分割／結合器の機能ブロック図である。
【図３】ブリッジのデータ分割／結合器の機能ブロック図である。
【図４】データ分割／結合器が転送データに付加する情報を説明する図である。
【図５】本発明の第２の実施形態であるデータ処理装置のブロック図である。
【図６】図５のホストの機能ブロック図である。
【図７】従来のシリアル転送方式を説明する図である。
【符号の説明】
【００４４】
１、５  ホスト
２  デバイス群
３、６  ブリッジ
４、７  データ処理装置
１１、３１、６１  データ分割／結合器
２１、２２、２３、２４  デバイス
４１、４２、４３、４４  ホストバス
５１、５２、５３、５４  デバイスバス
５０１  データ分割手段
５０２  データ結合手段
５０３  メモリ
５０４  未使用バス特定情報通知手段
【図１】
0004564939.tif 000002
【図２】
0004564939.tif 000003
【図３】
0004564939.tif 000004
【図４】
0004564939.tif 000005
【図５】
0004564939.tif 000006
【図６】
0004564939.tif 000007
【図７】
0004564939.tif 000008