(57)【要約】不揮発性メモリを含む不揮発性キャッシュは、大容量格納装置に格納されるデータをキャッシュする。
2004506256.tif 000002
【特許請求の範囲】
【請求項１】
大容量ストレージ装置に格納されるデータをキャッシュする不揮発性メモリからなる不揮発性キャッシュ。
【請求項２】
前記大容量ストレージ装置は、ディスク・ドライブであることを特徴とする請求項１記載の不揮発性キャッシュ。
【請求項３】
前記不揮発性キャッシュは、ブロック・オリエンテッドであることを特徴とする請求項１記載の不揮発性キャッシュ。
【請求項４】
前記不揮発性キャッシュは、チップセットに結合されることを特徴とする請求項１記載の不揮発性キャッシュ。
【請求項５】
ブロック・オリエンテッドのメモリ装置と、
前記ブロック・オリエンテッドのメモリ装置に結合されたディスク・キャッシュ・インターフェイス・ロジックと、
からなることを特徴とするディスク・キャッシュ。
【請求項６】
前記メモリ装置は、不揮発性メモリ装置であることをを特徴とする請求項５記載のディスク・キャッシュ。
【請求項７】
前記メモリ装置は、キャッシュ・ディレクトリ・テーブルを格納し、前記キャッシュ・ディレクトリ・テーブルはディスク・ドライブ・セクタに対応するデータが前記ディスク・キャッシュに格納されているかどうかを示すことを特徴とする請求項６記載のディスク・キャッシュ。
【請求項８】
前記ディスク・キャッシュ・インターフェイス・ロジックは、前記不揮発性メモリ装置から読まれたデータに対するエラー訂正コードをチェックするすことを特徴とする請求項７記載のディスク・キャッシュ。
【請求項９】
データをキャッシュする装置において、前記装置は、不揮発性キャッシュ・メモリに結合されたチップセットを含むことを特徴とする装置。
【請求項１０】
前記チップセットは、プロセッサと関連する装置との間の通信を制御するロジックを含むこと特徴とする請求項９記載の装置。
【請求項１１】
前記不揮発性キャッシュ・メモリは、ディスク・キャッシュ・メモリであること特徴とする請求項９記載の装置。
【請求項１４】
前記不揮発性キャッシュ・メモリは、前記チップセットに直接接続されること特徴とする請求項１１記載の装置。
【請求項１５】
前記不揮発性キャッシュ・メモリは、ブロック・オリエンテッドであることを特徴とする請求項１２記載の装置。
【請求項１６】
前記不揮発性キャッシュ・メモリは、前記チップセットの一部であることを特徴とする請求項１１記載の装置。
【請求項１７】
前記不揮発性キャッシュ・メモリは、前記チップセット上に積載されることを特徴とする請求項１４記載の装置。
【請求項１８】
前記チップセットは、前記不揮発性キャッシュ・メモリへのアクセスを制御するキャッシュ・インターフェイス・ロジックを含むことを特徴とする請求項１１記載の装置。
【請求項１９】
前記キャッシュ・インターフェイス・ロジックは、前記チップセット上のメモリ制御ハブの一部であることを特徴とする請求項１６記載の装置。
【請求項２０】
前記チップセットは、前記不揮発性キャッシュ・メモリに格納されたデータと関連するエラー訂正コードをチェックするためのロジックをさらに含むことを特徴とする請求項１６記載の装置。
【請求項２１】
前記不揮発性メモリは、ブロック・オリエンテッドであり、前記装置は前記不揮発性メモリから読まれた各データ・ブロックのためのエラー訂正コードをチェックするロジックを含むことを特徴とする請求項１８記載の装置。
【請求項２２】
プロセッサと、
前記プロセッサに結合されたチップセットと、
前記チップセットに結合されたディスク・ストレージ装置と、
前記チップセットに結合された不揮発性ディスク・キャッシュ・メモリと、
から構成されることを特徴とするコンピュータ。
【請求項２３】
前記ディスク・ストレージ装置上のデータを格納し、前記ディスク・ストレージ装置からデータを読むためのデバイス・ドライバ命令をさらに含み、前記デバイス・ドライバ命令は前記不揮発性ディスク・キャッシュ・メモリ中のデータのキャッシュを管理するキャッシュ管理命令を含むことを特徴とする請求項２０記載のコンピュータ。
【請求項２４】
ディスク・メモリのデバイス・ドライバ命令は、前記不揮発性ディスク・キャッシュ・メモリに格納されたキャッシュ・ディレクトリ・テーブルをチェックすることにより、前記データが前記不揮発性ディスク・キャッシュ・メモリ中に存在するかどうかを判断する命令を含むことむことを特徴とする請求項２１記載のコンピュータ。
【請求項２５】
前記不揮発性ディスク・キャッシュは、ブロック・オリエンテッドであることを特徴とする請求項２２記載のコンピュータ。
【請求項２６】
前記チップセットは、前記不揮発性ディスク・キャッシュへのアクセスを制御するディスク・キャッシュ・インターフェイス・ロジックを含み、
前記ディスク・キャッシュ・インターフェイス・ロジックは、前記不揮発性ディスク・キャッシュから読まれたデータ・ブロックに関連するエラー訂正コードをチェックする、
ことを特徴とする請求項２３記載のコンピュータ。
【請求項２７】
ディスク・メモリ中のロケーションに関連するデータを獲得する方法において、
ディスク・メモリ中のロケーションに関連するデータが不揮発性キャッシュ・メモリに格納されているかどうかを判断する段階と、
前記データが前記不揮発性キャッシュ・メモリに格納されている場合、前記ロケーションに関連するデータを前記不揮発性キャッシュ・メモリから読み取る段階と、
から構成されることを特徴とする方法。
【請求項２８】
前記データが前記不揮発性キャッシュ・メモリに格納されていない場合、前記ロケーションに関連するデータを前記ディスク・メモリから読み取る段階をさらに含むことを特徴とする請求項２５記載の方法。
【請求項２９】
前記判断する段階は、前記不揮発性メモリ中に格納されたキャッシュ・ディレクトリ・テーブルをチェックする段階を含むことを特徴とする請求項２６記載の方法。
【請求項３０】
前記不揮発性キャッシュ・メモリは、チップセットに結合され、前記不揮発性キャッシュ・メモリからデータを読み取る前記段階は、前記チップセット内に位置するキャッシュ・インターフェイス・ロジックへ命令を送る段階を含み、前記命令は前記不揮発性メモリからのデータの読み取りをＲＡＭへ直接指図することを特徴とする請求項２７記載の方法。
【請求項３１】
前記不揮発性メモリはブロック・オリエンテッドであり、ここに前記不揮発性メモリからデータを読み取る段階は、前記不揮発性キャッシュ・メモリから読まれる各ブロックに関連するエラー訂正コードをチェックする段階をさらに含むことを特徴とする請求項２８記載の方法。
【請求項３２】
前記ディスク・メモリから前記ロケーションに関連するデータを読み取る前記段階は、前記データをＲＡＭへ格納するとともに前記データを前記不揮発性キャッシュ・メモリへ格納することを特徴とする請求項２９記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明の実施例は、不揮発性キャッシュに関するものである。詳しくは、本発明は、ディスク格納装置のためのデータをキャッシュする不揮発性メモリに関する。
【０００２】
【従来の技術】
コンピュータ・システムは、多くの場合、揮発性メモリおよび不揮発性大容量ストレージ装置の双方にデータを格納する。このようなデータは、システムやアプリケーション・プログラムを動作させるためのコンピュータ命令を含む。ディスク・ドライブは、近代のコンピュータ・システムの一部である大容量ストレージ装置の一例である。ディスク・ドライブのような不揮発性大容量ストレージ装置は、コンピュータ・システムへの電力が取り除かれあるいは切断された場合に、その装置上に格納されたデータを基本的に失うことはない。このように、ディスク・ドライブのような不揮発性大容量ストレージ装置は、コンピュータ・システムがほぼ永久的に保持すべきデータを格納することができる。
【０００３】
多くのコンピュータ・システムでは、コンピュータ・システムにおけるマイクロコンピュータによって現に用いられている１組のデータは、ディスク・ドライブから揮発性のランダム・アクセス・メモリ（ＲＡＭ）へコピーされる、その理由は、ＲＡＭがディスク・ドライブより極めて速いアクセス時間を有するからである。しかしながら、ＲＡＭメモリ（例として、１メガバイト）ユニットは、ディスク・ドライブ中のメモリ総量より高価であるのが典型的であり、さらに、典型的なコンピュータ・システムではＲＡＭのストレージ容量はディスク・ドライブのストレージ容量と比べて極めて少ない。被要求データがＲＡＭメモリに存在しない場合、マイクロコンピュータはディスク・ドライブからＲＡＭへその被要求データを含む情報のブロックを読み取る。もしＲＡＭメモリに十分な容量が存在しない場合、そのマイクロコンピュータはＲＡＭからディスク・ドライブへデータのブロックを書き戻すことによって、ＲＡＭに自由スペースを確保することができる。
【０００４】
ディスク・ドライブのアクセス時間は、一般的にＲＡＭのアクセス時間より遅いため、ディスク・ドライブはしばしば特性上の障害となる。加えて、ディスク・ドライブからのデータのアクセスは、一般的にＲＡＭからデータをアクセスするよりより多くの電力を消費する、なぜなら、ディスク・ドライブは機械的に動作しなければならないからである。既知のディスク・ドライブは、揮発性キャッシュ（例として、ＤＲＡＭキャッシュ、ＳＲＡＭキャッシュ）を含むが、このような揮発性キャッシュは、マイクロコンピュータのメイン・メモリにおけるアドレス空間の一部となり、それ故バイト単位でアドレス指定される。
【０００５】
【詳細な説明】
ここに記載された方法および装置は大容量ストレージ装置のためのキャッシュに関するものであり、不揮発性メモリにおいて実施される。特に、本発明の実施例は、メモリ・ストレージの効率および不揮発性メモリ中のデータをキャッシュして行われる検索を改善することができる。
【０００６】
図１は、本発明の実施例に従う不揮発性キャッシュを有するコンピュータ・システム（「コンピュータ」）の部分ブロック図を示す。特に、図１は、中央処理装置（ＣＰＵ）１０２、またはプロセッサ、およびマザーボード１０６に搭載されたメモリ装置１０４を含むコンピュータ・システム１００を示す。プロセッサ１０２は、例えば、カリフォルニア州サンタ・クララのインテル・コーポレーションによって製造されるペンティアムＩＩＩ、特定用途向け集積回路（ＡＳＩＣ）、マイクロコントローラなどであってよい。コンピュータ・システム１００に用いられるメモリ１０４の例は、１２８メガバイトのダイナミック・ランダム・アクセス・メモリ装置（ＤＲＡＭ）である。また、メモリ１０４は、例として、ＲＯＭであってもよい。さらに、プロセッサ１０２およびメモリ１０４は、マザーボード１０６に結合される別のプリント基板上に設置してもよい。「結合」という用語は、直接接続、間接接続、間接通信などの意味を包含する。
【０００７】
チップセット１１０は、プロセッサ１０２と、メモリ１０４、大容量ストレージ装置１３０および拡張バス１１６に取り付けられる周辺コンポーネントのような他のシステム・コンポーネントとに結合されるとともに、それらの内部相互動作を管理する。この応用に用いられるように、チップセットの用語は、プロセッサとコンピュータ・システムのコンポーネントとの間のデータ転送のためのハブ（またはコア）として動作する１またはそれ以上の集積回路チップのグループに関するものをいう。図１に示されるように、チップセットは、コンピュータ・システムのマザーボードに結合される。チップセット１１０は、マザーボード１０６と集積（例えば、その上にはんだ接続）されてもよい。チップセット１１０は、例えば、カリフォルニア州サンタ・クララのインテル・コーポレーションによって製造される８２０および８１０Ｅに類似するものでもよい。チップセット１１０は、単一の集積回路であっても、あるいは２つまたはそれ以上の集積回路チップから構成されていてもよい。図３に示されるように、チップセット１１０は、「ノースブリッジ機能（ｎｏｒｔｈｂｒｉｄｇｅ ｆｕｎｃｔｉｏｎａｌｉｔｙ）」として知られることを実行するメモリ制御ハブ（ＭＣＨ）３１１、および「サウスブリッジ機能（ｓｏｕｔｈｂｒｉｄｇｅ ｆｕｎｃｔｉｏｎａｌｉｔｙ）」として知られることを実行する入力／出力制御ハブ（ＩＣＨ）３１２を含んでよい。
【０００８】
大容量ストレージ装置１３０は、ディスク・ドライブであってもよく、接続ケーブル１７０を介してチップセット１１０に結合されてもよい。大容量ストレージ装置１３０は、また３．５インチ・ディスケット、５．２５インチ・フロッピーディスケット、ＺＩＰディスク（例えば、ユタ州ロイのアイオメガ・コーポレーションによる製造）、Ｊａｚディスク（例えば、ユタ州ロイのアイオメガ・コーポレーションによる製造）、ＬＳ−１２０ Ｓｕｐｅｒｄｉｓｋ（例えば、ミネソタ州オークデールのイメーション・コーポレーションによる製造）、再書き込み可能なデジタル・バーサティル・ディスク（ＤＶＤ−ＲＡＭ）、リード／ライト・コンパクト・ディスク（ＣＤ−ＲＷ）、光学式ストレージ装置、光磁気ストレージ装置、磁気ストレージ装置、ホログラフィックなどであってもよい。便宜上、本出願は、大容量ストレージ装置がディスク装置である実施例を開示する。本発明に用いられるディスク装置の実施例は、図２に示される。
【０００９】
拡張バス１１６は周辺コンポーネント・インターフェイス（ＰＣＩ）バスであってもよく、コンピュータ・システム１００にしばしば見られるデータ・バスの形式で、ＰＣＩローカル・バス仕様に合致する。ネットワーク・インターフェイス・カード（ＮＩＣ）１２６のような１またはそれ以上のＰＣＩ適合の周辺装置は、拡張バス１１６に接続されてもよい。ネットワーク・インターフェイス・カード１２６は、ローカルまたはワイド・エリアのコンピュータ・ネットワークにコンピュータ・システム１００を結び付ける。
【００１０】
本発明の実施例は、大容量ストレージ装置に格納されているデータをキャッシュするための不揮発性メモリから成る不揮発性キャッシュからなる。図１の例に示された実施例では、不揮発性キャッシュ１５０は、チップセット１１０に結合される。実施例において、そのチップセットおよび不揮発性メモリは、大容量ストレージ装置１３０のためのデータをキャッシュする。さらなる実施例では、大容量ストレージ装置は、ディスク・ドライブであり、不揮発性キャッシュ１５０はディスク・ドライブのためのデータをキャッシュするが、どの場合においてもそのキャッシュはディスク・ドライブを称される。
【００１１】
図２は、本発明の実施例に従うディスク・ドライブ２３０の部分ブロック図である。ディスク・ドライブ２３０は、図１の大容量ストレージ装置１３０と同じであってよく、以下に議論される目的に対して大容量ストレージ装置１３０とみなされる。ディスク・ドライブ２３０は外部ディスク・ドライブまたは内部ディスク・ドライブであってもよい。ディスク・ドライブ２３０は、例えば、１００ギガバイトを超えるデータを格納することができる。実施例では、ディスク・ドライブは、ハード・ドライブである。さらなる実施例では、ディスク・ドライブ２３０は、カリフォルニア州スコッツ・バレイのシーゲート・テクノロジー・インクによって製造されるＣｈｅｅｔａｈ １８ＸＬディスク・ドライブである。ディスク・ドライブ１３０はディスク制御器２１０および大容量ストレージ２２０から構成される。ディスク制御器２１０は、特定用途向け集積回路であってもよく、バッファおよびプログラム・メモリ２１５、およびＥＣＣ論理２１８に結合されたマイクロプロセッサ・ユニット（ＭＰＵ）を含むことができる。バッファおよびプログラム・メモリ２１５は、ＭＰＵ２１１によって実行されるディスク・ドライブ・オペレーション・プログラム２１９を格納し、大容量ストレージ２２０へ書き込まれ、かつ大容量ストレージ２２０から読み出されるデータを格納するためのバッファとして用いられてもよい。ＭＰＵ２１１は、ＣＰＵ１０２からの要求を処理し、大容量ストレージ２２０へデータを書きまたはデータを読む。例えば、ＭＰＵ２１１は、いつ要求が成されたかを判断し、論理セクタ・アドレスを物理セクタ・アドレスへ変換する。バッファおよびプログラム・メモリ２１５は、ホスト・システム（例えば、コンピュータ・システム１００）とインターフェイスを行うディスク・スピンドル・インターフェイス論理２１３に結合される。ディスク制御器２１０は、またディスク・フォーマット論理を含み、大容量ストレージへ書き込まれるデータ・ブロック（例えば、プリアンブルまたは特別の文字を挿入する）をフォーマットする。この出願で用いられるように、「論理」は、オペレーションを実行するために結線された回路のようなハードウェア論理、あるいはオペレーションを実行するファームウェアのようなプログラム論理を含む。
【００１２】
大容量ストレージ２２０は、特に、コンピュータのオペレーティング・システム（ＯＳ）コード２３１を格納し、それは、立ち上げ時に、プロセッサ１０２によって実行するためにコンピュータのメモリ１０４へ転送される。大容量ストレージ２２０は、またディスク・ドライブ用のデバイス・ドライバ２３５を格納し、プロセッサ１０２によって実行するためにコンピュータのメモリ１０４へ転送され、ディスク・ドライブ２３０とのデータ変換および通信を達成する。大容量ストレージ２２０は、特に、これらのプログラムによってアクセスされるアプリケーション・プログラムおよびデータを格納する。大容量ストレージ２２０はトラックに分割されたプラッタ（ｐｌａｔｔｅｒ）を有しており、それはセクタに分けられていてもよい。例えば、フォーマットされたディスクはプラッタ毎に１０００個のトラックを有することができる。実施例においては、ディスク制御器２１０がディスク・ドライブの外からデータの読み出しまたは書き込みの要求を受けると、その要求は論理ディスク・セクタの単位でなされ、そのディスク制御器は、マッピング・アルゴリズムを用いて、これらを物理ディスク・セクタに変換することができる。ある数の物理セクタがスペアのために残され、そのマッピングはハードウェアで支援される。
【００１３】
動作において、ＯＳ２３１（プロセッサ１０２によって実行される）がプログラムまたはＯＳの他の部分からデータに対する要求を受けると、ファイル・システムは、ファイル・アロケーション・テーブル（ＦＡＴ）をチェックするために用いられ、そのデータがメモリ１０４に現在あるか否か、もしない場合、その大容量ストレージ上のどこにそのデータが見つけられるかを判断する。もしＯＳ２３１が、必要とするデータがメモリ１０４にはないが、ディスク・ドライブ２３０上に格納されていると判断すると、ＯＳ２３１はチップセット１１０を介してディスク・ドライブ２３０へそのデータのための要求を求める。ディスク制御器２１０は、その後ディスク・セクタに対する要求を受け、大容量ストレージ２２０からそのディスク・セクタを受け、そしてチップセット１１０を介してそのディスク・セクタのためのデータをメモリ１０４へ送る。別の時間に、ＯＳ２３１は、ディスク・セクタにメモリ１０４からディスク・ドライブ２３０へのデータを書き込ませ、どの場合においてもディスク制御器２１０はそのデータを受け取り、それを大容量ストレージ２２０のディスク・セクタ上に格納させる。
【００１４】
実施例において、セクタはディスク・ドライブ２３０で使用される最小のアドレス可能な物理的なストレージ・ユニットであるが、アドレスする情報や有効性データのような管理情報はより小さなユニットにアクセスされてもよい。さらなる実施例では、各ディスク・セクタは５１２バイトのデータ・サイズである。実施例において、ブロックは１つまたはそれ以上のディスク・セクタのグループであり、識別コード、エラー検出コード、および／またはそのブロックに対するエラー訂正コード（ＥＣＣ）を含んでいてもよい。実施例において、ＯＳはディスク・セクタまたはセクタのブロックの単位でディスク・ドライブからのデータを要求するが（例えば、それはバイトまたはワードを要求するのではない）、どの場合にも、そのディスク・ドライブはブロック・オリエンテッド（例えば、ブロック・オリエンテッド）と呼ばれる。ブロック・オリエンテッドのディスク・ドライブの実施例において、管理情報はより小さなユニットにアクセスされてもよい。ＥＣＣは、最新のエラー検出および訂正プロトコルで、単一ビットおよび複数ビットのエラーを検出するとともに、休む間もなく、いくつものエラーを訂正することができる。実施例では、ブロック中のディスク・セクタは、１つのディスク・プラッタ上に互いに物理的に隣接して配置される。さらなる実施例では、ブロックは、ディスク・ドライブ２３０、不揮発性キャッシュ１５０および関連するコンポーネントによってユニットとして操作される。実施例では、ブロックは１００ディスク・セクタを収容する。
【００１５】
本発明の実施例では、ディスク・ドライブ２３０に格納されたデータは、不揮発性キャッシュ１５０にキャッシュされてもよい。この実施例では、不揮発性キャッシュ１５０は特別のメモリ・サブシステムとして作用し、頻繁に使用されるディスク・ドライブ・セクタの複製をより速いアクセスのために格納する。この実施例に従って、ディスク・セクタのデータがディスク・ドライブ２３０からメモリ１０４にコピーされるとき、ディスク・セクタのコピーが不揮発性キャッシュ１５０に格納される。この実施例に従って、ＯＳがメモリ１０４にないデータを必要とし、その要求されたデータが不揮発性キャッシュ１５０に存在すると判断すると、そのときそのデータは（ディスク・ドライブ２３０に代わって）不揮発性キャッシュ１５０からメモリ１０４へ読み込まれる。この実施例では、論理的なディスク・ドライブ・メモリは物理的なディスク・ドライブ２３０および不揮発性キャッシュ１５０から構成される。ＯＳがディスクにデータを格納する必要があると判断するなら、例えば、ワード処理プログラムの利用者がそのプログラムに現在の書類を「格納」するよう指示するとき、そのデータは物理的なディスク・ドライブ２３０または不揮発性キャッシュ１５０に格納される。同様に、ＯＳがメモリ１０４にあるデータを格納し、メモリ１０４に空き空間を作る必要があると判断するとき、そのデータは不揮発性キャッシュ１５０へ書き戻される。なぜなら、不揮発性キャッシュ１５０は不揮発性であり、その上に格納されたそのデータは、電力がそのコンピュータ・システムへ遮断されても、失われることはないからである。
【００１６】
不揮発性キャッシュ１５０はディスク・ドライブ２３０より速いアクセス時間を有する場合、不揮発性ディスク・キャッシュ１５０の利用者はプロセッサ１０２がプログラムを実行する速度を全体として速めることができる。例えば、ディスク・ドライブ２３０の平均アクセス速度が不揮発性ディスク・キャッシュ１５０に対する平均アクセス速度よりかなり速い場合、その時、不揮発性ディスク・キャッシュ１５０の利用者は、全アクセス速度において顕著な高速化を導くことができる。典型的なコンピュータ・システムにおけるディスク・ドライブへのアクセスは、利用者が使う時間の８０％までがシステムが応答するために待機していることに起因しているので、不揮発性キャッシュ１５０の利用者は、より大きな顧客満足度を得ることになるであろう。加えて、不揮発性キャッシュ１５０がアクセス当たりディスク・ドライブ２３０より少ない電力で済むので、不揮発性キャッシュ１５０の利用者は、そのシステムによって用いられる電力総量を削減することになるであろう。さらに、不揮発性キャッシュ１５０はディスク・ドライブよりより信頼性が高く、その結果コンピュータ・システムがクラッシュしたりまたは動作不能になったりする時間を最小にする。
【００１７】
実施例において、ディスク・ドライブのデバイス・ドライバ２３５は、不揮発性キャッシュ１５０のためのキャッシュ管理命令２３７を収容する。このようなキャッシュ管理命令２３７は、どのデータをキャッシュすべきか、どのデータを置換すべきか、およびどのデータをディスクに書き戻すべきかに関する判断を行うことができる。加えて、キャッシュ管理命令２３７は、またいつキャッシュ・ヒットが発生したか、およびどのデータをそのキャッシュへ事前に取り込むべきかを判断する。例えば、キャッシュ管理命令２３７は、データの所望のディスク・セクタが不揮発性キャッシュ１５０（例えば、そのデータが不揮発性キャッシュ１５０に存在するかどうか）またはディスク・ドライブ２３０からメモリ１０４へ読み込まれるべきか否かを判断する。データが不揮発性キャッシュ１５０にキャッシュされるべきか否かのようなキャッシュ管理判断は、既知のキャッシュ・アルゴリズムを用いて実行されることができる。例えば、そのアルゴリズムが近い将来再びそのデータを使用することが低いものと判断する場合（例えばそのデータはＭＰ３音声ファイルのためのものである）、そのときそのデータはキャッシュされなくてもよいであろう。加えて、不揮発性キャッシュ中のデータをディスク・ドライブ２３０に書き戻すことが必要になる場合、キャッシュ管理命令は、例えば既知の最低使用頻度（ＬＲＵ：　ｌｅａｓｔ ｒｅｃｅｎｔｌｙ ｕｓｅｄ）アルゴリズムまたはランダム置換（ｒａｎｄｏｍ ｒｅｐｌａｃｅｍｅｎｔ）アルゴリズムを用いてどのデータを書き戻すべきかを判断することができる。
【００１８】
実施例において、ディスク・ドライブのためのデバイス・ドライバ２３５は、たとえそれがキャッシュ管理命令２３７であっても、まるで通常のデバイス・ドライバ（例えば、ＷＩＮ９８環境におけるＡＴＡＰＩ．ＳＹＳ）であるようにＯＳ２３１に現われる。この実施例において、不揮発性キャッシュ１５０の存在は、ＯＳ２３１には見えない。さらなる実施例において、キャッシュ管理命令はＯＳ２３１の一部である。別の実施例では、キャッシュ管理は、チップセット１１０上のロジックによって達成される。さらに別の実施例では、キャッシュ管理は、ＯＳ２３１のコンビネーション、すなわちディスク・ドライブ２３５のためのデバイス・ドライバおよび／またはチップセット１１０上のキャッシュ管理ロジックによって達成される。
【００１９】
図３は、本発明の実施例に従うチップセット３１０および不揮発性ディスク・キャッシュ３５０の部分ブロック図を示す。チップセット３１０および不揮発性ディスク・キャッシュ３５０は、図１のチップセット１１０および不揮発性ディスク・キャッシュ１５０と同じである。この実施例では、不揮発性ディスク・キャッシュ３５０は、ディスク・ドライブのためのデータをキャッシュするので、ディスク・キャッシュと呼ばれる。不揮発性ディスク・キャッシュ３５０は、読み込みおよび書き込みのできるあらゆるタイプのメモリであってよく、そのメモリの外部にある全ての電源電力が取り除かれまたは切断される場合にもその内容を保持するであろう。不揮発性ディスク・キャッシュ３５０は、例えば、フラッシュ・メモリ、バッテリにバックアップされたＤＲＡＭ、磁気ＲＡＭ、ホログラフィック・メモリ、強誘電体ＲＡＭなどである。実施例では、不揮発性ディスク・キャッシュ３５０は５００メガバイトのデータを格納することができる。さらなる実施例では、不揮発性ディスク・キャッシュ３５０はブロック・オリエンテッドであり、各ブロックはディスク・ドライブの論理ディスク・セクタに応答する１つまたはそれ以上の論理ディスク・セクタを含む。この実施例では、不揮発性ディスク・キャッシュ３５０の各ディスク・セクタおよびブロックはディスク・ドライブ中において同じサイズである。不揮発性ディスク・キャッシュ３５０がブロック・オリエンテッドであるなら、（キャッシュ管理情報以外の）データはディスク・セクタまたはセクタのブロックの単位で読まれあるいは格納されてもよい。
【００２０】
実施例において、不揮発性ディスク・キャッシュ３５０はチップセット３１０に結合される。さらなる実施例では、不揮発性ディスク・キャッシュ３５０はチップセット３１０に直接付属されてもよいし（結線されていない）、その一部でもよい。実施例では、図３に示されるように、不揮発性キャッシュ１５０はチップセット３１０内の集積回路の上に積載される。この実施例では、ＩＣＨ３１２は、ディスク・キャッシュ・インターフェイス・ロジック３１５を含み、不揮発性ディスク・キャッシュ３５０へのアクセスを制御する。
【００２１】
上述したように、チップセット３１０は単一の集積回路であっても、あるいは集積回路のグループであってもよく、プロセッサと関連する装置との間の通信を制御する。実施例において、チップセット３１０は、第１チップセット集積回路および第２チップセット集積回路と呼ばれる複数の集積回路からなり、その不揮発性ディスク・キャッシュはチップセット内の集積回路の１つに結合される。チップセット３１０は、「ノースブリッジ機能（ｎｏｒｔｈｂｒｉｄｇｅ ｆｕｎｃｔｉｏｎａｌｉｔｙ）」として知られることを実行するメモリ制御ハブ（ＭＣＨ）３１１、および「サウスブリッジ機能（ｓｏｕｔｈｂｒｉｄｇｅ ｆｕｎｃｔｉｏｎａｌｉｔｙ）」として知られることを実行する入力／出力制御ハブ（ＩＣＨ）３１２を含んでよい。図３に示されるように、メモリ制御ハブ３１１および入力／出力制御ハブ３１２は、別々のチップであってもよい。実施例において、キャッシュ・インターフェイス・ロジック３１５およびバッファ３１８は、チップセット上のメモリ制御ハブ３１１の一部である。不揮発性メモリは、いかなる方法でチップセットに結合されてもよいが、本発明はいかなるタイプのチップセットと用いることができる。図３において、不揮発性メモリは入力／出力制御ハブ３１２のトップ上に積載される。積載された不揮発性メモリはチップ全体をカバーしてもよく、その上に積載されまたはそのチップの一部に積載される。
【００２２】
実施例において、不揮発性キャッシュは完全な連想キャッシュ（ａｓｓｏｃｉａｔｉｖｅ ｃａｃｈｅ）である。別の実施例では、不揮発性キャッシュは１組の連想キャッシュである。
【００２３】
図４は、本発明の実施例に従う不揮発性ディスク・キャッシュ３５０のより詳細な部分ブロック図である。不揮発性ディスク・キャッシュ３５０は、複数のディスク・キャッシュ・エントリ４００および管理情報を格納することができる。実施例において、不揮発性ディスク・キャッシュ３５０に格納されたディスク・キャッシュ・エントリの各々は、大容量ストレージ２２０上のディスク・セクタのサイズである。さらなる実施例においては、各ディスク・キャッシュ・エントリは、１つまたはそれ以上のディスク・セクタ（例として、１００ディスク・セクタ）のブロックに対応する。
【００２４】
不揮発性ディスク・キャッシュ３５０は、またキャッシュ・ディレクトリ・テーブル４１０を収容し、全てのディスク・キャッシュ・エントリに対するテーブル・エントリを有する。キャッシュ・ディレクトリ・テーブル４１０は、特定のディスク・セクタまたはデータのブロックが不揮発性ディスク・キャッシュ３５０に存在するかどうかを判断するために用いられる。ある実施例では、キャッシュ・ディレクトリ・テーブルは、ディスク・ドライブ・セクタに対応するデータがディスク・キャッシュに格納されたかどうかを示す。キャッシュ・ディレクトリ・テーブル４１０には、各有効なディスク・キャッシュ・エントリのための１つのテーブル・エントリがあり、例えば、データの論理ディスク・セクタを収容する。キャッシュ・ディレクトリ・テーブル４１０中の各テーブル・エントリは、不揮発性ディスク・キャッシュ３５０に格納された論理ディスク・セクタのためのセクタ・アドレスを有してもよい。ディスク・セクタが不揮発性ディスク・キャッシュ３５０に存在するかどうかを判断するために、キャッシュ・ディレクトリ・テーブル４１０は、例えば、既知の検索アルゴリズムを用いてサーチされる。代わりに、キャッシュ・ディレクトリ・テーブル４１０中のテーブル・エントリは、ハッシュ・アルゴリズム（ｈａｓｈｉｎｇ ａｌｇｏｒｉｔｈｍ）を用いて分類分けされてもよい。実施例では、不揮発性ディスク・キャッシュ３５０中のディスク・セクタの存在は、所望のセクタ・アドレスをキャッシュ・ディレクトリ・テーブル・エントリに格納されたセクタ・アドレスと比較することにより確認される。キャッシュ・ディレクトリ・テーブル４１０は不揮発性メモリ中に格納されるので、キャッシュ（キャッシュにあるもの）の状態は、たとえコンピュータ・システムへの電力が取り除かれあるいは遮断されても保存される。不揮発性ディスク・キャッシュ３５０中に２，０００，０００ディスク・キャッシュを有する実施例では、キャッシュ・ディレクトリ・テーブル４１０に２，０００，０００テーブル・エントリがある。この実施例では、各テーブル・エントリは４バイト長であり、キャッシュ・ディレクトリ・テーブルは不揮発性メモリの８メガバイトを使用できる。実施例では、キャッシュ・ディレクトリ・テーブルのサイズは、各ディスク・キャッシュ・エントリ中における複数のディスク・セクタのブロックを含むことにより低減させることができる（平均キャッシュ・アクセス速度は増加する）。
【００２５】
不揮発性ディスク・キャッシュ３５０は、また命令レジスタ４０１、アドレス・レジスタ４０２、および宛先ポインタ・レジスタ４０３のような制御レジスタを収容することができる。命令レジスタ４０１は、例えばプロセッサ１０２からの命令のような他の装置から受信した命令を格納し、不揮発性ディスク・キャッシュ３５０に格納されるディスク・セクタを検索する。アドレス・レジスタ４０２は、不揮発性ディスク・キャッシュ３５０から読み出され、または不揮発性ディスク・キャッシュ３５０に書き込まれるディスク・セクタに対するセクタ・アドレスを格納してもよい。宛先ポインタ・レジスタ４０３は、例えばディスク・セクタが書き込まれるＲＡＭのような装置のロケーションを格納する。
【００２６】
図５は、本発明の実施例に従う不揮発性ディスク・キャッシュ・エントリ５００のブロック図である。不揮発性ディスク・キャッシュ・エントリ５００は、図４に示された複数のディスク・キャッシュ・エントリの１つであり、ディスク・セクタまたはディスク・セクタのブロックのためのデータを収容してもよい。不揮発性ディスク・キャッシュ・エントリ５００は、有効フィールド５０１、修正フィールド５０２、セクタ・アドレス５０５、データ・フィールド５１０およびＥＣＣフィールド５２０を有する。有効フィールド５０２は、キャッシュ・エントリ５００が有効データを収容するとき「有効」と設定され、キャッシュ・エントリ５００が有効データを収容していないとき「無効」に設定される。例えば、キャッシュ・エントリ５００中のデータがディスク・ドライブ２３０に書き戻されると、有効フィールド５０１は「有効」から「無効」に変更され、キャッシュ・エントリがもはや論理ディスク・セクタを格納していないことを示す。修正フィールド５０２は、キャッシュ・エントリ５００中のデータがディスク・ドライブ２３０上の対応するディスク・セクタ中のデータに一致していないなら、「修正」に設定される。例えば、データのディスク・セクタがメモリ１０４から不揮発性キャッシュ１５０に書き戻され、そのディスク・セクタがメモリ１０４中にある間に修正されたデータを有していると、そのときそのデータに対応するディスク・キャッシュ・エントリのための修正フィールドは「修正」に設定されるであろう。修正フィールド５０２は、「ダーティ・ビット」と称されてもよい。セクタ・アドレス５０５はキャッシュ・エントリに格納されたデータに対する論理ディスク・セクタ・アドレス（またはエントリが１つ以上のセクタを有しているならアドレス）を有し、「セクタ識別」と呼ばれてもよい。実施例では、セクタ・アドレス５０５は、ブロックに対する開始アドレスを含み、各ブロックは既知の固定サイズを有する。データ・フィールド５１０はキャッシュ・エントリのためのデータを格納する。ＥＣＣフィールド５２０は、キャッシュ・エントリのためのエラー訂正コードを格納する。実施例では、各ブロックは、エラー訂正コードと関連付けられる。
【００２７】
動作において、プロセッサ１０２は、あるデータ・ブロックがメモリ１０４にないことを判断して、チップセット１１０に信号を送りそのデータが不揮発性ディスク・キャッシュにあるかどうかを判断することができる。ディスク・キャッシュ・インターフェイス・ロジック３１５は、キャッシュ・ディレクトリ・テーブル４１０に基づいて、そのデータ・ブロックが不揮発性ディスク・キャッシュにあることを判断するために用いられ得る。不揮発性ディスク・キャッシュ３５０からデータ・ブロックを読むために、プロセッサ１０２は、「読み取り」命令を命令レジスタ４０１へ、そのブロックのためのディスク・セクタ・アドレスをアドレス・レジスタ４０２へ、そしてメモリ１０４中の宛先アドレスを宛先ポインタ・レジスタ４０３へ送ることができる。この命令に基づいて、ディスク・インターフェイス・ロジック３１５は、対応するキャッシュ・エントリに見つけられるデータ（例えば、キャッシュ・エントリ５００のデータ・フィールド５１０中のデータ）をバッファ３１８へ書き込む。その後、バッファ中のそのデータは宛先ポインタ・レジスタ４０３によって特定されるメモリ１０４中のアドレスへ転送される。別の実施例では、メモリの速度のため、バッファ３１８は、使用されないかもしれない。実施例において、ディスク・インターフェイス・ロジック３１５は、不揮発性メモリ（例えば、ＥＣＣコード５２０）に格納されたデータと関連を有するエラー訂正コードをチェックし、不揮発性ディスク・キャッシュ・メモリからバッファ３１８へのデータを読む際に発生するエラーを訂正することができる。実施例において、不揮発性メモリは、ブロック・オリエンテッドであり、そのチップセットは不揮発性メモリから読まれる各データ・ブロックに対するエラー訂正コードをチェックする。
【００２８】
実施例において、不揮発性ディスク・キャッシュ・メモリからの読み取りは破壊的な読み取りであり、読み取る行為によってそのエントリに格納されたデータが失われ、あるいは予期せず変更される。例えば、もし不揮発性ディスク・キャッシュがコア・ロジック中で実行されるなら、このようなことが発生するかもしれない。この実施例では、ディスク・インターフェイス・ロジック３１５は、破壊的読み取りの書き戻しをサポートすることができる。すなわち、ディスク・インターフェイス・ロジック３１５によって、読み取られたデータが書き戻され、それによってエントリ中のデータを前の状態に戻す。
【００２９】
代わって、プロセッサ１０２によって所望されるデータが不揮発性ディスク・キャッシュに存在しないなら、必要なデータ・ブロックを求める要求がディスク・ドライブ２３０へ送られる。ディスク・ドライブ１３０はそのデータ・ブロックをメモリ１０４へ書き込む。加えて、そのブロックをバッファ３１８へ書き込み、またその適切な命令を命令レジスタ４０１に書き込むことによって、同じデータ・ブロックを不揮発性ディスク・キャッシュへ書き込むことができる。キャッシュ・インターフェイス・ロジック３１５は、その後新しいディスク・キャッシュ・エントリ５００を生成し、その新しいディスク・キャッシュ・エントリにそのブロックをコピーする。加えて、キャッシュ・インターフェイス・ロジック３１５は、その新しいディスク・キャッシュ・エントリに対応する新しいエントリをキャッシュ・ディレクトリ・テーブル４１０に生成する。その新しいディスク・キャッシュ・エントリのための有効フィールド５０１が「有効」に設定され、修正フィールドが「未修正」に設定されるであろう。実施例において、不揮発性ディスク・キャッシュ中のブロックは、ディスク・ドライブと同じサイズと構造を有し、その結果、ブロックは修正なしにあるいは僅かな修正だけでそのディスク・キャッシュにコピーされる。データ・ブロックが不揮発性ディスク・キャッシュに一度格納されると、プロセッサ１０２はディスク・ドライブからではなく不揮発性ディスク・キャッシュからデータ・ブロックを読み取ることができる。
【００３０】
図６は、本発明の実施例に関するディスク・ドライブ中のセクタと関連するデータを得る方法のフローチャートである。明確さの目的のため、図示された方法は、上述した典型的な実施例に関連して説明される。プロセッサ１０２は、データのアイテムを必要とし、そのデータがディスク・ドライブ（６０１）中のロケーションに、または関連して格納されていることを判断する。そのディスク・ドライブ中のロケーションと関連する最新データのバージョンがＲＡＭまたはそのディスク・キャッシュに格納されていてもよい。もしそのデータがＲＡＭに格納されていないなら、そのプロセッサはキャッシュ・ディレクトリ・テーブルのチェックを行い、そのディスク・ドライブ・ロケーションに関連するデータが不揮発性ディスク・キャッシュ（６０２）に格納されているかどうかを判断する。もしそのデータが不揮発性ディスク・キャッシュ（６０３）に格納されているなら、その時そのデータはその不揮発性ディスク・キャッシュ（６０４）から読み取られる。エラー訂正コードは、その不揮発性ディスク・キャッシュから読み取られると、その時そのデータに対してチェックされ、エラーが訂正される（６０５）。そのデータはその後ＲＡＭに書き込まれる（６０６）。データが不揮発性ディスク・キャッシュ（６０３）に格納されていないなら、その時要求されたデータはディスク・ドライブ（６０７）から読まれてもよい。そのデータは、不揮発性ディスク・キャッシュ中に新しいエントリを生成して、その後ＲＡＭおよび不揮発性ディスク・キャッシュに書き込まれる。次に、キャッシュ・ディレクトリ・テーブル中の新しいエントリは、不揮発性ディスク・キャッシュ中の新しいエントリに対応して生成される（６０９）。
【００３１】
図７は、本発明の別の実施例に従う不揮発性キャッシュ拡張カードを有するコンピュータ・システムの部分ブロック図である。この実施例では、不揮発性ディスク・キャッシュは、ＰＣＩバス拡張カード上に収容される。図７は、図１に示されたコンピュータ・システム１００に類似するコンピュータ・システム７００を図示する。図７は、ＣＰＵ７０２，ＲＡＭ７０４，チップセット７１０およびディスク・ドライブ接続ケーブル７７０を収容するマザーボード７０６を示すが、図１のＣＰＵ１０２，メモリ１０４，チップセット１１０および接続ケーブル１７０と同じである。コンピュータ・システム７００は、また図１の大容量ストレージ装置１３０と同じであるディスク・ドライブ７３０を収容する。しかしながら、図１と異なって、図７の実施例では、不揮発性キャッシュはチップセット７１０に結合されていない。
【００３２】
本発明のこの実施例では、コンピュータ・システム７００は、不揮発性キャッシュ拡張ボード７５０を含み、ＰＣＩバス７１６に結合される。またネットワーク・インターフェイス・カード７２６もＰＣＩバス７１６に結合される。ＰＣＩバス７１６およびネットワーク・インターフェイス・カード７２６は、図１の拡張バス１１６およびネットワーク・インターフェイス・カード１２６と同じである。別の実施例では、不揮発性キャッシュ拡張ボード７５０は、コンピュータ７００中の別の拡張バスに結合される。不揮発性キャッシュ拡張ボード７５０は、コンピュータ７００のバスに挿入され、あるいは引き出される。不揮発性キャッシュ拡張ボード７５０は、不揮発性ディスク・キャッシュ３５０中の不揮発性メモリに類似する不揮発性メモリを収容する。拡張ボード７５０はまたディスク・キャッシュ・インターフェイス・ロジックを含んでもよい。コンピュータ７００は、コンピュータ・システム１００と関連して、上述したのと同様に、ディスク・ドライブ７３０のためにデータをキャッシュする。コンピュータ７００中のオペレーティング・システムがディスク・ドライブ７３０上に格納されるデータを獲得する必要があるとき、そのデータが不揮発性キャッシュ拡張ボード７５０にキャッシュされるという判断が成される。もしそうであるなら、その時そのデータはディスク・ドライブ７３０の代わりに不揮発性拡張ボード７５０からＲＡＭ７０４に書き込んでもよい。このように、この実施例は、ディスク・ドライブに対するデータをキャッシュする方法において図１の実施例に類似するが、この実施例では、キャッシュは図１のようなチップセットに結合されているというよりむしろ拡張カードの一部となっている。
【００３３】
図８は、本発明の実施例に従う不揮発性ディスク・キャッシュを有するディスク・ドライブの部分ブロック図である。図８は、図２に示されたディスク・ドライブ２３０に類似するディスク・ドライブ８３０を示す。ディスク・ドライブ２３０のように、ディスク・ドライブ８３０はディスク制御器８１０およびディスク・スピンドル８２０を有する。ディスク・ドライブ８３０は、また不揮発性キャッシュ８５０を有する。大容量ストレージ２２０は、オペレーティング・システム８３１およびディスク・ドライブのデバイス・ドライバ８３５を格納することができる。しかしながら、ディスク・スピンドル８２０は、キャッシュ管理命令を格納していない。ディスク制御器８１０は、ＭＰＵ８１１，バッファおよびプログラム・メモリ８１５，インターフェイス・ロジック８１３およびＥＣＣロジック８１８を有し、それらは図２のＭＰＵ２１１，バッファおよびプログラム・メモリ２１５，ディスク・スピンドル・インターフェイス・ロジック２１３およびＥＣＣロジック２１８に類似する。加えて、ディスク制御器８１０はキャッシュ・インターフェイス・ロジック８１５を有し、不揮発性キャッシュ８５０に結合される。不揮発性ディスク・キャッシュ８５０は、図３の不揮発性キャッシュ３５０に類似し、キャッシュ・インターフェイス・ロジック８１５は図３に示されたディスク・キャッシュ・インターフェイス・ロジック３１５に類似する。
【００３４】
ディスク・ドライブ８３０は、不揮発性キャッシュ８５０がコンピュータ・システム中の唯一の不揮発性ディスク・キャッシュであることを除いて、図１および図７に示されるもののようにコンピュータ・システムに用いられてもよい。図８に示される実施例は、不揮発性メモリにディスク・ドライブのためのデータをキャッシュすることにおいて図１および図７の実施例と同様に動作する。しかしながら、この実施例では、ディスク・キャッシュはディスク・ドライブの一部であってもよい。さらなる実施例では、ディスク・キャッシュ管理機能は、プログラム８１９によって達成される。この実施例では、ディスク・キャッシュはディスク制御器８１０によって管理され、コンピュータ・システムの残りには見えなくてもよい。
【００３５】
図９は、本発明の実施例に従う不揮発性メモリにデータを格納する方法を示す。不揮発性メモリにデータを格納する命令が受け付けられる（９０１）。例えば、ワード・プロセッシング・プログラムで書類を編集するユーザは、そのプログラムにその書類を「格納」する命令を送る。別の例として、そのプログラムは、編集される書類のバックアップ・コピーを格納すべきことを、例えばタイマーに基づいて、自分自身の判断で行ってもよい。別の実施例として、オペレーティング・システムの一部は、ディスク・ドライブまたは他の不揮発性メモリ、例えば、ＲＡＭの空きスペースにデータを格納するための命令を生成してもよい。そのデータを不揮発性キャッシュに格納すべきか否かの判断が成される（９０２）。このような判断は、既知のキャッシング・アルゴリズムを用いて行われる。近い将来においてそのデータが用いられないようであるなら、そのデータはキャッシュされなくてもよい。加えて、不揮発性キャッシュ拡張ボードが拡張バスに結合されていないなら、データを不揮発性キャッシュに格納しない判断が成されてもよい。データを不揮発性キャッシュに格納する判断がなされると、そのデータは不揮発性キャッシュに書き込まれる（９０３）。一実施例では、その不揮発性キャッシュにデータを書き込む処理は、その不揮発性キャッシュ上の不揮発性メモリ中にあるキャッシュ・ディレクトリ・テーブルを更新することを含む。不揮発性キャッシュ中にデータを書き込まない判断が成されると、そのデータはディスク・ドライブに書き込まれる（９０５）。
【００３６】
本発明の実施例は、ディスク・ストレージ装置のためにデータをキャッシュするための不揮発性ディスク・キャッシュに関するものである。本発明の幾つかの実施例が、ここに特に図示され説明された。しかしながら、本発明の修正および変化は、上記記述によって、またその思想から逸脱することなく添付の請求項の範囲内にかつ本発明の意図する範囲に含まれるものである。例えば、幾つかのタイプの不揮発性メモリがキャッシュとしての使用のために議論されるが、いかなるタイプの不揮発性メモリも用いることができる。別の実施例として、本発明は不揮発性ディスク・キャッシュのための、またディスク・キャッシュ・エントリのためのデータ構造を開示するが、そのキャッシュおよびキャッシュ・エントリはデータ構造のあらゆる構成を用いて実行される。さらに、ディスク・キャッシュは、ディスク・ドライブ接続ケーブル内のように、チップセットの一部、拡張カード、ディスク・ドライブの一部またはコンピュータ・システムの別の一部として実行されてもよい。加えて、上述した実施例は不揮発性キャッシュを用いてディスク・ドライブのためにデータをキャッシュすることを議論する一方、その不揮発性キャッシュはまた他の大容量ストレージ装置のためにデータをキャッシュするために用いてもよい。このように、図３，４，５に示されるような実施例では、便宜上、ディスク・ドライブとしてのキャッシュに関するキャッシュを議論するが（例えば、ディスク・キャッシュ）、開示された装置および方法が他のタイプの大容量ストレージ装置に対してもデータをキャッシュするための用いられてもよい。
【図面の簡単な説明】
【図１】
本発明の実施例に従う不揮発性キャッシュを有するコンピュータ・システムの部分ブロック図である。
【図２】
本発明の実施例に従うディスク・ドライブの部分ブロック図である。
【図３】
本発明の実施例に従うチップセットおよび不揮発性ディスク・キャッシュの部分ブロック図である。
【図４】
本発明の実施例に従う不揮発性ディスク・キャッシュの部分ブロック図である。
【図５】
本発明の実施例に従う不揮発性ディスク・キャッシュにおけるエントリの部分ブロック図である。
【図６】
本発明の実施例に従う不揮発性ディスク・ドライブにおけるセクタと関連するデータを獲得する方法のフローチャートである。
【図７】
本発明の実施例に従う不揮発性ディスク・キャッシュの拡張カードを有するコンピュータ・システムの部分ブロック図である。
【図８】
本発明の実施例に従う不揮発性ディスク・キャッシュを有するディスク・ドライブの部分ブロック図である。
【図９】
本発明の実施例に従う不揮発性メモリにデータを格納する方法を示す。
【図１】
2004506256.tif 000003
【図２】
2004506256.tif 000004
【図３】
2004506256.tif 000005
【図４】
2004506256.tif 000006
【図５】
2004506256.tif 000007
【図６】
2004506256.tif 000008
【図７】
2004506256.tif 000009
【図８】
2004506256.tif 000010
【図９】
2004506256.tif 000011
【国際公開パンフレット】
2004506256.tif 000012
2004506256.tif 000013
2004506256.tif 000014
2004506256.tif 000015
2004506256.tif 000016
2004506256.tif 000017
2004506256.tif 000018
2004506256.tif 000019
2004506256.tif 000020
2004506256.tif 000021
2004506256.tif 000022
2004506256.tif 000023
2004506256.tif 000024
2004506256.tif 000025
2004506256.tif 000026
2004506256.tif 000027
2004506256.tif 000028
2004506256.tif 000029
2004506256.tif 000030
2004506256.tif 000031
2004506256.tif 000032
2004506256.tif 000033
2004506256.tif 000034
2004506256.tif 000035
2004506256.tif 000036
2004506256.tif 000037
2004506256.tif 000038
2004506256.tif 000039
2004506256.tif 000040
2004506256.tif 000041
2004506256.tif 000042
2004506256.tif 000043
2004506256.tif 000044
2004506256.tif 000045
【国際公開パンフレット（コレクトバージョン）】
2004506256.tif 000046
【国際調査報告】
2004506256.tif 000047
2004506256.tif 000048
2004506256.tif 000049