(57)【特許請求の範囲】
【請求項１】
複数のバッファのそれぞれに格納されたデータを、複数の前記バッファが接続される１つのバスを介して転送先にデータを転送するデータ転送装置であって、
複数の前記バッファのデータ蓄積量に基づいて分割サイズをそれぞれ算出する分割サイズ算出部と、
複数の前記バッファに対応し、前記分割サイズと前記データ蓄積量に応じて対応するバッファの転送指示を出力する複数の分割転送制御部と、
前記転送指示に応じて前記バッファから前記転送先にデータを転送する転送制御部と、を含み、
前記分割サイズ算出部は、
複数の前記バッファのデータ蓄積量に基づいて次の転送要求が発行されるまでの予測時間をそれぞれ算出する複数の時間予測部と、
前記バスの転送レートに基づいて、複数の前記予測時間を複数の前記分割サイズにそれぞれ変換する複数のサイズ変換部と、
を含む、ことを特徴とするデータ転送装置。
【請求項２】
前記分割サイズ算出部は、前記分割サイズ分のデータ転送が終了する毎に、複数の前記バッファに対する分割サイズを算出する、ことを特徴とする請求項１に記載のデータ転送装置。
【請求項３】
前記分割サイズ算出部は、複数の前記バッファの分割サイズを、算出対象以外のバッファのデータ蓄積量に基づいてそれぞれ算出する、ことを特徴とする請求項１又は２に記載のデータ転送装置。
【請求項４】
複数のバッファのそれぞれに格納されたデータを、複数の前記バッファが接続される１つのバスを介して転送先にデータを転送するデータ転送方法であって、
複数の前記バッファのデータ蓄積量に基づいて次の転送要求が発行されるまでの予測時間をそれぞれ算出し、前記バスの転送レートに基づいて、複数の前記予測時間を複数の分割サイズにそれぞれ変換し、複数の前記バッファに対応し、前記分割サイズと前記データ蓄積量に応じて対応するバッファの転送指示を生成し、前記転送指示に応じて前記バッファから前記転送先にデータを転送する、データ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
データ転送装置及びデータ転送方法に関する。
【背景技術】
【０００２】
従来、データ転送装置は、複数のバッファのそれぞれに蓄積されたデータを例えば１つの転送先の装置に転送する（例えば、特許文献１参照）。複数のバッファは、１つのデータバスに接続されている。各バッファには、それぞれに接続された装置から送信されるデータが格納される。データ転送装置は、データ転送を行う際、データバスにデータを送信する送信許可（占有権）を得るためにリクエスト信号を調停部に送信する。送信許可を得たデータ転送装置は、送信許可に対応するバッファに格納されたデータを、データバスを介して転送先に送信する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平４−３７９４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記のようなデータ転送方法では、送信許可を得たバッファのデータが全て転送された後に、他のバッファ（他の装置）に送信許可が与えられる。データサイズが大きいバッファはデータバスを長時間占有するため、他のバッファのデータ転送が長時間待たされる。
【０００５】
このデータ転送装置で、共有のデータバスに接続された各バッファのデータ転送時の待ち時間を減らすことを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一観点によれば、複数の前記バッファのデータ蓄積量に基づいて分割サイズをそれぞれ算出する分割サイズ算出部と、複数の前記バッファに対応し、前記分割サイズと前記データ蓄積量に応じて対応するバッファの転送指示を出力する複数の分割転送制御部と、前記転送指示に応じて前記バッファから前記転送先にデータを転送する転送制御部と、を含み、前記分割サイズ算出部は、複数の前記バッファのデータ蓄積量に基づいて次の転送要求が発行されるまでの予測時間をそれぞれ算出する複数の時間予測部と、前記バスの転送レートに基づいて、複数の前記予測時間を複数の前記分割サイズにそれぞれ変換する複数のサイズ変換部と、を含む。
【発明の効果】
【０００７】
本発明の一観点によれば、データ転送時の待ち時間を減らすことができる。
【図面の簡単な説明】
【０００８】
【図１】データ転送システムの概略ブロック図である。
【図２】分割サイズ算出部の概略ブロック図である。
【図３】分割転送制御部の処理フローチャートである。
【図４】各バッファのデータ蓄積量と転送タイミングを示す説明図である。
【図５】各バッファのデータ蓄積量と転送タイミングを示す説明図である。
【図６】各バッファのデータ蓄積量と転送タイミングを示す説明図である。
【図７】別例におけるデータ転送システムの概略ブロック図である。
【図８】別例における分割サイズ算出部の概略ブロック図である。
【発明を実施するための形態】
【０００９】
以下、一実施形態を図１〜図４に従って説明する。
図１に示すように、複数（図１において２つ）の通信装置１１ａ，１１ｂは、バッファ１２ａ，１２ｂを介してそれぞれデータバス１３と接続され、そのデータバス１３はデータ転送装置２０を介して転送先である目的の装置１４に接続されている。
【００１０】
各通信装置１１ａ，１１ｂからのデータはバッファ１２ａ，１２ｂにそれぞれ転送され、このバッファ１２ａ，１２ｂ内のデータの転送を制御するデータ転送装置２０の通信許可を得て、目的の装置１４に対してデータバス１３を介したデータ転送が可能とされる。各バッファ１２ａ，１２ｂは、例えばライトポインタとリードポインタとによりデータの書き込みとデータの読み出しが制御されるＦＩＦＯ(First In First Out)メモリである。各バッファ１２ａ，１２ｂは、例えばライトポインタとリードポインタとに基づいて算出したデータ蓄積量Ｄｓａ，Ｄｓｂをそれぞれ出力する。
【００１１】
分割サイズ算出部２１には、各バッファ１２ａ，１２ｂからデータ蓄積量Ｄｓａ，Ｄｓｂが供給される。また、分割サイズ算出部２１には、制御部２２から各種情報が供給される。
【００１２】
制御部２２には、バッファ１２ａに対応する転送レートＲｔａと、バッファ１２ｂに対応する転送レートＲｔｂと、データバス１３に対応する転送レートＲｔ０とが記憶されている。各転送レートＲｔａ，Ｒｔｂ，Ｒｔ０は、例えばデータ転送に用いられるクロック信号の周波数に応じて設定されている。また、制御部２２には、バッファ１２ａに対応するしきい値Ｂｉａと、バッファ１２ｂに対応するしきい値Ｂｉｂが記憶されている。制御部２２は、各転送レートＲｔａ，Ｒｔｂ，Ｒｔ０と各しきい値Ｂｉａ，Ｂｉｂを出力する。
【００１３】
分割サイズ算出部２１は、各転送レートＲｔａ，Ｒｔｂ，Ｒｔ０と、各データ蓄積量Ｄｓａ，Ｄｓｂと、各しきい値Ｂｉａ，Ｂｉｂに基づいて、各バッファ１２ａ，１２ｂに対応する分割サイズＢｓａ，Ｂｓｂを算出する。詳しくは、分割サイズ算出部２１は、バッファ１２ｂに対応する転送レートＲｔｂ，データ蓄積量Ｄｓｂ，しきい値Ｂｉｂと、データバス１３に対応する転送レートＲｔ０とに基づいて、バッファ１２ａに対応する分割サイズＢｓａを算出する。また、分割サイズ算出部２１は、バッファ１２ａに対応する転送レートＲｔａ，データ蓄積量Ｄｓａ，しきい値Ｂｉａと、データバス１３に対応する転送レートＲｔ０とに基づいて、バッファ１２ｂに対応する分割サイズＢｓｂを算出する。
【００１４】
バッファ１２ａに対応する分割サイズＢｓａは、分割転送制御部２３ａに供給される。バッファ１２ｂに対応する分割サイズＢｓｂは、分割転送制御部２３ｂに供給される。制御部２２は任意のタイミングで分割転送制御部２３ａ，２３ｂに対して転送指示Ｔｓａ，Ｔｓｂを出力する。
【００１５】
分割転送制御部２３ａは、制御部２２から出力される転送指示Ｔｓａと、バッファ１２ａから出力されるデータ蓄積量Ｄｓａと、分割サイズ算出部２１から出力される分割サイズＢｓａとに基づくタイミングで、調停部２４に対して分割サイズによる転送指示Ｔｂａを出力する。転送指示Ｔｂａは、対応するバッファ１２ａから転送先の装置１４に転送するデータ量を含む。
【００１６】
同様に、分割転送制御部２３ｂは、制御部２２から出力される転送指示Ｔｓｂと、バッファ１２ｂから出力されるデータ蓄積量Ｄｓｂと、分割サイズ算出部２１から出力される分割サイズＢｓｂとに基づくタイミングで、調停部２４に対して分割サイズによる転送指示Ｔｂｂを出力する。転送指示Ｔｂｂは、対応するバッファ１２ｂから転送先の装置１４に転送するデータ量を含む。
【００１７】
調停部２４は、分割転送制御部２３ａ，２３ｂから出力される転送指示Ｔｂａ，Ｔｂｂを調停し、調停結果に応じた転送指示Ｔｂｓを転送制御部２５に出力する。転送指示Ｔｂｓは、転送対象とするバッファを選択するための選択情報と、その選択したバッファから転送するデータの量を示す転送サイズ情報を含む。
【００１８】
転送制御部２５は、調停部２４からの転送指示Ｔｂｓに従って、転送元のバッファから転送先の装置１４へ、指定されたサイズのデータを転送する。即ち、転送制御部２５は、転送指示Ｔｂｓに含まれる選択情報に従ってバッファ１２ａ，１２ｂのうちの何れか１つを転送元として選択する。そして、転送制御部２５は、選択したバッファから転送先の装置１４へ、転送指示Ｔｂｓに含まれる転送サイズのデータを転送する。
【００１９】
次に、分割サイズ算出部２１について詳細に説明する。
図２に示すように、分割サイズ算出部２１は、バッファ１２ａに対応する時間予測部３１ａと、バッファ１２ｂに対応する時間予測部３１ｂとを備えている。
【００２０】
時間予測部３１ａと時間予測部３１ｂは、互いに対応するバッファ以外のバッファのデータ格納状況に応じて、対応するバッファ
時間予測部３１ａと時間予測部３１ｂは、互いに対応するバッファ以外のバッファに対するデータ蓄積時間を算出する。即ち、時間予測部３１ａは、バッファ１２ｂに所定量（しきい値Ｂｉｂ）のデータを蓄積するまでに要する時間（データ蓄積時間）Ｔｐｂを算出する。時間予測部３１ｂは、バッファ１２ａに所定量（しきい値Ｂｉａ）のデータを蓄積するまでに要する時間（データ蓄積時間）Ｔｐｂを算出する。
【００２１】
詳述すると、時間予測部３１ａには、図１に示すバッファ１２ｂに対応する情報が入力される。バッファ１２ｂに対応する情報は、データ蓄積量Ｄｓｂと、転送レートＲｔｂと、しきい値Ｂｉｂを含む。時間予測部３１ａは、バッファ１２ｂのデータ蓄積量Ｄｓｂが、しきい値Ｂｉｂ以下の場合、次の転送要求が発行されるまでのデータ蓄積時間Ｔｐｂを、次式、
Ｔｐｂ＝Ｒｔｂ／（Ｂｉｂ−Ｄｓｂ）
により算出する。なお、時間予測部３１ａは、バッファ１２ｂのデータ蓄積量Ｄｓｂが分割サイズのしきい値Ｂｉｂ以上の場合は、次の転送要求が発行されるまでの時間を「０（ゼロ）」として計算、つまり転送可能状態とする。
【００２２】
バッファ１２ｂは、所定量以上のデータを蓄積すると、データの転送が可能となる。つまり、バッファ１２ｂに対する転送要求の発行が可能となる。即ち、時間予測部３１ａは、入力される各種情報に基づいて、バッファ１２ｂに対して次の転送要求が発行可能となるまでの予測時間を算出する。
【００２３】
同様に、時間予測部３１ｂは、入力される各種情報に基づいて、バッファ１２ａに対して次の転送要求が発行可能となるまでの予測時間を算出する。即ち、時間予測部３１ｂには、図１に示すバッファ１２ａに対応する情報、つまりデータ蓄積量Ｄｓａ，転送レートＲｔａ，しきい値Ｂｉａが入力される。時間予測部３１ｂは、バッファ１２ａに対応する情報（Ｄｓａ，Ｂｉａ，Ｒｔａ）に基づいて、次の転送要求が発行されるまでのデータ蓄積時間Ｔｐａを、次式、
Ｔｐａ＝Ｒｔａ／（Ｂｉａ−Ｄｓａ）
により算出する。そして、時間予測部３１ｂは、バッファ１２ａのデータ蓄積量Ｄｓａがしきい値Ｂｉａ以上の場合は、次の転送要求が発行されるまでの時間を「０（ゼロ）」として計算、つまり転送可能状態とする。
【００２４】
サイズ変換部３２ａ，３２ｂは、時間予測部３１ａ，３１ｂにて算出されたデータ蓄積時間Ｔｐａ，Ｔｐｂを、対応するバッファ１２ａ，１２ｂから転送するデータの予測サイズＰｓａ，Ｐｓｂに変換する。サイズ変換部３２ａは、バッファ１２ｂに対応するデータ蓄積時間Ｔｐｂを、バッファ１２ａに対応する予測サイズＰｓａに変換する。サイズ変換部３２ｂは、バッファ１２ａに対応するデータ蓄積時間Ｔｐａを、バッファ１２ｂに対応する予測サイズＰｓｂに変換する。
【００２５】
バッファ１２ｂにデータを蓄積している期間、バッファ１２ａはデータバス１３を占有することができる。その占有期間において転送可能なデータ量は、データを転送する期間と、バッファ１２ａからデータを転送する速度と、の積により求められる。バッファ１２ａからデータを転送する速度は、そのバッファ１２ａと転送先の装置１４との間の転送レート、即ちデータバス１３の転送レートＲｔ０に対応する。従って、サイズ変換部３２ａは、時間予測部３１ａによって算出されたバッファ１２ｂに対応するデータ蓄積時間Ｔｐｂに、データバス１３の転送レートＲｔ０を乗じて、バッファ１２ａに対応する予測サイズＰｓａを算出する。
【００２６】
同様に、バッファ１２ａにデータを蓄積している期間、バッファ１２ｂは、データバス１３を占有でき、その占有期間に転送可能なデータ量は、占有期間とデータバス１３の転送レートＲｔ０の積により求められる。従って、サイズ変換部３２ｂは、時間予測部３１ｂによって算出されたバッファ１２ａに対応するデータ蓄積時間Ｔｐａに、データバス１３の転送レートＲｔ０を乗じて、バッファ１２ｂに対応する予測サイズＰｓｂを算出する。
【００２７】
クリップ処理部３３ａには、サイズ変換部３２ａにより算出されたバッファ１２ａに対応する予測サイズＰｓａが供給される。また、クリップ処理部３３ａには、レジスタ３４から分割サイズの上限値Ｂａｍｘ及び下限値Ｂａｍｎが供給される。分割サイズの上限値Ｂａｍｘ及び下限値Ｂａｍｎは、例えば、バッファの数、転送に係るオーバーヘッド、等に応じて設定され、レジスタ３４に格納されている。
【００２８】
１つのバッファがデータバスを占有しているとき、他のバッファは転送を行うことができない。全てのバッファにおける転送量を互いに同じ値とすると、単位時間における各バッファに対する転送許可の回数は、バッファの数に反比例する。従って、バッファの数が多いほど、各バッファが転送可能となるまでの待ち時間は、バッファの数に転送するデータ量を乗じた結果に対応する。このため、転送するデータ量の上限値を設定することは、待ち時間の増大を抑制する。
【００２９】
また、１回のデータ転送に際し、転送元の情報と、転送するデータ量を含むヘッダ情報を、転送先の装置１４に送信する必要がある。そして、１回のデータ転送により転送するデータ量に係わらず、一定サイズのヘッダ情報を必要とする。このため、分割サイズを小さくして転送回数が多くなると、その分、ヘッダ情報を送信する回数が多くなり、実効的なデータ転送量、すなわち、転送期間（ヘッダ情報及びデータを転送する期間）に対するデータ転送期間の割合が少なくなる。このため、転送するデータ量の下限値を設定することは、転送効率の低下を抑制する。
【００３０】
クリップ処理部３３ａは、予測サイズＰｓａが分割サイズの上限値Ｂａｍｘ以下且つ下限値Ｂａｍｎ以上の場合、予測サイズＰｓａと等しい分割サイズＢｓａを出力する。一方、クリップ処理部３３ａは、予測サイズＰｓａが下限値Ｂａｍｎ未満の場合、下限値Ｂａｍｎと等しい分割サイズＢｓａを出力する。また、クリップ処理部３３ａは、予測サイズＰｓａが上限値Ｂａｍｘより大きい場合，上限値Ｂａｍｘと等しい分割サイズＢｓａを出力する。
【００３１】
同様に、クリップ処理部３３ｂは、予測サイズＰｓｂが分割サイズの上限値Ｂｂｍｘ以下且つ下限値Ｂｂｍｎ以上の場合、予測サイズＰｓｂと等しい分割サイズＢｓｂを出力する。一方、クリップ処理部３３ｂは、予測サイズＰｓｂが下限値Ｂｂｍｎ未満の場合、下限値Ｂｂｍｎと等しい分割サイズＢｓｂを出力する。また、クリップ処理部３３ｂは、予測サイズＰｓｂが上限値Ｂｂｍｘより大きい場合，上限値Ｂｂｍｘと等しい分割サイズＢｓｂを出力する。
【００３２】
次に、分割転送制御部２３ａ，２３ｂが実行する処理（分割転送制御）の一例を、図３に従って説明する。尚、以下に説明する部材は、図１，図２を参照されたい。
尚、分割転送制御部２３ａは、バッファ１２ａに対する転送制御を行い、分割転送制御部２３ｂは、バッファ１２ｂに対する転送制御を行う。そして、分割転送制御部２３ａ，２３ｂは、対象とするバッファが異なり、実行する処理は互いに同じである。従って、図３に示すフローチャートの説明において、分割転送制御部２３ａについて説明し、分割転送制御部２３ｂに対する説明を省略する。
【００３３】
分割転送制御部２３ａは、制御部２２からの転送指示Ｔｓａとともに分割サイズ算出部２１からの分割サイズＢｓａの情報を受けて動作を開始する。
先ず、分割転送制御部２３ａは、以前に転送していたことを考慮して、転送済みデータ数Ｔｚｓをクリア（＝０）する（ステップＳ１０）。
【００３４】
次いで、分割転送制御部２３ａは、転送データ数Ｔｄｓと転送済みデータ数Ｔｚｓとの差と、分割サイズＢｓａとの大小関係を判定する（ステップＳ１１：ＹＥＳ）。分割転送制御部２３ａは、転送データ数Ｔｄｓと転送済みデータ数Ｔｚｓとの差が分割サイズＢｓａより大きけい場合（ステップＳ１１：ＹＥＳ）、分割サイズＢｓａを転送サイズＪＴｓに設定する（ステップＳ１２）。一方、分割転送制御部２３ａは、転送データ数Ｔｄｓと転送済みデータ数Ｔｚｓとの差が分割サイズＢｓａ以下の場合（ステップＳ１１：ＮＯ）、転送データ数Ｔｄｓと転送済みデータ数Ｔｚｓとの差の値を転送サイズＪＴｓに設定する（ステップＳ１３）。
【００３５】
次いで、分割転送制御部２３ａは、バッファ１２ａのデータ蓄積量Ｄｓａを監視し、バッファ１２ａに分割サイズＢｓａ分のデータがあるか否かを判定する（ステップＳ１４）。分割転送制御部２３ａは、バッファ１２ａに分割サイズＢｓａ分のデータが蓄積されていないと判定した場合（ステップＳ１４：ＮＯ）、次のステップに移行しない。分割転送制御部２３ａは、バッファ１２ａに分割サイズＢｓａ分のデータが蓄積されていると判定した場合（ステップＳ１４：ＹＥＳ）、転送開始要求Ｒｅｑを調停部２４に対して出力する（ステップＳ１５）。
【００３６】
分割転送制御部２３ａは、調停部２４によって転送開始要求Ｒｅｑが受け付けられたか否かを判定する（ステップＳ１６）。調停部２４は、転送開始要求Ｒｅｑを受け付けると、転送開始要求Ｒｅｑの送信元に例えば転送許可信号を送信する。
【００３７】
分割転送制御部２３ａは、転送許可信号を受け取らない場合（ステップＳ１６：ＮＯ）、次のステップに移行しない。一方、分割転送制御部２３ａは、転送許可信号を受け取ると転送開始要求Ｒｅｑが受け付けられたと判定し（ステップＳ１６：ＹＥＳ）、転送指示Ｔｂａを転送制御部２５に対して発行する。即ち、分割転送制御部２３ａは、転送設定を転送制御部２５に対して発行する（ステップＳ１７）。転送設定は、テータを転送する転送元と転送先を特定するための情報、転送するデータ量を含む。分割転送制御部２３ａは、転送元としてバッファ１２ａを示す情報、転送先として装置１４を示す情報、転送サイズＪＴｓを転送制御部２５に送信する。
【００３８】
次いで、分割転送制御部２３ａは、転送開始指示を転送制御部２５に対して発行する（ステップＳ１８）。
転送制御部２５は、転送開始指示を受け取ると、転送設定に応じて、データを転送する。この場合、転送制御部２５は、バッファ１２ａから出力されるデータを、装置１４に出力する。そして、転送制御部２５は、転送サイズＪＴｓのデータの転送を完了すると、転送完了通知を発行する。
【００３９】
次いで、分割転送制御部２３ａは、転送完了通知があるか否かを判定する（ステップＳ１９）。分割転送制御部２３ａは、転送完了通知がない場合（ステップＳ１９：Ｎｏ）、次のステップに移行しない。一方、分割転送制御部２３ａは、転送完了通知を受け取ると（ステップＳ１９：ＹＥＳ）、転送済みデータ数Ｔｚｓに今回の転送サイズＪＴｓ（分割サイズＢｓａ）を積算する（ステップＳ２０）。
【００４０】
次いで、分割転送制御部２３ａは、転送データ数Ｔｄｓ分の転送が完了したか否かを判定する（ステップＳ２１）。分割転送制御部２３ａは、転送済みデータ数Ｔｚｓが転送データ数Ｔｄｓより小さい場合に転送データ数Ｔｄｓ分の転送を完了していないと判定し（ステップＳ２１：ＮＯ）、ステップＳ１１に移行する。つまり、転送データ数Ｔｄｓ分のデータ転送を完了するまで、ステップＳ１１からステップＳ２０までの各処理を繰り返し実行する。そして、分割転送制御部２３ａは、転送済みデータ数Ｔｚｓが転送データ数Ｔｄｓと等しくなると、転送データ数Tｄｓ分の転送が完了したと判定し（ステップＳ２１：ＮＯ）、割転送制御処理を終了する。
【００４１】
次に、データ転送装置２０の動作例を説明する。
（第１の動作例）
図４に示すように、時刻ｔ０において、バッファ１２ａには転送すべき全てのデータが蓄積され、このデータ蓄積量は、しきい値Ｂｉａより多い。一方、バッファ１２ｂにはしきい値Ｂｉｂより少ないデータが蓄積されている。
【００４２】
分割サイズ算出部２１は、両バッファ１２ａ，１２ｂのデータ蓄積量Ｄｓａ，Ｄｓｂに基づいて分割サイズＢｓａ，Ｂｓｂをそれぞれ算出する。分割転送制御部２３ａは、データ蓄積量Ｄｓａがしきい値Ｂｉａより大きいため、転送指示Ｔｂａを出力する。一方、分割転送制御部２３ｂは、データ蓄積量Ｄｓｂはしきい値Ｂｉｂより小さいため、転送指示Ｔｂｂを出力しない。その結果、調停部２４は、分割サイズＢｓａを含む転送指示Ｔｂｓを転送制御部２５に出力する。
【００４３】
転送制御部２５は、転送指示Ｔｂｓに従って、バッファ１２ａに対し、転送サイズＪＴｓとする転送を開始する。転送制御部２５は、先ずバッファ１２ａに対応するヘッダを送信し、バッファ１２ａから読み出したデータを装置１４に転送する。バッファ１２ａからデータが転送されるに従って、バッファ１２ａのデータ蓄積量Ｄｓａは減少する。
【００４４】
このバッファ１２ａに対するデータ転送（図中、「Ａ１」と表記）は、バッファ１２ｂのデータ蓄積量Ｄｓｂがしきい値Ｂｉｂ付近となる時刻ｔ１において完了する。
次いで、時刻ｔ１において、分割サイズ算出部２１は、両バッファ１２ａ，１２ｂのデータ蓄積量Ｄｓａ，Ｄｓｂに基づいて分割サイズＢｓａ，Ｂｓｂをそれぞれ算出する。分割転送制御部２３ａ，２３ｂは、転送指示Ｔｂａ，Ｔｂｂを出力する。調停部２４は、調停結果により、分割サイズＢｓｂを転送サイズＪＴｓとする転送指示Ｔｂｓを転送制御部２５に出力する。転送制御部２５は、転送指示Ｔｂｓに従って、バッファ１２ｂに対するデータ転送を開始する。即ち、転送制御部２５は、バッファ１２ｂに対応するヘッダを送信し、バッファ１２ｂから読み出したデータを装置１４に転送する。このバッファ１２ｂに対するデータ転送（図中、「Ｂ１」と表記）は、転送サイズＪＴｓ、即ち算出された分割サイズＢｓｂのデータを転送して終了する。
【００４５】
次いで、時刻ｔ２において、分割サイズ算出部２１は、両バッファ１２ａ，１２ｂのデータ蓄積量Ｄｓａ，Ｄｓｂに基づいて分割サイズＢｓａ，Ｂｓｂをそれぞれ算出する。このとき、バッファ１２ｂにおけるデータ蓄積量Ｄｓｂは、時刻ｔ０におけるデータ蓄積量Ｄｓｂより少ないため、分割サイズ算出部２１は、同時刻ｔ０における分割サイズＢｓａよりも大きな値の分割サイズＢｓａを算出する。そして、バッファ１２ａに対し、転送サイズＪＴｓ（分割サイズＢｓａ）の転送が開始される。このバッファ１２ａに対するデータ転送（図中、「Ａ２」と表記）は、バッファ１２ｂのデータ蓄積量Ｄｓｂがしきい値Ｂｉｂ付近となる時刻ｔ３において完了する。
【００４６】
次いで、時刻ｔ３において、時刻ｔ１と同様に、調停部２４は、分割サイズＢｓｂを含む転送指示Ｔｂｂに応じて転送指示Ｔｂｓを出力し、転送制御部２５はその転送指示Ｔｂｓに従って、バッファ１２ｂに対するデータ転送（図中、「Ｂ２」と表記）を開始する。
【００４７】
このように、バッファ１２ｂのデータ蓄積量Ｄｓｂに基づいて、バッファ１２ｂにしきい値Ｂｉｂ以上のデータが蓄積されるまでのデータ蓄積時間Ｔｐｂを予測し、そのデータ蓄積時間Ｔｐｂに応じて、バッファ１２ａから転送するデータの分割サイズＢｓａを算出する。従って、バッファ１２ａに対するデータ転送が終了したときに、バッファ１２ｂに対するデータ転送が可能な状態になっているため、そのバッファ１２ｂに対するデータ転送を開始することができる。このため、バッファ１２ｂにおけるデータ転送の待ち時間を短縮することができる。
【００４８】
また、バッファ１２ｂのデータ蓄積量Ｄｓｂに基づいて、バッファ１２ｂにしきい値Ｂｉｂ以上のデータが蓄積されるまでのデータ蓄積時間Ｔｐｂを予測し、そのデータ蓄積時間Ｔｐｂに応じて、バッファ１２ａから転送するデータの分割サイズＢｓａを算出する。バッファ１２ｂのデータ蓄積量Ｄｓｂが少ないほど、分割サイズＢｓａは大きくなる。従って、１つのヘッダによりバッファ１２ａのデータをまとめて転送することができ、データを所定サイズに分割して複数回に分けて転送する場合と比べ、データ転送におけるオーバーヘッドを少なくすることができる。
【００４９】
（第２の動作例）   
この動作例において、装置１１ｂからバッファ１２ｂにデータを転送する転送速度（転送レート）が、設定された転送レートＲｔｂよりも低い。図５において、実線はバッファ１２ｂにおけるデータ蓄積量Ｄｓｂを示し、一点鎖線は、設定された転送レートＲｔｂに基づくデータ蓄積量を示す。
【００５０】
図５に示すように、時刻ｔ０において、転送制御部２５は、上記の動作例と同様に、バッファ１２ａに対するデータ転送（図中、「Ａ１」と表記）を開始する。
バッファ１２ａに対するデータ転送Ａ１が終了した時刻ｔ１において、バッファ１２ｂには、分割しきい値Ｂｉｂ分のデータが蓄積されていない。従って、時刻ｔ１では、分割転送制御部２３ｂは、転送指示Ｔｂｂを出力しない。
【００５１】
一方、分割転送制御部２３ａは、転送指示Ｔｂａを出力する。時刻ｔ０におけるデータ蓄積量Ｄｓｂよりも、時刻ｔ１におけるデータ蓄積量Ｄｓｂが大きい。従って、時刻ｔ１における分割サイズＢｓａは、時刻ｔ０における分割サイズＢｓａよりも小さくなる。従って、時刻ｔ１において算出された分割サイズＢｓａに基づくデータ転送Ａ２は、時刻ｔ０において算出された分割サイズＢｓａに基づくデータ転送Ａ０よりも短い期間で終了する。
【００５２】
バッファ１２ａに対するデータ転送Ａ２が終了した時刻ｔ２において、バッファ１２ｂには、分割しきい値Ｂｉｂ分のデータが蓄積されていない。従って、時刻ｔ１では、分割転送制御部２３ｂは、転送指示Ｔｂｂを出力しない。そして、時刻ｔ１と同様に、分割転送制御部２３ａは、その時刻ｔ１における分割サイズＢｓａよりも小さな分割サイズＢｓａを含む転送指示Ｔｂａを出力する。これにより、転送制御部２５は、バッファ１２ａに対応するデータ転送Ａ３を実施する。
【００５３】
時刻ｔ３において、バッファ１２ｂのデータ蓄積量Ｄｓｂは、しきい値Ｂｉｂよりも多くなる。すると、バッファ１２ａに対するデータ転送Ａ３が終了した時刻ｔ４において、分割転送制御部２３ａ，２３ｂは、転送指示Ｔｂａ，Ｔｂｂをそれぞれ出力し、調停部２４は、調停結果に基づいて、バッファ１２ｂに対応する転送指示Ｔｂｂに応じた転送指示Ｔｂｓを出力する。これにより、転送制御部２５は、バッファ１２ｂに対応するデータ転送Ｂ１を実施する。
【００５４】
このように、装置１１ｂからバッファ１２ｂにデータを転送する転送速度が、制御部２２に設定された転送レートＲｔｂよりも遅い場合、他のバッファ１２ａのデータ転送が繰り返し実施される。従って、例えば、交互にバッファ１２ａ，１２ｂに対するデータ転送を実施する場合と比べ、バッファ１２ａのデータ転送が待たされることがなく、バッファ１２ａのデータ転送に係る時間を短縮することができる。
【００５５】
（第３の動作例）
この動作例において、装置１１ｂからバッファ１２ｂにデータを転送する転送速度（転送レート）が、設定された転送レートＲｔｂよりも高い。図６において、実線はバッファ１２ｂにおけるデータ蓄積量Ｄｓｂを示し、一点鎖線は、設定された転送レートＲｔｂに基づくデータ蓄積量を示す。従って、そして、バッファ１２ａに対する転送（「Ａ１」）が終了した時刻ｔ２において、バッファ１２ｂには、しきい値Ｂｉｂ以上の量のデータが蓄積されている。
【００５６】
図６に示すように、時刻ｔ０において、図４に示す動作例と同様に、転送制御部２５は、バッファ１２ａに対するデータ転送（図中、「Ａ１」と表記）を開始する。
バッファ１２ａに対するデータ転送Ａ１が終了した時刻ｔ１において、バッファ１２ｂには、分割しきい値Ｂｉｂ以上のデータが蓄積されている。従って、時刻ｔ１において、分割転送制御部２３ａ，２３ｂは、転送指示Ｔｂａ，Ｔｂｂをそれぞれ出力し、調停部２４は、調停結果に基づいて、バッファ１２ｂに対応する転送指示Ｔｂｂに応じた転送指示Ｔｂｓを出力する。これにより、転送制御部２５は、バッファ１２ｂに対応するデータ転送Ｂ１を実施する。
【００５７】
バッファ１２ｂに対応するデータ転送Ｂ１が終了した時刻ｔ２において、分割サイズ算出部２１は、両バッファ１２ａ，１２ｂのデータ蓄積量Ｄｓａ，Ｄｓｂに基づいて分割サイズＢｓａ，Ｂｓｂをそれぞれ算出する。このとき、バッファ１２ｂにおけるデータ蓄積量Ｄｓｂは、時刻ｔ０におけるデータ蓄積量Ｄｓｂと同程度である。また、この時のデータ蓄積量Ｄｓｂは、図４に示す時刻ｔ２におけるデータ蓄積量Ｄｓｂよりも多い。従って、分割サイズ算出部２１は、図４に示す時刻ｔ２における分割サイズＢｓａよりも小さな値の分割サイズＢｓａを算出する。そして、転送制御部２５は、バッファ１２ａに対し、転送サイズＪＴｓ（分割サイズＢｓａ）のデータ転送Ａ２を開始する。
【００５８】
データ転送Ａ１と同様に、データ転送Ａ２が終了した時刻ｔ３において、バッファ１２ｂには、分割しきい値Ｂｉｂ以上のデータが蓄積されている。従って、時刻ｔ１において、分割転送制御部２３ａ，２３ｂは、転送指示Ｔｂａ，Ｔｂｂをそれぞれ出力し、調停部２４は、調停結果に基づいて、バッファ１２ｂに対応する転送指示Ｔｂｂに応じた転送指示Ｔｂｓを出力する。これにより、転送制御部２５は、バッファ１２ｂに対応するデータ転送Ｂ２を実施する。
【００５９】
このように、装置１１ｂからバッファ１２ｂにデータを転送する転送速度が、制御部２２に設定された転送レートＲｔｂよりも早い場合、そのバッファ１２ｂにおける分割サイズＢｓｂ分のデータ転送が終了したときのデータ蓄積量Ｄｓｂは、転送速度が転送レートＲｔｂ以下の場合と比べ多い。従って、バッファ１２ｂにしきい値Ｂｉｂ分のデータが蓄積されるまでの時間が短く、バッファ１２ａに対する分割サイズＢｓａが小さくなる。従って、バッファ１２ｂにおけるデータ転送の待ち時間を短縮することができる。
【００６０】
また、第２及び第３の動作例のように、分割サイズ算出部２１は、各バッファ１２ａ，１２ｂのデータ蓄積量Ｄｓａ，Ｄｓｂに応じて、各バッファ１２ａ，１２ｂの分割サイズＢｓａ，Ｂｓｂを算出する。データ蓄積量Ｄｓａ，Ｄｓｂは、バッファ１２ａ，１２ｂにデータを格納する転送における転送速度に対応する。従って、分割サイズ算出部２１は、実際の転送速度に応じて、各バッファ１２ａ，１２ｂの分割サイズＢｓａ，Ｂｓｂを算出する。このため、例えば機種毎のばらつきや設定誤差などのように、設定値（転送レートＲｔａ，Ｒｔｂ）と転送速度が異なる場合であっても、その転送速度に応じて各バッファ１２ａ，１２ｂの分割サイズＢｓａ，Ｂｓｂを算出することで、データ転送にかかる待ち時間の短縮を図ることができる。
【００６１】
以上記述したように、本実施形態によれば、以下の効果を奏する。
（１）分割サイズ算出部２１は、各バッファ１２ａ，１２ｂの分割サイズＢｓａ，Ｂｓｂを、互いに他のバッファのデータ蓄積量に基づいて算出する。例えば、バッファ１２ｂのデータ蓄積量Ｄｓｂに基づいて、バッファ１２ｂにしきい値Ｂｉｂ以上のデータが蓄積されるまでのデータ蓄積時間Ｔｐｂを予測し、そのデータ蓄積時間Ｔｐｂに応じて、バッファ１２ａから転送するデータの分割サイズＢｓａを算出する。従って、バッファ１２ａに対するデータ転送が終了したときに、バッファ１２ｂに対するデータ転送が可能な状態になっているため、そのバッファ１２ｂに対するデータ転送を開始することができる。このため、バッファ１２ｂにおけるデータ転送の待ち時間を短縮することができる。
【００６２】
（２）バッファ１２ｂのデータ蓄積量Ｄｓｂに基づいて、バッファ１２ｂにしきい値Ｂｉｂ以上のデータが蓄積されるまでのデータ蓄積時間Ｔｐｂを予測し、そのデータ蓄積時間Ｔｐｂに応じて、バッファ１２ａから転送するデータの分割サイズＢｓａを算出する。バッファ１２ｂのデータ蓄積量Ｄｓｂが少ないほど、分割サイズＢｓａは大きくなる。従って、１つのヘッダによりバッファ１２ａのデータをまとめて転送することができ、データを所定サイズに分割して複数回に分けて転送する場合と比べ、データ転送におけるオーバーヘッドを少なくすることができる。
【００６３】
（３）装置１１ｂからバッファ１２ｂにデータを転送する転送速度が、制御部２２に設定された転送レートＲｔｂよりも遅い場合、他のバッファ１２ａのデータ転送が繰り返し実施される。従って、例えば、交互にバッファ１２ａ，１２ｂに対するデータ転送を実施する場合と比べ、バッファ１２ａのデータ転送が待たされることがなく、バッファ１２ａのデータ転送に係る時間を短縮することができる。
【００６４】
（４）装置１１ｂからバッファ１２ｂにデータを転送する転送速度が、制御部２２に設定された転送レートＲｔｂよりも早い場合、そのバッファ１２ｂにおける分割サイズＢｓｂ分のデータ転送が終了したときのデータ蓄積量Ｄｓｂは、転送速度が転送レートＲｔｂ以下の場合と比べ多い。従って、バッファ１２ｂにしきい値Ｂｉｂ分のデータが蓄積されるまでの時間が短く、バッファ１２ａに対する分割サイズＢｓａが小さくなる。従って、バッファ１２ｂにおけるデータ転送の待ち時間を短縮することができる。
【００６５】
（５）分割サイズ算出部２１は、各バッファ１２ａ，１２ｂのデータ蓄積量Ｄｓａ，Ｄｓｂに応じて、各バッファ１２ａ，１２ｂの分割サイズＢｓａ，Ｂｓｂを算出する。データ蓄積量Ｄｓａ，Ｄｓｂは、バッファ１２ａ，１２ｂにデータを格納する転送における転送速度に対応する。従って、分割サイズ算出部２１は、実際の転送速度に応じて、各バッファ１２ａ，１２ｂの分割サイズＢｓａ，Ｂｓｂを算出する。このため、例えば機種毎のばらつきや設定誤差などのように、設定値（転送レートＲｔａ，Ｒｔｂ）と転送速度が異なる場合であっても、その転送速度に応じて各バッファ１２ａ，１２ｂの分割サイズＢｓａ，Ｂｓｂを算出することで、データ転送にかかる待ち時間の短縮を図ることができる。
【００６６】
尚、上記各実施形態は、以下の態様で実施してもよい。
・上記実施形態は、２つの装置１１ａ，１１ｂから１つの装置１４にデータを転送するデータ転送装置２０に具体化したが、３つ以上の装置から１つの装置にデータを転送するデータ転送装置に具体化してもよい。例えば、図７に示すように、３つの装置１１ａ，１１ｂ，１１ｃに対し、データバス１３に３つのバッファ１２ａ，１２ｂ，１２ｃが接続される。データ転送装置５０は、バッファ１２ａ〜１２ｃの数に応じて構成される。即ち、データ転送装置５０は、各バッファ１２ａ．１２ｂ．１２ｃのデータ蓄積量Ｄｓａ，Ｄｓｂ，Ｄｓｃに応じて分割サイズＢｓａ，Ｂｓｂ，Ｂｓｃを求める分割サイズ算出部５１を備え、分割サイズＢｓａ，Ｂｓｂ，Ｂｓｃは分割転送制御部５３ａ，５３ｂ，５３ｃにそれぞれ供給される。
【００６７】
制御部５２は、各バッファ１２ａ，１２ｂ，１２ｃにそれぞれ対応するしきい値Ｂｉａ，Ｂｉｂ，Ｂｉｃ及び転送レートＲｔａ，Ｒｔｂ，Ｒｔｃと、バス１３の転送レートＲｔ０を分割サイズ算出部５１に供給する。また、制御部５２は、転送指示Ｔｓａ，Ｔｓｂ，Ｔｓｃを、対応する分割転送制御部５３ａ，５３ｂ，５３ｃにそれぞれ供給する。
【００６８】
分割転送制御部５３ａは、転送指示Ｔｓａとデータ蓄積量Ｄｓａと分割サイズＢｓａに基づいて、転送指示Ｔｂａを生成する。分割転送制御部５３ｂは、転送指示Ｔｓｂとデータ蓄積量Ｄｓｂと分割サイズＢｓｂに基づいて、転送指示Ｔｂｂを生成する。分割転送制御部５３ｃは、転送指示Ｔｓｃとデータ蓄積量Ｄｓｃと分割サイズＢｓｃに基づいて、転送指示Ｔｂｃを生成する。
【００６９】
調停部２４は、各分割転送制御部５３ａ〜５３ｃから出力される転送指示Ｔｓａ〜Ｔｓｃを調停して転送指示Ｔｂｓを出力する。転送制御部５５は、転送指示Ｔｂｓに基づいて、各バッファ１２ａ〜１２ｃに対するデータ転送を制御する。
【００７０】
図８に示すように、分割サイズ算出部５１は、バッファ１２ａ〜１２ｃに対応する３つの時間予測部６１ａ〜６１ｃを備えている。時間予測部６１ａは、バッファ１２ａに対応する転送レートＲｔａ、しきい値Ｂｉａ、データ蓄積量Ｄｓａに基づいて、データ蓄積時間Ｔｐａを算出する。同様に、時間予測部６１ｂは、バッファ１２ｂに対応する転送レートＲｔｂ、しきい値Ｂｉｂ、データ蓄積量Ｄｓｂに基づいて、データ蓄積時間Ｔｐｂを算出する。時間予測部６１ｃは、バッファ１２ｃに対応する転送レートＲｔｃ、しきい値Ｂｉｃ、データ蓄積量Ｄｓｃに基づいて、データ蓄積時間Ｔｐｃを算出する。
【００７１】
サイズ変換部６２ａは、データバス１３の転送レートＲｔ０に基づいて、データ蓄積時間Ｔｐａを予測サイズＰｓａに変換する。同様に、サイズ変換部６２ｂは、データバス１３の転送レートＲｔ０に基づいて、データ蓄積時間Ｔｐｂを予測サイズＰｓｂに変換する。サイズ変換部６２ｃは、データバス１３の転送レートＲｔ０に基づいて、データ蓄積時間Ｔｐｃを予測サイズＰｓｃに変換する。
【００７２】
選択部６３は、各サイズ変換部６２ａ〜６２ｃから出力される予測サイズＰｓａ〜Ｐｓｃに基づいて、クリップ処理部６４ａ〜６４ｃに対する予測サイズＰ２ａ〜Ｐ２ｃを生成する。クリップ処理部６４ａ〜６４ｃは、バッファ１２ａ〜１２ｃにそれぞれ対応する。選択部６３は、バッファ１２ａ〜１２ｃに対応するクリップ処理部６４ａ〜６４ｃに対し、対応しない２つのバッファの分割サイズのうちの１つを選択し、その選択した分割サイズを出力する。
【００７３】
例えば、選択部６３は、クリップ処理部６４ａに対し、バッファ１２ｂ，１２ｃに対応する２つの予測サイズＰｓｂ，Ｐｓｃのうち、小さい値の分割サイズを選択し、その選択した分割サイズの値と等しい予測サイズＰ２ａを出力する。同様に、選択部６３は、クリップ処理部６４ｂに対し、バッファ１２ａ，１２ｃに対応する２つの予測サイズＰｓａ，Ｐｓｃのうち、小さい値の分割サイズを選択し、その選択した分割サイズの値と等しい予測サイズＰ２ｂを出力する。また、選択部６３は、クリップ処理部６４ｃに対し、バッファ１２ａ，１２ｂに対応する２つの予測サイズＰｓａ，Ｐｓｂのうち、小さい値の分割サイズを選択し、その選択した分割サイズの値と等しい予測サイズＰ２ｃを出力する。
【００７４】
クリップ処理部６４ａは、レジスタ６５から供給される上限値Ｂａｍｘと下限値Ｂａｍｎに基づいて予測サイズＰ２ａをクリップ処理して生成した分割サイズＢｓａを出力する。同様に、クリップ処理部６４ｂは、レジスタ６５から供給される上限値Ｂｂｍｘと下限値Ｂｂｍｎに基づいて予測サイズＰ２ｂをクリップ処理して生成した分割サイズＢｓｂを出力する。クリップ処理部６４ｃは、レジスタ６５から供給される上限値Ｂｃｍｘと下限値Ｂｃｍｎに基づいて予測サイズＰ２ｃをクリップ処理して生成した分割サイズＢｓｃを出力する。
【００７５】
このように、バッファ１２ａ〜１２ｃにそれぞれ格納されるデータを装置１４に転送する際の分割サイズを変更することにより、上記実施形態と同様に、転送に係る待ち時間を短縮することができる。
【００７６】
尚、選択部６３において、設定した優先順位に従って、各クリップ処理部６４ａ〜６４ｃに対し、対応しないバッファの２つの分割サイズのうちの一方を選択して出力する構成としてもよい。また、図８において、選択部６３を、サイズ変換部６２ａ〜６２ｃとクリップ処理部６４ａ〜６４ｃの間に接続したが、選択部６３を、時間予測部６１ａ〜６１ｃとサイズ変換部６２ａ〜６２ｃとの間に接続するようにしてもよい。
【００７７】
・上記実施形態では、制御部２２から分割サイズ算出部２１に対して出力される各通信装置１１ａ，１１ｂからバッファ１２ａ，１２ｂまでの転送レートＲｔａ，Ｒｔｂを固定する構成としたが、これらの転送レートＲｔａ，Ｒｔｂを適宜変更する構成を採用してもよい。
【００７８】
・上記実施形態では、各通信装置１１ａ，１１ｂ（各バッファ１２ａ，１２ｂ）の転送先が同一の装置１４とした構成を採用したが、例えば各通信装置１１ａ，１１ｂ（各バッファ１２ａ，１２ｂ）の転送先がそれぞれ異なる構成であってもよい。要は、通信装置１１ａ，１１ｂ（バッファ１２ａ，１２ｂ）のそれぞれが目的の装置に対してデータを転送する際に共通（共有）のデータバス１３を利用する構成であれば本発明を適用することができる。
【００７９】
・上記実施形態では、通信装置１１ａ及び通信装置１１ｂからデータバス１３を介して目的の装置１４に対してデータ転送を実施する、つまりデータ転送の転送方向が一方向とされる構成としたが、これに限らない。例えばデータ転送を通信装置１１ａ，１１ｂと目的の装置１４との間で双方向にデータ転送が可能な構成の場合に、各バッファに対する分割サイズをデータ転送装置２０（分割サイズ算出部２１）によって変更することで双方向へのデータ転送が可能な構成であっても、上記効果（１）と同様の効果を得ることができる。
【００８０】
・上記実施形態では、バッファ１２ａ，１２ｂ及び通信装置１１ａ，１１ｂ間における転送レートＲｔａ，Ｒｔｂを予め設定したが、これに限らない。例えば、バッファ１２ａ，１２ｂ及び通信装置１１ａ，１１ｂ間の転送レートを所定タイミング毎若しくは任意のタイミングで計測し、その計測した実測値を転送レートＲｔａ，Ｒｔｂとして使用する構成を採用してもよい。
【００８１】
・通信装置１１ａ，１１ｂから各バッファ１２ａ，１２ｂにデータを転送する際に用いるクロック信号（例えば、通信装置１１ａ，１１ｂの送信回路が動作するためのクロック信号等）の周波数を転送レートＲｔａ，Ｒｔｂとして用いるようにしてもよい。同様に、データバス１３の転送レートＲｔ０についても、クロック信号の周波数を用いるようにしてもよい。
【００８２】
・上記実施形態では、各バッファ１２ａ，１２ｂに対する分割サイズの上限値Ｂａｍｘ，Ｂｂｍｘ及び下限値Ｂａｍｎ，Ｂｂｍｎを設定する構成としたが、いずれか一方のみを設定する構成、若しくは上限値及び下限値の両方を設定しない構成としてもよい。
【００８３】
・上記実施形態では、各バッファ１２ａ，１２ｂに蓄積されるデータのデータ蓄積量Ｄｓａ，Ｄｓｂに応じて分割するデータのサイズ（分割サイズＢｓａ，Ｂｓｂ）を変更する構成としたが、例えば各バッファ１２ａ，１２ｂの空き容量に応じて分割するデータのサイズを変更する構成としてもよい。
【００８４】
・上記実施形態では、特に言及していないが、前記データバス１３は、ＣＰＵ内部にある内部バス、ＣＰＵの外部にある外部バス、拡張カード等を増設する際に用いられる拡張バスのいずれであってもよい。要は、１つの転送路（バス）に複数の装置が接続され、それら装置が転送路を介してそれぞれの転送対象である装置に対してデータを転送するものであればよい。また、データバス１３は、バッファ１２ａ，１２ｂから装置１４に対してデータを転送可能であればよく、無線通信や有線通信等の通信形態、シリアルバスやパラレルバスなどの構成形態は限定されない。
【００８５】
上記各実施形態に関し、以下の付記を開示する。
（付記１）
複数のバッファのそれぞれに格納されたデータを、複数の前記バッファが接続される１つのバスを介して転送先にデータを転送するデータ転送装置であって、
複数の前記バッファのデータ蓄積量に基づいて分割サイズをそれぞれ算出する分割サイズ算出部と、
複数の前記バッファに対応し、前記分割サイズと前記データ蓄積量に応じて対応するバッファの転送指示を出力する複数の分割転送制御部と、
前記転送指示に応じて前記バッファから前記転送先にデータを転送する転送制御部と、
を含むデータ転送装置。
（付記２）
前記分割サイズ算出部は、前記分割サイズ分のデータ転送が終了する毎に、複数の前記バッファに対する分割サイズを算出する、ことを特徴とする付記１に記載のデータ転送装置。
（付記３）
前記分割サイズ算出部は、複数の前記バッファの分割サイズを、算出対象以外のバッファのデータ蓄積量に基づいてそれぞれ算出する、ことを特徴とする付記１又は２に記載のデータ転送装置。
（付記４）
前記分割サイズ算出部は、
複数の前記バッファのデータ蓄積量に基づいて次の転送要求が発行されるまでの予測時間をそれぞれ算出する複数の時間予測部と、
前記バスの転送レートに基づいて、複数の前記予測時間を複数の前記分割サイズにそれぞれ変換する複数のサイズ変換部と、
を含む、ことを特徴とする付記１〜３のうちの何れか一項に記載のデータ転送装置。
（付記５）
前記分割サイズ算出部は、複数の前記分割サイズを、複数の前記バッファのそれぞれに対応する上限値及び下限値に基づいてそれぞれクリップする複数のクリップ処理部を含む、ことを特徴とする付記４に記載のデータ転送装置。
（付記６）
前記バスには少なくとも３つの前記バッファが接続され、
前記分割サイズ算出部は、複数の前記バッファの分割サイズを、算出対象以外のバッファの予測時間のうちの最小の予測時間に基づいて算出する、ことを特徴とする付記１〜５のうちの何れか一項に記載のデータ転送装置。
（付記７）
前記時間予測部は、対応する前記バッファのデータ蓄積量と転送レートと転送開始しきい値とに基づいて前記予測時間を算出する、ことを特徴とする付記４に記載のデータ転送装置。
（付記８）
複数のバッファのそれぞれに格納されたデータを、複数の前記バッファが接続される１つのバスを介して転送先にデータを転送するデータ転送方法であって、
複数の前記バッファのデータ蓄積量に基づいて分割サイズをそれぞれ算出し、複数の前記バッファに対応し、前記分割サイズと前記データ蓄積量に応じて対応するバッファの転送指示を生成し、前記転送指示に応じて前記バッファから前記転送先にデータを転送する、データ転送方法。
【符号の説明】
【００８６】
１２ａ〜１２ｃ  バッファ
１３  データバス
１４  装置（転送先）
２０，５０  データ転送装置
２１，５１  分割サイズ算出部
２３ａ，２３ｂ，５３ａ〜５３ｃ  分割転送制御部
２５，５５  転送制御部
３１ａ，３１ｂ，６１ａ〜６１ｃ  時間予測部
３２ａ，３２ｂ，６２ａ〜６２ｃ  サイズ変換部
３３ａ，３３ｂ  クリップ処理部
Ｂｉａ，Ｂｉｂ  しきい値（転送開始しきい値）
Ｔｐａ，Ｔｐｂ  データ蓄積時間（予測時間）
Ｄｓａ，Ｄｓｂ，Ｄｓｃ  データ蓄積量
Ｒｔａ，Ｒｔｂ，Ｒｔｃ  転送レート
Ｒｔ０  転送レート
Ｂｓａ，Ｂｓｂ，Ｂｓｃ  分割サイズ
Ｂａｍｘ，Ｂｂｍｘ  上限値
Ｂａｍｎ，Ｂｂｍｎ  下限値
【図１】
0005644531.tif 000002
【図２】
0005644531.tif 000003
【図３】
0005644531.tif 000004
【図４】
0005644531.tif 000005
【図５】
0005644531.tif 000006
【図６】
0005644531.tif 000007
【図７】
0005644531.tif 000008
【図８】
0005644531.tif 000009