(57)【特許請求の範囲】
【請求項１】
ネットワークを介して受信した印刷ジョブのデータを補助記憶装置に記憶可能なネットワークプリンタにおいて、
ネットワークを介してデータ及び転送モード選択コマンドを受信する通信処理手段と、
前記転送モード選択コマンドが第１の転送モード又は第２の転送モードのいずれを選択しているかを判別してセットするモード設定手段と、
前記受信された印刷ジョブのデータを解釈してイメージデータを生成するイメージデータ生成手段と、
前記生成されたイメージデータに基づいて印刷を行う印刷処理手段と、
前記受信された印刷ジョブのデータの処理状態を検出する検出手段とを設け、
前記第１の転送モードがセットされた場合には、前記受信された印刷ジョブの全てのデータを前記補助記憶装置を経由して前記イメージデータ生成手段に入力させる補助記憶装置経由モードでデータを転送し、
前記第２の転送モードがセットされた場合には、前記検出されたデータの処理状態に基づいて、当該印刷ジョブの処理中も、前記補助記憶装置経由モードと、前記受信されたデータを前記補助記憶装置を介さずに前記イメージデータ生成手段に入力させるバイパスモードとを切り換えることによりデータを転送し、一つの印刷ジョブのデータ転送について前記補助記憶装置経由モードと前記バイパスモードとの両方がそれぞれ適用されうることを特徴とするネットワークプリンタ。
【請求項２】
前記モード設定手段は、更に、前記データに関連付けられた属性情報に基づいて、前記各転送モードのうちいずれか一方の転送モードをセットする請求項１に記載のネットワークプリンタ。
【請求項３】
前記モード設定手段は、更に、前記データについてコレート印刷が指定されている場合には、前記第１の転送モードをセットする請求項１に記載のネットワークプリンタ。
【請求項４】
前記第２の転送モードがセットされた場合には、前記補助記憶装置内に処理中のデータが記憶されている場合に前記補助記憶装置経由モードを選択し、前記補助記憶装置内に処理中のデータが記憶されていない場合に前記バイパスモードを選択する請求項１〜請求項３のいずれかに記載のネットワークプリンタ。
【請求項５】
前記通信処理手段と前記補助記憶装置との間に設けられ、複数のメモリブロックを有する第１バッファメモリと、前記補助記憶装置と前記イメージデータ生成手段との間に設けられ、複数のメモリブロックを有する第２バッファメモリとを更に備え、
前記第２の転送モードがセットされた場合には、前記検出されたデータの処理状態に基づいて、前記補助記憶装置経由モードと前記バイパスモードとを切り換える請求項１〜請求項３のいずれかに記載のネットワークプリンタ。
【請求項６】
前記バイパスモードとしての第１のバイパスモードは、前記通信処理手段が前記第２バッファメモリのメモリブロックに前記受信したデータを格納することにより実現される請求項５に記載のネットワークプリンタ。
【請求項７】
前記第１のバイパスモードは、
(a1)前記第１バッファメモリにデータ格納済みのメモリブロックが存在せず、
(a2)前記補助記憶装置内に処理中のデータが記憶されておらず、
(a3)前記第２バッファメモリに空いているメモリブロックが存在する場合に、切り換えられる請求項６に記載のネットワークプリンタ。
【請求項８】
前記第１バッファメモリよりも前記第２バッファメモリの方が容量が大きくなるように設定される請求項７に記載のプリンタ。
【請求項９】
前記バイパスモードとしての第２のバイパスモードは、
前記第１バッファメモリのメモリブロックに格納されたデータを前記第２バッファメモリのメモリブロックに移すことにより実現される請求項５に記載のネットワークプリンタ。
【請求項１０】
前記バイパスモードとしての第２のバイパスモードは、前記第１バッファメモリのメモリブロックに格納されたデータを取り出して前記第２バッファメモリの空きメモリブロックに移し替えることにより実現される請求項５に記載のネットワークプリンタ。
【請求項１１】
前記バイパスモードとしての第２のバイパスモードは、前記第１バッファメモリのデータ格納済みメモリブロックと前記第２バッファメモリの空きメモリブロックとを入れ替えることにより実現される請求項５に記載のネットワークプリンタ。
【請求項１２】
前記第２のバイパスモードは、
(b1)前記補助記憶装置内に処理中のデータが記憶されておらず、
(b2)前記第２バッファメモリに空いているメモリブロックが存在し、
(b3)前記第１バッファメモリにデータ格納済みのメモリブロックが存在する場合に、切り換えられる請求項９〜請求項１１のいずれかに記載のネットワークプリンタ。
【請求項１３】
前記バイパスモードとして、前記通信処理手段が前記第２バッファメモリのメモリブロックに前記受信したデータを格納する第１のバイパスモードと、前記第１バッファメモリのメモリブロックに格納されたデータを前記第２バッファメモリのメモリブロックに移す第２のバイパスモードとを備え、
前記第１のバイパスモードは、
(a1)前記第１バッファメモリにデータ格納済みのメモリブロックが存在せず、
(a2)前記補助記憶装置内に処理中のデータが記憶されておらず、
(a3)前記第２バッファメモリに空いているメモリブロックが存在する場合に、切り換えられ、
前記第２のバイパスモードは、
(b1)前記補助記憶装置内に処理中のデータが記憶されておらず、
(b2)前記第２バッファメモリに空いているメモリブロックが存在し、
(b3)前記第１バッファメモリにデータ格納済みのメモリブロックが存在する場合に、切り換えられる請求項５に記載のネットワークプリンタ。
【請求項１４】
ネットワークを介して受信したデータを補助記憶装置に記憶可能なネットワークプリンタにおいて、
ネットワークを介して印刷ジョブのデータ及び転送モード選択コマンドを受信する通信処理手段と、
前記転送モード選択コマンドが第１の転送モード又は第２の転送モードのいずれを選択しているか判別してセットするモード設定手段と、
通信処理部から入力された印刷ジョブのデータを前記補助記憶装置に記憶させる書込み手段と、
前記補助記憶装置に記憶された印刷ジョブのデータを読み出す読出し手段と、
入力された印刷ジョブのデータを解釈してイメージデータを生成するイメージデータ生成手段と、
前記生成されたイメージデータに基づいて印刷を行う印刷処理手段と、
前記補助記憶装置内の残存データを検出する検出手段と、
前記通信処理手段と前記書込み手段との間に設けられ、複数のメモリブロックを有する第１バッファメモリと、
前記補助記憶装置と前記読出し手段との間に設けられ、複数のメモリブロックを有する第２バッファメモリとを設け、
前記第１の転送モードがセットされた場合には、前記通信処理手段が受信した印刷ジョブのデータを前記第１バッファメモリ、前記書込み手段、前記補助記憶装置、前記読出し手段、前記第２バッファメモリを順に経て前記イメージデータ生成手段に入力させる補助記憶装置経由モードでデータを転送し、
前記第２の転送モードがセットされた場合には、前記各バッファメモリの使用状態と前記補助記憶装置内の残存データ量とに基づいて、前記補助記憶装置経由モードと、前記通信処理手段が受信した印刷ジョブのデータを前記補助記憶装置を介さずに前記イメージデータ生成手段に入力させるバイパスモードとを切り換えることにより印刷ジョブのデータを転送し、一つの印刷ジョブのデータ転送について前記補助記憶装置経由モードと前記バイパスモードとの両方がそれぞれ適用されうることを特徴とするネットワークプリンタ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば、HDD（Hard Disk Drive）等の補助記憶装置を有するプリンタ及びプリンタのデータ処理方法に関する。
【０００２】
【従来の技術】
従来のプリンタでは、ホストコンピュータからの印刷ジョブデータを受信バッファに格納し、受信バッファに格納されたデータを順次解釈して、印刷出力用のイメージデータを生成し印刷を行う。このように順次解釈して印刷すれば良いため、いわゆるローカルプリンタでは、プリントエンジンの形式に応じて、例えば１バンド分、１ページ分のデータを一時的に格納できるだけのメモリがあれば足りる。
【０００３】
しかし、近年では、コンピュータや画像処理技術等の発達に伴って、印刷ドキュメントのカラーイメージ化等が進んでいるため、印刷ジョブデータのデータ量が増大している。また、LAN（Local Area Network）等のネットワークを介して、複数のホストコンピュータがプリンタを共用するネットワーク印刷システムの場合は、複数のホストコンピュータからの印刷ジョブデータを次々に処理する必要がある。もし、プリンタの搭載メモリ量が１ページ分しかないのであれば、数百ページのドキュメントの印刷を希望するホストコンピュータは、長時間に亘って延々と印刷ジョブデータを送り続けなければならない。そして、ネットワークを介して接続された他の多くのホストコンピュータは、長い印刷待ち時間を耐える必要がある。
【０００４】
従って、膨大な印刷ジョブデータを速やかに格納してホストコンピュータを早期に解放等すべく、プリンタ内にHDD等の補助記憶装置を設け、受信データをHDDに格納させるようにしたプリンタが近年提案されている。
【０００５】
【発明が解決しようとする課題】
ところで、上述した補助記憶装置内蔵型のプリンタでは、多量のデータを格納できるため、ホストコンピュータを早期に解放することができる。しかし、補助記憶装置は、回転する記録媒体上の所定位置にヘッドを移動させてデータの読み書きを行うため、RAM等のメモリにアクセスする場合よりも遅くなる。例えば、ネットワークからのデータ受信速度が１〜２ＭＢ／ｓ、イメージデータ生成部での処理が１ＭＢ／ｓの場合でも、HDDのデータ転送速度は約５００ＭＢ／ｓと遅いのが通常である。
【０００６】
従って、補助記憶装置を経由して印刷ジョブデータの転送を行うと、補助記憶装置への書込み時間と補助記憶装置からの読出し時間とがかかり、印刷処理速度が大幅に低下する。高速インターフェースやＤＭＡ転送等を採用すれば、補助記憶装置のデータ転送速度は向上するが、製造コストが増大する。
【０００７】
一方、印刷モードによっては、印刷データの全体をHDDに記憶させてから印刷処理を行う方が好ましい場合もある。例えば、ページ順を揃えて印刷するコレート印刷（丁合印刷）の場合は、例えば、Ｐ１−Ｐ２−Ｐ３，Ｐ１−Ｐ２−Ｐ３（Ｐはページを示す），．．．のように、同一のページを所定サイクルで繰返し印刷しなければならない。従って、部数分だけ印刷したページのイメージデータを直ちに破棄できるコピー印刷とは異なり、コレート印刷では、全ページのイメージデータをプリンタ内部で保持する必要がある。
【０００８】
本発明は、上記のような種々の課題に鑑みなされたものであり、その目的は、プリンタに搭載された補助記憶装置の使用の可否を選択することができ、使い勝手を向上できるようにしたネットワークプリンタ及びネットワーク印刷システムを提供することにある。本発明の他の目的は、プリンタ内部のデータ処理状態に応じて補助記憶装置を利用することにより、ホストコンピュータの早期解放と印刷処理速度の向上とを両立できるようにしたネットワークプリンタ及びネットワーク印刷システムを提供することにある。
【０００９】
【課題を解決するための手段】
上記目的達成のため、本発明に係るプリンタでは、補助記憶装置に印刷データを記憶させる第１の転送モードと、データ処理状態に応じて補助記憶装置の使用を動的に制御する第２の転送モードとを設けている。
【００１０】
本発明では、ネットワークを介して受信した印刷ジョブのデータを補助記憶装置に記憶可能なネットワークプリンタにおいて、ネットワークを介してデータ及び転送モード選択コマンドを受信する通信処理手段と、前記転送モード選択コマンドが第１の転送モード又は第２の転送モードのいずれを選択しているかを判別してセットするモード設定手段と、前記受信された印刷ジョブのデータを解釈してイメージデータを生成するイメージデータ生成手段と、前記生成されたイメージデータに基づいて印刷を行う印刷処理手段と、前記受信された印刷ジョブのデータの処理状態を検出する検出手段とを設け、前記第１の転送モードがセットされた場合には、前記受信された印刷ジョブの全てのデータを前記補助記憶装置を経由して前記イメージデータ生成手段に入力させる補助記憶装置経由モードでデータを転送し、前記第２の転送モードがセットされた場合には、前記検出されたデータの処理状態に基づいて、当該印刷ジョブの処理中も、前記補助記憶装置経由モードと、前記受信されたデータを前記補助記憶装置を介さずに前記イメージデータ生成手段に入力させるバイパスモードとを切り換えることによりデータを転送し、一つの印刷ジョブのデータ転送について前記補助記憶装置経由モードと前記バイパスモードとの両方がそれぞれ適用されることを特徴とする。
【００１１】
補助記憶装置としては、代表的には、ハードディスク装置（HDD）を挙げることができるが、これに限定されない。転送モード選択コマンドとしては、コマンド形式をとる場合や、ヘッダに格納された１ビット又は複数ビットのフラグ情報として実現される場合もある。
【００１２】
モード設定手段は、受信された転送モード選択コマンドに基づいて、第１の転送モード又は第２の転送モードのいずれかを排他的にセットする。第１の転送モードがセットされた場合は、補助記憶装置経由モードによるデータ転送が行われる。従って、受信された全ての印刷データは、補助記憶装置に一時的に記憶されてから印刷処理される。一方、第２の転送モードがセットされた場合には、補助記憶装置経由モードとバイパスモードとが、データ処理状態に応じて動的に切り換えられる。
【００１３】
補助記憶装置経由モードでは、ホストコンピュータから受信したデータを補助記憶装置に記憶させるため、ホストコンピュータを早期に解放できる。一方、バイパスモードでは、受信データを補助記憶装置を介さずに直接イメージデータ生成手段に転送するため、補助記憶装置への書込み時間、補助記憶装置からの読出し時間を省略することができ、印刷処理速度を向上させることができる。
【００１４】
補助記憶装置経由モードとバイパスモードとの切換は、検出手段により検出されるデータ処理状態に基づいて行われる。データ処理状態に基づく切換の一例としては、補助記憶装置内に処理中のデータが記憶されている場合には補助記憶装置経由モードを選択し、補助記憶装置内に処理中のデータが記憶されていない場合にはバイパスモードを選択することができる。
【００１５】
もしも補助記憶装置内に処理中のデータが記憶されている場合に、バイパスモードでイメージデータ生成手段にデータを転送すると、印刷順序等が混乱するため、例えば、補助記憶装置内のデータの有無によりモードを切り換える。ここで、「処理中のデータ」とは、これから印刷しようとする又は印刷中の印刷ジョブデータを意味する。
【００１６】
モード設定手段は、転送モード選択コマンドのみならず、他の情報に基づいて独自に転送モードを決定することもできる。例えば、印刷データに関連付けられた属性情報に基づいて、いずれの転送モードをセットするか決定してもよい。属性情報としては、例えば、コレート印刷等の印刷モードの他、印刷ページ数、データ量等を挙げることができる。
【００１７】
即ち、コレート印刷が指定されている場合には、全データをHDDに格納した方が好ましい。また、ページ数が多い文書を印刷する場合は、印刷速度よりもホストコンピュータの早期解放を優先した方が好ましいこともある。そこで、モード設定手段は、転送モード選択コマンドの内容に拘わらず、属性情報に基づいて転送モードを選択することができるようにしている。
【００１８】
請求項５に係る発明のように、補助記憶装置の入力側に第１のバッファメモリを、補助記憶装置の出力側に第２のバッファメモリをそれぞれ設け、各バッファメモリのメモリブロックを介してデータ転送を行うことができる。この場合、バイパスモードとしては、通信処理手段が第２のバッファメモリのメモリブロックに受信データを格納させる第１のバイパスモードを採用することができる。イメージデータ生成手段は、第２のバッファメモリのメモリブロックを介してデータを受け取るため、第２のバッファメモリのメモリブロックに直接データを格納すれば、補助記憶装置を介さずにデータを転送することができる。
【００１９】
ここで、第１のバイパスモードの切換条件としては、(a1)第１バッファメモリにデータ格納済みのメモリブロックが存在せず、かつ、(a2)補助記憶装置内に処理中のデータが記憶されておらず、かつ、(a3)第２バッファメモリに空いているメモリブロックが存在する場合であること、を挙げることができる。
【００２０】
つまり、第１バッファメモリから補助記憶装置までの間に処理中のデータが存在せず、第２バッファメモリに空いたメモリブロックが存在する場合には、通信処理手段は、受信データを直接第２バッファメモリのメモリブロックに格納させることができる。この場合、第１バッファメモリよりも第２バッファメモリの方が容量が大きくなるように設定することにより、第２バッファメモリの全ブロックを消費するまでに時間がかかるため、第１のバイパスモードによる転送時間を長くすることができる。
【００２１】
請求項９に係る発明のように、第１のバイパスモードとは別に、第１バッファメモリのメモリブロックの内容を第２バッファメモリのメモリブロックに移すことにより、補助記憶装置をバイパスさせる第２のバイパスモードを採用することもできる。ここで、各メモリブロック間のデータ移動方法としては、２つの方法を挙げることができる。一つは、第１バッファメモリのメモリブロックに格納されたデータを読み出して第２バッファメモリの空きメモリブロックに格納させるメモリ間コピーである。他の一つは、第１バッファメモリのメモリブロックを特定する情報（メモリブロックのアドレスやポインタ）と第２バッファメモリのメモリブロックを特定する情報とを交換することにより、メモリブロック自体を入れ替えるブロック交換である。
【００２２】
第２のバイパスモードの切換条件としては、(b1)補助記憶装置内に処理中のデータが記憶されておらず、かつ、(b2)第２バッファメモリに空いているメモリブロックが存在し、かつ、(b3)第１バッファメモリにデータ格納済みのメモリブロックが存在すること、を挙げることができる。
【００２３】
また、バイパスモードとして、第１のバイパスモード及び第２のバイパスモードの双方を備えてもよい。
【００２４】
一方、請求項１４に係る発明では、ネットワークを介して受信したデータを補助記憶装置に記憶可能なネットワークプリンタにおいて、ネットワークを介してデータ及び転送モード選択コマンドを受信する通信処理手段と、前記転送モード選択コマンドが第１の転送モード又は第２の転送モードのいずれを選択しているか判別してセットするモード設定手段と、通信処理手段から入力されたデータを前記補助記憶装置に記憶させる書込み手段と、前記補助記憶装置に記憶されたデータを読み出す読出し手段と、入力されたデータを解釈してイメージデータを生成するイメージデータ生成手段と、前記生成されたイメージデータに基づいて印刷を行う印刷処理手段と、前記補助記憶装置内の残存データを検出する検出手段と、前記通信処理手段と前記書込み手段との間に設けられ、複数のメモリブロックを有する第１バッファメモリと、前記補助記憶装置と前記読出し手段との間に設けられ、複数のメモリブロックを有する第２バッファメモリとを設け、前記第１の転送モードがセットされた場合には、前記通信処理手段が受信したデータを前記第１バッファメモリ、前記書込み手段、前記補助記憶装置、前記読出し手段、前記第２バッファメモリを順に経て前記イメージデータ生成手段に入力させる補助記憶装置経由モードでデータを転送し、前記第２の転送モードがセットされた場合には、前記各バッファメモリの使用状態と前記補助記憶装置内の残存データ量とに基づいて、前記補助記憶装置経由モードと、前記通信処理手段が受信したデータを前記補助記憶装置を介さずに前記イメージデータ生成手段に入力させるバイパスモードとを切り換えることによりデータを転送することを特徴としている。
【００２５】
また、本発明は、ネットワーク印刷システムとして捉えることもできる。即ち、請求項１５に係る発明では、印刷データを生成するホストコンピュータと、該ホストコンピュータから送信された印刷データをネットワークを介して受信し、該印刷データを補助記憶装置に記憶可能なプリンタとを備えたネットワーク印刷システムにおいて、第１の転送モード又は第２の転送モードのいずれかを選択し、転送モード選択コマンドを生成させる転送モード選択手段と、印刷データを生成する印刷データ生成手段と、ネットワークを介して前記印刷データ及び前記転送モード選択コマンドを受信する通信処理手段と、前記転送モード選択コマンドが第１の転送モード又は第２の転送モードのいずれを選択しているか判別してセットするモード設定手段と、前記受信された印刷データを解釈してイメージデータを生成するイメージデータ生成手段と、前記生成されたイメージデータに基づいて印刷を行う印刷処理手段と、前記受信された印刷データの処理状態を検出する検出手段とを設け、前記第１の転送モードがセットされた場合には、前記受信された印刷データを前記補助記憶装置を経由して前記イメージデータ生成手段に入力させる補助記憶装置経由モードで印刷データを転送し、前記第２の転送モードがセットされた場合には、前記検出されたデータの処理状態に基づいて、前記補助記憶装置経由モードと、前記受信された印刷データを前記補助記憶装置を介さずに前記イメージデータ生成手段に入力させるバイパスモードとを切り換えることにより印刷データを転送することを特徴としている。
【００２６】
ここで、一般的には、印刷データ生成手段はホストコンピュータ側に設けられ、通信処理手段、モード設定手段、イメージデータ生成手段、印刷処理手段及び検出手段はプリンタ側に設けられる。しかし、転送モード選択手段は、ホストコンピュータ又はプリンタのいずれに設けてもよい。例えば、プリンタの操作パネル上から転送モードを選択することも可能である。
【００２７】
また、転送モード選択手段をホストコンピュータ側に設ける場合、印刷データに関連付けられた属性情報（コレート印刷か、所定ページ数以上か等）に基づいて、転送モードを自動的に選択することもできる。転送モード選択手段がユーザーの指定とは異なる転送モードを選択した場合には、選択結果をユーザーに通知することもできる。
【００２８】
また、本発明は、ホストコンピュータの発明として捉えることもできる。更に、所定のプログラムを記録した記録媒体をプリンタのコンピュータに読み取らせて実行させることによっても実現することができる。「記録媒体」としては、例えば、ハードディスク（HD）、フロッピーディスク（FD）、コンパクトディスク（CD-ROM，CD-RAM等）、メモリ、ＩＣカード等の各種記録媒体を用いることができる。また、これに限らず、ネットワークを介してプログラムをダウンロードする等のように、通信媒体を用いることもできる。
【００２９】
【発明の実施の形態】
以下、図１〜図１５に基づき、本発明の実施の形態を詳細に説明する。
【００３０】
１．第１の実施の形態
図１〜図１３に基づいて、本発明の第１の実施の形態を説明する。図１は、本実施の形態によるネットワークプリンタのハードウエア構成を概略的に示す説明図である。プリンタは、インターフェース（以下「Ｉ／Ｆ」と略記）１，２と、CPU３と、RAM４及びROM５と、エンジン制御部８及びプリントエンジン９と、HDD１０とを備えている。
【００３１】
Ｉ／Ｆ１，２、CPU３、RAM４，ROM５及びHDD１０は、バス６を介して相互に接続されており、エンジン制御部８は、Ｉ／Ｆ２，７を介してCPU３等と接続されている。CPU３は、Ｉ／Ｆ１を介してLAN等のネットワークＮとの間でデータ通信を行う一方、Ｉ／Ｆ２を介してエンジン制御部８とデータ通信を行う。
【００３２】
CPU３は、通信タスク１１と、ＨＤ書込みタスク１２と、ＨＤ読出しタスク１３と、イメージ生成タスク１４と、印刷タスク１５とを実行可能に構成することができる。各タスク１１〜１５の切換、即ち、CPU実行権の管理は、例えば切換制御部として表現可能なスケジューラ１６によって行われる。スケジューラ１６は、予め設定された優先度に基づいて各タスク１１〜１５にCPU実行権を割り当てるようになっている。ここで、例えば、通信タスク１１や印刷タスク１５をそれぞれ専用のCPUで処理することもできる。
【００３３】
「通信処理手段」としての通信タスク１１は、ネットワークＮからパケットが着信すると、CPU実行権を得て起動する。通信タスク１１は、受信したパケットからIPアドレス等の余分なデータを除去して印刷データを取り出し、この印刷データをメモリブロックが一杯になるまで格納する。後述のように、データを格納したメモリブロックは、ＨＤ書込みタスク１２（補助記憶装置経由モード）又はイメージ生成タスク１４（第１のバイパスモード）のいずれかに引き渡される。
【００３４】
「書込み手段」としてのＨＤ書込みタスク１２は、後述のように、通信タスク１１からメモリブロックを介して入力されたデータをHDD１０に書き込むか（補助記憶装置経由モード）又はイメージ生成タスク１４に転送する（第２のバイパスモード）ようになっている。「読出し手段」としてのＨＤ読出しタスク１３は、HDD１０に記憶されたデータを読み出してメモリブロックに格納し、イメージ生成タスク１４に転送するようになっている。
【００３５】
「イメージデータ生成手段」としてのイメージ生成タスク１４は、データの格納されたメモリブロックを渡されると起動する。イメージ生成タスク１４は、メモリブロック内の印刷データを読み出して印刷イメージ（印刷要求）を生成し、この生成した印刷要求を印刷タスク１５に引き渡す。
【００３６】
「印刷処理手段」としての印刷タスク１５は、イメージ生成タスク１４から印刷要求が入力されると起動し、印刷要求に応じてエンジン制御部８を駆動させるようになっている。これにより、エンジン制御部８は、プリントエンジン９を駆動させてページ単位の印刷を行う。なお、エンジン制御部８及びプリントエンジン９を印刷手段又は印刷部と表現することもできる。
【００３７】
図２は、ネットワーク印刷システムの機能構成を示すブロック図である。図２中の太線矢印は補助記憶装置経由モードによるデータ転送の流れを、一点鎖線矢印は第１のバイパスモードによるデータ転送の流れを、破線矢印は第２のバイパスモードによるデータ転送の流れを、それぞれ示す。
【００３８】
図２に示すように、通信タスク１１とＨＤ書込みタスク１２との間のデータ転送は、第１バッファメモリ２１を介して行われ、ＨＤ読出しタスク１３とイメージ生成タスク１４との間のデータ転送は、第２バッファメモリ２２を介して行われるようになっている。より正確には、通信タスク１１とイメージ生成タスク１４間のデータ転送（第１のバイパスモード）と、ＨＤ書込みタスク１２とイメージ生成タスク１４間のデータ転送（第２のバイパスモード）とにおいても、第２のバッファメモリ２２が用いられる。
【００３９】
また、HDD１０内には、ＨＤ書込みタスク１２によりデータが書き込まれている途中のファイルと、既に記憶されて処理待ちのファイルと、ＨＤ読出しタスク１３によりデータを読み出されているファイルの３種類のファイルが生成される場合がある。この３種類のファイルの全てが「処理中のデータ」又は「残存データ」に相当する。さらに、図３中のＨＤ書込みタスク１２，図４中のＨＤ読出しタスク１３中にそれぞれ示すように、各タスク内にデータが存在する場合も、「処理中のデータ」又は「残存データ」に相当する。読出し待ちのファイル数は、残存ファイル検出部２３により検出され、通信タスク１１，ＨＤ書込みタスク１２及びＨＤ読出しタスク１３にそれぞれ通知される。
【００４０】
ここで、第１バッファメモリ２１よりも第２バッファメモリ２２の方がメモリ容量が大きくなるように設定されている。これにより、第２バッファメモリの全メモリブロックにデータが格納されるまでの時間が長くなる。従って、第１のバイパスモードによる転送時間を長くして、印刷処理時間を短縮することができるようになっている。
【００４１】
「モード設定手段」としての転送モード設定部２４は、後述のホストコンピュータ１００から送信された転送モード選択コマンドに基づいて、第１の転送モード又は第２の転送モードのいずれかを排他的にセットし、通信タスク１１及びＨＤ書込みタスク１２にそれぞれ通知するようになっている。
【００４２】
図２の上側に示すように、ネットワークプリンタに印刷データを送信するホストコンピュータ１００は、例えば、パーソナルコンピュータ、ワークステーション、ディジタルカメラ、携帯情報端末等として実現されるものである。ホストコンピュータ１００は、転送モード選択部１０１と、印刷データ生成部１０２と、送信部１０３とを含んで構成されている。
【００４３】
「転送モード選択手段」としての転送モード選択部１０１は、例えば、ユーザーからの指示に応じて、第１の転送モード又は第２の転送モードのいずれかを選択するものである。第１の転送モードが選択された場合、プリンタ内部では、印刷データの全体がHDD１０に記憶される補助記憶装置経由モードでデータ転送が行われる。第２の転送モードが選択された場合は、データ処理状態に応じて、補助記憶装置経由モードとバイパスモードとが動的に切り換えられる。バイパスモードは、第１のバイパスモードと第２のバイパスモードからなり、HDD１０をバイパスしたデータ転送が行われるようになっている。「印刷データ生成手段」としての印刷データ生成部１０２は、入力されたドキュメントデータをプリンタが解釈可能な印刷データに変換するものである。印刷データは、送信部１０３からネットワークＮを介してプリンタに送信される。ここで、図２中に示すように、ホストコンピュータ１００から送信される印刷データ１１０は、転送モード選択コマンド及び印刷ジョブデータから構成されている。
【００４４】
図３は、通信タスク１１からHDD１０までのデータ転送の流れを模式的に示す説明図である。通信タスク１１は、着信したパケットからヘッダ情報等の余分なデータを取り除き、第１バッファメモリ２１の空いているメモリブロックが一杯になるまでデータを格納する。ＨＤ書込みタスク１２は、満杯のメモリブロックを受け取ると、該メモリブロックからデータを取り出し、HDD１０内に開いたファイルにデータを書き込む。データを取り出されたメモリブロックは第１バッファメモリ２１に返却される。なお、メモリブロックからのデータ読出しは、FIFO（先入れ先出し）で順次処理される。
【００４５】
図４は、HDD１０からイメージ生成タスク１４までのデータ転送の流れを模式的に示す説明図である。ＨＤ読出しタスク１３は、HDD１０内のファイルからデータを読出し、第２バッファメモリ２２から空きメモリブロックを一つ取出し、一杯になるまでデータを格納する。この処理は、空きメモリブロックがある限り繰り返される。イメージ生成タスク１４は、満杯のメモリブロックを受け取ると、該メモリブロックからデータを取り出して１ページ分の印刷要求を生成し、この印刷要求を印刷タスク１５に入力する。データを取り出されて空になったメモリブロックは、第２バッファメモリ２２に返却される。
【００４６】
次に、図５〜図１３に基づいて本実施の形態の作用を説明する。なお、以下の説明では、ステップを「Ｓ」と略記する。また、説明の便宜上、図中では、バッファメモリを「バッファ」と、メモリブロックを「ブロック」と、「HDD」を「ＨＤ」とそれぞれ略記する。
【００４７】
図５は、ホストコンピュータ１００側の処理を示す。まず、ユーザーは、印刷設定画面等を通じて転送モードを選択する（Ｓ１）。例えば、ホストコンピュータ１００を早期に解放したいユーザーは第１の転送モードを選択し、印刷の高速化を希望するユーザーは第２の転送モードを選択することができる。次に、印刷データ生成部１０２が印刷データを生成すると（Ｓ２）、転送モード選択コマンド及び印刷データが送信される（Ｓ３，Ｓ４）。
【００４８】
次に、図６は、通信タスク１１による処理を示す。通信タスク１１はネットワークＮからパケットデータが着信すると起動し（S1:YES）、次に、いずれの転送モードがセットされているか、例えば、第１の転送モードがセットされているか否かを判定する（Ｓ１２）。第１の転送モードがセットされている場合には（S12:YES）、Ｓ１６に移って補助記憶装置経由モードによるデータ転送を行う。第１の転送モードがセットされていない場合には（S12:NO）、Ｓ１３に移って第２の転送モードによるデータ転送を行う。
【００４９】
第２の転送モード下では、補助記憶装置経由モードとバイパスモードのいずれでデータ転送を行うかの切換条件を判定する。即ち、第１バッファメモリ２１にデータが格納された空ではないメモリブロックが存在するか否か（Ｓ１３）、HDD１０に残存ファイルがあるか否か（Ｓ１４）、第２バッファメモリ２２に空いているメモリブロックがあるか否か（Ｓ１５）についてそれぞれ判定する。
【００５０】
第１バッファメモリ２１にデータが格納されたブロックがある場合（S13:YES）、HDD１０に残存ファイルが存在する場合（S14:YES）、第２バッファメモリ２２に空きメモリブロックが無い場合（S15:NO）のいずれかである場合には、補助記憶装置経由モードによるデータ転送を行うべく、第１バッファメモリ２１に空いているメモリブロックがあるか否かを検査する（Ｓ１６）。空いているメモリブロックが存在する場合には（S16:YES）、第１バッファメモリ２１から空いているメモリブロックを一つ取出し、メモリブロックが満杯になるまでデータを格納する（Ｓ１７）。なお、第１バッファメモリ２１に空いているメモリブロックが無い場合は（S16:NO）、データを格納することができないため、Ｓ１２に戻る。
【００５１】
一方、第１バッファメモリ２１にデータが格納されたメモリブロックが存在せず（S13:NO）、かつ、HDD１０に残存ファイルが無く（S14:NO）、かつ、第２バッファメモリ２２に空きブロックが存在する場合には（S15:YES）、第１のバイパスモードでデータ転送を行うことができる。そこで、第１のバイパスモードでは、第２バッファメモリ２２から空いているメモリブロックを一つ取出し、メモリブロックが満杯になるまでデータを格納する（Ｓ１８）。
【００５２】
即ち、第１バッファメモリ２１からHDD１０までの経路中に処理中のデータが存在しないため、HDD１０をバイパスしてイメージ生成タスク１４にデータを転送しても印刷が乱れたりする等の不具合を生じない。もっとも、第２バッファメモリ２２に空きメモリブロックが無ければ、バイパス転送を行うことができないため、Ｓ１５では第２バッファメモリ２２の状態を検査している。なお、電源投入直後の初期状態では、HDD１０に処理中のファイルは存在せず、各バッファメモリ２１，２２のメモリブロックは空いているため、第２の転送モード下では、第１のバイパスモードでデータが転送される。ここで、各バッファメモリ２１，２２にメモリを割り当てる際に、第２バッファメモリ２２の容量を第１バッファメモリの容量よりも大きくなるように設定すれば、第１のバイパスモードによる転送時間を長くすることができ、全体的な処理時間を短縮することができる。ここで、具体的には、バッファメモリとして使用可能な全メモリ量をメモリブロック１個のサイズで割ると、全メモリブロック数を求めることができる。この全メモリブロックのうち２割程度を第１バッファメモリ２１として使用し、残りの８割程度を第２バッファメモリ２２として使用することもできる。
【００５３】
次に、図７は、ＨＤ書込みタスク１２の処理を示す。まず、第１の転送モードがセットされているか否かを判定する（Ｓ２１）。第１の転送モードがセットされている場合には（S21:YES）、後述のＳ２２をスキップしてＳ２３に移り、補助記憶装置経由モードによるデータ転送を行う。第１の転送モードがセットされていない場合には（S21:NO）、第２の転送モードに移行し、補助記憶装置経由モードと第２のバイパスモードとの切換条件を判断する。
【００５４】
第２の転送モード下では、最初に、HDD１０に残存ファイルが存在するか否かを検査する（Ｓ２２）。HDD１０に残存ファイルが存在する場合は（S22:YES）、HDD１０をバイパスしてデータを転送できない場合、即ち、補助記憶装置経由モードでデータを転送すべき場合である。そこで、第１バッファメモリ２１に空きメモリブロックがあるか否か（Ｓ２３）、通信タスク１１が次の印刷ジョブを受信しており、空きメモリブロックを必要としているか否か（Ｓ２４）をそれぞれ検査する。第１バッファメモリ２１に空きメモリブロックが無く（S23:NO）、通信タスク１１が新たな空きメモリブロックを要求している場合は（S24:YES）、空きメモリブロックを生成すべく、データが格納された空ではないメモリブロックからデータを取り出してHDD１０にファイルを書き込む（Ｓ２５）。データを取り出されたメモリブロックは第１バッファメモリ２１に返却される（Ｓ２６）。これにより、通信タスク１１は、新たに受信したパケットデータをメモリブロックに格納することができる。
【００５５】
HDD１０に残存ファイルが存在しない場合は（S22:NO）、第２バッファメモリ２２に空いているメモリブロックが存在するか否かを検査する（Ｓ２７）。第２バッファメモリ２２に空きメモリブロックが無ければ、HDD１０をバイパスすることができないためである。次に、第１バッファメモリ２１にデータが格納されたメモリブロックがあるか否かを検査し、第１バッファメモリから第２バッファメモリへ移し替え可能なデータの有無を判定する（Ｓ２８）。
【００５６】
Ｓ２７，Ｓ２８の双方で「ＹＥＳ」と判定された場合は、第１バッファメモリ２１のデータが格納されたメモリブロックの中味（データ）を、第２バッファメモリの空きメモリブロックに移し替える（Ｓ２９）。ここで、データの格納されたメモリブロックからデータを読出し、読み出されたデータを空きメモリブロックにコピーしても良いし、あるいは、両メモリブロックのポインタ等を互いに交換することにより、ブロック毎交換してもよい。データを移し替えられて空になったメモリブロックは、第１バッファメモリ２１に返却される（Ｓ３０）。
【００５７】
ここで、より詳細に述べると、Ｓ２５では、これから書き込もうとするデータが新規な印刷ジョブの最初のデータか否かを判定し、新規な印刷ジョブのデータである場合は、HDD１０上に新規ファイルを作成して、該ファイルにデータを書き込む。また、一方、これから書き込もうとするデータが印刷ジョブの最後のデータであるか否かを判定し、最後のデータである場合は、該印刷ジョブに係るファイルをクローズする。
【００５８】
次に、図８は、ＨＤ読出しタスク１３の処理を示す。まず、第２バッファメモリ２２に空きメモリブロックがあるか否かを検査する（Ｓ４１）。次に、HDD１０に残存ファイルがあるか否かを検査する（Ｓ４２）。第２バッファメモリ２２に空きメモリブロックが無い場合（S41:NO）又はHDD１０に読み出すべきファイルが存在しない場合（S42:NO）は、データ転送を行うことができないので、Ｓ４１に戻って待機する。一方、Ｓ４１，Ｓ４２の双方で「ＹＥＳ」と判定された場合は、HDD１０のファイルからデータを読出し、第２バッファメモリ２２の空きメモリブロックが満杯になるまでデータを格納する（Ｓ４３）。
【００５９】
そして、Ｓ４３でデータを読み出したファイル中の全データを読み出し終えたか否かを判定し（Ｓ４４）、全データを読出した場合には（S44:YES）、該ファイルを削除可能か否かを判定する（Ｓ４５）。削除可能か否かの条件とは、例えば、印刷部数が１部の場合に全印刷データを読出し終えたか、あるいは、コレート印刷が指定されている場合において最終部の全印刷データを読み出し終えたか、である。コレート印刷時には、全部数分の印刷を終えるまで印刷データを削除できないからである。そして、印刷データを保存する理由が無くなった場合は（S45:YES）、ファイルを削除する（Ｓ４６）。
【００６０】
次に、図９は、イメージ生成タスク１４の処理を示す。まず、第２バッファメモリ２２にデータが格納された空ではないメモリブロックがあるか否かを判定する（Ｓ５１）。第２バッファメモリ２２にデータが格納されたメモリブロックがある場合は（S51:YES）、第２バッファメモリ２２からメモリブロックを一つ取り出してデータを読出し、印刷要求を生成する（Ｓ５２）。そして、データが取り出された空きメモリブロックを第２バッファメモリに返却する（Ｓ５３）。なお、印刷タスクは、本発明の要旨ではないので、処理の説明を割愛する。
【００６１】
このように構成される本実施の形態によれば、図１０〜図１２に示すように、データ処理状態に応じた転送モードでデータを転送することができる。
【００６２】
即ち、補助記憶装置経由モードによるデータ転送のみを行う第１の転送モードでは、全ての印刷データをHDD１０に一時的に記憶させてからイメージ生成処理等を行うため、ホストコンピュータ１００を早期に解放することができる。また、第２の転送モードでは、データ処理状態に応じて、補助記憶装置経由モードと第１，第２のバイパスモードとを動的に切り換えるため、印刷時間を短縮することができる。
【００６３】
より具体的には、図１０に示すように、補助記憶装置経由モードでは、受信データを、通信タスク１１、第１バッファメモリ２１、ＨＤ書込みタスク１２を経てHDD１０に記憶させ、HDD１０に記憶させたデータを、ＨＤ読出しタスク１３、第２バッファメモリ２２を介してイメージ生成タスク１４に入力することができる。従って、第１の転送モードを選択することにより、ホストコンピュータを早期に解放することができる。また、図１１に示す第１のバイパスモードでは、受信データを直接第２バッファメモリのメモリブロックに格納するため、ＨＤ書込みタスク１２及びＨＤ読出しタスク１３の処理を省略して、データを速やかにイメージ生成タスク１４に入力することができる。さらに、図１２に示す第２のバイパスモードでは、ＨＤ書込みタスク１２は、HDD１０にデータを書き込む代わりに、第２バッファメモリ２２のメモリブロックにデータを格納するため、速やかにデータをイメージ生成タスク１４に転送することができる。
【００６４】
ここで、第２の転送モード下における補助記憶装置経由モードと第１及び第２のバイパスモードの切換について考察する。第２の転送モード下では、図１３（ａ）に示すように、印刷ジョブの受信初期には、第１のバイパスモードで転送が行われる。やがて、通信タスク１１が第２バッファメモリ２２のメモリブロックを使い果たすと、受信データは第１バッファメモリ２１のメモリブロックに格納される。通信タスク１１が第１バッファメモリ２１を使用している間に、イメージ生成タスク１４は第２バッファメモリ２２から満杯のメモリブロックを受け取って印刷要求を生成する。上述の通り、HDD１０に残存ファイルが存在しない状況下で、第１バッファメモリ２１に満杯のメモリブロックが生じると、ＨＤ書込みタスク１２による第２のバイパスモードに切り換わる。第２のバイパスモードでは、ＨＤ書込みタスク１２が第２バッファメモリ２２のメモリブロックにデータを格納する。第２のバイパスモードへの移行により、第２バッファメモリ２２に空きメモリブロックが無くなると、補助記憶装置経由モードに切り替わり、データはHDD１０を経由してイメージ生成タスク１４に入力される。従って、印刷ジョブの受信直後から第１、第２のバイパスモードによる高速なデータ転送が行われ、印刷ジョブの中間付近で補助記憶装置経由モードに移行する。
【００６５】
そして、印刷ジョブの終わり頃では、HDD１０内のファイルが全て読み出されるため、補助記憶装置経由モードから第２のバイパスモードに切り替わる。やがて、第２のバイパスモードから第１のバイパスモードへと移行する。
【００６６】
なお、第２の転送モード下では、全ての印刷ジョブにおいて、図１３（ａ）のようなモード切換が行われる訳ではない。パケットの受信速度、印刷ジョブのデータ量、イメージ生成タスク１４の処理速度等の各種パラメータの変化によって、モード切換の状況は変化する。例えば、図１３（ｂ）に示すように、イメージ生成タスク１４の動作に比較して通信タスク１１の動作が圧倒的に速く、第２バッファメモリ２２の空きメモリブロックが一つも存在しなくなった後、最初の空きメモリブロックが一つできる以前に第１バッファメモリ２１のメモリブロックを使い切ってしまった場合には、第１のバイパスモードから補助記憶装置経由モードに移行する場合も考えられる。印刷ジョブのデータ量が少ない場合は、図１３（ｃ）に示すように、補助記憶装置経由モードに移行することなく、第１のバイパスモードのみでデータ処理が行われることもある。
【００６７】
この他にも、第１バイパスモード→第２バイパスモード→補助記憶装置経由モード→第１バイパスモード（第２バイパスモードを経ずに補助記憶装置経由モードから第１バイパスモードに移行して印刷を終了する）の順で処理が行われる場合もある。また、第１バイパスモード→補助記憶装置経由モード→第２バイパスモード→第１バイパスモードの順で処理される場合もある。
【００６８】
さらに、本実施の形態では、一つの印刷ジョブが単独で受信された場合を例示しているが、実際には、複数の印刷ジョブが連続して受信されたり、他の印刷ジョブと隙間をあけて孤立した印刷ジョブが受信される場合もある。このように、複数の印刷ジョブを受信する場合には、第１のバイパスモード、第２のバイパスモード及び補助記憶装置経由モードのいずれの状態間でも遷移し得る。但し、初期状態及び全印刷ジョブの処理を完了した後では、最初に第１のバイパスモードで転送が行われる。
【００６９】
本実施の形態によれば、以下の効果を奏する。
【００７０】
第１に、HDD１０に印刷データを記憶させる補助記憶装置経由モードのみでデータ転送を行う第１の転送モードと、HDD１０を適宜バイパスしてデータ転送を行う第２の転送モードとのいずれかをユーザーが選択できるようにしたため、ユーザーの希望に応じて第１，第２の転送モードを選択することができ、使い勝手が向上する。例えば、ホストコンピュータ１００の早期解放を優先するユーザーは第１の転送モードを選択し、印刷時間の短縮を優先するユーザーは第２の転送モードを選択することにより、各々の希望を実現することができる。
【００７１】
第２に、第２の転送モード下では、データ処理状態に基づいて、HDD１０を経由する補助記憶装置経由モードとHDD１０をバイパスするバイパスモードとを切り換えるため、印刷ジョブの全体をHDD１０に格納する場合よりも、処理時間を大幅に短縮することができる。この結果、補助記憶装置経由モードによるホストコンピュータの早期解放とバイパスモードによる高速処理とを両立させることができ、使い勝手が向上する。
【００７２】
第３に、第２の転送モード下では、データ処理状態に応じて、HDD１０を使用するか否かを動的に変化させるため、高速インターフェースやＤＭＡ転送等を用いずに、全体の処理速度を向上させることができる。
【００７３】
第４に、HDD１０内に残存ファイルが存在等する場合にはバイパスモードを選択せず、補助記憶装置経由モードでデータ転送を行うため、印刷順序が乱れたりするのを防止しつつ処理速度を高めることができる。
【００７４】
第５に、通信タスク１１からイメージ生成タスク１４への第１のバイパスモードのみならず、ＨＤ書込みタスク１２からイメージ生成タスク１４への第２のバイパスモードをも備えているため、高速なデータ転送期間を長くすることができ、全体の処理時間を短縮することができる。
【００７５】
第６に、HDD１０への読み書きも単一のCPU３で処理するマルチタスク型プリンタでは、HDD１０へのデータ操作の分だけ処理時間が長くなるが、本発明によれば、補助記憶装置経由モードとバイパスモードとを切換可能なため、マルチタスク型プリンタにおいて特に有効である。
【００７６】
２．第２の実施の形態
次に、図１４に基づいて本発明の第２の実施の形態を説明する。なお、以下の各実施の形態では、上述した構成要素と同一の構成要素には同一の符号を付し、その説明を省略するものとする。本実施の形態の特徴は、印刷データの属性情報に応じて好ましい転送モードを自動的に選択する点にある。
【００７７】
図１４は、ホストコンピュータ側の処理を示すフローチャートである。まず、ユーザーが印刷指示画面等を介し第１の転送モード又は第２の転送モードのいずれかを選択したか否かを判定する（Ｓ６１）。ユーザーが転送モードを選択している場合は（S61:YES）、ユーザーの選択値を記憶する（Ｓ６２）。ユーザーが転送モードを選択していない場合は（S61:NO）、予め設定された初期値を読み出す（Ｓ６３）。
【００７８】
次に、印刷データの属性情報を解析し（Ｓ６４）、HDD１０に格納すべき印刷データであるか否か、つまり、第１の転送モードを選択すべき印刷データであるか否かを判定する（Ｓ６５）。例えば、印刷データの各種属性情報と好ましい転送モードとを対応付けたモード選択テーブルＴ１を参照することにより、印刷データの属性に応じた転送モードを選択することができる。
【００７９】
具体的には、例えば、同一の排紙ビンに同一のページを所定サイクルで印刷し排出しなければならないコレート印刷が指定されている場合は、HDD１０を使用した方が好ましい。印刷済みのイメージデータを直ちに破棄できるコピー印刷の場合は、第１の転送モード又は第２の転送モードのいずれを選択するのもユーザーの自由である。ユーザーがホストコンピュータの早期解放と印刷速度とのいずれを優先するかで定まる。更に、印刷ページ数がｎページ（例えば数十〜数百ページ、又は数ＭＢ〜数十ＭＢの印刷データ等）以上の比較的データ量の多い文書を印刷する場合は、ホストコンピュータの早期解放と他のホストコンピュータの印刷待ち時間短縮の観点から、HDD１０を使用する方が好ましい。逆に、データ量が少ない場合は、いずれの転送モードを選択するのもユーザーの自由である。
【００８０】
モード選択テーブルＴ１の参照により、HDD１０を使用した方が好ましい印刷データであると判定された場合には（S65:YES）、第１の転送モードを選択する（Ｓ６６）。次に、ユーザーが選択した転送モードが第１転送モードであるか否かを判定し（Ｓ６７）、両者が異なる場合、即ち、ユーザーが第２の転送モードを選択した場合及びユーザーが転送モードを選択せず初期値として第２の転送モードが設定されていた場合は（S67:NO）、ディスプレイ画面や音声出力装置等を介して、第１の転送モードに変更した旨をユーザーに通知する（Ｓ６８）。一方、HDD１０の使用が任意であると判定された場合は（S65:NO）、ユーザー選択値又は初期値で示された転送モードを選択する（Ｓ６９）。
【００８１】
そして、印刷データを生成し（Ｓ７０）、転送モード選択コマンドと印刷データとをプリンタに送信させる（Ｓ７１，Ｓ７２）。
【００８２】
なお、上述したモード選択テーブルＴ１の設定内容は、一例であって、本発明はこれに限定されない。例えば、カラーイメージの有無、印刷言語の種類、印刷解像度、HDD１０の残り容量、印刷待ちジョブ数等の他のパラメータを考慮することができる。また、例えば、優先印刷コマンド、緊急印刷コマンド等のように、印刷時間の短縮を最優先とするコマンドが別に指定されている場合は、第２の転送モードを選択することができる。更に、内蔵タイマ等により現在時刻を参照可能な場合には、現在時刻も考慮して転送モードを自動選択することもできる。例えば、終業時刻の所定時間前に印刷データを受信した場合、該印刷データの印刷終了予定時刻が終業時刻より遅くなると予測されるときには、ホストコンピュータの早期解放を優先して第１の転送モードを選択することも可能である。また、モード選択テーブルＴ１の内容は固定的である必要もない。例えば、ユーザーの設定や印刷履歴等に基づく学習により、テーブルＴ１の内容を変化させることもできる。
【００８３】
このように構成される本実施の形態でも、前記第１の実施の形態と同様の効果を得ることができる。これに加えて、本実施の形態では、更に、以下の効果を奏する。
【００８４】
第１に、印刷データの属性情報に基づいて転送モードを選択するため、印刷データに適した転送モードを選択することができ、使い勝手が向上する。また、コレート印刷の場合は、第１の転送モードを選択するため、コレート印刷が途中で失敗するのを未然に防止することができる。
【００８５】
第２に、転送モードの変更時には、ユーザーに通知するため、ユーザーに困惑が生じるのを防止して使い勝手が向上する。
【００８６】
３．第３の実施の形態
次に、図１５は、本発明の第３の実施の形態に係る通信タスク１１の処理を示すフローチャートである。
【００８７】
本実施の形態の特徴は、Ｓ１２で第１の転送モードが選択されていると判定された場合に、印刷データの属性情報に基づいてHDD１０に格納すべき印刷データであるか否かを検査し（Ｓ８１）、HDD１０に格納すべき印刷データである場合には、転送モード選択コマンドで第２の転送モードが選択されている場合でも、第１の転送モードに変更する点にある。印刷属性に基づく転送モードの変更は、前記第２の実施の形態と同様に、モード選択テーブルＴ１を参照することにより実現することができる。
【００８８】
このように構成される本実施の形態でも、前記第１，第２の実施の形態と同様の効果を得ることができる。
【００８９】
なお、当業者であれば、前記各実施の形態に記載された本発明の要旨の範囲内で種々の追加、変更等が可能である。例えば、記録媒体に記録された所定のプログラムをプリンタのコンピュータに読み取らせることにより、本発明を実現することもできる。
【００９０】
また、各バッファメモリの使用単位であるメモリブロックの大きさは、データ処理状態に応じて変化させることもできる。例えば、両メモリブロックのサイズを１００ＫＢ程度の固定値とすることもできるし、プリンタ内部のデータ処理速度等に応じてブロックサイズを変化させることもできる。また、各バッファメモリのメモリブロックのサイズは、同一である必要はなく、異なってもよい。但し、ブロックサイズが同一であれば、データの移し替え等に便利である。
【００９１】
さらに、プリンタとしては、プリンタ専用機に限らず、複写機、ファクシミリ装置等の他の機能を備えた複合機でもよい。
【００９２】
【発明の効果】
以上説明した通り、本発明に係るネットワークプリンタ及びネットワーク印刷システムによれば、ユーザーの希望や印刷データの属性情報により、第１の転送モードと第２の転送モードとのいずれかを選択することができる。従って、ホストコンピュータの早期解放を優先する場合は第１の転送モードを選択すればよく、印刷時間の短縮を優先する場合は第２の転送モードを選択すればよく、使い勝手が向上する。また、第２の転送モードでは、データ処理状態に応じて、補助記憶装置を適宜使用するため、ホストコンピュータの早期解放と補助記憶装置のバイパスによる高速処理とを両立させることができる。
【図面の簡単な説明】
【図１】本発明の第１実施の形態に係るプリンタの構成を示すブロック図である。
【図２】プリンタの機能構成を示すブロック図である。
【図３】通信タスクからHDDまでのデータ転送を示す説明図である。
【図４】  HDDからイメージ生成タスクまでのデータ転送を示す説明図である。
【図５】ホストコンピュータ側の処理を示すフローチャートである。
【図６】通信タスクの処理を示すフローチャートである。
【図７】ＨＤ書込みタスクの処理を示すフローチャートである。
【図８】ＨＤ読出しタスクの処理を示すフローチャートである。
【図９】イメージ生成タスクの処理を示すフローチャートである。
【図１０】補助記憶装置経由モードによるデータ転送を示す説明図である。
【図１１】第１のバイパスモードによるデータ転送を示す説明図である。
【図１２】第２のバイパスモードによるデータ転送を示す説明図である。
【図１３】転送モードの移行状態を示す説明図である。
【図１４】本発明の第２の実施の形態に係るホストコンピュータ側の処理を示すフローチャートである。
【図１５】本発明の第３の実施の形態に係るホストコンピュータ側の処理を示すフローチャートである。
【符号の説明】
３  ＣＰＵ
１０  HDD
１１  通信タスク
１２  ＨＤ書込みタスク
１３  ＨＤ読出しタスク
１４  イメージ生成タスク
２１  第１バッファメモリ
２２  第２バッファメモリ
２３  残存ファイル検出部
２４  転送モード設定部
１００  ホストコンピュータ
１０１  転送モード選択部
１０２  印刷データ生成部
１０３  送信部
１１０  印刷データ
【図１】
0003951083.tif 000002
【図２】
0003951083.tif 000003
【図３】
0003951083.tif 000004
【図４】
0003951083.tif 000005
【図５】
0003951083.tif 000006
【図６】
0003951083.tif 000007
【図７】
0003951083.tif 000008
【図８】
0003951083.tif 000009
【図９】
0003951083.tif 000010
【図１０】
0003951083.tif 000011
【図１１】
0003951083.tif 000012
【図１２】
0003951083.tif 000013
【図１３】
0003951083.tif 000014
【図１４】
0003951083.tif 000015
【図１５】
0003951083.tif 000016