(57)【要約】  本開示は、ホストデバイスに動作可能に接続される周辺不揮発性記憶デバイスでキャッシングポリシーおよび／またはキャッシュフラッシングポリシーを実施する方法、デバイスおよびコンピュータ可読媒体に関する。一部の実施形態では、ホストデバイスから周辺記憶デバイスによって他のデータが受信された過去の速度、および／または受信された連続するホスト書き込み要求間の過去の平均時間間隔、および／またはデータが不揮発性メモリに書き込まれるべき評価された速度、および／またはホストが記憶レディ／ビジーフラグを読み出したことが周辺不揮発性メモリデバイスによって検出されることに従って周辺不揮発性記憶デバイス内の不揮発性メモリのキャッシュ領域にデータが記憶される。一部の実施形態では、過去の速度および／または過去の平均時間間隔に従って不揮発性メモリのキャッシュ記憶領域から主記憶領域にデータがコピーされる。
2012524952.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュ記憶領域および主記憶領域を含む不揮発性メモリを有する不揮発性記憶デバイスに対するキャッシングポリシーを実施する方法であって、
（ａ）前記不揮発性記憶デバイスに接続されるホストデバイスから前記不揮発性記憶デバイスによってデータを受信するステップと、
（ｂ）
（ｉ）ステップ（ａ）のデータを受信するステップに先行する期間の間に前記ホストデバイスから前記不揮発性記憶デバイスによって他のデータが受信された過去の速度と、
（ｉｉ）先行する期間の間に受信された連続するホスト書き込み要求間の平均時間間隔と、からなるグループから選択される少なくとも１つのパラメータに従って、前記受信データを前記不揮発性メモリの主記憶領域に書き込む前に前記不揮発性メモリのキャッシュ記憶領域に受信データを書き込むかどうかを前記不揮発性記憶デバイスによって決定するステップと、
（ｃ）前記決定するステップが肯定である場合に、ステップ（ａ）において受信されたデータを決定どおりに前記キャッシュ記憶領域に書き込むステップと、
を含む方法。
【請求項２】
請求項１記載の方法において、
前記少なくとも１つのパラメータが、他のデータが受信された過去の速度を含む方法。
【請求項３】
請求項２記載の方法において、
前記決定するステップが、過去の速度がしきい値レベルを上回ることを条件とする方法。
【請求項４】
請求項１記載の方法において、
前記少なくとも１つのパラメータが、連続するホスト書き込み要求間の平均時間間隔を含む方法。
【請求項５】
請求項１記載の方法において、
前記データを受信するステップが、前記決定するステップの前に実行される方法。
【請求項６】
請求項１記載の方法において、
前記決定するステップが、前記データを受信するステップの前に実行される方法。
【請求項７】
キャッシュ記憶領域および主記憶領域を含む不揮発性メモリを有する不揮発性記憶デバイスに対するキャッシングポリシーを実施する方法であって、
（ａ）前記不揮発性メモリにデータを記憶するために、前記不揮発性記憶デバイスに接続されるホストデバイスから前記不揮発性記憶デバイスによって少なくとも１つの要求を受信するステップと、
（ｂ）前記少なくとも１つのデータ記憶要求を満足するために、データが前記不揮発性メモリに書き込まれるべき速度を評価するステップと、
（ｃ）前記評価されたデータ書き込み速度に従って、前記受信データを前記不揮発性メモリの主記憶領域に書き込む前に前記不揮発性メモリのキャッシュ記憶領域に前記受信データを書き込むかどうかを決定するステップと、
（ｄ）前記決定するステップが肯定である場合に、前記受信データを決定どおりに前記キャッシュ記憶領域に書き込むステップと、
を含む方法。
【請求項８】
請求項７記載の方法において、
（ｉ）前記少なくとも１つの要求を受信するステップが、第１の要求と第２の要求とを受信することを含み、
（ｉｉ）前記速度を評価するステップが、
（Ａ）前記第１の要求および前記第２の要求のそれぞれのデータ量と、
（Ｂ）前記第１の要求を受信する時間と前記第２の要求を受信する時間との間の時間差とに従って実行される方法。
【請求項９】
請求項８記載の方法において、
（ｉ）前記少なくとも１つの要求を受信するステップが、第１の要求と第２の要求とを受信することを含み、
（ｉｉ）前記速度を評価するステップが、
（Ａ）前記第１の要求および前記第２の要求の合計データ量と、
（Ｂ）前記第１の要求を受信する時間と前記第２の要求を受信する時間との間の時間差との間の割合に従って実行される方法。
【請求項１０】
キャッシュ記憶領域および主記憶領域を含む不揮発性メモリを有する不揮発性記憶デバイスに対するキャッシングポリシーを実施する方法であって、
（ａ）前記不揮発性メモリにデータを記憶するために、前記不揮発性記憶デバイスに接続されるホストデバイスから前記不揮発性記憶デバイスによって要求を受信するステップと、
（ｂ）前記要求が受信された時点で前記不揮発性記憶デバイスがキャッシュ記憶優先モードである場合、前記受信データを前記不揮発性メモリの主記憶領域に書き込む前に前記不揮発性メモリのキャッシュ記憶領域に受信データを書き込むステップと、
（ｃ）前記要求が受信された時点で前記不揮発性記憶デバイスがキャッシュバイパスモードである場合、前記受信データを前記不揮発性メモリのキャッシュ記憶領域に書き込まないで前記不揮発性メモリの主記憶領域に受信データを書き込むステップと、
（ｄ）ビジー状態を返した記憶レディ／ビジーフラグの読み出しを前記ホストによって検出したのに応答して、前記キャッシュバイパスモードから前記キャッシュ記憶優先モードへのモード遷移を前記不揮発性記憶デバイスによって実行するステップと、
を含む方法。
【請求項１１】
請求項１０記載の方法において、
（ｅ）前記キャッシュ記憶領域の満杯度合いに応じて、前記キャッシュ記憶優先モードから前記キャッシュバイパスモードへ遷移するかどうかを決定するステップと、
（ｆ）決定どおりに前記キャッシュ記憶優先モードから前記キャッシュバイパスモードへの遷移を実行するステップと、
をさらに含む方法。
【請求項１２】
キャッシュ記憶領域および主記憶領域を含む不揮発性メモリを有する不揮発性記憶デバイスに対するキャッシュフラッシングポリシーを実施する方法であって、
（ａ）前記不揮発性記憶デバイスに接続されるホストデバイスから前記不揮発性記憶デバイスによってデータを受信するステップと、
（ｂ）前記キャッシュ記憶領域に前記受信データを記憶するステップと、
（ｃ）少なくとも１つの時点について、
（ｉ）
（Ａ）ステップ（ａ）のデータを受信するステップに先行する期間の間に前記ホストデバイスから前記不揮発性記憶デバイスによって他のデータが受信された過去の速度と、
（Ｂ）先行する期間の間に受信された連続するホスト書き込み要求間の平均時間間隔と、からなるグループから選択される少なくとも１つのパラメータに従って、ステップ（ａ）において受信されたデータを前記不揮発性メモリのキャッシュ記憶領域から前記不揮発性メモリの主記憶領域にコピーするかどうかを前記不揮発性記憶デバイスによって決定するステップと、
（ｄ）前記決定するステップが肯定である場合、ステップ（ａ）において受信されたデータを決定どおりに前記キャッシュ記憶領域からコピーするステップと、
を含む方法。
【請求項１３】
請求項１２記載の方法において、
前記少なくとも１つのパラメータが、他のデータが受信された過去の速度を含む方法。
【請求項１４】
請求項１２記載の方法において、
前記少なくとも１つのパラメータが、連続するホスト書き込み要求間の平均時間間隔を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリなどの不揮発性メモリに対するキャッシングポリシーを実施する技法および装置に関する。
【背景技術】
【０００２】
マルチレベルセル（ＭＬＣ）フラッシュメモリは、各メモリセルに２ビット以上のデータを記憶するのに役立つ。ＭＬＣフラッシュメモリへのデータの書き込みは、一般に、１セル当たり１ビットのみのデータを記憶するシングルレベルセル（ＳＬＣ）フラッシュメモリへのデータの書き込みよりも遅い。したがって、ＭＬＣフラッシュメモリに基づくフラッシュデバイスは、ＭＬＣフラッシュメモリに関連する書き込み速度を超える速度で送信される一連の入来データを記録することができない場合もある。
【０００３】
一般に、そのままでは記憶できないほど高速でデータが生成される場合には、キャッシュメモリ機構が提供され、その入来データストリームを処理するのに充分な速度で動作するように設計される。第２の（かつ高速）メモリを使用するキャッシュメモリは、入力データ源とフラッシュメモリデバイスのメイン（かつ低速）メモリとの間に実施される。入力データストリームはまず高速なキャッシュメモリに書き込まれ、後の段階でこの高速なキャッシュメモリからメインメモリへとコピーされる。キャッシュメモリとメインメモリとの間のコピー動作は、一般にバックグラウンドで実施されるので、この動作は入力データストリームの速度によって課せられる厳しい性能条件を満足する必要がなく、したがってメインメモリの遅い書き込み性能はもはや障害とはならない。
【０００４】
フラッシュメモリデバイスの１つの種類は、「周辺フラッシュ記憶デバイス」であり、これについて図１に関連してここで説明する。
「周辺フラッシュ記憶デバイス」２６０は、ＵＳＢフラッシュドライブ（ＵＦＤ）、ＰＣカード、ならびにデジタルカメラ、音楽プレーヤ、ハンドヘルドコンピュータおよびパームトップコンピュータ、携帯電話と共に使用される小型記憶カードなどのフォームファクタまたは任意の他のフォームファクタのコンピューティング技術分野においてよく知られている。
周辺フラッシュ記憶デバイス２６０は、ホストデバイス３１０（例えば、ラップトップコンピュータもしくはデスクトップコンピュータまたは携帯電話）に接続される場合、それぞれのホスト側インターフェイス３５０およびデバイス側インターフェイス２５０（例えば、ＵＳＢインターフェイスもしくはＳＤインターフェイスもしくはＭＭＣインターフェイスまたは任意の他の種類の有線インターフェイスもしくは無線インターフェイス）を介してユーザデータを受信することもできる。受信されたデータは、フラッシュコントローラ２８０によってフラッシュメモリ記憶デバイスのフラッシュメモリ２７０に書き込まれてもよい。
【０００５】
ホストデバイス３１０およびフラッシュデバイス２６０は別個のデバイスとして図１に示されているが、当然ながら一部の実施形態では、フラッシュデバイス２６０はホストデバイスのハウジング内に配置されてもよい。あるいは、フラッシュデバイス２６０は、ホストデバイスのハウジングの外側に配置されてもよい。
図１に示されるように、ホストデバイス３１０は、（例えば、書き込みコマンドに関連して）フラッシュメモリ記憶デバイス２６０にデータを送信する。ホストから受信されたデータは、例えばフラッシュコントローラ２８０によって、揮発性メモリ２８２に書き込まれる。図１では揮発性メモリ２８２はフラッシュコントローラ２８０とは別個に描かれているが、当然ながら一部の実施形態では、揮発性メモリ２８２（例えば、ＲＡＭ）はフラッシュコントローラ２８０内にあってもよく、かつ／またはその一部であってもよい。
【０００６】
データは揮発性メモリ２８２に書き込まれた後にフラッシュメモリ２７０にコピーされる。
ホストデバイス３１０がフラッシュデバイス２６０に書き込みコマンドを送信すると、フラッシュデバイス２６０はそのデータをできるだけ素早くフラッシュメモリ２７０に書き込む必要がある場合もあることに留意するべきである。一方、前述したように、場合によっては他の設計検討（例えば、より大きなデバイス容量および／または高い信頼性が必要）では、可能な限り最も速い書き込みモードよりも遅い「低速」書き込みモードを使用することが必要となる場合もある。
【０００７】
このような目的のため、図２Ａに示されるように、フラッシュメモリ２７０はキャッシュ記憶領域２７２と「長期的な」記憶用の主記憶領域２７４との両方を含むのがフラッシュデバイスでは一般的である。入来データは、少なくともあるときはキャッシュ記憶領域２７２に書き込まれ、後でキャッシュ記憶領域２７２から主記憶領域２７４にコピーされてもよい。
異なる実施形態では、キャッシュ記憶領域２７２は、主記憶領域２７４に使用される書き込みモードよりも高速な「高速書き込みモード」を使用して書き込まれ、かつ／または主記憶領域２７４はキャッシュ記憶領域２７２よりも大きい（すなわち、より大きい容量を有する）。
１つの特定の例では、キャッシュ記憶領域２７２は、各フラッシュセルにＫビットのデータが記憶されるフラッシュブロックを含み、ここでＫは正の整数である。主記憶領域２７４は、各フラッシュセルにＬビットのデータが記憶されるフラッシュブロックを含み、ここでＬはＫより大きい正の整数である。
【０００８】
図２Ｂは、第１の使用事例に関する。この使用事例によれば、データはキャッシュ記憶領域のみに書き込まれる。
第２の使用事例に関する図２Ｃの例では、（ｉ）データはまずキャッシュ記憶領域２７２に書き込まれ、（ｉｉ）後でデータはキャッシュ記憶領域２７２から主記憶領域２７４にコピーされる。
第３の使用事例に関する図２Ｄの例は「キャッシュバイパス」について説明している。この第３の使用事例では、データは、キャッシュ記憶領域２７２に最初に書き込まれないで主記憶領域２７４に直接書き込まれる。
【０００９】
図３は、データをフラッシュメモリ２７０に記憶する技法を説明する流れ図である。ステップＳ２１１において、周辺記憶デバイス２６０はホストデバイス３１０からデータを受信する。ステップＳ２１５において、このデータは（例えば、フラッシュコントローラ２８０内または不揮発性メモリデバイス２６０内の他のいずれかの場所の）揮発性メモリに記憶される。
図２Ｂ〜図２Ｄを参照して説明される使用事例に示されるように、データは、（ｉ）（書き込まれる場合であっても）主記憶領域２７４に書き込まれる前にキャッシュ記憶領域２７２に書き込まれる（使用事例１および２）、すなわちデータの「最初のフラッシュ書き込み」がキャッシュ２７２に対しての実施、または（ｉｉ）キャッシュ記憶領域２７２に書き込まれないで主記憶領域２７４に書き込まれる（使用事例３）、すなわちデータの「最初のフラッシュ書き込み」が主記憶領域２７４に対しての実施のいずれかである。
【００１０】
前者の場合（使用事例１および２）、ステップＳ２１９から出る「ＹＥＳ」分岐が選択され、データは（ステップＳ２２３において）キャッシュ記憶領域２７２に書き込まれる。任意選択的に（使用事例２を参照）また一般に、「高周波」または「超高周波」で、一般に小さいキャッシュ記憶領域から長期記憶用の大きい主記憶領域にデータがコピーされる（ステップＳ２２３のボックスから出る選択肢の線を参照）。データをコピーすることによって、データが記憶されたキャッシュ２７２内の領域を新しいデータを記憶するために使用することができるようになる。
キャッシュの「バイパス」に関する後者の事例（使用事例３）の場合、キャッシュ記憶領域に最初にデータを書き込まないで（ステップＳ２１９から出る「ＮＯ」分岐に従って）主記憶領域２７４にデータが直接書き込まれてもよい。
【００１１】
図１に戻って参照すると、フラッシュコントローラ２８０は、ハードウェア（例えば、マイクロプロセッサおよび任意選択的にＲＡＭまたはレジスタなどの揮発性メモリを含む）、ファームウェア、および／またはコードモジュール（例えば、揮発性および／または不揮発性メモリに記憶されマイクロプロセッサによって実行可能な）の任意の組み合わせを使用して実施されてもよいことに留意するべきである。フラッシュコントローラ２８０は、任意のソフトウェア（すなわち、揮発性および／または不揮発性メモリに実体的に記憶される）、および／またはファームウェア、および／またはこれらに限定されないがフィールドプログラマブルロジックアレイ（ＦＰＬＡ）素子（単数または複数）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）素子（単数または複数）、および特定用途向け集積回路（ＡＳＩＣ）素子（単数または複数）を含むハードウェア素子（単数または複数）を含んでもよい。フラッシュコントローラ２８０には、これらに限定されないが、縮小命令セットコンピュータ（ＲＩＳＣ：reduced instruction set computer）素子（単数または複数）、および／または複雑命令セットコンピュータ（ＣＩＳＣ：complex instruction set computer）素子（単数または複数）を含む任意の命令セットアーキテクチャが使用されてもよい。
キャッシュ記憶領域および主記憶領域を含む不揮発性メモリにデータを記憶する方法および装置が現在必要になっている。
【発明の概要】
【００１２】
キャッシュ記憶領域および主記憶領域を含む不揮発性メモリを有する不揮発性記憶デバイスに対するキャッシングポリシーを実施する方法であって、（ａ）不揮発性記憶デバイスに接続されるホストデバイスから不揮発性記憶デバイスによってデータを受信するステップと、（ｂ）（ｉ）ステップ（ａ）のデータを受信するステップに先行する期間の間にホストデバイスから不揮発性記憶デバイスによって他のデータが受信された過去の速度と、（ｉｉ）先行する期間の間に受信された連続するホスト書き込み要求間の平均時間間隔と、からなるグループから選択される少なくとも１つのパラメータに従って、受信データを不揮発性メモリの主記憶領域に書き込む前に不揮発性メモリのキャッシュ記憶領域に受信データを書き込むかどうかを不揮発性記憶デバイスによって決定するステップと、（ｃ）決定するステップが肯定である場合に、ステップ（ａ）において受信されたデータを決定どおりにキャッシュ記憶領域に書き込むステップと、を含む方法がここで初めて開示される。
【００１３】
一部の実施形態では、少なくとも１つのパラメータが、他のデータが受信された過去の速度を含む。
一部の実施形態では、前記決定するステップが、過去の速度がしきい値レベルを上回ることを条件とする。
一部の実施形態では、少なくとも１つのパラメータが、連続するホスト書き込み要求間の平均時間間隔を含む。
一部の実施形態では、データを受信するステップが、決定するステップの前に実行される。
一部の実施形態では、決定するステップが、データを受信するステップの前に実行される。
【００１４】
キャッシュ記憶領域および主記憶領域を含む不揮発性メモリを有する不揮発性記憶デバイスに対するキャッシングポリシーを実施する方法であって、（ａ）不揮発性メモリにデータを記憶するために、不揮発性記憶デバイスに接続されるホストデバイスから不揮発性記憶デバイスによって少なくとも１つの要求を受信するステップと、（ｂ）少なくとも１つのデータ記憶要求を満足するために、データが不揮発性メモリに書き込まれるべき速度を評価するステップと、（ｃ）評価されたデータ書き込み速度に従って、受信データを不揮発性メモリの主記憶領域に書き込む前に不揮発性メモリのキャッシュ記憶領域に受信データを書き込むかどうかを決定するステップと、（ｄ）決定するステップが肯定である場合に、受信データを決定どおりにキャッシュ記憶領域に書き込むステップと、を含む方法がここで初めて開示される。
【００１５】
一部の実施形態では、少なくとも１つの要求を受信するステップが、（ｉ）第１の要求と第２の要求とを受信するステップを含み、（ｉｉ）速度を評価するステップが、（Ａ）第１および第２の要求のそれぞれのデータ量と、（Ｂ）第１の要求を受信する時間と第２の要求を受信する時間との間の時間差とに従って実行される。
一部の実施形態では、（ｉ）少なくとも１つの要求を受信するステップが、第１の要求と第２の要求とを受信するステップを含み、（ｉｉ）速度を評価するステップが、（Ａ）第１の要求および第２の要求の合計データ量と、（Ｂ）第１の要求を受信する時間と第２の要求を受信する時間との間の時間差との間の割合に従って実行される。
【００１６】
キャッシュ記憶領域および主記憶領域を含む不揮発性メモリを有する不揮発性記憶デバイスに対するキャッシュフラッシングポリシーを実施する方法であって、（ａ）不揮発性メモリにデータを記憶するために、不揮発性記憶デバイスに接続されるホストデバイスから不揮発性記憶デバイスによって要求を受信するステップと、（ｂ）要求が受信された時点で不揮発性記憶デバイスがキャッシュ記憶優先モードである場合、受信データを不揮発性メモリの主記憶領域に書き込む前に不揮発性メモリのキャッシュ記憶領域に受信データを書き込むステップと、（ｃ）要求が受信された時点で不揮発性記憶デバイスがキャッシュバイパスモードである場合、受信データを不揮発性メモリのキャッシュ記憶領域に書き込まないで不揮発性メモリの主記憶領域に受信データを書き込むステップと、（ｄ）ビジー状態を返した記憶レディ／ビジーフラグの読み出しをホストによって検出したのに応答して、キャッシュバイパスモードからキャッシュ記憶優先モードへのモード遷移を記憶デバイスによって実行するステップと、を含む方法がここで初めて開示される。
【００１７】
一部の実施形態では、（ｅ）キャッシュ記憶領域の満杯度合いに応じて、キャッシュ記憶優先モードからキャッシュバイパスモードへ遷移するかどうかを決定するステップと、（ｆ）決定どおりにキャッシュ記憶優先モードからキャッシュバイパスモードへの遷移を実行するステップと、をさらに含む。
【００１８】
キャッシュ記憶領域および主記憶領域を含む不揮発性メモリを有する不揮発性記憶デバイスに対するキャッシングポリシーを実施する方法であって、（ａ）不揮発性記憶デバイスに接続されるホストデバイスから不揮発性記憶デバイスによってデータを受信するステップと、（ｂ）キャッシュ記憶領域に受信データを記憶するステップと、（ｃ）少なくとも１つの時点について、（ｉ）（Ａ）ステップ（ａ）のデータを受信するステップに先行する期間の間にホストデバイスから不揮発性記憶デバイスによって他のデータが受信された過去の速度と、（Ｂ）先行する期間の間に受信された連続するホスト書き込み要求間の平均時間間隔と、からなるグループから選択される少なくとも１つのパラメータに従って、ステップ（ａ）において受信されたデータを不揮発性メモリのキャッシュ記憶領域から不揮発性メモリの主記憶領域にコピーするかどうかを不揮発性記憶デバイスによって決定するステップと、（ｄ）前記決定するステップが肯定である場合、ステップ（ａ）おいて受信されたデータを決定どおりにキャッシュ記憶領域からコピーするステップと、を含む方法がここで初めて開示される。
【００１９】
一部の実施形態では、少なくとも１つのパラメータが、他のデータが受信された過去の速度を含む。
一部の実施形態では、少なくとも１つのパラメータが、連続するホスト書き込み要求間の平均時間間隔を含む。
【００２０】
（ａ）ホストデバイスと接続するデバイスインターフェイスと、（ｂ）キャッシュ記憶領域および主記憶領域を含む不揮発性メモリと、（ｃ）（ｉ）デバイスインターフェイスを介してホストデバイスからデータを受信し、（ｉｉ）（Ａ）ステップ（ｃ）（ｉ）のデータを受信するステップに先行する期間の間にホストデバイスから他のデータが不揮発性記憶デバイスによって受信された過去の速度と、（Ｂ）先行する期間の間に受信された連続するホスト書き込み要求間の平均時間間隔と、からなるグループから選択される少なくとも１つのパラメータに従って、受信データを主記憶領域に書き込む前に受信データをキャッシュ記憶領域に書き込むかどうかを決定し、（ｉｉｉ）決定が肯定である場合、ステップ（ｃ）（ｉ）で受信されたデータを決定どおりにキャッシュ記憶領域に書き込むように動作するコントローラと、を備える不揮発性記憶デバイスがここで初めて開示される。
【００２１】
（ａ）ホストデバイスと接続するデバイスインターフェイスと、（ｂ）キャッシュ記憶領域および主記憶領域を含む不揮発性メモリと、（ｃ）（ｉ）不揮発性メモリにデータを記憶するために、デバイスインターフェイスを介してホストデバイスから少なくとも１つの要求を受信し、（ｉｉ）少なくとも１つのデータ記憶要求を満足するために、データが不揮発性メモリに書き込まれるべき速度を評価し、（ｉｉｉ）評価されたデータ書き込み速度に従って、受信データを主記憶領域に書き込む前にキャッシュ記憶領域に受信データを書き込むかどうかを決定し、（ｉｖ）決定が肯定である場合に、受信データを決定どおりにキャッシュ記憶領域に書き込むように動作するコントローラと、を備える不揮発性記憶デバイスがここで初めて開示される。
【００２２】
（ａ）ホストデバイスと接続するデバイスインターフェイスと、（ｂ）キャッシュ記憶領域および主記憶領域を含む不揮発性メモリと、（ｃ）（ｉ）不揮発性メモリにデータを記憶するために、デバイスインターフェイスを介してホストデバイスから要求を受信し、（ｉｉ）要求が受信された時点で不揮発性記憶デバイスがキャッシュ記憶優先モードである場合、受信データを主記憶領域に書き込む前にキャッシュ記憶領域に受信データを書き込み、（ｉｉｉ）要求が受信された時点で不揮発性記憶デバイスがキャッシュバイパスモードである場合、受信データを不揮発性メモリのキャッシュ記憶領域に書き込まないで主記憶領域に受信データを書き込み、（ｉｖ）ビジー状態を返した記憶レディ／ビジーフラグの読み出しをホストによって検出したのに応答して、キャッシュバイパスモードからキャッシュ記憶優先モードへのモード遷移を記憶デバイスによって実行するように動作するコントローラと、を備える不揮発性記憶デバイスがここで初めて開示される。
【００２３】
（ａ）ホストデバイスと接続するデバイスインターフェイスと、（ｂ）キャッシュ記憶領域および主記憶領域を含む不揮発性メモリと、（ｃ）（ｉ）デバイスインターフェイスを介してホストデバイスからデータを受信し、（ｉｉ）受信データをキャッシュ記憶領域に記憶し、（ｉｉｉ）少なくとも１つの時点について、（Ａ）（Ｉ）ステップ（ａ）のデータを受信するステップに先行する期間の間にホストデバイスから他のデータが不揮発性記憶デバイスによって受信された過去の速度と、（ＩＩ）先行する期間の間に受信された連続するホスト書き込み要求間の平均時間間隔と、からなるグループから選択される少なくとも１つのパラメータに従って、ステップ（ｃ）（ｉ）で受信されたデータをキャッシュ記憶領域から主記憶領域にコピーするかどうかを決定し、（Ｂ）決定が肯定である場合、ステップ（ｃ）（ｉ）で受信されたデータを決定どおりにキャッシュ記憶領域からコピーするように動作するコントローラと、を備える不揮発性記憶デバイスがここで初めて開示される。
【００２４】
特定の実施形態に関連する前述した特徴は、本願明細書でそうでない旨が以下に示されない限り、他の実施形態にも含まれ得ることに留意するべきである。
【図面の簡単な説明】
【００２５】
【図１】ホストデバイスに接続される従来技術の周辺記憶デバイスを示すブロック図である。
【図２Ａ】周辺記憶デバイスの不揮発性メモリにデータを記憶する従来技術のルーチンを説明する図である。
【図２Ｂ】周辺記憶デバイスの不揮発性メモリにデータを記憶する従来技術のルーチンを説明する図である。
【図２Ｃ】周辺記憶デバイスの不揮発性メモリにデータを記憶する従来技術のルーチンを説明する図である。
【図２Ｄ】周辺記憶デバイスの不揮発性メモリにデータを記憶する従来技術のルーチンを説明する図である。
【図３】周辺記憶デバイスの不揮発性メモリにデータを記憶する従来技術のルーチンを説明する図である。
【図４】１つまたは複数のキャッシュ関連ポリシー（単数または複数）を実行するのに使用されてもよい情報を説明する時系列である。
【図５】キャッシュ記憶領域および主記憶領域を含む不揮発性メモリにデータを記憶するルーチンを示す流れ図である。
【図６】キャッシュ記憶領域および主記憶領域を含む不揮発性メモリにデータを記憶するルーチンを示す流れ図である。
【図７】キャッシュ記憶領域および主記憶領域を含む不揮発性メモリにデータを記憶するルーチンを示す流れ図である。
【図８Ａ】キャッシュ記憶領域および主記憶領域を含む不揮発性メモリにデータを記憶するルーチンを示す流れ図である。
【図８Ｂ】キャッシュバイパスモードとキャッシュ記憶優先モードとの間を遷移するルーチンを示す流れ図である。
【図９】キャッシュフラッシングポリシーを実行するルーチンを示す流れ図である。
【図１０】キャッシュフラッシングポリシーを実行するルーチンを示す流れ図である。
【発明を実施するための形態】
【００２６】
図面を参照しながら例示的な実施形態の本願の詳細な説明を参照することによって添付の特許請求の範囲がさらによく理解できる。この説明、実施形態および図面は、特許請求の範囲を限定するものとして解釈されるべきではない。当然ながら、本開示の方法および装置のすべての特徴がすべての実施例で必要なわけではない。さらに、当然ながら、プロセスまたは方法が示されまたは説明される本開示全体を通じて、方法のステップは、あるステップが最初に実施される別のステップに依存することが文脈から明らかでない限り、いかなる順序で実施されてもよく、または同時に実施されてもよい。本願を通じて使用される場合、用語「〜してもよい」は、強制の意味（すなわち「しなければならない」を意味する）ではなく許容の意味（すなわち「可能性を有すること」を意味する）で使用される。
【００２７】
本発明の一部の実施形態は、（ｉ）不揮発性メモリの主記憶領域にデータを記憶する前にキャッシュ記憶領域にデータを記憶するか、または（ｉｉ）主記憶領域にデータを「直接」記憶することによってキャッシュ記憶領域を「バイパスする」かどうかを決定する場合に、特定の過去のおよび／または予測される「性能データ」を利用することに関する。特定の実施形態では、キャッシュ記憶領域に「入来データ」を書き込むかどうかの決定は、（ｉ）データがホストデバイスから周辺記憶デバイスによって受信された過去の速度（「パラメータＡ」）（図５を参照）、（ｉｉ）先行する期間の間に受信された連続するホスト書き込み要求間の平均時間間隔（「パラメータＢ」）（図６を参照）、（ｉｉｉ）少なくとも１つのデータ記憶要求を満足するために、データが不揮発性メモリに書き込まれるべき評価されたデータ書き込み速度（「パラメータＣ」）（図７を参照）、および／または（ｉｖ）以下に説明される１つまたは複数の追加パラメータのうちの１つまたは複数に従って実行されてもよい。決定が「肯定」（すなわち、不揮発性メモリのキャッシュ記憶領域にデータを記憶する決定）である場合、データは決定どおりにキャッシュ記憶領域に記憶される。
【００２８】
さらに、一部の実施形態では、「キャッシュ存在データ」（すなわち、キャッシュ記憶領域に既に書き込まれたデータ）をキャッシュ記憶領域から主記憶領域にコピーするかどうかまたはいつコピーするかを決定することは、前述したパラメータ（単数または複数）および／または本願明細書に記載される他のパラメータのうちの１つまたは複数に従って実行されてもよい。これらの実施形態は、「不揮発性キャッシュフラッシング」ポリシーを決定および実行するのに役立つ場合もある。
【００２９】
周辺不揮発性メモリ記憶デバイスのキャッシュ記憶領域および／または主記憶領域にデータを書き込む技法の導入的な説明
「パラメータＡ」および図５に関連する１つの限定されない例では、現状周辺記憶デバイスがホストデバイスからの「大」量のデータ（すなわち、周辺記憶デバイス内の不揮発性記憶に記憶する必要がある、ホストデバイスから送信されたデータ）で「短い」期間に「あふれた」ことが最近ある場合、データが受信されることになる速度が相対的に「速い」状態が今後しばらく続くという可能性が「高い」と推測され得る。この場合、入来データは、「遅い」主記憶領域に直接書き込むのではなくて「速い書き込み速度」に関連するキャッシュに最初に記憶される。ホストデバイスから受信される１つまたは複数の書き込みコマンドの実行を完了するには遅い応答時間となるリスクを最小限に抑えるように（すなわち、ホストによって検出可能に）するにはこの方法が役立つこともある。
【００３０】
逆に、データがホストデバイスから書き込まれる速度が過去に「遅かった」場合、ホストデバイスからデータを受信する場合にキャッシュ記憶領域をバイパスして主記憶領域に「直接」受信データを書き込むのが好ましいこともある。この場合、例えば、不揮発性（例えば、フラッシュ）メモリのキャッシュ記憶領域によって維持される書き込み動作の回数を最小限に抑えてキャッシュ領域および／または周辺不揮発性記憶デバイスの寿命を延ばすために、キャッシュ記憶領域にデータを記憶しないようにするのが役立つ場合もある。
したがって、この特定の例では、データが過去に受信された速度は、今後ホストデバイスからデータが受信されることになる推定速度を示し得る。
【００３１】
「パラメータＢ」および図６に関連する１つの限定されない例では、先行する期間の間に受信された連続するホスト書き込み要求間の平均時間間隔（「パラメータＢ」）は、先行する期間の間にホストデバイスによって周辺記憶デバイスに課された作業負荷の大きさを示し得る。連続するホスト書き込み要求間の平均時間間隔が相対的に「小さ」かった場合、このことは、（ｉ）ホストが相対的に短い期間に多くの書き込み要求を提供したことによって周辺記憶デバイスに相対的に「大きな」作業負荷が課された状況、および（ｉｉ）周辺記憶デバイスが今後大きな作業負荷を処理する必要がある可能性が高いことを示し得る。この場合において、平均時間間隔が相対的に低い（例えば、あるしきい値を下回る、予め決められている、またはそれ以外）場合、ホストデバイスによって受信される１つまたは複数の書き込みコマンドの実行を完了させるには遅い応答時間となるリスクを最小限に抑えるため（すなわち、ホストによって検出可能なように）、ホストデバイスから受信された入来データを最初にキャッシュ記憶領域に書き込むことが好ましい場合もある。
【００３２】
逆に、過去に連続する書き込み要求間の平均時間間隔が相対的に「大きい」場合、このことは、（ｉ）過去に相対的に「動作していない」状態であったホスト、および（ｉｉ）今後動作していない可能性が高い（または動作している可能性が低い）ホストを示し得る。この場合、ホストデバイスからデータを受信した場合に遅い書き込み速度であってもキャッシュ記憶領域をバイパスして「直接」主記憶領域に受信データを書き込むことが好ましいこともある。この場合において、例えば、不揮発性（例えば、フラッシュ）メモリのキャッシュ記憶領域によって維持される書き込み動作の回数を最小限に抑えてキャッシュ領域および／または周辺不揮発性記憶デバイスの寿命を延ばすために、キャッシュ記憶領域にデータを記憶しないようにするのが役立つ場合もある。
【００３３】
「パラメータＣ」および図７に関連する１つの限定されない例では、１つまたは複数のコマンド（単数または複数）でホストから受信されたデータが周辺不揮発性メモリデバイスの不揮発性メモリに書き込まれるべき速度が評価される。１つの限定されない例では、この速度を表す情報は、ホストから明示的に受信されてもよい。デバイスがデータを「非常に高速に」書き込むべき場合、評価された書き込み速度要求を満足するために、ホストデバイスから受信された入来データを（相対的に「速い」書き込みに関連する）キャッシュ記憶領域に最初に書き込むのに要求される性能を提供するために有利である場合もある。
【００３４】
逆に、不揮発性メモリへの相対的に「低速度」のデータ記憶のみが要求される場合、ホストデバイスからデータを受信する際に、遅い書き込み速度であってもキャッシュ記憶領域をバイパスして主記憶領域に受信データを「直接」書き込むことが好ましいこともある。この場合、例えば、不揮発性（例えば、フラッシュ）メモリのキャッシュ記憶領域によって維持される書き込み動作の回数を最小限に抑えてキャッシュ領域および／または周辺不揮発性記憶デバイスの寿命を延ばすために、キャッシュ記憶領域にデータを記憶しないようにするのが役立つ場合もある。
【００３５】
異なる実施形態では、主記憶に書き込む前にキャッシュに書き込むかどうかの決定は、ホストデバイスからキャッシング命令を一切受信しないで周辺不揮発性記憶デバイスによって「自立的に」実行されてもよいことに留意するべきである。
【００３６】
周辺不揮発性メモリ記憶デバイスの不揮発性メモリのキャッシュ記憶領域から主記憶領域にデータをコピーする技法の導入的な説明
記憶領域
前述したように、本発明の一部の実施形態は、「キャッシュ存在データ」（すなわち、キャッシュ記憶領域に既に書き込まれたデータ）をキャッシュ記憶領域から主記憶領域にコピーするかどうかまたはいつコピーするかを決定する技法に関する。データは、この決定を条件として、かつ／またはこの決定に従ってキャッシュ記憶領域から主記憶領域にコピーされる。
【００３７】
一部の実施形態では、「キャッシュ存在データ」をキャッシュ記憶領域から主記憶領域にコピーするかどうかまたはいつコピーするかを決定することは、（ｉ）データがホストデバイスから周辺記憶デバイスによって受信された過去の速度（「パラメータＡ」）（図５参照）、（ｉｉ）先行する期間の間に受信された連続するホスト書き込み要求間の平均時間間隔（「パラメータＢ」）（図６参照）、および／または（ｉｉｉ）以下に説明される１つまたは複数の追加のパラメータのうちの１つまたは複数に従って実行されてもよい。
【００３８】
「パラメータＡ」および図９に関連する１つの限定されない例では、現在周辺記憶デバイスがホストデバイスからの「大」量のデータ（すなわち、周辺記憶デバイス内の不揮発性記憶デバイスに記憶される必要がある、ホストデバイスから送信されたデータ）で「短い」期間にあふれたことが最近ある場合、データが受信されることになる速度が相対的に「速い」状態が今後しばらく続くという可能性が「高い」と推測され得る。この場合、キャッシュをフラッシュするのを遅らせ（キャッシュ記憶領域から主記憶領域にデータをコピーするのを遅らせる）かつ／またはキャッシュを相対的に「低速」でフラッシュするのが有利であることもある。特に、キャッシュ記憶領域から主記憶領域にデータがコピーされるキャッシュコピー動作は、周辺不揮発性記憶デバイスのデバイスリソースを消費する場合があり、「入来データ」の処理に使用可能であるデバイスリソースの量を制限する場合がある。したがって、記憶デバイスが新しい入来データで相対的に「あふれる」ことになると予測される場合、デバイスリソースをキャッシュフラッシングに回すことで周辺記憶デバイスが入来データを要求される速度で（すなわち、ホストデバイスによって検出可能なように）「処理する」ことができなくなるリスクが増加する場合もある。
【００３９】
逆に、データがホストデバイスから書き込まれる速度が過去に「遅かった」場合、デバイスリソースを、ホストデバイスからデータを受信した場合にキャッシュ記憶領域から主記憶領域にデータをコピーするタスク専用にすることによってこの状況をうまく利用するのが好ましいこともある。ホストデバイスによって周辺記憶デバイスに課される要求が今後相対的に「低い」ことが予測されるため、デバイスリソースを、キャッシュからのデータのコピー専用にしてキャッシュを「新しい」入来データ用に「クリアする」機会を提供している期間にデバイスがこれらの要求を一切満足することができないリスクは相対的に低くなると推定され得る。
【００４０】
「パラメータＢ」および図１０に関連する１つの限定されない例では、先行する期間の間に受信された連続するホスト書き込み要求間の平均時間間隔（「パラメータＢ」）は、ホストデバイスが周辺記憶デバイスにコマンドまたは特定のタスクを送信する際に「アクティブ」であった度合いを示す。連続するホスト書き込み要求間の平均時間間隔が相対的に「小さ」かった場合、このことは、（ｉ）ホストが相対的に短い期間に多くの書き込み要求を提供したことによって周辺記憶デバイスに相対的に「大きな」作業負荷が課された状況、および（ｉｉ）周辺記憶デバイスが今後大きな作業負荷を処理する必要がある可能性が高いことを示し得る。この場合において、平均時間間隔が相対的に低い（例えば、あるしきい値を下回る、予め決められている、またはそれ以外の）場合、キャッシュをフラッシュするのを遅らせ（キャッシュ記憶領域から主記憶領域にデータをコピーするのを遅らせる）かつ／または相対的に「低速」でキャッシュをフラッシュするのが有利なこともある。特に、キャッシュ記憶領域から主記憶領域にデータがコピーされるキャッシュコピー動作は、周辺不揮発性記憶デバイスのデバイスリソースを消費する場合があり、「入来データ」の処理に使用可能であるデバイスリソースの量を制限する場合がある。したがって、記憶デバイスが相対的に「大きな」作業負荷を処理する必要があると予測される（すなわち、先行する期間の間に受信された連続するホスト書き込み要求間の平均時間間隔によって）場合、デバイスリソースをキャッシュフラッシングに回すことで周辺記憶デバイスが入来データを要求される速度で（すなわち、ホストデバイスによって検出可能なように）「処理する」ことができなくなるリスクが増加する場合もある。
【００４１】
逆に、過去において連続する書き込み要求間の平均時間が相対的に「大きかった」場合、このことは、（ｉ）過去に相対的に「非アクティブ」状態であったホスト、および（ｉｉ）今後非アクティブである可能性が高い（または非アクティブである可能性が低い）ホストを示し得る。この場合、キャッシュ記憶領域から主記憶領域にデータをコピーするタスクにデバイスリソースを専念させることによってこの状況をうまく利用するのが好ましいこともある。ホストデバイスによって周辺記憶デバイスに課される要求が今後相対的に「低い」ことが予測されるため、デバイスリソースを、キャッシュからのデータのコピー専用にしてキャッシュを「新しい」入来データ用に「クリアする」機会を提供している期間にデバイスがこれらの要求を一切満足することができないリスクは相対的に低くなると推定され得る。
【００４２】
異なる実施形態では、キャッシュ記憶領域から主記憶領域に「キャッシュ存在データ」をコピーするかどうか（またはいつコピーするか）の決定は、ホストデバイスからキャッシング命令を一切受信しないで周辺フラッシュデバイスによって「自立的に」実行されてもよいことに留意するべきである。
【００４３】
図４の説明
図４は、１つまたは複数のキャッシュ関連ポリシー（単数または複数）を実行するのに利用されてもよい情報を説明する時系列である。
時間ｔ1 で、データＤ1 を含む第１の「書き込み要求」が、ホストデバイス３１０からそれぞれのインターフェイス３５０、２５０を介して周辺記憶デバイス２６０で受信される。時間ｔ2 で、データＤ2 を含む第２の「書き込み要求」が、ホストデバイス３１０からそれぞれのインターフェイス３５０、２５０を介して周辺記憶デバイス２６０で受信される。時間ｔ3 で、データＤ3 を含む第３の「書き込み要求」が、ホストデバイス３１０からそれぞれのインターフェイス３５０、２５０を介して周辺記憶デバイス２６０で受信される。時間ｔ4 で、データＤ4 を含む第４の「書き込み要求」が、ホストデバイス３１０からそれぞれのインターフェイス３５０、２５０を介して周辺記憶デバイス２６０で受信される。時間ｔ5 で、データＤ5 を含む第５の「書き込み要求」が、ホストデバイス３１０からそれぞれのインターフェイス３５０、２５０を介して周辺記憶デバイス２６０で受信される。
【００４４】
（ｉ）データＤ2 の受信／第２の書き込み要求の受信と（ｉｉ）Ｄ1 のデータの受信／第１の書き込み要求の受信との間の「時間間隔」はΔｔ12である。（ｉ）データＤ3 の受信／第３の書き込み要求の受信と（ｉｉ）Ｄ2 のデータの受信／第２の書き込み要求の受信との間の「時間間隔」はΔｔ23である。（ｉ）データＤ4 の受信／第４の書き込み要求の受信と（ｉｉ）Ｄ3 のデータの受信／第３の書き込み要求の受信との間の「時間間隔」はΔｔ34である。（ｉ）データＤ5 の受信／第５の書き込み要求の受信と（ｉｉ）Ｄ4 のデータの受信／第４の書き込み要求の受信との間の「時間間隔」はΔｔ45である。
【００４５】
図５の説明
図５は、フラッシュメモリ２７０にデータを記憶する方法を説明する流れ図である。ステップＳ２１１において、周辺記憶デバイス２６０は、ホストデバイス３１０からデータを受信する。ステップＳ２１５において、このデータは（例えば、フラッシュコントローラ２８０内または不揮発性メモリデバイス２６０内の他のいずれかの場所の）揮発性メモリに記憶される。
ステップＳ２５１において、Ｓ２１１におけるデータの受信に先行する期間の間に他のデータが受信された過去の速度が評価または決定される。
【００４６】
図４および図５の両方を参照する。１つ例では、時間ｔ4 でコマンド４を受信する部分としてステップＳ２１１が実行される。この例では、受信される「データ」はＤ4 である。この例では、先行する期間が時間ｔ2 −Δｔ12で始まり、時間ｔ3 ＋Δｔ34で終了する。したがって、先行する期間の合計の「長さ」は（ｔ3 ＋Δｔ34）−（ｔ2 −Δｔ12）であり、「前の時間間隔」（すなわち、時間ｔ4 以前）の間に受信された「他のデータ」の合計量は（Ｄ2 ＋Ｄ3 ）である。したがって、この例では、「過去の期間」の間に「他のデータ」が受信される「過去の速度」Ｒは、（Ｄ2 ＋Ｄ3 ）／｛（ｔ3 ＋Δｔ34）−（ｔ2 −Δｔ12）｝である。
【００４７】
ステップＳ２５５において、データがキャッシュされるかどうかは過去のデータ受信速度Ｒに従って決定される。１つの限定されない例では、Ｒは、ある種のしきい値（例えば、所定のしきい値および／または時間の関数として変化するしきい値および／または任意の他のしきい値）と比較される。（ｉ）Ｒがしきい値を超えた場合、Ｓ２１９から出る「ＹＥＳ」分岐が選ばれ、（ｉｉ）そうでない場合にはＳ２１９から出る「ＮＯ」分岐が選ばれる。
【００４８】
前者の場合、データは（書き込まれる場合であっても）主記憶領域２７４に書き込まれる前に不揮発性メモリのキャッシュ記憶領域２７２に書き込まれる。後者の「キャッシュバイパス」の場合、データはキャッシュ記憶領域２７２に書き込まれないで不揮発性メモリの主記憶領域２７４に書き込まれる。
【００４９】
図６の説明
図６は、フラッシュメモリ２７０にデータを記憶する技法を説明する流れ図である。ステップＳ２１１において、周辺記憶デバイス２６０はホストデバイス３１０からデータを受信する。ステップＳ２１５において、このデータは（例えば、フラッシュコントローラ２８０内または不揮発性メモリデバイス２６０内の他のいずれかの場所の）揮発性メモリに記憶される。
ステップ２６１において、Ｓ２１１におけるデータの受信に先行する期間の間の連続するホスト書き込み要求間の平均時間間隔が評価または決定される。
【００５０】
図４および図６の両方を参照する。１つ例では、時間ｔ5 でコマンド５を受信する部分としてステップＳ２１１が実行される。この例では、先行する期間が時間ｔ2 −Δｔ12で始まり、時間ｔ4 ＋Δｔ45で終了する。この先行する期間の間に、３つのホスト書き込み要求が受信される。すなわち、時間ｔ2 における第２の書き込み要求、時間ｔ3 における第３の書き込み要求、および時間ｔ4 における第４の書き込み要求である。この時間間隔の間に、２つの「連続するホスト書き込み要求間の時間間隔」Δｔ23およびΔｔ34がある。したがって、この限定されない例では、連続するホスト書き込み要求間の平均時間間隔ＴAVG は（Δｔ23＋Δｔ34）／２である。
【００５１】
ステップＳ２６５において、データがキャッシュされるかどうかは連続するホスト書き込み要求間の平均時間間隔ＴAVG に従って決定される。１つの限定されない例では、ＴAVG はある種のしきい値（例えば、所定のしきい値および／または時間の関数として変化するしきい値および／または任意の他のしきい値）と比較される。（ｉ）ＴAVG がしきい値よりも低い場合、Ｓ２１９から出る「ＹＥＳ」分岐が選ばれ、（ｉｉ）そうでない場合にはＳ２１９から出る「ＮＯ」分岐が選ばれる。
【００５２】
前者の場合、データは（書き込まれる場合であっても）主記憶領域２７４に書き込まれる前に不揮発性メモリのキャッシュ記憶領域２７２に書き込まれる。後者の「キャッシュバイパス」の場合、データはキャッシュ記憶領域２７２に書き込まれないで不揮発性メモリの主記憶領域２７４に書き込まれる。
【００５３】
図７の説明
図７は、フラッシュメモリ２７０にデータを記憶する技法を説明する流れ図である。ステップＳ３１１において、周辺記憶デバイス２６０はホストデバイス３１０からデータを受信する。ステップＳ３１５において、このデータは（例えば、フラッシュコントローラ２８０内または不揮発性メモリデバイス２６０内の他のいずれかの場所の）揮発性メモリに記憶される。
【００５４】
ステップＳ３１５において、少なくとも１つのデータ記憶要求を満たすためにＳ３１１で受信されたデータが不揮発性メモリに書き込まれるべき速度が評価されてもよい。１つの限定されない例では、この情報は明示的に受信されてもよい。例えば、周辺記憶デバイスのコマンドセットは、ホストデバイスが一定量のデータを一定の時間内に記憶するように要求するシンタックスを有する書き込みコマンドを含んでもよい。したがって、データが書き込まれるべき速度は、（ｉ）特定のコマンドでホストデバイスから受信されたデータ量および（ｉｉ）ホストデバイスからの要求に従ってデータが書き込まれることになる時間量の関数と見なされてもよい。
さらに別の例では、データが不揮発性メモリに書き込まれるべき速度を推定するのに過去のパターンが用いられてもよい。
【００５５】
ステップＳ３１９において、データがキャッシュされるかどうかはデータが書き込まれるべき評価された速度ＡＲに従って決定される。１つの限定されない例では、ＡＲはある種のしきい値（例えば、所定のしきい値および／または時間の関数として変化するしきい値および／または任意の他のしきい値）と比較される。（ｉ）ＡＲがしきい値（すなわち、データを相対的に高速で書き込むように要求する）を超えた場合、Ｓ２１９から出る「ＹＥＳ」分岐が選ばれ、（ｉｉ）そうでない場合にはＳ２１９から出る「ＮＯ」分岐が選ばれる。
【００５６】
前者の場合、データは（書き込まれる場合であっても）主記憶領域２７４に書き込まれる前に不揮発性メモリのキャッシュ記憶領域２７２に書き込まれる。後者の「キャッシュバイパス」の場合、データはキャッシュ記憶領域２７２に書き込まれないで不揮発性メモリの主記憶領域２７４に書き込まれる。
【００５７】
図８Ａ〜図８Ｂの説明
図８Ａ〜図８Ｂを参照する。図８Ａ〜図８Ｂの例によれば、ビジー状態を返した記憶レディ／ビジーフラグ（すなわち、周辺記憶デバイス２６０の）をホストが読み出す場合、このことは周辺記憶デバイスがホストデバイスによって「望まれる」速度で不揮発性記憶にデータを首尾よく書き込めないことを示し得る。この場合、ホストデバイスにとって「より優れた性能」を提供するために、キャッシュ記憶領域によって提供される「高速書き込み」特性を利用して最初にキャッシュ記憶領域に入来データを書き込むのが望ましい場合もある。
【００５８】
図８Ａは、フラッシュメモリ２７０にデータを記憶する技法を説明する流れ図である。図８Ａの実施形態によれば、周辺記憶デバイス２６０は、少なくとも２つのデバイス「モード」を提供する。すなわち、データが主記憶領域２７４に書き込まれる前にキャッシュ記憶領域２７２に記憶される「キャッシュ記憶優先」デバイスモードと称される第１のモードと、データがキャッシュ記憶領域２７２に書き込まれないで主記憶領域２７４に記憶される「キャッシュバイパスモード」と称される第２のモードである。「現在のモード」に関する情報は、これらに限定されないがフラッシュコントローラ２８０、揮発性メモリ２８２およびフラッシュメモリ２７０を含むいずれの場所に記憶されてもよい。
図８ＡのステップＳ２１１において、周辺記憶デバイス２６０は、ホストデバイス３１０からデータを受信する。ステップＳ２１５において、このデータは（例えば、フラッシュコントローラ２８０内または不揮発性メモリデバイス２６０内の他の何れかの場所の）揮発性メモリに記憶される。
【００５９】
図８Ｂは、２つの前述したデバイスモード間を遷移するルーチンを示す流れ図である。したがって、ステップＳ４１１において、ホストデバイスによって記憶レディ／ビジーフラグを読み出したのに応答して（すなわち、ホストが周辺記憶デバイスにその状態を問い合わせ、周辺記憶デバイスはホストに記憶レディ／ビジーフラグを返してこれがホストデバイスによって読み出される）、デバイスは「キャッシュバイパスモード」からキャッシュ記憶優先モードに遷移することができる。このことは、ホストデバイスは周辺記憶デバイスが「ビジー」であるという情報を受信したこと、およびホストデバイスに提供される性能を最大限にするために「高速書き込みモード」を使用するのが有利である場合もあることの両方を示す。
【００６０】
ステップＳ４１５において、周辺記憶デバイス２６０は、１つまたは複数のイベントに従ってキャッシュバイパスモードに戻る遷移を実行する。１つの限定されない例では、この遷移はキャッシュ記憶領域の満杯度合い（すなわち、キャッシュ領域２７２が以前に書き込まれたデータでどの程度満たされているか）に応じて実行される。例えば、キャッシュが「満杯」に近い場合、フラッシュに入来データを書き込むのに充分な空間がキャッシュ内に存在しないため、キャッシュ記憶優先モードからキャッシュバイパスモードへの遷移を実行するのが望ましい場合もある。
【００６１】
ここで図８ＡのステップＳ２７１を参照すると、（ｉ）周辺デバイス２６０が「キャッシュ記憶優先」モードの場合、ステップＳ２７１から出る「左側」分岐が選択され、（ｉｉ）そうでない場合にはステップＳ２７１から出る「右側」分岐が選択されることに留意するべきである。
前者の場合、データは（書き込まれる場合であっても）主記憶領域２７４に書き込まれる前に不揮発性メモリのキャッシュ記憶領域２７２に書き込まれる。後者の「キャッシュバイパス」の場合、データはキャッシュ記憶領域２７２に書き込まれないで不揮発性メモリの主記憶領域２７４に書き込まれる。
【００６２】
図９〜図１０の説明
図５〜図８は、周辺記憶デバイス２６０の不揮発性メモリ２７０に入来データを記憶するポリシーを実施するルーチンを説明している。
図９〜図１０は、不揮発性メモリのキャッシュ記憶領域２７２から主記憶領域２７４にデータをコピーするルーチンを説明している（「周辺不揮発性記憶デバイスの不揮発性メモリのキャッシュ記憶領域から主記憶領域にデータをコピーする技法の導入的な説明」と題される前のセクションを参照）。
【００６３】
したがって、ステップＳ５１１において、周辺記憶デバイス２６０はホストデバイス３１０からデータを受信する。ステップＳ５１５において、このデータは不揮発性メモリ２７０のキャッシュ記憶領域２７２に記憶される。ステップＳ５１９において、ステップＳ５１１におけるデータの受信に先行する期間の間に他のデータが受信された過去の速度が決定される（図５のステップＳ２５１を参照）。
【００６４】
ステップＳ５２３において、キャッシュ記憶領域２７２から主記憶領域２７４にデータがコピーされる（すなわち、特定の時間または特定の時間枠または任意の時間に）かどうかは、過去のデータ受信速度に従って決定される。１つの例では、（ｉ）ホスト３１０からデータが受信される過去の速度が相対的に「遅い」場合、このことは今後デバイスが「相対的に遅い」速度でデータを受信することを示し、デバイスリソースがキャッシュ記憶領域２７２から主記憶領域２７４へデータをコピーすることに割り当てられ得ることが推定され、（ｉｉ）逆に、ホスト３１０からデータが受信される過去の速度が相対的に「速い」場合、このことは今後デバイスが「相対的に速い」速度でデータを受信することを示し、キャッシュ記憶領域２７２から主記憶領域２７４へデータをコピーするのを遅らせるのが好ましいことが推定され得る。
ステップＳ５２３では、ステップＳ５２３で「決定が肯定」（すなわち、キャッシュ記憶領域２７２から主記憶領域２７４にデータがコピーされるという決定）である場合、決定どおりにデータはキャッシュ記憶領域２７２から主記憶領域２７４にコピーされる。
【００６５】
図９のステップ（単数または複数）のいずれも任意の回数繰り返されてもよいことに留意するべきである。したがって、１つの限定されない例では、データが受信された過去の速度は、（例えば、複数の時点で）モニタされてもよく、（それ自体が時間とともに変動することもある）過去の速度の増加（または減少）に応答して、データがキャッシュ記憶領域２７２から主記憶領域２７４にコピーされても、またはデータがキャッシュ記憶領域２７２から主記憶領域２７４にコピーされるプロセスは停止してもよい。
【００６６】
ここで図１０を参照する。ステップＳ５１１において、周辺記憶デバイス２６０はホストデバイス３１０からデータを受信する。ステップＳ５１５において、このデータは不揮発性メモリ２７０のキャッシュ記憶領域２７２に記憶される。ステップＳ５１９において、ステップＳ５１１におけるデータの受信に先行する過去の期間にホスト３１０から周辺記憶デバイス２６０に送信された連続するホスト書き込み要求間の平均時間間隔の大きさが決定される（図６のステップＳ２６１を参照）。
【００６７】
ステップＳ５３１において、キャッシュ記憶領域２７２から主記憶領域２７４にデータがコピーされる（すなわち、特定の時間または特定の時間枠または任意の時間に）かどうかは、平均時間間隔の大きさに従って決定される。１つの例では、（ｉ）連続する書き込み要求間の平均時間間隔が相対的に「大きい」場合、今後ホスト３１０から周辺デバイス２６０によって書き込みコマンドが相対的に「まれに」受信されることになり、デバイスリソースがキャッシュ記憶領域２７２から主記憶領域２７４へデータをコピーすることに割り当てられ得ることが推定され、（ｉｉ）逆に、連続する書き込み要求間の平均時間間隔が相対的に「小さい」場合、今後ホスト３１０から周辺デバイス２６０によって書き込みコマンドが相対的に「頻繁に」受信されることになり、今後周辺デバイス２６０は相対的に「ビジー」になり、キャッシュ記憶領域２７２から主記憶領域へデータをコピーするのを遅らせるのが好ましいことが推定され得る。
ステップＳ５３５では、ステップＳ５２３で「決定が肯定」（すなわち、キャッシュ記憶領域２７２から主記憶領域２７４にデータがコピーされるという決定）である場合、決定どおりにデータはキャッシュ記憶領域２７２から主記憶領域２７４にコピーされる。
【００６８】
図１０のステップ（単数または複数）のいずれも任意の回数繰り返されてもよいことに留意するべきである。したがって、１つの限定されない例では、連続するホスト書き込み要求間の平均時間間隔は、（例えば、複数の時点で）モニタされてもよく、（それ自体が時間とともに変動することもある）平均時間間隔の増加（または減少）に応答して、データがキャッシュ記憶領域２７２から主記憶領域２７４にコピーされても、またはデータがキャッシュ記憶領域２７２から主記憶領域２７４にコピーされているプロセスが停止してもよい。
【００６９】
定義
便宜のため、本願明細書の記載の文脈における様々な用語がここで提示される。本願のこの箇所または他の箇所で明示的または非明示的に定義が提供される限りにおいて、このような定義は関連技術（単数または複数）の当業者によって定義される用語の使用と一致していると理解される。さらに、このような定義は、このような使用と一致する可能な限り広い意味で解釈されるべきである。
「不揮発性メモリ」とは、フラッシュメモリおよび磁気メモリを含む任意の種類の不揮発性メモリを示す。
「入来データ」とは、フラッシュメモリデバイスの不揮発性メモリ（例えば、フラッシュメモリ）にまだ記憶されていない、ホストからフラッシュメモリデバイスによって受信されるデータを示す。「入来データ」は、フラッシュメモリデバイス内の揮発性メモリ２７０に（例えば、フラッシュコントローラ２８０によって）一時的に記憶されてもよい。
【００７０】
一部の実施形態（例えば、図８ＢのステップＳ４１５に関連する一部の実施形態）では、「キャッシュ記憶領域２７２が以前に記憶されたデータで満たされている度合い」が決定される。「以前に記憶されたデータ」とは、「フラッシュメモリ記憶デバイスが以前に記憶されたデータで満たされている度合い」が決定される時点より前に不揮発性メモリ２７０のキャッシュ記憶領域２７２に記憶されていたデータを示す。
【００７１】
追加の注意点
前述した実施形態のいずれも、図面とともに前述した動作をコンピュータ可読媒体上で実施する命令および／またはデータを受信し、送信しまたは記憶することをさらに含んでもよいことにさらに留意するべきである。一般的に言って、コンピュータ可読媒体は、磁気またはフラッシュまたは光学媒体などの記憶媒体またはメモリ媒体、例えば、ディスクまたはＣＤ−ＲＯＭ、ＲＡＭ、ＲＯＭなどの揮発性または不揮発性媒体など、ならびにネットワークおよび／または無線リンクなどの通信媒体を介して伝達される電気信号、電磁気信号またはデジタル信号などの伝送媒体または信号を含んでもよい。
【００７２】
このように前述した例示的な実施形態を説明してきたが、それらの様々な等価物、代替物、変更形態および改善形態が添付の特許請求の範囲および趣旨から逸脱することなしに可能であることは当業者には明らかである。特に、異なる実施形態は、本願明細書で説明される特徴以外の特徴の組み合わせを含んでもよい。したがって、特許請求の範囲は、前述した説明に限定されない。
【図１】
2012524952.tif 000003
【図２Ａ】
2012524952.tif 000004
【図２Ｂ】
2012524952.tif 000005
【図２Ｃ】
2012524952.tif 000006
【図２Ｄ】
2012524952.tif 000007
【図３】
2012524952.tif 000008
【図４】
2012524952.tif 000009
【図５】
2012524952.tif 000010
【図６】
2012524952.tif 000011
【図７】
2012524952.tif 000012
【図８Ａ】
2012524952.tif 000013
【図８Ｂ】
2012524952.tif 000014
【図９】
2012524952.tif 000015
【図１０】
2012524952.tif 000016
【国際調査報告】
2012524952.tif 000017
2012524952.tif 000018
2012524952.tif 000019