(57)【要約】【課題】メモリ中のデータを管理する改善された方法および装置を提供する。【解決手段】一部の実施形態によれば、不揮発性（ＮＶ）バッファは、選択された論理アドレスを有する入力済みの書き込みデータを記憶するように適合される。書き込み回路は、記憶された入力済み書き込みデータをＮＶバッファ中に保持しながらも、この入力済み書き込みデータのコピーをＮＶメインメモリに転送するように適合される。検証回路は、所定の経過時間間隔の終了時に検証動作を実施して、この入力済み書き込みデータのコピーのＮＶメインメモリに対する転送の成功を検証するように適合される。この入力済み書き込みデータは、転送の成功が検証されるまで、ＮＶバッファ中に保持される。【選択図】図２
2014154168.tif 000002
【特許請求の範囲】
【請求項１】
入力済み書き込みデータであって、関連付けられた論理アドレスを有する、入力済み書き込みデータを不揮発性（ＮＶ）バッファに記憶することと、
前記記憶された入力済み書き込みデータを前記ＮＶバッファ中に保持しながらも、前記入力済み書き込みデータのコピーを、ＮＶメインメモリに転送することと、
所定の経過時間の終了時に検証動作を実施して、前記入力済み書き込みデータの前記コピーの前記ＮＶメインメモリに対する転送の成功を検証することと、
を含む、方法。
【請求項２】
前記ＮＶバッファが、書き換え可能なソリッドステートメモリであり、前記ＮＶメインメモリが、消去可能なソリッドステートメモリである、請求項１に記載の方法。
【請求項３】
前記書き換え可能なソリッドステートメモリが、スピントルクランダムアクセスメモリ（ＳＴＲＡＭ）、抵抗ランダムアクセスメモリ（ＲＲＡＭ）、または相変化ランダムアクセスメモリ（ＰＣＲＡＭ）のうちから選択されるものであり、前記消去可能なソリッドステートメモリが、フラッシュメモリである、請求項２に記載の方法。
【請求項４】
前記実施するステップの前記書き込み動作が、前記ＮＶバッファ中の前記入力済み書き込みデータと関連付けられた介在する書き込み要求が不在であることに応答して実施され、前記ＮＶバッファ中の前記入力済み書き込みデータと関連付けられた介在する書き込み要求が存在することに応答して、前記検証動作が実施されない、請求項１に記載の方法。
【請求項５】
前記経過時間間隔中で、かつ前記検証動作以前、に受信された読み出し要求に応答して前記ＮＶバッファからホストデバイスに対して前記入力済みの書き込みデータのコピーを転送することと、キャッシュ保持方針の変更を実施して、前記検証動作が成功裏に終了したあとで、前記ＮＶバッファ中に前記入力済み書き込みデータを保持することと、を更に含む、請求項１に記載の方法。
【請求項６】
思惑的なデータプルとしての前記読み出し要求に応答して、前記入力済みの書き込みデータと空間的および／または時間的に関連するデータの第２の集合を、前記ＮＶバッファに転送すること、を更に含む、請求項５に記載の方法。
【請求項７】
前記所定の経過時間間隔の終了に先立って、前記ＮＶバッファ中の前記入力済みの書き込みデータとは異なる前記関連付けられた論理アドレスを有する入力済み書き込みデータの第２の集合を受信することと、前記第２の入力済み書き込みデータ集合の記憶すること、転送すること、開始することおよび実施することを繰り返すステップと、を更に含み、
前記検証動作が、前記ＮＶバッファ中の前記入力済み書き込みデータに対しては実施されない、請求項１に記載の方法。
【請求項８】
前記入力済み書き込みデータに応答して、選択されたハッシュ関数を用いてハッシュ値を生成することと、前記ハッシュ値を前記ＮＶメインメモリ中に記憶することと、前記関連付けられた論理アドレスを共有する入力済み書き込みデータの第２の集合の受信を伴う後続の書き込み拒否プロセス中に、前記記憶されたハッシュ値を用いることと、を更に含む、請求項１に記載の方法。
【請求項９】
前記入力済み書き込みデータを、前記関連付けられた論理アドレスを共有する入力済み書き込みデータの集合の受信の頻度に応答して、略式書き込みプロセスを用いて、書き込むこと、をさらに含む、請求項１に記載の方法。
【請求項１０】
タイマーを開始して、所定の経過時間間隔を、経過時間の事前選択された値で示すこと、を更に含む、請求項１に記載の方法。
【請求項１１】
前記事前選択された経過時間値が、不揮発性メインメモリと関連付けられたリラックス時間を超えるように選択される、請求項１０に記載の方法。
【請求項１２】
前記タイマーが、ホストデバイスからＸ個のアクセスコマンドの受信に応答して前記所定の経過時間間隔を終了し、Ｘが２以上の整数である、請求項１０に記載の方法。
【請求項１３】
選択された論理アドレスを有する入力済み書き込みデータを記憶するように適合される不揮発性（ＮＶ）バッファと、
前記記憶された入力済み書き込みデータを前記ＮＶバッファに保持しながらも、前記入力済み書き込みデータのコピーをＮＶメインメモリに転送するように適合される書き込み回路と、
所定の経過時間間隔の終了時に検証動作を実施して、前記入力済み書き込みデータの前記コピーの前記ＮＶメインメモリに対する転送の成功を検証するように適合される検証回路と、
を備える、装置。
【請求項１４】
前記選択された論理アドレスを有する更新された入力済み書き込みデータの、前記経過時間間隔中での受信に応答して、前記検証回路が前記検証動作を中止し、前記更新された入力済み書き込みデータを前記ＮＶバッファが記憶し、前記更新された入力済み書き込みデータのコピーを前記書き込み回路が前記ＮＶメインメモリに転送する、請求項１０に記載の装置。
【請求項１５】
前記更新された入力済み書き込みデータに応答して、ハッシュ値を生成するハッシュ生成器をさらに備え、前記書き込み回路が、前記生成されたハッシュ値を前記ＮＶメインメモリに記憶する、請求項１４に記載の装置。
【請求項１６】
前記検証回路が、前記ＮＶメインメモリ中の前記生成されたハッシュ値と、前記ＮＶバッファ中の前記更新された入力済み書き込みデータに応答して生成された第２の生成されたハッシュ値との比較に応答して、前記更新された入力済み書き込みデータに対して検証動作を実施する、請求項１５に記載の装置。
【請求項１７】
読み出し回路をさらに備え、
前記読み出し回路は、前記選択された論理アドレスを有するデータを要求する読み出し要求の受信に応答して、前記入力済み書き込みデータのコピーを前記ＮＶバッファからホストに対して出力目的で転送し、キャッシュ保持方針を実施して、前記検証動作の成功裏の終了後に、前記入力済み書き込みデータを前記ＮＶバッファ中に保持する、請求項１３に記載の装置。
【請求項１８】
前記読み出し回路が更に、思惑的なデータプルとしての前記読み出し要求に応答して、前記入力済みの書き込みデータと空間的および／または時間的に関連するデータの第２の集合のコピーを、前記ＮＶバッファに転送する、請求項１３に記載の装置。
【請求項１９】
前記ＮＶメインメモリが、複数のフラッシュメモリセルを含むフラッシュメモリを備え、前記書き込み回路が更に、前記入力済み書き込みデータの前記コピーを、前記フラッシュメモリセルの選択された集合に、蓄積された電荷を前記フラッシュメモリセルの前記選択された集合の浮遊ゲート構造上に格納することによって記憶するチャージポンプを備える、請求項１３に記載の装置。
【請求項２０】
前記チャージポンプが、高速で略式の書き込みプロセスに従って、かつ、低速で正常な書き込みプロセスに従って、前記蓄積された電荷を選択的に格納するように適合され、前記チャージポンプが、前記入力済み書き込みデータのホットデータとしての分類を示す制御信号に応答して、前記高速で略式の書き込みプロセスを用いて、前記蓄積された電荷を格納する、請求項１９に記載の装置。
【請求項２１】
カウントを開始して、前記入力済み書き込みデータの前記コピーの前記ＮＶメインメモリへの前記転送に応答して、前記所定の経過時間間隔を示すように適合されているタイマー回路を更に備える、請求項１３に記載の装置。
【請求項２２】
前記タイマー回路が、前記所定の経過時間間隔を、経過時間の事前選択された値の経過で示す、請求項２１に記載の装置。
【請求項２３】
前記タイマー回路が、ホストデバイスからＸ個のアクセスコマンドの受信に応答して前記所定の経過時間間隔を終了し、Ｘが２以上の整数である、請求項２１に記載の装置。
【請求項２４】
前記所定の経過時間間隔が、受信されたアクセスコマンドの作業負荷速度に関連して変化される、請求項１３に記載の装置。
【請求項２５】
内容参照可能メモリー（ＣＡＭ）として配置され、選択された論理アドレスを有する入力済み書き込みデータを記憶するように適合された複数の書き換え可能不揮発性メモリセルを含む不揮発性（ＮＶ）バッファと、
複数の消去可能フラッシュメモリセルを含むＮＶメインメモリと、
前記記憶された入力済み書き込みデータを前記ＮＶバッファ中に保持しながらも、前記入力済み書き込みデータのコピーを前記ＮＶメインメモリに転送するように適合された書き込み回路と、
所定の経過時間間隔を画定することを開始するように適合されたタイマー回路と、
検証回路とを備え、
前記検証回路は、前記選択された論理アドレスを有する更新された書き込みデータの前記所定の経過時間間隔中での受信に応答して、前記所定の経過時間間隔の画定を中止することを前記タイマー回路に命令し、かつ、前記更新された書き込みデータに対して、第２の所定の経過時間間隔を画定することを開始するように前記タイマー回路を再初期化する検証回路であって、前記選択された論理アドレスを有する更新された書き込みデータの前記所定の経過時間間隔中での不在に応答して、前記所定の経過時間間隔が終了したら検証動作を実施して、前記入力済み書き込みデータの前記コピーの前記ＮＶメインメモリに対する成功した転送を検証する、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の様々な実施形態は、概して、データ記憶デバイス中のデータを管理することを対象としている。
【発明の概要】
【課題を解決するための手段】
【０００２】
一部の実施形態では、不揮発性（ＮＶ：Ｎｏｎ−Ｖｏｌａｔｉｌｅ）バッファは、選択された論理アドレスを有する入力された書き込みデータを記憶するように適合される。書き込み回路は、この記憶された入力済み書き込みデータをＮＶバッファ中に保持しながらも、この入力された書き込みデータのコピーをＮＶメインメモリに転送するように適合される。検証回路は、所定の経過時間間隔の終了時に検証動作を実施して、この入力済み書き込みデータのコピーのＮＶメインメモリに対する転送の成功を検証するように適合される。
【０００３】
本開示の様々な実施形態を特徴付けるこれらおよび他の特徴および態様は、以下の詳細な説明および添付の図面を見れば理解することが可能である。
【図面の簡単な説明】
【０００４】
【図１】本開示の様々な実施形態によるデータ記憶デバイスの機能ブロック図を提供する。
【図２】一部の実施形態による図１のデバイスの態様を図示する。
【図３】図２のフラッシュメモリのフラッシュメモリセルを示す。
【図４】一部の実施形態によるフラッシュメモリセルの配列の一部を模式的に表す。
【図５】図５は、図２のフラッシュメモリ配列の消去ブロックを示す。
【図６】図２の不揮発性（ＮＶ）書き込みバッファ中で有用なスピントルク転送ランダムアクセスメモリ（ＳＴＲＡＭ）のセルを表す。
【図７】図２の不揮発性（ＮＶ）書き込みバッファ中で有用な抵抗ランダムアクセスメモリ（ＲＲＡＭ（登録商標））を図示する。
【図８】図２の不揮発性（ＮＶ）書き込みバッファ中で有用な相変化ランダムアクセスメモリ（ＰＣＲＡＭ）を示す。
【図９】図９は、一部の実施形態によるＮＶバッファの書き換え可能不揮発性メモリセルの配置の略図である。
【図１０】図９に配置されるような書き換え可能メモリセルを用いるＮＶバッファに対する例示のフォーマットを提供する。
【図１１】一部の実施形態による図２のデバイスによって実施される例示の検証動作を図示する。
【図１２】一部の実施形態による図２のデバイスによって実施される例示の比較動作を図示する。
【図１３】更なる実施形態によるデバイスによるハッシュ値の生成を示す。
【図１４】一部の実施形態による図１３の回路によって生成されたハッシュ値の使用を示す。
【図１５】一部の実施形態によるデータに対する様々な書き込みモードの使用を表す。
【図１６】本開示の様々な実施形態に従って実施することが可能なステップの概略を表すデータ書き込みルーチンである。
【発明を実施するための形態】
【０００５】
本開示は、概して、データ記憶デバイス中のデータの管理に関する。
不揮発性（ＮＶ）メモリは、メモリデバイスから電力が取り除かれた後など、データ状態を維持するためのリフレッシュ動作が必要なく、記憶されたデータがメモリ中で持続するような仕方で、データを記憶する傾向がある。
【０００６】
書き込み検証動作（時々、書き込み／読み出し検証動作または単に検証動作と呼ばれる）を実施して、データが、書き込み動作中に不揮発性メモリに成功裏に書き込まれたことを保証することが可能である。
【０００７】
概して、検証動作は、データをローカルバッファメモリに一時的に格納し、そのデータをメインメモリに書き込んで、データがローカルバッファからメインメモリにコピーされるようにし、メインメモリからデータの集合を読み出し、メインメモリから読み返されたデータを、ローカルバッファ中のデータのオリジナルの集合と比較する、ことを伴いかねない。２つのデータ集合が一致すれば、書き込み動作は、成功したものと検証されることが可能であり、ローカルバッファ中のオリジナルのデータ集合は、廃棄するまたは別様に放棄して、他のデータのために場所を空けておくようにすることが可能である。
【０００８】
停電または他の障害事象が、検証動作の完了に先立って発生した場合、またはデータが、検証動作に先立って、破損したりローカルバッファから廃棄されたりした場合、書き込み動作が不成功であれば、このデータは失われ得る。これらのリスクがあるため、不揮発性（ＮＶ）ローカルバッファを用いて、高い優先度の書き込みデータを、このデータをＮＶメインメモリに転送するに先立って、一時的に記憶することが普通である。
【０００９】
入力されたデータをＮＶバッファに格納することによって、実質的に、これらデータが常にＮＶメモリに記憶されていることが保証され、これでデータ損失というリスクが軽減される傾向がある。そのうえ、入力されたデータをＮＶバッファに格納することによって、コマンド完了ステータスを、データがホストデバイスに受信されるとすぐにこのホストに対して安全に発行することが可能となり、これによって、書き込み動作を即座に提供することを必要とする替りに、後続の書き込み動作によって、データがＮＶメインメモリに移動されて、より適切な時点で実施することが許容される。
【００１０】
動作可能中は、書き込みデータをＮＶメインメモリに転送する仕方を改善する必要性が継続的に存在する。したがって、本開示の様々な実施形態は、概して、データ記憶システム中でのデータ保全性およびシステム信頼性を向上させることを対象とする。
【００１１】
以下に説明するように、様々な実施形態が、概して、ホストデバイスからのユーザデータが記憶される、フラッシュメモリなどのＮＶメインメモリを採用する。ＮＶ書き込みバッファを用いて、転送待ちの書き込みデータをメインメモリに一時的に格納する。ＮＶ書き込みバッファは、磁気ランダムアクセスメモリ（ＭＲＡＭ）、スピントルクランダムアクセスメモリ（ＳＴＲＡＭ）、抵抗ランダムアクセスメモリ（ＲＲＡＭ）、相変化ランダムアクセスメモリ（ＰＣＲＡＭ）などの非フラッシュＮＶ構造を取り得る。
【００１２】
入力する書き込みデータはＮＶ書き込みバッファに記憶され、さらに、書き込み動作が予定されていて、実施され、この書き込みデータをＮＶバッファからＮＶメインメモリにコピーする。一旦データがＮＶメインメモリに転送されると、所定の経過時間間隔が開始される。
【００１３】
１つの方式では、所定の経過時間間隔は、時間間隔を始動し、一旦選択された時間値が経過したら（例えば、３０秒など）その完了を示すタイマー回路を使用して設定され得る。別の方式では、所定の経過時間間隔は、後続のアクセスコマンド（例えば、読みだしコマンドおよび／または書き込みコマンド）のカウント値で測定されて、選択された個数Ｘ個のアクセスコマンド（例えば、１０個のコマンドなど）が受信されて時間間隔を示すようにする。後者の場合、間隔中で通過した測定時間は、デバイスの作業負荷に関連して変化する。
【００１４】
経過時間間隔が終了して、関連するデータに対して、介在する更新済み書き込み要求がなにも受信されていない場合には、検証動作が実施されて、データがＮＶメインメモリに成功裏に書き込まれたことを検証する。書き込み動作が成功した場合、ＮＶバッファ中のデータは廃棄されて、他のデータのためにスペースが空けられる。検証動作が不成功であれば、別の書き込み動作を実施する、または他の是正措置を講じることが可能である。
【００１５】
介在する書き込み要求が、経過時間間隔中に受信された場合、本システムは、新たな書き込み要求が更新された書き込みデータの集合を提供しているかどうかチェックする。そうであれば、前に受信されたデータの集合に対する予定の検証動作を取り消すことが可能であり、また、前述のプロセスを、新たな書き込みデータに対して再開始することが可能である。
【００１６】
処理待ちの書き込みデータに対して、介在する書き込み要求が、時間間隔中に受信された場合、読み出し要求を、キャッシュヒットとして、ＮＶバッファから迅速に提供することが可能である。介在する読み出し要求および／または書き込み要求が発生すると、キャッシュ戦略の変更、書き込み増幅緩和、高速（「略式（ｓｌｏｐｐｙ）」）の書き込みの使用などの多くの後処理行動を始動することが可能である。
【００１７】
様々な実施形態のこれらおよび他の特徴ならびに利点は、様々な実施形態に従って構築されて動作されるデータ記憶デバイス１００を提供する図１を見直すことから始めることにより理解可能である。データ記憶デバイス１００は、一般的には、コントローラ１０２およびメモリモジュール１０４を含む。コントローラ１０２は、デバイス１００に対してトップレベルの制御を提供する。メモリモジュール１０４は、ユーザデータを、外部のホストデバイス（個別には示されていない）などの要求側エンティティに記憶する／これから回収する。一部の実施形態では、コントローラの機能性は、個別のコントローラが不要になるように、メモリモジュール１０４に組み込むことが可能である。
【００１８】
具体的な例を提供する目的で、システム１００は、ソリッドステートドライブ（ＳＳＤ）や、携帯式サムドライブや、メモリスティックや、メモリカードなどのフラッシュメモリ方式の記憶デバイスとして企図される。メモリモジュール１０４は代替例では様々なタイプの不揮発性メモリをいくつでも組み込むことが可能であるから、これは単に図示目的であり、制限目的ではないことが理解されるであろう。
【００１９】
図２は、一部の実施形態による図１のデバイス１００の部分を図示する。コントローラ１０２は、ホストデバイスとの転送動作を指図するためにローカルメモリに適切なプログラミングを記憶しているプログラム可能プロセッサとして示されている。メモリモジュール１０４は、インターフェース（Ｉ／Ｆ）回路１０６と、読み出し／書き込み／消去（Ｒ／Ｗ／Ｅ）チャネル１０８と、フラッシュメモリ配列１１０と、ローカル揮発性バッファ１１２と、不揮発性（ＮＶ）バッファ１１４と、を含む。
【００２０】
Ｉ／Ｆ回路１０６は、ホストとの主要インターフェース通信を提供して、コマンド、ステータス制御情報、およびデータを送受信する。Ｒ／Ｗ／Ｅチャネル１０８は、データをエンコーディングし、フラッシュメモリ配列１１０に書き込み、これから読み出すために、適切な行ドライバおよび列ドライバならびに他のデコーディング回路を含む。チャネル１０８は、コントローラ１０２の制御下で他の動作、ならびにゴミ収集、キャッシュ管理および検証動作などの動作を実施する。
【００２１】
ローカルバッファ１１２は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）または類似の構造の形態を取り得るが、フラッシュメモリ１１０と関連付けられたユーザデータおよびメタデータを記憶する。メタデータは、フラッシュメモリ１１０に記憶されて、必要に応じてローカルバッファ１１２に転送されて、様々なアクセス（読み出しおよび書き込み）動作をサポートする。
【００２２】
ＮＶバッファは、以下に検討するように、検証動作待ちの書き込みデータを、フラッシュメモリ１１０にコピーされているデータ上に一時的に記憶する。ＮＶバッファ１１２は書き換え可能であり、これで、データはバッファに書き込んで、次に、必要に応じて上書きされ得ることが企図される。
【００２３】
図３は、フラッシュメモリ配列１１０のフラッシュメモリセル１２０を示す。半導体基板１２４のドープ領域１２２は、ゲート構造１２６で橋渡しされるソース領域およびドレイン領域を形成する。ゲート構造は、介在するバリア層１３２および１３４によって分離されている浮遊ゲート（ＦＧ）１２８と制御ゲート（ＣＧ）１３０とを含む。データは、電荷が浮遊ゲート１２８上に蓄積されるのに関連してセル１２０に記憶される。
【００２４】
図４は、列１３６および行１３８に配置された複数のセル１２０を示す。各々の列１３６中のセル１２０は、ＮＡＮＤ構成に組み込まれて、分離したビットライン（ＢＬ）１４０によってアクセスされる。各々の行１３８に沿ったセル１２０は、関連付けられた行に沿った各々のセルの制御ゲート（ＣＧ）１３０を相互接続する分離したワードライン（ＷＬ）１４２に接続される。
【００２５】
セルは、ビットライン１４０およびワードライン１４２に適切な電圧を印加して、チャネルからそれぞれの浮遊ゲート１２８に電荷を移動させることによって、書き込み（プログラム）される。セル１２０の浮遊ゲート１２８上に電荷が存在することによって、このセルをドレイン・ソース導通状態にするために制御ゲート１３０に印加する必要がある、しきい値電圧が増加する。プログラムされた状態は、それぞれのビットライン１４０およびワードライン１４２に一連の電圧を印加して、セルが導通状態に転移するしきい値を検出することによって読み出される（感知される）。
【００２６】
累積された電荷を除去して、セル１２０を消去されていない、初期化された状態に復帰させるには、特殊な消去動作が必要である。図５は、図４で説明されるメモリセルから形成される消去ブロック１４４を示す。消去ブロック１４４は、一時に消去動作を受けることが可能なメモリセルの最小グループを表す。
【００２７】
データは、ページ１４６という様式で記憶される。消去ブロック１４４は、合計でＮページを有し、各々のページが、選択された量のデータ（例えば、４０９６ビットなど）を記憶する。ページ１４６は、行１３６のメモリセルに対応するが、単一レベルセル（ＳＬＣ）記録では、選択された行に沿った各々のセル１２０が、１ページ分のデータを記憶する。マルチレベルセル（ＭＬＣ）記録では、選択された行に沿った各々のセル１２０は、２ページ分（以上）のデータを記憶する。一般に、各々のセルは、２Ｎ個の明瞭な蓄積電荷レベルを提供することによって、最大でＮビットのデータを記憶することが可能である。
【００２８】
データは、通常は、最初に消去動作をセルに実施することなく、フラッシュメモリセル１２０のグループに上書きすることが可能であるため、選択された論理アドレス（例えば、論理ブロックアドレスＬＢＡなど）と関連付けられた各々のデータ集合は、通常は、配列中の新たな位置に書き込まれる。例えば、ＬＢＡＸと確認されたデータブロックは、図５のページ１に書き込まれ得る。データブロックＬＢＡＸの次いで提示されたバージョンが、書き込み目的で提供された場合、それは、新たな位置（例えば、ページ３など）に書き込まれ得る。一般に、配列１１０中の次の利用可能な位置が選択されて、所与のＬＢＡの各々の新たなバージョンを書き込む。次に利用可能な位置は同じ消去ブロック１４４にあり得るが、より最近に割り当てられた消去ブロック１４４である可能性の方が高い。
【００２９】
メタデータは、デバイス１００によって維持されて、各々のＬＢＡの様々なバージョンの位置を追跡する。メタデータは、各々のＬＢＡの最も現行のバージョンの位置を管理するために、一連の前向きポインタを含む。先行するバージョンは、陳腐であると印付けされ得る。消去ブロック中でまたは多くのこのようなブロックで成り立っているより規模の大きいガーベージコレクションユニット（ＧＣＵ：Ｇａｒｂａｇｅ  Ｃｏｌｌｅｃｔｉｏｎ  Ｕｎｉｔ）中で十分なレベルのデータが陳腐であると、消去ブロックまたはＧＣＵは、ガーベージコレクションプロセスを受け、これによって、現行バージョンのデータは新たな位置に移動され、消去ブロックまたはＧＣＵは消去され、そして消去ブロックまたはＧＣＵは、ユーザデータを記憶する際の次の使用のための位置付け待ちの割り当てプールに戻される。
【００３０】
上記したように、図２のＮＶバッファ１１４を用いて、配列１１０中の１つ以上のページ１４６に書き込まれる入力済み書き込みデータを一時的に格納する。必須ではないが、ＮＶバッファ１１４は、異なったタイプのソリッドステート不揮発性メモリセル構造を用いることが企図される。このようなしかしこれに限られないが、図６〜８に示すようなさまざまな構造を用いることが可能である。
【００３１】
図６は、スピントルク転送ランダムアクセスメモリ（ＳＴＲＡＭ）構造を有するメモリセル１５０を示す。このメモリセルは、切り替えデバイス１５４と直列の磁気トンネル接合（ＭＴＪ）１５２を含む。切り替えデバイス１４３は、金属酸化物半導体電界効果トランジスタ（ＭＯＳＦＥＴ）を構成しているところが示されているが、ダイオードなどの単方向性デバイスを含む他の様式の切り替えデバイスを用いることも可能である。
【００３２】
ＭＴＪ１５２は、頂部および底部の導電性電極１５６および１５８と、フリー層１６０と、基準層１６２と、介在するバリア層１６４と、を含む。他のＭＴＪ構成を用いることが可能である。フリー層１６０は、変動磁気配向性を持つ磁気応答性材料の層を１つ以上含む。基準層は、固定磁気配向性を持つ磁気応答性材料の層を１つ以上含む。基準層は、永久磁石や合成反強磁性（ＳＡＦ）層などのピニング層と、ピニング層によって磁気的に配向された強磁性層などのピン止め層と、を含み得る。磁気配向の方向（複数可）は、ＭＴＪ１５２中の電流に対して直行または並行であり得る。
【００３３】
ＭＴＪは、基準層１６２を基準としたフリー層１６０の配向に関連して様々な電気抵抗を示す。フリー層１６０が基準層１６２と同じ方向に配向されている並行配向では、比較的低い抵抗となる。フリー層１６０が基準層１６２と反対方向に配向されている反並行配向では、比較的高い抵抗となる。スピントルク電流を印加して、フリー層を並行配向と反平行配向との間で転移させることが可能である。
【００３４】
メモリセル１５０は、ビットライン（ＢＬ）１６６、ソースライン（ＳＬ）１６７およびワードライン（ＷＬ）１６８を含む複数の制御ラインによって相互接続される。ワードライン１６８は、選択ラインとして動作して、ビットライン１６６とソースライン１６７との間で電流がＭＴＪ１５２の中を通過することを可能とする。
【００３５】
図７は、抵抗ランダムアクセスメモリ（ＲＲＡＭ）セル１７０を提供する。セル１７０は、図６の切り替えデバイス１５４と組み合わされたＲＲＡＭプログラム可能素子１７２を含む。頂部と底部の導電性電極１７４および１７６は、酸化物層または電解層を構成し得る介在層を分離する。介在層１７８は、通常は、比嘉有的高い電気抵抗を有する。
【００３６】
プログラミング動作中、イオン移動が始動され、この結果、ＲＲＡＭ素子１７２中の電気抵抗を下げるフィラメント１７９が形成される。フィラメント１７９は、プログラミング電流のシーケンスをそれぞれワードライン１６６、ビットライン１６７およびソースライン１６８に印加することによって形成される。ＲＲＡＭセル１７０は、このセルに異なった組み合わせの電圧を印加することによってその初期状態にリセットすることが可能である。素子１８２の抵抗の変化を制御することになる、バリアを横切ってまたは中間構造にイオンもしくはホールを移動させることによって状態変化する構造などの、必ずしも導電性フィラメントを形成しない他のＲＲＡＭ構成が企図される。
【００３７】
図８は、相変化ランダムアクセスメモリ（ＰＣＲＡＭ）セル１８０を示す。以前と同様に、セル１８０は、図６〜７の切り替えデバイス１５４と直列のプログラム可能素子１８２を有する。頂部と底部の電極１８４および１８６は、相変化材料１８８を分離する。相変化材料は、熱応答性であり、そのガラス転移温度以上の温度に熱せられると転移する（融解する）。層１８８が次いで冷却される速度に依存して、この材料の少なくとも一部が不定形状態または結晶状態を取り得るが、それぞれ高抵抗と低抵抗となる。図８に、セル１８０が高抵抗状態にプログラムされたことを示す不定形ゾーン１８９を示す。
【００３８】
図６〜８に例示するものとは別に、他の形態の不揮発性ソリッドステートメモリセルを利用可能であることが理解されるであろう。図９は、デバイス１５４などの切り替えデバイスと組み合わされた、図６〜８の素子１５２、１７２および１８２のうちの選択された１つに対応し得る、各々が抵抗感知素子（ＲＳＥ）１９２を有するＮＶメモリセル１９０の一般的な用途を示す。これらセルは、行および列に配置されて、上記のビットライン、ソースラインおよびワードライン１６６、１６７および１６８を介して相互接続される。
【００３９】
必須ではないが、図２のＮＶバッファ１１４は、図９に示すような構造をとることが企図される。ＮＶバッファ１１４は、本来書き換え可能であって、これで、各々のワードライン１６８に沿った各々のセル集合が、メインフラッシュメモリ１１０に対する転送待ちのデータを記憶するように配置され、次に、消去動作をメモリに実施することなく新たなデータで上書きされることが可能となっている。
【００４０】
ＮＶバッファ１１４は、フラッシュメモリ１１０より高速のデータＩ／Ｏ速度を有し、したがって、データを、必要に応じてＮＶバッファ１１４に迅速に書き込んだりこれから読み出したりして、フラッシュメモリとのアクセス動作をサポートすることが可能である。ＮＶバッファ１１４は、内容参照可能メモリ（ＣＡＭ：Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）または類似の構造の形態で配置され得る。図１０は、ＮＶバッファ１１４に対する例示のＣＡＭ構造を示す。このＣＡＭ構造は、最大でＮ個のエントリ１９４を記憶することが可能である。各々のエントリは、タグフィールド１９６中の識別子タグと、ワードフィールド１９８中のワードペイロードを含む。識別子タグは、ＬＢＡアドレスで、ワードペイロードは、ＬＢＡアドレスを関連付けられた対応するページデータであり得る。
【００４１】
図１１は、本開示のデータ書き込み管理回路２００の態様を示す。回路２００は、検証動作および他の関連動作を実施するために、上述のメモリモジュール１０４の様々な態様に組み込むことが可能である。本開示の目的のために、書き込みデータのある集合が、メインフラッシュメモリ配列１１０に対する書き込み目的で、ホストからデバイス１００に提示されることが企図される。この書き込みデータには、選択された論理アドレス、例えば、ＬＢＡ１００１が与えられる。実際には、多くのＬＢＡ分のデータをフラッシュメモリに書き込むことを伴う１つの書き込み要求（書き込みコマンド）を発行することが可能であることが理解されるであろう。
【００４２】
図１１に示すように、ホストから受信された書き込みデータは、ＮＶバッファ１１４の利用可能なエントリ１９４（図１０）に一時的に記憶され、この入力された書き込みデータのコピーが、フラッシュメモリ配列１１０の次の利用可能なページ１４６（図５）に書き込まれる。これらのステップは、上述したように実施されるが、ＬＢＡ番号（１００１）を、関連付けられたエントリに対するフィールド１９６中のタグエントリおよびワードフィールド１９８中のユーザデータとして用いることを含む。エンコーディングは、書き込みデータをＮＶバッファ１１４にロードすることに先立ってまたはこれに次いで適用される。データをフラッシュメモリ配列１１０に書き込むことは、メタデータを参照して、このデータが書き込まれる物理アドレス（例えば、ページなど）を特定し、また、適切なエンコーディングもしくは他の処理をデータに適用してデータを記憶することを含む。データは、セルの関連付けられた浮遊ゲート１２８上の蓄積された電荷量に関連してフラッシュメモリセルの選択された行１３８に記憶される。
【００４３】
一旦データが書き込まれると、タイマー回路が所定の経過時間間隔にわたってカウントを始動させる。この間隔の長さは、任意の適当な値でよく、また、数秒（例えば、３〜５秒など）台または以上であり得る。データの優先レベルが異なれば異なる他の持続時間を選択することも可能である。この持続時間(複数可)はさらに、デバイス１００の動作負荷に基づいて、動作中に順応して変化させることが可能である。データ管理回路２００はさらに、検証動作を、経過時間間隔の終了時に実施されるように予定する。
【００４４】
一部の実施形態では、経過時間の経過という点での間隔の長さは、メインメモリ（例えば、フラッシュ１１０）の緩和時間を超えるように選択することが可能である。データをフラッシュメモリに書き込むことは、電荷をメモリの不祇王ゲート構造に転送することを伴い、また、電荷の転送の完了時には、フラッシュのセルが最終的な蓄積電荷状態に安定化する比較的短い持続時間が存在することが認識される。この時間間隔は、電流を生成するフラッシュメモリセルでは約３０秒以上であるが、本明細書では緩和時間と呼ばれる。他のメモリセル構造では、関連する緩和時間が異なり得る。経過時間間隔の持続時間を、緩和時間を超えるように選択することによって、検証動作を、セルの最終プログラム状態が安定した後のある時点で実施することが可能である。
【００４５】
他の実施形態では、タイマー回路は、アクセスコマンド（例えば、読み出しコマンドおよび／または書き込みコマンド）を、時間経過ではなく分量でカウントすることが可能である。言い換えれば、所定の時間間隔を、ホストデバイスからの受信されたＸ個のアクセスコマンドで定義され、これで、検証動作が、Ｘ個のコマンドが受信される（場合によっては、提供される）までは実施されないようにし得る。Ｘという個数は、１０、２０、５０などの任意の２以上の整数でよい。この場合では時間間隔中に経過した実際の経過時間値は、作業負荷に基づいて変動する、すなわち、比較的多くのＩ／Ｏアクセスコマンドが提供される作業負荷が高い環境では、時間間隔中に経過した時間の実際の合計値は、Ｉ／Ｏアクセスコマンドの数が比較的少ない低作業負荷環境でよりも小さいことが理解されよう。
【００４６】
この時間間隔中、デバイス１００は、通常の動作モードで動作し、必要に応じて、追加のアクセス要求を提供する。一旦タイマー回路２０２が、経過時間間隔の終了を告げると、予定されている検証動作が（以下の説明する場合を除き）開始される。Ｒ／Ｗ／Ｅチャネル１０８は、時間間隔の開始時に書き込まれたフラッシュメモリ配列１１０から書き込みデータを読み返す。この読み返されたデータは、所望しだいで、ＮＶバッファを含むローカルバッファ１１２または他のいずれかの適当な位置に一時的に記憶される。書き込み動作中にこのデータに対してエンコーディングを適用すると、適当なデコーディング（例えば、エラー検出と補正など）を適用し、これで、データが、ＮＶバッファ１１４中に未だ待機中の書き込みデータと名目上同じ状態となるようにする。
【００４７】
比較回路２０４は、排他的論理和（ＸＯＲ）演算を含む任意の数の周知の技法を用いて、ＮＶバッファ１１４中のオリジナルの書き込みデータを、読み返されたデータと比較する。
【００４８】
検証動作の結果次第の、また、経過時間間隔中にさらなる事象が発生したか否かによる多くの様々な処理経路を、図１１に示す。
【００４９】
比較回路２０４が、これら２つのデータ集合が一致すると判定すると、書き込み動作は成功したと検証され、この後、ステップ２０６に示すように、書き込みデータは、ＮＶバッファ１１２から除去（廃棄）される。ＮＶバッファ１１２中に利用可能なキャッシュライン１９４が存在すれば、データは、必ずしも即座に除去されたり上書きされたりすることはなく、むしろ、新たなデータを収容するためにキャッシュラインが次いで必要とされたときに選択されて上書きされ得ることが理解されるであろう。書き込みデータをＮＶバッファに残すことによって、実質的に処理経費が追加されることはなく、当座の間、後続の読み出しキャッシュヒットを可能とし得る。
【００５０】
比較回路２０４が、これら２つのデータ集合が一致しないと判定すると、エラーが発生したと推定され、ステップ２０８に示すように、補正動作を取る。補正動作には、データをフラッシュメモリ配列１１０中の新たな位置に再書き込みすることと、上記のステップを繰り返すことを含む。この失敗は、フラッシュメモリの欠陥または他の異常状態であり得るため、他のステップも取り得る。例えば、データが書き込まれる位置の割り当てを解除するなどの可能性を評価し得る。
【００５１】
図１１は、ＮＶバッファ１１４（例えば、ＬＢＡ１００１）に記憶されている書き込みデータに対して、ホストデバイスからの読み出し要求がデバイス１００によって受信された状況を示す、追加の処理経路２１０を示す。そうである場合、書き込みデータのコピーが、経路２１１で示すように、ＮＶバッファからの読み返しデータとして出力される。これが、キャッシュヒットとなる。
【００５２】
このデータに対して読み出し要求が即座に受信されたという事実によってさらに、このデータが「ホットな」データ、すなわち、ホストが現在比較的高いレベルの興味を示しているデータとして分類されることになる。したがって、ＬＢＡ１００１に対するこのホットな書き込みデータは、後続のキャッシュヒットを予期して、ＮＶバッファ１１４中に維持される。理解されるように、キャッシュヒットは、一般的に、好ましいとされるが、それは、関連の読み出し要求が、フラッシュメモリ配列１１０からデータを読み出す必要なく満足させることが可能であり、これによって、時間およびシステム資源の節約になるからである。
【００５３】
ＬＢＡ１００１に対する書き込みデータに空間的にまたは時間的に関連する他のデータを規定された読み出し動作としてＮＶバッファ１１４に移動させて、潜在的なキャッシュヒットさらにサポートするなどの他のステップをこの時点で取り得る。空間的に（空間）関連したデータは、ＬＢＡシーケンス中の近接したＬＢＡ（例えば、ＬＢＡ１００２、１００３など）であり得る。時間的に（時間）関連したデータは、ＬＢＡ１００１とほぼ同じ時間に書き込まれたＬＢＡであり得る。
【００５４】
図１２は、データ管理回路２００によって実施され得る関連の動作シーケンスを示す。上記と同様に、ＬＢＡ１００１に対する書き込みデータが、ホストから受信され、ＮＶバッファ１１４に記憶され、メインフラッシュメモリ配列１１０にコピーされる。この時点で、タイマー回路２０２が、経過時間間隔をカウントし始めて、一旦時間間隔が完了したら、検証動作が、発生するように予定する。
【００５５】
しかしながら、経過時間間隔の完了に先立って、経路２１４に示すように、ＬＢＡ１００１と関連するデータに対して新たな書き込み要求がホストから受信される。この時点で、回路２００は、この新たな書き込みデータが、ＮＶバッファ中の既存の書き込みデータと異なるかどうか判定する。比較回路２０４は、これら２つのデータ集合を、図１１で上述した比較と類似の仕方で比較する。多くの様々な可能な処理経路を取り得る。
【００５６】
ステップ２１６に示すように、２つのデータ集合が一致すれば、ホストデバイスは、単に、同じデータに対して別の書き込み要求を提供したことになり、新たなデータは無視することが可能である。重複した同じデータ集合を書き込むこと（書き込み増幅）を回避することによって、時間およびシステム資源を有利に軽減することが可能であり、また、損耗を軽減することが可能である。
【００５７】
２つのデータ集合が一致しなければ、ステップ２１８で示すように、ＬＢＡ１００１に対するより古いバージョンの書き込みデータが、ＮＶバッファ１１４から排気され、タイマー回路のカウントダウンが中止され、検証動作が中止される。この後、ＬＢＡ１００１に対する新たな書き込みデータ集合（新たな時間間隔および予定の検証動作を含む）が、上述したように処理される。
【００５８】
追加の処理が、ステップ２２０で適用され得る。比較的短い時間期間で複数の書き込み要求がホストから受信されたため、データは以前と同様に「ホットな」データとして分類することが可能である。この場合、次いで受信されたホットな書き込みデータ集合が、ハッシュおよび／または高速（略式）書き込みを用いて処理され得る。
【００５９】
ハッシュ生成器２２２を図１３に示す。一般に、ハッシュ生成器２２２は、ハッシュ関数を用いて、入力データ集合からハッシュ値の集合を生成する。ハッシュ関数は、選択された長さの第１のデータ集合（「鍵」）を選択された長さの第２のデータ集合（「ハッシュ値」）にマッピングする任意の数の様々なタイプのアルゴリズムとして特徴付けることが可能である。多くの場合、第２のデータ集合は、第１のデータ集合より短い。ハッシュ生成器２２２によって用いられるハッシュ関数は、変形的で、指示的に透明で、耐衝突性であるべきである。
【００６０】
変形は、入力値（鍵）の内容が、出力ハッシュ値を通り一遍で検査しても再生不可能であるように、ハッシュ関数によって入力値を変更することに関連する。指示的透明性とは、同じ入力値が提示される毎に同じ出力ハッシュ値が生成されるような、ハッシュ関数の特徴である。耐衝突性とは、互いに異なったビット値を有する２つの入力が同じ出力ハッシュ値に対してはマッピングしない範囲を示す特徴である。ハッシュ生成器２２２によって用いられる１つまたは複数のハッシュ関数は、チェックサム、チェックディジット、指紋、暗号関数、パリティ値などを含む、任意の数の様式を取ることが可能である。
【００６１】
一部の実施形態では、ＳＨＡ２５６ハッシュなどのＳＨＡシリーズハッシュ関数が、適用される。ＳＨＡハッシュ値の最下位ビットなどのＳＨＡ２５６ハッシュの選択されたビットもまた、ハッシュ値として使用することが可能である。
【００６２】
ハッシュ生成器２２２は、システムによって要求されたようにハッシュ値を生成するように構成することが可能である。図１３に示すように、図１２の更新済み書き込みデータを次いで書き込む間に、ハッシュ値が生成されて、更新済み書き込みデータのコピーと共にフラッシュメインメモリ１１０に記憶される。後続の検証動作の間に、図１１で上述したように、比較がなされる。しかしながら、完了した入力済み書き込みデータと読み返されたデータとを比較する替りに、関連のハッシュ値が比較回路２０４によって比較される。このようにして、十分な比較を実施して、データがフラッシュメモリ配列１１０に成功裏に書き込まれたことを検証する。
【００６３】
ハッシュ値は更に、書き込み拒否処理の間に、図１４に示すように書き込み増幅を軽減するために用いることが可能である。図１４では、選択されたＬＢＡ（すなわちＬＢＡ１００１）に対する新たなバージョンの書き込みデータが、フラッシュメモリ配列１１０に書き込むために受信され、ＮＶバッファ１１４に一時的に格納される。メタデータデコード回路２２４は、フラッシュメモリ配列１１０に記憶されているこのメタデータにアクセスして、選択されたＬＢＡに対する以前に記憶されたデータの位置を特定し、この以前に記憶された（古い）ハッシュ値を返送する。
【００６４】
ハッシュ生成器２２２は、入力された書き込みデータに対する新たなハッシュ値を生成し、比較回路２０４は、この新たなハッシュ値を古いハッシュ値と比較する。これらハッシュ値が一致すれば、この新たなバージョンの書き込みデータが単に既存のデータのコピーである統計的にかなりの確率が存在する。この時点で、新たな書き込みデータは、同じデータの新たな重複したコピーを記憶する必要はないため、以前と同様に廃棄され得る。更なる保証レベルが書き込み拒否プロセス中に必要とされる場合には、図１１で上述したように、以前に記憶されたデータを回収して、ＸＯＲ関数または類似のものを用いて完全なビット毎の比較を実施することによって、この動作を継続することが可能である。
【００６５】
ホット書き込みデータ（検証動作の未遂中に書き込み要求が受信されたデータ）に対するハッシュ値を実現することによって、重複データの高速拒否が実施可能となり、書き込み増幅を軽減することが可能である。
【００６６】
図１５は、後続の書き込み動作中にホット書き込みデータに対してさらに実現可能である、略式書き込みの用途を示す。図１５に示すように、Ｒ／Ｗ／Ｅ回路１０８は、経路２２８を介しての高速（略式）書き込み選択信号と、経路２３０を介しての低速（通常）書き込み選択信号とを含む、多くの入力を受信するように適合された制御回路２２６を含む。これらの信号は、必要に応じて、データ管理回路２００によって生成されて出力されることが可能である。デフォルトの設定は、低速（通常）書き込みプロセスである。
【００６７】
回路１０８はさらに、チャージポンプ回路２３２およびプログラム検証回路２３４を含むことが図１５に示されている。これらの回路２３２および２３４は、制御回路２２６の制御下にある。チャージポンプ回路２３２は、一般に、電荷の分量を、プログラム中の関連のフラッシュメモリセル１２０に転送するように動作する。プログラム検証回路２３４は、読み出し検証しきい値を定期的に印加して、セル１２０の浮遊ゲート１２８（図３）に蓄積されている電荷の総量を査定する。
【００６８】
低速（通常）書き込み選択モードにおいては、回路２３２および２３４は、通常の方法で動作して、電荷をフラッシュメモリセルに印加する。一部の場合には、これは、電圧源からキャパシタなどの記憶デバイスに蓄積することと、関連するビットラインおよびワードライン（図４）を介して電荷をフラッシュメモリセルに転送して、浮遊ゲート上の蓄積された電荷の量を徐々に増加させることを含み得る。プログラム検証回路は、各々の電荷転送動作の終了時に動作して、セル１２０による蓄積電荷の総量を査定する。最初に、しきい値などの通常のプロセスパラメータの集合を適用して、プログラムされたセル上の電荷の総量が選択された範囲内に収まることを保証するようにし得る。
【００６９】
高速（略式）書き込み選択モードにおいては、回路２３２および２３４は、高速で、制御の度合いが低いことを除いて、上記の通りに動作する。精度を犠牲にして、プログラミングプロセスを高速化するために、多くの技法を応用することが可能である。チャージポンプ回路は、例えば、通常動作中よりも各々の転送中により多くの電荷量を転送するように構成することが可能であるおよび／またはプログラム検証回路２３４によって評価される以前により多くの電荷集合を連続して転送することが可能である。
【００７０】
そのうえ、プログラム検証回路２３４は、プログラミング動作が完了したかどうかを判断するときに、緩和パラメータしきい値の第２の集合を用い得る。略式書き込みプロセスは、通常の書き込みプロセスより高速で、しかも潜在的に全体的な少ない消費電力で、データを書き込む傾向があるが、最終的にプログラムされたセルは、通常プロセスを用いてプログラムされた同じセルと比較してより大きい電荷分布変動を示す傾向があることが企図される。
【００７１】
ホット書き込みデータに対して略式書き込みを用いる１つの根拠は、フラッシュメモリ配列１１０中でのデータの持続時間は通常データのそれよりかなり短いであろうとする予測であることが理解されるであろう。したがって、本システムは、より大きい電荷分布変動を持つデータの短期間記憶を許容することが可能である。
【００７２】
図１６は、書き込みデータの処理中に前述の説明に従ってデバイス１００によって実施され得るステップを概略して示すデータ書き込みルーチン３００を示す。上述したＬＢＡ１００１に対する書き込みデータなどの書き込みデータは、ステップ３０２で、ホストデバイスから、書き込み要求（コマンド）と共に受信される。入力された書き込みデータは、ステップ３０４で、１１４などの書き換え可能な不揮発性（ＮＶ）バッファに記憶される。ライトバック処理を用いて、データがこの時点で成功裏に書き込まれたことをホストに報知されるようにし得る。
【００７３】
このルーチンはステップ３０６に進み、ここで、書き込みデータは、ＮＶバッファからフラッシュメモリ配列１１０などのＮＶメインメモリにコピーされる。２０２などのタイマー回路は、ステップ３０８で始動されて、所定の経過時間間隔を開始する。タイマー回路はカウンターとして動作して、事前選択された時間量の経過を測定し得ることに気付くであろう。代替例では、タイマー回路は、ホストからデバイスが受信した介在するアクセスコマンドをカウントし、一旦所定のＸ個のアクセスコマンド（例えばＸ＝１０など）が受信されると（さらに、所望しだいでは処理されると）時間間隔を終了し得る。ステップ３０６で書き込まれたデータに対して、検証動作がステップ３１０で予定されるが、この検証動作は、一旦経過時間間隔が終了すると暫定的に発生することになる。
【００７４】
本ルーチンの次のプロセスは、もしあれば、経過時間間隔の途中で発生する。判定ステップ３１２では、書き込みデータ（例えば、ＬＢＡ１００１）に対する読み出し要求が受信されたかどうか問い合わせる。そうであれば、本プロセスはステップ３１４に進み、ここで、読み出し要求はＮＶバッファからのキャッシュヒットとして満足されて、書き込みデータは、さらなる処理のためにホットデータとして示される。このプロセスのこの時点でまたは後で、空間的または時間的に隣接しているデータが、将来のキャッシュヒットのためにＮＶバッファに移動され得る。そのうえ、キャッシュ保持方針を実施して、検証動作が成功裏に終了したあとで、データがＮＶバッファ１１４中に残るようにし得る。
【００７５】
このルーチンに続いて、本フローは判定ステップ３１６に進み、ここで、書き込み要求が時間間隔中に受信されたかどうか問い合わせされる。そうであれば、本ルーチンはステップ３１８に進み、ここで、新たな書き込み要求が同じデータ（例えば、ＬＢＡ１００１）に対するものであるか、または新たな書き込み要求が、異なったデータ集合に対するものであるかを判定する。後者の場合、本ルーチンは、ステップ３０６に戻り、新たなデータ集合が書き込まれて、新たな経過時間間隔がこの新たなデータに対して始動される。タイミング回路２０２は、任意の数のデータ集合に対して、任意の数の互いに異なった、そして重なり合った経過時間間隔を同時並行に管理することが可能であることが企図される。
【００７６】
新たな書き込みデータが処理待ちの書き込みデータと同じ論理アドレスを有している（例えば、双方ともがＬＢＡ１００１に対するデータである）場合、本ルーチンは、ステップ３１８からステップ３２０に進み、ここで、それぞれのデータ集合が比較される。これは、図１２で上述した。これら２つのデータ集合が判定ステップ２２２で一致すれば、ステップ３２４で新たなデータは不必要であるとして放棄することが可能である。
【００７７】
これら書き込みデータの集合が一致しなければ、新たな書き込みデータ集合は更新されたデータ、すなわち最も現行のバージョンのデータであり、古いデータ集合は今では陳腐であり、古いバージョンのデータであると推定される。このような場合、古いデータに対して書き込み検証を実施する更なる必要はない。本ルーチンはステップ３２６に進み、ここで、現行の時間間隔は中止され、予定されているステップ３１０からの検証動作は中止され、新たな書き込みデータはホットデータと示される。これには、図１３〜１５に上述したように、関連のＬＢＡ（複数可）に対する後続の書き込み動作に対してハッシュ値および／または略式書き込みの使用が伴う。
【００７８】
一方、経過時間間隔が経過し続けても、読み出し要求（ステップ３１２）も書き込み要求（３１６）も受信されない場合、本ルーチンは、判定ステップ３２８に進み、ここで、経過時間間隔が終了したかどうか判定される。そうでなければ、本ルーチンは戻って、必要に応じて、受信されたあらゆる読み出し要求および／書き込み要求を処理する。
【００７９】
いずれかの時点で、経過時間間隔が終了するが、このときに、本プロセスはステップ３２８からステップ３３０に進み、ここで、図１１で概説したように、予定された検証ステップが実施される。書き込み検証が成功である場合、それまでに読み出し要求が受信されていなければ、書き込みデータは、ＮＶバッファから排気され得る。次に、本プロセスはステップ３３２で終了するが、処理待ちの複数の書き込みデータ集合が、図１６のフローを同時並行に受け、それに応じて処理されることが理解されよう。
【００８０】
ここで、本明細書に提示された様々な実施形態が多くの恩典を提供することが可能であることが理解されるであろう。入力された書き込みデータを一時的に格納するためにＮＶバッファを用いることによって、停電または他の異常な事象の際にデータ損失を軽減する助けとなり得る。書き込み検証プロセスを遅延させるためにタイマーを用いることによって、本システムは、検証動作をより便利な時点に予定しまた、介在する読み出し要求および／または書き込み要求に基づいてデータの相対的なステータス（例えば、データがホットな読み出しデータおよび／またはホットな書き込みデータとして見られているか）を判定することが可能となる。実際、この遅延によって、所与の論理アドレスに対する更新済のデータが時間間隔中に受信された場合に、不必要な検証動作を実施しないで済む。
【００８１】
あるデータをホットデータ（ホット読み出しデータであるか、ホット書き込みデータであるか）として示すことによって更に、規定された読み出しプルや、ハッシュ値の使用や、高速（略式）書き込みなどの適切なキャッシング方針および書き込み戦略を実現することが可能となる。書き込み増幅を軽減することが可能であるが、これによって、効果的なデータＩ／Ｏ速度を増して、ＮＶメインメモリの摩耗を軽減し易くなる。
【００８２】
必ずしも制限的ではないが、ＲＲＡＭ、ＳＴＲＡＭ、ＰＣＲＡＭなどの書き換え可能ＮＶバッファは、消去可能フラッシュメモリなどの異なった構造から成るＮＶメインメモリの動作性能を有利に拡大することが可能であることが企図される。他のタイプのバッファおよびメインメモリを用いることが可能である。
【００８３】
本開示の様々な実施形態の多くの特徴および利点を、構造および機能の詳細とともに、前述の記述中で説明した。それでも、この詳細な説明は、単に例示目的であり、特に、本開示の原理内で部分の構造及び配置という点で、添付の請求項が表現される用語の広い一般的な意味で示される全範囲に対して、詳細にわたって変更を加え得る。
【符号の説明】
【００８４】
１００  データ記憶デバイス、１０２  コントローラ、１０４  メモリモジュール、１０６  Ｉ／Ｆ、１０８  Ｒ／Ｗ／Ｅチャネル、１１０  フラッシュメモリ、１１０  ＮＶバッファ、１１２  ローカルバッファ。
【図１】
2014154168.tif 000003
【図２】
2014154168.tif 000004
【図３】
2014154168.tif 000005
【図４】
2014154168.tif 000006
【図５】
2014154168.tif 000007
【図６】
2014154168.tif 000008
【図７】
2014154168.tif 000009
【図８】
2014154168.tif 000010
【図９】
2014154168.tif 000011
【図１０】
2014154168.tif 000012
【図１１】
2014154168.tif 000013
【図１２】
2014154168.tif 000014
【図１３】
2014154168.tif 000015
【図１４】
2014154168.tif 000016
【図１５】
2014154168.tif 000017
【図１６】
2014154168.tif 000018
【手続補正書】
【提出日】平成26年4月28日(2014.4.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
入力済み書き込みデータであって、関連付けられた論理アドレスを有する、入力済み書き込みデータを不揮発性（ＮＶ）バッファに記憶することと、
前記記憶された入力済み書き込みデータを前記ＮＶバッファ中に保持しながらも、前記入力済み書き込みデータのコピーを、ＮＶメインメモリに転送することと、
所定の経過時間の終了時に検証動作を実施して、前記入力済み書き込みデータの前記コピーの前記ＮＶメインメモリに対する転送の成功を検証することと、
を含む、方法。
【請求項２】
前記ＮＶバッファが、書き換え可能なソリッドステートメモリであり、前記ＮＶメインメモリが、消去可能なソリッドステートメモリである、請求項１に記載の方法。
【請求項３】
前記書き換え可能なソリッドステートメモリが、スピントルクランダムアクセスメモリ（ＳＴＲＡＭ）、抵抗ランダムアクセスメモリ（ＲＲＡＭ）、または相変化ランダムアクセスメモリ（ＰＣＲＡＭ）のうちから選択されるものであり、前記消去可能なソリッドステートメモリが、フラッシュメモリである、請求項２に記載の方法。
【請求項４】
前記実施するステップの前記書き込み動作が、前記ＮＶバッファ中の前記入力済み書き込みデータと関連付けられた介在する書き込み要求が不在であることに応答して実施され、前記ＮＶバッファ中の前記入力済み書き込みデータと関連付けられた介在する書き込み要求が存在することに応答して、前記検証動作が実施されない、請求項１に記載の方法。
【請求項５】
前記経過時間間隔中で、かつ前記検証動作以前、に受信された読み出し要求に応答して前記ＮＶバッファからホストデバイスに対して前記入力済みの書き込みデータのコピーを転送することと、キャッシュ保持方針の変更を実施して、前記検証動作が成功裏に終了したあとで、前記ＮＶバッファ中に前記入力済み書き込みデータを保持することと、を更に含む、請求項１に記載の方法。
【請求項６】
思惑的なデータプルとしての前記読み出し要求に応答して、前記入力済みの書き込みデータと空間的および／または時間的に関連するデータの第２の集合を、前記ＮＶバッファに転送すること、を更に含む、請求項５に記載の方法。
【請求項７】
前記所定の経過時間間隔の終了に先立って、前記ＮＶバッファ中の前記入力済みの書き込みデータとは異なる前記関連付けられた論理アドレスを有する入力済み書き込みデータの第２の集合を受信することと、前記第２の入力済み書き込みデータ集合の記憶すること、転送すること、開始することおよび実施することを繰り返すステップと、を更に含み、
前記検証動作が、前記ＮＶバッファ中の前記入力済み書き込みデータに対しては実施されない、請求項１に記載の方法。
【請求項８】
前記入力済み書き込みデータに応答して、選択されたハッシュ関数を用いてハッシュ値を生成することと、前記ハッシュ値を前記ＮＶメインメモリ中に記憶することと、前記関連付けられた論理アドレスを共有する入力済み書き込みデータの第２の集合の受信を伴う後続の書き込み拒否プロセス中に、前記記憶されたハッシュ値を用いることと、を更に含む、請求項１に記載の方法。
【請求項９】
前記入力済み書き込みデータを、前記関連付けられた論理アドレスを共有する入力済み書き込みデータの集合の受信の頻度に応答して、略式書き込みプロセスを用いて、書き込むこと、をさらに含む、請求項１に記載の方法。
【請求項１０】
タイマーを開始して、所定の経過時間間隔を、経過時間の事前選択された値で示すこと、を更に含む、請求項１に記載の方法。
【請求項１１】
前記事前選択された経過時間値が、不揮発性メインメモリと関連付けられたリラックス時間を超えるように選択される、請求項１０に記載の方法。
【請求項１２】
前記タイマーが、ホストデバイスからＸ個のアクセスコマンドの受信に応答して前記所定の経過時間間隔を終了し、Ｘが２以上の整数である、請求項１０に記載の方法。
【請求項１３】
選択された論理アドレスを有する入力済み書き込みデータを記憶するように適合される不揮発性（ＮＶ）バッファと、
前記記憶された入力済み書き込みデータを前記ＮＶバッファに保持しながらも、前記入力済み書き込みデータのコピーをＮＶメインメモリに転送するように適合される書き込み回路と、
所定の経過時間間隔の終了時に検証動作を実施して、前記入力済み書き込みデータの前記コピーの前記ＮＶメインメモリに対する転送の成功を検証するように適合される検証回路と、
を備える、装置。
【請求項１４】
前記選択された論理アドレスを有する更新された入力済み書き込みデータの、前記経過時間間隔中での受信に応答して、前記検証回路が前記検証動作を中止し、前記更新された入力済み書き込みデータを前記ＮＶバッファが記憶し、前記更新された入力済み書き込みデータのコピーを前記書き込み回路が前記ＮＶメインメモリに転送する、請求項１３に記載の装置。
【請求項１５】
前記更新された入力済み書き込みデータに応答して、ハッシュ値を生成するハッシュ生成器をさらに備え、前記書き込み回路が、前記生成されたハッシュ値を前記ＮＶメインメモリに記憶する、請求項１４に記載の装置。
【請求項１６】
前記検証回路が、前記ＮＶメインメモリ中の前記生成されたハッシュ値と、前記ＮＶバッファ中の前記更新された入力済み書き込みデータに応答して生成された第２の生成されたハッシュ値との比較に応答して、前記更新された入力済み書き込みデータに対して検証動作を実施する、請求項１５に記載の装置。
【請求項１７】
読み出し回路をさらに備え、
前記読み出し回路は、前記選択された論理アドレスを有するデータを要求する読み出し要求の受信に応答して、前記入力済み書き込みデータのコピーを前記ＮＶバッファからホストに対して出力目的で転送し、キャッシュ保持方針を実施して、前記検証動作の成功裏の終了後に、前記入力済み書き込みデータを前記ＮＶバッファ中に保持する、請求項１３に記載の装置。
。
【請求項１８】
前記ＮＶメインメモリが、複数のフラッシュメモリセルを含むフラッシュメモリを備え、前記書き込み回路が更に、前記入力済み書き込みデータの前記コピーを、前記フラッシュメモリセルの選択された集合に、蓄積された電荷を前記フラッシュメモリセルの前記選択された集合の浮遊ゲート構造上に格納することによって記憶するチャージポンプを備える、請求項１３に記載の装置。
【請求項１９】
前記チャージポンプが、高速で略式の書き込みプロセスに従って、かつ、低速で正常な書き込みプロセスに従って、前記蓄積された電荷を選択的に格納するように適合され、前記チャージポンプが、前記入力済み書き込みデータのホットデータとしての分類を示す制御信号に応答して、前記高速で略式の書き込みプロセスを用いて、前記蓄積された電荷を格納する、請求項１８に記載の装置。
【請求項２０】
カウントを開始して、前記入力済み書き込みデータの前記コピーの前記ＮＶメインメモリへの前記転送に応答して、前記所定の経過時間間隔を示すように適合されているタイマー回路を更に備える、請求項１３に記載の装置。
【請求項２１】
前記所定の経過時間間隔が、受信されたアクセスコマンドの作業負荷速度に関連して変化される、請求項１３に記載の装置。
【請求項２２】
内容参照可能メモリー（ＣＡＭ）として配置され、選択された論理アドレスを有する入力済み書き込みデータを記憶するように適合された複数の書き換え可能不揮発性メモリセルを含む不揮発性（ＮＶ）バッファと、
複数の消去可能フラッシュメモリセルを含むＮＶメインメモリと、
前記記憶された入力済み書き込みデータを前記ＮＶバッファ中に保持しながらも、前記入力済み書き込みデータのコピーを前記ＮＶメインメモリに転送するように適合された書き込み回路と、
所定の経過時間間隔を画定することを開始するように適合されたタイマー回路と、
検証回路とを備え、
前記検証回路は、前記選択された論理アドレスを有する更新された書き込みデータの前記所定の経過時間間隔中での受信に応答して、前記所定の経過時間間隔の画定を中止することを前記タイマー回路に命令し、かつ、前記更新された書き込みデータに対して、第２の所定の経過時間間隔を画定することを開始するように前記タイマー回路を再初期化する検証回路であって、前記選択された論理アドレスを有する更新された書き込みデータの前記所定の経過時間間隔中での不在に応答して、前記所定の経過時間間隔が終了したら検証動作を実施して、前記入力済み書き込みデータの前記コピーの前記ＮＶメインメモリに対する成功した転送を検証する、装置。