JPH10124397A - 多層キャッシング・システム及び該システムを実現するための方法 - Google Patents

多層キャッシング・システム及び該システムを実現するための方法

Info

Publication number
JPH10124397A
JPH10124397A JP9113774A JP11377497A JPH10124397A JP H10124397 A JPH10124397 A JP H10124397A JP 9113774 A JP9113774 A JP 9113774A JP 11377497 A JP11377497 A JP 11377497A JP H10124397 A JPH10124397 A JP H10124397A
Authority
JP
Japan
Prior art keywords
data
ram
layer
storage device
mass storage
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.)
Pending
Application number
JP9113774A
Other languages
English (en)
Inventor
Brian Berliner
ブライアン・バーリナー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH10124397A publication Critical patent/JPH10124397A/ja
Pending legal-status Critical Current

Links

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
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/221Static RAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/224Disk storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 キャッシングによりウィンドウズOSの性能
を向上させること。 【手段】 多層キャッシング・システムは、LRU法に
より管理されるRAMに小型キャッシュを有する。RA
Mキャッシュは回転記憶媒体上の不揮発性キャッシュの
サブセットであり、不揮発性キャッシュはCD−ROM
又は大容量記憶装置のサブセットである。システム・メ
モリ内に適切なサイズのRAMキャッシュを確立するた
めに、階層技法が用いられ、RAMキャッシュは同サイ
ズの複数のサブブロックから構成される。少量のRAM
を用いるために、LRUキャッシュ除去法を実現するテ
ーブルが維持される。要求されたデータが位置するRA
Mキャッシュ内の「バケット」を探索するために、ハッ
シュ機構が用いられる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この出願は、出願人に譲渡さ
れた1996年4月1日に出願された米国特許出願第8
/640,670号、1996年5月1日に出願された
米国特許出願第8/641,654号、1996年5月
1日に出願された米国特許第8/640,527号、1
996年5月1日に出願された米国特許第8/641,
523号及び1996年5月1日に出願された米国特許
第8/639,531号に関連するものであり、これら
の関連の米国特許出願の記載事項はこの出願の明細書の
記載事項として援用する。
【0002】この出願の発明は、データ処理システムの
ためのキャッシング(caching)システム及び該
システムを実現する方法に関する。
【0003】
【従来の技術】キャッシュは、記憶されたビット当たり
のコストが高い高速メモリ資源が利用可能のとき、比較
的低速のコンピュータ・メモリ資源の特性を向上させる
ために長く採用されてきた。典型的には、高速メモリ資
源(例えばキャッシュ)内の一時メモリ・ブロックは、
低速コンピュータ・メモリ資源に記憶された情報の一部
分のみを記憶するために確立されている。低速メモリ資
源に常駐する全アプリケーション・プログラム又は全デ
ータ・ファイルを高速メモリ資源内に記憶する代わり
に、アプリケーション・プログラム又はデータ・ファイ
ルのどの部分が最もアクセスされるかを決定するために
採用されるアルゴリズムが存在する。システムの中央処
理ユニット(CPU)がキャッシュに記憶されていない
メモリ・ロケーションを呼び出すとき、(完全にファイ
ルされていれば)キャッシュは、低速メモリ資源からの
データによって少なくとも部分的に上書きされなければ
ならない。同様に、データに対して永久的な変更が加え
られたとき、キャッシュ及び低速メモリ資源のデータは
該変更を反映するように更新されなければならない。
【0004】現在、一般的なビジネス関連のタスクを実
行することができるコンピュータは、世界中で1億5千
万台にもなる。パーソナル・コンピュータの急速な増殖
が1980年代に始まったとき、ほとんど全部のパーソ
ナル・コンピュータはスタンドアローンのユニットとし
て採用された。しかし、マルチユーザー・システムがま
もなく開発された。こうした初期のマルチユーザー・シ
ステムはCP/Mディスク・オペーレティング・システ
ム(これは、ギャリー・キンドールによって書かれ、デ
ィジタル・リサーチ社から販売された)に対して書かれ
たソフトウェアを実行した。ディジタル・リサーチ社か
ら供給されたマルチユーザー・オペレーティング・シス
テムMP/Mは、“ダム(dumb)”ターミナルを単
一のマイクロプロセッサ及びシェアされた(share
d)ディスク・ドライブと接続した。一方、独立の会社
から供給されるずっと複雑な製品であるTurboDO
Sは、今日使用されているローカル・エリア・ネットワ
ーク(LAN)に良く似たマスター/スレーブ構造を利
用した。
【0005】MP/Mオペレーティング・システム及び
TurboDOSオペレーティング・システムは、イン
テル8080マイクロプロセッサ又はザイログZ−80
マイクロプロセッサに基づいてコンピュータ・システム
上で動作した。これらの初期のマイクロプロセッサは、
ランダム・アクセス・メモリの65,536バイトより
も多くのバイトを直接アドレスすることはできなかっ
た。MP/M及びTurboDOSが最低で約50,0
00バイトのランダム・アクセス・メモリを要求した結
果、アドレス可能なメモリのうちの約15,000バイ
トがアプリケーション・プログラムに残されるだけであ
った。単純なワードプロセッサを除いて、15,000
バイト以下を要求するアプリケーション・プログラムは
ほとんど存在しないので、初期のマルチユーザー・シス
テムは、大部分、実用的な汎用マルチユーザー・データ
処理システムよりも知的な骨董品であった。
【0006】MP/M又はTurboDOSを使用する
分散データ処理(即ち、長距離データ・リンクで相互接
続された複数のLAN)は更に絶望的であった。これ
は、アプリケーション・ソフトウェアをロードする前
に、オペレーティング・システムに加えて通信プログラ
ムをメモリへロードすることが必要だったからである。
しかし、数メガバイトのランダム・アクセス・メモリを
アドレスするよう設計されたインテル80286マイク
ロプロセッサに基づくIBMコンパティブル・コンピュ
ータの導入と共に、実用的なLAN及び分散データ処理
システムの開発が実現可能になった。初期にはノベル社
は大部分のLAN市場を独占したが、マイクロソフト社
からのLANソフトウェアを利用するネットワークの数
は増えていった。
【0007】分散データ処理ネットワーク及び分散ネッ
トワーク内のLANはキャッシング(caching)
から利益を受けることが多い。典型的には、分散処理ネ
ットワークのLANの間のデータ・リンクはLANのノ
ード(即ち、個々のコンピュータ)間の相互接続よりも
低速である。更に、遠方メモリ資源(例えば、遠方のサ
ーバー・システムのディスク・ドライブ)は局所メモリ
資源と同等の速度又はそれ以上の速度を持つけれども、
データ・リンクによる長距離接続は、遠方資源に対する
アクセス時間を劇的に遅くする。分散処理システムのL
ANの間又はLANのノード(即ち、個々のシステム)
の間のリンクの形式とは無関係に、それぞれのデータ・
リンクは所与の帯域幅を有するため、有限の量のデータ
のみがリンクを介して同時に転送されるにすぎない。例
えば、所定数以上のユーザーが(LANの間又はLAN
内の)同一のリンクを介して通信しようとしていると
き、帯域幅を越えると、当該リンクによる応答時間は典
型的には悪化する。これは、全部の競合する要求を均等
に受け入れるように各ユーザーの要求が遅延されるから
である。したがって、ネットワークを介して読まれたデ
ータのキャッシングは、一般的には、データ・リンク・
ローディングを減らすことにより、及び、エンドユーザ
ーに急速アクセス可能なデータを提供することにより、
システム性能を向上させることができる。
【0008】ここ数年、コンパクトディスク・リードオ
ンリー・メモリ装置(CD−ROM)が極めて人気を博
してきている。これは、安価で大容量のコンパクトディ
スク記憶媒体及び比較的安価なCD−ROMリーダー
(ドライブ)が利用可能になったことに起因する。事
実、米国で販売される新しいパーソナル・コンピュータ
のほぼ全部は、インストール済みのCD−ROMドライ
ブを備えている。現在のCD−ROM媒体はほぼ450
〜500メガバイトのデータを記憶することができる
が、こうしたデータへのアクセスは最新のハードディス
ク・ドライブに記憶されたデータよりもかなり遅い。例
えば、“6X”ドライブとして知られている高性能CD
−ROMドライブに対する現行の標準は、最高で1秒当
たり約600キロバイトのデータを読むことができる。
一方、最新の高速IDEハードディスク・ドライブは1
秒当たり6メガバイト前後を読むことができる(これは
6X CD−ROMドライブの10倍近い速度であ
る)。つまり、CD−ROMドライブの性能もキャッシ
ングによって大幅に改善される。
【0009】このところ、マイクロソフト・ウィンドウ
ズ・バージョン3.x、マイクロソフト・ウィンドウズ
95、ウィンドウズNT、IBM社のOS/2及びジオ
ワークスのような多くのグラフィカル・ユーザー・イン
ターフェース(GUI)環境が開発された(なお、マイ
クロソフト、ウィンドウズNT、OS/2及びジオワー
クスは登録商標である)。これらの製品の中で、ジオワ
ークス及びウィンドウズ3.xは由緒あるマイクロソフ
トMS−DOSオペレーティング・システムの下でロー
ドされ、実行されなければならないので、ウィンドウズ
NT及びOS/2のみが真のオペレーティング・システ
ムである。ウィンドウズ95は、その動作にMS−DO
Sを必要とするので、ハイブリッドの面を持つ。簡単に
するために、ここではウィンドウズ3.x及びウィンド
ウズ95をオペレーティング・システムという。
【0010】今のところ、ウィンドウズ・バージョン
3.xは1989年〜1995年の間に販売されたほと
んど全てのパーソナル・コンピュータにバンドル(bu
ndle)されており、最も広く使用されているオペレ
ーティング・システムである。しかし、1995年のリ
リース日以来、マイクロソフト社からのマイクロソフト
・ウィンドウズ95オペレーティング・システムは最新
の高性能パーソナル・コンピュータにバンドルされてき
た。一年以内に、ウィンドウズ95は大抵のビジネス・
アプリケーションに対して選び抜かれたオペレーティン
グ・システムとなっており、パーソナル・コンピュータ
に対する最も広く使用されるオペレーティング・システ
ムとして急速にウィンドウズ3.xに取って代わるもの
と期待されている。
【0011】
【発明が解決しようとする課題】したがって、ウィンド
ウズ3.xオペレーティング・システム及びウィンドウ
ズ95オペレーティング・システムの下でキャッシング
によりCD−ROMドライブ及び分散処理ネットワーク
の性能を大幅に向上させる可能性が存在する。
【0012】
【課題を解決するための手段】ウィンドウズ95のリリ
ースの直後、サン・マイクロシステム社(ここでは、単
に「サン」と称する)は、ウィンドウズ3.x及びウィ
ンドウズ95の下で実行され、エンドユーザーに対して
完全にトランスペアレント(transparent)
であり、ウィンドウズ3.x及びウィンドウズ95の下
で実行される広範なファイル・システムと共に動作する
ネットワーク及びCD−ROMキャッシング製品を作成
しようとしていた。最近リリースされるキャッシング製
品においてこれらの要件を満たすために、サンはインス
トーラブル・ファイル・システム・マネージャー(IF
SMGR)仮想デバイス・ドライバによって提供される
サービスを利用する。この処理は米国特許出願第08/
641,654号に十分説明されている。簡単に述べる
と、IFSMGR仮想デバイス・ドライバは、キャッシ
ング製品が「フック(hook)」により全部のファイ
ル・システム入力/出力(I/O)要求を観察し、キャ
ッシング動作を実行しながらI/O動作の中間制御を行
うことができるようにする。つまり、この新しいキャッ
シング製品はIFSMGR仮想デバイス・ドライバとウ
ィンドウズ95のジェネリック・ファイル・システムと
の間で有効に「層構造(layered)」とされる。
また、このキャッシング製品は仮想デバイス・ドライバ
の定義と適合する。
【0013】サンの新しいキャッシング製品は「Sol
stice PC−CacheFS」(この明細書で
は、PC−CacheFSと言う)という名称であり、
回転記憶媒体(例えば、ハードディスク・ドライブ)に
常駐する読み出し・書き込み・消去可能なメモリのブロ
ックを採用する。性能強化として、PC−CacheF
Sはランダム・アクセス・メモリ(RAM)にも読み出
し・書き込み・消去可能なメモリのブロックを採用す
る。
【0014】ウィンドウズ3.x及びウィンドウズ95
のための個別のキャッシング製品を作る代わりに、PC
−CacheFSキャッシング製品は両方のオペレーテ
ィング・システムの下で動作するように設計された。し
かし、ウィンドウズ3.xオペレーティング・システム
にはIFSMGR仮想デバイス・ドライバがない。つま
り、ウィンドウズ95のIFSMGR V×D(仮想デ
バイス・ドライバ)の部分はウィンドウズ3.xの下で
動作するよう書き換えられる。この書き換えはマイクロ
ソフト社から提供されるIFSMGR仕様に基づいてい
る。かくて、PC−CacheFSキャッシング製品
(V×D)とウィンドウズ・オペレーティング・システ
ムとは両立性のために書き換える必要はない。
【0015】この発明は、多層(multitier)
キャッシング・システム及び該キャッシング・システム
を実現するための方法を含む。この多層キャッシング・
システムは、ランダム・アクセス・メモリ(RAM)
と、データを変更可能に記憶することができる少なくと
も1つの局所不揮発性の局所大容量記憶装置とを備える
コンピュータ・システムに関連して実現される。この発
明の実施の形態においては、キャッシング・システム
は、局所大容量記憶装置よりも低速なアクセス時間を持
ちキャッシングのために設計された低速大容量記憶装置
を備える。この低速大容量記憶装置は、コンピュータ・
システムによって制御されるCD−ROMドライブか、
ネットワーク・データ・リンクを介してコンピュータ・
システムが結合されるサーバー・データ処理システムに
よって制御されるCD−ROMドライブか、又は、サー
バー・データ処理システムによって制御されネットワー
ク・データ・リンクを介してコンピュータ・システムが
結合されるハードディスク・ドライブのような大容量記
憶装置のいずれかである。低速大容量記憶装置は第3層
データを記憶する。
【0016】この発明のキャッシング・システムの実施
の形態は、局所大容量記憶装置の一部分に確立された不
揮発性キャッシュを備える。この不揮発性キャッシュ
は、低速大容量記憶装置よりも記憶容量が小さいが、第
3層データのサブセットである第2層データのブロック
を記憶する。不揮発性キャッシュ内のデータ・ブロック
は不要情報収集のために無作為に管理される。
【0017】この発明の実施の形態においては、不揮発
性キャッシュ内の不使用ブロックは、空いたブロックが
利用可能でないとき、不揮発性キャッシュの更新期間に
データを除去するために無作為に選択される。同様に、
この発明の実施の形態においては、RAMキャッシュ内
の最低使用頻度のサブブロックは、空いたサブブロック
がないとき、RAMキャッシュの更新期間にデータが除
去される。
【0018】この発明のキャッシング・システムは、到
来するファイルI/O要求に応答して動作する。到来す
るファイルI/O要求が低速大容量記憶装置上及び不揮
発性キャッシュ内に常駐しRAMキャッシュに常駐しな
いデータに関係するならば、RAMキャッシュは不揮発
性キャッシュから更新される。到来するファイルI/O
要求が低速大容量記憶装置に常駐するが不揮発性キャッ
シュ及びRAMキャッシュには常駐しないデータに関係
するならば、RAMキャッシュ及び不揮発性キャッシュ
は低速大容量記憶装置から更新される。
【0019】この発明の実施の形態においては、不揮発
性メモリ内のデータ・ブロックはRAMキャッシュ内の
データ・サブブロックと同サイズである。
【0020】また、この発明の実施の形態においては、
システムRAMの一部分は、空いたサブブロックがない
とき、RAMキャッシュの更新期間にRAMキャッシュ
内の最低使用頻度のサブブロックに関係する不要情報の
収集(即ち、除去)を行うデータ・テーブルを維持する
ために利用される。また、この発明の実施の形態におい
ては、RAMキャッシュ及びデータ・テーブルは、シス
テム・ブート時間の初期設定時に、ファイルI/O要求
を受け取ったときRAMに確立される。
【0021】ファイルI/O要求がIFSMGR V×
Dへの「フック(hook)」を介して受信されると、
要求されたデータがRAMキャッシュにロードされてい
れば、要求されたデータが位置するRAMキャッシュ内
の「バケット」を探索するために、ハッシュ機構が用い
られる。
【0022】
【発明の実施の形態】この発明の実施の形態は、クライ
アント/サーバー・コンピュータ・システムを有する分
散処理システムにおける論理動作として実現される。こ
の発明の論理動作は、(1)コンピュータ・システム上
で実行されるコンピュータ実施の一連のステップとし
て、(2)該コンピュータ・システム内の相互接続され
たマシーン・モジュールとして実現される。この実現方
法は、この発明を実現するコンピュータ・システムの性
能要件に依存する選択事項である。したがって、ここで
説明する、この発明の実施の形態を作り上げる論理動作
は、動作、ステップ又はモジュールと呼ばれる。
【0023】この発明が用いられる動作環境は一般的な
分散コンピュータ・システムを包含し、汎用コンピュー
タ、ワークステーション又はパーソナル・コンピュータ
(ここでは、これらを局所ノードと言う)はクライアン
ト/サーバー配置において種々の形式の通信リンクを介
して接続され、多くはオブジェクト形式であるプログラ
ム及びデータは分散コンピュータ・システムの種々の構
成要素によって利用可能である。図1には、汎用ワーク
ステーション・コンピュータの要素の一部が図示されて
いる。図1において、プロセッサ1は入力/出力(I/
O)セクション2、中央処理ユニット(CPU)3及び
メモリ・セクション4を備える。I/Oセクション2は
キーボード5、表示装置6、ディスク記憶装置9及びC
D−ROMドライブ・ユニット7に接続される。CD−
ROMドライブ・ユニット7はプログラム10及びデー
タを典型的には含むCD−ROM媒体8を読むことがで
きる。この発明の装置及び方法を実現するメカニズムを
含むコンピュータ・プログラム製品は、このコンピュー
タ・システムのメモリ・セクション4、ディスク記憶装
置9又はCD−ROM媒体8に常駐する。こうしたコン
ピュータ・システムの例としては、サン・マイクロシス
テム社から提供されるSPARCシステム、IBM社及
びIBMコンパティブルなパーソナル・コンピュータの
製造会社から提供されるパーソナル・コンピュータ及び
ユニックス・オペレーティング・システムを実行するシ
ステムである。
【0024】この発明は、サンのPCーCacheFS
ネットワーク及びCD−ROMキャッシング製品に組み
込まれる。PC−CacheFSはウィンドウズ3.x
及びウィンドウズ95の下で動作し、エンドユーザーに
対して完全にトランスペアレントであり、ウィンドウズ
3.x及びウィンドウズ95の下で動作する種々のファ
イル・システムと共に働く。PC−CacheFS製品
は、インストーラブル・ファイル・システム・マネージ
ャー(IFSMGR)として知られる、マイクロソフト
・ウィンドウズ95内のソフトウェア・モジュールとの
インターフェースを行う。IFSMGRモジュールは、
マイクロソフト社によれば、仮想デバイス・ドライバ
(短縮してV×Dと言う)として分類される。また、P
C−CacheFS製品は仮想デバイス・ドライバの定
義に適合する。ウィンドウズ95オペレーティング・シ
ステムは、全部のファイル・システム入力/出力(I/
O)要求がIFSMGR V×Dに「フックされる(h
ooked)」ように設計される。この発明の実施の形
態において、PC−CacheFS V×DはIFSM
GR V×Dとウィンドウズ95のジェネリック・ファ
イル・システムとの間で層構造とされる。この発明の実
施の形態において、PC−CacheFS V×DはI
FSMGR V×Dから全部のファイル・システムI/
O要求を受け取り、局所ノードのユーザーによって予め
プログラムされたセットアップ命令に従ってキャッシン
グ構成を実現する。換言すれば、ユーザーはPC−Ca
cheFS V×Dに対して、どのネットワーク又はC
D−ROMがキヤッシュされるべきかを命じる。
【0025】マイクロソフト・ウィンドウズ95オペレ
ーティング・システムは、システムのランダム・アクセ
ス・メモリ(RAM)における局所ディスク・ドライブ
・アクセスに対してキャッシングを提供するけれども、
一般的には、ネットワーク・アクセス及びCD−ROM
アクセスをキャッシュしない。一方、ウィンドウズ3.
xによって提供されるキャッシング機能は、ウィンドウ
ズ95のキャッシング機能に比べてかなり開発程度が低
い。
【0026】マイクロソフト・ウィンドウズ3.xオペ
レーティング・システム及びウィンドウズ95オペレー
ティング・システムの性能を強化するために、この発明
の実施の形態は、局所CD−ROMドライブ及び非局所
ネットワーク資源(これは、局所及び遠方のサーバー・
システム・ディスク・ドライブ等を含む)に記憶された
情報の多層キャッシングを提供する。小型の上層(up
per−tier)キャッシュはLRU(リースト・リ
ーセントリー・ユーズド)法で管理される高速ランダム
・アクセス・メモリ(RAM)において初期設定され
る。この高速RAMはスタティック・ランダム・アクセ
ス・メモリ(SRAM)チップ、ダイナミック・ランダ
ム・アクセス・メモリ(DRAM)チップ、強誘電性D
RAMメモリ・チップ、又はその他の種々の形式の高速
RAMから組み立てられる。RAMにおける小型のキャ
ッシュは、局所ハードディスク・ドライブにおけるずっ
と大型の不揮発性の下層(lower−tier)キャ
ッシュによってバックアップされる。多層キャッシュ・
システムの使用はいくつかの理由から有利である。ディ
スク・ドライブに常駐するキャッシュは、非局所ネット
ワーク・ドライブから、又は、局所又は非局所CD−R
OMドライブから検索されたデータの不揮発性記憶装置
を提供する。つまり、多層キャッシュ・システムが動作
するデータ処理システムの電源が切られるとき、ハード
ディスク・ドライブ上のキャッシュされたデータは失わ
れない。高速RAMキャッシュはハードディスク・ドラ
イブよりもずっと迅速なデータ・アクセスを提供し、R
AMキャッシュに記憶されたデータがシステムの電源断
によって失われたとしても、該RAMキャッシュは、シ
ステムのブートアップ(boot−up)後にRAMキ
ャッシュが再初期設定されると、不揮発性のオンディス
ク・キャッシュから部分的に又は完全に再ロードされ
る。この発明は多層キャッシュ・システム装置ばかりで
なく、こうした多層キャッシュ・システム装置を実現す
る方法をも含む。
【0027】図2及び図3の疑似コード・フローチャー
トは、多層キャッシュ・システムの実施の形態を実現し
維持するために用いられる論理ステップを詳細に説明し
ている。オン・ディスク・キャッシュの動作の概観が本
明細書に含まれているが、更なる詳細な説明は3つの関
連の米国出願、即ち、1996年5月1日に出願された
「ネットワーク及びCD−ROMのための不揮発性キャ
ッシング製品を実現するための方法」という名称の米国
出願第08/641654号、1996年5月1日に出
願された「局所ハードディスク・ドライブを用いたネッ
トワーク及びCD−ROMアクセスをキャッシュするた
めの方法」という名称の米国出願第08/640527
号、及び1996年5月1日に出願された「キャッシュ
・メモリから不使用データを除去する方法」という名称
の米国出願第08/641523号において行われてい
る。
【0028】図2のステップ1において、この発明の方
法は、IFSMGRから直接に、又は、チェーン又は該
チェーンからフックされたチェーンを介して、ファイル
I/O要求をキャッシングV×Dが受信したときに開始
する。ステップ2において、これがブート時間(boo
t−time)初期設定であるかどうかの決定がなされ
る。もしそうであれば、ステップ3は、発見的(即ち、
経験に基づいた推測)技法を用いて、システム・メモリ
内のRAMキャッシュの最適なサイズを決定する。ステ
ップ4は、RAMキャッシュ内に同サイズのサブブロッ
クを確立することにより、及び、LRU法でサブブロッ
クを管理するミニ・データベースをセットアップするこ
とにより、RAMキャッシュを初期設定する。この発明
の実施の形態においては、RAMキャッシュ内のそれぞ
れのサブブロックは8キロバイトである。ステップ5に
おいて、入力されたI/O要求はキャッシングのために
構成されたメモリ資源に関係するかどうかが決定され
る。もし関係しないならば、入力されたI/O要求は次
のフックにチェーンされ、チェーンにその後のフックが
ないならば、IFSMGRにチェーンされる。ステップ
7において、ハッシュ機構を用いて、RAMキャッシュ
内のどの“バケット”が要求されたデータを含むかが決
定される。ステップ8において、要求されたデータがR
AMキャッシュに既に存在するかどうかが決定される。
要求されたデータが既にRAMキャッシュに存在するな
らば、ステップ14において、ファイルI/O要求は要
求されたデータで満足され、制御はステップ15によっ
てIFSMGRへ戻される。一方、要求されたデータが
RAMキャッシュにまだ存在しないならば、要求された
データはRAMキャッシュにロードされなければならな
い。ステップ10(図3)はデータの最低使用頻度(L
RU)のブロックをRAMキャッシュにおいて除去(即
ち削除)する。ステップ11(図3)は、要求されたデ
ータがオン・ディスク・キャッシュ内に常駐するかどう
かを検査する。要求されたデータがオン・ディスク・キ
ャッシュ内に常駐していないならば、オン・ディスク・
キャッシュはステップ12(図3)においてネットワー
クにより又はCD−ROMファイル・システムにより更
新される。要求されたデータがオン・ディスク・キャッ
シュ内に常駐していれば、ステップ13(図3)におい
て、要求されたデータを含むRAMキャッシュ内のサブ
ブロックのサイズの量のデータがオン・ディスク・キャ
ッシュから読み出され、RAMキャッシュ内の除去され
たサブブロックに書き込まれる。ステップ14におい
て、I/O要求はRAMキャッシュ内のデータで満足す
る。ステップ15(図2)において、ファイルI/O要
求の制御はIFSMGR V×Dへ直接戻される。ステ
ップ16はRAMキャッシュ実現方法が完了したことを
示す。
【0029】ハードディスク・ドライブに位置する不揮
発性キャッシュ内のデータの除去は、満杯時に不揮発性
キャッシュが更新されなければならない場合には必ず必
要とされる。そこで、システムが実行中で且つキャッシ
ュが完全には満たされていないときにシステム・オーバ
ーヘッドを絶対的に要求しないという独特の除去方法が
採用されている。システム・オーバーヘッドが要求され
ないのは、この新規な除去方法が、最近の使用や使用頻
度に基づいて不揮発性キャッシュ内のデータ・ブロック
を追跡するためのテーブルを維持するようキャッシング
・プログラムに要求する除去アルゴリズムを利用してい
ないからである。不揮発性キャッシュ内の全部のブロッ
クが満杯になると、キャッシュ内で十分なスペースが利
用可能になるまで、データ・ブロックは疑似乱数的に一
時に除去される。この除去方法は、キャッシュの動作速
度の向上故に、何パーセントかのキャッシュ・ヒットと
いう小さな損失を伴うものであるが、ハードディスク・
ドライブのような回転記憶媒体上に確立されるキャッシ
ュ・メモリに特に応用可能である。この除去方法は、1
996年5月1日に出願された「キャッシュ・メモリか
らの不使用データを除去する方法」という名称の米国特
許出願第08/641523号に開示されている。
【0030】かくて、この発明の多層キャッシュ・シス
テムは、3つのレベルのデータに対して階層記憶を提供
する。下層である第3層は、データ・リンクを介して局
所ノードと接続されるためにアクセス速度が低下したネ
ットワーク大容量記憶装置や局所CD−ROMドライブ
のような低速の大容量記憶装置上のデータによって表さ
れる。第2層はハードディスク・ドライブのような不揮
発性メモリ内のキャッシュされるデータによって表され
る。第1層はシステムRAM内のキャッシュされるデー
タによって表される。
【0031】以上、この発明を実施の形態に関して特に
図示し説明してきたが、この発明の精神及び範囲内で形
式及び詳細について種々の変更が可能であることを理解
すべきである。
【図面の簡単な説明】
【図1】この発明にしたがう方法のコンピュータ実現ス
テップを実施するためのコンピュータ・システムを示す
図である。
【図2】図3と共に、RAMキャッシュの論理動作フロ
ーを表すフローチャートを示す図である。
【図3】図2と共に、RAMキャッシュの論理動作フロ
ーを表すフローチャートを示す図である。
【符号の説明】
1:プロセッサ、 2:I/Oセクション、 3:中央
処理ユニット、4:メモリ・セクション、 5:キーボ
ード、 6:表示装置、7:CD−ROMドライブ・ユ
ニット、 8:CD−ROM媒体、9:ディスク記憶装
置。
フロントページの続き (71)出願人 597004720 2550 Garcia Avenue,MS PAL1−521,Mountain V iew,California 94043− 1100,United States of America

Claims (30)

    【特許請求の範囲】
  1. 【請求項1】 複数のRAMデータ・ブロック内に第1
    層データを記憶するためのRAMキャッシュとして一部
    分が用意され初期設定されるRAMと、データが変更可
    能に記憶され、不揮発性データ・ブロック内に第2層デ
    ータを記憶するための不揮発性キャッシュとして一部分
    が動作する少なくとも1つの局所不揮発性の局所大容量
    記憶装置とを備えるコンピュータ・システム上で実現さ
    れる多層キャッシング・システムを実現するための方法
    であって、前記コンピュータ・システムが前記局所大容
    量記憶装置よりも低いアクセス速度の低速大容量記憶装
    置へのデータ経路を有しており、前記低速大容量記憶装
    置はフルセットのファイル・データを記憶している方法
    において、 受信されたファイル入力/出力要求が前記低速大容量記
    憶装置に常駐するデータに関係するときは必ず、及び、
    この要求されたデータが第1層データ及び第2層データ
    として利用可能でないとき、 全部のRAMデータ・ブロックが第1層データで既に満
    たされているかどうかを決定するステップと、 全部のRAMデータ・ブロックが既に満たされているな
    らば、最低使用頻度のRAMデータ・ブロックから第1
    層データを除去するステップと、 前記要求されたデータを含む第3層データの量を検索す
    るステップと、 検索された第3層データを不揮発性データ・ブロック及
    び空いたRAMデータ・ブロックに書き込むステップ
    と、 前記空いたRAMデータ・ブロックに書き込まれた前記
    の検索された第3層データから、前記ファイル入力/出
    力要求を解決するステップと、を備える方法。
  2. 【請求項2】 ファイル入力/出力要求の受信時に、該
    ファイル入力/出力要求が前記低速大容量記憶装置に常
    駐する第3層データに関係するかどうかを決定するステ
    ップを更に備える、請求項1記載の方法。
  3. 【請求項3】 前記低速大容量記憶装置に常駐するデー
    タに関係するファイル入力/出力要求に対して、該ファ
    イル入力/出力要求を満足させる第1層データが前記R
    AMデータ・ブロックの1つに既に常駐しているかどう
    かを決定するステップを更に備える、請求項1記載の方
    法。
  4. 【請求項4】 前記ファイル入力/出力要求を満足させ
    る前記第1層データが前記RAMデータ・ブロックの1
    つに既に常駐しているならば、前記第1層データから前
    記ファイル入力/出力要求を解決するステップを更に備
    える、請求項3記載の方法。
  5. 【請求項5】 受信された入力/出力要求が前記低速大
    容量記憶装置に常駐するデータに関係する場合、及び、
    この要求されたデータが第1層データとしては利用可能
    でないが第2層データとして利用可能である場合、 全部のRAMデータ・ブロックが第1層データで既に満
    たされているかどうかを決定するステップと、 全部のRAMデータ・ブロックが既に満たされているな
    らば、最近最も使用されないRAMデータ・ブロックを
    除去するステップと、 全部の要求されたデータを含む第2層データの量を検索
    するステップと、 検索された第2層データを空いたRAMデータ・ブロッ
    クに書き込むステップと、 前記空いたRAMデータ・ブロックに書き込まれた前記
    の検索された第2層データから、前記ファイル入力/出
    力要求を解決するステップと、を更に備える、請求項1
    記載の方法。
  6. 【請求項6】 前記RAMの前記一部分が、オペレーテ
    ィング・システムのブート時間にRAMキャッシュとし
    て用意され初期設定される、請求項1記載の方法。
  7. 【請求項7】 前記RAMデータ・ブロック及び前記不
    揮発性データ・ブロックが同サイズである、請求項1記
    載の方法。
  8. 【請求項8】 前記低速大容量記憶装置が前記コンピュ
    ータ・システムによって制御されるCD−ROMドライ
    ブである、請求項1記載の方法。
  9. 【請求項9】 前記低速大容量記憶装置が、前記コンピ
    ュータ・システムがネットワーク・データ・リンクを介
    して結合されたサーバー・データ処理システムによって
    制御されるCD−ROMドライブである、請求項1記載
    の方法。
  10. 【請求項10】 前記低速大容量記憶装置が、前記コン
    ピュータ・システムがネットワーク・データ・リンクを
    介して結合されたサーバー・データ処理システムによっ
    て制御されるハードディスク・ドライブである、請求項
    1記載の方法。
  11. 【請求項11】 複数のRAMデータ・ブロック内に第
    1層データを記憶するためのRAMキャッシュとして一
    部分が用意され初期設定されるRAMと、データが変更
    可能に記憶され、不揮発性データ・ブロック内に第2層
    データを記憶するための不揮発性キャッシュとして一部
    分が動作する少なくとも1つの局所不揮発性の局所大容
    量記憶装置とを備えるコンピュータ・システム上で実現
    される多層キャッシング・システムを実現するための方
    法であって、前記コンピュータ・システムが前記局所大
    容量記憶装置よりも低いアクセス速度の低速大容量記憶
    装置へのデータ経路を有しており、前記低速大容量記憶
    装置はフルセットのファイル・データを記憶している方
    法において、 受信されたファイル入力/出力要求が前記低速大容量記
    憶装置に常駐するデータに関係するときは必ず、及び、
    この要求されたデータが第1層データ及び第2層データ
    として利用可能でないとき、 全部のRAMデータ・ブロックが第1層データで既に満
    たされているかどうかを決定するための準備をするステ
    ップと、 全部のRAMデータ・ブロックが満たされているとき、
    最低使用頻度のRAMデータ・ブロックから第1層デー
    タを除去するための準備をするステップと、 前記要求されたデータを含む第3層データの量を検索す
    るための準備をするステップと、 検索された第3層データを不揮発性データ・ブロック及
    び空いたRAMデータ・ブロックに書き込むための準備
    をするステップと、 前記空いたRAMデータ・ブロックに書き込まれた前記
    の検索された第3層データから前記ファイル入力/出力
    要求を解決するための準備をするステップと、を含む方
    法。
  12. 【請求項12】 ファイル入力/出力要求の受信時に、
    該ファイル入力/出力要求が前記低速大容量記憶装置に
    常駐する第3層データに関係するかどうかを決定するた
    めの準備をするステップを更に備える、請求項11記載
    の方法。
  13. 【請求項13】 前記低速大容量記憶装置に常駐するデ
    ータに関係するファイル入力/出力要求に対して、該フ
    ァイル入力/出力要求を満足させる第1層データが前記
    RAMデータ・ブロックの1つに既に常駐しているかど
    うかを決定するための準備をするステップを更に備え
    る、請求項11記載の方法。
  14. 【請求項14】 前記ファイル入力/出力要求を満足さ
    せる前記第1層データが前記RAMデータ・ブロックの
    1つに既に常駐しているならば、前記第1層データから
    前記ファイル入力/出力要求を解決するための準備をす
    るステップを更に備える、請求項13記載の方法。
  15. 【請求項15】 受信された入力/出力要求が前記低速
    大容量記憶装置に常駐するデータに関係する場合、及
    び、この要求されたデータが第1層データとしては利用
    可能でないが第2層データとして利用可能である場合、 全部のRAMデータ・ブロックが第1層データで既に満
    たされているかどうかを決定するための準備をするステ
    ップと、 全部のRAMデータ・ブロックが既に満たされているな
    らば、最低使用頻度のRAMデータ・ブロックを除去す
    るための準備をするステップと、 全部の要求されたデータを含む第2層データを検索する
    ための準備をするステップと、 検索された第2層データを空いたRAMデータ・ブロッ
    クに書き込むための準備をするステップと、 前記空いたRAMデータ・ブロックに書き込まれた前記
    の検索された第2層データから前記ファイル入力/出力
    要求を解決するための準備をするステップと、を更に備
    える、請求項11記載の方法。
  16. 【請求項16】 複数の同サイズのRAMデータ・ブロ
    ック内に第1層データを記憶するためのRAMキャッシ
    ュとして一部分が用意され初期設定されるRAMと、デ
    ータが変更可能に記憶され、不揮発性データ・ブロック
    内に第2層データを記憶するための不揮発性キャッシュ
    として一部分が動作する少なくとも1つの局所不揮発性
    の局所大容量記憶装置とを備えるコンピュータ・システ
    ム上で多層キャッシング・システムを実現するために表
    されたコンピュータ読み取り可能なコードを有するコン
    ピュータ使用可能な媒体を備えるコンピュータ・プログ
    ラム製品であって、 受信された入力/出力要求がキャッシングのために識別
    される大容量記憶装置に常駐するデータに関係する場
    合、及び、この要求されたデータが第1層データ及び第
    1層データとして利用可能でない場合、コンピュータ
    に、 全部のRAMデータ・ブロックが第1層データで既に満
    たされているかどうかを決定させ、 全部のRAMデータ・ブロックが満たされているとき、
    最低使用頻度のRAMデータ・ブロックから第1層デー
    タを除去させ、 前記要求されたデータを含む第3層データの量を検索さ
    せ、 検索された第3層データを不揮発性データ・ブロック及
    び空いたRAMデータ・ブロックに書き込ませ、前記空
    いたRAMデータ・ブロックに書き込まれた前記の検索
    された第3層データから前記ファイル入力/出力要求を
    解決させるように構成されたコンピュータ読み取り可能
    なプログラム・コード装置を更に備えるコンピュータ・
    プログラム製品。
  17. 【請求項17】 オペレーティング・システムからファ
    イル入力/出力要求を受け取ったとき、常駐ファイル・
    データのキャッシングのために識別される、前記局所大
    容量記憶装置以外の大容量記憶装置に常駐するデータに
    関係するかどうかを前記コンピュータ・システムに決定
    させるよう構成されたコンピュータ読み取り可能なプロ
    グラム・コード装置を更に含む、請求項16記載のコン
    ピュータ・プログラム製品。
  18. 【請求項18】 コンピュータに、 前記コンピュータ・システムの動作を制御するオペレー
    ティング・システムからのファイル入力/出力要求であ
    って、キャッシングのために識別される大容量記憶装置
    に常駐するデータに関係する要求に対して、該要求を満
    足させる第1層データがRAM内のキャッシュの前記サ
    ブブロックの1つに既に常駐しているかどうかを決定さ
    せ、前記要求を満たす第1層データが既に前記サブブロ
    ックの1つに常駐しているならば、前記第1層データか
    ら前記要求を解決させるように構成されたコンピュータ
    読み取り可能なプログラム・コード装置を更に含む、請
    求項16記載のコンピュータ・プログラム製品。
  19. 【請求項19】 受信された入力/出力要求がキャッシ
    ングのために識別された大容量記憶装置に常駐するデー
    タに関係する場合、及び、この要求されたデータが第1
    層データとしては利用可能でないが第2層データとして
    は利用可能である場合、コンピュータに、 全部のRAMデータ・ブロックが第1層データで既に満
    たされているかどうかを決定させ、 全部のRAMデータ・ブロックが満たされているとき、
    最低使用頻度のRAMデータ・ブロックから第1層デー
    タを除去させ、 前記要求されたデータを含む第2層データの量を検索さ
    せ、 検索された第2層データを不揮発性データ・ブロック及
    び空いたRAMデータ・ブロックに書き込ませ、 前記空いたRAMデータ・ブロックに書き込まれた前記
    の検索された第2層データから前記ファイル入力/出力
    要求を解決させるように構成されたコンピュータ読み取
    り可能なプログラム・コード装置を更に備える請求項1
    6記載のコンピュータ・プログラム製品。
  20. 【請求項20】 RAMと、データを変更可能に記憶す
    ることができる少なくとも1つの局所不揮発性の局所大
    容量記憶装置とを備えるコンピュータ・システムと共に
    実現される多層キャッシング・システムにおいて、 前記局所大容量記憶装置よりも低速のアクセス時間を有
    し、キャッシングのために設計され、且つ、第3層デー
    タの記憶のために設けられた低速大容量記憶装置と、 前記局所大容量記憶装置の一部分に確立され、前記第3
    層データのサブセットである第2層データの不揮発性ブ
    ロックを記憶するよう設けられ、全記憶容量が前記低速
    大容量記憶装置よりも小さい不揮発性キャッシュと、 前記RAMの一部分に確立され、前記第2層データのサ
    ブセットである第1層データのRAMブロックを記憶す
    るために設けられ、全記憶容量が前記不揮発性キャッシ
    ュよりも小さいRAMキャッシュと、を備える多層キャ
    ッシング・システム。
  21. 【請求項21】 空いた不揮発性データ・ブロックが利
    用可能でないとき、不揮発性キャッシュの更新期間にデ
    ータを除去するために、不使用の不揮発性データ・ブロ
    ックが無作為に選択される、請求項20記載の多層キャ
    ッシング・システム。
  22. 【請求項22】 RAMデータ・ブロックが空いている
    とき、最低使用頻度のRAMデータ・ブロックから、R
    AMキャッシュの更新期間にデータが除去される、請求
    項20記載の多層キャッシング・システム。
  23. 【請求項23】 前記低速大容量記憶装置が前記コンピ
    ュータ・システムによって制御されるCD−ROMドラ
    イブである、請求項20記載の多層キャッシング・シス
    テム。
  24. 【請求項24】 前記低速大容量記憶装置が、ネットワ
    ーク・データ・リンクを介して前記コンピュータ・シス
    テムが結合されるサーバー・データ処理システムによっ
    て制御されるCD−ROMドライブである、請求項20
    記載の多層キャッシング・システム。
  25. 【請求項25】 前記低速大容量記憶装置が、ネットワ
    ーク・データ・リンクを介して前記コンピュータ・シス
    テムが結合されるサーバー・データ処理システムによっ
    て制御されるハードディスク・ドライブである、請求項
    20記載の多層キャッシング・システム。
  26. 【請求項26】 到来するファイルI/O要求が前記低
    速大容量記憶装置上及び前記不揮発性キャッシュ内に常
    駐するが前記RAMキャッシュ内には常駐しないデータ
    に関係するならば、前記RAMキャッシュが前記不揮発
    性キャッシュから更新される、請求項20記載の多層キ
    ャッシング・システム。
  27. 【請求項27】 到来するI/O要求が前記不揮発性キ
    ャッシュ内又は前記RAMキャッシュ内に常駐するので
    はなく前記低速大容量記憶装置に常駐するデータに関係
    するならば、前記RAMキャッシュ及び前記不揮発性キ
    ャッシュが前記低速大容量記憶装置から更新される、請
    求項20記載の多層キャッシング・システム。
  28. 【請求項28】 前記不揮発性メモリ内の前記不揮発性
    データ・ブロックが前記RAMキャッシュ内の前記RA
    Mデータ・ブロックと同サイズである、請求項20記載
    の多層キャッシング・システム。
  29. 【請求項29】 RAMデータ・ブロックが空いていな
    いとき、RAMキャッシュ更新期間に、前記RAMキャ
    ッシュ内の最低使用頻度のサブブロックに関係する不要
    情報収集を行うテーブルを維持するために、前記RAM
    の一部分が利用される、請求項20記載の多層キャッシ
    ング・システム。
  30. 【請求項30】 システム・ブート時間の初期設定時に
    ファイルI/O要求を受け取ったとき、前記RAMキャ
    ッシュ及び前記テーブルがRAMに確立される、請求項
    29記載の多層キャッシング・システム。
JP9113774A 1996-05-01 1997-05-01 多層キャッシング・システム及び該システムを実現するための方法 Pending JPH10124397A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/641,653 US5787466A (en) 1996-05-01 1996-05-01 Multi-tier cache and method for implementing such a system
US641653 1996-05-01

Publications (1)

Publication Number Publication Date
JPH10124397A true JPH10124397A (ja) 1998-05-15

Family

ID=24573293

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9113774A Pending JPH10124397A (ja) 1996-05-01 1997-05-01 多層キャッシング・システム及び該システムを実現するための方法

Country Status (4)

Country Link
US (1) US5787466A (ja)
EP (1) EP0805396B1 (ja)
JP (1) JPH10124397A (ja)
DE (1) DE69702568T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8495276B2 (en) 2007-10-12 2013-07-23 HGST Netherlands B.V. Power saving optimization for disk drives with external cache

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5884093A (en) * 1994-09-02 1999-03-16 Rock Solid Systems, Inc. Hard disk cache for CD-ROM and other slow access time devices
US5974509A (en) * 1996-05-01 1999-10-26 Sun Microsystems, Inc. Method for purging unused data from a cache memory
EP1010076A1 (en) * 1996-11-27 2000-06-21 1Vision Software, L.L.C. File directory and file navigation system
US6192398B1 (en) * 1997-10-17 2001-02-20 International Business Machines Corporation Remote/shared browser cache
US6272534B1 (en) * 1998-03-04 2001-08-07 Storage Technology Corporation Method and system for efficiently storing web pages for quick downloading at a remote device
US7007072B1 (en) * 1999-07-27 2006-02-28 Storage Technology Corporation Method and system for efficiently storing web pages for quick downloading at a remote device
US6243795B1 (en) * 1998-08-04 2001-06-05 The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations Redundant, asymmetrically parallel disk cache for a data storage system
US6895557B1 (en) * 1999-07-21 2005-05-17 Ipix Corporation Web-based media submission tool
US6839803B1 (en) 1999-10-27 2005-01-04 Shutterfly, Inc. Multi-tier data storage system
US6657702B1 (en) 1999-08-31 2003-12-02 Shutterfly, Inc. Facilitating photographic print re-ordering
US6732162B1 (en) * 1999-11-15 2004-05-04 Internet Pictures Corporation Method of providing preprocessed images for a plurality of internet web sites
US6583799B1 (en) 1999-11-24 2003-06-24 Shutterfly, Inc. Image uploading
US6681306B1 (en) * 1999-11-29 2004-01-20 Sun Microsystems, Inc. Method and apparatus for increasing scavenging garbage collection effectiveness
US6704712B1 (en) 2000-04-14 2004-03-09 Shutterfly, Inc. Remote film scanning and image transfer system, protocol and method
US6629201B2 (en) 2000-05-15 2003-09-30 Superspeed Software, Inc. System and method for high-speed substitute cache
US7599854B1 (en) 2000-08-02 2009-10-06 Shutterfly, Inc. Method and system for collecting images from a plurality of customers
US6725342B1 (en) * 2000-09-26 2004-04-20 Intel Corporation Non-volatile mass storage cache coherency apparatus
US7230628B1 (en) 2000-10-05 2007-06-12 Shutterfly, Inc. Previewing a framed image print
US6785767B2 (en) 2000-12-26 2004-08-31 Intel Corporation Hybrid mass storage system and method with two different types of storage medium
JP2002342037A (ja) * 2001-05-22 2002-11-29 Fujitsu Ltd ディスク装置
US7275135B2 (en) * 2001-08-31 2007-09-25 Intel Corporation Hardware updated metadata for non-volatile mass storage cache
US6973537B1 (en) * 2001-10-23 2005-12-06 Emc Corporation Disk cache interfacing system and method
US7502886B1 (en) 2001-10-23 2009-03-10 Emc Corporation Data storage device with two-tier raid control circuitry
US7174422B1 (en) * 2001-10-23 2007-02-06 Emc Corporation Data storage device with two-tier raid control circuitry
US6999913B2 (en) * 2002-12-10 2006-02-14 John Alan Hensley Emulated read-write disk drive using a protected medium
US6993649B2 (en) 2002-12-17 2006-01-31 John Alan Hensley Method of altering a computer operating system to boot and run from protected media
US7269800B2 (en) * 2003-02-25 2007-09-11 Shutterfly, Inc. Restartable image uploading
US6950919B2 (en) * 2003-03-26 2005-09-27 Hewlett-Packard Development Company, L.P. Computer system with operating system to dynamically adjust the main memory
TWI332652B (en) * 2003-05-23 2010-11-01 Via Tech Inc System and method of auto-configuration settings for multimedia apparatus
US7099993B2 (en) * 2003-09-24 2006-08-29 Seagate Technology Llc Multi-level caching in data storage devices
US20060041719A1 (en) * 2004-08-18 2006-02-23 Chui Jimmy P F Multi-tier data storage system
US7568068B2 (en) * 2006-11-13 2009-07-28 Hitachi Global Storage Technologies Netherlands B. V. Disk drive with cache having volatile and nonvolatile memory
US7603531B2 (en) * 2007-03-22 2009-10-13 Intel Corporation Use of a shutdown object to improve initialization performance
CN100451976C (zh) * 2007-07-23 2009-01-14 清华大学 基于海量数据分级存储系统的迁移管理方法
US8959307B1 (en) 2007-11-16 2015-02-17 Bitmicro Networks, Inc. Reduced latency memory read transactions in storage devices
US20090210620A1 (en) * 2008-02-19 2009-08-20 Jibbe Mahmoud K Method to handle demand based dynamic cache allocation between SSD and RAID cache
US8050251B2 (en) * 2009-04-10 2011-11-01 Barracuda Networks, Inc. VPN optimization by defragmentation and deduplication apparatus and method
US8665601B1 (en) 2009-09-04 2014-03-04 Bitmicro Networks, Inc. Solid state drive with improved enclosure assembly
US8447908B2 (en) 2009-09-07 2013-05-21 Bitmicro Networks, Inc. Multilevel memory bus system for solid-state mass storage
US8560804B2 (en) 2009-09-14 2013-10-15 Bitmicro Networks, Inc. Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device
US8386431B2 (en) * 2010-06-14 2013-02-26 Sap Ag Method and system for determining database object associated with tenant-independent or tenant-specific data, configured to store data partition, current version of the respective convertor
US9372755B1 (en) 2011-10-05 2016-06-21 Bitmicro Networks, Inc. Adaptive power cycle sequences for data recovery
US9043669B1 (en) 2012-05-18 2015-05-26 Bitmicro Networks, Inc. Distributed ECC engine for storage media
US8898376B2 (en) 2012-06-04 2014-11-25 Fusion-Io, Inc. Apparatus, system, and method for grouping data stored on an array of solid-state storage elements
US9842660B1 (en) 2012-12-28 2017-12-12 Virident Systems, Llc System and method to improve enterprise reliability through tracking I/O performance metrics in non-volatile random access memory
US9286002B1 (en) 2012-12-28 2016-03-15 Virident Systems Inc. Dynamic restriping in nonvolatile memory systems
US9423457B2 (en) 2013-03-14 2016-08-23 Bitmicro Networks, Inc. Self-test solution for delay locked loops
US9122588B1 (en) * 2013-03-15 2015-09-01 Virident Systems Inc. Managing asymmetric memory system as a cache device
US9430386B2 (en) 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
US8996796B1 (en) 2013-03-15 2015-03-31 Virident Systems Inc. Small block write operations in non-volatile memory systems
US9135164B2 (en) 2013-03-15 2015-09-15 Virident Systems Inc. Synchronous mirroring in non-volatile memory systems
US10120694B2 (en) 2013-03-15 2018-11-06 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9875205B1 (en) 2013-03-15 2018-01-23 Bitmicro Networks, Inc. Network of memory systems
US9971524B1 (en) 2013-03-15 2018-05-15 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9501436B1 (en) 2013-03-15 2016-11-22 Bitmicro Networks, Inc. Multi-level message passing descriptor
US9720603B1 (en) 2013-03-15 2017-08-01 Bitmicro Networks, Inc. IOC to IOC distributed caching architecture
US9734067B1 (en) * 2013-03-15 2017-08-15 Bitmicro Networks, Inc. Write buffering
US10445239B1 (en) * 2013-03-15 2019-10-15 Bitmicro Llc Write buffering
US10073626B2 (en) 2013-03-15 2018-09-11 Virident Systems, Llc Managing the write performance of an asymmetric memory system
US9798688B1 (en) 2013-03-15 2017-10-24 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9934045B1 (en) 2013-03-15 2018-04-03 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9672178B1 (en) 2013-03-15 2017-06-06 Bitmicro Networks, Inc. Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system
US9400617B2 (en) 2013-03-15 2016-07-26 Bitmicro Networks, Inc. Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained
US10489318B1 (en) 2013-03-15 2019-11-26 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9842024B1 (en) 2013-03-15 2017-12-12 Bitmicro Networks, Inc. Flash electronic disk with RAID controller
US9916213B1 (en) 2013-03-15 2018-03-13 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
CN103605483A (zh) * 2013-11-21 2014-02-26 浪潮电子信息产业股份有限公司 一种分级存储系统中块级数据特征处理方法
US9576039B2 (en) 2014-02-19 2017-02-21 Snowflake Computing Inc. Resource provisioning systems and methods
US10545917B2 (en) 2014-02-19 2020-01-28 Snowflake Inc. Multi-range and runtime pruning
EP3114584B1 (en) 2014-03-04 2021-06-23 Interactive Intelligence Group, Inc. Optimization of audio fingerprint search
US10025736B1 (en) 2014-04-17 2018-07-17 Bitmicro Networks, Inc. Exchange message protocol message transmission between two devices
US10042792B1 (en) 2014-04-17 2018-08-07 Bitmicro Networks, Inc. Method for transferring and receiving frames across PCI express bus for SSD device
US10055150B1 (en) 2014-04-17 2018-08-21 Bitmicro Networks, Inc. Writing volatile scattered memory metadata to flash device
US9952991B1 (en) 2014-04-17 2018-04-24 Bitmicro Networks, Inc. Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation
US10078604B1 (en) 2014-04-17 2018-09-18 Bitmicro Networks, Inc. Interrupt coalescing
US9811461B1 (en) 2014-04-17 2017-11-07 Bitmicro Networks, Inc. Data storage system
US10282100B2 (en) 2014-08-19 2019-05-07 Samsung Electronics Co., Ltd. Data management scheme in virtualized hyperscale environments
US10437479B2 (en) * 2014-08-19 2019-10-08 Samsung Electronics Co., Ltd. Unified addressing and hierarchical heterogeneous storage and memory
US10437780B2 (en) 2016-07-14 2019-10-08 Snowflake Inc. Data pruning based on metadata
US10552050B1 (en) 2017-04-07 2020-02-04 Bitmicro Llc Multi-dimensional computer storage system
US11188252B2 (en) 2020-03-13 2021-11-30 Seagate Technology Llc Data storage system with adaptive cache management

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1504112A (en) * 1976-03-17 1978-03-15 Ibm Interactive enquiry systems
US4774654A (en) * 1984-12-24 1988-09-27 International Business Machines Corporation Apparatus and method for prefetching subblocks from a low speed memory to a high speed memory of a memory hierarchy depending upon state of replacing bit in the low speed memory
US4897781A (en) * 1987-02-13 1990-01-30 International Business Machines Corporation System and method for using cached data at a local node after re-opening a file at a remote node in a distributed networking environment
US4947319A (en) * 1988-09-15 1990-08-07 International Business Machines Corporation Arbitral dynamic cache using processor storage
JP2776841B2 (ja) * 1988-09-28 1998-07-16 株式会社日立製作所 ディスク制御装置におけるディスクアクセス制御方法
JPH0816886B2 (ja) * 1990-12-21 1996-02-21 富士通株式会社 高速書き込み方法
US5418921A (en) * 1992-05-05 1995-05-23 International Business Machines Corporation Method and means for fast writing data to LRU cached based DASD arrays under diverse fault tolerant modes
US5608890A (en) * 1992-07-02 1997-03-04 International Business Machines Corporation Data set level cache optimization
US5434992A (en) * 1992-09-04 1995-07-18 International Business Machines Corporation Method and means for dynamically partitioning cache into a global and data type subcache hierarchy from a real time reference trace
US5588129A (en) * 1994-02-09 1996-12-24 Ballard; Clinton L. Cache for optical storage device and method for implementing same
EP0667579A1 (en) * 1994-02-09 1995-08-16 Ballard Synergy Corporation Cache for optical storage device
US5636359A (en) * 1994-06-20 1997-06-03 International Business Machines Corporation Performance enhancement system and method for a hierarchical data cache using a RAID parity scheme
US5586291A (en) * 1994-12-23 1996-12-17 Emc Corporation Disk controller with volatile and non-volatile cache memories
US5694571A (en) * 1995-10-31 1997-12-02 Sun Microsystems, Inc. Utilizing a rotating randomly accessible mass storage medium as a caching device for another rotating mass storage medium

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8495276B2 (en) 2007-10-12 2013-07-23 HGST Netherlands B.V. Power saving optimization for disk drives with external cache

Also Published As

Publication number Publication date
EP0805396B1 (en) 2000-07-19
US5787466A (en) 1998-07-28
DE69702568T2 (de) 2001-03-08
EP0805396A1 (en) 1997-11-05
DE69702568D1 (de) 2000-08-24

Similar Documents

Publication Publication Date Title
JPH10124397A (ja) 多層キャッシング・システム及び該システムを実現するための方法
EP0805395B1 (en) Method for caching network and CD-ROM file accesses using a local hard disk
US10073656B2 (en) Systems and methods for storage virtualization
US6442682B1 (en) Characterization of data access using file system
US9697130B2 (en) Systems and methods for storage service automation
US6003115A (en) Method and apparatus for predictive loading of a cache
KR100446339B1 (ko) 실시간데이터이송시스템및스파스파일을사용하는방법
US8407448B1 (en) Shared storage I/O elimination through mapping client integration into a hypervisor
US5915129A (en) Method and system for storing uncompressed data in a memory cache that is destined for a compressed file system
EP0415346B1 (en) Method and system for dynamic volume tracking in an installable file system
CA1303747C (en) Method of rapidly opening disk files identified by path names
US6115787A (en) Disc storage system having cache memory which stores compressed data
JPH0820990B2 (ja) 異なるファイル・システムにまたがる記憶管理システム
JPH06318168A (ja) 階層データ記憶管理装置、方法およびそのネットワーク
JPS59114658A (ja) デ−タ記憶空間の管理方法
JPH08328762A (ja) 半導体ディスク装置及びそのメモリ管理方法
US5765192A (en) Method and computer program product to reuse directory search handles
US20110125950A1 (en) Systems and methods for performing deduplicated data processing on tape
US5974509A (en) Method for purging unused data from a cache memory
US11379408B2 (en) Pointer-based dynamic data structures in key-value stores
US6269408B1 (en) Method for creating a single binary virtual device driver for a windowing operating system
JP2001195197A (ja) 記憶されたレコードについてのフォーマット情報を効率的に提供するためのディレクトリを含むデジタル・データ・サブシステム
US6324633B1 (en) Division of memory into non-binary sized cache and non-cache areas
US6125403A (en) Method for implementing a non-volatile caching product for networks and CD-ROMS
CN115168317A (zh) 一种lsm树存储引擎构建方法和系统