(57)【要約】【課題】同時に複数のジョブを並行処理する場合、一部のジョブに処理が集中することなく、処理を分散させて全体としての効率を維持できる印刷装置を提供する。【解決手段】メモリ獲得要求を取り出し（Ｓ１１）、ページメモリに空きができると、エミュレーション２０６を使用してページメモリを要求しているジョブの総数を調べる（Ｓ１４）。１ジョブ当たりの取り得る上限値を計算し（Ｓ１５）、要求元ジョブによって既に使用されているページメモリの数が上限値を越えているか、あるいは要求に応じて与えると越えてしまうか否かを判別する（Ｓ１６）。要求元ジョブのページメモリの数が上限値を越えるような場合、この要求を後回しにする（Ｓ１８）。一方、上限値を越えない場合、要求元ジョブにページメモリを渡す（Ｓ１７）。【選択図】　　　図５
2004110626.tif 000002
【特許請求の範囲】
【請求項１】
複数のページメモリを備え、同時に複数のジョブを並行処理して印刷する際、前記ジョブの処理時にページデータの作成に使用されるページメモリを、前記複数のページメモリの中から確保する印刷装置において、
前記ジョブからのページメモリの確保要求を取得する要求取得手段と、
該取得した確保要求に応じて、前記各ジョブが確保可能なページメモリの数を制限する制限手段とを備えたことを特徴とする印刷装置。
【請求項２】
前記並行処理されるジョブの数を取得するジョブ数取得手段と、
前記各ジョブに確保されているページメモリの使用状況を認識する認識手段とを備え、
前記制限手段は、
前記取得したジョブの数および前記複数のページメモリの数を基に、１ジョブ当たり確保可能なページメモリの上限値を算出する上限値算出手段と、
前記認識したページメモリの使用状況を基に、前記ページメモリの確保要求を行ったジョブにページメモリが確保された場合、該ページメモリの数が前記上限値を越えるか否かを判別する判別手段とを備え、
該上限値を越えると判別された場合、前記ページメモリの確保要求を後回しにすることを特徴とする請求項１記載の印刷装置。
【請求項３】
複数のページメモリを備えた印刷装置が同時に複数のジョブを並行処理して印刷する際、前記ジョブの処理時にページデータの作成に使用されるページメモリを、前記複数のページメモリの中から確保するページメモリ確保方法において、
前記ジョブからのページメモリの確保要求を取得する要求取得ステップと、
該取得した確保要求に応じて、前記各ジョブが確保可能なページメモリの数を制限する制限ステップとを有することを特徴とするページメモリ確保方法。
【請求項４】
前記並行処理されるジョブの数を取得するジョブ数取得ステップと、
前記各ジョブに確保されているページメモリの使用状況を認識する認識ステップとを有し、
前記制限ステップでは、
前記取得したジョブの数および前記複数のページメモリの数を基に、１ジョブ当たり確保可能なページメモリの上限値を算出する上限値算出ステップと、
前記認識したページメモリの使用状況を基に、前記ページメモリの確保要求を行ったジョブにページメモリが確保された場合、該ページメモリの数が前記上限値を越えるか否かを判別する判別ステップと、
該上限値を越えると判別された場合、前記ページメモリの確保要求を後回しにする後回しステップとを有することを特徴とする請求項３記載のページメモリ確保方法。
【請求項５】
請求項３または４に記載のページメモリ確保方法を実現するためのコンピュータ読み取り可能なプログラムコードを保持する記憶媒体。
【請求項６】
請求項３または４に記載のページメモリ確保方法を実現するためのコンピュータ読み取り可能なプログラムコードを有するプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、同時に複数のジョブを並行処理して印刷する際、前記ジョブがページデータの作成に使用するページメモリを、複数のページメモリの中から確保する印刷装置、ページメモリ確保方法、プログラムおよび記憶媒体に関する。
【０００２】
【従来の技術】
従来、ページメモリの確保は、エミュレーションがページ（データ）を生成する都度、行われることが普通である（例えば、特許文献１参照）。また、従来、多くの印刷装置は、複数のジョブを同時に並行処理できないので、ページメモリを使い切ってしまうと、新たに確保することができず、ページメモリが解放されるまで待っていた（例えば、特許文献２参照）。
【０００３】
【特許文献１】
特開平３−６１５７０号公報
【特許文献２】
特開平７−２３４７６８号公報
【０００４】
【発明が解決しようとする課題】
しかしながら、近年、プログラミング技術や資源活用技術の進歩によって、同時に複数のジョブを並行処理可能な印刷装置が増えている。このような印刷装置では、独立したエミュレーションを使用するジョブの場合、同時に処理してパフォーマンスを向上させることが可能である。
【０００５】
このような印刷装置では、複数のジョブが有限個のページメモリをさまざまなタイミングで確保することになる。仮に、１つのジョブが非常に速い速度で多くのページを生成し、他の１つのジョブが重い処理のため、少しずつしかページを生成しない場合を想定すると、前者のジョブが常に全てのページメモリを使い切ってしまい、後者のジョブはページメモリの確保を待たされて、次のページの処理が停止してしまうという問題が発生する。この結果、印刷装置全体としての効率は落ちていた。
【０００６】
そこで、本発明は、同時に複数のジョブを並行処理する場合、一部のジョブに処理が集中することなく、処理を分散させて全体としての効率を維持できる印刷装置、ページメモリ確保方法、プログラムおよび記憶媒体を提供することを目的とする。
【０００７】
【課題を解決するための手段】
上記目的を達成するために、本発明の印刷装置は、複数のページメモリを備え、同時に複数のジョブを並行処理して印刷する際、前記ジョブの処理時にページデータの作成に使用されるページメモリを、前記複数のページメモリの中から確保する印刷装置において、前記ジョブからのページメモリの確保要求を取得する要求取得手段と、該取得した確保要求に応じて、前記各ジョブが確保可能なページメモリの数を制限する制限手段とを備えたことを特徴とする。
【０００８】
また、前記並行処理されるジョブの数を取得するジョブ数取得手段と、前記各ジョブに確保されているページメモリの使用状況を認識する認識手段とを備え、前記制限手段は、前記取得したジョブの数および前記複数のページメモリの数を基に、１ジョブ当たり確保可能なページメモリの上限値を算出する上限値算出手段と、前記認識したページメモリの使用状況を基に、前記ページメモリの確保要求を行ったジョブにページメモリが確保された場合、該ページメモリの数が前記上限値を越えるか否かを判別する判別手段とを備え、該上限値を越えると判別された場合、前記ページメモリの確保要求を後回しにすることを特徴とする。
【０００９】
本発明のページメモリ確保方法は、複数のページメモリを備えた印刷装置が同時に複数のジョブを並行処理して印刷する際、前記ジョブの処理時にページデータの作成に使用されるページメモリを、前記複数のページメモリの中から確保するページメモリ確保方法において、前記ジョブからのページメモリの確保要求を取得する要求取得ステップと、該取得した確保要求に応じて、前記各ジョブが確保可能なページメモリの数を制限する制限ステップとを有することを特徴とする。
【００１０】
また、前記並行処理されるジョブの数を取得するジョブ数取得ステップと、前記各ジョブに確保されているページメモリの使用状況を認識する認識ステップとを有し、前記制限ステップでは、前記取得したジョブの数および前記複数のページメモリの数を基に、１ジョブ当たり確保可能なページメモリの上限値を算出する上限値算出ステップと、前記認識したページメモリの使用状況を基に、前記ページメモリの確保要求を行ったジョブにページメモリが確保された場合、該ページメモリの数が前記上限値を越えるか否かを判別する判別ステップと、該上限値を越えると判別された場合、前記ページメモリの確保要求を後回しにする後回しステップとを有することを特徴とする。
【００１１】
また、本発明は、上記ページメモリ確保方法を実現するためのコンピュータ読み取り可能なプログラムコードを有するプログラム、およびこれを保持する記憶媒体にある。
【００１２】
【発明の実施の形態】
本発明の印刷装置、ページメモリ確保方法、プログラムおよび記憶媒体の実施の形態について図面を参照しながら説明する。図１は実施の形態における印刷装置の構成を示すブロック図である。図において、１０１はネットワークである。１０２はネットワーク１０１を介してＰＣ等の情報処理装置（図示せず）に接続された印刷装置である。印刷装置１０２はコントローラ１０３およびプリントエンジン１１０から構成される。
【００１３】
コントローラ１０３において、１０４はネットワーク１０１を介してジョブを受け取るための入力インタフェースである。１０５は装置全体の制御を司るＣＰＵである。１０６はＣＰＵ１０５によって実行される制御プログラムや文字フォント等の各種データを記憶するＲＯＭである。１０７はディスプレイリストやページメモリ等の各種データを一時的に記憶するＲＡＭである。１０９はプリントエンジンにイメージデータ（プリント用イメージページ）を転送してプリントエンジン１１０を制御するエンジンデバイスドライバである。１０８は上記各部が接続されるシステムバスである。
【００１４】
図２はジョブのモデルを示す図である。図において、２０１はジョブである。２０２は入力データである。２０３はイメージページである。２０４は圧縮ページである。２０５はプリント用イメージページである。２０６はエミュレーションである。２０７はメモリ圧縮部である。２０８はメモリ展開部である。
【００１５】
図３はページメモリ管理部３４０によってジョブ毎に管理されるページメモリを示す図である。図において、３１０、３２０、３３０はそれぞれジョブＡ、ジョブＢ、ジョブＣである。印刷装置１０２内のコントローラ１０３は、まず、ホストコンピュータ等の情報処理装置からネットワーク１０１を経由して送られた入力データを、入力インタフェース１０４を介して受信し、１つのジョブ２０１として処理する。
【００１６】
ジョブ２０１はエミュレーション２０６に入力データ２０２を渡すと、エミュレーション２０６は入力データ２０２を解析してイメージページ２０３を作成する。この際、イメージページ２０３はページメモリを１つ必要とするので、これを確保する。イメージページ２０３の作成が完了すると、メモリ圧縮部２０７を用いて圧縮ページ２０４を生成し、イメージページ２０３およびそのページメモリを解放する。
【００１７】
そして、プリントエンジン１１０が空いている場合、メモリ展開部２０８により圧縮ページ２０４をプリント用イメージページ２０５に展開し、展開されたプリント用イメージページ２０５を、エンジンデバイスドライバ１０９を介してプリントエンジン１１０に渡して紙に出力する。このとき、プリント用イメージページ２０５に用いられるページメモリは、イメージページ２０３で確保されたものとは全く別に用意されている。
【００１８】
図４はジョブがページメモリの確保を要求する際のエミュレーション２０６の処理手順を示すフローチャートである。このエミュレーション２０６に関する処理プログラムはＲＯＭ１０６に格納されており、ＣＰＵ１０５によって実行される。
【００１９】
まず、ジョブ２０１からエミュレーション２０６が入力データを受け取ると（ステップＳ１）、入力データ２０２を解析する（ステップＳ２）。ページ発生要因があるか否かを判別し（ステップＳ３）、ページ発生要因がない場合、入力データ２０２の内容にしたがって描画その他の処理（イメージページ作成）を行う（ステップＳ４）。そして、全ページが終了したか否かを判別し（ステップＳ５）、全ページが終了していない場合、ステップＳ２に戻る。一方、全ページが終了している場合、本処理を終了する。
【００２０】
一方、ステップＳ３でページ発生要因がある場合、ページメモリ管理部３４０にページメモリを要求する（ステップＳ６）。そして、ページメモリを獲得できるまで待機し（ステップＳ７、Ｓ８）、獲得できた場合、ステップＳ５の処理に移行して処理を継続する。
【００２１】
図５はページメモリ管理部３４０の処理手順を示すフローチャートである。このページメモリ管理部３４０に関する処理プログラムはＲＯＭ１０６に格納されており、エミュレーション２０６からのメモリ獲得要求が発生する度にＣＰＵ１０５によって実行される。
【００２２】
まず、エミュレーション２０６からのメモリ獲得要求を取り出し（ステップＳ１１）、ページメモリに空きがあるか否かを判別する（ステップＳ１２）。空きがない場合、ステップＳ１２に戻って空くまで待機する（ステップＳ１３）。ページメモリに空きができると、エミュレーション２０６を使用してページメモリを要求（使用）しているジョブの総数を調べる（ステップＳ１４）。
【００２３】
１ジョブ当たりの取り得る上限値を計算し（ステップＳ１５）、要求元ジョブによって既に使用されているページメモリの数が、ステップＳ１５で計算された上限値を越えているか、あるいは要求に応じて与えると越えてしまうか否かを判別する（ステップＳ１６）。ここで、既にジョブが使用しているページメモリは、前述した図３に示すように、ページメモリ管理部３４０によって管理（認識）されている。要求元ジョブによって既に使用されているページメモリの数が、ステップＳ１５で計算された上限値を越えている場合、あるいは要求に応じて与えると越えてしまう場合、この要求を後回しにして（ステップＳ１８）、ステップＳ１１の処理に戻る。一方、ステップＳ１６で上限値を越えない場合、要求元にページメモリを渡し（ステップＳ１７）、ステップＳ１１の処理に戻る。
【００２４】
具体的に、図３に示すように、ページメモリが６枚ある場合、ジョブＡ３（３１０）しか存在しないと、ページメモリ管理部３４０は、ジョブＡ３からページメモリの要求があると、全ページメモリをジョブＡ（３１０）に提供する。
【００２５】
この後、ジョブＢ（３２０）が発生し、そこからページメモリの要求があった場合、最大３枚までページメモリをジョブＢに提供する。図３では、斜線で示されるページメモリ４、５、６がジョブＡから解放されてジョブＢに確保されていることが分かる。さらに、ジョブＣ（３３０）は既に処理を開始しているが、非常に処理が重く、なかなかページを作れない状況であっても、ページメモリ管理部３４０に対してページメモリを要求すれば、他のジョブがページメモリをもっと要求しているような状態でも、１枚あるいは２枚の場合、すぐにページメモリを得ることができる。
【００２６】
尚、上記実施形態では、ジョブの総数に対してページメモリの枚数が十分に多い場合を想定しているが、仮に、ジョブの総数がページメモリの枚数を越えてしまうような場合、ジョブの投入を禁止するようにしてもよい。
【００２７】
このように、上記実施形態では、ジョブが１つしか存在しない場合、全てのページメモリを与えることができる一方、複数のジョブが存在する場合、取り得るページメモリ数に制限を加えることにより、１つのジョブのみが占有して他のジョブの処理が停止してしまうことを回避できる。さらには、入力データを転送するパラレルインターフェースやネットワークがタイムアウトしてしまうことも回避できる。
【００２８】
したがって、同時に複数のジョブを並行処理する場合、一部のジョブに処理が集中することなく処理を分散させて、印刷装置全体としての効率を維持できる。
【００２９】
以上が本発明の実施の形態の説明であるが、本発明は、これら実施の形態の構成に限られるものではなく、特許請求の範囲で示した機能、または実施の形態の構成が持つ機能が達成できる構成であればどのようなものであっても適用可能である。
【００３０】
例えば、上記実施形態では、各ジョブが獲得可能なページメモリの上限値は均等に設定されていたが、所定のルールにしたがって、ジョブ毎に獲得可能なページメモリの上限値が異なるように設定してもよい。例えば、入力順が早いジョブ程、ページメモリの上限値を高く設定するようにしてもよい。
【００３１】
また、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを印刷装置に供給することによって達成される場合にも適用できることはいうまでもない。この場合、プログラムコード自体が本発明の新規な機能を実現することになり、そのプログラム自体およびそのプログラムを記憶した記憶媒体は本発明を構成することになる。
【００３２】
上記実施形態では、図４、図５のフローチャートに示すプログラムコードは記憶媒体であるＲＯＭに格納されている。プログラムコードを供給する記憶媒体としては、ＲＯＭに限らず、例えばフレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＤＶＤ、不揮発性のメモリカードなどを用いることができる。
【００３３】
【発明の効果】
本発明によれば、同時に複数のジョブを並行処理する場合、一部のジョブに処理が集中することなく、処理を分散させて全体としての効率を維持できる。
【図面の簡単な説明】
【図１】実施の形態における印刷装置の構成を示すブロック図である。
【図２】ジョブのモデルを示す図である。
【図３】ページメモリ管理部３４０によってジョブ毎に管理されるページメモリを示す図である。
【図４】ジョブがページメモリの確保を要求する際のエミュレーション２０６の処理手順を示すフローチャートである。
【図５】ページメモリ管理部３４０の処理手順を示すフローチャートである。
【符号の説明】
１０２　印刷装置
１０３　コントローラ
１０５　ＣＰＵ
１０６　ＲＯＭ
２０１　ジョブ
２０６　エミュレーション
２０７　メモリ圧縮部
２０８　メモリ展開部
３４０　メモリ管理部
【図１】
2004110626.tif 000003
【図２】
2004110626.tif 000004
【図３】
2004110626.tif 000005
【図４】
2004110626.tif 000006
【図５】
2004110626.tif 000007