(57)【要約】      （修正有）【課題】高速かつ順次に大容量データを転送するデータ転送制御装置の提供。【解決手段】３つのバッファをＷＲ（書き込み）バッファ、中間バッファ、ＲＤ（読み出し）バッファとして用いる構成において、各バッファに有効な（未参照の）データが格納されているか否かを保持する判定フラグを用いて、データが順番に送り出されるよう、各バッファを切り替える。バッファ制御装置は、（Ａ）ＷＲバッファ有効フラグ３３がオン、中間バッファ有効フラグ３４及びＲＤバッファ有効フラグ３５がオフである場合、ＷＲ−ＲＤ間の切り替えを（Ｂ）ＷＲバッファ有効フラグ３３及びＲＤバッファ有効フラグ３５がオン、中間バッファ有効フラグ３４がオフである場合、ＷＲ−中間間の切り替えを、（Ｃ）中間バッファ有効フラグ３４がオン、ＲＤバッファ有効フラグ３５がオフである場合、中間−ＲＤ間の切り替えを行う。【選択図】図１
2006236114.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも３つのバッファに分割可能な物理バッファと、バッファ制御装置と、前記バッファ制御装置からの指令に従って前記各バッファから読み出し及び書き込み対象のバッファを選択するセレクタと、を備えるデータ転送装置において、
少なくとも読み出しが終了したときに、前記書き込み対象のバッファへの書き込みが終了しており、かつ、前記セレクタに選択されなかったバッファに未読データが無ければ、書き込み対象のバッファと読み出し対象のバッファの切り替え制御を行い、
少なくとも読み出しが終了したときに、前記セレクタに選択されなかったバッファに未読データがあれば、前記セレクタに選択されなかった物理バッファと読み出し対象のバッファの切り替え制御を行うこと、
を特徴とするデータ転送装置。
【請求項２】
少なくとも書き込みが終了したときに、前記読み出し対象のバッファに未読データがあり、かつ、前記セレクタに選択されなかったバッファに未読データが無ければ、前記書き込み対象のバッファとセレクタに選択されなかったバッファの切り替え制御を行うこと、
を特徴とする請求項１に記載のデータ転送装置。
【請求項３】
請求項２に記載のデータ転送装置において、
前記バッファ制御装置は、
書き込み対象のバッファへの書き込み完了時にオン状態にセットされる書き込みバッファ有効フラグと、読み出し対象のバッファからの読出し完了時にオフ状態にセットされる読み出しバッファ有効フラグと、前記セレクタから選択されていない中間バッファに参照の有効データが格納されている場合にオン状態にセットされる中間バッファ有効フラグと、を記憶する記憶部と、
（Ａ）書き込みバッファ有効フラグがオン状態かつ、前記中間バッファ有効フラグと読み出しバッファ有効フラグがオフ状態のときは、前記書き込み対象のバッファと読み出し対象のバッファを切り替えるよう前記セレクタを動作させ、
（Ｂ）書き込みバッファ有効フラグと読み出しバッファ有効フラグがオン状態かつ、前記中間バッファ有効フラグがオフ状態のときは、前記書き込み対象のバッファと中間バッファを切り替えるよう前記セレクタを動作させ、
（Ｃ）中間バッファ有効フラグがオン状態かつ、読み出しバッファ有効フラグがオフ状態のときは、前記読み出し対象のバッファと中間バッファを切り替えるよう前記セレクタを動作させ、
（Ｄ）前記（Ａ）乃至（Ｃ）の切り替え処理を行った場合に、それぞれ切り替えを行ったバッファの有効フラグの状態を反転させるバッファ制御回路と、を備えたこと、
を特徴とするデータ転送装置。
【請求項４】
更に、データ転送方式の選択状態を保持するデータ転送方式選択レジスタを有し、
前記バッファ制御回路は、データ転送方式選択レジスタに所定値がセットされた状態において、読み出し対象のバッファが所定時間未参照状態である場合、前記バッファの内容をクリアすること、
を特徴とする請求項１乃至３いずれか一に記載のデータ転送装置。
【請求項５】
更に、データ転送方式の選択状態を保持するデータ転送方式選択レジスタを有し、
前記バッファ制御回路は、データ転送方式選択レジスタに所定値がセットされた状態において、すべてのバッファが所定時間未参照状態である場合、前記セレクタに選択されていないバッファの内容をクリアすること、
を特徴とする請求項１乃至４いずれか一に記載のデータ転送装置。
【請求項６】
更に、データ転送方式の選択状態を保持するデータ転送方式選択レジスタを有し、
前記バッファ制御回路は、データ転送方式選択レジスタに所定値がセットされた状態においては、データ参照側から受信完了通知を受け取ってから、前記読み出し対象のバッファの内容をクリアすること、
を特徴とする請求項１乃至５いずれか一に記載のデータ転送装置。
【請求項７】
更に、バッファの分割数を切り替えるバッファ分割選択レジスタを有し、
前記バッファ制御回路は、バッファ分割選択レジスタに所定値がセットされた状態においては、前記物理バッファを用いてダブルバッファを構成し、ＦＩＦＯ制御を実行すること、
を特徴とする請求項１乃至６いずれか一に記載のデータ転送装置。
【請求項８】
少なくとも３つのバッファに分割可能な物理バッファと、バッファ制御装置と、前記バッファ制御装置からの指令に従って前記各バッファから読み出し及び書き込み対象のバッファを選択するセレクタと、を備える画像処理装置において、
前記バッファ制御装置は、
少なくとも読み出しが終了したときに、前記書き込み対象のバッファへの書き込みが終了しており、かつ、前記セレクタに選択されなかったバッファに未読データが無ければ、書き込み対象のバッファと読み出し対象のバッファの切り替え制御を行い、
少なくとも読み出しが終了したときに、前記セレクタに選択されなかったバッファに未読データがあれば、前記セレクタに選択されなかった物理バッファと読み出し対象のバッファの切り替え制御を行うこと、
を特徴とする画像処理装置。
【請求項９】
前記バッファ制御装置は、更に、
少なくとも書き込みが終了したときに、前記読み出し対象のバッファに未読データがあり、かつ、前記セレクタに選択されなかったバッファに未読データが無ければ、前記書き込み対象のバッファとセレクタに選択されなかったバッファの切り替え制御を行うこと、
を特徴とする請求項８に記載の画像処理装置。
【請求項１０】
請求項９に記載の画像処理装置において、
前記バッファ制御装置は、
書き込み対象のバッファへの書き込み完了時にオン状態にセットされる書き込みバッファ有効フラグと、読み出し対象のバッファからの読出し完了時にオフ状態にセットされる読み出しバッファ有効フラグと、前記セレクタから選択されていない中間バッファに参照の有効データが格納されている場合にオン状態にセットされる中間バッファ有効フラグと、を記憶する記憶部と、
（Ａ）書き込みバッファ有効フラグがオン状態かつ、前記中間バッファ有効フラグと読み出しバッファ有効フラグがオフ状態のときは、前記書き込み対象のバッファと読み出し対象のバッファを切り替えるよう前記セレクタを動作させ、
（Ｂ）書き込みバッファ有効フラグと読み出しバッファ有効フラグがオン状態かつ、前記中間バッファ有効フラグがオフ状態のときは、前記書き込み対象のバッファと中間バッファを切り替えるよう前記セレクタを動作させ、
（Ｃ）中間バッファ有効フラグがオン状態かつ、読み出しバッファ有効フラグがオフ状態のときは、前記読み出し対象のバッファと中間バッファを切り替えるよう前記セレクタを動作させ、
（Ｄ）前記（Ａ）乃至（Ｃ）の切り替え処理を行った場合に、それぞれ切り替えを行ったバッファの有効フラグの状態を反転させるバッファ制御回路と、を備えたこと、
を特徴とする画像処理装置。
【請求項１１】
更に、データ転送方式の選択状態を保持するデータ転送方式選択レジスタを有し、
前記バッファ制御回路は、データ転送方式選択レジスタに所定値がセットされた状態において、読み出し対象のバッファが所定時間未参照状態である場合、前記バッファの内容をクリアすること、
を特徴とする請求項８乃至１０いずれか一に記載の画像処理装置。
【請求項１２】
更に、データ転送方式の選択状態を保持するデータ転送方式選択レジスタを有し、
前記バッファ制御回路は、データ転送方式選択レジスタに所定値がセットされた状態において、すべてのバッファが所定時間未参照状態である場合、前記セレクタに選択されていないバッファの内容をクリアすること、
を特徴とする請求項８乃至１１いずれか一に記載の画像処理装置。
【請求項１３】
更に、データ転送方式の選択状態を保持するデータ転送方式選択レジスタを有し、
前記バッファ制御回路は、データ転送方式選択レジスタに所定値がセットされた状態においては、データ参照側から受信完了通知を受け取ってから、前記読み出し対象のバッファの内容をクリアすること、
を特徴とする請求項８乃至１２いずれか一に記載の画像処理装置。
【請求項１４】
更に、バッファの分割数を切り替えるバッファ分割選択レジスタを有し、
前記バッファ制御回路は、バッファ分割選択レジスタに所定値がセットされた状態においては、前記物理バッファを用いてダブルバッファを構成し、ＦＩＦＯ制御を実行すること、
を特徴とする請求項８乃至１３いずれか一に記載の画像処理装置。
【請求項１５】
少なくとも３つのバッファに分割可能な物理バッファと、前記各バッファから読み出し及び書き込み対象のバッファを選択するセレクタと、を備え、データ提供部からデータ参照部へとデータを転送するデータ転送装置におけるバッファリング方法であって、
前記データ転送装置が、
少なくとも読み出しが終了したときに、前記書き込み対象のバッファへの書き込みが終了しており、かつ、前記セレクタに選択されなかったバッファに未読データが無ければ、書き込み対象のバッファと読み出し対象のバッファの切り替え制御を行い、
少なくとも読み出しが終了したときに、前記セレクタに選択されなかったバッファに未読データがあれば、前記セレクタに選択されなかった物理バッファと読み出し対象のバッファの切り替え制御を行うこと、
を特徴とするデータ転送制御方法。
【請求項１６】
請求項１５に記載のデータ転送制御方法において、
前記データ転送装置は、更に、
少なくとも書き込みが終了したときに、前記読み出し対象のバッファに未読データがあり、かつ、前記セレクタに選択されなかったバッファに未読データが無ければ、前記書き込み対象のバッファとセレクタに選択されなかったバッファの切り替え制御を行うこと、
を特徴とするデータ転送制御方法。
【請求項１７】
請求項１６に記載のデータ転送制御方法であって、
前記データ転送装置は、
書き込み対象のバッファへの書き込み完了時にオン状態にセットされる書き込みバッファ有効フラグと、読み出し対象のバッファからの読出し完了時にオフ状態にセットされる読み出しバッファ有効フラグと、前記セレクタから選択されていない中間バッファに参照の有効データが格納されている場合にオン状態にセットされる中間バッファ有効フラグと、を参照し、
（Ａ）書き込みバッファ有効フラグがオン状態かつ、前記中間バッファ有効フラグと読み出しバッファ有効フラグがオフ状態のときは、前記書き込み対象のバッファと読み出し対象のバッファを切り替えるよう前記セレクタを動作させ、
（Ｂ）書き込みバッファ有効フラグと読み出しバッファ有効フラグがオン状態かつ、前記中間バッファ有効フラグがオフ状態のときは、前記書き込み対象のバッファと中間バッファを切り替えるよう前記セレクタを動作させ、
（Ｃ）中間バッファ有効フラグがオン状態かつ、読み出しバッファ有効フラグがオフ状態のときは、前記読み出し対象のバッファと中間バッファを切り替えるよう前記セレクタを動作させ、
（Ｄ）前記（Ａ）乃至（Ｃ）の切り替え処理を行った場合に、それぞれ切り替えを行ったバッファの有効フラグの状態を反転させること、
を特徴とするデータ転送制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送装置、画像処理装置及びデータ転送制御方法に関し、特に、複数のバッファを備えたデータ転送装置、画像処理装置及びそのデータ転送制御方法に関する。
【背景技術】
【０００２】
従来より、トリプルバッファ構成を備えたデータ転送装置が知られており、例えば、特許文献１には、最新のデータが書き込まれたバッファを優先して参照できるように構成したデータバッファリング装置が紹介されている。図１０は、特許文献１に記載のデータバッファリング装置の構成を表した図面であり、３つの物理バッファ２２２、２２４、２２６をバッファ情報レジスタに格納された情報に従って書き込みバッファ、読み出しバッファ、格納バッファのいずれかのバッファとして機能させる構成が示されている。
【０００３】
図１１は、特許文献１のバッファ切り替えアルゴリズムを表したフローチャートである。バッファ切り替え要求レジスタ２１４は、データ提供部１００による書き込み完了時に１がセットされ、バッファ切り替え禁止レジスタ２１６は、データ参照部１１０の読み出し中は１がセットされる。バッファ切り替え要求が発生した場合、バッファ切り替え禁止レジスタ２１６内のフラグが確認され（ステップＳ１２）、バッファ切り替え禁止レジスタ２１６内のフラグが０なら読み出しバッファは利用されていないので、読み出しバッファと最新のデータが書き込まれた書き込みバッファとを交換する処理が行われる（ステップＳ１４）。
【０００４】
一方、上記ステップＳ１２においてバッファ切り替え禁止レジスタ２１６のフラグが１であれば読み出しバッファは利用されているため、格納バッファと書き込みバッファを交換し、格納バッファに現在の読み出しバッファよりも新しいデータが入っていることを示す格納バッファ有効フラグ２１５に１をセットする（ステップＳ１６）。
【０００５】
また、上記ステップＳ１０において、バッファ切り替え禁止レジスタ２１６が０に変化した場合、読み出しが終了したことになるので、格納バッファ有効レジスタ２１５が１でありデータが入っていれば、読み出しバッファと格納バッファを入れ替え（ステップＳ２０）、格納バッファ有効フラグ２１５が０でありデータが入っていなければ、現在の読み出しバッファが最新であるため、バッファの入れ替えは行わない（ステップＳ１０へ）と、されている。
【０００６】
【特許文献１】特開２００１−２８２６５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、動画像のリアルタイム転送や大容量ストレージ機器へのデータ転送を考えると、高速化が可能で、資源の利用効率もよいトリプルバッファ構成において、シーケンシャルにデータ転送可能な転送方式を実現することが望まれている。
【０００８】
この点、特許文献１のデータバッファリング装置は、最新のデータを参照部１１０に供することが可能であるが、そのために最新でないデータを破棄することを前提としている。例えば、上述のバッファ切り替えアルゴリズムによれば、最新のデータが書き込まれた時点でバッファ切り替え要求レジスタ２１４に１がセットされ、読み出しバッファに未参照のデータがあったとしても、最新のデータを優先すべく、書き込みバッファと読み出しバッファの切り替えが行なわれる（図１１のステップＳ１０→Ｓ１２→Ｓ１４）。このため、格納バッファのデータが未参照のまま廃棄又は上書きされることが生じる。また同様に、最新のデータが書き込まれた時点で、読み出しバッファを読み出し中であった場合も、格納バッファに未参照のデータがあるか否かにかかわらず、格納バッファと書き込みバッファの切り替えが行われる（図１１のステップＳ１０→Ｓ１２→Ｓ１６）。
【課題を解決するための手段】
【０００９】
本発明の第１の視点によれば、少なくとも３つのバッファに分割可能な物理バッファと、バッファ制御装置と、前記バッファ制御装置からの指令に従って前記各バッファから読み出し及び書き込み対象のバッファを選択するセレクタと、を備え、データ提供部からデータ参照部へとデータを転送するデータ転送装置において、前記データ転送装置が、少なくとも読み出しが終了したときに、前記書き込み対象のバッファ（ＷＲバッファ）への書き込みが終了しており、かつ、前記セレクタに選択されなかったバッファ（中間バッファ）に未読データが無ければ、書き込み対象のバッファ（ＷＲバッファ）と読み出し対象のバッファ（ＲＤバッファ）の切り替え制御を行い、少なくとも読み出しが終了したときに、前記セレクタに選択されなかったバッファ（中間バッファ）に未読データがあれば、前記セレクタに選択されなかったバッファ（中間バッファ）と読み出し対象のバッファ（ＲＤバッファ）の切り替え制御を行うことを特徴とするデータ転送装置が提供される。
【００１０】
また、本発明の第２の視点によれば、上記データ転送装置相当のフレームバッファ制御を行う画像処理装置が提供される。
【００１１】
また、本発明の第３の視点によれば、上記データ転送装置において実行される、物理バッファを少なくとも３つに等分し、データの格納状態に応じて、データが順番に送り出されるよう、各バッファを切り替えるデータ転送制御方法が提供される。
【発明の効果】
【００１２】
本発明によれば、データの欠落を防止し、大容量データを高速かつ順次に転送乃至表示することが可能となる。その理由は、少なくとも読み出し対象のバッファから読み出しが終了したときに、中間バッファの状態や書き込み動作の状況に応じて、適切な切り替え対象を選択するバッファリング構成を採用したことにある。
【発明を実施するための最良の形態】
【００１３】
続いて、本発明を実施するための最良の形態として、第１乃至第３の実施形態を挙げて、詳細に説明する。
【００１４】
［第１の実施形態］
図１は、本発明の第１の実施形態に係るデータ転送制御装置の構成を表したブロック図である。図１を参照すると、データ提供部１０とデータ参照部４０との間に配置され、データ提供部１０から転送されるデータをバッファし、データ参照部４０に参照可能とさせるデータ転送制御装置２０の構成が示されている。
【００１５】
データ提供部１０は、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）通信におけるデバイス側のＣＰＵ等であり、データ参照部４０は、ホスト側の装置等である。
【００１６】
データ転送制御装置２０は、ＷＲバッファセレクタ（書き込み用バッファセレクタ）２１と、物理バッファ２２と、ＲＤバッファセレクタ（読み出し用バッファセレクタ）２３と、バッファ制御装置３０と、からなり、データ提供部１０とデータ参照部４０の速度差を吸収するバッファ（エンドポイント）を持つデバイスコントローラを構成する。
【００１７】
物理バッファ２２は、図示されたように物理バッファ２２−１〜２２−３と同一サイズの３つの物理バッファとして用いられる。物理バッファ２２−１〜２２−３は、書き込みバッファ（ＷＲバッファ）、読み出しバッファ（ＲＤバッファ）、中間バッファのいずれかのバッファとして機能するものである。
【００１８】
ＷＲバッファセレクタ（書き込み用バッファセレクタ）２１及びＲＤバッファセレクタ（読み出し用バッファセレクタ）２３は、それぞれ後述するバッファ情報レジスタ３１に格納された情報に従って物理バッファ２２−１〜２２−３を選択する。
【００１９】
ここで、書き込みバッファ（ＷＲバッファ）、読み出しバッファ（ＲＤバッファ）、中間バッファについて説明する。書き込みバッファ（ＷＲバッファ）は、ＷＲバッファセレクタ（書き込み用バッファセレクタ）２１に選択された物理バッファであり、データ提供部１０によるデータ書き込みの際にアクセスされる。読み出しバッファ（ＲＤバッファ）は、ＲＤバッファセレクタ（読み出し用バッファセレクタ）２３に選択された物理バッファであり、データ参照部４０によるデータ読み出しの際にアクセスされる。また、中間バッファは、ＷＲバッファセレクタ（書き込み用バッファセレクタ）２１及びＲＤバッファセレクタ（読み出し用バッファセレクタ）２３の双方から選択されなかった物理バッファであり、データ提供部１０とデータ参照部４０のいずれからもアクセスできないバッファとなる。
【００２０】
バッファ制御装置３０は、バッファ情報レジスタ３１と、バッファ制御回路３２と、ＷＲバッファ有効フラグ３３と、中間バッファ有効フラグ３４と、ＲＤバッファ有効フラグ３５と、を備えている。
【００２１】
バッファ情報レジスタ３１は、書き込みバッファ（ＷＲバッファ）、読み出しバッファ（ＲＤバッファ）、中間バッファとして機能させるための物理バッファの選択情報を保持するレジスタである。ＷＲバッファ有効フラグ３３、中間バッファ有効フラグ３４、ＲＤバッファ有効フラグ３５は、図示しない記憶部に記憶されるフラグであり、それぞれ書き込みバッファ（ＷＲバッファ）、中間バッファ、読み出しバッファ（ＲＤバッファ）に、未参照のデータが格納されているか否かを示すために用いられる。例えば、ＷＲバッファ有効フラグ３３は、データ書き込み完了時にオン設定され、ＲＤバッファ有効フラグ３５は、データ読み出し完了時にオフ設定され、中間バッファ有効フラグ３４はデータが格納された場合にオン設定される。
【００２２】
バッファ制御回路３２は、上記のとおりリアルタイムに管理されるＷＲバッファ有効フラグ３３、中間バッファ有効フラグ３４、ＲＤバッファ有効フラグ３５の状態に基づいて、切り替え回数がより少なく済み、かつ、データの欠落が発生しないように書き込み及び読み出しバッファの選択情報を生成し、バッファ情報レジスタ３１に出力する。また、この選択情報の種類は、後に図４を用いて詳説するように、高々６通りである。
【００２３】
図２は、ＷＲバッファ有効フラグ３３、中間バッファ有効フラグ３４、ＲＤバッファ有効フラグ３５の状態と、切替対象バッファの関係を表した図である。例えば、（Ａ）ＷＲバッファ有効フラグ３３がデータ有（オン）、中間バッファ有効フラグ３４及びＲＤバッファ有効フラグ３５が空き（オフ）である場合、書き込みバッファ（ＷＲバッファ）と読み出しバッファ（ＲＤバッファ）が切り替えられ（ＷＲ−ＲＤ切替）、次状態では、書き込みバッファ（ＷＲバッファ）が、データ有りの読み出しバッファ（ＲＤバッファ）となり（即ちデータ参照部４０から即座にデータ参照可能な状態になる。）、読み出しバッファ（ＲＤバッファ）が、空き状態の書き込みバッファ（ＷＲバッファ）に遷移する（即ちデータ提供部１０から即座にデータ書き込み可能な状態になる。）。
【００２４】
また、（Ｂ）ＷＲバッファ有効フラグ３３及びＲＤバッファ有効フラグ３５がデータ有（オン）、中間バッファ有効フラグ３４が空き（オフ）である場合、書き込みバッファ（ＷＲバッファ）と中間バッファが切り替えられ、次状態では、書き込みバッファ（ＷＲバッファ）が、データ空きの中間バッファとなり（即ちデータ参照部４０からのアクセス待ち行列に入った状態になる。）、中間バッファが、空き状態の書き込みバッファ（ＷＲバッファ）に遷移する（即ちデータ提供部１０から即座にデータ書き込み可能な状態になる。）。
【００２５】
また、（Ｃ）中間バッファ有効フラグ３４がデータ有（オン）、ＲＤバッファ有効フラグ３５が空き（オフ）である場合、中間バッファと読み出しバッファ（ＲＤバッファ）が切り替えられ、次状態では、中間バッファが、データ有りの読み出しバッファ（ＲＤバッファ）となり（即ちデータ参照部４０から即座にデータ参照可能な状態になる。）、読み出しバッファが、空き状態の中間バッファに遷移する（即ちデータ参照部４０からのアクセス待ち行列から抜けた状態になる。）。
【００２６】
図３は、以上のバッファ切り替えアルゴリズムを具現したフローチャートである。図３を参照すると、上記（Ａ）に相当する条件判定式（１）が成立した場合は、切替信号１が送出され、書き込みバッファ（ＷＲバッファ）と読み出しバッファ（ＲＤバッファ）を切り替えるようバッファ情報レジスタ３１の内容が書き換えられる。また、上記（Ｂ）に相当する条件判定式（２）が成立した場合は、切替信号２が送出され、書き込みバッファ（ＷＲバッファ）と中間バッファを切り替えるようバッファ情報レジスタ３１の内容が書き換えられる。また、上記（Ｃ）に相当する条件判定式（３）が成立した場合は、切替信号３が送出され、中間バッファと読み出しバッファ（ＲＤバッファ）を切り替えるようバッファ情報レジスタ３１の内容が書き換えられる。
【００２７】
以上の条件判定式は同時に成立することはなく、またいずれの場合もデータをデータ参照部４０側に送り出す方向にバッファ切替動作が行なわれる。反対に、条件判定式（１）〜（３）に当てはまらない場合は、すべてのバッファが空きである、すべてのバッファにデータがある、読み出しバッファのみにデータがある、又は、中間バッファと読み出しバッファのみにデータがある等のバッファ切り替えが無用であるケースになる。
【００２８】
図４は、本実施形態における物理バッファの状態遷移図である。同図中、「ＷＲ」は書き込みバッファ、「中間」は中間バッファ、「ＲＤ」は読み出しバッファを表している。図４に示されたとおり、物理バッファ２２−１〜２２−３に書き込みバッファ、読み出しバッファ、中間バッファが割り当てられる組合せは、６通り（３！＝３×２×１）であり、これらの状態間を図中矢印で示された３種の信号で切り替えながら、データが格納されたバッファをその書き込み順に、読み出しバッファ（ＲＤバッファ）にセットすることが可能となっている。
【００２９】
上述のバッファリング方法によれば、データ参照部４０において読み出しバッファ（ＲＤバッファ）を読み出し中である場合、書き込みバッファ（ＷＲバッファ）と中間バッファの状態が上述の（Ｂ）（条件判定式２）を満たせば、速やかにバッファを空けて書き込みバッファ（ＷＲバッファ）を用意することが可能となっている。また同様に、データ提供部１０において書き込みバッファ（ＷＲバッファ）を書き込み中である場合も、中間バッファと読み出しバッファ（ＲＤバッファ）の状態が上述の（Ｃ）（条件判定式３）を満たせば次に読み出されるべきデータが入ったバッファを読み出しバッファ（ＲＤバッファ）とすることが可能となっている。
【００３０】
以上のとおり、有効フラグのみでバッファの切り替えを判断する本実施形態のデータ転送制御装置によれば、データ提供部から提供された順に、かつ、より少ない切り替え回数で、データ参照部に参照させることが可能となっている。そして、この特徴は、大容量のデータを高速かつ順次転送することが要求される用途に好適であり、例えば動画像ストリームデータのフレームをいくつかのパケットに分割して転送するようなケースにおいて特に有効である。例えば、従来技術であれば、１フレーム分のデータを送りきる前にデータの一部が欠けてしまうことがあり、画像を表示できなくなるということがあったが、そのような現象が発生しなくなるという顕著な効果となって表れる。
【００３１】
［第２の実施形態］
続いて、本発明の第２の実施形態について説明する。図５は、本発明の第２の実施形態に係るデータ転送制御装置の構成を表したブロック図である。以下、上記第１の実施形態で既に説明した事項は省略し、その相違する部分を説明する。
【００３２】
図５を参照すると、このデータ転送制御装置２０は、上記した第１の実施形態に係るデータ転送制御装置に、更に、データ転送方式選択レジスタ３６を追加した構成となっている。
【００３３】
そして、本実施の形態に係るバッファ制御回路３２は、データ転送方式選択レジスタ３６の値に応じて、以下の２種のリアルタイム転送モード又は高信頼性転送モードに遷移する。
【００３４】
第１のリアルタイム転送モードでは、バッファ制御回路３２は、ＲＤバッファ有効フラグ３５が所定時間オン状態のままである場合、ＲＤバッファ有効フラグをオフ状態に変更する。即ち、読み出しバッファ（ＲＤバッファ）が所定時間未参照である場合は、読み出しバッファ（ＲＤバッファ）を強制的に上書き可能な状態に変更する最古データ破棄制御を行う。
【００３５】
この第１のリアルタイム転送モードによれば、バッファ切り替え待ちとなる特定の状態の継続を所定の時間で打ち切ることができるため、大容量のデータをより高速に転送することが可能となり、一定時間内の転送データ量を保証する転送モード等に好適に適用できる。
【００３６】
一方、第２のリアルタイム転送モードでは、バッファ制御回路３２は、ＷＲバッファ有効フラグ３３、中間バッファ有効フラグ３４、ＲＤバッファ有効フラグ３５のすべてがオン状態である場合、中間バッファ有効フラグをオフ状態に変更する。即ち、すべての物理バッファが未参照状態である場合、中間バッファを強制的に上書き許可状態に変更する最新データ優先制御を行う。
【００３７】
この第２のリアルタイム転送モードによれば、バッファ切り替え待ちとなる特定の状態の継続を所定の時間で打ち切ることができるため、大容量のデータをより高速に、しかも、最も新しく書き込まれたデータを優先して転送することが可能となる。
【００３８】
また、高信頼性転送モードでは、バッファ制御回路３２は、データの読み出しが終了したタイミングではなく、データ参照部４０から受信完了通知（ＡＣＫ）を受け取ってからＲＤバッファ有効フラグ３５をオフ状態に変更するものとし、受信完了通知（ＡＣＫ）を所定時間受け取らなかった場合は、再送するデータ保証優先制御を行う。
【００３９】
この高信頼性転送モードによれば、上述したバッファ切り替え制御による作用効果に加えて、データ保証を優先するデータ転送が可能となる。
【００４０】
以上のとおり、データ転送方式選択レジスタ３６を具備する本実施形態によれば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）の各転送モードをサポートできる構成が得られることになる。
【００４１】
［第３の実施形態］
続いて、本発明の第３の実施形態について説明する。図６は、本発明の第３の実施形態に係るデータ転送制御装置の構成を表したブロック図である。以下、上記第１の実施形態で既に説明した事項は省略し、その相違する部分を説明する。
【００４２】
図６を参照すると、このデータ転送制御装置２０は、上記した第１の実施形態に係るデータ転送制御装置に、更に、ダブル／トリプル選択レジスタ３７を追加した構成となっている。
【００４３】
そして、本実施の形態に係るバッファ制御回路３２は、ダブル／トリプル選択レジスタ３７の値に応じて、３つの物理バッファ２２−１〜２２−３を用いるトリプルバッファモードと、図７に示す２つの物理バッファ２２−４、２２−５からなるダブルバッファモードとを選択可能とする。
【００４４】
図８はダブルバッファモードにおける状態遷移図であり、同図中「ＷＲ」は書き込みバッファ、「ＲＤ」は読み出しバッファを表している。図８に示したとおり、ダブルバッファモードでは、中間バッファは存在しないため、書き込みバッファ（ＷＲバッファ）と読み出しバッファ（ＲＤバッファ）を切り替えるＲＤ−ＷＲ切替信号１のみ送出されるようにすればよい。ここで、例えば、上述（図３）の条件判定式２及び３にトリプルバッファモードであるとの条件を加え、ダブルバッファモードで切替信号２及び３が発生しないようにする、或いは、ダブルバッファモードでは切替信号２及び３をマスクする等の変更をすることにより、中間バッファを切り替え対象とする切り替えを抑止することができる。このようにすることで、ダブルバッファモードではＲＤ−ＷＲ切替信号１によりＳｔａｔｅ１とＳｔａｔｅ２との間だけで遷移が行われることになるので、トリプルバッファモードにおけるバッファ切り替えアルゴリズムとダブルバッファモードにおけるバッファ切り替えアルゴリズム、即ち、判定回路を共用することができる。
【００４５】
以上のとおり、ダブル／トリプル選択レジスタ３７を具備し、バッファ構成を変更可能とする本実施形態によれば、データ提供側とデータ参照側の速度差が無い場合などにその資源を有効に活用することができ、また、アルゴリズム自体はそのまま適用可能であるため、バッファ構成の違いに対応させるべくファームウェア等に修正を加える必要もなく、追加のコストや回路規模の増大も抑えることが可能となる。
【００４６】
以上、本発明の好適な実施の形態を説明したが、本発明の技術的範囲は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲で、各種の変形・置換をなしうることが可能であることはいうまでもない。例えば図９に示した如く、データ転送方式選択レジスタ３６とダブル／トリプル選択レジスタ３７を併有する構成であれば、上記したそれぞれの作用効果を得られることはもちろんである。
【００４７】
また、上記した各特徴を有する本発明は、先に触れたＵＳＢのほか、ＩＥＥＥ１３９４、Ｅｔｈｅｒｎｅｔ（登録商標）等のパケット単位で転送を行うプロトコルでデータ転送を行う各種デバイスのコントローラや、画像処理装置にも等しく適用可能である。
【図面の簡単な説明】
【００４８】
【図１】本発明の第１の実施形態に係るデータ転送制御装置の構成を表したブロック図である。
【図２】バッファの切り替え条件（切り替え前後の各バッファの状態）と、切替対象バッファの関係を表した図である。
【図３】本発明の第１の実施形態に係るデータ転送制御装置のバッファ切り替えアルゴリズムを説明するためのフローチャートである。
【図４】本発明の第１の実施形態における物理バッファの状態遷移図である。
【図５】本発明の第２の実施形態に係るデータ転送制御装置の構成を表したブロック図である。
【図６】本発明の第３の実施形態に係るデータ転送制御装置の構成を表したブロック図である。
【図７】本発明の第３の実施形態に係るデータ転送制御装置の構成を表した別のブロック図である。
【図８】本発明の第３の実施形態におけるダブルバッファ制御時の物理バッファの状態遷移図である。
【図９】本発明に係るデータ転送制御装置の別の構成例を表したブロック図である。
【図１０】従来のデータバッファリング装置の構成を表したブロック図である。
【図１１】図１０のデータバッファリング装置のバッファのバッファ切り替えアルゴリズムを表したフローチャートである。
【符号の説明】
【００４９】
１０  データ提供部
２０  データ転送制御装置
２１  ＷＲバッファセレクタ（書き込み用バッファセレクタ）
２２、２２−１、２２−２、２２−３、２２−４、２２−５  物理バッファ
２３  ＲＤバッファセレクタ（読み出し用バッファセレクタ）
３０  バッファ制御装置
３１  バッファ情報レジスタ
３２  バッファ制御回路
３３  ＷＲバッファ有効フラグ
３４  中間バッファ有効フラグ
３５  ＲＤバッファ有効フラグ
３６  データ転送方式選択レジスタ
３７  ダブル／トリプル選択レジスタ
４０  データ参照部
【図１】
2006236114.tif 000003
【図２】
2006236114.tif 000004
【図３】
2006236114.tif 000005
【図４】
2006236114.tif 000006
【図５】
2006236114.tif 000007
【図６】
2006236114.tif 000008
【図７】
2006236114.tif 000009
【図８】
2006236114.tif 000010
【図９】
2006236114.tif 000011
【図１０】
2006236114.tif 000012
【図１１】
2006236114.tif 000013