(57)【要約】【課題】  キャッシュフラッシュ処理に要する時間を削減して、データ処理の高速化を実現する。【解決手段】  メモリ管理部によるガーベージコレクションが行われたか否かをチェック部が判断し（Ｓ９）、ガーベージコレクションが行われていれば、チェック部はキャッシュフラッシュ部にキャッシュフラッシュ処理を行わせ（Ｓ１０でＹＥＳ、Ｓ４）、ガーベージコレクションが行われていなければ、チェック部はキャッシュフラッシュ部にキャッシュフラッシュ処理を行わせないように制御する（Ｓ１０でＮＯ、Ｓ５）。これにより、キャッシュフラッシュ処理の回数を低減する。【選択図】      図２
2006338194.tif 000002
【特許請求の範囲】
【請求項１】
メモリ内の記憶領域に書き込まれたデータの処理をＡＳＩＣに実行させるデータ処理システムであって、
キャッシュに記憶されているデータを前記メモリ内の記憶領域に書き込むキャッシュフラッシュ処理を行うキャッシュフラッシュ手段と、
前記キャッシュフラッシュ処理によりデータが書き込まれた前記記憶領域のアドレス情報を前記ＡＳＩＣに通知するアドレス情報通知手段と、
前記アドレス情報通知手段から得たアドレス情報が示す前記記憶領域に書き込まれているデータが前記ＡＳＩＣにより処理され、当該処理後のデータが前記メモリに書き込まれる場合に、必要に応じて当該メモリの記憶領域の再配置処理を行い、当該書込対象となるデータの書込可能領域を確保する再配置処理手段と、
前記再配置処理手段による再配置処理が行われたか否かを判断する再配置有無判断手段と、
前記再配置処理が行われたことが前記再配置有無判断手段によって判断された場合に前記キャッシュフラッシュ手段に前記キャッシュフラッシュ処理を行わせ、前記再配置処理が行われていないと前記再配置有無判断手段によって判断された場合には、前記キャッシュフラッシュ手段によるキャッシュフラッシュ処理を禁止する禁止手段と
を備えたデータ処理システム。
【請求項２】
前記ＡＳＩＣの処理対象となるデータが書き込まれている前記メモリ内の記憶領域が、前記再配置処理手段による再配置処理の対象となったか否かを判断する判断手段を備え、
前記禁止手段は、前記再配置処理が行われたことが前記再配置有無判断手段によって判断された場合であっても、前記ＡＳＩＣの処理対象となるデータが書き込まれている前記記憶領域が、前記再配置処理の対象になっていないと前記判断手段によって判断された場合は、前記キャッシュフラッシュ手段によるキャッシュフラッシュ処理を禁止する請求項１に記載のデータ処理システム。
【請求項３】
複数のタスクのそれぞれを示す各識別子に基づいて、各タスク毎に、前記キャッシュフラッシュ手段によるキャッシュフラッシュ処理を禁止するか否かの制御を行う請求項１又は請求項２に記載のデータ処理システム。
【請求項４】
メモリ内の記憶領域に書き込まれたデータの処理をＡＳＩＣに実行させるデータ処理プログラムであって、
キャッシュに記憶されているデータを前記メモリ内の記憶領域に書き込むキャッシュフラッシュ処理を行うキャッシュフラッシュ手段と、
前記キャッシュフラッシュ処理によりデータが書き込まれた前記記憶領域のアドレス情報を前記ＡＳＩＣに通知するアドレス情報通知手段と、
前記アドレス情報通知手段から得たアドレス情報が示す前記記憶領域に書き込まれているデータが前記ＡＳＩＣにより処理され、当該処理後のデータが前記メモリに書き込まれる場合に、必要に応じて当該メモリの記憶領域の再配置処理を行い、当該書込対象となるデータの書込可能領域を確保する再配置処理手段と、
前記再配置処理手段による再配置処理が行われたか否かを判断する再配置有無判断手段と、
前記再配置処理が行われたことが前記再配置有無判断手段によって判断された場合に前記キャッシュフラッシュ手段に前記キャッシュフラッシュ処理を行わせ、前記再配置処理が行われていないと前記再配置有無判断手段によって判断された場合には、前記キャッシュフラッシュ手段によるキャッシュフラッシュ処理を禁止する禁止手段と
を備えるように、コンピュータを動作させるデータ処理プログラム。
【請求項５】
メモリ内の記憶領域に書き込まれたデータの処理をＡＳＩＣに実行させるデータ処理方法であって、
キャッシュに記憶されているデータを前記メモリ内の記憶領域に書き込むキャッシュフラッシュ処理を行わせる行程と、
前記キャッシュフラッシュ処理によりデータが書き込まれた前記記憶領域のアドレス情報を前記ＡＳＩＣに通知する行程と、
前記通知されたアドレス情報が示す前記記憶領域に書き込まれているデータが前記ＡＳＩＣにより処理され、当該処理後のデータが前記メモリに書き込まれる場合に、必要に応じて当該メモリの記憶領域の再配置処理を行い、当該書込対象となるデータの書込可能領域を確保する行程と、
前記再配置処理が行われたか否かを判断する行程と、
前記再配置処理が行われたと判断された場合に前記キャッシュフラッシュ手段に前記キャッシュフラッシュ処理を行わせ、前記再配置処理が行われていないと判断された場合には、前記キャッシュフラッシュ処理を禁止する行程と
からなるデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ内の記憶領域に書き込まれたデータの処理をＡＳＩＣに実行させるデータ処理技術に関する。適用分野の例としては、プリンタや複合機において描画コマンドを解釈し、イメージ画像等に対して画像処理を施して、画像を形成する回路の制御等がある。
【背景技術】
【０００２】
プリンタや、複合機（プリンタ機能、コピー機能、スキャナ機能などの複合機能を備えた画像形成装置）等では、印字データをホストコンピュータから受け取り、画像を形成して印字するという処理が行われる。この処理過程においては、ホストコンピュータから受け取る印字データのサイズは可変であり、生成する画像データも印字モードに応じて様々に変化するため、画像データ生成に際してのメモリ使用時には、処理対象となるデータに対するメモリ領域の割当て、不要になった領域の開放、メモリ領域の再配置（後述のガーベージコレクション）を行うメモリ管理制御が必要である。
【０００３】
上記メモリの再配置に際しては、セグメント方式やページング方式のメモリ管理機能（MMU）を有しない低機能のCPUを使用する場合、要求されたメモリ領域を連続した状態で確保する必要があるため、小サイズの空きメモリ領域が散在しているときには、割当て済みのメモリ領域を移動して連続したメモリ領域を確保するガーベージコレクションと呼ばれる処理が行われる。なお、ガーベージコレクションについての先行技術文献として下記特許文献１があり、プリンタにおけるメモリ管理手法についてはの先行技術文献として下記特許文献２がある。
【０００４】
また、ライトバックモードでキャッシュを使用する場合には、ＣＰＵにより常にキャッシュを通してＤＲＡＭ等のメモリにデータが生成される。そして、当該メモリに生成されたデータの処理をＡＳＩＣ（Application Specific Integrated Circuit ：特定用途向け集積回路）が実行する場合、予め取得しておいたアドレス情報が示すメモリ領域からデータが読み出され、ＡＳＩＣによる処理が行われる。しかし、ＡＳＩＣがメモリからデータを読み出す時に、既に上記ガーベージコレクションが実行されていると、処理対象となるデータをメモリから読み出すことができない。そこで、キャッシュフラッシュを実行することで、処理対象データが正確に読み出されるようにしている。
【０００５】
例えば、プリンタの画像処理においては、ホストコンピュータから受信した種々のプリンタ記述言語（PDL）を、抽象度の低い描画コマンドに詳細化してからＡＳＩＣに処理させるが、この描画コマンドの生成は1ページ毎にまとめて生成する必要があり、バンド方式を採用しているシステムであっても、ページの途中で描画処理を開始することはできない。1ページ分の描画コマンドが生成された後は、バンド単位に描画し、圧縮後、印字処理時に伸張するというサイクルが繰り返されるが、この過程において、描画後には圧縮データを保持する領域が確保され、圧縮後は元の描画領域は不要となるので開放されて再利用される。つまり、バンド単位でメモリの確保と開放が頻繁に行われ、圧縮データを保持するためのメモリ領域が不足した場合には、ガーベージコレクションによる再配置が行われて、必要領域が確保される。ガーベージコレクションが実行されると、それまでにメモリに生成されていた描画コマンドやイメージ等の元データの位置が移動してしまう場合があるため、バンド単位で常にキャッシュフラッシュ処理を行うようにしている。
【特許文献１】特開２００１−１８４２５４号公報
【特許文献２】特開２００２−３５１７３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記のように常にキャッシュフラッシュ処理を実行していると、データ処理に長時間を要することになり、高速にデータ処理を行うことができない。近年は、ＣＰＵに大規模な２次キャッシュが実装され、キャッシュフラッシュ処理に要する時間も増大しているため、高速にデータ処理を行うための改善が望まれている。
【０００７】
本発明は、上記の問題を解決するためになされたもので、キャッシュフラッシュ処理に要する時間を削減して、データ処理の高速化を実現することを目的とするものである。
【課題を解決するための手段】
【０００８】
本発明の請求項１に記載の発明は、メモリ内の記憶領域に書き込まれたデータの処理をＡＳＩＣに実行させるデータ処理システムであって、
キャッシュに記憶されているデータを前記メモリ内の記憶領域に書き込むキャッシュフラッシュ処理を行うキャッシュフラッシュ手段と、
前記キャッシュフラッシュ処理によりデータが書き込まれた前記記憶領域のアドレス情報を前記ＡＳＩＣに通知するアドレス情報通知手段と、
前記アドレス情報通知手段から得たアドレス情報が示す前記記憶領域に書き込まれているデータが前記ＡＳＩＣにより処理され、当該処理後のデータが前記メモリに書き込まれる場合に、必要に応じて当該メモリの記憶領域の再配置処理を行い、当該書込対象となるデータの書込可能領域を確保する再配置処理手段と、
前記再配置処理手段による再配置処理が行われたか否かを判断する再配置有無判断手段と、
前記再配置処理が行われたことが前記再配置有無判断手段によって判断された場合に前記キャッシュフラッシュ手段に前記キャッシュフラッシュ処理を行わせ、前記再配置処理が行われていないと前記再配置有無判断手段によって判断された場合には、前記キャッシュフラッシュ手段によるキャッシュフラッシュ処理を禁止する禁止手段と
を備えたものである。
【０００９】
この発明では、再配置処理手段による再配置処理が行われたか否かを再配置有無判断手段が判断し、この判断結果に応じて、禁止手段が、キャッシュフラッシュ手段にキャッシュフラッシュ処理を実行させるか否かを制御することで、キャッシュフラッシュ処理の回数を低減するようにしている。
【００１０】
キャッシュフラッシュ処理は、データ記憶領域の再配置処理が行われた場合であっても、ＡＳＩＣが処理対象となるデータを正確に読み出せるようにするために行われるが、メモリへのデータ書込時にデータ記憶領域の再配置が行われるか否かは、データ保持のために要求されるメモリ領域と、その時点でのメモリにおける連続最大空き容量によって決定される。つまり、データ書込のためにメモリ領域を確保しようとしたときに連続空きメモリ容量が足りない場合にのみ再配置処理が行われるだけであり、メモリへのデータ書込時に常にメモリの再配置が行われるわけではない。キャッシュフラッシュ処理は再配置処理が行われた場合にのみ行えば足りるので、再配置処理が行われない場合におけるキャッシュフラッシュ処理を禁止し、キャッシュフラッシュ処理の回数を削減することによって、データ処理のパフォーマンスを向上させるようにしている。
【００１１】
また、請求項２に記載の発明は、請求項１に記載のデータ処理システムであって、前記ＡＳＩＣの処理対象となるデータが書き込まれている前記メモリ内の記憶領域が、前記再配置処理手段による再配置処理の対象となったか否かを判断する判断手段とを備え、
前記禁止手段は、前記再配置処理が行われたことが前記再配置有無判断手段によって判断された場合であっても、前記ＡＳＩＣの処理対象となるデータが書き込まれている前記記憶領域が、前記再配置処理の対象になっていないと前記判断手段によって判断された場合は、前記キャッシュフラッシュ手段によるキャッシュフラッシュ処理を禁止するものである。
【００１２】
この構成では、判断手段が、ＡＳＩＣの処理対象となるデータが書き込まれているデータ記憶領域が、前記再配置処理手段による再配置処理の対象となったか否かを判断し、この判断結果に応じて、禁止手段が、キャッシュフラッシュ手段にキャッシュフラッシュ処理を実行させるか否かを制御するようにして、キャッシュフラッシュ処理の回数を更に低減する。
【００１３】
メモリへのデータ書込時に連続空き容量が足りずメモリの再配置が発生したとしても、再配置処理の対象となり移動されたメモリ領域が、ＡＳＩＣの参照する領域ではない場合は、キャッシュフラッシュを行う必要がないため、不要なキャッシュフラッシュ処理を更に削減して、データ処理のパフォーマンスを一層向上させるようにしている。
【００１４】
また、請求項３に記載の発明は、請求項１又は請求項２に記載のデータ処理システムであって、複数のタスクのそれぞれを示す各識別子に基づいて、各タスク毎に、前記キャッシュフラッシュ手段によるキャッシュフラッシュ処理を禁止するか否かの制御を行うものである。
【００１５】
この構成では、複数のタスクに対してそれぞれの識別子を用いることで、各タスク毎のデータ処理別にキャッシュフラッシュ処理を禁止するか否かを制御する。これにより、複数のタスクに対して、上記キャッシュフラッシュ処理を禁止するか否かの制御が可能になる。
【００１６】
また、請求項４に記載の発明は、メモリ内の記憶領域に書き込まれたデータの処理をＡＳＩＣに実行させるデータ処理プログラムであって、
キャッシュに記憶されているデータを前記メモリ内の記憶領域に書き込むキャッシュフラッシュ処理を行うキャッシュフラッシュ手段と、
前記キャッシュフラッシュ処理によりデータが書き込まれた前記記憶領域のアドレス情報を前記ＡＳＩＣに通知するアドレス情報通知手段と、
前記アドレス情報通知手段から得たアドレス情報が示す前記記憶領域に書き込まれているデータが前記ＡＳＩＣにより処理され、当該処理後のデータが前記メモリに書き込まれる場合に、必要に応じて当該メモリの記憶領域の再配置処理を行い、当該書込対象となるデータの書込可能領域を確保する再配置処理手段と、
前記再配置処理手段による再配置処理が行われたか否かを判断する再配置有無判断手段と、
前記再配置処理が行われたことが前記再配置有無判断手段によって判断された場合に前記キャッシュフラッシュ手段に前記キャッシュフラッシュ処理を行わせ、前記再配置処理が行われていないと前記再配置有無判断手段によって判断された場合には、前記キャッシュフラッシュ手段によるキャッシュフラッシュ処理を禁止する禁止手段と
を備えるように、コンピュータを動作させるものである。
【００１７】
また、請求項５に記載の発明は、メモリ内の記憶領域に書き込まれたデータの処理をＡＳＩＣに実行させるデータ処理方法であって、
キャッシュに記憶されているデータを前記メモリ内の記憶領域に書き込むキャッシュフラッシュ処理を行わせる行程と、
前記キャッシュフラッシュ処理によりデータが書き込まれた前記記憶領域のアドレス情報を前記ＡＳＩＣに通知する行程と、
前記通知されたアドレス情報が示す前記記憶領域に書き込まれているデータが前記ＡＳＩＣにより処理され、当該処理後のデータが前記メモリに書き込まれる場合に、必要に応じて当該メモリの記憶領域の再配置処理を行い、当該書込対象となるデータの書込可能領域を確保する行程と、
前記再配置処理が行われたか否かを判断する行程と、
前記再配置処理が行われたと判断された場合に前記キャッシュフラッシュ手段に前記キャッシュフラッシュ処理を行わせ、前記再配置処理が行われていないと判断された場合には、前記キャッシュフラッシュ処理を禁止する行程と
からなるものである。
【発明の効果】
【００１８】
請求項１、請求項４及び請求項５に記載の発明によれば、再配置処理が行われていない場合におけるキャッシュフラッシュ処理を禁止してキャッシュフラッシュ処理の回数を低減するので、キャッシュフラッシュ処理に要する時間が削減され、データ処理の高速化を実現することができる。
【００１９】
請求項２に記載の発明によれば、メモリへのデータ書込時に連続空き容量が足りずメモリの再配置が発生しても、再配置処理の対象となった移動されたメモリ領域が、ＡＳＩＣの参照する領域ではない場合はキャッシュフラッシュ処理を禁止するので、不要なキャッシュフラッシュ処理が更に削減され、データ処理のパフォーマンスを一層向上させることができる。
【００２０】
請求項３に記載の発明によれば、複数のタスクに対して、上記キャッシュフラッシュ処理を禁止するか否かの制御が可能になる。
【発明を実施するための最良の形態】
【００２１】
本発明の一実施形態について図面を参照して説明する。図１は本発明に係るデータ処理システムの主要部の概略構成を示す図である。以下には、本発明に係るデータ処理システムが画像形成装置に適用される場合を説明する（本発明を画像形成装置のみへの適用に限定する趣旨ではない）。画像形成装置１は、プリンタ、又は少なくともプリンタ機能を備える複合機等である。画像形成装置１は、プリンタ機能において必要となる画像データ処理（印字処理、その他の処理）を行うために、制御部１０、Ｉ／Ｆ（インタフェイス）部１１、ＡＳＩＣ１２、画像形成部１３及びメモリ１５を備える。
【００２２】
制御部１０は、ＣＰＵ等からなり、画像データ処理のために各部の動作制御を司るものである。制御部１０は、図略の記憶装置に記憶されているデータ処理プログラムに基づいて、ＰＤＬ解析部１００、キャッシュフラッシュ部１０１、メモリ管理部１０２及びチェック部１０３としても機能する。また、制御部１０には、キャッシュ１０４が備えられている。ホストコンピュータ２から送られてくるＰＤＬ（Page Description Language）データ（描画コマンド）は、Ｉ／Ｆ部１１を介して、メモリ１５に書き込まれる。ＰＤＬ解析部１００は、メモリ１５に書き込まれたＰＤＬデータを読み出して、バンド単位の中間言語であるディプレイリスト（ＤＬ）に変換する。このディプレイリストはキャッシュ１０４に保持される。キャッシュフラッシュ部（キャッシュフラッシュ手段）１０１は、キャッシュ１０４に書き込まれたディプレイリストを、必要に応じてメモリ１５内の所定領域に書き戻す（キャッシュフラッシュ処理）。
【００２３】
メモリ管理部（アドレス情報通知手段、再配置処理手段）１０２は、メモリ１５内の記憶領域について、各種データに対して割り当てられたそれぞれの領域（ＤＬバッファ領域、圧縮データバッファ領域、バンドバッファ領域等）を管理する。後述するＡＳＩＣ１２の圧縮／伸張部１２２は、メモリ管理部１０２から与えられるメモリマップ情報（アドレス情報）に従って、ＤＲＡＭ（Dynamic Random Access Memory）等からなるメモリ１５上のメモリ空間を、上記ＤＬバッファ領域、圧縮データバッファ領域、バンドバッファ領域として利用する。また、メモリ管理部１０２は、圧縮／伸張部１２２によって圧縮された圧縮データが、予め設定されているメモリ１５内の所定領域に書き込めない場合、すなわち、圧縮データを書き込むための連続空き容量が足りない場合は、ガーベージコレクション（再配置処理）を行って、当該圧縮データを保持できる領域をメモリ１５内の記憶領域に確保する。メモリ管理部１０２は、ガーベージコレクションが行われた場合には、ガーベージコレクションを行った旨を示すフラグを立てる。
【００２４】
チェック部（再配置有無判断手段、禁止手段）１０３は、メモリ管理部１０２が上記フラグ（ガーベージコレクションを行った旨を示すフラグ）を立てているか否かを判別し、当該フラグが立っている場合にはキャッシュフラッシュ処理が必要と判断し、当該フラグが立っていない場合にはキャッシュフラッシュ処理が不要と判断する。
【００２５】
キャッシュフラッシュ部１０１は、キャッシュ１０４に記憶されているデータをメモリ１５に書き込むキャッシュフラッシュ処理を実行するものである。キャッシュフラッシュ部１０１は、チェック部１０３から受け取るキャッシュフラッシュ処理の要不要を示す情報に基づいて、キャッシュフラッシュ処理を行うか否かを制御する。
【００２６】
ＡＳＩＣ（Application Specific Integrated Circuit ：特定用途向け集積回路）１２は、ビットマップ展開部１２１、圧縮／伸張部１２２を備える。ビットマップ展開部１２１は、ディプレイリストをビットマップ展開する。圧縮／伸張部１２２は、(1)バンド毎に展開されたビットマップデータを、例えば、JBIG（Joint Bi-level Image experts Group）等により圧縮すると共に、(2)当該圧縮した画像データを伸張する処理を行う。圧縮／伸張部１２２によって圧縮された画像データは、メモリ１５内の圧縮データバッファ領域に書き込まれ、圧縮／伸張部１２２によって伸張された画像データは、メモリ１５内のバンドバッファ領域に書き込まれる。
【００２７】
画像形成部１３は、圧縮／伸張部１２２によって伸張された画像データをバンド毎に順次受け取って画像形成を行うものである。
【００２８】
画像形成装置１による画像データ処理の流れを簡単に説明する。ホストコンピュータ２からＩ／Ｆ部１１を介して受け取ったＰＤＬデータがメモリ１５に書き込まれると、ＰＤＬ解析部１００が、当該ＰＤＬデータをメモリ１５から読み出してディプレイリスト（ＤＬ）に変換してキャッシュ１０４に保持する。キャッシュフラッシュ部１０１は、当該キャッシュ１０４に保持されているディプレイリストを適宜メモリ１５の所定領域（ＡＳＩＣ１２の参照領域）に書き込む（キャッシュフラッシュ処理）。ＡＳＩＣ１２のビットマップ展開部１２１は、このディプレイリストをバンド単位でビットマップ展開し、圧縮／伸張部１２２が、当該バンド毎のビットマップデータを、JBIGで圧縮して、圧縮データを圧縮データバッファに格納する。圧縮データバッファに格納された圧縮データは、適切なタイミングで圧縮／伸張部１２２によって伸張されてバンドバッファに書き込まれ、当該伸張後のデータが画像形成部１３に対して出力される。
【００２９】
上記印字データ処理時におけるキャッシュフラッシュ制御について説明する。図２は、当該キャッシュフラッシュ制御を示すフローチャートである。ホストコンピュータ２からＩ／Ｆ部１１を介してＰＤＬデータを受け取ると、メモリ１５にＰＤＬデータを保持する（Ｓ１）。メモリ管理部１０２は、本該印字データ処理を行わせるタスクのIDを引数にして、本タスクに基づく印字データ処理に使用する特定領域（後述するガーベージコレクションが行われたか否かを判断すべきメモリ１５内の領域）を示すメモリマップ情報等のメモリ制御情報を取得する（Ｓ２）。このようにタスクのIDを引数にして、各タスクに応じたメモリ１５内の領域について、以下に示す制御を行うことで、複数のタスクに基づく各印字データ処理について、個別に本キャッシュフラッシュ制御を行うことを可能にしている。
【００３０】
続いて、ＰＤＬ解析部１０がメモリ１５からＰＤＬデータを読み出して解析し、キャッシュ１０４にディプレイリストを生成する（Ｓ３）。キャッシュフラッシュ部１０１は、キャッシュフラッシュ処理（キャッシュ１０４に生成されているディプレイリストのメモリ１５の所定領域への書き込み）を実行する（Ｓ４）。制御部１０はＡＳＩＣ１２の起動をかけ（Ｓ５）、メモリ管理部１０２は、ＡＳＩＣ１２に、メモリ１５におけるＡＳＩＣ１２の参照領域を示すメモリマップ情報を送出する。これにより、上記キャッシュフラッシュ処理後、ＡＳＩＣ１２のビットマップ展開部１２１がメモリ１５の所定領域に書き込まれたディプレイリストを読み出してビットマップ展開する。圧縮／伸張部１２２は、展開されたビットマップデータを、例えば、JBIG等により圧縮する（Ｓ６）。
【００３１】
ここで、メモリ１５内における圧縮データバッファの連続空き容量が、上記圧縮／伸張部１２２によって生成された圧縮データ量に対して足りなければ、メモリ管理部１０２はガーベージコレクションを行う。ガーベージコレクションを行った場合、メモリ管理部１０２は、ガーベージコレクションを行った旨を示すフラグを立てる。すなわち、メモリ１５内の、本タスクに基づく印字データ処理に使用する特定領域において、ガーベージコレクションが発生したか否かを判断し、当該特定領域でガーベージコレクションが発生している場合には、ガーベージコレクションを行った旨を示すフラグを立てる。また、上記ガーベージコレクション、フラグを立てるか否かの判断及び処理は、圧縮／伸張部１２２によって圧縮データが生成される毎に行う。これで、1バンド分の画像データ処理が完了する。
【００３２】
ここで、キャッシュフラッシュ部１０１によりメモリ１５に書き込まれたディプレイリストをなす全てのバンドについての処理が終了した場合は（Ｓ７でＹＥＳ）、メモリ管理部１０２は、ガーベージコレクションが発生したか否かの判断対象とするタスクID別の上記特定領域等を示すメモリ制御情報をリセットして（Ｓ８）、処理を終了する。
【００３３】
また、メモリ１５に書き込まれたディプレイリストのうち、処理すべきバンドが残っている場合には（Ｓ７でＮＯ）、チェック部１０３は、メモリ管理部１０２にガーベージコレクションが行われたことを示すフラグが立っているかを検出し（Ｓ９）、キャッシュフラッシュ部１０１に再度キャッシュフラッシュを実行させる否かを判断する。チェック部１０３は、当該フラグが立っている場合（ガーベージコレクションが行われていた場合）、キャッシュフラッシュ部１０１にキャッシュフラッシュを行わせる（Ｓ１０でＹＥＳ，Ｓ４）。すなわち、ＡＳＩＣ１２の圧縮／伸張部１２２が読み出すべきデータを、再度メモリ１５の所定領域に書き出すようにする。これにより、上記ガーベージコレクションにより、メモリ１５内の上記特定領域においてデータ配置が変更されていても、圧縮／伸張部１２２がメモリ１５から読み出すデータは、正確な処理対象データとなる。
【００３４】
また、上記フラグが立っていない場合は（Ｓ１０でＮＯ）、チェック部１０３は、キャッシュフラッシュ部１０１によるキャッシュフラッシュ処理を禁止してキャッシュフラッシュ処理を行わせず（Ｓ１０でＮＯ，Ｓ５）、圧縮／伸張部１２２による処理を行わせる（Ｓ５）。この場合、ガーベージコレクションは行われていないため、圧縮／伸張部１２２の処理対象となるデータが書き込まれているメモリ１５の記憶領域は変わっていないので、キャッシュフラッシュ処理を行わなくても、処理対象とするデータを圧縮／伸張部１２２が正確に読み出すことができる。
【００３５】
なお、本発明は上記実施の形態の構成に限られず種々の変形が可能である。例えば、上記実施形態では、ガーベージコレクションが行われていればキャッシュフラッシュ処理を行わせ、ガーベージコレクションが行われていなければキャッシュフラッシュ処理を行わせないように制御しているが、ガーベージコレクションが行われていた場合であっても、圧縮／伸張部１２２の処理対象となるディプレイリストの書き込まれている領域が、ガーベージコレクションにより移動されていない場合は、キャッシュフラッシュ処理を行わせないようにしてもよい。すなわち、実行中のタスクに基づく印字データ処理で使用しているメモリ１５内の特定領域ではガーベージコレクションが行われたものの、ガーベージコレクションの影響を受けた領域に書き込まれているデータを圧縮／伸張部１２２が参照していない場合は、キャッシュフラッシュ処理を行わせないようにする。
【００３６】
この場合のデータ処理システムの主要部の概略構成を図３に示す。制御部１０には、メモリ１５内における、実行中のタスクに基づく印字データ処理で使用している特定領域の中で、実際に圧縮／伸張部１２２が参照している領域が、ガーベージコレクションにより変更されたか否かを判断する判断部（判断手段）１０６を設ける。この判断部１０６は、プログラムに従って制御部１０が機能する。この判断部１０６は、メモリ管理部１０２から、ガーベージコレクションによるメモリ１５内の記憶領域の再配置時に、再配置による変更後の領域を示すメモリマップ情報と、ガーベージコレクション実行前から圧縮／伸張部１２２が参照している記憶領域を示すアドレス情報とをメモリ管理部１０２から取得し、圧縮／伸張部１２２が参照している記憶領域が、ガーベージコレクションにより移動したかを判別する。
【００３７】
この場合の制御フローを図４に示す。図４では、図２に示した制御と同様の処理については同符号を付して説明を省略する。すなわち、チェック部１０３がメモリ管理部１０２にガーベージコレクションが行われたことを示すフラグが立っているか否かをチェックしたとき（Ｓ９）、当該フラグが立っている場合には（Ｓ１０でＹＥＳ）、判断部１０６が、圧縮／伸張部１２２の参照領域がガーベージコレクションにより移動したかを判別し（Ｓ１１）、圧縮／伸張部１２２の参照領域がガーベージコレクションにより移動していない場合には（Ｓ１１でＮＯ）、チェック部１０３は、キャッシュフラッシュ部１０１によるキャッシュフラッシュ処理を禁止し（Ｓ１１でＮＯ，Ｓ５）、圧縮／伸張部１２２がそれまで通りの参照領域からディプレイリストを読み出して処理を行うようにする（Ｓ５）。圧縮／伸張部１２２の参照領域がガーベージコレクションにより移動した場合には（Ｓ１１でＹＥＳ）、チェック部１０３は、キャッシュフラッシュ部１０１にキャッシュフラッシュ処理を実行させる（Ｓ１１でＹＥＳ，Ｓ４）。ガーベージコレクションが実行されても、圧縮／伸張部１２２の参照領域が移動していない以上、キャッシュフラッシュ処理を行わなくても、正確な処理対象データを読み出すことができる。このような制御を行うことによって、更にキャッシュフラッシュ処理の回数を減らすことができる。
【００３８】
なお、上記各実施形態として説明した図１乃至図４に示す構成及び処理は、あくまでも一例に過ぎず、適宜変更が可能である。
【００３９】
例えば、上記各実施形態では、制御部１０が、図略の記憶装置に記憶されたプログラムに従って、ＰＤＬ解析部１００、キャッシュフラッシュ部１０１、メモリ管理部１０２、チェック部１０３（上記他の実施形態では判断部１０６も含まれる）として機能するとしているが、これら各部は制御部１０内又は外に回路（ハードウェア）として設けられるようにしてもよい。
【００４０】
また、上記各実施形態では、ＰＤＬデータからディプレイリストへの変換処理を制御部１０（ＣＰＵ）で行うとして説明しているが、上記ＰＤＬ解析部１００をＡＳＩＣ内に設け、ＡＳＩＣでＰＤＬデータからディプレイリストへの変換処理を行うように構成してもよい。
【００４１】
また、上記各実施形態では、ホストコンピュータ２から受け取ったＰＤＬデータを一旦メモリ１５に書き込み、これを制御部１０内のＰＤＬ解析部１００が読み出してディプレイリストに変換するとして説明しているが、ホストコンピュータ２からのＰＤＬデータの受け取りを制御部１０（ＣＰＵ）が直接行うように構成してもよい。
【００４２】
なお、上記各実施形態では、本発明をデータ処理システムとして説明したが、本発明は、上述したキャッシュフラッシュ制御をコンピュータに行わせるデータ処理プログラム、又は上述したキャッシュフラッシュ制御をコンピュータによって行うデータ処理方法としても成立する。
【図面の簡単な説明】
【００４３】
【図１】本発明に係るデータ処理システムの主要部の概略構成を示す図である。
【図２】印字データ処理時におけるキャッシュフラッシュ制御を示すフローチャートである。
【図３】本発明の他の実施形態に係るデータ処理システムの主要部の概略構成を示す図である。
【図４】本発明の他の実施形態に係るデータ処理システムによる印字データ処理時のキャッシュフラッシュ制御を示すフローチャートである。
【符号の説明】
【００４４】
１      画像形成装置
２      ホストコンピュータ
１０    制御部
１００  ＰＤＬ解析部
１０１  キャッシュフラッシュ部
１０２  メモリ管理部
１０３  チェック部
１０４  キャッシュ
１０６  判断部
１３    画像形成部
１５    メモリ
１２    ＡＳＩＣ
１２１  ビットマップ展開部
１２２  圧縮／伸張部
【図１】
2006338194.tif 000003
【図２】
2006338194.tif 000004
【図３】
2006338194.tif 000005
【図４】
2006338194.tif 000006