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

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

Info

Publication number
JP5457208B2
JP5457208B2 JP2010010916A JP2010010916A JP5457208B2 JP 5457208 B2 JP5457208 B2 JP 5457208B2 JP 2010010916 A JP2010010916 A JP 2010010916A JP 2010010916 A JP2010010916 A JP 2010010916A JP 5457208 B2 JP5457208 B2 JP 5457208B2
Authority
JP
Japan
Prior art keywords
cache
computer
weight
reference count
objects
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010010916A
Other languages
English (en)
Other versions
JP2010182300A (ja
Inventor
クリストファー ウィリアムソン,
Original Assignee
コニカ ミノルタ ラボラトリー ユー.エス.エー.,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by コニカ ミノルタ ラボラトリー ユー.エス.エー.,インコーポレイテッド filed Critical コニカ ミノルタ ラボラトリー ユー.エス.エー.,インコーポレイテッド
Publication of JP2010182300A publication Critical patent/JP2010182300A/ja
Application granted granted Critical
Publication of JP5457208B2 publication Critical patent/JP5457208B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1827Accessing generic data, e.g. fonts
    • G06K15/1828Accessing generic data, e.g. fonts characterized by the kind of storage accessed

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Record Information Processing For Printing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

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

Claims (20)

  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に記載のシステム。
JP2010010916A 2009-01-23 2010-01-21 印刷装置におけるメモリ管理用システム及びその方法 Expired - Fee Related JP5457208B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/358,816 US8099555B2 (en) 2009-01-23 2009-01-23 Systems and methods for memory management on print devices
US12/358,816 2009-01-23

Publications (2)

Publication Number Publication Date
JP2010182300A JP2010182300A (ja) 2010-08-19
JP5457208B2 true JP5457208B2 (ja) 2014-04-02

Family

ID=42355075

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010010916A Expired - Fee Related JP5457208B2 (ja) 2009-01-23 2010-01-21 印刷装置におけるメモリ管理用システム及びその方法

Country Status (2)

Country Link
US (1) US8099555B2 (ja)
JP (1) JP5457208B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120124291A1 (en) * 2010-11-16 2012-05-17 International Business Machines Corporation Secondary Cache Memory With A Counter For Determining Whether to Replace Cached Data
US9645944B2 (en) * 2012-05-07 2017-05-09 International Business Machines Corporation Enhancing data caching performance
JP6146279B2 (ja) * 2013-11-28 2017-06-14 富士通株式会社 データ配信装置及びデータ配信方法
JP2015176218A (ja) * 2014-03-13 2015-10-05 富士通株式会社 演算処理装置、演算処理装置の制御方法、及び演算処理装置の制御プログラム
US20150286691A1 (en) * 2014-04-02 2015-10-08 Microsoft Corporation Data view exposure mechanisms
AU2014277808A1 (en) 2014-12-19 2016-07-07 Canon Kabushiki Kaisha Predictive object-sequence caching from prior page content
US10789223B2 (en) * 2016-03-24 2020-09-29 Microsoft Technology Licensing, Llc Hybrid garbage collection in a distributed storage system
CN110147330B (zh) * 2019-05-23 2023-09-01 深圳市创维软件有限公司 一种字模数据的缓存方法、装置、设备和存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4525780A (en) * 1981-05-22 1985-06-25 Data General Corporation Data processing system having a memory using object-based information and a protection scheme for determining access rights to such information
US4630198A (en) * 1984-02-21 1986-12-16 Yuan Houng I Intelligent stand-alone printfile buffer with paging control
JPH07106652B2 (ja) * 1988-08-13 1995-11-15 キヤノン株式会社 印刷装置
US5592594A (en) * 1994-04-26 1997-01-07 Hewlett-Packard Company Method and apparatus for allocating cache memory space for font data
US5822749A (en) * 1994-07-12 1998-10-13 Sybase, Inc. Database system with methods for improving query performance with cache optimization strategies
US6246396B1 (en) * 1997-04-30 2001-06-12 Canon Kabushiki Kaisha Cached color conversion method and apparatus
US6944717B2 (en) * 2001-07-27 2005-09-13 Fujitsu Limited Cache buffer control apparatus and method using counters to determine status of cache buffer memory cells for writing and reading data therefrom
US7265866B2 (en) * 2002-08-01 2007-09-04 Hewlett-Packard Development Company, L.P. Cache memory system and method for printers
US20050285871A1 (en) * 2004-06-29 2005-12-29 Canon Kabushiki Kaisha Image-processing circuit, electronic apparatus, and method for processing image
US7957016B2 (en) * 2004-09-20 2011-06-07 Marvell International Technology Ltd. Method and apparatus for image processing
JP2010026051A (ja) * 2008-07-16 2010-02-04 Seiko Epson Corp 画像表示装置および画像表示装置制御用のプログラム
JP2010111088A (ja) * 2008-11-10 2010-05-20 Seiko Epson Corp 画像形成装置
JP4753105B2 (ja) * 2009-03-19 2011-08-24 富士ゼロックス株式会社 描画処理装置、画像出力装置、プログラム

Also Published As

Publication number Publication date
US8099555B2 (en) 2012-01-17
JP2010182300A (ja) 2010-08-19
US20100191912A1 (en) 2010-07-29

Similar Documents

Publication Publication Date Title
JP5457208B2 (ja) 印刷装置におけるメモリ管理用システム及びその方法
JP5238526B2 (ja) 印刷リソース管理のためのシステム及び方法
US8861014B2 (en) Systems and methods for optimized printer throughput in a multi-core environment
US8553272B2 (en) Image processing apparatus, image processing method, program therefor, and medium storing program
US20110194142A1 (en) Printing apparatus, printing method, and program
JP2009140295A (ja) 描画装置、印刷装置、描画方法、及びプログラム
JP5226581B2 (ja) ディスプレイリストの並行ラスタ化のための方法、コンピュータ可読媒体及びコンピュータ可読メモリ
JP4596285B2 (ja) 画像処理システム及び画像処理方法並びにオブジェクト名生成プログラム
JP5261250B2 (ja) ページ記述言語を処理する印刷データ処理装置、方法及びコンピュータ可読媒体
JP5539672B2 (ja) 複数のモードによる色の混合のシステム及び方法
JP5774863B2 (ja) マークアップ言語で指定されるスプレッドシートスタイルを処理するためのシステムおよび方法
US8605348B2 (en) Systems and methods for rendering resizable image including resizable mask
JP2009163709A (ja) Pdlデータからの文書特性判別方法
JP2010120376A (ja) フレームバッファ管理のシステム及び方法
JP5607296B2 (ja) トラッピングを実行する方法、コンピュータ読取可能な媒体及び装置
JP2011175629A (ja) 印刷可能データのレンダリングに関するシステムおよび方法
JP2009282964A (ja) 印刷データをレンダリングするシステム、方法及びコンピュータ可読媒体
JP2009225264A (ja) 画像処理装置、画像形成装置、及び印刷システム
US9336468B2 (en) Image forming apparatus, image forming method, and medium
JP2010277590A (ja) キャッシュ最適化メカニズム
JP2010111099A (ja) 画像処理装置およびその制御方法
US9978005B2 (en) Printer for drawing bold character, method for controlling the same, and storage medium
US20110242566A1 (en) Systems and methods for optimizing function based object operations in interpreted page description languages
US8755079B2 (en) Image forming apparatus discriminating whether image data of an object to be subjected to transformation processing is stored in a storage unit
JP2006218819A (ja) 画像形成装置、画像処理装置、プログラムおよび画像処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120809

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20120809

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131129

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131210

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140109

R150 Certificate of patent or registration of utility model

Ref document number: 5457208

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees