説明

データ処理装置、データ転送方法、データ転送プログラム

【課題】ホスト装置に複数のデバイスが接続されている場合に、それらのデバイスの使用状況に応じてデータ転送に用いるバスを適切に決定することができるデータ転送方法等を提供すること
【解決手段】ホスト装置1は、上位層から受信したデータを所定の分割サイズに分割し、ホストバスの中からデバイスの使用状況に応じて選択した複数のものを用いてブリッジに送信する機能と、ブリッジから複数のホストバスを介して受信したデータを結合して上位層に送信する機能とを備えたホスト側データ分割結合器11を備えている。ブリッジ3は、デバイス20から受信したデータを所定の分割サイズに分割し、ホストバスの中からデバイスの使用状況に応じて選択した複数のものを用いてホスト装置に送信する機能と、ホスト装置から複数のホストバスを介して受信したデータを結合してデバイスに送信する機能とを備えたブリッジ側データ分割結合器31を備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シリアル方式によるデータ転送技術に関し、特に空いているバス利用してデータ転送速度を向上させる技術に関する。
【背景技術】
【0002】
データ処理装置で用いられているATA(AT
Attachment)の転送方式は転送速度を向上するためにパラレル転送からシリアル転送に移行しつつある。シリアルATAの規格においても1.5Gbps(bit/sec)、3Gbpsというように転送速度を向上させた規格も定義されてきており今後も速度向上が実施されていくと思われる。
実際にシリアル転送を行う物理層の速度向上は技術的に難しい面があり、ホスト側の速度制約またはホスト側とデバイス側双方の相性によってはデバイス側がサポートする最高速度で転送することができない場合があった。
【0003】
また、図7に示すように、ホスト400のインターフェースと記憶装置等のデバイス402等は1対1接続されており使用中のデバイスのバスのみが使用されており、未使用のデバイスのバスはデータ転送に使用されることがなく効率が悪いという問題もあった。たとえば、デバイス402だけがホスト400との間でバス406を介してデータ転送を行っている場合、空いているバス407、408、409を有効に使用することはできなかった。
【0004】
このような問題を解決しようとするデータ転送システムが特許文献1に記載されている。このデータ転送システムは、ホストシステムと記憶装置との間にデバイスシステムを備え、ホストシステムとデバイスシステムは、それぞれに備えられる複数のシリアルインタフェースコントローラを通して接続され、デバイスシステムと記憶装置は、少なくとも一つのインタフェースコントローラで接続され、ホストシステムとデバイスシステムは、複数のシリアルインタフェースコントローラの数に対応して転送するデータを分割及び、結合する機能を備えている。
【0005】
【特許文献1】特開2003−131815号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかし、特許文献1には、記憶装置が複数接続されている場合のデータ転送方法については記載されていない。そのため、複数の記憶装置の動作状況(各記憶装置がホストシステムとの間でデータ転送を行っているか否か)に応じてデータ転送に用いるバス(シリアルインターフェースコントローラ)を適切に決定することができないという問題があった。
【0007】
そこで、本発明は、ホスト装置に複数のデバイスが接続されている場合に、それらのデバイスの使用状況に応じてデータ転送に用いるバスを適切に決定することができるデータ転送方法等を提供することを、その目的とする。
【課題を解決するための手段】
【0008】
本発明の、データ処理装置は、ホスト装置と、このホスト装置と複数のホストバスにより接続されたブリッジと、このブリッジと複数のデバイスバスにより接続された複数のデバイスを備えている。
ホスト装置は、上位層から受信したデータを所定の分割サイズに分割し、ホストバスの中からデバイスの使用状況に応じて選択した複数のものを用いてブリッジに送信する機能と、ブリッジから複数のホストバスを介して受信したデータを結合して上位層に送信する機能とを備えたホスト側データ分割結合器を備えている。
ブリッジは、デバイスから受信したデータを所定の分割サイズに分割し、ホストバスの中からデバイスの使用状況に応じて選択した複数のものを用いてホスト装置に送信する機能と、ホスト装置から複数のホストバスを介して受信したデータを結合してデバイスに送信する機能とを備えたブリッジ側データ分割結合器を備えている(請求項1ないし請求項5)。
【0009】
上記データ処理装置によれば、デバイスの使用状況に応じて、データ転送を行っていないデバイスのホストバスを適切に選択して、ホスト装置とブリッジとの間のデータ転送に使用する。
そのため、デバイスが複数接続されている場合においても、ホストバスの使用効率を向上させてホストバスの転送能力をデバイスが持つ転送能力に近づけることができる。
【0010】
上記データ処理装置において、ホスト側データ分割結合器およびブリッジ側データ分割結合器は、合計のデータ転送能力がデータの転送の対象であるデバイスのデータ転送能力と同等または超える範囲で本数が最小となるようにホストバスを選択するようにしてもよい(請求項2)。
このようにすれば、デバイスの持つ転送能力に応じて、必要十分な数のホストバスを選択して、ホスト装置とブリッジとの間のデータ転送に用いることができる。
【0011】
上記データ処理装置において、ホスト装置とブリッジとの間およびブリッジとデバイスとの間のデータ送受信は、シリアルATA方式によって行い、ホスト側データ分割結合器およびブリッジ側データ分割結合器は、分割したデータのヘッダにブリッジとデバイスとの間のデータの送受信に使用するデバイスバスを特定する情報と、分割されたデータを結合する順番を示す情報を付加するようにしてもよい(請求項3)。さらに、分割サイズを、32ビットとしてもよい(請求項4)。
このようにすれば、広く普及しているシリアルATA方式に対応したホスト装置とデバイスを利用して、データ処理装置を容易に構成することができる。分割サイズを32ビットとすれば、シリアルATA方式の最小データサイズと一致するので、送信部に渡すデータに送信データのサイズを示す情報を付加する必要がなくなる。
【0012】
本発明の第2のデータ処理装置は、ホスト装置と、このホスト装置と複数のホストバスにより接続されたブリッジと、このブリッジと複数のデバイスバスにより接続された複数のデバイスを備えている。
ホスト装置は、デバイス装置に送信するデータをデータ転送を行っていないホストバスである未使用バスの本数に分割して分割データを生成しこの分割データをメモリに格納するデータ分割手段と、未使用バスを特定する未使用バス特定情報をブリッジに通知する未使用バス特定情報通知手段と、メモリに格納された各分割データをそれぞれ一本の未使用バスを用いてブリッジに送信するデータ送信手段と、ブリッジから送信された分割データを受信しメモリに格納する分割データ受信手段と、この分割データ受信手段によりメモリに格納された分割データを結合するデータ結合手段を備えている。
ブリッジは、未使用バス特定情報を基に、デバイスから受信したデータを未使用バスの本数で分割し、未使用バスを介してホスト装置に送信する機能と、ホスト装置から受信した分割データを結合してデバイスに送信する機能とを備えたデータ分割結合器を備えている(請求項5)。
【0013】
上記データ転送装置によれば、第1のデータ処理装置と同様に、デバイスが複数接続されている場合においても、ホストバスの使用効率を向上させてホストバスの転送能力をデバイスが持つ転送能力に近づけることができる。
【0014】
本発明のデータ転送方法は、ホスト装置が、デバイスに送信するデータを所定の分割サイズに分割し、ホストバスの中からデバイスの使用状況に応じて選択した複数のものを用いてホスト装置とデバイス装置の間に設けられたブリッジに送信し、このブリッジ装置が、ホスト装置から受信したデータを結合してデバイスに送信するホスト側送信工程と、ブリッジが、デバイスから受信したデータを所定の分割サイズに分割し、ホストバスの中からデバイスの使用状況に応じて選択した複数のものを用いてホスト装置に送信し、このホスト装置が、ブリッジから受信したデータを結合して上位層に送信するデバイス側送信工程とにより、ホスト装置とでバイトの間のデータ転送を行う(請求項6ないし請求項9)。
【0015】
上記データ転送方法によれば、デバイスの使用状況に応じて、データ転送を行っていないデバイスのホストバスを適切に選択して、ホスト装置とブリッジとの間のデータ転送に使用する。
そのため、デバイスが複数接続されている場合においても、ホストバスの使用効率を向上させてホストバスの転送能力をデバイスが持つ転送能力に近づけることができる。
【0016】
上記データ転送方法において、ホスト側送信工程およびデバイス側送信工程では、合計のデータ転送能力がデータの転送の対象であるデバイスのデータ転送能力と同等または超える範囲で本数が最小となるようにホストバスを選択するようにしても良い(請求項7)。
このようにすれば、デバイスの持つ転送能力に応じて、必要十分な数のホストバスを選択して、ホスト装置とブリッジとの間のデータ転送に用いることができる。分割サイズを32ビットとすれば、シリアルATA方式の最小データサイズと一致するので、送信部に渡すデータに送信データのサイズを示す情報を付加する必要がなくなる。
【0017】
上記データ転送方法において、ホスト装置とブリッジとの間およびブリッジとデバイスとの間のデータ送受信は、シリアルATA方式によって行い、ホスト側送信工程およびデバイス側送信工程では、分割したデータのヘッダにブリッジとデバイスとの間のデータの送受信に使用するデバイスバスを特定する情報と、分割されたデータを結合する順番を示す情報を付加するようにしても良い(請求項8)。さらに、分割サイズを32ビットとしてもよい(請求項9)。
このようにすれば、広く普及しているシリアルATA方式に対応したホスト装置とデバイスを利用して、データ処理装置を容易に構成することができる。
【0018】
本発明の第2のデータ転送方法は、ホスト装置が、デバイス装置に送信するデータをデータ転送を行っていないホストバスである未使用バスの本数に分割して分割データを生成しこの分割データをメモリに格納し、未使用バスを特定する未使用バス特定情報をホスト装置とデバイス装置の間に設けられたブリッジに通知し、メモリに格納された各分割データをそれぞれ一本の未使用バスを用いてブリッジに送信し、ブリッジが、未使用バス特定情報を基に、ホスト装置から受信した分割データを結合してデバイスに送信するホスト側送信工程と、ブリッジが、未使用バス特定情報を基に、デバイスから受信したデータを未使用バスの本数で分割し、未使用バスを使用してホスト装置に送信し、ホスト装置がブリッジから送信された分割データを受信しメモリに格納し、このメモリに格納された分割データを結合するデバイス側送信工程とによりデータの転送を行う(請求項10)。
【0019】
上記データ転送装置によれば、第1のデータ処理装置と同様に、デバイスが複数接続されている場合においても、ホストバスの使用効率を向上させてホストバスの転送能力をデバイスが持つ転送能力に近づけることができる。
【0020】
本発明のデータ転送プログラムは、デバイスとの間でデータ転送を行うホスト装置に、デバイス装置に送信するデータをデータ転送を行っていないホストバスである未使用バスの本数に分割して分割データを生成しこの分割データをメモリに格納するデータ分割処理と、未使用バスを特定する未使用バス特定情報をホスト装置とデバイス装置の間に設けられたブリッジに通知する未使用バス特定情報通知処理と、メモリに格納された各分割データをそれぞれ一本の未使用バスを用いてブリッジに送信するデータ送信処理と、ブリッジから送信された分割データを受信しメモリに格納する分割データ受信処理と、この分割データ受信手段によりメモリに格納された分割データを結合するデータ結合処理とを実行させる(請求項11)。
【0021】
上記データ転送プログラムによれば、デバイスが複数接続されている場合においても、ホストバスの使用効率を向上させてホストバスの転送能力をデバイスが持つ転送能力に近づけることができる。
【発明の効果】
【0022】
本発明によれば、デバイスの使用状況に応じて、データ転送を行っていないデバイスのホストバスを適切に選択して、ホスト装置とブリッジとの間のデータ転送に使用する。
そのため、デバイスが複数接続されている場合においても、ホストバスの使用効率を向上させてホストバスの転送能力をデバイスが持つ転送能力に近づけることができる。
【発明を実施するための最良の形態】
【0023】
以下、図を参照しながら本発明の第一の実施形態であるデータ処理装置4の構成と動作について説明する。
図1は、データ処理装置4の全体構成を示すブロック図である。
1はホスト、2はデバイス群、3はブリッジである。ホスト1は、ブリッジ3を介してデバイス群2との間でデータの転送を行う。
【0024】
ホスト1は、たとえばパーソナルコンピュータであり、転送データの分割および分割された転送データの結合を行うデータ分割/結合器11を備えている。
デバイス群2は、デバイス21、デバイス22、デバイス23、デバイス24からなる。各デバイスは、シリアルATA方式に対応した任意の機器で、例えばハードディスク装置である。なお、特に区別する必要のない場合は、これらのデバイスの総称として「デバイス20」ということにする。また、デバイスの数は、4台には限定されず、2台以上であれば何台でもよい。
ブリッジ3は、ホスト1とデバイス20との間のデータ転送を中継する装置で、転送データの分割および分割された転送データの結合を行うデータ分割/結合器31を備えている。
【0025】
ブリッジ3とデバイス21、22、23、24は、それぞれデバイスバス51、52、53、54により接続されている。ホスト11とブリッジ3は、4本のホストバス41、42、43、44により接続されている。ホスト1がデバイス21、22、23、24との間でデータ転送を行う際には、それぞれ、ホストバス41、42、43、44を使用する。すなわち、ホストバスとデバイスは1対1に対応付けられている。ただし、データ処理装置4においては、対応付けられているホストバス以外のホストバスがデータの転送に使用されていない(そのようなバスを以下「未使用バス」という)場合には、未使用バスもデータの転送に使用することによりデータ転送の高速化を実現している。
【0026】
図2は、データ分割/結合器11(ホスト側データ分割結合器の一例)の機能ブロック図である。
データ分割/結合器11は、データ分割部111と制御部112とデータ結合部113を備えている。
制御部112は、デバイス20の使用状況、すなわち各デバイスがいずれのホストバスを使用しているかという状況に応じてブリッジ3との間でデータを送受信するために用いるホストバスを選択する。
データ分割部111は、例えばデバイスドライバ等の上位層(図1のap1、ap2、ap3、ap4)から受信したデバイス20への送信データa2hN(N=1〜4)を制御部112の指示により分割しブリッジ3への送信データh2bN(N=1〜4)を作成する。
データ結合部113はブリッジ3からの送信データb2hN(N=1〜4)を制御部112からの指示により結合し上位層への送信データh2aN(N=1〜4)を作成する。
【0027】
図3は、データ分割/結合器31(ブリッジ側データ分割結合器の一例)の機能ブロック図である。
データ分割/結合器31は、データ分割部311と制御部312とデータ結合部313を備えている。
制御部312は、デバイス20の使用状況に応じてホスト1との間でデータを送受信するために用いるホストバスを選択する。
データ結合部311はホスト部1からの送信データh2bN(N=1〜4)を制御部312からの指示により結合しデバイス20への送信データb2dN(N=1〜4)を作成する。
データ分割部313はデバイスから上位層への送信データd2bN(N=1〜4)を制御部312からの指示により分割しホスト部への送信データb2hN(N=1〜4)を作成する。
【0028】
次に、図1ないし図4を用いて、データ処理装置4の動作について説明する。図1に示すようにデバイス21、22、23、24の4デバイスが接続されるシステムを例に説明する。
デバイス21、22、34、24が全て動作している場合は、ホストバス41、42、43、44はそれぞれデバイス21、22、34、24のデータ転送のために使用される。
しかし、4デバイスのうち、1デバイスでも動作していない場合で、かつ、ホストのデータ転送速度より速い転送速度のデバイスがデータ転送を行う場合、このデータ転送用に未使用バスを使用する。以下の詳細説明では4つのデバイスのうち、デバイス24のみがデータ転送を行う場合の動作を説明する。デバイス24は、6Gbpsの転送能力があり、ホスト1側の転送能力は1.5Gbpsとして説明する。データを分割するサイズは任意であるがシリアルATAの最小データサイズであるDword(32bit)として説明する。
【0029】
図4に、データ分割/結合器11、31が分割データに付加する情報を示す。
データ分割/結合器11、31はシリアルATAのデータ転送フォーマットの未使用フィールドに新規に「PortNumber」と「DataNumber」の二つのフィールドを追加することにより分割データに情報を付加する。
「PortNumber」は、ホスト1との間でデータ転送を行うデバイス(すなわち、デバイスバスを)を特定する情報である。
「DataNumber」は、データ分割/結合器11またはデータ分割/結合器31により分割されたデータの分割前のデータにおける先頭からの順番を示すフィールドである。データ結合/分配器11またはデータ結合/分配器31は、このフィールドを参照して分割されたデータを元の順番に結合する。
【0030】
では、以下に具体例で説明する。
まず、ホスト1からデバイス24へのデータ転送について説明する。
(1)データ分割/結合器11は、上位層ap4からのデータ(a2h4)を受信する。
(2)データ分割/結合器11内のデータ分割部111はa2h4をDword毎にh2b1,2,3,4に分割しそれぞれホストバス41、42、43、44に送信する。つまり、a2h4の4N+1番目のDwordデータ(N=0,1,2・・・)の先頭にデバイス4-1番目を示す情報(図5のPortNumber=4、DataNumber=1)を付加したデータ(h2b1)をホストバス41に送信する。同様にa2h4の4N+2番目のDwordデータとその先頭にデバイス4-2番目を示す情報(PortNumber=4、DataNumber=2) を付加したデータ(h2b2)をホストバス42に、a2h4の4N+3番目のDwordデータとその先頭にデバイス4-3番目を示す情報(PortNumber=4、DataNumber=3) を付加したデータ(h2b3)をホストバス43に、a2h4の4N+4番目のDwordデータとその先頭にデバイス4-4番目を示す情報(PortNumber=4、DataNumber=4) を付加したデータ(h2b4)をホストバス44に送信する。
(3)ブリッジではデータ分割/結合器31内のデータ結合部311がh2b1,2,3,4のそれぞれの先頭に付加されたPortNumber、DataNumberを元に結合したデータ(b2d4)をデバイスバス54に送信する。
(4)デバイス24がb2d4を受信する。
【0031】
次に、デバイス24からホスト1へのデータ転送について説明する。
(1)ブリッジではデバイス24からのデータ(d2b4)を受信する。
(2)データ分割/結合器31内のデータ分割部313はd2b4をDword毎にb2h1,2,3,4に分割しそれぞれホストバス41、42、43、44に送信する。つまり、d2b4の4N+1番目のDwordデータとその先頭にデバイス4-1番目を示す情報(PortNumber=4、DataNumber=1)を付加したデータ(b2h1)をホストバス41に送信し、同様にd2b4の4N+2番目のDwordデータとその先頭にデバイス4-2番目を示す情報(PortNumber=4、DataNumber=2)を付加したデータ(b2h2)をホストバス42に、d2b4の4N+3番目のDwordデータとその先頭にデバイス4-3番目を示す情報(PortNumber=4、DataNumber=3)を付加したデータ(b2h3)をホストバス43に、d2b4の4N+4番目のDwordデータとその先頭にデバイス4-4番目を示す情報(PortNumber=4、DataNumber=4)を付加したデータ(b2h4)をホストバス44に送信する。
(3)ホスト側ではデータ分割/結合器11内のデータ結合部113がb2h1,2,3,4のそれぞれの先頭に付加されたPortNumber、DataNumberを元に結合したデータ(h2a4)を上位層ap4に送信する。
(4)ap4がh2a4を受信する。
【0032】
上記の例ではデバイス24のデータ転送能力が6Gbpsで他の3デバイスが全てデータ転送を行っていないためホストバス41、42、43、44全てを使用したが、デバイスのデータ転送能力が3Gbpsの場合は最大2本のhost-busを使用する。つまり、バスの転送能力の合計がデバイスの転送能力以上となる範囲内で、最小本数のバスを使用する。
また、複数のデバイスがデータ転送を行っている場合も、上記の例と同様に未使用バスを適宜選択して使用する。例えば、デバイス23とデバイス24がデータ転送を行っている場合は、ホスト1とデバイス23との間の転送には、ホストバス41とホストバス43を、ホスト1とデバイス24との間の転送には、ホストバス42とホストバス44を、それぞれ使用する。
【0033】
シリアルATAの仕様では、ホストのシリアルインターフェースの通信速度を認識するために、ホスト内にレジスタ等の通知手段を持つこととなっている。
本発明において、同様にホスト1がブリッジ3と各デバイス20間の通信速度を認識する必要がある。これは、例えば、シリアルATAのコマンドのうち未使用のものを利用して行うことができる。つまり、ホスト1が各デバイス20に対してこのコマンドを送信し、このコマンドに対してブリッジ3がホスト1に対して終了通知(レジスタFIS)を返信するが、その終了通知の空き領域を利用して速度情報を通知する。
【0034】
次に、データ処理装置4の効果について説明する。
第1の効果は、デバイスが複数接続されている場合においても、ホストバスの使用効率を向上させてホストバスの転送能力をデバイス20が持つ転送能力に近づけることができることにある。
その理由は、デバイスの使用状況に応じてデータ転送を行っていないデバイスのホストバス(未使用バス)を適切に選択して、ホスト1とブリッジ3との間のデータ転送に使用するためである。
【0035】
次に、本発明の第2の実施形態であるデータ処理装置7ついて図面を参照して詳細に説明する。データ処理装置4と共通する構成要素には、第1の実施形態の場合と同一の符号を付して説明を省略する。
図5は、データ処理装置7の全体構成を示すブロック図である。
データ処理装置7は、ホスト5とブリッジ6とデバイス群2により構成されている。ホスト5とブリッジ6、ブリッジ6とデバイス群2に含まれるデバイス20は、図1と同様に、それぞれ、ホストバスとデバイスバスで接続されている。
図1のデータ処理装置4においては、ホスト1は、データ分割/結合器11を備えているが、データ処理装置7ではデータ分割/結合器11が行う処理をソフトウェアで行うことにより、従来のホストのハードウェア構成をそのまま使用する。
ブリッジ部6は、データ分割/結合器61を備えている。データ分割/結合器61の構成は、図3に示したものと同様であるが、その動作はやや異なっている。ブリッジ部3ではデータを分割/結合するのみで、図4のように従来のS-ATAのデータ転送フォーマットの未使用フィールドに「PortNumber」および「DataNumber」フィールドを追加する処理は行わない。
【0036】
図6は、ホスト5の機能ブロック図である。
ホスト5は、データ分割手段501、データ結合手段502、メモリ503、未使用バス特定情報通知手段504を備えている。
データ分割手段501は、デバイス20に送信するデータを送信に使用するホストバスの本数に分割しメモリ503に格納する。
データ結合手段502は、上位層ap1、ap2、ap3、ap4がブリッジ6から受信しメモリ503に格納した分割されたデータを結合する。
未使用バス特定情報通知手段504は、ホストバス41、42、43、44のそれぞれがどのデバイス20により使用されているかを示す情報、すなわち未使用バスを特定する情報をブリッジ6に通知する。この通知は、例えば、シリアルATAのコマンドのうち未使用のものを利用して行うことができる。
上記の各手段は、ホスト5のCPU(Central
Processing Unit)がコンピュータプログラムを実行し、ホスト5の各ハードウェアを制御することにより実現される。
【0037】
次に、データ処理装置7の動作について説明する。
データを分割するサイズは任意であるが、ここでは、シリアルATAの最小データサイズに合わせてDwordで説明する。以下の詳細説明では4つのデバイスのうち、デバイス24のみがデータ転送を行う場合の動作を説明する。このデバイスは6Gbpsのデータ転送能力がありホスト側が1.5Gbpsのデータ転送能力しかないため、ホストバス41、42、43、44を全てデバイス24のデータ転送のために使用することによりデバイス24のフルデータ転送能力を使用することができる。
【0038】
では、以下に具体例で説明する。
まず、ホスト5からデバイス24へのデータ転送について説明する。
(1)ソフトウェアによりメモリ上にDword毎に4分割、すなわちデータ転送に使用するホストバスの本数に分割されたデータを用意する。具体的には、データ分割手段501がデータを4分割しメモリ503に格納する。
(2)未使用バス特定情報通知手段504は、未使用バスを特定する情報をブリッジ6に通知する。
(3)ホスト5は、デバイス24に対してコマンドを発行する。
(4)データ転送を開始しホスト側は上位層ap1,2,3,4からそれぞれ4分割されたデータを受信する。
(5)ホスト5は、ap1,2,3,4からのデータをそのままホストバス41、42、43、44に送信する。
(6)ブリッジ6は、デバイス24からDMA(Direct
Memory Access)送信要求(DMA_ACTIVATE_FIS)を受信する。
(7)ブリッジではデータ分割/結合器31内のデータ結合部311がホスト5から受信した分割されたデータh2b1,2,3,4を結合してデータ(b2d4)を生成し、デバイスバス54に送信する。つまり、h2b1のN番目のデータとh2b2のN番目のデータとh2b3のN番目のデータとh2b4のN番目のデータ(N=1,2・・・)というふうに結合する。
(8)デバイス24がb2d4を受信する。
【0039】
次に、デバイス24からホスト5へのデータ転送について説明する。
(1)未使用バス特定情報通知手段504は、未使用バスを特定する情報をブリッジ6に通知する。
(2)ホスト5は、デバイス24に対して転送開始を要求するコマンドを発行する。
(3)ブリッジ6は、デバイス24からのデータ(d2b4)を受信する。
(4)データ分割/結合器61のデータ分割部313はd2b4をDword毎にb2h1,2,3,4に分割しそれぞれhost-bus1,2,3,4に送信する。つまり、d2b4の4N+1番目のDwordデータ (b2h1)をホストバス41に送信し、同様にd2b4の4N+2番目のDwordデータ (b2h2)をホストバス42に、d2b4の4N+3番目のDwordデータ (b2h3)をホストバス43に、d2b4の4N+4番目のDwordデータ (b2h4)をホストバス44に送信する。
(5)ホスト5は、受信したデータをそのまま上位層ap1,2,3,4に送信する。
(6)ap1,2,3,4はそれぞれh2a1,2,3,4を受信し、それぞれデータ結合手段502によって設定されたメモリ上に送信する。
(7)データ結合手段502は、4つのメモリ領域のデータをDword毎に結合する。
【0040】
上記の例ではデバイス24のデータ転送能力が6Gbpsで他の3デバイスが全てデータ転送を行っていないためホストバス41、42、43、44の全てを使用した。デバイスのデータ転送能力が3Gbpsの場合は最大2本のホストバスを使用する。つまり、ホストバスの転送能力の合計がデバイスの転送能力以上となる範囲内で、最小本数のバスを使用する。
【0041】
本実施例においても、ブリッジ6からホスト5への通信速度の通知は、第1の実施例と同様に、例えば、シリアルATAのコマンドのうち未使用のものを用いて行うことができる。
【0042】
データ処理装置7によれば、データ処理装置4と同様に、ホストバスの使用効率を向上させてホストバスの転送能力をデバイス20が持つ転送能力に近づけることができる。
また、データ処理装置7においては、ホスト5におけるデータの分割および結合をソフトウェアにより行っている。
そのため、ホスト装置5のハードウェアは、従来のものに変更を加えることなくそのまま使用することができる。また、分割された転送データのヘッダに新たなフィールドを設ける必要もない。
【図面の簡単な説明】
【0043】
【図1】本発明の第1の実施形態であるデータ処理装置のブロック図である。
【図2】ホストのデータ分割/結合器の機能ブロック図である。
【図3】ブリッジのデータ分割/結合器の機能ブロック図である。
【図4】データ分割/結合器が転送データに付加する情報を説明する図である。
【図5】本発明の第2の実施形態であるデータ処理装置のブロック図である。
【図6】図5のホストの機能ブロック図である。
【図7】従来のシリアル転送方式を説明する図である。
【符号の説明】
【0044】
1、5 ホスト
2 デバイス群
3、6 ブリッジ
4、7 データ処理装置
11、31、61 データ分割/結合器
21、22、23、24 デバイス
41、42、43、44 ホストバス
51、52、53、54 デバイスバス
501 データ分割手段
502 データ結合手段
503 メモリ
504 未使用バス特定情報通知手段

【特許請求の範囲】
【請求項1】
ホスト装置と、このホスト装置と複数のホストバスにより接続されたブリッジと、このブリッジと複数のデバイスバスにより接続された複数のデバイスを備えたデータ処理装置において、
前記ホスト装置は、上位層から受信したデータを所定の分割サイズに分割し、前記ホストバスの中から前記デバイスの使用状況に応じて選択した複数のものを用いて前記ブリッジに送信する機能と、前記ブリッジから複数の前記ホストバスを介して受信したデータを結合して前記上位層に送信する機能とを備えたホスト側データ分割結合器を備え、
前記ブリッジは、前記デバイスから受信したデータを所定の分割サイズに分割し、前記ホストバスの中から前記デバイスの使用状況に応じて選択した複数のものを用いて前記ホスト装置に送信する機能と、前記ホスト装置から複数の前記ホストバスを介して受信したデータを結合して前記デバイスに送信する機能とを備えたブリッジ側データ分割結合器を備えたことを特徴としたデータ処理装置。
【請求項2】
前記ホスト側データ分割結合器および前記ブリッジ側データ分割結合器は、合計のデータ転送能力が前記データの転送の対象である前記デバイスのデータ転送能力と同等または超える範囲で本数が最小となるように前記ホストバスを選択することを特徴とした請求項1に記載のデータ処理装置。
【請求項3】
前記ホスト装置と前記ブリッジとの間および前記ブリッジと前記デバイスとの間のデータ送受信は、シリアルATA方式によって行い、前記ホスト側データ分割結合器および前記ブリッジ側データ分割結合器は、前記分割したデータのヘッダに前記ブリッジと前記デバイスとの間の前記データの送受信に使用する前記デバイスバスを特定する情報と、前記分割されたデータを結合する順番を示す情報を付加することを特徴とした請求項1または請求項2に記載のデータ処理装置。
【請求項4】
前記分割サイズは、32ビットであることを特徴とした請求項3に記載のデータ処理装置。
【請求項5】
このホスト装置と複数のホストバスにより接続されたブリッジとこのブリッジと複数のデバイスバスにより接続された複数のデバイスを備えたデータ処理装置において、
前記ホスト装置は、前記デバイス装置に送信するデータをデータ転送を行っていない前記ホストバスである未使用バスの本数に分割して分割データを生成しこの分割データを前記メモリに格納するデータ分割手段と、
前記未使用バスを特定する未使用バス特定情報を前記ブリッジに通知する未使用バス特定情報通知手段と、
前記メモリに格納された前記各分割データをそれぞれ一本の前記未使用バスを用いて前記ブリッジに送信するデータ送信手段と、
前記ブリッジから送信された分割データを受信しメモリに格納する分割データ受信手段と、
この分割データ受信手段により前記メモリに格納された分割データを結合するデータ結合手段を備え、
前記ブリッジは、前記未使用バス特定情報を基に、前記デバイスから受信したデータを前記未使用バスの本数で分割し、前記未使用バスを介して前記ホスト装置に送信する機能と、前記ホスト装置から受信した前記分割データを結合して前記デバイスに送信する機能とを備えたデータ分割結合器を備えたことを特徴としたデータ処理装置。
【請求項6】
ホスト装置とデバイスとの間でデータの転送を行う方法において、
前記ホスト装置が、前記デバイスに送信するデータを所定の分割サイズに分割し、前記ホストバスの中から前記デバイスの使用状況に応じて選択した複数のものを用いて前記ホスト装置と前記デバイス装置の間に設けられたブリッジに送信し、このブリッジ装置が、前記ホスト装置から受信したデータを結合して前記デバイスに送信するホスト側送信工程と、
前記ブリッジが、前記デバイスから受信したデータを所定の分割サイズに分割し、前記ホストバスの中から前記デバイスの使用状況に応じて選択した複数のものを用いて前記ホスト装置に送信し、このホスト装置が、前記ブリッジから受信したデータを結合して上位層に送信するデバイス側送信工程とを備えたことを特徴としたデータ転送方法。
【請求項7】
前記ホスト側送信工程および前記デバイス側送信工程では、合計のデータ転送能力が前記データの転送の対象である前記デバイスのデータ転送能力と同等または超える範囲で本数が最小となるように前記ホストバスを選択することを特徴とした請求項6に記載のデータ転送方法。
【請求項8】
前記ホスト装置と前記ブリッジとの間および前記ブリッジと前記デバイスとの間のデータ送受信は、シリアルATA方式によって行い、前記ホスト側送信工程および前記デバイス側送信工程では、前記分割したデータのヘッダに前記ブリッジと前記デバイスとの間の前記データの送受信に使用する前記デバイスバスを特定する情報と、前記分割されたデータを結合する順番を示す情報を付加することを特徴とした請求項6または請求項7に記載のデータ転送方法。
【請求項9】
前記分割サイズは、32ビットであることを特徴とした請求項8に記載のデータ転送方法。
【請求項10】
ホスト装置とデバイスとの間でデータの転送を行う方法において、
前記ホスト装置が、前記デバイス装置に送信するデータをデータ転送を行っていない前記ホストバスである未使用バスの本数に分割して分割データを生成しこの分割データを前記メモリに格納し、前記未使用バスを特定する未使用バス特定情報を前記ホスト装置と前記デバイス装置の間に設けられたブリッジに通知し、前記メモリに格納された前記各分割データをそれぞれ一本の前記未使用バスを用いて前記ブリッジに送信し、前記ブリッジが、前記未使用バス特定情報を基に、前記ホスト装置から受信した前記分割データを結合して前記デバイスに送信するホスト側送信工程と、
前記ブリッジが、前記未使用バス特定情報を基に、前記デバイスから受信したデータを前記未使用バスの本数で分割し、前記未使用バスを使用して前記ホスト装置に送信し、前記ホスト装置が前記ブリッジから送信された分割データを受信しメモリに格納し、このメモリに格納された分割データを結合するデバイス側送信工程とを備えたことを特徴としたデータ転送方法。
【請求項11】
ホスト装置とデバイスとの間のデータの転送を制御するプログラムにおいて、
前記ホスト装置に、
前記デバイス装置に送信するデータをデータ転送を行っていない前記ホストバスである未使用バスの本数に分割して分割データを生成しこの分割データを前記メモリに格納するデータ分割処理と、
前記未使用バスを特定する未使用バス特定情報を前記ホスト装置と前記デバイス装置の間に設けられたブリッジに通知する未使用バス特定情報通知処理と、
前記メモリに格納された前記各分割データをそれぞれ一本の前記未使用バスを用いて前記ブリッジに送信するデータ送信処理と、
前記ブリッジから送信された分割データを受信しメモリに格納する分割データ受信処理と、
この分割データ受信手段により前記メモリに格納された分割データを結合するデータ結合処理とを実行させることを特徴としたデータ転送プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2007−317011(P2007−317011A)
【公開日】平成19年12月6日(2007.12.6)
【国際特許分類】
【出願番号】特願2006−147037(P2006−147037)
【出願日】平成18年5月26日(2006.5.26)
【出願人】(390001395)NECシステムテクノロジー株式会社 (438)
【Fターム(参考)】