(57)【特許請求の範囲】
【請求項１】
所定の形態の印刷を実行させるための印刷データを印刷装置へ周期的に転送する際にバッファリングを行うコンピュータ装置において実行される方法であって、
印刷要求に基づく最初の周期の印刷データを前記印刷装置が印刷を開始するうえで最低限必要なバッファサイズでバッファリングし、当該周期の印刷データについての転送レートに応じて次周期の印刷データのバッファサイズを動的に変更するとともに、印刷開始後に生成された印刷データのバッファサイズの合計値が所定値に達した時点で、以後の周期の印刷データのバッファサイズを最も効率の良い転送が可能な最大サイズに近づけることを特徴とする、データ転送方法。
【請求項２】
前記最大サイズに近づけた後の転送レートの変動が収束するまで、前周期の転送レートに応じて次周期の印刷データのバッファサイズを動的に変更することを特徴とする、
請求項１記載のデータ転送方法。
【請求項３】
前記バッファサイズの合計値は、前記印刷装置の印刷休止時間を抑制する値であることを特徴とする、請求項１記載のデータ転送方法。
【請求項４】
印刷開始時に前記バッファリング用のメモリサイズを検出し、この検出値に基づいて前記最大サイズを決定することを特徴とする、
請求項１記載のデータ転送方法。
【請求項５】
前記コンピュータ装置から前記印刷装置への印刷データの転送を、ＵＳＢまたはＩＥＥＥ標準１３９４−１９９５準拠のシリアルインタフェースを含む高速シリアルインタフェースにより行うことを特徴とする、
請求項１、２または３記載のデータ転送方法。
【請求項６】
印刷装置に所定の形態の印刷を実行させるための印刷データを作成する印刷データ作成手段と、
作成された印刷データをバッファリングしながら前記印刷装置へ周期的に転送するとともに各周期の転送レートを検出し、前記印刷装置及び前記印刷データ作成手段の休止時間を抑制するように、前周期の転送レートに応じて次周期の印刷データのバッファサイズを動的に変更する制御手段とを備え、
前記制御手段は、印刷要求に基づく最初の周期の印刷データを前記印刷装置が印刷を開始するうえで最低限必要なバッファサイズでバッファリングし、当該周期の印刷データについての転送レートに応じて次周期の印刷データのバッファサイズを動的に変更するとともに、前記最初の周期からの印刷データのバッファサイズの合計値が所定値に達した時点で、以後の周期の印刷データのバッファサイズを最も効率の良い転送が可能な最大サイズに近づけるように構成されていることを特徴とする印刷制御装置。
【請求項７】
前記制御手段は、前記最大サイズに近づけた後の転送レートの変動が収束するまで前記バッファサイズの変更制御を継続することを特徴とする、請求項６記載の印刷制御装置。
【請求項８】
前記制御手段は、印刷開始時に前記バッファリング用のメモリサイズを検出し、この検出値に基づいて前記最大サイズを決定するように構成されていることを特徴とする、
請求項６記載の印刷制御装置。
【請求項９】
所定の形態の印刷を実行させるための印刷データをバッファリングしながら印刷装置へ周期的に転送するコンピュータ装置に、
印刷要求に基づく最初の周期の印刷データを前記印刷装置が印刷を開始するうえで最低限必要なバッファサイズでバッファリングし、当該周期の印刷データについての転送レートに応じて次周期の印刷データのバッファサイズを動的に変更するとともに、印刷開始後に生成された印刷データのバッファサイズの合計値が所定値に達した時点で、以後の周期の印刷データのバッファサイズを最も効率の良い転送が可能な最大サイズに近づけ、さらに、前記最大サイズに近づけた後の転送レートの変動が収束するまで、前周期の転送レートに応じて次周期の印刷データのバッファサイズを動的に変更する処理、
を実行させるためのプログラムコードが記録されたコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、印刷制御技術に係り、より詳しくは、印刷装置へ転送される印刷データの効率的なデータ転送手法に関する。
【０００２】
【従来の技術】
ホストコンピュータで生成された印刷データをプリンタ等の印刷装置で印刷する場合、印刷データをホストコンピュータのバッファメモリで一旦スプールしておく（スプールファイルを形成する）ことにより、ホストコンピュータを印刷データ作成作業から開放する。次にスプールされた印刷データを印刷装置に転送するために、別のプロセスを起動し、印刷装置側の処理速度に応じてスプールファイルから印刷データを読み出して印刷装置側へ転送することで、ホストコンピュータによる印刷データの作成と印刷装置での印刷とを並行して行えるようにしているのが一般的である。スプールファイルから読み出されて印刷装置に転送される印刷データのサイズは、通常は４０９６バイト程度であり、このサイズを単位としてバッファリングが行われている。
【０００３】
【発明が解決しようとする課題】
最近は、ホストコンピュータと印刷装置との間の接続インタフェースとして、例えばＵＳＢ（Universal Serial Bas）やＩＥＥＥ標準１３９４−１９９５（IEEE=The Institute of Electrical and Electronics Engineers,Inc.）のような高速シリアルインタフェースが用いられるようになっている。このような高速シリアルインタフェースでは、上位階層から受け取った印刷データが格納されたバッファリングサイズ（例えば４０９６バイト）を、シリアルインタフェースの規格により決められたパケットサイズ（例えば５１２バイト）に分割し、分割後のデータ、つまりパケットをＩ／Ｏポートに順次転送していくためのＩ／Ｏドライバが存在する。このＩ／Ｏドライバでは、パケット毎のトランザクション形式でＩ／Ｏポートへの転送を行うため、一パケット毎にデータが正常に転送されたことを確認するためのアクノーレッジ処理が必要になる。
【０００４】
通常、Ｉ／Ｏドライバでは、一回のバッファリング毎にオーバーヘッドが生じるため、転送レートを向上させるためには、Ｉ／Ｏドライバに渡すバッファリングサイズをできるだけ大きくした方が効率が良くなる。例えば１０メガバイトの印刷データを転送する場合、バッファリングサイズを４０９６バイトにするよりも、１メガバイトにした方がＩ／Ｏドライバへの書き込み回数が減る（Ｉ／Ｏドライバによるオーバーヘッドが少なくなる）ため、効率的なデータ転送が可能になる。
【０００５】
しかしながら、一回のバッファリングサイズ（つまり、印刷データの転送サイズ）を大きくしすぎると、それが印刷装置に到達して印刷処理が開始されるまでに多大な時間がかかる。その間、印刷装置側では印刷処理を休止しているため、資源を有効に活用することができない問題があった。
【０００６】
そこで本発明は、資源の有効活用が可能になる、改良されたデータ転送方法を提供することを課題とする。
【０００７】
本発明の他の課題は、このデータ転送方法の実施に適した印刷制御装置及びこの印刷制御装置をコンピュータ上で実現する上で好適となる記録媒体を提供することにある。
【０００８】
【課題を解決するための手段】
上記課題を解決する本発明のデータ転送方法は、所定の形態の印刷を実行させるための印刷データを印刷装置へ周期的に転送する際にバッファリングを行うコンピュータ装置において実行される方法であって、最初の周期の印刷データを前記印刷装置が印刷を開始するうえで最低限必要なバッファサイズでバッファリングし、当該周期の印刷データについての転送レートに応じて次周期の印刷データのバッファサイズを動的に変更するとともに、印刷開始後に生成された印刷データのバッファサイズの合計値が所定値に達した時点で、以後の周期の印刷データのバッファサイズを最も効率の良い転送が可能な最大サイズに近づけることを特徴とする。
【０００９】
この最大値は、印刷開始時に前記バッファリング用のメモリサイズを検出し、この検出値に基づいて決定する。好ましくは、前記最大サイズに近づけた後も、転送レートの変動が収束するまで、前周期の転送レートに応じて次周期の印刷データのバッファサイズを動的に変更し続けるようにする。これにより、印刷データを効率的に転送できるようになる。なお、前記バッファサイズの合計値を印刷動作中の印刷装置または各周期の印刷データの作成手段の休止時間を抑制する値とすることで、高速シリアルインタフェースに印刷データを転送する際の無駄を省くことができる。
【００１０】
上記他の課題を解決する本発明の印刷制御装置は、印刷装置に所定の形態の印刷を実行させるための印刷データを作成する印刷データ作成手段と、作成された印刷データをバッファリングしながら前記印刷装置へ周期的に転送するとともに各周期の転送レートを検出し、前周期の転送レートに応じて次周期の印刷データのバッファサイズを動的に変更する制御手段とを備え、前記印刷装置及び前記印刷データ作成手段の休止時間を抑制することを特徴とする。
【００１１】
上記印刷制御装置において、前記制御手段は、例えば、印刷要求に基づく最初の周期の印刷データを前記印刷装置が印刷を開始するうえで最低限必要なバッファサイズでバッファリングし、当該周期の印刷データについての転送レートに応じて次周期の印刷データのバッファサイズを動的に変更するとともに、前記最初の周期からの印刷データのバッファサイズの合計値が所定値に達した時点で、以後の周期の印刷データのバッファサイズを最も効率の良い転送が可能な最大サイズに近づけるように構成する。また、前記最大サイズに近づけた後は、転送レートの変動が収束するまで前記バッファサイズの変更制御を継続するようにする。なお、前記最大サイズは、例えば、印刷開始時に前記バッファリング用のメモリサイズを検出し、この検出値に基づいて決定するようにする。
【００１２】
上記他の課題を解決する本発明の記録媒体は、所定の形態の印刷を実行させるための印刷データをバッファリングしながら印刷装置へ周期的に転送するコンピュータ装置に、印刷要求に基づく最初の周期の印刷データを前記印刷装置が印刷を開始するうえで最低限必要なバッファサイズでバッファリングし、当該周期の印刷データについての転送レートに応じて次周期の印刷データのバッファサイズを動的に変更するとともに、印刷開始後に生成された印刷データのバッファサイズの合計値が所定値に達した時点で、以後の周期の印刷データのバッファサイズを最も効率の良い転送が可能な最大サイズに近づけ、さらに、前記最大サイズに近づけた後の転送レートの変動が収束するまで、前周期の転送レートに応じて次周期の印刷データのバッファサイズを動的に変更する処理を実行させるためのプログラムコードが記録されたコンピュータ読取可能な記録媒体である。
【００１３】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。まず、本発明が適用される印刷システムの一例を図１に示す。この印刷システムは、ホストコンピュータ１と印刷装置２とをＩＥＥＥ標準１３９４−１９９５に準拠する高速シリアルインタフェースを介して接続したものである。この高速シリアルインタフェースは、印刷データをパケット単位で周期的に、且つ印刷要求がある限り連続して転送できるものである。
【００１４】
ホストコンピュータ１は、所定のシステムプログラムを通じてプログラムの実行、その制御及び監視を行う。具体的には、図示しないシステムボード上に配置されたＣＰＵ（Central processing Unit），ＲＡＭ（Randum  Access  Memory），ＲＯＭ（Read  Only  Memory）及び上記高速シリアルインタフェース用のＩ／Ｏポートと、内蔵又は外付けのハードディスク（ＨＤ）３とを具備し、ＣＰＵが所要のプログラムを適宜ＨＤ３から読み出して所要の処理ないし制御を実行するようになっている。ＨＤ３には、印刷データを生成するアプリケーションプログラム（以下、「ＡＰ」）と、本発明の印刷制御装置を実現するための印刷制御プログラム等が記録されている。
【００１５】
ホストコンピュータ１には、また、モニタ画面を具備した表示装置４、各種設定情報を入力するためのデータ入力装置５、ＣＤ−ＲＯＭドライブ及びＦＤＤを含むメディア読取装置６、構内ネットワークとの接続インタフェースとなる通信制御装置７とが接続されている。表示装置４は、システムプログラム、ＡＰ、あるいは印刷制御プログラム等の指示に呼応して所定のダイアログウインドウを表示するように構成されている。
【００１６】
印刷制御装置を実現するための制御プログラムは、可搬性の記録媒体、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ、磁気テープにホストコンピュータ１が読取可能な形態で記録されて流通し、印刷装置２の使用時に、上記メディア読取装置６を通じてＨＤ３にインストールされるものである。あるいは通信制御装置７を通じてアクセス可能なプログラムサーバからＨＤ３にインストールされたものである。
【００１７】
なお、上記制御プログラムのみを実行することによって印刷制御装置としての機能が形成されるだけでなく、その制御プログラムの指示に基づいて当該ホストコンピュータ１上で稼働しているオペレーティングシステムが実際の処理の一部を行い、その処理を通じて印刷制御装置としての機能が形成されるものであっても良い。
【００１８】
次に、上記ホストコンピュータ１が上記印刷制御プログラムを読み込むことによって実現される本発明の印刷制御装置の実施の形態を説明する。図２は、この実施形態による印刷制御装置の要部構成図である。本実施形態の印刷制御装置１０は、図２に示すように、スプーラ１１、印刷管理部１２、バッファメモリ１３、転送制御部１４、Ｉ／Ｏドライバ１５を備えている。
【００１９】
スプーラ１１には、ＡＰから送出された印刷対象データが一時的に格納される。印刷管理部１２は、ＡＰあるいはデータ入力装置５からの入力内容（印刷要求）に基づいてスプーラ１１から印刷対象データを読み出し、これに基づいて印刷装置２に適合した形態の印刷データを作成する。この印刷データは、転送制御部１４に渡される。
【００２０】
転送制御部１４は、印刷データをバッファメモリ１３にバッファリングするとともに、この印刷データを印刷装置２の印刷実行状況に応じて読み出して転送するものである。より詳しくは、印刷データの転送レートを周期的に検出し、前周期の印刷データの転送レートに応じて次周期の印刷データのバッファサイズを動的に変更し、印刷装置２や印刷管理部１２における印刷データ作成の休止時間を抑制する。
【００２１】
Ｉ／Ｏドライバ１５は、主として、ハードウエアであるＩ／Ｏポート１６における印刷データの出力制御を行うものである。
【００２２】
上記のように構成される印刷制御装置１０、特に転送制御部１４の動作手順は、図３および図４に示すとおりである。
【００２３】
すなわち、印刷制御装置１０は、図３に示されるように、まず、ＡＰ等からの印刷ジョブの実行開始を契機に、バッファリング可能な実装メモリのサイズ、つまりバッファメモリ１３のサイズを検出し（ステップＳ１０１）、この検出値に基づいてバッファリング可能な最大値を決定する（ステップＳ１０２）。この最大値は、高速シリアルインタフェースが転送可能な最大サイズとは必ずしも一致しない。後者の最大サイズがバッファリング可能な最大値よりも小さい場合は、後述する転送レートの変動分を考慮して、やや最大値より大きめのサイズをバッファリング可能な最大値とする。高速シリアルインタフェースによる転送可能な最大サイズの方が、実装メモリのサイズより大きいときは、この実装メモリのサイズよりもやや小さめのサイズを上記最大値とする。決定した最大値は、図示しないメモリ領域に記録しておく。
【００２４】
転送制御部１４は、印刷管理部１２が作成した印刷データをバッファメモリ１３にバッファリングしながら印刷装置２へパケット毎のトランザクション形式で転送していくが、最初の周期の印刷データについては、それを印刷装置２が印刷を開始するうえで最低限必要なバッファサイズ、あるいは、直ちに転送可能なバッファサイズ、例えば１０２４バイト程度でバッファリングし、これを転送する（ステップＳ１０３）。これにより、印刷装置２は直ちに印刷準備にとりかかることができる。
【００２５】
その後は、当該周期の印刷データについての転送レートを検出し（ステップＳ１０４）、検出した転送レートに応じて次周期の印刷データのバッファサイズを動的に変更していく。つまり、印刷装置２による印刷実行状況に応じ、転送レートが前周期のものよりも低下した場合は、転送レートが上がる方向に次周期のバッファサイズを変更（大きく）し（ステップＳ１０５：Yes、Ｓ１０６）、一方、転送レートが前周期のものよりも上昇した場合は、それが低下する方向に次周期のバッファサイズを変更（小さく）する（ステップＳ１０５：No、Ｓ１０７）。各周期のバッファサイズについては、それを保持しておき、ステップＳ１０４以降の処理を繰り返す（ステップＳ１０８：No）。
【００２６】
印刷開始後に生成された印刷データのバッファサイズの合計値が所定値、つまり高速シリアルインタフェースにおいて最も効率の良い転送が可能な最大サイズに達したときは（ステップＳ１０８：Yes）、以後の周期の印刷データのバッファサイズを上記最大サイズに近づけ（ステップＳ１０９）、そのときの転送レートを検出する（ステップＳ１１０）。
【００２７】
図４に移り、バッファサイズを上記最大サイズに近づけた後も、印刷装置２における印刷実行状況により、多少転送レートが変動するのが通常なので、印刷ジョブが終了せず且つ転送レートの変動が収束するまで、前周期の転送レートに応じて次周期の印刷データのバッファサイズを動的に変更し続ける（ステップＳ１１１〜Ｓ１１３）。転送レートの変動が収束し、印刷ジョブが終了した場合は、バッファサイズの変更制御を終える（ステップＳ１１４：Yes）。
【００２８】
このようにして動的に変更されるバッファサイズを示したのが図５である。図５のＢ１が、上記の高速シリアルインタフェースにおいて最も効率の良い転送が可能な最大サイズであり、Ｔ１がバッファサイズの合計値がこの最大サイズＢ１に達した時点である。
【００２９】
このような転送制御を行うことにより、印刷開始後は直ちに印刷可能なサイズの印刷データが一つのパケットとして印刷装置２に転送されるので、印刷装置２の休止時間が短くなり、一定時間経過後は、高速シリアルインタフェースにおいて最も効率の良い最大サイズに近いサイズの印刷データが一つのパケットとして印刷装置２に転送されるので、印刷管理部１２における印刷データ作成の際の休止時間が短くなる。これにより、従来の問題点が解消される。
【００３０】
なお、本実施形態では、転送制御部１４が独立した機能として存在する場合の例を示したが、印刷管理部１２、あるいはＩ／Ｏドライバ１５の付属機能として存在しても良い。また、高速シリアルインタフェースもＵＳＢあるいはＩＥＥＥ準拠のものがより効果的であるが、本発明は、このようなインタフェース以外のものでも一定の効果が得られるものである。
【００３１】
【発明の効果】
以上の説明から明らかなように、本発明によれば、印刷装置の動作休止時間と印刷データの作成手段による作成休止時間とを短くすることができるので、資源の有効活用が可能になるという、特有の効果が得られる。
【図面の簡単な説明】
【図１】本発明が適用される印刷システムの構成図。
【図２】本発明の実施形態による印刷制御装置の要部構成図。
【図３】本実施形態によるバッファサイズの更新制御の手順説明図。
【図４】本実施形態によるバッファサイズの更新制御の手順説明図（続き）。
【図５】本実施形態により変更されるバッファサイズの様子を示した説明図。
【符号の説明】
１  ホストコンピュータ
２  プリンタ
３  ハードディスク
４  表示装置
５  データ入力装置
６  メディア読取装置
７  通信制御装置
１０  印刷制御装置
１１  スプーラ
１２  印刷管理部
１３  バッファメモリ
１４  転送制御部
１５  Ｉ／Ｏドライバ
１６  Ｉ／Ｏポート
【図１】
0003642220.tif 000002
【図２】
0003642220.tif 000003
【図３】
0003642220.tif 000004
【図４】
0003642220.tif 000005
【図５】
0003642220.tif 000006