(57)【特許請求の範囲】
【請求項１】
データを生成する生成処理部と生成されたデータを転送する転送処理部とがＣＰＵを共用するデータ処理装置におけるデータ転送制御方法であって、
前記生成処理部によるデータ生成処理時間に基づいて前記生成処理における前記ＣＰＵの必要度を判定する第１判定工程と、
前記転送処理部による第１データブロックの転送に要した転送時間を判定する第２判定工程と、
前記第１判定工程及び前記第２判定工程における判定結果に基づいて、前記第１データブロックの転送以降に前記転送処理部が前記ＣＰＵを開放する時間を設定する設定工程とを有し、
前記設定工程は、前記生成処理における前記ＣＰＵの必要度が低くなると、前記ＣＰＵを開放する時間を設定ために用いる第１の所定値を下限値より小さくならない範囲内で前回よりも小さな値に変更し、前記生成処理における前記ＣＰＵの必要度が高まると、前記第１の所定値を上限値より大きくならない範囲内で前回よりも大きな値に変更し、さらに、前記第１データブロックの転送に要した転送時間が所定時間よりも長い場合よりも、前記第１データブロックの転送に要した転送時間が所定時間よりも短い場合に、前記ＣＰＵを開放する時間が短くなるように、前記変更後の第１の所定値を修正して第２の所定値とし、該第２の所定値を前記転送処理部が前記ＣＰＵを開放する時間に設定することを特徴とするデータ転送制御方法。
【請求項２】
前記第１判定工程では、前記ＣＰＵの必要度が当該第１判定工程による以前の判定よりも高まったか否かを判定することを特徴とする請求項１記載のデータ転送制御方法。
【請求項３】
前記生成処理部から前記転送処理部に対する転送要求の時間間隔を測定する時間間隔測定工程を有し、前記生成処理部によるデータ生成処理時間は前記時間間隔測定工程において測定した時間間隔に基づき、前記第１判定工程では、前記時間間隔測定工程において測定した時間間隔が長くなった場合に、前記ＣＰＵの必要度が高まったと判定することを特徴とする請求項２記載のデータ転送制御方法。
【請求項４】
前記設定工程では、前記第１データブロックの転送に要した転送時間が所定時間よりも長い場合は、前記第２判定工程において判定した転送時間が予め定めた最小値との差が第３の所定値以下と判別された場合に、前記第２判定工程において判定した転送時間が予め定めた最小値との差が前記第３の所定値を超える場合よりも、前記ＣＰＵを開放する時間が短くなるように、前記変更後の第１の所定値を修正して第２の所定値とし、該第２の所定値を前記転送処理部が前記ＣＰＵを開放する時間に設定することを特徴とする請求項１記載のデータ転送制御方法。
【請求項５】
データを生成する生成処理部と生成されたデータを転送する転送処理部とがＣＰＵを共用するデータ処理装置であって、
前記生成処理部によるデータ生成処理時間に基づいて前記生成処理部における前記ＣＰＵの必要度を判定する第１判定手段と、
前記転送処理部による第１データブロックの転送に要した転送時間を判定する第２判定手段と、
前記第１判定手段及び前記第２判定手段による判定結果に基づいて、前記第１データブロックの転送以降に前記転送処理部が前記ＣＰＵを開放する時間を設定する設定手段とを有し、
前記設定手段は、前記生成処理における前記ＣＰＵの必要度が低くなると、前記ＣＰＵを開放する時間を設定ために用いる第１の所定値を下限値より小さくならない範囲内で前回よりも小さな値に変更し、前記生成処理における前記ＣＰＵの必要度が高まると、前記第１の所定値を上限値より大きくならない範囲内で前回よりも大きな値に変更し、さらに、前記第１データブロックの転送に要した転送時間が所定時間よりも長い場合よりも、前記第１データブロックの転送に要した転送時間が所定時間よりも短い場合に、前記ＣＰＵを開放する時間が短くなるように、前記変更後の第１の所定値を修正して第２の所定値とし、該第２の所定値を前記転送処理部が前記ＣＰＵを開放する時間に設定することを特徴とするデータ処理装置。
【請求項６】
データを生成する生成処理部と生成されたデータを転送する転送処理部とがＣＰＵを共用するデータ処理装置におけるデータ転送を制御する制御プログラムを格納した記憶媒体であって、前記制御プログラムは、
前記生成処理部によるデータ生成処理時間に基づいて前記生成処理部における前記ＣＰＵの必要度を判定する判定工程と、
前記転送処理部による第１データブロックの転送に要した転送時間を判定する第２判定工程と、
前記第１判定工程及び前記第２判定工程における判定結果に基づいて、前記第１データブロックの転送以降に前記転送処理部が前記ＣＰＵを開放する時間を設定する設定工程とを有し、
前記設定工程は、前記生成処理における前記ＣＰＵの必要度が低くなると、前記ＣＰＵを開放する時間を設定ために用いる第１の所定値を下限値より小さくならない範囲内で前回よりも小さな値に変更し、前記生成処理における前記ＣＰＵの必要度が高まると、前記第１の所定値を上限値より大きくならない範囲内で前回よりも大きな値に変更し、さらに、前記第１データブロックの転送に要した転送時間が所定時間よりも長い場合よりも、前記第１データブロックの転送に要した転送時間が所定時間よりも短い場合に、前記ＣＰＵを開放する時間が短くなるように、前記変更後の第１の所定値を修正して第２の所定値とし、該第２の所定値を前記転送処理部が前記ＣＰＵを開放する時間に設定することを特徴とする記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、上位のデータ生成処理部と下位のデータ転送処理部とを有する上位のデータ処理装置である例えばホストコンピュータと、下位のデータ処理装置である例えばプリンタとの間で行われるデータ転送動作を制御するデータ転送制御方法及びデータ処理装置並びに記憶媒体に関する。
【０００２】
【従来の技術】
従来、マルチタスク環境下においては、プリンタへのデータ転送はプリンタドライバの１つの役割であった。プリンタドライバは幾つかの役割を担っており、データ転送もその中の一つである。また、プリンタドライバの別の役割としては、アプリケーションから渡されてくる描画命令に基づいてメモリ中に描画処理を行ってＲＧＢビットマップデータを生成したり、その描画されたＲＧＢデータに色変換処理を加えてプリンタの色再現特性に適したＣＭＹＫデータに変換したり、更には、プリンタで再現できる階調に制限がある場合には、このＣＭＹＫデータにハーフトーニング処理を施すこと等が挙げられる。そして、これらプリンタドライバに課せられた役割は、マルチタスク環境下において、個々のタスクが並列に単一のＣＰＵ（中央演算処理装置）をシェアしながら実行されているが、プリンタドライバの一連の処理は描画処理、色変換処理、ハーフトーニング処理、そして、データ転送処理といった具合に、シリーズに行われているのが一般的である。そして、プリンタドライバを構成するこれら複数のタスクが並列に処理しながらも、恰もバケツリレーの如く同期し合って処理進行できることが、プリンタドライバの処理スピード、ひいてはトータル的な印刷時間を決定付ける大事な要素となっている。
【０００３】
【発明が解決しようとする課題】
しかしながら、上述した従来例にあっては、データ転送処理部は要求されたバイト数のデータをプリンタへ転送するまで、プリンタとのハンドシェークを続けなければならないことから、Ｉ／Ｏポートを監視、制御するためにＣＰＵを独占する時間が増えてしまう。
【０００４】
そして、このデータ転送処理部がＣＰＵを独占する時間は、プリンタのデータ受信能力、例えばプリンタに搭載されている受信バッファサイズや同じくプリンタに搭載されているプロセッサの処理能力等に大きく依存し、プリンタがデータを受信できない状態においては、プリンタからビジー信号が発せられてデータ転送処理部がウェイト（待機）させられてしまうのが実情である。従って、データ受信能力の低いプリンタに対してデータ転送を行う場合、受信能力の高いプリンタと比較すると、データ転送処理部で要する時間は圧倒的に増加するため、他のタスクの処理進行が遅れてしまうといった問題点があった。このように他のタスクの処理進行が遅れた結果、転送すべきデータ生成処理が追いつかずにトータル的な印刷時間が増加したり、インクジェットタイプのシリアルプリンタの場合には、印刷走査の間にウェイト（待機）時間が発生して乾燥を招くことから、スジムラ等の画質劣化が伴うといった問題点があった。
【０００５】
本発明は上述した従来の技術の有するこのような問題点に鑑みてなされたものであり、その第１の目的とするところは、データ生成処理とデータの転送処理に要した時間に応じてデータ転送処理部が必要以上にＣＰＵを独占することなくスリープ時間を設定できるデータ転送制御方法及びデータ処理装置並びに記憶媒体を提供しようとすることである。
【０００６】
また、本発明の第２の目的とするところは、上述したような本発明のデータ転送制御装置を円滑に制御することができる制御プログラムを格納した記憶媒体を提供しようとするものである。
【０００７】
【課題を解決するための手段】
上記第１の目的を達成するために請求項１記載のデータ転送制御方法は、データを生成する生成処理部と生成されたデータを転送する転送処理部とがＣＰＵを共用するデータ処理装置におけるデータ転送制御方法であって、前記生成処理部によるデータ生成処理時間に基づいて前記生成処理における前記ＣＰＵの必要度を判定する第１判定工程と、前記転送処理部による第１データブロックの転送に要した転送時間を判定する第２判定工程と、前記第１判定工程及び前記第２判定工程における判定結果に基づいて、前記第１データブロックの転送以降に前記転送処理部が前記ＣＰＵを開放する時間を設定する設定工程とを有し、前記設定工程は、前記生成処理における前記ＣＰＵの必要度が低くなると、前記ＣＰＵを開放する時間を設定ために用いる第１の所定値を下限値より小さくならない範囲内で前回よりも小さな値に変更し、前記生成処理における前記ＣＰＵの必要度が高まると、前記第１の所定値を上限値より大きくならない範囲内で前回よりも大きな値に変更し、さらに、前記第１データブロックの転送に要した転送時間が所定時間よりも長い場合よりも、前記第１データブロックの転送に要した転送時間が所定時間よりも短い場合に、前記ＣＰＵを開放する時間が短くなるように、前記変更後の第１の所定値を修正して第２の所定値とし、該第２の所定値を前記転送処理部が前記ＣＰＵを開放する時間に設定することを特徴とする。
【０００８】
また、上記第１の目的を達成するために請求項６記載のデータ処理装置は、データを生成する生成処理部と生成されたデータを転送する転送処理部とがＣＰＵを共用するデータ処理装置であって、前記生成処理部によるデータ生成処理時間に基づいて前記生成処理部における前記ＣＰＵの必要度を判定する第１判定手段と、前記転送処理部による第１データブロックの転送に要した転送時間を判定する第２判定手段と、前記第１判定手段及び前記第２判定手段による判定結果に基づいて、前記第１データブロックの転送以降に前記転送処理部が前記ＣＰＵを開放する時間を設定する設定手段とを有し、前記設定手段は、前記生成処理における前記ＣＰＵの必要度が低くなると、前記ＣＰＵを開放する時間を設定ために用いる第１の所定値を下限値より小さくならない範囲内で前回よりも小さな値に変更し、前記生成処理における前記ＣＰＵの必要度が高まると、前記第１の所定値を上限値より大きくならない範囲内で前回よりも大きな値に変更し、さらに、前記第１データブロックの転送に要した転送時間が所定時間よりも長い場合よりも、前記第１データブロックの転送に要した転送時間が所定時間よりも短い場合に、前記ＣＰＵを開放する時間が短くなるように、前記変更後の第１の所定値を修正して第２の所定値とし、該第２の所定値を前記転送処理部が前記ＣＰＵを開放する時間に設定することを特徴とする。
【０００９】
また、上記第２の目的を達成するために請求項７記載の記憶媒体は、データを生成する生成処理部と生成されたデータを転送する転送処理部とがＣＰＵを共用するデータ処理装置におけるデータ転送を制御する制御プログラムを格納した記憶媒体であって、前記制御プログラムは、前記生成処理部によるデータ生成処理時間に基づいて前記生成処理部における前記ＣＰＵの必要度を判定する判定工程と、前記転送処理部による第１データブロックの転送に要した転送時間を判定する第２判定工程と、前記第１判定工程及び前記第２判定工程における判定結果に基づいて、前記第１データブロックの転送以降に前記転送処理部が前記ＣＰＵを開放する時間を設定する設定工程とを有し、前記設定工程は、前記生成処理における前記ＣＰＵの必要度が低くなると、前記ＣＰＵを開放する時間を設定ために用いる第１の所定値を下限値より小さくならない範囲内で前回よりも小さな値に変更し、前記生成処理における前記ＣＰＵの必要度が高まると、前記第１の所定値を上限値より大きくならない範囲内で前回よりも大きな値に変更し、さらに、前記第１データブロックの転送に要した転送時間が所定時間よりも長い場合よりも、前記第１データブロックの転送に要した転送時間が所定時間よりも短い場合に、前記ＣＰＵを開放する時間が短くなるように、前記変更後の第１の所定値を修正して第２の所定値とし、該第２の所定値を前記転送処理部が前記ＣＰＵを開放する時間に設定することを特徴とする。
【００３１】
【発明の実施の形態】
以下、本発明の一実施の形態を図面に基づき説明する。
【００３２】
図１は、本発明の一実施の形態に係るデータ転送制御装置の構成を示すブロック図であり、同図において、１はホストコンピュータ（上位のデータ処理装置）で、アプリケーション２、描画処理部（上位のデータ生成処理部）３、色変換処理部（上位のデータ生成処理部）４、ハーフトーニング処理部（上位のデータ生成処理部）５、データ転送制御部６、データ転送処理部（下位のデータ転送処理部）７、インタフェース制御部８、前回データ転送要求時刻記憶部９、前回指定スリープ時間記憶部１０、前回データ転送要求間隔時間記憶部１１及び最小転送μｓｅｃ／ｂｙｔｅ時間記憶部１２を有している。
【００３３】
アプリケーション２は、作画環境を提供し、印刷開始を下位の処理部に命令するものである。描画処理部３は、アプリケーション２で作画された図柄情報をメモリ中にＲＧＢビットマップ多値データで描画展開するものである。色変換処理部４は、描画処理部３で描画展開されたＲＧＢビットマップ多値データを接続されている後述するプリンタの色再現特性に応じてＣＭＹＫ多値データに変換するものである。ハーフトーニング処理部５は、前記プリンタで再現できる階調に制限がある場合に、この色変換処理部４で変換されたＣＭＹＫ多値データを前記プリンタの階調数に合わせるものである。データ転送制御部６は、前記プリンタの階調と合ったＣＭＹＫ多値データのデータ転送要求を受け付け、データ転送要求間隔時間を記憶及び比較しながら、データ転送処理部７を呼び出すものである。データ転送処理部７は、データ転送制御部６の記憶領域として使用する前回データ転送要求間隔時間記憶部９と前回指定スリープ時間記憶部１０と前回データ転送要求間隔時間記憶部１１、データ転送制御部６から呼び出されて１バイト当たりの転送所要時間からスリープ時間を算出し、該算出したスリープ時間だけスリープしながら、インタフェース処理部８を通じてデータ転送処理を実行するものである。インタフェース制御部８は、外部インタフェースであるセントロニクスパラレルインタフェース１７へＩ／Ｏポートを通じてデータの書き込み及び読み込みを実際に行うものである。前回データ転送要求時刻記憶部９は、データ転送制御部６の記憶領域として使用するもので、前回データ転送要求時刻が記憶される。前回指定スリープ時間記憶部１０は、データ転送制御部６の記憶領域として使用するもので、前回指定スリープ時間が記憶される。前回データ転送要求間隔時間記憶部１１は、データ転送制御部６の記憶領域として使用するもので、前回データ転送要求間隔時間が記憶される。最小転送μｓｅｃ／ｂｙｔｅ時間記憶部１０は、データ転送制御部６の記憶領域として使用するもので、最小転送μｓｅｃ／ｂｙｔｅ時間が記憶される。
【００３４】
また、図１において、１３はプリンタ（下位のデータ処理装置）で、セントロニクスパラレルインタフェース１７を介してホストコンピュータ１と接続されている。プリンタ１３は、インタフェース制御部１４、印刷制御部１５及び受信バッファＲＡＭ（ランダムアクセスメモリ）１６を有している。
【００３５】
インタフェース制御部１４は、ホストコンピュータ１と接続するための外部インタフェースであるセントロニクスパラレルインタフェース１７を通じてデータの書き込み及び読み込みを実際に行い、受信バッファＲＡＭ１６がフルになった等のデータ受信が即座に実行できない状況においては、外部インタフェースへビジー信号を発行する役割を担うものである。印刷制御部１５は、印刷処理を実際に行うものである。受信バッファＲＡＭ１６は、インタフェース制御部１４が受信したデータを一旦保存するものである。
【００３６】
尚、本実施の形態では、外部インタフェースとしてセントロニクスパラレルインタフェース１７を引用したが、これに限られるものではなく、ＳＣＳＩインタフェース等の他のインタフェースであっても構わない。
【００３７】
次に、ホストコンピュータ１上で動作するデータ転送制御部６の動作を、図２及び図３のフローチャートを用いて説明する。
【００３８】
図２において、データ転送制御部６は、まず、ステップＳ２０１で上位からのデータ転送要求を受け付ける。このデータ転送要求は、一般的に何バイトのデータをどのアドレスから転送せよという命令となっている。次に、ステップＳ２０２で現在時刻を取得して、この現在時刻から前回データ転送要求時刻記憶部９に記憶されている前回データ転送要求時刻を減算して、前回から今回のデータ転送要求までに経過した時間である今回データ転送要求間隔時間Ｔｃｉを算出する（今回データ転送要求間隔時間Ｔｃｉ＝現在時刻−前回データ転送要求時刻）。次に、ステップＳ２０３で前回のデータ転送要求受け付け時に前回のステップＳ２１３で記憶しておいた前回データ転送要求間隔時間Ｔｐｉを前回データ転送要求間隔時間記憶部１１からロード（読み出し）する。
【００３９】
次に、ステップＳ２０４で今回データ転送要求間隔時間Ｔｃｉが前回データ転送要求間隔時間Ｔｐｉよりも大きい（Ｔｃｉ＞Ｔｐｉ）か否かを判断する。そして、ＴｃｉがＴｐｉよりも大きい場合には、上位の描画処理部３、色変換処理部４及びハーフトーニング処理部５の処理量が前回よりも増加してＣＰＵ時間をより必要としている状況にあると判断してステップＳ２０５へ進む。また、ＴｃｉがＴｐｉと等しい若しくは小さい場合には、上位の描画処理部３、色変換処理部４及びハーフトーニング処理部５の処理量が前回よりも減少してＣＰＵ時間をより必要としていない状況にあると判断してステップＳ２０７へ進む。
【００４０】
ステップＳ２０５では前回指定スリープ時間記憶部１０から前回指定スリープ時間Ｔｓ'をロード（読み出し）し、任意に定めた指定スリープ時間の上限値Ｔｓ-maxよりも小さい（Ｔｓ'＜Ｔｓ-max）か否かを判断する。Ｔｓ-maxは固定値として一意に定めても良いし、ＣＰＵの処理能力に応じてホストコンピュータ毎にプログラム上で動的に決定しても良い。
【００４１】
前記ステップＳ２０５においてＴｓ'がＴｓ-maxよりも小さい場合にはステップＳ２０６へ進み、また、Ｔｓ'がＴｓ-maxと等しい若しくは大きい場合にはこれ以上指定スリープ時間を大きくしないために図３のステップＳ２０９へ進む。
【００４２】
ステップＳ２０６では、前回指定スリープ時間Ｔｓ'に任意量の時間Ｔ１を加算して今回指定スリープ時間Ｔｓ（Ｔｓ＝Ｔｓ'＋Ｔ１）を求めた後、図３のステップＳ２１０へ進む。Ｔ１は固定値として一意に定めても良いし、ＣＰＵの処理能力に応じてホストコンピュータ毎にプログラム上で動的に決定しても良い。
【００４３】
ステップＳ２０７では、前回指定スリープ時間Ｔｓ'が任意に定めた指定スリープ時間の下限値Ｔｓ-minよりも大きい（Ｔｓ'＞Ｔｓ-min）か否かを判断する。Ｔｓ-minは固定値として一意に定めても良いし、ＣＰＵの処理能力に応じてホストコンピュータ毎にプログラム上で動的に決定しても良い。
【００４４】
前記ステップＳ２０７においてＴｓ'がＴｓ-minよりも大きい場合にはステップＳ２０８へ進み、また、Ｔｓ'がＴｓ-minと等しい若しくは小さい場合にはこれ以上指定スリープ時間を小さくしないために図３のステップＳ２０９へ進む。
【００４５】
ステップＳ２０８では、前回指定スリープ時間Ｔｓ'から任意量の時間Ｔ１を減算して今回指定スリープ時間Ｔｓ（Ｔｓ＝Ｔｓ'−Ｔ１）を求めた後、図３のステップＳ２１０へ進む。Ｔ１は固定値として一意に定めても良いし、ＣＰＵの処理能力に応じてホストコンピュータ毎にプログラム上で動的に決定しても良い。
【００４６】
図３において、ステップＳ２０９では、前回指定スリープ時間Ｔｓ'を今回指定スリープ時間Ｔｓに代入する（Ｔｓ＝Ｔｓ'）。
【００４７】
ステップＳ２１０では、前記求めた今回指定スリープ時間Ｔｓを下位のデータ転送処理部７へ伝える。この伝達はアプリケーション間通信を用いて行うのが一般的であるが、特に手段は限定しない。
【００４８】
次に、ステップＳ２１１へ進んで、前記図２のステップＳ２０１において受け付けたデータ転送要求に基づいてデータ転送処理部７を呼び出して、データ転送を実行する。次に、ステップＳ２１２で次回のデータ転送受け付け時に備えて、今回指定スリープ時間Ｔｓを前回指定スリープ時間Ｔｓ'として、前回指定スリープ時間記憶部１０に記憶する。次に、ステップＳ２１３で次回のデータ転送受け付け時に備えて、今回データ転送要求間隔時間Ｔｃｉを前回データ転送要求間隔時間Ｔｐｉとして、前回データ転送要求間隔時間記憶部１１に記憶する。次に、ステップＳ２１４で次回のデータ転送受け付け時に備えて現在時刻を取得し、該取得した現在時刻を前回データ転送要求時刻として、前回データ転送要求時刻記憶部９に記憶する。
【００４９】
以降、次回のデータ転送受け付け時には、図２のステップＳ２０１から上述した手順を繰り返すことにより、上位処理部がＣＰＵ時間を現在どの程度必要としているかを考慮しながらデータ転送処理時のスリープ時間を決定することができる。
【００５０】
次に、ホストコンピュータ１上で動作するデータ転送処理部７の動作を、図４のフローチャートを用いて説明する。
【００５１】
まず、ステップＳ３０１で前記図３のステップＳ２１０において指定された今回指定スリープ時間Ｔｓが指定される。次に、ステップＳ３０２で現在時刻を取得して、該取得した現在時刻をデータ転送開始時刻として記憶しておく。次に、ステップＳ３０３でインタフェース制御部８を通じてデータ転送制御部６から指定されたＭバイトをＩ／Ｏポートへ書き込むためのデータ書き込み処理を実行する。次に、ステップＳ３０４で再度現在時刻を取得し、該取得した現在時刻から前記ステップＳ３０２において取得したデータ転送開始時刻を減算して、前記ステップＳ３０３において要したデータ転送所要時間を算出する（データ転送所要時間＝現在時刻−データ転送開始時刻）。
【００５２】
次に、ステップＳ３０５で前記ステップＳ３０４において求めたデータ転送所要時間を実際に書き込むことのできるバイト数Ｍで割り、１バイト当たりの転送に要した転送μｓｅｃ／ｂｙｔｅ時間Ｔｅを算出する（転送μｓｅｃ／ｂｙｔｅ時間Ｔｅ＝データ転送所要時間÷Ｍ）。次に、ステップＳ３０６で前記ステップＳ３０５において求めた転送μｓｅｃ／ｂｙｔｅ時間Ｔｅが任意に定めた最小転送μｓｅｃ／ｂｙｔｅ時間Ｔｅ-minと等しい若しくは小さい（転送μｓｅｃ／ｂｙｔｅ時間Ｔｅ≦最小転送μｓｅｃ／ｂｙｔｅ時間Ｔｅ-min）か否かを判断する。
【００５３】
最小転送μｓｅｃ／ｂｙｔｅ時間Ｔｅ-minを定める方法は、一般的なセントロニクスインタフェースの１バイト当たりの転送所要時間を用いても良いし、オンザフライで求めた１バイト当たりの転送所要時間の平均値でも良い。本実施の形態では、オンザフライで求めた１バイト当たりの転送所要時間の最小値を使った例で以降説明する。
【００５４】
前記ステップＳ３０６においてＴｅがＴｅ-minと等しい若しくは小さい場合にはステップＳ３０７へ、また、ＴｅがＴｅ-minより大きい場合にはステップＳ３０９へそれぞれ進む。
【００５５】
ステップＳ３０７では、前記ステップＳ３０１において指定された今回指定スリープ時間Ｔｓの１／３をスリープ時間Ｔｃｓに代入する（スリープ時間Ｔｃｓ＝今回指定スリープ時間Ｔｓ÷３）。次に、ステップＳ３０８で次回のデータ転送要求に備えて今回の転送μｓｅｃ／ｂｙｔｅ時間Ｔｅを最小転送μｓｅｃ／ｂｙｔｅ時間Ｔｅ-minとして（最小転送μｓｅｃ／ｂｙｔｅ時間Ｔｅ-min＝転送μｓｅｃ／ｂｙｔｅ時間Ｔｅ）、最小転送μｓｅｃ／ｂｙｔｅ時間記憶部１２に記憶した後、ステップＳ３１２へ進む。
【００５６】
ステップＳ３０９では、前記ステップＳ３０５において求めた転送μｓｅｃ／ｂｙｔｅ時間Ｔｅが任意に定めた最小転送μｓｅｃ／ｂｙｔｅ時間Ｔｅ-min＋５０と等しい若しくは小さい「転送μｓｅｃ／ｂｙｔｅ時間Ｔｅ≦（最小転送μｓｅｃ／ｂｙｔｅ時間Ｔｅ-min＋５０）」か否かを判断する。本実施の形態では、比較対象値をＴｅ-minに５０を加算した値を第２の比較値としたが、これは本実施の形態のように固定値として定めても良いし、プログラム上で動的に定めても良い。
【００５７】
前記ステップＳ３０９においてＴｅがＴｅ-min＋５０と等しい若しくは小さい場合にはステップＳ３１０へ、また、ＴｅがＴｅ-min＋５０より大きい場合にはステップＳ３１１へそれぞれ進む。
【００５８】
ステップＳ３１０では、前記ステップＳ３０１において指定された今回指定スリープ時間Ｔｓの２／３をスリープ時間Ｔｃｓに代入「スリープ時間Ｔｃｓ＝（今回指定スリープ時間Ｔｓ×２）÷３」した後、ステップＳ３１２へ進む。
【００５９】
ステップＳ３１１では、前記ステップＳ３０１において指定された今回指定スリープ時間Ｔｓをスリープ時間Ｔｃｓに代入「スリープ時間Ｔｃｓ＝今回指定スリープ時間Ｔｓ）した後、ステップＳ３１２へ進む。
【００６０】
ステップＳ３１２では、上記手順に従って決定されたスリープ時間Ｔｃｓだけスリープし、このスリープ時間だけＣＰＵ時間を上位の処理部に開放することで、他のタスクの処理を先行させることが可能となる。前記ステップＳ３１２の処理が終了した後は、本処理動作を終了する。
【００６１】
上記実施の形態では、転送μｓｅｃ／ｂｙｔｅ時間Ｔｅを図４のステップＳ３０６において最小転送μｓｅｃ／ｂｙｔｅ時間Ｔｅ-min、ステップＳ３０９において最小転送μｓｅｃ／ｂｙｔｅ時間Ｔｅ-min＋５０と比較する例で説明したが、この比較の回数は、上記実施の形態の例に限定されるものではない。例えば、Ｎ回比較を行う場合、ステップＳ３０７では、「スリープ時間Ｔｃｓ＝今回指定スリープ時間Ｔｓ÷Ｎ」となり、ステップＳ３１０では、「スリープ時間Ｔｃｓ＝（今回指定スリープ時間Ｔｓ×２）÷Ｎ」となる。
【００６２】
当然、前記ステップＳ３０６及びステップＳ３０９のような比較操作は（Ｎ−１）回繰り返されることとなる。
【００６４】
【発明の効果】
以上詳述したように本発明によれば、データの生成処理におけるＣＰＵの必要度と実際のデータ転送時間とに応じて動的にデータを転送する転送処理部がＣＰＵを開放する時間を調節するので、他のタスクの処理進行の妨げを低減するこができるという作用、効果を奏する。
【００６５】
また、本発明によれば、他のタスクの処理進行が遅れずに、しかもデータ転送が必要十分に行われるため、例えばシリアルプリンタのプリンタドライバに適用した場合には、印刷走査間にウェイト（待機）時間が発生して乾燥を招くということがなく、スジムラ等の画質劣化を生じることがないという効果を奏する。
【図面の簡単な説明】
【図１】  本発明の一実施の形態に係るデータ転送制御装置の構成を示すブロック図である。
【図２】  本発明の一実施の形態に係るデータ転送制御装置におけるデータ転送制御部の動作の流れを示すフローチャートである。
【図３】  本発明の一実施の形態に係るデータ転送制御装置におけるデータ転送制御部の動作の流れを示すフローチャートである。
【図４】  本発明の一実施の形態に係るデータ転送制御装置におけるデータ転送処理部の動作の流れを示すフローチャートである。
【符号の説明】
１    ホストコンピュータ
２    アプリケーション
３    描画処理部
４    色変換処理部
５    ハーフトーニング処理部
６    データ転送制御部
７    データ転送処理部
８    インタフェース処理部
９    前回データ転送要求時刻記憶部
１０  前回指定スリープ時間記憶部
１１  前回データ転送要求間隔時間記憶部
１２  最小転送μｓｅｃ／ｂｙｔｅ時間記憶部
１３  プリンタ
１４  インタフェース制御部
１５  印刷制御部
１６  受信バッファＲＡＭ（ランダムアクセスメモリ）
【図１】
0004463892.tif 000002
【図２】
0004463892.tif 000003
【図３】
0004463892.tif 000004
【図４】
0004463892.tif 000005