関連出願
本明細書は、その全体が参照のため本明細書に取り込まれる、2000年8月15日出願の”オブジェクト生成スマートキャッシングシステム”と題する継続中の米国仮出願番号60/225、412の出願日の利益を主張する。
発明の分野
本発明は、一般にデータ処理記憶アーキテクチャに関し、具体的には、記録されたデータに対する効率的なアクセスを行うためのキャッシュメモリ、に関する。
発明の背景
コンピュータおよびコンピュータネットワーキング業界における近年の研究開発は、画像、音声、および文書等のオブジェクトに関する大量のデータへの高速でのアクセス要求を常態化させるに至った。データ記憶容量およびコンピュータの処理速度の急激な伸びにより、コンピュータアプリケーションは、マルチメデイアのデータコンテントを豊富にするため、大量のデータを処理し、記憶することが可能となった。コンピュータネットワーキングにおける同様の進歩によっても、通信周波数帯域ならびにネットワークアクセスの幅(breadth of network access )の双方を著しく拡大させるに至った。かかる進歩によって、ウッブベースの、又は、他のネットワークされたアプリケーションをサポートするコンピュータ間で巨大な量の情報が規則的にシェアされようになった。
通常、ホストコンピュータは、オブジェクト形式で情報を保持するメモリを有するドライブ又はファイルサーバー等の記憶装置に接続されている。ホストコンピュータがデータオブジェクト要求を受けた場合、記憶装置に照会が行われ、かかる記憶装置からオブジェクトが取り込まれ、ホストコンピュータに転送される。記憶装置からオブジェクトへのアクセスに伴う遅れを小さくするため、ホストコンピュータ上でキャッシュが頻繁に用いられる。かかるキャッシュは、通常、記憶装置から最も頻繁に要求されるオブジェクトを記憶するために用いられる小さいメモリを含んでいる。キャッシュされたオブジェクトは、大きな記憶装置内に記憶されたオブジェクトよりも高速でアクセスすることができる。したがって、キャッシュされていた次のオブジェクト要求に対し、記憶装置にアクセスすることなく、迅速かつ直接に、応答することができる。
典型的なキャッシュは、オブジェクト要求をキャッシュが受けた場合に、当該キャッシュ内にオブジェクトがあるかどうかを判断するバイナリーロジック機能、を含んでいる。キャッシュ内にオブジェクトがある場合、要求に応えるため、キャッシュされたオブジェクトが用いられる。キャッシュ内にオブジェクトがない場合は、要求に対し、より大きい記憶装置からオビジェクトを取り込むことにより応答する。記憶装置が、共通の通信バスを介して要求を発したプロセッサーと接続されている場合、当該バスの周波数帯域幅、当該バスに接続された他の装置との競合、ならびに、記憶装置へオブジェクト要求を送るのに必要な追加の指示および要求を発したものにオブジェクトを届けること、によって遅延が起こり得る。かかる遅延は、ウエッブサーバー等の記憶装置が、遠くに位置し、ワールドワイドウエッブ等の通信リンクによって接続されている場合は、より大きくなる。
発明の概要
本発明は、キャッシュされ、記憶されたオブジェクトコンポーネントから非キャッシュオブジェクトを生成するキャッシュシステムおよび方法に関する。本発明の一実施形態は、コンポーネントから構成され、各イメージコンポーネントを識別するとともにアクセス可能な形式で記憶された、イメージファイルをキャッシュする。
ある側面において、再生キャッシュシステムは、イメージファイル等のオブジェクトが前記キャッシュメモリから欠落しているか、を判断する。次に、前記再生キャッシュシステムは、オブジェクトを構築するために十分なコンポーネントを見つけ出す。かかるコンポーネントは、キャッシュメモリ内又は外部記憶装置内で見つけ出すことが出来る。こうしてコンポーネントを見つけ出すと、再生キャッシュシステムは、オブジェクトを構築する。
ある実施形態における本発明の一側面は、オブジェクト要求に応じて、再生キャッシュシステムにより構築されたオブジェクトであって、当初キャッシュから欠落していたものを再生キャッシュシステム内に記憶することである。
ある実施形態における本発明の他の側面は、キャッシュに当初記憶されていないオブジェクトの外部からの要求を見越して、再生キャッシュシステムによりオブジェクトを要求することである。ここで、再生キャッシュシステムは、オブジェクトが要求され得るかどうか判断し、次に、再生キャッシュシステムは、オブジェクトが欠落しているかを判断する。予想された要求オブジェクトが、キャッシュから欠落している場合、再生キャッシュシステムは、オブジェクトを構築する。
他の側面において、再生キャッシュシステムは、インターフェース、ロジックエレメント、メモリー、および、プロセッサー、を含んでいる。インターフェースは、オブジェクト要求命令を監視し、外部で記憶されたオブジェクトおよびコンポーネントにアクセスし、要求オブジェクトに応答するため、再生キャッシュシステムが外部装置又はシステムと通信するのを可能にする。ロジックエレメントは、要求されたオブジェクトがキャッシュから欠落しているかどうかを判断し、欠落している場合は、次に、要求オブジェクトを構築するためコンポーネントを見つけ出すよう機能する。メモリは、要求され得るオブジェクトであって、要求オブジェクトを構築するのに必要とされる、それら自身がキャッシュ内に存在しないコンポーネントを含むもの、を記憶する。プロセッサーは、必要なコンポーネントにアクセスし、要求オブジェクトを構築するため、インターフェース、ロジックエレメント、および、メモリと連携して機能する。
本発明の他の特徴は、キャッシュシステムメモリ内、又は、外部記憶システム内にある一以上のJPEG2000イメージファイルからコンポーネントを用いて、イメージファイルを構築することにより、当初、キャッシュから欠落していた、要求されたJPEG2000イメージファイルに応答することである。
本発明のさらに他の特徴は、キャッシュシステムメモリ内、又は、外部記憶システム内にある他のドキュメントファイルのコンポーネントを用いて要求ドキュメントを構築することにより、当初、キャッシュから欠落していた、要求ドキュメントファイルに応答することである。
又、本発明の他の特徴は、キャッシュシステムメモリ内、又は、外部記憶システム内にある他のウエッブページファイルを用いて要求ウエッブページファイルを構築することにより、当初、キャッシュから欠落していた、要求ウエッブページファイルに応答することである。
詳細な説明
図1を参照すると、データ処理システム20は、第一記憶装置22、ユーザーインターフェース24および一以上の周辺機器26と接続されている。かかるデータ処理システム20は、モデム又はイメージスキャナ等のユーザーインターフェース24、周辺機器26、又は、そこに記憶メモリ28を有する第一記憶装置22から読み出されたメモリ、を介してデータを受信する。かかる第一記憶装置22は、デイスクドライブ、磁気テープドライブ、光デイスクドライブ、又は電気メモリ等の、どのようなデータ記憶装置であってもよい。データ処理システム20は、データを処理し、端末デイスプレイ等のユーザーインターフェース24、プリンタ等の周辺機器26、又は、第一記憶装置22の記憶メモリ28に書き込まれたメモリを介して、選択的にデータを配信する。
データ処理システム20は、電気通信バス44を介して、第二記憶装置22’および入/出力(I/O)コントローラー34と接続された中央処理ユニット(CPU30、を含んでいる。かかる第二記憶装置22’は、第一記憶装置22と同様に、記憶メモリ28を有しているが、第二記憶装置22’は、データ処理システム20の一部を構成し、システムバス44を介して、直接アドレス可能である。I/Oコントローラー34は、第一記憶装置22、ユーザーインターフェース24および一以上の周辺機器26をCPU30に結びつける(interfaces)。かかるCPU30は、データを受信し、処理し、配信する。
CPU30は、さらに、プロセッサー38、CPUメモリ40、および再生キャッシュスステム42を備えている。CPU30は、CPU電気通信バス36を介してCPUメモリ40と電気的に接続されている。ある実施形態において、CPU30は、ファイルサーバー、ワークステーション、又はパーソナルコンピュータ(PC)等のコンピュータであり、メモリ40は、命令およびプロセッサー38によって処理されたデータ、を記憶するための、ダイナミックRAM(DRAM)、読み出し専用メモリ(ROM)、レジスタ、および、キャッシュ、の任意の組み合わせを有している。
他の実施形態では、一以上の各CPU40、プロセッサー38、第一および第二記憶装置および22’、I/Oコントローラー34、ユーザーインターフェース24、ならびに一以上の周辺機器26において、破線で示された再生キャッシュメモリ42が局部的に構成される。また、破線で示される再生キャッシュメモリ42が、一以上のスタンドアローンシステムコンポーネントとして構成され、当該再生キャッシュメモリ42が、I/Oコントローラー34およびシステムバス44を介してCPU30と接続する実施形態が示される。かかる再生キャッシュメモリ42は、オブジェクトをキャッシュし、本発明の原理に基づき、キャッシュされ記憶されているオブジェクトからキャッシュされていない(uncached)オブジェクトを生成する。
図2を参照すると、ある実施形態の再生キャッシュメモリ42は、キャッシュメモリエレメント46、インターフェースエレメント48、プロセッサーエレメント50、および、ロジックエレメント52、を含んでいる。前記キャッシュメモリエレメント46は、インターフェースエレメント48、プロセッサーエレメント50、およびロジックエレメント52と電気的に接続している。
ある実施形態において、再生キャッシュメモリ42は、オブジェクトを操作し、記憶する。この実施形態において、キャッシュメモリエレメント46は、再生キャッシュメモリ42が、その内部で局部的にオブジェクトを記憶することを可能とする記憶容量を提供する。インターフェースエレメント48は、さらに、再生キャッシュメモリ42が、記録又は処理用の新たなオブジェクトを入力として受け入れ、キャッシュ済みオブジェクトおよび/又はキャッシュ済みオブジェクトのコンポーネントを出力として供給することが可能となるよう、外部のシステム、装置又はコンポーネントと接続されている。ロジックエレメント52は、再生キャッシュメモリ42が、オブジェクトを見つけ出すことを可能とする。ある実施形態において、ロジックエレメント52は、キャッシュメモリエレメント46内にオブジェクトがあるか否か、および/又は、キャッシュメモリ42の外部であって、一以上のCPUメモリ40のそれぞれ、第一および第二記憶装置22、22’、第二再生キャッシュシステム42、ユーザーインターフェース24、ならびに、一以上の周辺機器26、の内で当該オブジェクトを見つけ出すことが出来る場所にオブジェクトが存在するか否か、を判断する。
ある実施形態において、再生キャッシュシステム42内および外でのオブジェクトの捜索に加え、ロジックエレメント52が、限定されたキャッシュメモリ46を効率的に管理すること(例えば、将来要求されうると判断されたキャッシュ済みのアイテムを維持し、将来要求されないであろうと判断されたキャッシュ済みのアイテムを維持しない)に関して典型的なキャッシュと同様の機能を発揮する。
キャッシュメモリ46内に記憶されたオブジェクトは、独立してアドレス可能であり、メモリ位置アドレスにより直接に、ファイル名等のリファレンスにより間接に、又は、バーチャンルアドレスマップ又はアドレスルックアップテーブルを介して指示的に、アドレスすることができる。
再生キャッシュシステム42のエレメント46、48、50、52を、一緒にグループ化し、一枚の基板上、一つのモジュール内、又は、一つのシャーシ内に位置させることができ、一以上の基板、モジュール、シャーシの組み合わせ間に配信、又は、複数の再生キャッシュシステム42間に割り当てることができる。シェアされたエレメントの再生キャッシュシステム42の構造のある実施形態の例において、第一再生キャッシュシステム42のプロセッサー50は、第二再生キャッシュシステム42のプロセッサー50として機能する。
図3を参照すると、オブジェクトには、オブジェクト54に関する情報を提供するオブジェクトタグ56、および、オブジェクト54に関する追加の情報を有するオブジェクトペイロード58、が含まれている。かかるオブジェクト54は、構造化されたデータを示したフォーマットを有する、任意のファイルを表す。構造化されたデータを有するファイルの例は、拡張マークアップ言語(XML)ファイル、オブジェクトリンキングおよび埋め込み(OLE)構造を用いたファイル、複数イメージを含んだOS/2ビットマップファイルを含むビットマップ等のイメージファイル、コンピュータグラフィクスメタファイル(CGM)、フレキシブルイメージ伝送システム(FITS)ファイル、画像交換フォーマット(GIF)ファイル、階層データファイル(HDF)、アドビポストスクリプトファイル、タグ付イメージファイルフォーマット(TIFF)、例えば、JPEG200ファイルを含む、ジョイントフォトグラフィックエクスパートグループ(JPEG)の、離散コサイン変換イメージファイルおよびウエーブレット変換済みイメージファイル等の圧縮イメージファイル、MP3ファイル、又は、ウエーブフォームオーデイオファイルフォーマットファイル等のオーデイオファイル、”ZIP形式”ファイル等の圧縮ファイル、ムービングピクチャーエクスパートグループ(MPEG)等のビデオファイル、ならびに、データベースファイル、を含んでいる。また、オブジェクトタグ56には、ファイル識別子、ファイルタイプ、特定ファイルの構造に関する詳細等の情報を含むことにより特定のオブジェクト54を識別する”メタ”データ等の情報が含まれている。オブジェクトペイロード58は、一以上のコンポーネント60aから60n(総称して60)で構成されている。各コンポーネント60は、コンポーネントタグ62およびコンポーネントペイロード64から構成される。このコンポーネントタグ62は、コンポーネント識別子、コンポーネントタイプ、ならびにコンポーネントの内容に関する詳細、等の情報を提供する。コンポーネントペイロード64は、コンポーネント60に関する追加の情報を含む。ある実施形態において、説明がなされたコンポーネント60の構造と同様の構造を有するサブコンポーネントレベルまで、コンポーネント60をさらに分割することができる。
XML、OLE、又はJPEG2000等の構造化されたデータ記憶オブジェクト54を表す、これらのオブジェクト54を用いることにより、再生キャッシュシステム42は、コンポーネント60を見つけ出すとともに操作する能力を有するようになる。一旦、コンポーネントを見つけ出すと、当該コンポーネントは、以後の処理ならびに目視を行うため、様々な方法でアクセスおよび操作可能である。また、オブジェクト54は、各オブジェクトコンポーネント60を加え、減じ、又は、並べ換えることにより、徐々に更新されるよう適合される。
ある実施形態において、オブジェクト54の各コンポーネント60は、個別又は組み合わせることにより、新しいオブジェクト54を構成することが可能である。かかるコンポーネント60は、キャッシュメモリ46内にあるオブジェクト54のコンポーネント60であってもよく、そのオブジェクト54から抽出され、組み合わせれ、タグが付けられた(affixed)場合に、新たなオブジェクト54が生成される。
図4は、オブジェクト54を構築するため、再生キャッシュシステム42により用いられるプロセスの実施形態を示している。再生キャッシュシステム42は、キャシュメモリ46内からオブジェクト54が欠落しているか否かを判断する(ステップ66)。かかるオブジェクト54は、外部の要求、又は、オブジェクトが得られ、キャッシュされるという将来の要求命令を見越した再生キャッシュシステム42の判断、から識別可能である。要求されたオブジェクト54が、以前、キャッシュメモリ46内に記憶されたことがなく、保持されていない場合、要求されたオブジェクト54は、再生キャッシュ42内から欠落している。オブジェクト54が、再生キャッシュ42内にある場合、当該再生キャッシュ42は、前記要求を発したもの(例えば、プロセッサー38)に応答するため、キャッシュメモリ46内に記憶された要求されたオブジェクト54を返送する。要求されたオブジェクト54がキャシュメモリ46内から欠落している場合、再生キャッシュ42は、要求されたオブジェクト54を構築するのに十分な一以上のコンポーネントを見つけ出す(ステップS68)とともに、要求されたオブジェクト54を構築し(ステップ70)、オブジェクト54の要求に応答するため、要求されたオブジェクト54を返送する(ステップ72)。再生キャッシュ42が、オブジェクト54の要求信号を受信しているので、再生キャッシュのロジックエレメント52は、それ自身のキャッシュメモリ46のコンテンツおよび要求されたオブジェクト54を認識している。ある実施形態において、再生キャッシュ42は、ファイルテーブル、デイレクトリ、又はアドレスマップ等の、キャッシュされたオブジェクト54を追跡するのに用いられる方法を通じて、それ自身のキャッシュメモリ46のコンテンツを判断する。ロジックエレメント52は、そこからオブジェクト54を生成することができるコンポーネント60を決定するとともに、かかるコンポーネント60がキャッシュメモリ46内にあるかを判断する。ある実施形態において、ロジックエレメント52は、ファイル構造およびオブジェクト54の要求のシンタックスより、そこからオブジェクト54を生成することが可能なコンポーネント60を決定する。ファイル構造のシンタックスは、オブジェクト54の構造属性を定義し、オブジェクトタグ56および要求オブジェクト54の一以上のコンポーネントタグ62に関する詳細な構造の定義を含んでもよい。オブジェクト54の要求命令は、当該要求されたオブジェクト54が何であるを識別する。JPEG2000イメージオブジェクト54の要求命令の一例は、ソースイメージ(例えば、特定の写真に関するコンピュータファイル)を識別するとともに、要求されたオブジェクト54がどのように構成されている(例えば、解像度を高める場合、高解像度コンポーネントの前に解像度の低いコンポーネント60が要求される)かを識別する。いくつかの実施形態において、要求されたオブジェクト54は、キャッシュメモリ46内に、そこからオブジェクト54が生成可能なコンポーネント60が存在するか否かに関わらず、一以上のリモート記憶装置22、22’、40、42から直接取り込むことができる。要求されたオブジェクト54は、十分な通信能力が利用可能な場合、又は、キャッシュメモリ46の事前に要求されたコンテンツが保存されている場合、等のいずれの状況でも一以上のリモート記憶装置22、22’、40、42から直接取り込むことができる。
ある実施形態において、オブジェクト54は、JPEG200ファイルイメージファイルであり、ロジックエレメント52は、キャッシュメモリ46にオブジェクト46が欠落しているかどうかを判断するため、キャッシュメモリ46内に記憶されたオブジェクト54のオブジェクトタグ56を検討する。キャッシュメモリ46からオブジェクト46が欠落している場合、再生キャッシュシステム42は、オブジェクト54の要求信号に応答するよう、いずれか又は全部のコンポーネント60がキャッシュメモリ46内にあるかを判断するために、キャッシュメモリ46内にあるオブジェクト54および各オブジェクト54のコンポーネントタグ62を検討する。十分なコンポーネント60がある場合、コンポーネント60は、オブジェクト54の要求信号に応答するためのオブジェクト54を構築するため、適宜組み合わされる。キャッシュメモリ46内にコンポーネント60がいくつか存在するが、要求されたオブジェクト54を構築するための全てのコンポーネント60がない場合、再生キャッシュシステム42は、キャッシュメモリ46内にある、これらのコンポーネント60を局部的に得、次に、要求されたオブジェクト54を構築するのに十分な追加のコンポーネント60を一以上のリモート記憶装置22、22’、40、42から得る。次に、再生キャッシュシステム42は、要求されたオブジェクト54を構築するため、前記コンポーネント60を結合させる。いくつかの実施形態において、要求されたオブジェクト54は、たとえ、いくつかの、又は、十分な、コンポーネント60がキャッシュメモリ46内に存在する場合でも、再生キャッシュシステム42内に構築されるより、記憶装置から直接取り込まれる。
ある実施形態において、要求されたオブジェクト54が構築された後、再生キャッシュシステム42は、以後の要求を充足させるため、新しく構築されたオブジェクト54を記憶する。また、いくつかの実施形態において、オブジェクト54を構築するために用いられたコンポーネント60は、コピーされ、キャッシュメモリ46内のコンポーネント60として、別に維持される。他の実施形態において、コンポーネント60は、要求されたオブジェクト54を形成するために用いられ、組み合わされ、元々あったコンポーネントは、もはや記憶されない。かかる方式のオブジェクトの生成は、構築されたオブジェクト54内にコンポーネント60を記憶した方が効率的な場合、又は、再生キャッシュシステム42が、キャッシュメモリ46内のコンポーネント60はもはや必要でないと判断した場合、に用いることが出来る。
図5を参照しつつさらに詳細に説明すると、再生キャッシュシステム42のある実施形態は、要求されたオブジェクト54を構築するのに十分な一以上のコンポーネント60を決定する(ステップ74)。再生キャッシュシステム42は、ファイル構造のシンタックスおよびオブジェクト54の要求命令から、かかる十分なコンポーネント60を決定する。再生キャッシュシステム42は、要求されたオブジェクト54を構築するのに十分なコンポーネント60がキャッシュメモリ46内にあるかどうか、を判断する(ステップ76)。キャッシュメモリ46内に、十分なコンポーネント60がある場合、キャッシュプロセッサー50によって前記オブジェクト54が構築される(ステップ78)。キャッシュメモリ46内にコンポーネント60がない場合、再生キャッシュシステム42は、キャッシュメモリ46内に要求されたオブジェクト54のコンポーネント60があるかどうか判断する(ステップ80)。キャッシュメモリ46内に、要求されたオブジェクト54のコンポーネント60がある場合、再生キャッシュシステム42は、キャッシュメモリ46内にある要求オブジェクト54のコンポーネント60と、要求オブジェクト54を構築するのに十分と判断されたコンポーネント60を比較することにより、どのコンポーネント60が欠落しているかを判断する(ステップ82)。欠落しているコンポーネントを判断することにより、再生キャッシュシステム42は、一以上のリモート記憶装置22,22’、40、42から、不足しているコンポーネントを取り込む(ステップ84)。再び図1を参照すると、前記一以上のリモート記憶装置22、22’、40、42は、システムバス44、周辺機器22を介してCPU30と接続するローカルメモリ40、ローカル記憶装置22、データ処理システム20と接続する周辺記憶装置22、外部記憶ソース、又は、他の再生キャッシュシステム42、を設けるようにしてもよい。局部的に存在するキャッシュメモリ46からのコンポーネント60、ならびに、一以上のリモート記憶装置22、22’、40、42から取り込んだコンポーネント、を有する再生キャッシュシステム42は、要求されたオブジェクト54を構築する(ステップ78)。かかるオブジェクト54は、オブジェクト要求信号に応じて返送することができ、および/又は、以後の要求のためキャッシュされ、る。
キャッシュメモリ46内に要求されたオブジェクト54のコンポーネントが全くない場合(ステップ80)、再生キャッシュシステム42は、その外部の一以上のリモート記憶装置22、22’、40、42に要求オブジェクト54が存在するか、を判断する(ステップ86)。ある実施形態において、リモート記憶装置22、22’のいずれかの記憶メモリ28内にオブジェクト54がある場合、記憶装置22、22’のいずれかが前記要求に直接応答するので、再生キャッシュシステム42は、前記要求に対して応答する必要はない。これに代えて、再生キャッシュシステム42は、一以上のリモート記憶装置22、22’、40、42から要求オブジェクト54を取り込み、以後の要求に備えて、これをキャッシュメモリ46内に記憶しておくこともできる。
キャッシュメモリ46内にコンポーネント60が存在しないと判断され(ステップ80)、一以上のリモート記憶装置22、22’、40、42にオブジェクト54が存在しない場合(ステップ86)、再生キャッシュシステム42は、要求されたオブジェクト54を生成するのに必要なコンポーネント60が、その外部の一以上のリモート記憶装置22、22’、40、42内にあるかどうか判断する(ステップ88)。要求されたオブジェクト54が生成可能なコンポーネント60が、一以上のリモート記憶装置22、22’、40、42にない場合、オブジェクト要求は充足されない(ステップ90)。コンポーネント60が、一以上のリモート記憶装置22、22’、40、42にある場合、再生キャッシュシステム42は、必要なコンポーネント60を取り込み(ステップ92)、要求オブジェクト54を構築する(ステップ78)。繰り返すが、いくつかの実施形態においては、それからオブジェクトを生成可能なコンポーネント60がキャッシュメモリ46内にあるかないかに拘わらず、一以上のリモート記憶装置22、22’、40、42から要求オブジェクト54を直接取り込むことが可能である。
ある実施形態において、再生キャッシュシステム42は、キャッシュメモリ46内に、一以上のモート記憶装置22、22’、40、42から外部的に取り込んだコンポーネントを記憶しておく。他の実施形態において、再生キャッシュシステム42は、キャッシュメモリ46内に、それ自身によって構築されたオブジェクト54を記憶する。
図6Aは、本発明の原理に基づき、オブジェクト54を構築する再生キャッシュシステム42の3つの例を示している。この図は、キャッシュメモリ46および記憶メモリ28のそれぞれが、オブジェクト54a、54b、54c、および54dという形式でデータを記憶している、キャッシュメモリ46は、2回示されており、図の左側に最初のものが、図の右側に再びそれが示されている。図の左側のものは、再生キャッシュシステム42が特定オブジェクト54eの要求命令を受ける前のキャッシュメモリ46および記憶メモリ28の記憶内容を表している。図の右側のキャッシュメモリ46は、再生キャッシュシステム42が特定オブジェクト54e要求命令に対して応答し、要求されたオブジェクト54をキャッシュした後、別の記憶内容を有する同じキャッシュメモリ46を表している。
これら各例おいて、キャッシュメモリ46は、最初、オブジェクト54aおよび54bを含んでおり、記憶メモリ28は、オブジェクト54cおよび54dを含んでいる。最初の例では、特定オブジェクト54eが要求され、再生キャッシュシステム42は、図の左側により示すように、キャッシュメモリ46から特定オブジェクト54eが欠落していると判断する。再生キャッシュシステム42は、要求された特定オブジェクト54の生成が可能なコンポーネント60を決定する。次に、ロジックエレメント52は、要求された特定オブジェクト54eの生成が可能で、キャッシュメモリ46内に残存し、オブジェクト54aおよび54bのオブジェクトペイロード58aおよび58bにそれぞれ含まれる、コンポーネント60を決定する。この例において、オブジェクトペイロード58aおよび58bのそれぞれを構成するコンポーネント60は、要求された特定オブジェクト54eを構成するために用いられているので、特定のコンポーネントは示されていない。次に、再生キャッシュシステム42は、オブジェクトペイロード58aおよび58b内のコンポーネントを取り出すとともに、結合させ、さらに、要求特定オブジェクト54e用のオブジェクトタグ56を付すことにより、特定オブジェクト54eを構成する。図の左側から右側への実線の矢印は、要求特定オブジェクト54eの要求命令に対する再生キャッシュシステム42の応答結果をたどるものである。構成されたオブジェクト54は、連結されたオブジェクト54aおよび54bとして示されているが、構成された特定オブジェクト54e自身は、新しい、別個のオブジェクトである。この例で示すように、特定オブジェクト54eを構成した後も、オブジェクト54aおよび54bは、キャッシュメモリ46に残存する。
破線で示された第二の例示実施形態においては、特定オブジェクト54e'が要求され、キャッシュメモリ46から欠落していることが判る。再生キャッシュシステム42は、特定オブジェクト54e'を生成することができるコンポーネント60を決定し、ロジックエレメント52は、キャッシュメモリ46内の十分なコンポーネント60の全部ではなく、その一部を見つけ出す。この例では、キャッシュメモリ46内で見つけ出されたコンポーネント60が、オブジェクト54bのオブジェクトペイロード58bを構成する。要求された特定オブジェクト54e'を構成するため、ロジックエレメント52は、オブジェクト54cのオブジェクトペイロード58c内に欠落したコンポーネント60が含まれる記憶メモリ28内で欠落コンポーネント60、を見つけ出す。オブジェクト54bからキャッシュされたコンポーネント60を得ることにより、再生キャッシュシステム42は、記憶メモリ28内に存在する欠落コンポーネントを得るとともに、上記実施形態で示した特定オブジェクト54e構成方法と同様の方法で、要求された特定オブジェクト54e'を構築する。
図6Aを参照するとともに、点線で示された矢印によって表される他の例示実施形態において、特定オブジェクト54e''が要求され、キャッシュメモリ46から欠落していることが判る。再生キャッシュシステム42は、特定オブジェクト54e''を生成することができるコンポーネント60を決定し、ロジックエレメント52は、キャッシュメモリ46内にコンポーネント60が全く存在しないと判断する。再生キャッシュシステム42は、要求されたオブジェクト54e''が記憶メモリ28内に存在しないと判断し、ロジックエレメント52は、オブジェクト54cおよび54dのオブジェクトペイロード58cおよび58d内でそれぞれコンポーネント60を見つけ出す。次に、再生キャッシュシステム42は、記憶メモリ28から欠落したコンポーネント60を得、さらに、前述の第一および第二の実施形態と同様の方法で、要求された特定オブジェクト54e''を構築する。
図6Bは、本発明の原理に基づき、オブジェクト54を構築する再生キャッシュシステム42の3つの例を示している。図6Bは、図6Aに図示したものと同様の構成を有し、さらに、記憶されたオブジェクト54のコンポーネントに関する詳細を表すキャッシュメモリ46および記憶メモリ28の構成を示している。かかる3つの例のそれぞれにおいて、キャッシュメモリ46および記憶メモリ28に記憶された各オブジェクト54は、複数のコンポーネント60を伴って示されている。図6Aに示された例と同様に、要求された特定オブジェクト54e、54e'、および54e''は、第二記憶オブジェクト54b、54dの一以上のコンポーネント60と組み合わせられる第一記憶オブジェクト54a、54cの一以上のコンポーネント60、から構成されている。
図6Bに関する各例について、キャッシュメモリ46内には、当初、オブジェクト54aおよびオブジェクト54bが、記憶されており、記憶メモリ28内には当初、オブジェクト54cおよび54aが記憶されている。再生キャッシュシステム42は、記憶されたオブジェクト54のどのコンポーネント60が、要求された特定オブジェクト54e、54e'、又は、54e''を構築するのに必要であるかを判断する。ロジックエレメント52は、要求特定オブジェクト54e、54e'、又は、54e''を構築するために、コンポーネント60を見つけ出し、再生キャッシュシステム42が、要求特定オブジェクト54e、54e'、又は、54e''を構築する。
第一の例において、要求特定オブジェクト54eは、コンポーネント60aおよび60cから構成されている。ロジックエレメント52は、キャッシュメモリ46に記憶されているオブジェクト54a内からコンポーネント60aを見つけ出す。かかるロジックエレメント52は、これもキャッシュメモリ46に記憶されているオブジェクト54b内のコンポーネント60cを見つけ出す。再生キャッシュシステム42は、オブジェクト54aおよび54bからコンポーネント60aおよび60cをそれぞれ抽出し、オブジェクト60aおよび60cを組み合わせ、要求オブジェクト54eに関連づけられた新たなオブジェクトタグ56を添付することにより、要求された特定オブジェクト54を構築する。キャッシュメモリ46内のオブジェクト54aおよび54bに記憶されたコンポーネント60aおよび60cのそれぞれから、要求に応じて生成された特定のオブジェクト54eへ伸張する実線の矢印は、オブジェクト54と、この例示実施形態における要求に関するコンポーネント60との間の関係を示している。この例において、要求命令に応じて構築された特定のオブジェクト54eが、キャッシュメモリ46内に記憶されて、示されている。破線の矢印によって示された第二の例において、要求された特定オブジェクト54e'は、前述の例の特定オブジェクト54eの構成と同様に、再生キャッシュシステム42により、キャッシュメモリ46内に記憶されたオブジェクト54aのコンポーネント60b、および、記憶メモリ28内に記憶されたオブジェクト54dのコンポーネント60gから構成される。
点線の矢印によって示された第三の例において、要求された特定オブジェクト54e''は、二つの例に先立ち、要求特定オブジェクト54eおよび54e'の構成と同様に、再生キャッシュシステム42により、記憶メモリ28内に記憶されたオブジェクト54cのコンポーネント60f、および、さらに記憶メモリ28内に記憶されたオブジェクト54dのコンポーネント60hから構築される。
図6Cは、本発明の原理に基づき、オブジェクト54を構成する再生キャッシュシステム42の例示実施形態であって、要求された特定のオブジェクト54が一つのオブジェクトの一以上のコンポーネントから構成されるものを示している。第一の例においては、そのオブジェクトのコンポーネントがコンポーネント60aで構成される特定のオブジェクト54eが、要求される。ロジックエレメント52は、コンポーネント60aを、キャッシュメモリ46に記憶されたオブジェクト54aのコンポーネント60として見つけ出す。再生キャッシュシステム42は、オブジェクト54aからコンポーネント60aを抽出し、特定のオブジェクト54eにオブジェクトタグ56を添付するとともに、特定オブジェクト54e要求命令に応じて当該特定オブジェクト54eを記憶する。キャッシュメモリ46内のオブジェクト54a内に記憶されたオブジェクト60aから、要求に応じて生成された特定のオブジェクト54eへ伸張する実線の矢印は、オブジェクト54と、この例示実施形態における要求に関するコンポーネント60との間の関係を示している。
同様に、第二の例において、そのオブジェクトのコンポーネントがコンポーネント60gで構成される特定のオブジェクト54e'が、要求される。
ロジックエレメント52は、コンポーネント60gを、記憶メモリ28に記憶されたオブジェクト54dのコンポーネント60として見つけ出し、オブジェクトタグ56を特定のオブジェクト54e'に添付し、当該特定オブジェクト54e'を、特定オブジェクト54e'要求命令に応じて、キャッシュメモリ46内に記憶する。キャッシュメモリ46内に記憶されたオブジェクト60gから特定のオブジェクト54e'へ伸張する実線の矢印は、要求に応じて生成されたオブジェクト54と、この第二例における要求に関するコンポーネント60との間の関係を示している。
図7を参照すると、再生キャッシュシステム42の一実施形態の例において、要求されたオブジェクト54は、写真のデジタル表現等のグラフィックイメージをコンピュータが可読な表現にしたグラフィックイメージファイル96である。イメージファイルは、ビットマップ処理済みのイメージ等の非圧縮イメージファイル、又は、離散コサイン変換イメージファイル等の圧縮イメージファイル、又は、ウエーブレット変換済みイメージファイルであってもよい。イメージファイル96は、複数のタイル98aから98n(総称して98)により構成されている。イメージファイル96の一例は、道路、地形、天気図等の地図(graphical map)であって、そのイメージは、多くの画素を有し、通常、標準的なコンピュータデイスプレイ端末上に表示出来る数よりも多い。例示したイメージファイル96は、全体又は分割された複数のタイルであって、それらは、イメージファイル画素のサブセットと対応し、コンピュータデイスプレイ端末上に同時に表示可能なもの、として取り扱われる。ここで、一以上のリモート記憶装置22、22’、40、42から全体イメージファイル96を要求することができ、要求に応じ表示された各タイル98又は各タイル98を、一以上のリモート記憶装置22、22’、40、42から必要に応じて取り込むこともできる。イメージファイルを要求するものが、第一タイル98aを認識し、次に第二タイル98bを認識した場合、再生キャッシュシステム42は、要求された第一タイル98aおよび第二タイル98bをキャッシュメモリ46内に記憶することができる。タイル98a又は98bのいずれかをコンポーネント60として含む、異なるオブジェクト54を求める要求であって後になされたものを、タイル98a、98bを一以上のリモート記憶装置22、22’、40、42から取り込むのではなく、キャッシュしたタイル98a又は98bを用いてキャッシュメモリ46から供給することができる。
図8を参照すると、ある実施形態において、オブジェクト54は、ウエーブレット変換圧縮イメージ100である。ウエーブレット変換圧縮イメージ100の一例は、JPEG2000イメージファイル100である。かかるJPEG2000イメージファイル100は、JPEG2000圧縮アルゴリズムが機能する性質(nature)に関する様々なコンポーネント60のカテゴリーから構成されている。JPEG2000圧縮アルゴリズムは、図7に示すように、イメージ96のデジタル表現を採用しており、イメージを一以上のタイル98に分割する。かかるJPEG2000圧縮アルゴリズムは、各タイル98毎に適用される。各タイル98は、組み合わせてカラーイメージを生成する場合、赤、緑、および青色のカラーコンポーネント102等のコンポーネント102a、102bおよび102c(総称して102)に分割される。各カラーコンポーネント102は、元のイメージファイル96のサブバンド104aから104j(総称して104)を構成するため、ウエーブレット変換を用いて変換される。サブバンド104a、104b、および104cは、第一レベルのウエーブレット変換に相当する。サブバンド104d、104eおよび104fは、第二サブバンドレベルに相当し、サブバンド104g、104h および104iは、第二サブバンドレベルに第二サブバンドレベルに相当する。かかる変換は、サブバンド104の追加レベルを生成するため、繰り返し適用される。サブバンド104の様々なレベルは、イメージの解像度の異なるレベルに相当する。
イメージファイル96にJPEG2000アルゴリズムを適用すると、各カラーコンポーネント用のサブバンドの2次元アレイが、JPEG2000アルゴリズムにより、更に、レイヤー、又は、コード化されたビット平面106aから106n(総称して106)、に分割される。かかるレイヤー106は、イメージの寝室又は精度に対応している。デコードされたレイヤー106が多いほど、現れるイメージの品質が高くなる。
再び図3を参照すると、タイル98、カラーコンポーネント102、サブバンド104およびレイヤー106が、コンポーネント60に相当するとともに、JPEG2000イメージファイル100は、オブジェクト54に相当する。JPEG2000アルゴリズムは、イメージファイル96をJPEG2000”コードストリーム”と呼ばれるJPEG2000イメージファイル100に変換する。かかるコードストリームは、基本的に、コードストリームヘッダー又はオブジェクトタグ56を有する、特定順序で配列したコンポーネント60の集合である。JPEG2000コードストリームは、それらの識別性(identification)および操作性(manipulation)を確保するため、各コンポーネント60用のコンポーネントタグ62をも含んでいる。
コンポーネント60の選択および特定の順序にもよるが、JPEG2000コードストリームは、元のイメージファイル96の異なる圧縮バージョンを含んでいる。JPEG2000コードストリームのシンタックスは、色、解像度、品質、ならびに元のイメージ上の空間位置、を変化させるようなイメージ表現を可能にする。
図示した例において、要求されたオブジェクト54がJPEG2000イメージ100である図8を再度参照すると、オブジェクトコンポーネント60は、一以上のタイル98、および一以上のカラーコンポネント102、および/又は、一以上のサブバンド104、および/又は、一以上のレイヤー106、を備えている。JPEG2000アルゴリズムのシンタックスは、要求に応じ、コンポーネント60の順序を指示する。要求されたオブジェクト54は、全体的に、フルサイズ、フルカラー、フルの解像度、および、フルクオリテイーのJPEG2000イメージ100であってもよく、又は、要求されたオブジェクト54は、フルサイズ、フルカラー、フルの解像度、フルクオリテイーのJPEG2000イメージ100の、サブセットとすることもできる。JPEG2000イメージ100のサブセットの例は、より大きなイメージの中央部分、カラーイメージのゲレースケール版、高解像度イメージのサムネイル、又は、フルクオリテイーイメージの質を落としたバージョン、を含んでいる。
フルサイズ、フルカラー、フルの解像度、フルクオリテイーのJPEG2000イメージ100の程度を識別することに加え、オブジェクト54の要求命令は、要求されたオブジェクトコンポーネント60の特定の順序を識別することもできる。コンポーネント60の順序は、解凍されたJPEG2000イメージ100の表現に影響を及ぼす。タイル98について、プログレッシブサイズによる表現を生成するため、又は、例えば、中央タイル98で始まり、残りのタイル98を用いてイメージの境界に向かって外側に続くよう、イメージの位置によってプログレッシブ的に表現するため、コンポーネント60を並べることが可能である。カラーコンポーネント102について、例えば、グレースケールで始まり、次に、二色のカラーイメージに進み、最終的にはフルカラーイメージに進む、プログレッシブカラーによる表現を生成するため、コンポーネント60を並べることも可能である。これに代え、サブバンド104について、例えば、低い解像度のイメージで始まり、次に、より高いレベルの解像度に進み、最終的には要求されたオブジェクト54の解像度レベルに進む、プログレッシブ解像度による表現を生成するため、コンポーネント60を並べることが可能である。レイヤー106について、例えば、低い品質のイメージで始まり、次に、より高い品質の解像度に進み、最終的には要求されたオブジェクト54の品質レベルに進む、プログレッシブクオリテイーによる表現を生成するため、コンポーネント60を並べることも可能である。
前記いずれかの表現モードに、フルサイズ、フルカラー、フルの解像度、フルクオリテイーのJPEG2000イメージの選択された部分が示されている場合、又は、要求されたJPEG2000イメージ100の異なるセグメントが、様々なサイズ、カラー、解像度又は品質で表されている場合は、その他の変更も可能である。その一例は、高い解像度で設けられた中央領域等のサブ領域を有する低解像度イメージである。
第一の例において、再生キャッシュシステム42は、JPEG2000イメージ100の特定の表現を定義する、順序づけされたコンポーネント60のセットを備えた第一のオブジェクト54をキャッシュメモリ46内にキャッシュしている。第一の例において、第一のオブジェクト54は、プログレッシブ解像度用に並べられたフルサイズ、フルカラー、フルの解像度、フルクオリテイーのJPEG2000イメージ100である。第一イメージ54の低解像度のバージョンを要求する命令であって、第一オブジェクトと関連する第二のオブジェクト54を要求する次の命令、を受けると、再生キャッシュシステム42は、キャッシュメモリ46内に低解像度の第二イメージ54を生成するため必要なコンポーネント60があること、を認識する。次に、再生キャッシュシステムは、第一のキャッシュ済みオブジェクト54から必要なコンポーネント60を見つけ出し、第二オブジェクト54を構築する。
他の例において、キャッシュメモリ46内に記憶された第一オブジェクト54は、低解像度、又は、JPEG2000イメージ100のサムネイル表現、である。
次に、それにより第一オブジェクト54のサムネイルが得られるJPEG2000イメージ100のフル解像度表現の要求命令であって、第一オブジェクト54と関連する第二オブジェクト54を要求する命令、を受信する。再生キャッシュシステム42は、第二の要求されたオブジェクト54に関連するサムネイルコンポーネント60がキャッシュメモリ46内にあること、を再度認識する。次に、再生キャッシュシステム42は、サムネイルコンポーネント60と組み合わされ、一以上のリモート記憶装置22、22’、40、42から追加のコンポーネントを得た場合、第二の要求オブジェクト54を構築するのに十分な追加のコンポーネント60を決定する。再生キャッシュシステム42は、カラー、品質、又は、コンポーネント60の表現順序でさえ、第一オブジェクト54と異なる第二オブジェクト54の要求命令を同様に供給することが出来る。
図9を参照すると、さらに別の実施形態において、オブジェクト54は、合成ドキュメント108である。合成ドキュメント108は、複数のドキュメントコンポーネント60aから60d(総称して60)、により構成されている。かかる複数のドキュメントコンポーネント60は、ファイルのサブセクションであって、識別可能ないずれをも表している。ドキュメントコンポーネント60の例は、グラフィックス、スプレッドシート、チャプター、セクション、テキストのページ、スライド、チャート、グラフ、図面、および、テーブルを含んでいる。合成ドキュメントの例は、ワードプロセッシングドキュメント、OLEドキュメント、ウエッブドキュメント、およびスライドプレゼンテーションを含む。合成ドキュメント108の他の例は、ドキュメントコンポーネント60が、独立した一つの歌、又は、オーデイオコンパクトデイスク(CD)等の複数の歌の集合の一部、MP3ファイル等の圧縮されたデジタルオーデイオファイル、又は、複数トラック録音の独立したトラック、を表すオーデイオファイル、を含んでいる。
ある例において、合成ドキュメント108は、OLEドキュメントであり、ドキュメントコンポーネント60は、埋め込まれたスプレッドシート(embedded spread sheet)である。ここで、データ処理システム20は、記憶装置から合成ドキュメント108を取り込み、当該合成ドキュメント108をキャッシュし、再生キャッシュシステム42内にスプレッドシートドキュメントコンポーネント60を含ませることにより、第一合成ドキュメント108を要求する命令に応答する。再生キャッシュシステム42は、合成ドキュメント108を返送することができ、コンポーネント60と合成ドキュメント108を別々にキャッシュする。データ処理システム20が、第一ドキュメント108と異なるが、同じ埋め込みスプレッドシートドキュメントコンポーネント60を有する第二ドキュメント108の要求命令であって、後になされたものを受けた場合、再生キャッシュシステム42は、第二合成ドキュメント108はキャッシュされていないが、埋め込みスプレッドシートコンポーネント60はキャッシュされており、第一ドキュメント108内に含まれる(又は、別にキャッシュされている場合、第一ドキュメント108およびコンポーネント60とは別に含まれる)、と判断する。再生キャッシュシステム42は、既にキャッシュされたスプレッドシートドキュメントコンポーネント60より少ないが、第二の要求された合成ドキュメント108のために十分なドキュメントコンポーネント60を取り込む。次に、再生キャッシュシステム42は、キャッシュされているドキュメントコンポーネント60と、要求された第二合成ドキュメント108が生成された記憶装置から取り込まれた残りのドキュメント60、を結合する。再生キャッシュシステム42は、後の命令を供給するため、第二合成ドキュメント108の全部又は一部をキャシュすることを決定することができる。再生キャッシュシステム42によって同様に取り扱われる合成ドキュメント108の他の例には、埋め込みコンポーネント60を有するHTMLドキュメント等のウエッブ合成ドキュメント108、が含まれる。ウエッブ合成ドキュメント108のコンポーネントは、グラフィックコンポーネント、テキストブロックコンポーネント、フレーム、およびアプレット等の項目を含んでいる。
好ましい実施形態に示したように、当業者であれば、本発明の範囲および精神内で多くの変更をなし得ることを、理解する。したがって、本発明を、特許請求の範囲内に制限する意図はない。
本添付のクレームを用いて発明を明確にする図面は、本発明の原理を表す限りにおいては、実寸である必要はない。各図面中の同じ参照文字は、対応する部分を表す。本発明の効果は、添付の図面を参照しつつ詳細なの説明を読むことより、一層理解されよう。
図1は、本発明におけるキャッシュとホストデータプロセッサ間の関係を示すデータ処理プロセッサ構造の一実施形態のブロック図である。
図2は、前記キャッシュの一例を示す全体図である。
図3は、データオブジェクト構造の一例を示す全体図である。
図4は、キャッシュ内にオブジェクトを構築するプロセスの全体を示すフロー図である。
図5は、キャッシュ内にオブジェクトを構築するプロセスの詳細を示すフロー図である。
図6Aは、データオブジェクト構造の一例を示す全体図である。
図6Bは、データオブジェクト構造の一例を示す全体図である。
図6Cは、データオブジェクト構造の一例を示す全体図である。
図7は、イメージデータオブジェクトの一例を示す概略図である。
図8は、他のイメージデータオブジェクトの一例を示す概略図である。
図9は、合成ドキュメントデータオブジェクトの一例を示す概略図である。