説明

印刷装置におけるメモリ管理用システム及びその方法

【課題】メモリ容量、記憶速度、キャッシュ容量、プロセッサ速度及びその他のシステムパラメータがプリンタ間で異なる印刷環境において、印刷キャッシュメモリの最適化を柔軟に行う。
【解決手段】キャッシュ内にオブジェクトが存在しない場合に参照カウントに初期値を割り当てる工程と、キャッシュ内にオブジェクトが既に存在する場合に参照カウントを第一の重み分だけインクリメントする工程と、ページ終了事象に応じて参照カウントを第二の重み分だけデクリメントする工程と、参照カウントが閾値未満の場合にキャッシュからオブジェクトを削除する工程と、を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、印刷分野に関し、特に、印刷装置におけるメモリ管理用システム及びその方法に関する。
【背景技術】
【0002】
印刷中の文書において再利用される画像及び/又はその他のオブジェクトの高速印刷を促進するために、これらのオブジェクトはキャッシュメモリ内にキャッシュされ得る。キャッシュ済みオブジェクトがその他の(キャッシュ済み、及び、未キャッシュ)オブジェクトによって参照される際、かかる被参照オブジェクトは、その後の処理のために迅速にアクセスされ得る。未使用のオブジェクトによって消費されるメモリ及びその他のリソースが適時に解放されることを確保する一方で、キャッシュメモリの利用を最適に管理することにより、被参照オブジェクトへのより高速なアクセスが可能となる。
【0003】
コンピュータシステムにおいて、キャッシュ済みオブジェクトを管理する一のメカニズムは、参照カウント法と呼ばれる。参照カウント法においては、キャッシュ済みオブジェクトのようなリソースへの外部参照の回数(“参照カウント”)を算出することができ、また、その参照カウントは前記のリソースやオブジェクトと関連付けられ得る。あるオブジェクトがもはや参照されないことを参照カウントが示した場合、そのオブジェクト又はリソースはキャッシュから削除され得る。通常は、アクセスできないようにオブジェクトを効果的にレンダリングすることにより、参照カウントがゼロ、すなわち、オブジェクトが他の何れのオブジェクトによっても参照されないことを意味する値になった場合に割当解除が起きる。参照カウント法における従来の方法では、オブジェクト又はリソースが新たに参照されたときに参照カウントが一つインクリメントされ、オブジェクト又はリソースに対する既存の参照が損なわれたり上書きされたりしたときに参照カウントが一つデクリメントされる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、メモリ容量、記憶速度、キャッシュ容量、プロセッサ速度及びその他のシステムパラメータがプリンタ間で大きく異なる印刷環境においては、上記のような従来のメカニズムは、キャッシュ管理の自由度を制限してしまう。従って、キャッシュ最適化技術において自由度を大幅に改善できる、印刷装置におけるメモリ管理用システム及びその方法が必要となる。
【課題を解決するための手段】
【0005】
開示する実施形態によれば、プリンタにおけるメモリの一部をキャッシュが構成するとともに、少なくとも一の参照カウントに対応付けられた少なくとも一のオブジェクトについてキャッシュメンバーシップを決定するためのシステム及び方法が開示される。いくつかの実施形態において、前記方法は、a)前記キャッシュ内に前記オブジェクトが存在しない場合に前記参照カウントに初期値を割り当てる工程と、b)前記キャッシュ内に前記オブジェクトが既に存在する場合に前記参照カウントを第一の重み分だけインクリメントする工程と、c)ページ終了事象に応じて前記参照カウントを第二の重み分だけデクリメントする工程と、d)前記参照カウントが閾値未満の場合に前記キャッシュから前記オブジェクトを削除する工程と、を備え得る。
【0006】
いくつかの実施形態はまた、ソフトウェア、ファームウェア、及び、コンピュータ読取可能な媒体又はコンピュータ読取可能なメモリを用いてプロセッサにより創造され、記憶され、アクセスされ又は改良されたプログラム命令に関する。ここに記載される方法は、コンピュータ及び/又はプリンタ装置において実行され得る。これらの及びその他の実施形態が、以下に図面を参照してさらに説明される。
【図面の簡単な説明】
【0007】
【図1】画像及びソフトマスクデータ入りの印刷データストリームを処理する例示的システムの構成を説明したブロック図である。
【図2】例示的プリンタの高水準ブロック図である。
【図3】例示的オブジェクト及び潜在的なキャッシュ候補に関するメモリ管理用の例示的アルゴリズムにおける各工程を示したフローチャートである。
【発明を実施するための形態】
【0008】
以下に開示する実施形態によれば、印刷装置におけるメモリ管理用システム及びその方法が提供される。このメモリ管理技術は、印刷装置におけるキャッシュメモリ内のオブジェクトを管理するにあたって自由度を大幅に改善できる最適化技術を含む。オブジェクトは、画像オブジェクト、図形オブジェクト、テキストオブジェクト、フォントオブジェクト、ベクターメタデータオブジェクトに加え、キャッシュされ得るその他のオブジェクトを含んでいてもよい。
【0009】
図形や形状を含み得るベクターメタデータは、しばしばコンテンツを種々の数学的パラメータの観点から記述する。例えば、数学的パラメータは、色データ、形状データ及び/又はテクスチャデータを記述してもよい。さらにベクターメタデータは、四角形、円、等のような形状のみならず、例えば、Adobe Illustrator(登録商標)の線画、図表のようなオブジェクトを含んでいてもよい。ベクターメタデータはまた、二次元の静的又は動的(対話式又は動画)なオブジェクトを記述できるXMLベースのSVG(Scalable Vector Graphics)オブジェクトを含んでいてもよい。SVGオブジェクトは、予めレンダリングされたオブジェクトにグループ分け、型合わせ、変換及び合成されてもよい。キャッシングは、SVG及びその他のベクターメタデータオブジェクトへのアクセスを促進することを支援し得る。
【0010】
図1は、文書印刷用の例示的システムの構成を説明したブロック図である。印刷データストリームから派生したオブジェクトのキャッシュメンバーシップを決定するためのアプリケーションは、図1に示すように、従来の通信プロトコル及び/又はデータポートインターフェースを用いて情報をやりとりする通信リンクを介して接続された、コンピュータと印刷装置とのネットワーク上に配置されていてもよい。
【0011】
図1に示すように、例示的システム100は、コンピュータデバイス110とサーバ130とを含むコンピュータを備えている。さらに、コンピュータデバイス110とサーバ130とは、ネットワーク140を通り得る接続部120を介して通信してもよい。コンピュータデバイス110は、コンピュータワークステーション、デスクトップコンピュータ、ラップトップコンピュータ、又は、ネットワーク環境で使用可能な、その他の如何なるコンピュータデバイスであってもよい。サーバ130は、コンピュータデバイス110その他のデバイス(不図示)に接続可能なプラットフォームであってもよい。コンピュータデバイス110とサーバ130とは、プリンタ170を用いて文書の印刷を可能とするソフトウェア(不図示)を実行可能であってもよい。
【0012】
コンピュータデバイス110及び/又はサーバ130において稼動中の文書処理ソフトウェアにより、ユーザは、文書をタイミングよく表示、編集、処理及び記憶し得る。文書中の印刷すべきページは、Adobe(登録商標)PDF及びその変種のようなページ記述言語(Page Description Language:PDL)で記述され得る。プリンタ170は、文書における各ページの高級記述を規定する文書のPDL記述に応じた印刷データストリームを受信し得る。このPDL記述は、文書印刷中に、しばしば一連のより低級なプリンタ固有コマンドに変換される。画像オブジェクト、テキストオブジェクト、図形オブジェクト、フォントオブジェクト、ベクターメタデータオブジェクト及び/又はその他のオブジェクトを含む種々のオブジェクトは、上記印刷データストリームから派生し、プリンタメモリに記憶され、そして、文書印刷処理の過程における種々のポイントにおいて再利用されてもよい。
【0013】
PDLから低級プリンタ固有コマンドへの変換処理は、複雑な上に、例示的プリンタ170によってもたらされる特徴及び性能に依存し得る。例えば、プリンタ170は、そのデータを段階的に処理してもよい。第一段階において、プリンタ170は、PDLコマンドを解析して高級命令をプリミティブと呼ばれる一連の低級命令群に分解し得る。これらプリミティブは、ページ上のどこにマークを付するかを決定するために該プリミティブを使用し得る例示的プリンタ170の後段に供給され得る。場合によって、各プリミティブは、生成されたときと同様に処理され得る。他のシステムにおいて、大量のプリミティブが生成され、記憶され、その後に処理され得る。例えば、単独のページを記述するのに必要なプリミティブが生成され、リストに記憶され、その後に処理され得る。記憶された一連のプリミティブは、中間リスト又はディスプレイリストと称される。
【0014】
概して、プリンタ170は、限定はしないが、レーザープリンタ及びLEDプリンタのような電子写真プリンタ、インクジェットプリンタ、感熱式プリンタ、レーザー撮像装置及びオフセットプリンタを含む、電子データから物理的文書を生成するように構成できるどのようなデバイスであってもよい。プリンタ170は、ファクシミリ装置やデジタル複写機に搭載されるような画像送受信機能、画像読み取り機能及び/又はコピー機能を備えていてもよい。例示的プリンタ170はまた、接続部120を介してコンピュータデバイス110又はサーバ130から受信した文書を直接印刷可能であってもよい。いくつかの実施形態において、このような配置とすることにより、コンピュータデバイス110又はサーバ130による追加処理を伴う(又は伴わない)文書の直接印刷が可能となり得る。テキストオブジェクト、図形オブジェクト、画像オブジェクト、フォントオブジェクト、ベクターメタデータオブジェクトその他のオブジェクトのうち1以上を含み得る文書の処理は、分配され得る。このようにして、コンピュータデバイス110、サーバ130及び/又はプリンタは、文書がプリンタ170によって物理的に印刷される前に、文書印刷処理、ディスプレイリスト生成、中間調処理、色合わせ及び/又はその他の操作処理の一部を実行し得る。いくつかの実施形態において、プリンタ170は、開示されたいくつかの実施形態と合致する方法で印刷データストリームから派生したオブジェクトのキャッシュメンバーシップを決定する技術を含み得るOS(Operating System)を備えていてもよい。
【0015】
コンピュータデバイス110はまた、リムーバブルメディアドライブ150を有していてもよい。リムーバブルメディアドライブ150は、例えば、3.5インチフロッピーディスクドライブ、CD−ROMドライブ、DVD−ROMドライブ、CD±RW又はDVD±RWドライブ、USBフラッシュドライブ、及び/又はその他の取り外し可能などのようなメディアドライブを含んでもよい。アプリケーションの各部は、取り外し可能なメディアに存在してもよく、システム100において実行される前にリムーバブルメディアドライブ150を用いてコンピュータデバイス110により読み込まれてもよい。
【0016】
接続部120は、コンピュータデバイス110、サーバ130及びプリンタ170を接続しており、従来の通信プロトコル及び/又はデータポートインターフェースを用いた有線又は無線の接続部として実装されていてもよい。概して、接続部120は、装置間におけるデータ送信を可能とするどのような通信チャンネルであってもよい。一実施形態において、例えば、適切な接続部を介したデータ送信用のパラレルポート、シリアルポート、イーサネット、USB(登録商標)、SCSI、FIREWIRE(登録商標)、及び/又は、同軸ケーブルポートのような従来のデータポートを備えていてもよい。
【0017】
ネットワーク140は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、又はインターネットを含み得る。プリンタ170は、接続部120を介してネットワーク140に接続されていてもよい。例示的プリンタ170はまた、コンピュータデバイス110及び/又はサーバ130に直接接続されていてもよい。システム100はまた、その他の周辺機器(不図示)を備えていてもよい。印刷データストリームから派生したオブジェクトのキャッシュメンバーシップを決定するアプリケーションは、図1に示すように、例示的コンピュータ又はプリンタのうち1以上に配置されてもよい。例えば、コンピュータデバイス110は、サーバ130から直接ダウンロードされ得るソフトウェアを実行することができ、上記アプリケーションの各部もまた例示的プリンタ170によって実行されてもよい。
【0018】
図2は、接続部120を介してコンピュータデバイス110に接続された例示的プリンタ170の高水準ブロック図を示す。例示的プリンタ170は、CPU176、ファームウェア171、メモリ172、入出力(I/O)ポート175、プリントエンジン177及び二次記憶装置173を接続するバス174を備えている。例示的プリンタ170はまた、文書を印刷又は処理するためのアプリケーションの各部を実行し得る特定用途向け集積回路(ASICs)及び/又はフィールドプログラマブルゲートアレイ(FPGAs)を含んでいてもよい。例示的プリンタ170はまた、I/Oポート175及び接続部120を用いてコンピュータデバイス110内の二次記憶装置又はその他のメモリにアクセス可能であってもよい。プリンタ170は、I/Oポート175及び接続部120を用いて印刷データストリームを受信してもよい。画像オブジェクト、テキストオブジェクト、図形オブジェクト、フォントオブジェクト、ベクターメタデータオブジェクト、及び/又はその他のオブジェクトを含む種々のオブジェクトは、上記印刷データストリームから派生し、プリンタメモリ内に記憶され、そして、文書印刷処理の過程における種々のポイントにおいて再利用されてもよい。
【0019】
いくつかの実施形態において、プリンタ170はまた、画像抽出処理ソフトウェア、データ圧縮解凍、プリンタOS(printer operating system)及びその他の適切なアプリケーションソフトウェアを含むソフトウェアを実行可能であってもよい。いくつかの実施形態において、上記OSは、開示した実施形態に合致する方法でメモリ管理を行うルーチンを含んでいてもよく、又は該ルーチンを呼び出し可能であってもよい。
【0020】
例示的CPU176は、汎用プロセッサ、専用プロセッサ、又は組み込みプロセッサであってもよい。CPU176は、メモリ172及び/又はファームウェア171との間で、制御情報と命令とを含むデータをやり取りすることができる。メモリ172は、限定はしないが、SDRAM又はRDRAMのような、如何なるタイプのダイナミックRAM(DRAM)であってもよい。メモリ172は、最新の及び/又は頻繁にアクセスされるオブジェクトを記憶できるキャッシュメモリを含んでいてもよい。いくつかの実施形態において、キャッシュメモリは、記憶されているオブジェクトへのより高速なアクセスを可能とする独立した高速メモリとして実装されていてもよい。いくつかの実施形態において、キャッシュメモリは、プリンタ170におけるメモリ階層の一部を構成していてもよい。しかし、キャッシュメモリは一般に高価であるため、メモリ172のごく一部を構成するのみであってもよい。従って、プリンタ172におけるメモリ管理ルーチンは、プリンタ170によって受信された印刷データストリームから派生したオブジェクトのキャッシュメンバーシップを決定するためのキャッシュ最適化技術を含んでいてもよい。
【0021】
ファームウェア171は、限定はしないが、ブートアップシーケンスと、メモリ管理、ブレンド、合成、画像処理、トラッピング、文書処理その他のコード用のルーチンを含む予め設定されたルーチンと、を含む命令及びデータを保持していてもよい。いくつかの実施形態において、ファームウェア171内のコード及びデータは、CPU176によって実行される前にメモリ172内にコピーされてもよい。ファームウェア171内のルーチンはまた、コンピュータデバイス110から受信したページ記述をディスプレイリストに変換するコードを含んでいてもよい。いくつかの実施形態において、ファームウェア171は、ディスプレイリスト内の表示コマンドを適切なラスタライズ済ビットマップに変換するとともに、該ビットマップをメモリ172内に記憶させるラスタライズルーチンを含んでいてもよい。ファームウェア171はまた、圧縮及び記憶管理ルーチンを含んでいてもよい。ファームウェア171内のデータ及び命令は、コンピュータ110、サーバ130、ネットワーク140、プリンタ170に接続されたリムーバブルメディア、及び/又は、二次記憶装置173のうち一以上を用いてアップグレード可能であってもよい。
【0022】
例示的CPU176は、命令及びデータに基づいて動作し、ASICs/FPGAs178及びプリントエンジン177に制御及びデータを提供して印刷文書を生成し得る。ASICs/FPGAs178もまた、プリントエンジン177に制御及びデータを提供し得る。ASICs/FPGAs178はまた、翻訳、圧縮、解凍、合成及びラスタライズの各アルゴリズムのうち一以上を実行し得る。
【0023】
例示的コンピュータデバイス110は、文書データを第一印刷可能データに変換し得る。いくつかの実施形態において、上記第一印刷可能データは、文書のPDL記述に対応し得る。そして、上記第一印刷可能データは、プリンタ170に送信されて中間印刷可能データに変換され得る。いくつかの実施形態において、文書のPDL記述から、一連の低級プリンタ固有コマンドを有する最終印刷可能データへの変換処理は、オブジェクトのディスプレイリストを有する上記中間印刷可能データの生成を含み得る。ディスプレイリストは種々のオブジェクトを保持していてもよく、ディスプレイリスト内における一種以上のデータオブジェクトはユーザドキュメント内のオブジェクトに対応し得る。
【0024】
上記最終印刷可能データの生成を支援し得るディスプレイリストは、メモリ172又は二次記憶装置173内に記憶され得る。例示的な二次記憶装置173は、内蔵型の又は外付けのハードディスク、メモリスティック、その他の、システム200で用いられ得るどのような記憶貯蔵装置であってもよい。いくつかの実施形態において、上記ディスプレイリストは、文書処理がどこで発生するかに応じて、プリンタ170、コンピュータデバイス110及びサーバ130のうちの何れに存在していてもよいし、これらのうち一以上の間において転送されてもよい。
【0025】
ディスプレイリストを記憶するためのメモリは、専用メモリであってもよいし、汎用メモリ172の一部であってもよいし、これらの組み合わせであってもよい。いくつかの実施形態において、キャッシュメモリを含み得るメモリ172は、必要に応じて動的に割り当て、管理及び解放されてもよい。プリンタ170は、中間印刷可能データを印刷可能データの最終形態に変換してもよく、当該最終形態に従って印刷してもよい。
【0026】
図3は、例示的オブジェクトiに対するメモリ管理用の例示的アルゴリズム300における各工程を示したフローチャートである。いくつかの実施形態において、オブジェクトiは、プリンタ170によって受信された印刷データストリームを処理することにより派生し得る。いくつかの実施形態において、オブジェクトi用に描画された方法が、適切な改良を加えることにより上記印刷データストリームにおける他のオブジェクトにも適用され得ることは、当業者に明らかであろう。オブジェクトは、上記印刷処理の間に遭遇し得るテキストオブジェクト、図形オブジェクト、画像オブジェクト、フォントオブジェクト、ベクターメタデータオブジェクトその他のオブジェクトを含んでいてもよい。いくつかの実施形態において、アルゴリズム300は、プリンタオペレーティングシステムの一部であり得るプリンタ170のメモリ管理ルーチンによって起動されてもよい。いくつかの実施形態において、アルゴリズム300は、本実施形態に合致する改良型の参照カウント法を採用し得る。いくつかの実施形態において、各オブジェクトには個別の参照カウントが関連付けられ得る。いくつかの実施形態において、参照カウントと該参照カウントをインクリメント及びデクリメントする方法とは、オブジェクトの一部であってもよい。いくつかの実施形態において、個別の参照カウントが生成されて各オブジェクトと関連付けられてもよい。
【0027】
いくつかの実施形態において、アルゴリズム300は、ステップ310において開始され、ステップ311においてキャッシュメモリ内のオブジェクトiに対する参照をチェックする。オブジェクトiへの参照が行われた場合(ステップ311;Yes)、ステップ312においてオブジェクトiへの参照処理が行われ得る。オブジェクトiへの参照が行われない場合(ステップ311;No)、アルゴリズムは最初の重み付けを設定し、ステップ350に進む。
【0028】
ステップ315において、参照されたオブジェクトiは、当該オブジェクトが既にキャッシュ内に存在するか否かを確かめるためにチェックされ得る。オブジェクトiがキャッシュ内に存在しない場合(ステップ315;No)、ステップ320において、オブジェクトiと関連付けられた参照カウントR-iが値R-i0に初期化され得る。例示的オブジェクトiは、初めてキャッシュされたオブジェクト、又は、以前にキャッシュから削除されて再導入されたオブジェクトであってもよい。
【0029】
キャッシュ内でオブジェクトiが検出された場合(ステップ315;Yes)はオブジェクトが再利用されていることを意味し、この場合、アルゴリズムはステップ340に進み得る。ステップ340において、オブジェクトiに関連付けられた参照カウントR-iは重みW-i1だけインクリメントされ得る。重みW-i1は、キャッシュ内のオブジェクトを保持することを支援するバイアスとして見なされ得る。いくつかの実施形態において、重みWi-1は、単一のオブジェクトと関連付けられ得る。いくつかの実施形態において、重みW-i1は、オブジェクトのクラスと関連付けられ得る。例えば、一の重みが全てのテキストオブジェクトに割り当てられ、他の重みが図形オブジェクトに、三番目の重みが画像オブジェクトに割り当てられ得る。いくつかの実施形態において、重みWi-1は、全てのオブジェクトに共通であってもよい。いくつかの実施形態において、オブジェクトは、個々の絶対的なサイズ、又は、プリンタ170上でのキャッシュサイズに関連した個々のサイズに基づいて分類されてもよい。
【0030】
次に、ステップ350において、アルゴリズムはページ終了の事象をチェックする。ページ終了の事象が発生した場合(ステップ350;Yes)、参照カウントR-iは、重みW-i2だけデクリメントされ得る。重みW-i2は、キャッシュからオブジェクトを削除することを支援するバイアスとして見なされ得る。いくつかの実施形態において、重みWi-2は、単一のオブジェクトと関連付けられ得る。いくつかの実施形態において、重みW-i2は、オブジェクトのクラスと関連付けられ得る。例えば、一の重みが、ある所定のサイズを超えるオブジェクトに割り当てられ得る。いくつかの実施形態において、重みWi-2は、全てのオブジェクトに共通であってもよい。重みWi-1及びWi-2は、プリンタ170の構成、オブジェクトの分類、システムパラメータ、及び/又は、プリンタ170によって処理されている印刷ジョブに用いられる上記PDL内の命令に基づいて、それぞれ異なる値に設定されてもよい。ページ終了の事象が発生しない場合(ステップ350;No)、アルゴリズムは、オブジェクトiへの次の参照処理を待つステップ312に戻る。
【0031】
ステップ370において、オブジェクトiへの参照カウントR-iの現在の値が閾値T-iと比較される。いくつかの実施形態において、T-iの値は、(R-i0−W-i2)未満に制限され得る。R-i ? T-iの場合(ステップ370;Yes)、オブジェクトiがキャッシュ内に保持され、アルゴリズムはステップ312に戻る。R-i < T-iの場合、オブジェクトiはステップ380においてキャッシュから削除され得る。いくつかの実施形態において、閾値T-iは、単一のオブジェクトと関連付けられ得る。いくつかの実施形態において、閾値T-iは、オブジェクトのクラスと関連付けられ得る。いくつかの実施形態において、閾値T-iは、全てのオブジェクトに共通であってもよい。いくつかの実施形態において、オブジェクトiに対する参照カウントR-i0の初期値は、少なくとも1ページにつきオブジェクトiが確実にキャッシュされるようにするために、W-i2とT-iとの和以上に設定されてもよい。
【0032】
一実施形態において、オブジェクトは、重み(W-i1及び/又はW-i2)がオブジェクトサイズに基づいて割り当てられ得るように、該オブジェクトのサイズに基づいて分類されてもよい。例えば、より多くのキャッシュスペースを占める大きなオブジェクトは、除去される可能性を増大させる重みが割り当てられ得る。一実施形態において、(W-i1−W-i2)の差は低減されてもよく、これとともに/或いは、キャッシュサイズに対するオブジェクトサイズの所定のサイズと所定の割合とのいずれか一方を超えるオブジェクトに対して、より高い閾値T-iが設定されてもよい。いくつかの実施形態において、W-i1の値はW-i2以上の値に設定されてもよい。イラストレーションのように、オブジェクトの記憶に有利に働くシステムにおいて、例えば、W-i1 > W-i2のように、W-i1が高い値に設定され、W-i2が低い値に設定されてもよい。また、閾値T-iは、0(ゼロ)さらには負の値のような、低い値に設定されてもよい。重みWi-1、Wi-2及び閾値T-iは、単純な加減算を用いて説明したが、その他種々の複雑な数学関数がまた、適切な改良において用いられ得る。
【0033】
例えば、R-i0の初期値は8に設定されてもよく、重みWi-1及びW-i-2は、それぞれ10、3に設定されてもよく、また、閾値T-iは4に設定されてもよい。上記の例において、オブジェクトに対する中間参照が全く無い場合、オブジェクトは、キャッシュ内への当該オブジェクトの導入に続く2度のページ終了事象の後にキャッシュから削除され得る。1ページ目の最後において、R-iの値は、R-i0−W-i2=10−3=7となり、4(閾値T-iの値)以上である。従って、オブジェクトiはキャッシュ内に留まる。2ページ目の最後において(オブジェクトiへの参照は無かったと仮定する)、R-iの新たな値はR-i−W-i2=7−3=4となり、T-i以上であるから、オブジェクトiはキャッシュ内に留まる。しかしながら、3ページ目の最後において(オブジェクトiへの参照は無かったと仮定する)、R-iの新たな値はR-i−W-i2=4−3=1となり、T-i未満であるから、オブジェクトiはキャッシュから削除される。オブジェクトに対する参照が行われる度に、R-iの現在の値にWi-1が毎回加算されることにより、該オブジェクトが記憶される可能性が増大する。
【0034】
概して、重みWi-1、Wi-2及び閾値T-iは、オブジェクトの絶対的なサイズ、キャッシュサイズに対するオブジェクトのサイズ、印刷ジョブの機能、キャッシュサイズ、プリンタ速度、等を含むシステムパラメータに基づいて調整され得る。例えば、プリンタ170が比較的小さなキャッシュを有する場合、上記重み及び閾値は、オブジェクトの迅速な削除を支援するように調整され得る。
【0035】
説明の単純化及び容易化のため、例示的オブジェクトiに関するアルゴリズム300について説明したが、参照された各オブジェクトは、適切に改良されたものと同様に処理され得ることは当業者に明らかであろう。いくつかの実施形態において、キャッシュがいっぱいであり、且つ、どのオブジェクトも削除対象として選択されていない場合、新たなオブジェクトの導入に先立ち、参照カウントの最も低いオブジェクトが削除対象として選択され得る。
【0036】
いくつかの実施形態において、アルゴリズム300に記述された処理を実行するためのプログラムは、コンピュータ読み取り可能な媒体150又はコンピュータ読み取り可能なメモリ内に記録され得る。これらは、限定はしないが、ROM(Read Only Memory)、PROM(Programmable Read Only Memory)、フラッシュメモリ、NVRAM(Non-Volatile Random Access Memory:不揮発性RAM)、又は、SD(Secure Digital)メモリカード、コンパクトフラッシュ(登録商標)、スマートメディア(登録商標)、メモリスティック(登録商標)、等のようなデジタルメモリカードを含む。実施形態において、一種以上のコンピュータ読み取り可能な媒体がプリンタ170に接続され得る。実施形態において、開示されたシステム、方法及び構成を実行するプログラムの各部は、ネットワーク140を介して供給される。
【0037】
本発明の他の実施形態は、詳細な説明を考慮することにより又はその中に開示された一以上の発明を実践することにより、当業者に明らかとなるであろう。上述した詳細な説明および実施例は、単に例としてのみ考慮されることを意図しており、発明の真の範囲及び精神は、以下の特許請求の範囲によって示される。

【特許請求の範囲】
【請求項1】
少なくとも一のオブジェクトに対するキャッシュメンバーシップを決定する、コンピュータ実行可能な方法であって、前記キャッシュがプリンタにおけるメモリの一部をなし、前記少なくとも一のオブジェクトは少なくとも一の参照カウントと関連付けられ、
前記方法は、コンピュータにより実行される以下の工程:
a)前記キャッシュ内に前記オブジェクトが存在しない場合、前記参照カウントに初期値を割り当てる工程;
b)前記キャッシュ内に前記オブジェクトが既に存在する場合、前記参照カウントを第一の重み分だけインクリメントする工程;
c)ページ終了事象に応じて前記参照カウントを第二の重み分だけデクリメントする工程;及び
d)前記参照カウントが閾値未満の場合、前記キャッシュから前記オブジェクトを削除する工程、
を有する。
【請求項2】
前記キャッシュ内に前記オブジェクトを配置する前に、前記参照カウントに前記初期値が割り当てられる請求項1に記載のコンピュータ実行可能な方法。
【請求項3】
前記参照カウントに割り当てられる前記初期値は、前記閾値と前記第二の重みとの和以上である請求項1に記載のコンピュータ実行可能な方法。
【請求項4】
前記オブジェクトは、画像オブジェクト、図形オブジェクト、テキストオブジェクト、フォントオブジェクト又はベクターメタデータオブジェクトのうちの一である請求項1に記載のコンピュータ実行可能な方法。
【請求項5】
前記第一の重みがオブジェクトのクラスに共通である請求項1に記載のコンピュータ実行可能な方法。
【請求項6】
前記第一の重みが全てのオブジェクトに共通である請求項1に記載のコンピュータ実行可能な方法。
【請求項7】
前記第二の重みがオブジェクトのクラスに共通である請求項1に記載のコンピュータ実行可能な方法。
【請求項8】
前記第二の重みが全てのオブジェクトに共通である請求項1に記載のコンピュータ実行可能な方法。
【請求項9】
前記プリンタに接続されたプロセッサにより実行される請求項1に記載のコンピュータ実行可能な方法。
【請求項10】
前記第一及び第二の重みは、前記オブジェクトの大きさと前記キャッシュの大きさとの少なくとも一方に基づき決定される請求項1に記載のコンピュータ実行可能な方法。
【請求項11】
前記第一の重みが前記第二の重み以上である請求項1に記載のコンピュータ実行可能な方法。
【請求項12】
プロセッサにより実行された際に、少なくとも一のオブジェクトに対するキャッシュメンバーシップを決定する、コンピュータ実行可能な方法における各工程を行う命令を記憶するコンピュータ読取可能な媒体であって、前記キャッシュがプリンタにおけるメモリの一部をなし、前記少なくとも一のオブジェクトは少なくとも一の参照カウントと関連付けられ、
前記方法は、コンピュータにより実行される以下の工程:
a)前記キャッシュ内に前記オブジェクトが存在しない場合、前記参照カウントに初期値を割り当てる工程;
b)前記キャッシュ内に前記オブジェクトが既に存在する場合、前記参照カウントを第一の重み分だけインクリメントする工程;
c)ページ終了事象に応じて前記参照カウントを第二の重み分だけデクリメントする工程;及び
d)前記参照カウントが閾値未満の場合、前記キャッシュから前記オブジェクトを削除する工程、
を有する。
【請求項13】
前記参照カウントに割り当てられる前記初期値は、前記閾値と前記第二の重みとの和以上である請求項12に記載のコンピュータ読取可能な媒体。
【請求項14】
前記オブジェクトは、画像オブジェクト、図形オブジェクト、テキストオブジェクト、フォントオブジェクト又はベクターメタデータオブジェクトのうちの一である請求項12に記載のコンピュータ読取可能な媒体。
【請求項15】
前記第一及び第二の重みが前記オブジェクトの大きさと前記キャッシュの大きさとの少なくとも何れか一方に基づき決定される請求項12に記載のコンピュータ読取可能な媒体。
【請求項16】
前記第一の重みが前記第二の重み以上である請求項12に記載のコンピュータ読取可能な媒体。
【請求項17】
印刷データストリームから派生した少なくとも一のオブジェクトに対するキャッシュメンバーシップを決定するシステムであって、
前記少なくとも一のオブジェクトは少なくとも一の参照カウントと関連付けられ、
前記システムが、
前記印刷データストリームを受信する入力インターフェースと、
キャッシュを有し前記印刷データストリームから派生した前記少なくとも一のオブジェクトを記憶するメモリと、
前記入力インターフェースと前記メモリとに接続されるとともに、a)前記キャッシュ内に前記オブジェクトが存在しない場合に前記参照カウントに初期値を割り当てる工程と、b)前記キャッシュ内に前記オブジェクトが既に存在する場合に前記参照カウントを第一の重み分だけインクリメントする工程と、c)ページ終了事象に応じて前記参照カウントを第二の重み分だけデクリメントする工程と、d)前記参照カウントが閾値未満の場合に前記キャッシュから前記オブジェクトを削除する工程と、を実行するための命令を遂行するプロセッサと、を有するシステム。
【請求項18】
前記参照カウントに割り当てられる初期値は、前記閾値と前記第二の重みとの和以上である請求項17に記載のシステム。
【請求項19】
前記第一及び第二の重みは、オブジェクトの大きさとキャッシュの大きさとの少なくとも一方に基づき決定される請求項17に記載のシステム。
【請求項20】
前記第一の重みが前記第二の重み以上である請求項17に記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2010−182300(P2010−182300A)
【公開日】平成22年8月19日(2010.8.19)
【国際特許分類】
【外国語出願】
【出願番号】特願2010−10916(P2010−10916)
【出願日】平成22年1月21日(2010.1.21)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.フロッピー
2.イーサネット
【出願人】(507031918)コニカ ミノルタ システムズ ラボラトリー, インコーポレイテッド (157)
【Fターム(参考)】