(57)【要約】高速メモリから低速メモリに転送されるメモリの理想的なサイズを求めると共に使用することは、結果的に、低速メモリへの保存をより高速にすると共に低速メモリの耐用年数をより長くすることができる。【選択図】図１
2009520280.tif 000002
【特許請求の範囲】
【請求項１】
データ記憶速度の階層を有する複数のデータ記憶装置が存在する場合に、データを効率的に記憶する方法であって、
低速データ記憶装置に記憶されるデータを受信するステップ、
高速メモリ内に前記データを記憶するステップ、
特定の低速データ装置向けの好ましい量のデータが記憶されるまで、前記高速メモリに追加のデータを収集するステップ、
前記データが特定の記憶装置に適切な書き込みサイズになるまで、前記高速メモリ内に前記データを記憶するステップ、及び
前記特定の装置に適切な書き込みサイズのデータが前記高速メモリ装置に記憶されると、前記低速装置に該データを書き込むステップを含む、方法。
【請求項２】
請求項１に記載の方法であって、前記データがもはや高速記憶装置内で不要であるという判断が下されるまで、前記データを前記高速記憶装置内に保持するステップをさらに含む、方法。
【請求項３】
請求項１に記載の方法において、前記低速記憶装置に書き込まれる前記データは、追加の低速記憶装置にバックアップされる、方法。
【請求項４】
請求項１に記載の方法において、前記低速装置は、フラッシュ記憶装置である、方法。
【請求項５】
請求項４に記載の方法において、前記書き込みサイズは、前記フラッシュの消去ブロックサイズである、方法。
【請求項６】
請求項１に記載の方法であって、前記低速記憶装置への書き込みを低システムアクティビティの期間まで待つステップをさらに含む、方法。
【請求項７】
請求項１に記載の方法であって、前記データが前記高速メモリ装置から前記低速メモリ装置へ書き込まれる前に、前記システムから前記低速メモリ装置が取り外されるときに、前記データが前記低速メモリ装置にまだ書き込まれなければならないことをユーザに警告するステップをさらに含む、方法。
【請求項８】
請求項７に記載の方法において、前記低速メモリ装置が取り外される前に、前記高速メモリから前記低速メモリへ前記データを書き込むオプションが前記ユーザに提供される、方法。
【請求項９】
請求項１に記載の方法であって、前記高速メモリ内の前記データを、前記低速メモリへの前記書き込みがより効率的になるように編成するステップをさらに含む、方法。
【請求項１０】
請求項１に記載の方法であって、前記高速メモリ内の前記データを分析し、該データが前記低速メモリに書き込まれる前に前記データのうちのいずれが新しいデータに置き換えられているか否かを判断するステップをさらに含む、方法。
【請求項１１】
請求項１に記載の方法であって、前記高速メモリ内の前記データを分析し、前記低速メモリに書き込まれる前記データのうちのいずれが重複データであるか否かを判断し、古い方の重複データが前記低速メモリ装置に書き込まれないようにするステップをさらに含む、請求項１に記載の方法。
【請求項１２】
請求項１に記載の方法であって、前記高速メモリ内のブロックが前記低速メモリに引き渡される前に書き込み動作がそれらの前記ブロックに影響を与えるとき、該ブロックを無効化するステップをさらに含む、方法。
【請求項１３】
請求項１に記載の方法であって、前記高速メモリから、該高速メモリよりは低速だが前記低速メモリよりは高速である追加のメモリに前記データを移動させるステップをさらに含む、方法。
【請求項１４】
請求項１に記載の方法であって、前記低速メモリに書き込まれるデータのインデックスを前記高速メモリ内に保持するステップ、及び前記低速装置に書き込まれることになっている書き込まれる前記データが前記高速メモリに常駐している場合、前記データが前記低速メモリに書き込まれているか否かを問わず、前記高速メモリから、前記データに対する読み取り要求を満足させるステップをさらに含む、方法。
【請求項１５】
請求項１に記載の方法であって、前記低速メモリをテストし、該低速メモリにとって好ましい書き込みサイズを求めるステップをさらに含む、方法。
【請求項１６】
請求項１に記載の方法であって、前記低速メモリの好ましい消去サイズに関連する好ましい書き込みサイズを計算するステップをさらに含む、方法。
【請求項１７】
データ記憶速度の階層を有する複数のデータ記憶装置が存在する場合に、データを効率的に記憶するためのコンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記コンピュータ命令は、
低速データ記憶装置に記憶されるデータを受信する動作、
高速メモリ内に前記データを記憶する動作、
特定の低速データ装置向けの好ましい量のデータが記憶されるまで、前記高速メモリに追加のデータを集める動作、
前記データが特定の記憶装置に適切な書き込みサイズになるまで、前記高速メモリ内に前記データを記憶する動作、
前記高速メモリ内の前記データを分析し、該データが前記低速メモリに書き込まれる前に前記データのうちのいずれが新しいデータに置き換えられているか否かを判断する動作、及び
前記特定の装置に適切な書き込みサイズのデータが前記高速メモリ装置に記憶されると、前記低速装置に該データを書き込む動作を含む、コンピュータ可読媒体。
【請求項１８】
請求項１７に記載のコンピュータ可読媒体であって、前記低速メモリをテストし、該低速メモリにとって好ましい消去サイズ及び書き込みサイズを求める動作をさらに含む、コンピュータ可読媒体。
【請求項１９】
プロセッサと、入出力装置と、メモリとを備えるコンピュータシステムであって、前記プロセッサはコンピュータ実行可能命令を実行し、前記メモリはコンピュータ実行可能命令を記憶し、前記コンピュータ実行可能命令は、データ記憶速度の階層を有する複数のデータ記憶装置が存在する場合にデータを効率的に記憶するためのものであり、前記コンピュータ命令は、
低速データ記憶装置に記憶されるデータを受信する動作、
高速メモリ内に前記データを記憶する動作、
前記低速メモリをテストし、該低速メモリにとって好ましい消去サイズ及び書き込みサイズを求める動作、
特定の低速データ装置向けの好ましい量のデータが記憶されるまで、前記高速メモリに追加のデータを集める動作、
前記データが特定の記憶装置に適切な書き込みサイズになるまで、前記高速メモリ内に前記データを記憶する動作、
前記高速メモリ内の前記データを分析し、該データが前記低速メモリに書き込まれる前に前記データのうちのいずれが新しいデータに置き換えられているか否かを判断する動作、及び
前記特定の装置に適切な書き込みサイズのデータが前記高速メモリ装置に記憶されると、前記低速装置に前記データを書き込む動作を含む、コンピュータシステム。
【請求項２０】
請求項１９に記載のコンピュータシステムであって、前記コンピュータ実行可能命令は、前記低速メモリに書き込まれるデータのインデックスを前記高速メモリ内に保持する動作、及び前記低速装置に書き込まれることになっている書き込まれる前記データが前記高速メモリに常駐している場合、前記データが前記低速メモリに書き込まれているか否かを問わず、前記高速メモリから、前記データに対する読み取り要求を満足させる動作をさらに含む、コンピュータシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
メモリ装置は多くのトレードオフを有する。高速のメモリは高価である場合がある。低速のメモリは安価である場合がある。最新のアプリケーションのメモリ要件が消費者のシステムの物理容量を超えると、特にタスク又はユーザ間での切り換えのときに、ハードドライブへのページング動作によって急速にシステム及びアプリケーションが遅く且つ反応が鈍く見えるようになる。理想的なコンピュータでは、全てのメモリは可能な限り高速であろうが、そのようなコンピュータは実現するには費用がかかりすぎるであろう。さらに、費用が安く長期にわたる記憶のみを必要とするアプリケーションもある。結果として、コンピュータは、プロセッサに近い超高速メモリからディスクベースのメモリのようなより低速のメモリに及ぶ多様なメモリを有する。さらに、コンピュータは、ポータブルハードドライブ、フロッピー（登録商標）ディスク及びフラッシュメモリ装置のようなより多くの且つ異なるタイプのメモリを追加する能力を有する。これらの装置のそれぞれは、最大化することができる性能特性及び損耗特性を有する。
【発明の開示】
【０００２】
高速メモリから低速メモリに転送されるメモリの理想的なサイズを求めると共に使用することによって、結果的に、低速メモリへの保存をより高速にすると共に低速メモリの耐用年数をより長くすることができる。例えば、幾つかのフラッシュメモリ装置は、フラッシュメモリに対する消去及び書き込みの回数を最小化するメモリ書き込みサイズを有する。他の低速メモリ装置は、低速メモリ上の大きなブロックが連続するデータを記憶することを可能にする理想的な書き込みサイズを有することができる。さらに、データが低速メモリに送信されるように指示されていても、そのデータに高速メモリ内でアクセスすることができる。
【発明を実施するための最良の形態】
【０００３】
以下の文は、多数の異なる実施形態の詳細な説明を記載するが、この説明の法定の範囲は、本特許の最後に記載される特許請求の範囲の文言によって画定されることを理解されたい。この詳細な説明は、例示としてのみ解釈され、あらゆる可能な実施形態を説明するものではない。これは、あらゆる可能な実施形態を説明することは、不可能ではないとしても、実際的ではないためである。多数の代替の実施形態は、現在の技術、又は本特許の出願日後に開発される技術のいずれかを使用して実施することができ、これは、依然として本特許請求の範囲の範囲内にある。
【０００４】
また、用語が、「本明細書において使用される場合、用語『  』は本明細書によって、…を意味するように定義される」という文又は同様の文を使用して本特許において明示的に定義されない限り、その用語の意味を、その明白な又は通常の意味を超えて、明示的にも、暗黙的にも限定する意図はなく、そのような用語は、（本特許請求の範囲の文言以外の）本特許の任意の節において述べられる任意の文に基づいて範囲が限定されるものと解釈すべきではない。本特許の最後に記載される特許請求の範囲に記載されるあらゆる用語が単一の意味を有するように本特許において参照される限りにおいては、これは、読者を困惑させないために明瞭さのためにのみ行われ、そのような請求項の用語が、暗示又はその他によってその単一の意味に限定されることは意図されない。最後に、請求項の構成要素が、構造を一切記載せずに単語「手段」及び機能を記載することによって規定されない限り、あらゆる請求項の構成要素の範囲が、米国特許法第１１２条第６パラグラフの適用に基づいて解釈されることは意図されない。
【０００５】
図１に、特許請求される方法のステップ及び装置に関するシステムを実装することができる適切なコンピューティングシステム環境１００の一例を示す。コンピューティングシステム環境１００は、適切なコンピューティング環境の一例に過ぎず、特許請求の範囲に記載の装置の方法の使用又は機能の範囲についていかなる限定をも示唆するようには意図されない。また、コンピューティング環境１００は、例示的な動作環境１００に示す構成要素のうちの任意の１つ又はそれらの組合せに関連するなんらかの従属関係又は要件を有するものとも解釈すべきでない。
【０００６】
特許請求される方法のステップ及び装置は、多数の他の汎用又は専用のコンピューティングシステムの環境又は構成と共に動作する。特許請求の範囲に記載の方法又は装置に使用するのに適している可能性がある既知のコンピューティングシステム、コンピューティング環境、及び／又はコンピューティング構成の例には、限定はしないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド装置又はラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能な家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステム若しくは装置のうちのいずれかを含む分散コンピューティング環境等が含まれる。
【０００７】
特許請求される方法のステップ及び装置は、コンピュータによって実行されるプログラムモジュール等のコンピュータ実行可能命令の一般的な文脈で説明することができる。一般に、プログラムモジュールには、特定のタスクを実行するか又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等が含まれる。本方法及び本装置は、通信ネットワークを通じてつながれている遠隔の処理装置によってタスクが実行される分散コンピューティング環境で実装することもできる。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカル及びリモートの両方のコンピュータ記憶媒体に置くことができる。
【０００８】
図１を参照すると、特許請求される方法のステップ及び装置を実装する例示的なシステムは、コンピュータ１１０の形態の汎用コンピューティング装置を含む。コンピュータ１１０の構成要素には、限定はしないが、処理装置１２０と、システムメモリ１３０と、システムメモリを含む各種のシステム構成要素を処理装置１２０に結合するシステムバス１２１とが含まれ得る。システムバス１２１は、各種のバスアーキテクチャのうちのいずれかを使用する、メモリバス又はメモリコントローラ、ペリフェラルバス、及びローカルバスを含む数種のバス構造のうちのいずれかとすることができる。限定ではなく例として、そのようなアーキテクチャには、インダストリスタンダードアーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオエレクトロニクススタンダードアソシエーション（ＶＥＳＡ）ローカルバス、及び、メザニンバスとしても知られている周辺装置相互接続（ＰＣＩ）バスが含まれる。
【０００９】
コンピュータ１１０は通常、各種のコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０によるアクセスが可能な任意の利用可能媒体とすることができ、揮発性の媒体及び不揮発性の媒体の両方、並びに取り外し可能な媒体及び取り外し不能な媒体の両方を含む。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体とから成ることができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール又は他のデータ等の情報を記憶するあらゆる方式又は技術で実装される、揮発性の媒体及び不揮発性の媒体の両方、並びに取り外し可能な媒体及び取り外し不能な媒体の両方が含まれる。コンピュータ記憶媒体には、限定はしないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、若しくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、若しくは他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、若しくは他の磁気記憶装置、又は必要とする情報を記憶するために使用することができると共にコンピュータ１１０によるアクセスが可能な他の任意の媒体が含まれる。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータを、搬送波又は他の移送機構等の変調データ信号に具現化するとともに、任意の情報伝達媒体を含むものである。用語「変調データ信号」とは、信号中に情報を符号化するような方式でその特性のうちの１つ又は複数を設定又は変化させた信号を意味する。限定ではなく例として、通信媒体には、有線ネットワーク又は直接配線接続等の有線媒体と、音響、ＲＦ、赤外線、及び他の無線媒体等の無線媒体とが含まれる。上記のうちのいずれかの組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【００１０】
システムメモリ１３０は、読み取り専用メモリ（ＲＯＭ）１３１及びランダムアクセスメモリ（ＲＡＭ）１３２等の揮発性メモリ及び／又は不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動中等にコンピュータ１１０内の要素間の情報転送を助ける基本ルーチンを含む基本入出力システム１３３（ＢＩＯＳ）は、通常、ＲＯＭ１３１に記憶される。ＲＡＭ１３２は、通常、処理装置１２０から即座にアクセス可能な且つ／又は処理装置１２０によって現在操作されているデータ及び／又はプログラムモジュールを保持する。限定ではなく例として、図１には、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、及びプログラムデータ１３７が示される。
【００１１】
コンピュータ１１０は、他の取り外し可能／取り外し不能な、揮発性／不揮発性のコンピュータ記憶媒体も含むことができる。例としてのみ、図１には、取り外し不能な不揮発性の磁気媒体の読み書きを行うハードディスクドライブ１４０と、取り外し可能な不揮発性の磁気ディスク１５２の読み書きを行う磁気ディスクドライブ１５１と、ＣＤ−ＲＯＭ又は他の光媒体等の取り外し可能な不揮発性の光ディスク１５６の読み書きを行う光ディスクドライブ１５５が示される。例示的な動作環境で使用することができる他の取り外し可能／取り外し不能な、揮発性／不揮発性のコンピュータ記憶媒体には、限定はしないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭ等が含まれる。ハードディスクドライブ１４１は通常、インタフェース１４０等の取り外し不能メモリインタフェースを通じてシステムバス１２１に接続され、磁気ディスクドライブ１５１及び光ディスクドライブ１５５は、通常、インタフェース１５０等の取り外し可能メモリインタフェースによってシステムバス１２１に接続される。
【００１２】
上述され且つ図１に示されるドライブとそれに関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、及び他のデータの記憶をコンピュータ１１０に提供する。図１では、例えば、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、及びプログラムデータ１４７を記憶しているものとして説明されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、及びプログラムデータ１３７と同じとすることができるか、又は異なるものとすることができることに留意されたい。ここでは、それらが最低でも異なるコピーであることを示すために、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、及びプログラムデータ１４７には、異なる参照符号を付している。ユーザは、キーボード１６２、及び一般にはマウス、トラックボール又はタッチパッドと称されるポインティング装置１６１等の入力装置を通じてコンピュータ２０にコマンド及び情報を入力することができる。他の入力装置（図示せず）としては、マイクロフォン、ジョイスティック、ゲームパッド、衛星受信アンテナ、スキャナ等を含むことができる。これらの入力装置及び他の入力装置は、多くの場合、システムバスに結合されているユーザ入力インタフェース１６０を通じて処理装置１２０に接続されるが、パラレルポート、ゲームポート、又はユニバーサルシリアルバス（ＵＳＢ）等の他のインタフェース及びバス構造によって接続することもできる。モニタ１９１又は他のタイプの表示装置も、ビデオインタフェース１９０等のインタフェースを介してシステムバス１２１に接続される。モニタに加えて、コンピュータは、スピーカ１９７及びプリンタ１９６等の他の周辺出力装置も含むことができ、それらの周辺出力装置は、出力周辺インタフェース１９０を通じて接続されることができる。
【００１３】
コンピュータ１１０は、リモートコンピュータ１８０等の１つ又は複数のリモートコンピュータとの論理接続を使用するネットワーク環境で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア装置、又は他の一般的なネットワークノードとすることができ、図１にはメモリ記憶装置１８１のみが示されているが、通常は、コンピュータ１１０に関連して上述した要素の多く又はすべてを含む。図１に示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１及びワイドエリアネットワーク（ＷＡＮ）１７３を含むが、他のネットワークを含むことも可能である。このようなネットワーキング環境は、オフィス、企業内のコンピュータネットワーク、イントラネット、及びインターネットで一般的である。
【００１４】
ＬＡＮネットワーキング環境で使用される場合、コンピュータ１１０は、ネットワークインタフェース又はアダプタ１７０を通じてＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境で使用される場合、コンピュータ１１０は、通常、インターネット等のＷＡＮ１７３を通じて通信を確立するモデム１７２又は他の手段を含む。モデム１７２は、内蔵型でも外付け型でもよく、ユーザ入力インタフェース１６０又は他の適切な機構を介してシステムバス１２１に接続することができる。ネットワーク環境では、コンピュータ１１０に関連して図示するプログラムモジュール又はその一部は、遠隔のメモリ記憶装置に記憶することができる。限定ではなく例として、図１は、リモートアプリケーションプログラム１８５がメモリ装置１８１にあるように示す。図示されるネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段を使用することができることは理解されるであろう。
【００１５】
図２は、データを効率的に記憶する方法を例示するものであり、ここでは、データ記憶速度の階層を有する複数のデータ記憶装置が存在する。メモリ装置は多数のトレードオフを有し得る。高速のメモリは高価である場合がある。低速のメモリは安価である場合がある。理想的なコンピュータでは、全てのメモリは可能な限り高速であろうが、そのようなコンピュータは大多数の使用にとっては費用がかかりすぎるであろう。さらに、費用が安く長期にわたる記憶のみを必要とするアプリケーションもある。結果として、コンピュータは、プロセッサに近い超高速メモリからディスクベースのメモリのようなより低速のメモリに及ぶ多様なメモリを有する。さらに、コンピュータは、ポータブルハードドライブ１４０及びフラッシュメモリ装置１５２のようなより多くの且つ異なるタイプのメモリを追加することができる。これらの装置のそれぞれは、最大化することができる性能特性及び損耗特性を有する。
【００１６】
例えば、フラッシュメモリ１５２は２つの一般的な形態、すなわちＮＯＲフラッシュ及びＮＡＮＤフラッシュで作成される。フラッシュメモリ１５２の他の形態も考慮される。フラッシュメモリ１５２の両方のタイプ及びＥＥＰＲＯＭは、データを記憶するために使用される電荷蓄積機構周辺の絶縁酸化物層についての損耗に起因して、多数の消去動作の後に損耗してしまう。通常のＮＯＲフラッシュメモリ１５２ユニットは１００００回〜１０００００回の消去／書き込み動作の後に損耗する可能性があり、通常のＮＡＮＤフラッシュ１５２メモリは１００００００回の後に損耗する可能性がある。フラッシュメモリ１５２の１つの限界は、フラッシュメモリ１５２が、ランダムアクセスで１度に１バイト又は１ワードで読み取られるか又はプログラムされることができるのにもかかわらず、１度に１つの「ブロック」で消去されなければならないということである。消去されたばかりの１つのブロックから始めると、そのブロック内のあらゆるバイトをプログラミングすることができる。しかし、１バイトがプログラミングされると、ブロック全体が消去されるまでそのバイトは再び変更することができない。ハードディスクドライブ１４０と比較した場合、フラッシュメモリ１５２は、消去／書き込みサイクルの回数が有限であるという点で制限されており、その結果、消去／書き込みサイクルの回数を最小化するように注意しなければならない。
【００１７】
他の装置では、書き込みサイクルの遅さは、好ましい書き込みサイズを求める際の１つの因子であり得る。例えば、書き込み機能をセットアップするためにかなりのオーバーヘッド時間が必要とされる場合、書き込まれるデータのサイズを最大化することによって書き込みの回数を最小化することによって時間を節約することができる。同様に、記憶装置によっては、小規模の保存を繰り返すことによって、結果的にデータが記憶装置にわたって拡散する可能性があり、これによって結果的に、回数のより少ないより大規模な保存という結果を招来し得る、データが隣接して記憶される場合よりも、読み取り時間が長くなるおそれがある。さらに、書き込みサイクルはプロセッサに負担をかけるおそれがあり、プロセッサの使用量が高い期間の間、頻度がより小さくなるような時間間隔でより大きな記憶サイズとして、より少ない頻度で保存することは合理的であり得る。
【００１８】
ハードドライブ１４０を再び参照すると、高速メモリがない場合、ハードディスク１４０への全ての書き込みがパフォーマンスヒットを伴う可能性があり、その間システムは、ハードディスク１４０がハードディスク１４０上の正確な位置にアクセスしてデータを書き込むのを待つ。これは、ほとんどのドライブ上で少なくとも１０ミリ秒かかり、この秒数はコンピュータの世界では長い時間であり、システムがハードディスクを待っているときに性能を実際に低下させるおそれがある。
【００１９】
ＲＡＭ１３２のような高速メモリが利用可能である場合（書き込みキャッシングがイネーブルされるとも呼ばれる）、システムがハードディスク１４０に書き込みを送信するとき、論理回路はその書き込みを自身のはるかに速いキャッシュ、すなわち高速メモリ１３２に記録し、その直後に基本的に、「終了した」と伝える肯定応答をオペレーティングシステムに返信する。その際システムの残りの部分は、アクチュエータが位置決めされること及びディスクが回転すること等を待つ必要もなく動作し続けることができ、これによって性能が改善される。しかしながら、ディスク１４０は、実際に終了していないとき、すなわちデータがディスク上に完全になく、キャッシュ１３２内のみにあるときに、返信して「終了した」と伝えることになる。ハードディスク１４０の論理回路はデータをディスクに書き込み始めるが、これは当然のことながら幾らかの時間がかかる。
【００２０】
通常のＰＣ１１０の使用には、プログラムをロードすること、並びにデータを頻繁にロード及び保存することが必要である。これらの動作の全てはハードディスク１４０へのアクセスを必要とする場合がある。したがって、ハードディスク１４０の性能が問題となる。ＣＰＵ１２０を待機中に２００万の命令を処理するほど速くすることは、その時間中にすべき何かをＣＰＵが有しない限り実際にはユーザにほとんど利益をもたらさない。ハードディスク１４０の性能問題が最も重要であるアプリケーションは、マルチメディア編集アプリケーション、特に大きなオーディオファイル及びビデオファイルを扱うアプリケーションのような多数の処理を行うアプリケーションではなく、ハードディスク１４０に対して多数の読み取り及び書き込みを行うアプリケーションである。
【００２１】
アクセス時間は、ハードディスク１４０におけるランダムな性能の位置決め（random performance positioning）を反映する全ての他の仕様の複合を表すメトリックである。最も一般的な定義は以下の通りである：
アクセス時間＝コマンドオーバーヘッド時間＋シーク時間＋定着時間（Settle time）＋待ち時間
コマンドオーバーヘッドは、コマンドがハードディスク１４０に与えられてから、そのコマンドを実行するために何かが実際に起こり始めるまでに経過する時間を指すものとする。ハードディスク１４０のシーク時間は、読み取り／書き込みヘッドがプラッタの表面にわたってトラック間を移動するのに必要とされる時間を示すものとする。トラック間の切り替えは、ヘッドアクチュエータがヘッドアームを物理的に動かすことを必要とし、これは機械的プロセスであり、特定の時間がかかる。２つのトラックの間で切り替えるのに必要な時間は、そのトラック間の距離によって決まる。しかし、トラックの切り替えには一定量の「オーバーヘッド」が伴う。その結果、関係は線形ではない。トラック１からトラック３に切り替える時間は、トラック１からトラック２に切り替える時間の２倍とはならない可能性がある。
【００２２】
シーク時間は通常ミリ秒で表される（一般に「ｍｓｅｃ」又は「ｍｓ」と略される）。当然のことながら、最新のＰＣ１１０では１ミリ秒は膨大な時間であり、これは、例えばＲＡＭ１３２のような高速システムメモリはナノ秒で測定される速度を有することができるためである（１００万倍小さい）。１ＧＨｚプロセッサは（理論的には）、１ミリ秒で１００万個より多くの命令を実行する。シーク時間のわずかな短縮であっても、システムの残りの部分が多くの場合にハードディスク１４０を待っているため、結果的に全システム性能を向上することができる。
【００２３】
ハードディスク１４０のプラッタは高速で回転しており、回転速度は、ハードディスク１４０上でランダムアクセスで読み取り／書き込みヘッドを正確なシリンダへ動かすプロセスに同期しない可能性がある。したがって、ヘッドが正確なシリンダに到達するときには、必要とされる実際のセクタはどこにでも存在し得る。アクチュエータアセンブリが正確なトラックに対するシークを完了した後、ドライブ１４０は、読み取り／書き込みヘッドが位置する所に正確なセクタが回って来るのを待つ場合がある。この時間は待ち時間と呼ばれる。待ち時間はドライブのスピンドル速度に直接関連し、そのようなものはドライブのスピンドル特性によってのみ影響を受ける。したがって、アクセス時間を短縮することができるあらゆる行為は、システム性能に大きな影響を与え得る。
【００２４】
利用可能なＲＡＭ１３２の量も、高速メモリ内に記憶することができるデータのサイズに影響を与え得る。例えば、システムが８ｋの高速ＲＡＭ１３２のみを有する場合、単にＲＡＭ１３２が多量のデータを記憶することができないため、システムが５１２ｋｂの高速ＲＡＭ１３２を有する場合よりも頻繁に書き込み動作を行う必要があるであろう。
【００２５】
ブロック２００において、本方法は、低速データ記憶装置に記憶されるデータを受信することができる。例えば、ワードプロセッシングファイルは、ハードドライブ１４０に記憶されるように指定することができる。ブロック２０５において、データを高速メモリ内に記憶することができる。例えば、ワードプロセッシングファイルはＲＡＭ１３２内のキャッシュに記憶することができる。ブロック２１０において、本方法は、ハードドライブ１４０のような特定の低速データ装置向けの好ましい量のデータが記憶されるまで、追加のデータを高速メモリ１３２に集めることができる。ブロック２１５において、本方法は、特定の記憶装置に適した書き込みサイズになるまで、データを高速メモリ１３２に記憶することができる。上述したように、データの好ましい量は装置によって変更することができる。例えば、好ましい書き込みサイズは、１２８ｋｂ、２５６ｋｂ及び５１２ｋｂのうちの１つのような多様な２の累乗とすることができる。フラッシュメモリの例では、サイズは、フラッシュブロック全体にすぐに記憶できるようになっているときに、フラッシュ装置に書き込むことのみによって消去／書き込み動作が最小限に抑えられるようなフラッシュメモリブロックのサイズとすることができる（多数の消去／書き込み動作を行うのではない）。ブロック２２０において、特定の装置に適した書き込みサイズのデータは、高速メモリ装置１３２内に記憶されると、低速装置１４０に書き込むことができる。
【００２６】
ブロック２２５において、本方法は、データがもはや高速記憶装置１３２内で不要であるという判断が下されるまで、そのデータを高速記憶装置１３２内に保持することができる。例えば、システムが余分なＲＡＭ１３２を有する場合、低速メモリ１４０に既に書き込まれ高速メモリ１３２内にもあるデータを保持することはシステムに負担をかけない可能性がある。そのデータは、低速メモリ１４０にすでに記憶されている場合、高速メモリ１３２内では不要であり得るが、いずれにせよユーザの都合により高速メモリ１３２内に保持することができる。
【００２７】
ブロック２３０において、低速記憶装置１４０に書き込まれるデータが追加の低速記憶装置１４０にバックアップされる請求項１の方法。場合によっては、ユーザ又はプログラムは、データを低速記憶装置１４０に記憶するように命令することができる。本方法は、低速メモリに書き込む前に最適な量のデータを待つことができる。その間に、フラッシュメモリユニット１５２のような低速メモリをシステムから取り外すことができる。これらの場合では、データのバックアップを追加の低速記憶装置内に有することが有利であり得る。データは、高速メモリ１３２から、高速メモリ１３２よりは低速だが低速メモリよりは高速である追加のメモリに移動させることができる。ブロック２３５において、本方法は、データが高速メモリ１３２からフラッシュ１５２のような低速メモリ装置１５２に書き込まれる前に低速メモリ装置がシステムから取り外されたときに、データを低速メモリ装置にまだ書き込まなければならないことをユーザに警告することができる。ブロック２４０において、低速メモリ装置が取り外される前にデータを高速メモリ１３２から低速メモリ１５２に書き込むオプションをユーザに提供することができる。ブロック２４５において、本方法は、低速記憶装置への書き込みを低システムアクティビティの期間まで待つことができる。
【００２８】
一例として、ユーザ又は方法は、ワードプロセッシングファイルがフラッシュメモリ１５２に記憶されるように指示することができる。本方法は、フラッシュメモリ１５２に最適な書き込みサイズに一致する十分なデータを待つことができ、その結果、ワードプロセッシングファイルのサイズが最適な書き込みサイズ未満である場合に、データがフラッシュメモリ１５２に即座に書き込まれないようにすることができる。フラッシュ１５２が取り外される場合、データをフラッシュメモリ１５２にまだ書き込まなければならないことをユーザに警告することができる。さらに、データは、「中間」速度記憶装置に既にバックアップされていることができ、データが高速記憶装置１３２内にある間に上書きされるのを防ぐためにこのバックアップを使用することができる。
【００２９】
ブロック２５０において、本方法は、低速メモリ１４０への書き込みがより効率的であるように高速メモリ１３２内のデータを編成することができる。編成は、低速メモリ１４０への転送がより効率的に進行することができるように、高速メモリ１３２内のデータを隣接するように再構成するのと同程度に単純であり得る。
【００３０】
ブロック２５５において、本方法は、高速メモリ１３２内のデータを分析して、データが低速メモリ１４０に書き込まれる前にデータのうちのいずれが新しいデータに置き換えられているか否かを判断することができる。ブロック２６０において、本方法は、高速メモリ１３２内のデータを分析して、低速メモリ１４０に書き込まれるデータのうちのいずれが重複データであるか否かを判断することができ、古い重複データは低速メモリ１４０装置に書き込まれない。ブロック２６５において、本方法は、高速メモリ１３２内のブロックが低速装置１４０に引き渡される前に書き込み動作がそれらのブロックに影響を与えるとき、それらのブロックを無効化することができる。
【００３１】
ブロック２７０において、本方法は、低速メモリ１４０に書き込まれる高速メモリ１３２内のデータのインデックスを保持することができ、低速装置１４０に書き込まれることになっている書き込まれるデータが高速メモリ１３２に常駐している場合、本方法は、データが低速メモリ１４０に書き込まれているか否かを問わずに、高速メモリ１３２から、データに対する読み取り要求を満足させることができる。
【００３２】
ブロック２７５において、本方法は、低速メモリ１４０にとって好ましい書き込みサイズを求めるために低速メモリ１４０をテストすることができる。例えば、本方法は、理想的な消去／書き込みサイズはいくらであるかについてフラッシュメモリ１５２に問い合わせることができる。ブロック２８０において、本方法は、低速記憶装置１４０からの指示を使用して好ましい書き込みサイズを計算することもできる。例えば、フラッシュメモリ１５２の例では、本方法は、ブロックが１０２４バイトの増分で消去されると判断することができ、したがって、本方法は、保存動作が１０２４バイトの増分で生じるべきであると判断することができる。好ましい書き込みサイズは、低速メモリ１５２の好ましい消去サイズに関連することができる。
【００３３】
上記の文は、多数の異なる実施形態の詳細な説明を記載するが、本特許の範囲は、本特許に記載される特許請求の範囲の文言によって画定されることを理解されたい。この詳細な説明は、例示としてのみ解釈されるべきであり、あらゆる可能な実施形態を説明するものではない。これは、あらゆる可能な実施形態を説明することは、不可能ではないとしても、実際的ではないためである。多数の代替の実施形態は、現在の技術、又は本特許の出願日後に開発される技術のいずれかを使用して実施することができ、これは、依然として本特許請求の範囲の範囲内にある。
【００３４】
したがって、多数の変更及び変形を、本特許請求の範囲の精神及び範囲から逸脱することなく、本明細書に記載及び図示される技法及び構造において行うことが可能である。したがって、本明細書に記載される方法及び装置は、単に例示にすぎず、本特許請求の範囲の範囲を限定しないことを理解されたい。
【図面の簡単な説明】
【００３５】
【図１】図１は、特許請求の範囲に従って動作することができるコンピューティングシステムのブロック図である。
【図２】図２は、特許請求の範囲による方法の図である。
【図１】
2009520280.tif 000003
【図２】
2009520280.tif 000004
【国際調査報告】
2009520280.tif 000005
2009520280.tif 000006