(57)【要約】【課題】  印刷データの待ち受け時間を利用してガベージコレクション処理を行うことにより、印刷処理に影響を与えることなくＲＡＭの有効利用ができるようにする。【解決手段】  入力処理部２は、外部又は内部のファイルから入力データを受け取って主制御部３に渡す。ガベージ処理部５は、入力処理部２に入力データがなくなったとき、ガベージコレクション処理を１ステップ実行して主制御部３に制御を戻す。ガベージ処理部５は、入力処理部２に入力データがないときは、その動作を繰り返す。【選択図】      図１
2006344184.tif 000002
【特許請求の範囲】
【請求項１】
印刷処理を統括制御する主制御部と、入力データを受け取って前記主制御部に渡す入力処理部と、前記入力処理部に入力データがないとき、ガベージコレクション処理を実行するガベージ処理部とを備えたことを特徴とする画像形成装置。
【請求項２】
前記ガベージ処理部は、前記入力処理部に入力データがないとき、ガベージコレクション処理を１ステップだけ実行してから前記主制御部に制御を戻す動作を繰り返すことを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記画像形成装置は更に、メモリポインタテーブルとメモリ管理テーブルを有するメモリ管理部を備え、メモリ管理テーブルにはＲＡＭの使用領域ごとにその開始アドレスとメモリサイズを記憶し、メモリポインタテーブルにはＲＡＭの使用領域ごとのメモリ管理テーブルの開始アドレスへのポインタを記憶することを特徴とする請求項１または請求項２に記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタ、あるいは、プリンタ，コピー機，ファクシミリ，スキャナ等の機能を複合して有する複合機等、パソコン，ファイル装置等から印刷データを受信して印刷を行う画像形成装置に関するものである。本発明は、特に、印刷処理を統括制御する主制御部と、入力データを受け取って前記主制御部に渡す入力処理部と、前記入力処理部に入力データがないとき、ガベージコレクション処理を実行するようにした画像形成装置に関するものである。
【背景技術】
【０００２】
プリンタ，複合機等の画像形成装置では、パソコン，ファイル装置等からプリンタ言語データを受けて、プリンタ言語を解釈し、描画イメージを生成し、描画装置に送る。そして、描画イメージを生成する課程で、ワークエリアとして、一時的にＲＡＭの一部エリアを使う。
【０００３】
その際、従来の画像形成装置では、印刷処理の途中でＲＡＭのワークエリアが確保できなかったとき、ガベージコレクション処理を実行して、必要なエリアを確保するようにしていた。しかしながら、ガベージコレクション処理を実行すると時間がかかって、印刷処理時間が長くなってしまう。
【０００４】
一方、例えば、特許文献１（特開２００５−２５７２７号公報）に示されるように、ＲＡＭを使用する一般的な情報処理装置において、アプリケーションプログラムからガベージコレクション処理の要求があったとき、ＲＡＭの空きエリアの合計量を算出し、その結果に基づいてガベージコレクション処理を実行するか否かを決定することにより、ガベージコレクション処理による効率低下を防ぐようにした情報処理装置が知られている。
【０００５】
すなわち、この特許文献１に開示された情報処理装置は、メモリ中の使用されていない記憶領域を回収するガベージコレクション処理によって、回収した記憶領域をプログラムに割り当てる情報記憶制御装置であって、メモリはプログラムの実行に必要な記憶領域を有し、空きメモリ算出手段は、ガベージコレクション処理前のメモリの空き記憶領域の合計量を算出する。ガベージコレクション制御手段は、ガベージコレクション処理要求手段からのメモリを対象としたガベージコレクション処理の要求に対し、算出したガベージコレクション処理前のメモリの空き記憶領域の合計量に基づいて、要求するガベージコレクション処理を実行するか否かを制御するように構成されたものである。
【０００６】
また、ガベージコレクション機能を有するプリンタ等の画像形成装置としては、例えば、下記の特許文献２（特開平１１−１２９５５３号公報）に開示された印刷システムが知られている。この印刷システムは、文字セット削除命令によって文字データが削除されると、削除された文字が占めていたメモリ空間が歯抜け状態になり、その領域を再使用するためのガベージコレクション処理に時間がかかる。つまり、プリンタ側の登録及び削除処理による負荷が高く、連続印刷に適さないという課題を解消するものであり、登録及び削除に伴う処理の負荷を軽減させ、少ないメモリ空間で連続ページ印刷を高速に行える印刷システム及び印刷装置及びその制御方法を提供することを目的としたものである。
【０００７】
すなわち、この特許文献２に開示されたプリンタシステムは、文書中の文字は識別子を含む文字レコードでプリンタに登録され、文字の印刷はその識別子と位置をプリンタに送信して行う。送られた文字レコードは固定長でセルメモリＡに格納される。文字レコードが増えれば新たなセルメモリＢが割り当てられるが、この際に、古いセルメモリＡの文字レコード数と、新しいセルメモリＢの空き容量を比較し、もし後者が大きければ、セルメモリＡ内の文字レコードをセルメモリＢに移してセルメモリＡを解放する。文字レコードはすべて固定長であり、移動の範囲がセルメモリ間に限られているため、高速にメモリのガベージコレクションが行え、メモリ量を減らすことができるようにしたものである。
【０００８】
【特許文献１】特開２００５−２５７２７号公報（図１）
【特許文献２】特開平１１−１２９５５３号公報（図１）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記従来の画像形成装置の制御装置に、特許文献１、特許文献２に示されるような技術を適用すれば、ガベージコレクション処理による効率低下をある程度は抑えることができるが、ＲＡＭの空きエリアの合計量が少なくなったときは、印刷処理の途中でガベージコレクション処理を実行することになるため、印刷処理時間が長くなってしまうという問題点があった。
【００１０】
本発明は、そのような問題点に鑑み、印刷データの待ち受け時間を極力利用してガベージコレクション処理を行うことにより、印刷処理に影響を与えることなくＲＡＭの有効利用ができるようにすることを目的とするものである。
【課題を解決するための手段】
【００１１】
前記課題を解決するため、本願の請求項１にかかる発明は、印刷処理を統括制御する主制御部と、入力データを受け取って前記主制御部に渡す入力処理部と、前記入力処理部に入力データがないとき、ガベージコレクション処理を実行するガベージ処理部とを備えたことを特徴とする。
【００１２】
また、本願の請求項２にかかる発明は、請求項１にかかる発明において、前記ガベージ処理部は、前記入力処理部に入力データがないとき、ガベージコレクション処理を１ステップだけ実行してから前記主制御部に制御を戻す動作を繰り返すことを特徴とする。
【００１３】
また、本願の請求項３にかかる発明は、請求項１または請求項２にかかる発明において、前記画像形成装置は更に、メモリポインタテーブルとメモリ管理テーブルを有するメモリ管理部を備え、メモリ管理テーブルにはＲＡＭの使用領域ごとにその開始アドレスとメモリサイズを記憶し、メモリポインタテーブルにはＲＡＭの使用領域ごとのメモリ管理テーブルの開始アドレスへのポインタを記憶することを特徴とする。
【発明の効果】
【００１４】
本発明の画像形成装置は、次のような効果を奏する。
すなわち、請求項１にかかる発明においては、入力処理部に入力データがないとき、ガベージコレクション処理を実行するようにしたので、印刷データの待ち受け時間を利用してガベージコレクション処理を行うことにより、印刷処理に影響を与えることなくＲＡＭの有効利用ができるようになる。
【００１５】
また、請求項２にかかる発明においては、請求項１にかかる画像形成装置において、ガベージコレクション処理を１ステップだけ実行してから主制御部に制御を戻す動作を繰り返すようにしたので、印刷処理への影響を最小限に抑えることができる。
【００１６】
請求項３にかかる発明においては、請求項１または請求項２にかかる発明において、前記画像形成装置はメモリポインタテーブルとメモリ管理テーブルを有するメモリ管理部を備え、メモリ管理テーブルにはＲＡＭの使用領域ごとにその開始アドレスとメモリサイズを記憶し、メモリポインタテーブルにはＲＡＭの使用領域ごとのメモリ管理テーブルの開始アドレスへのポインタを記憶するように構成したので、主制御部はメモリ管理部を使用して、入力処理部に入力データがないとき、ガベージコレクション処理を１ステップだけ実行する制御を行うことができるようになる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の具体例を実施例及び図面を用いて詳細に説明する。
【実施例１】
【００１８】
図１は、本発明の実施例にかかる画像形成装置の制御ブロック図である。ファイル１には、ホストコンピュータから受信した、プリンタ言語で記述された印刷データが格納されている。入力処理部２は、ファイル１から印刷データを入力して、主制御部３に送る。主制御部３は、プリンタ言語を解釈して、描画イメージを生成し、描画処理部４に送る。また、主制御部３は、描画イメージを生成する際に、生成処理に必要なメモリサイズをメモリ管理部６に要求する。メモリ管理部６は、その要求を受けて、ＲＡＭ７内のメモリエリアを割り当て、主制御部３に返す。なお、ガベージ処理部５は、ＲＡＭ７内の細かく分断された未使用のメモリエリアをまとめて使用可能な連続エリアを作り出すものであり、いわゆるガベージコレクション処理を司る制御要素である。
【００１９】
メモリ管理部６によるメモリ管理は、次のようにして行われる。メモリ管理部６には、図２に示すような、メモリポインタテーブルとメモリ管理テーブルが置かれ、それらを使ってＲＡＭ７は管理される。
【００２０】
図２について説明する。一つ目のメモリエリア取得で、ＲＡＭ７の先頭からエリアが取得され、その開始アドレスとデータ長が、メモリ開始アドレス（１）とメモリサイズ（１）としてメモリ管理テーブルに格納される。また、メモリポインタテーブルには、メモリ開始アドレス（１）へのポインタがメモリポインタ（１）として格納される。そして、主制御部３には、メモリポインタテーブルのメモリポインタ（１）へのアドレスが渡される。
【００２１】
二つ目のメモリエリア取得では、メモリ開始アドレス（１）＋メモリサイズ（１）の位置からエリアが取得され、その開始アドレスとデータ長が、メモリ開始アドレス（２）とメモリサイズ（２）としてメモリ管理テーブルに格納される。また、メモリポインタテーブルには、メモリ開始アドレス（２）へのポインタがメモリポインタ（２）として格納される。そして、主制御部３には、メモリポインタテーブルのメモリポインタ（２）へのアドレスが渡される。
【００２２】
同様に、三つ目のメモリエリア取得では、メモリ開始アドレス（２）＋メモリサイズ（２）の位置からエリアが取得され、その開始アドレスとデータ長が、メモリ開始アドレス（３）とメモリサイズ（３）としてメモリ管理テーブルに格納される。また、メモリポインタテーブルには、メモリ開始アドレス（３）へのポインタがメモリポインタ（３）として格納される。そして、主制御部３には、メモリポインタテーブルのメモリポインタ（３）へのアドレスが渡される。
【００２３】
そのような状態から、いずれかのメモリ使用エリアのデータが使用されて、そのメモリエリアが不要になった場合を説明する。例えば、メモリポインタ（２）が示すメモリエリアが不要になって、それを消去する場合、図３に示すように、メモリ管理テーブル中でメモリポインタ（２）にリンクされているメモリ開始アドレス（２）とメモリサイズ（２）を削除し、それ以下のメモリ開始アドレスとメモリサイズを一つずつ上にずらす。そして、最後のメモリ開始アドレスとメモリサイズはＮＵＬＬ（空白）で埋める。
【００２４】
図３の状態で、主制御部３から、あるメモリサイズでメモリの使用要求があったとき、メモリ管理部６は、メモリ管理テーブルを参照して、要求されたメモリサイズの空きエリアがＲＡＭ７に残っているか否かを判別する。まず、利用可能な最大量は、（ＲＡＭ７のメモリ容量）−（使用中メモリエリアのメモリサイズの総計）で得られる。また、図中Ａ，Ｂのエリアのように、エリアが連続していてガベージコレクション処理を行わなくても使用可能なエリアは、それぞれ、メモリ管理テーブル中の｛開始アドレス（ｎ＋１）｝−｛開始アドレス（ｎ）＋メモリサイズ（ｎ）｝で得られる。
【００２５】
そのようにして調べた結果、ガベージコレクション処理が必要になったら、メモリ管理部６は、ガベージ処理部５に通知してガベージコレクション処理を実行させる。ガベージ処理部５は、メモリポインタテーブルとメモリ管理テーブルを参照して、ＲＡＭ７の先頭から、空きエリアを探していき、空きエリアＡを見つけたら、空きエリアＡに続く使用エリアの開始アドレス（３）からメモリサイズ（３）分のデータを、開始アドレス（１）＋メモリサイズ（１）の位置に、バイト単位でコピーする。そして、メモリ管理テーブルの開始アドレス（３）を、開始アドレス（１）＋メモリサイズ（１）の値に更新する。本発明では、このような１エリア分のデータ移動と開始アドレスの更新をもって、ガベージコレクション処理の１ステップであるとする。
【００２６】
そのときの状態を図４に示す。なお、この例では、わずか三つのメモリエリアの場合で説明したが、実際は、数百から数万のメモリエリアを使用しており、ガベージコレクション処理には非常に時間がかかる。
【００２７】
そこで、本発明の画像形成装置では、印刷データの待ち受け時間を利用してガベージコレクション処理を行うことにより、印刷処理に影響を与えることなくＲＡＭ７の有効利用ができるようにした。しかも、ガベージコレクション処理は、処理を１ステップずつ分割して行い、１メモリエリア分の処理が完了する度毎に、入力処理部２の状況をチェックし、入力データがあったらそちらの処理を優先的に行い、極力、印刷処理に影響を与えないようにする。
【００２８】
以下に、図５のフローチャートを参照しながら、本発明の画像形成装置の処理を説明する。入力処理部２は、ファイル１に入力データがあるか否かを判別し（ステップＳ１）、なければ、入力処理部２は、ＲＡＭ７の先頭から順に調べて、使用済みの空きエリアがあるか否かを判別する（ステップＳ２）。そして、空きエリアがあれば、ガベージ処理部５を起動させて、その空きエリアの次に位置するメモリエリアに格納されているデータを、バイト単位で空きエリアにコピーさせる（ステップＳ３）。コピーが完了したら、メモリ管理テーブルを更新し（ステップＳ４）、制御をステップ１に戻し、まだ入力データがなければ、次の空きエリアについて同様な処理を繰り返し実行する。
【００２９】
このステップＳ２〜Ｓ４の処理が、本発明におけるガベージコレクション処理の１ステップを構成する一連の処理シーケンスである。
【００３０】
ステップＳ１で、入力データがあれば、メモリ管理部６に、必要なメモリサイズとジョブを渡す（ステップＳ５）。それを受けて、メモリ管理部６は、メモリ管理テーブルを参照して、受け取ったジョブに必要なメモリエリアがＲＡＭ７内に確保できるか否かを判別する（ステップＳ６）。その結果、確保できなければ、ガベージ処理部５にガベージコレクション処理を実行させる（ステップＳ７）。この処理は、多量の入力データが連続して入力され、ステップＳ２〜Ｓ４の処理を実行する余裕がない時に必要になり、その場合は、印刷処理を一時待たせることになる。
【００３１】
ステップＳ６でメモリエリアが確保できたら、あるいは、ステップＳ７のガベージコレクション処理が終了したら、メモリ管理部６は、その開始アドレスを主制御部３に渡す（ステップＳ８）。また、その時、メモリ管理部６は、メモリエリアの開始アドレスとメモリサイズを自身のメモリ管理テーブルに記憶して、ＲＡＭ７の管理に使う。メモリ管理部６からの通知を受けて、主制御部３は、渡されたメモリエリアを使って印刷処理を実行する（ステップＳ９）。
【００３２】
主制御部３は、処理が終わってメモリエリアが不要になったら、メモリ管理部６にメモリエリアの開始アドレスを返し、そのメモリエリアの開放を要求する（ステップＳ１０）。それを受けて、メモリ管理部６は、該当エリアの開始アドレスとメモリサイズをメモリ管理テーブルから削除する（ステップＳ１１）。
【００３３】
以上説明したように、本発明にかかる画像形成装置によれば、入力処理部に入力データがないとき、ガベージコレクション処理を実行するようにしたので、印刷データの待ち受け時間を利用してガベージコレクション処理を行うことにより、印刷処理に影響を与えることなくＲＡＭの有効利用ができるようになる。また、入力処理部に入力データがないとき、ガベージコレクション処理を１ステップだけ実行してから主制御部に制御を戻す動作を繰り返すようにしたので、印刷処理への影響を最小限に抑えることができるようになる。
【図面の簡単な説明】
【００３４】
【図１】本発明の実施例にかかる画像形成装置の制御ブロック図である。
【図２】メモリポインタテーブル，メモリ管理テーブルとＲＡＭとの関係を示す図である。
【図３】ＲＡＭ中の一部のデータを消去した状態を示す図である。
【図４】本発明にかかるガベージコレクション処理の概念を説明するための説明図である。
【図５】本発明の実施例にかかるガベージコレクション処理の手順を示すフローチャートである。
【符号の説明】
【００３５】
１・・・ファイル
２・・・入力処理部
３・・・主制御部
４・・・描画処理部
５・・・ガベージ処理部
６・・・メモリ管理部
７・・・ＲＡＭ
【図１】
2006344184.tif 000003
【図２】
2006344184.tif 000004
【図３】
2006344184.tif 000005
【図４】
2006344184.tif 000006
【図５】
2006344184.tif 000007