(57)【特許請求の範囲】
【請求項１】
ホスト計算機と、プリンタ制御部と、プリントエンジンと、前記ホスト計算機と前記プリンタ制御部を結ぶパラレルあるいはシリアルバスと、前記プリンタ制御部とプリントエンジンを結ぶパラレルあるいはシリアルバスからなるプリンタシステムにおいて、
前記ホスト計算機内部に設けられページ記述言語により記述されるプリントデータをプリント出力における帯状領域であるバンド単位で中間的なデータに変換する変換部と、
前記ホスト計算機内部に設けられ前記バンド単位で前記中間的なデータを前記ホスト計算機から前記プリンタ制御部へ前記ホスト計算機と前記プリンタ制御部を結ぶ前記パラレルあるいはシリアルバスを介してデータ転送を行なうＤＭＡ転送回路と、
前記ホスト計算機内部に設けられ、前記プリントエンジンが１バンドに相当する領域を処理するのに要する時間に基づく定数を格納する定数レジスタと、
前記ホスト計算機内部に設けられ、前記定数レジスタから格納値をロードし、前記プリントエンジンが１バンドに相当する領域を処理するのに要する時間をカウントし、前記ＤＭＡ転送回路を起動するタイマ回路と、
前記プリンタ制御部内に設けられ前記ＤＭＡ転送回路により転送された前記中間的なデータを前記バンド単位でビットマップデータに展開する展開処理回路と、
前記プリンタ制御部内に設けられ前記展開処理回路が展開した前記ビットマップデータを前記バンド単位で前記プリントエンジンに前記プリンタ制御部と前記プリントエンジンを結ぶ前記パラレルあるいはシリアルバスを介して前記プリントエンジンに出力する出力回路と、
を有することを特徴とするプリンタシステム。
【請求項２】
前記タイマ回路は前記プリントエンジンから入力されるページ同期信号によって起動されることを特徴とする請求項１に記載のプリンタシステム。
【請求項３】
前記ＤＭＡ転送回路は前記ホスト計算機のシステムバス上に設置されることを特徴とする請求項１に記載のプリンタシステム。
【請求項４】
ホスト計算機と、プリンタ制御部と、プリントエンジンと、前記ホスト計算機と前記プリンタ制御部を結ぶパラレルあるいはシリアルバスと、前記プリンタ制御部とプリントエンジンを結ぶパラレルあるいはシリアルバスからなるプリンタシステムにおいて、
前記ホスト計算機内部に設けられページ記述言語により記述されるプリントデータをプリント出力における帯状領域であるバンド単位で中間的なデータに変換する変換部と、
前記ホスト計算機内部に設けられ前記バンド単位で前記中間的なデータを前記ホスト計算機から前記プリンタ制御部へ前記ホスト計算機と前記プリンタ制御部を結ぶ前記パラレルあるいはシリアルバスを介してデータ転送を行なうバスマスタ転送回路と、
前記ホスト計算機内部に設けられ、前記プリントエンジンが１バンドに相当する領域を処理するのに要する時間に基づく定数を格納する定数レジスタと、
前記ホスト計算機内部に設けられ、前記定数レジスタから格納値をロードし、前記プリントエンジンが１バンドに相当する領域を処理するのに要する時間をカウントし、前記バスマスタ転送回路を起動するタイマ回路と、
前記プリンタ制御部内に設けられ前記バスマスタ転送回路により転送された前記中間的なデータを前記バンド単位でビットマップデータに展開する展開処理回路と、
前記プリンタ制御部内に設けられ前記展開処理回路が展開した前記ビットマップデータを前記バンド単位で前記プリントエンジンに前記プリンタ制御部と前記プリントエンジンを結ぶ前記パラレルあるいはシリアルバスを介して前記プリントエンジンに出力する出力回路と、
を有することを特徴とするプリンタシステム。
【請求項５】
前記タイマ回路は前記プリントエンジンから入力されるページ同期信号によって起動されることを特徴とする請求項４に記載のプリンタシステム。
【請求項６】
前記バスマスタ回路はホスト計算機のシステムバス上に設置されることを特徴とする請求項４に記載のプリンタシステム。
【請求項７】
ホスト計算機と、プリンタ制御部と、プリントエンジンと、前記ホスト計算機と前記プリンタ制御部を結ぶパラレルあるいはシリアルバスと、前記プリンタ制御部とプリントエンジンを結ぶパラレルあるいはシリアルバスからなるプリンタシステムにおけるプリント制御方法において、
前記ホスト計算機内部において実行されるステップであり、ページ記述言語により記述されるプリントデータをプリント出力における帯状領域であるバンド単位で中間的なデータに変換する変換ステップと、
前記ホスト計算機内部において実行されるステップであり、前記バンド単位で前記中間的なデータを前記ホスト計算機から前記プリンタ制御部へ前記ホスト計算機と前記プリンタ制御部を結ぶ前記パラレルあるいはシリアルバスを介してデータ転送を行なうＤＭＡ転送ステップと、
前記ホスト計算機内部のタイマ回路を利用して実行されるステップであり、前記プリントエンジンが１バンドに相当する領域を処理するのに要する時間に基づく定数を格納する定数レジスタから格納値をロードし、前記プリントエンジンが１バンドに相当する領域を処理するのに要する時間を前記タイマ回路によってカウントし、該カウントに基づいて、前記バンド単位で前記中間的なデータを前記ホスト計算機から前記プリンタ制御部へ、前記パラレルあるいはシリアルバスを介してデータ転送を行なうＤＭＡ転送ステップのタイミングを決定するステップと、
前記プリンタ制御部内において実行されるステップであり、前記ＤＭＡ転送ステップにおいて転送された前記中間的なデータを前記バンド単位でビットマップデータに展開する展開処理ステップと、
前記プリンタ制御部内において実行されるステップであり、前記展開処理ステップにおいて展開された前記ビットマップデータを前記バンド単位で前記プリントエンジンに前記プリンタ制御部と前記プリントエンジンを結ぶ前記パラレルあるいはシリアルバスを介して前記プリントエンジンに出力する出力ステップと、
を有することを特徴とするプリント制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はホスト計算機とプリンタがシリアルバス回線などの周辺バスで接続されたプリンティングシステムに関するものである。特に、ホスト計算機とプリンタがシリアルバス回線などの周辺バスで接続されたプリンティングシステムにおいて、プリンタの処理するバンドの時間間隔などに応じてリアルタイム的にプリントに必要なデータを高速に送信する機構の提供が可能なプリンタシステムおよびプリント制御方法に関する。
【０００２】
【従来の技術】
昨今のプリンティングシステム、特にカラープリンティングシステムにおいては、６００ｄｐｉ×６００ｄｐｉあるいはそれ以上の解像度の向上によって扱うデータ量がますます増大している。システムの低コスト化への要求を満たすために、高解像度のカラープリンタではバンド分割を行なって各バンドの展開データを圧縮して記憶保持することによりメモリ削減のための対策を行なってきた。また、ＰＤＦやＰｏｓｔＳｃｒｉｐｔなどのページ記述言語を展開するデコンポーズ処理の一部をプリンタにつながれるホスト計算機上で肩代わりさせることによりホスト計算機資源を有効に使い、同時に処理の性能向上を狙う技術も出てきている。
【０００３】
ただし、このような従来のプリンタシステムでは従来のページ記述言語によるプリントデータのデータサイズに比べてより大きい、すなわち一部デコンポーズ処理が終わった中間データをプリンタに送る必要が生じるため、ホスト計算機とプリンタをつなぐバス転送の負荷が大きくなる。また、ページよりもより小さな単位であるバンド毎に転送処理を管理する必要も生じる。
【０００４】
【発明が解決しようとする課題】
そこで以上のような技術を用いたシステムにおいては従来、ホスト計算機上に設けられたバスインターフェイスを介してホスト計算機とプリンタとのデータ転送を行なう場合、要求されるような小さな時間間隔で高速なデータ転送性能が得られないという問題点があった。なぜならばここで想定されるＩＥＥＥ１３９４高速シリアルデータバスやＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）などのバスではホスト計算機とプリンタなどの周辺機器との間の通信はホスト上で動作するデバイスドライバ呼ばれるソフトウエアにより管理されるからである。
【０００５】
また、ホスト計算機のＯＳがＩＢＭ互換器上で動作するＷｉｎｄｏｗｓ９５（マイクロソフト社商標）やＷｉｎｄｏｗｓＮＴ（マイクロソフト社商標）などのようにリアルタイム性を保証しないＯＳである場合には尚更に上記の問題点は大きくなる。
【０００６】
本発明は以上のような従来技術における問題点を考慮して行なわれたものであり、ホスト計算機とプリンタがシリアルバス回線などの周辺バスで接続されたプリンティングシステムにおいて、プリンタの処理するバンドの時間間隔などに応じてリアルタイム的にプリントに必要なデータを高速に送信する機構を提供することを目的とする。
【０００７】
【課題を解決するための手段】
上記の目的を達成するため本発明のプリンタシステムは、ホスト計算機と、プリンタ制御部と、プリントエンジンと、ホスト計算機とプリンタ制御部を結ぶパラレルあるいはシリアルバスと、プリンタ制御部とプリントエンジンを結ぶパラレルあるいはシリアルバスからなるプリンタシステムであり、ホスト計算機内部に設けられページ記述言語により記述されるプリントデータをプリント出力における帯状領域であるバンド単位で中間的なデータに変換する変換部と、ホスト計算機内部に設けられバンド単位で中間的なデータをホスト計算機からプリンタ制御部へホスト計算機とプリンタ制御部を結ぶパラレルあるいはシリアルバスを介してデータ転送を行なうＤＭＡ転送回路と、ホスト計算機内部に設けられ、プリントエンジンが１バンドに相当する領域を処理するのに要する時間に基づく定数を格納する定数レジスタと、ホスト計算機内部に設けられ、定数レジスタから格納値をロードし、プリントエンジンが１バンドに相当する領域を処理するのに要する時間をカウントし、ＤＭＡ転送回路を起動するタイマ回路と、プリンタ制御部内に設けられＤＭＡ転送回路により転送された中間的なデータをバンド単位でビットマップデータに展開する展開処理回路と、プリンタ制御部内に設けられ展開処理回路が展開したビットマップデータをバンド単位でプリントエンジンにプリンタ制御部とプリントエンジンを結ぶパラレルあるいはシリアルバスを介してプリントエンジンに出力する出力回路とを有することを特徴とする。
【０００９】
さらに本発明のプリンタシステムにおけるタイマ回路はプリントエンジンから入力されるページ同期信号によって起動されることを特徴とする。
【００１１】
さらに本発明のプリンタシステムにおけるＤＭＡ回路はホスト計算機のシステムバス上に設置されることを特徴とする。
【００１２】
さらに本発明のプリンタシステムは、バスマスタ転送回路によってバンド単位で中間的なデータをホスト計算機からプリンタ制御部へホスト計算機とプリンタ制御部を結ぶパラレルあるいはシリアルバスを介してデータ転送を行なうように構成している。
【００１３】
さらに本発明のプリント制御方法は、ホスト計算機と、プリンタ制御部と、プリントエンジンと、ホスト計算機とプリンタ制御部を結ぶパラレルあるいはシリアルバスと、プリンタ制御部とプリントエンジンを結ぶパラレルあるいはシリアルバスからなるプリンタシステムにおけるプリント制御方法において、ホスト計算機内部において実行されるステップであり、ページ記述言語により記述されるプリントデータをプリント出力における帯状領域であるバンド単位で中間的なデータに変換する変換ステップと、ホスト計算機内部において実行されるステップであり、バンド単位で中間的なデータをホスト計算機からプリンタ制御部へホスト計算機とプリンタ制御部を結ぶパラレルあるいはシリアルバスを介してデータ転送を行なうＤＭＡ転送ステップと、ホスト計算機内部のタイマ回路を利用して実行されるステップであり、プリントエンジンが１バンドに相当する領域を処理するのに要する時間に基づく定数を格納する定数レジスタから格納値をロードし、プリントエンジンが１バンドに相当する領域を処理するのに要する時間をタイマ回路によってカウントし、該カウントに基づいて、バンド単位で中間的なデータをホスト計算機からプリンタ制御部へ、パラレルあるいはシリアルバスを介してデータ転送を行なうＤＭＡ転送ステップのタイミングを決定するステップと、プリンタ制御部内において実行されるステップであり、ＤＭＡ転送回路により転送された中間的なデータをバンド単位でビットマップデータに展開する展開処理ステップと、プリンタ制御部内において実行されるステップであり、展開処理ステップにおいて展開されたビットマップデータをバンド単位でプリントエンジンにプリンタ制御部とプリントエンジンを結ぶパラレルあるいはシリアルバスを介してプリントエンジンに出力する出力ステップとを有することを特徴とする。
【００１５】
【発明の実施の形態】
以下、本発明のプリンタシステム及びプリント制御方法の詳細について実施例に基づいて説明する。
【００１６】
［実施例１］
図１は本発明のプリンタシステムの実施例における主要構成要素を示す図である。図１の（ａ）は、ホスト計算機のブロック図である。１はプロセッサ、２はキャッシュメモリ、３はバス制御回路、４はメインメモリ、５はホストバス、６はシステムバス、７は周辺バス制御回路、８はシリアルバス出力バッファ、９はハードディスク装置、１０はＥｔｈｅｒｎｅｔ  Ｉ／Ｆコネクタ、１１はシリアルバスコネクタ、１２は高速転送制御部、１３は転送制御回路Ａ、１４はＤＭＡ回路、１５はタイマ回路である。また、図１の（ｂ）はカラープリンタのブロック図である。１６はシリアルバスコネクタ、１７はプリンタ制御部、１８はバスＩ／Ｆ回路、１９は転送制御回路Ｂ、２０は展開処理回路、２１は出力回路、２２はプリントエンジンである。
【００１７】
本実施例におけるホスト計算機はＩＢＭ互換ＰＣシステムであり、プロセッサ１はＩｎｔｅｌ社Ｐｅｎｔｉｕｍ互換プロセッサである。またシステムバス６は、ＰＣＩバスである。ホスト計算機は、プロセッサ１、キャッシュメモリ２、バス制御回路３、メインメモリ４、ホストバス５、システムバス６、周辺バス制御回路７、ハードディスク装置９、Ｅｔｈｅｒｎｅｔ  Ｉ／Ｆコネクタ１０などの計算機資源を用いて、ネットワークを介して送られるプリントジョブをスプールし、プリントジョブを受け付ける。
【００１８】
さらに、図１（ａ）に示すホスト計算機は、図２に示されるような複数の処理からなるソフトウエア処理によって、受け付けたプリントジョブを構成する個々のページをプリンタに送信する中間データに展開して、メインメモリ４及びハードディスク装置９上の領域に格納する。この過程においてもホスト計算機は上であげた計算機資源を有効利用する。
【００１９】
図２に示す各種処理について説明する。図２において、１００はスプール部、１０１は言語解釈部、１０２は描画処理部、１０３はバンド分割部、１０４は転送処理部である。スプール部１００はプリントジョブをスプールし言語解釈部１０１に出力する。言語解釈部１０２は、入力されたページ記述言語を解釈して文字・図形・画像に対応する描画命令に分解する。描画処理部１０２は、描画命令を入力して実行し、プリンタに送信する中間データを生成する。バンド分解部１０３は、ページを構成するバンド毎に中間データの順番を並べ変えて、バンド毎に中間データを管理する。ここで、バンドは主走査方向に対して９０度の角度をなす直線によってページを細長いストリップ状の複数の領域に分割したものである。転送処理部１０４は、バンド毎に管理される中間データをプリンタへ送出する処理を受け持つ。
【００２０】
図３は、ホスト計算機のメインメモリ４上に展開される中間データの格納されている状況を模式的に表した図である。現在プリント処理中のページのバンド１の中間データは、メインメモリ４のアドレスＡからアドレスＢまでの領域に格納されている。また、同様にバンド２の中間データは、メインメモリ４のアドレスＢからアドレスＣまでの領域に格納されている。以下、同様に番号順にバンドの中間データが格納され、最後に最大のバンドＮの中間データがメインメモリ４のアドレスＹからアドレスＺまでの領域に格納される。
【００２１】
メインメモリ４のアドレス管理はホスト計算機により行なわれるが、図３のアドレスは物理アドレスを示すものとする。転送処理部１０４は、図３に示されるメインメモリ４に格納された中間データをプリンタ制御部１７に転送するが、これはハードウエアの構成及び動作から説明すると以下のようになる。転送処理部１０４は、プロセッサ１上のソフトウエアとして動作し、データ転送はプロセッサ上のレジスタ及び１次キャッシュメモリ、２次キャッシュメモリ２、メインメモリ４、ハードディスク装置９などから構成されるメモリシステムからホストバス、バス制御回路３、システムバス６、周辺バス制御回路７、シリアルバス出力バッファ８、シリアルバスコネクタ１１、高速転送制御部１２などの転送制御手段を経て、プリンタ制御部１７に中間データを転送する。
【００２２】
このときプロセッサ１は、高速転送制御部１２を用いて、メインメモリ４上の中間データをシリアルバス出力バッファ８にＤＭＡ転送する。プロセッサ１がソフトウエア的な手段に頼らずに、高速転送制御部１２を用いる目的は、ホスト計算機上においてプリント制御部１７が係わるバンド処理時間単位で転送を行なうこと、及びＤＭＡ転送によってバンド幅の保証された高速転送を行ない同時にプロセッサ１から転送処理を開放することにある。
【００２３】
以下では、高速転送制御部１２を用いた転送方式をさらに詳しく説明する。転送制御部１０４は、図３に示されるバンド分割された中間データをプリンタ制御部１７に転送するが、これはハードウエアの構成及び動作から説明すると以下のようになる。
【００２４】
転送制御部１０４は、プロセッサ１上のソフトウエアとして動作し、データ転送はプロセッサ上のレジスタ及び１次キャッシュメモリ、２次キャッシュメモリ２、メインメモリ４、ハードディスク装置９などから構成されるメモリシステムからホストバス５、バス制御回路３、システムバス６、周辺バス制御回路７、シリアルバス出力バッファ８、シリアルバスコネクタ１１、高速転送制御部１２などの転送制御手段を経て、プリンタ制御部１７に中間データを転送する。このときプロセッサ１は、高速転送制御部１２を用いて、メインメモリ４上の中間データをシリアルバス出力バッファ８にＤＭＡ転送する。プロセッサ１がソフトウエア的な手段に頼らずに、高速転送制御部１２を用いる目的は、ホスト計算機上においてプリント制御部１７が係わるバンド処理時間単位で転送を行なうこと、及びＤＭＡ転送によってバンド幅の保証された高速転送を行ない同時にプロセッサ１から転送処理を開放することにある。
【００２５】
以下では、高速転送制御部１２を用いた本発明のプリンタシステムにおける転送方式をさらに詳しく説明する。図４は高速転送制御部１２の詳細なブロック図である。図４で、１３１はバンドカウンタ、１４１はＰＣＩバスＩ／Ｆ回路、１４２はアドレス発生回路、１４３はＦＩＦＯバッファ、１５１はタイマカウンタ、１５２は定数レジスタである。
【００２６】
また、図５はアドレス発生回路１４２の内部ブロック図であり、１４２１はアドレスレジスタ、１４２２はアドレスインクリメンタ、１４２３はデータカウンタである。転送に先立ってプロセッサ１は高速転送制御部にあるレジスタの初期設定を行なう。アドレスレジスタ１４２１はシリアルバス出力バッファ８のアドレスを設定される。アドレスインクリメンタ１４２２は、転送する中間データの格納されているメインメモリ上の物理アドレス、例えば図３のアドレスＡが設定される。データカウンタ１４２３には一度に転送する中間データのワード数、例えば図３のアドレスＡからアドレスＢまでのワード数が設定される。定数レジスタ１５２にはプリントエンジン２２が１バンドに相当する領域をプリントする時間、言い換えればプリンタ制御部１７が１バンドに相当する領域のドットデータをプリントエンジン２２に出力する時間Ｔｂに相当する時間をカウントするための定数：Ｃ（Ｔｂ）が設定される。
【００２７】
タイマカウンタのカウント周波数をＦｃｏとすると、
Ｔｂ＝Ｃ（Ｔｂ）＊Ｆｃｏ
の関係が成り立つ。
バンドカウンタ１３１には、バンド領域の数が設定される。
【００２８】
なお、例えばプリント速度の異なる複数のプリンタがホスト計算機に接続され、必要に応じて出力プリンタを選別してプリントを行うような構成においては、個々のプリンタにおけるプリンタ制御部が１バンドに相当する領域のドットデータをプリントエンジンに出力する時間Ｔｂはそれぞれ異なる値となり、従って、定数：Ｃ（Ｔｂ）もまたプリンタごとに異なる。このようなシステム構成においては、出力プリンタを識別し識別されたプリンタ固有の定数：Ｃ（Ｔｂ）を定数レジスタ１５２に設定する。
【００２９】
以下、高速転送制御部１２の動作について説明する。高速転送制御部１２は、ＰＣＩバスのマスタ転送モードによりメインメモリ４上にある中間データをＦＩＦＯバッファに格納し、さらにＦＩＦＯバッファからシリアルバス出力バッファ８へ中間データを転送することにより、中間データをプリンタ制御部に高速転送する。
【００３０】
この転送処理のフローを制御するのが転送制御回路Ａ１３（図１参照）であり、図６に示すフローチャートにより転送制御を行なう。転送制御回路Ａ１３はまず、ホスト計算機によって起動される。これは、ＰＣＩバスＩ／Ｆ回路１４１を介して行なわれる。まず、図６に示すステップＳ０において最初の２バンド分のデータ、例えば図３に示すようにメイン・メモリにデータが格納されている場合は、バンド１中間データおよびバンド２中間データをプリンタ制御部１７に送り、バンドカウンタの値を２減らす。次に、Ｓ１において、プリンタ制御部１７のステータス情報を調べる。
【００３１】
Ｓ２において、プリンタエンジン開始ステータスがＯＮになっていればＳ３へ進み、そうでなければ、すなわちプリンタエンジン開始ステータスがＯＦＦであればＳ１へ戻る。プリンタエンジン開始ステータスがＯＮであればＳ３において、タイマカウンタ１５１に定数レジスタ１５２の値がロードされる。次にＳ１０において、アドレス発生回路１４２のアドレスインクリメンタ１４２２に設定された値をＰＣＩバスインターフェイス回路１４１を介してＰＣＩバスに出力することにより、１ワード分のデータをメインメモリ４からＦＩＦＯバッファ１４３に転送する。このとき同時にアドレスインクリメンタ１４２２に設定された値を１増やす。次にＳ１１において、データカウンタ１４２３の値を１減らす。Ｓ１２において、データカウンタ１４２３の保持する値が０かどうかを調べ、値が０であればＳ１４へ飛び、そうでなければＳ１３へ進む。Ｓ１３において、ＦＩＦＯバッファ１４３がＦｕｌｌかどうかを調べ、ＦｕｌｌであればＳ１４へ進みそうでなければＳ１０へ戻る。Ｓ１４において、今度はＦＩＦＯバッファ１４３からシリアルバス出力バッファ８へ１ワード分のデータを転送する。
【００３２】
次にＳ１５において、ＦＩＦＯバッファ１４３がＥｍｐｔｙかどうかを調べ、ＥｍｐｔｙであればＳ１６に進み、そうでなければＳ１４へ戻る。Ｓ１６において、データカウンタ１４２３が０であるかどうかを調べ、０であればＳ１７へ進み、そうでなければＳ１０へ戻る。Ｓ１７において、１バンド分のデータ転送が終了したので、バンドカウンタ１３１の値を１減らす。Ｓ１８において、バンドカウンタ１３１の値を調べ、０であれば終了し、そうでなければＳ１９へ進む。Ｓ１９において、タイマカウンタ１５１が０であるかを調べ、０であればＳ３に戻り、そうでなければもう一度Ｓ１９を実行する。以上が、高速転送制御部１２が実行する制御フローである。
【００３３】
一方、ホストＰＣ側からのデータ転送を受信するプリンタ制御部１７側においては、バスＩ／Ｆ回路１８がシリアルバス上の転送プロトコルをモニターし、送られたデータを予め定められた手順に従って内部に取り込み、さらに転送制御回路１９に受信したデータを送る。
【００３４】
転送制御回路１９は送られたデータをバッファに取り込んで、展開処理回路２０に出力し、展開処理回路２０は入力される中間データを展開して出力バッファに蓄える。出力回路２１は、出力バッファに書き込まれたデータをプリントエンジンに２２に出力する。この過程を図７によりさらに詳しく説明する。図７において、１９０は制御レジスタ及び制御部、１９１は入力バッファＡ、１９２は入力バッファＢ、２００は展開処理部、２０１は出力バッファＡ、２０２は出力バッファＢである。
【００３５】
以下に転送制御回路Ｂ１９及び展開処理回路２０の詳細な構成を引用して動作を説明する。まず、制御レジスタ及び制御部１９０は、ホストＰＣからプリント開始命令を入力する。次に、入力バッファＡ１９１及び入力バッファＢ１９２は、最初の２つのバンドに対応する中間データを、順次バスＩ／Ｆ回路から入力する。入力バッファＡ１９１は格納した最初のバンドに対応する中間データを展開処理部２００に送る。展開処理部２００では、入力した中間データをビットマップデータに展開して出力バッファＡ２０１に格納する。
【００３６】
展開処理部２００において入力バッファＡ１９１の中間データの展開処理が終ると、制御レジスタ及び制御部１９０は、エンジン起動信号をプリントエンジン２２へ送る。ここで、制御レジスタ及び制御部１９０はプリントエンジン２２から、プリント動作開始信号が返ってくるのを待つ。プリント動作開始信号が返ってきたら、転送制御回路Ｂ１９及び展開処理回路２０は定常的な動作モードに入る。
【００３７】
定常的な動作モードにおいては、転送制御回路Ｂ１９及び展開処理回路２０は、１つのバンドの処理に対して割り当てられる時間Ｔｂを基準として基本動作サイクルを繰り返す。基本サイクルにおいては、入力バッファＡ１９１あるいは入力バッファＢ１９２のいずれか一方が、バスＩ／Ｆ回路１８から１バンド分の中間データを入力し格納する。また、バスＩ／Ｆ回路１８から中間データを入力していない方の入力バッファは、既に、その前のサイクルにおいて中間データを格納し終えているので、展開処理部２００へ格納している中間データを出力する。また、展開処理部２００は展開したビットマップデータを出力バッファＡ２０１あるいは出力バッファＢ２０２のいずれかに格納する。展開処理部２００からの出力を格納していない方の出力バッファは、その前のサイクルでビットマップデータを格納し終えており、出力回路２１に対して格納済みのデータを出力している。１つのＴｂが終了して次のＴｂが始まると、入力バッファＡ／Ｂ及び出力バッファＡ／Ｂの関係は逆転して、上で説明したものと反対の動作をする。このような動作を繰り返して最後の出力データを出力回路１８に出力し終えると、制御レジスタ及び制御部１９０はプリントエンジン部２２からエンジンプリント動作終了信号を入力する。
【００３８】
図８は、制御レジスタ及び制御部１９中の制御ビットの値の遷移を表した図である。制御ビットは、図８に示すように、Ｐｒｉｎｔ，Ｅｎｇｉｎｅ  Ｓｔａｒｔ，Ｉｄｌｅの３ビットからなり、それぞれの値が１において、プリント中、プリントエンジン動作中、プリント動作アイドル中を表す。まず、図８（Ｉ）の状態においては、プリンタが動作しておらずアイドル状態にあり、Ｉｄｌｅビットのみがアクティブでその他のビットはインアクティブである。ここで、ホストＰＣからプリント動作命令が入力されると、（ＩＩ）の状態に遷移し、Ｐｒｉｎｔビットがアクティブになり、Ｉｄｌｅビットはインアクティブになる。この状態において、制御レジスタ及び制御部１９０は、プリントエンジン２２にエンジン起動信号を発信し、プリントエンジン２２からエンジン動作開始信号を受信する。すると、（ＩＩＩ）の状態に遷移し、プリントエンジン２２が動作中であることを示すＥｎｇｉｎｅ  Ｓｔａｒｔビットがアクティブに変化する。最後に、エンジンプリント動作終了信号が入力されると、（ＩＶ）の状態に遷移し、Ｐｒｉｎｔビット及びＥｎｇｉｎｅ  Ｓｔａｒｔビットはインアクティブになり、Ｉｄｌｅビットがアクティブに変化する。
【００３９】
以上の動作のタイミングチャートを図９に示す。まず初期状態において制御ビットは（０，０，１）であり、アイドル状態である。プリント開始命令があると、制御ビットは（１，０，０）となるとともに、２バンド分のデータが順次転送される。その後、バンド毎の展開処理が実行され、プリントエンジンが起動信号が出力され、実際のプリント動作が開始する。プリント動作が開始すると、制御ビットは（１，１，０）となり、図９に示すように中間データの入力、入力中間データの展開処理、展開処理の終了した出力処理の３つの処理が並行して実行される。
【００４０】
出力処理においては、前述のように１バンド毎に処理時間Ｔｂを要するため、各処理はすべて時間Ｔｂごとに後れを発生することなく進行することが必要となる。なお、転送処理、展開処理は、時間Ｔｂと同一の時間を要することは必要でなく、時間Ｔｂ以内に終了していればよい。出力処理の終了時は、図９の下段に示すように処理対象の最終バンドの中間データ転送処理がまず終了し、その次のＴｂサイクルでその最終バンドの展開処理が実行され、つらに次のＴｂサイクルで出力処理が実行され、全体のプリント処理が終了する。プリント処理が終了すると制御ビットは（０，０，１）に変更する。
【００４１】
尚、ＤＭＡ回路１４は、バスマスタモードによってＰＣＩバス６あるいはシステムバスを制御可能なものであれば、ＣＰＵ、シーケンサ、ステートマシンのいづれを代用しても良い。例えばＣＰＵ制御によるデータ転送制御を実行するバスマスタ転送回路によって上述のホスト計算機とプリンタ制御部間のデータ転送を制御してもよい。
【００４２】
また、上記の説明においては、タイマカウンタがホスト計算機上に設置されていたが、これはプリンタ制御部上に設置されていても何ら問題はない。特に、ＩＥＥＥ１３９４においてサポートされるＩｓｏｃｈｒｏｎｏｕｓデータ転送をサポートするためのサイクルタイマで代用しても良い。また、ＤＭＡ回路１４は、複数のＤＭＡ回路からなるマルチチャネル型のＤＭＡ回路であっても良い。また、複数のＤＭＡ回路をデイジーチェーン的につなげて用いても良い。
【００４３】
【発明の効果】
以上で説明したように本発明によれば、ホスト計算機、プリンタ、及びホスト計算機とプリンタを結ぶパラレルあるいはシリアルバスからなるプリンタシステムにおいて、プリンタのバンド情報に基づいてホスト計算機からプリンタへデータ転送を行なうように起動されるＤＭＡ転送回路あるいはバスマスタ回路を有することとしたことにより、プリンタの処理するバンドの時間間隔などに応じてリアルタイム的にプリントに必要なデータを高速に送信することができるという効果がある。また、ＤＭＡ転送回路を起動するタイマ回路を有し、該タイマ回路は予め定められたバンド処理時間をカウントすることとしたことにより、バンド時間間隔毎にＤＭＡ転送を開始できるという効果がある。
【００４４】
また、タイマ回路はプリントエンジンから入力されるページ同期信号によって起動されることとしたことにより、ＤＭＡ転送がプリントエンジンに正確に同期して行なえるという効果が有る。また、ＤＭＡ転送回路はホスト計算機のシステムバス上に設することとしたことにより、ＤＭＡ転送回路がホスト計算機システムのメインメモリに直接アクセスできるという効果がある。
【００４５】
また、複数のＤＭＡ回路をデイジーチェーン的につないで動作させることによって転送を行なった場合には、メインメモリ４において転送するデータ領域が非連続的になった場合でもＤＭＡ転送を中断することなく効率的かつ高速にＤＭＡ転送が行なえるという効果がある。
【図面の簡単な説明】
【図１】  本発明のプリントシステムの実施例における主要構成を示す図である。
【図２】  本発明のプリントシステムのホスト計算機上のデコンポーズソフトウェアの構成を示す図である。
【図３】  本発明のプリントシステムの仮想メモリ空間上に展開される中間データのバンド構成を示す図である。
【図４】  本発明のプリントシステムにおけるＤＭＡ回路の内部構成を説明する図である。
【図５】  本発明のプリントシステムにおけるタイマ回路の内部構成を説明する図である。
【図６】  本発明のプリントシステムにおける転送制御回路Ａの実行する制御フローを説明するフローチャートである。
【図７】  本発明のプリントシステムにおける転送制御回路Ｂ及び展開処理回路の内部構成を説明する図である。
【図８】  本発明のプリントシステムにおける制御ビットの状態遷移を説明する図である。
【図９】  本発明のプリントシステムにおけるプリント制御部の動作を示すタイミングチャートである。
【符号の説明】
１  プロセッサ
２  キャッシュメモリ
３  バス制御回路
４  メインメモリ
５  ホストバス
６  ＰＣＩバス
７  周辺バス制御回路
８  出力バッファ
９  ハードディスク装置
１０  Ｅｔｈｅｒｎｅｔ  Ｉ／Ｆコネクタ
１１  シリアルバスコネクタ
１２  高速転送制御部
１３  転送制御回路Ａ
１４  ＤＭＡ回路
１５  タイマ回路
１６  シリアルバスコネクタ
１７  プリンタ制御部
１８  バスＩ／Ｆ回路
１９  転送制御回路Ｂ
２０  展開処理回路
２１  出力回路
２２  プリントエンジン
１００  スプール部
１０１  言語解釈部
１０２  描画処理部
１０３  バンド分割部
１０４  転送処理部
１０５  中間データ
１３１  バンドカウンタ
１４１  ＰＣＩバスＩ／Ｆ回路
１４２  アドレス発生回路
１４３  ＦＩＦＯバッファ
１４４  内部バス
１５１  タイマカウンタ
１５２  定数レジスタ
１９０  制御レジスタ及び制御部
１９１  入力バッファＡ
１９２  入力バッファＢ
２００  展開処理部
２０１  出力バッファＡ
２０２  出力バッファＢ
１４２１  アドレスレジスタ
１４２２  アドレスインクリメンタ
１４２３  データカウンタ
【図１】
0003700410.tif 000002
【図２】
0003700410.tif 000003
【図３】
0003700410.tif 000004
【図４】
0003700410.tif 000005
【図５】
0003700410.tif 000006
【図６】
0003700410.tif 000007
【図７】
0003700410.tif 000008
【図８】
0003700410.tif 000009
【図９】
0003700410.tif 000010