(57)【要約】ＮＡＮＤ動作レイテンシを制御するデバイス及び技法を本明細書に記載する。コントローラは、書き込み要求を受信することができる。次に、コントローラは、閉じられている物理ブロック上で実行するガベージコレクション動作数を計算することができる。ここでの計算は、ガベージコレクションについてのケイデンス計算に論理対物理（Ｌ２Ｐ）領域検索比率を追加することを含む。ガベージコレクション動作は、実行するために計算されたガベージコレクション動作数に従って、物理ブロック上で実行されることができる。次に、コントローラは、計算されたガベージコレクション動作数を完了することに応答して、書き込み要求を実行することができる。
2021528783.tif 000002
【特許請求の範囲】
【請求項１】
いくつかのブロックを含むＮＡＮＤアレイであって、前記いくつかの物理ブロックのうちの少なくとも１つの物理ブロックは閉じられている、前記ＮＡＮＤアレイと、
コントローラと、
を含む、ＮＡＮＤ動作レイテンシを制御するデバイスであって、
前記コントローラは、
書き込み要求を受信し、
閉じられている前記物理ブロック上で実行するガベージコレクション動作数を計算し、前記計算はガベージコレクションについてのケイデンス計算への論理対物理（Ｌ２Ｐ）領域検索比率の追加を含み、
前記物理ブロック上で前記計算されたガベージコレクション動作数を実行し、各ガベージコレクション動作はページを前記物理ブロック内に与えられると、
前記ページが有効であるかどうかを判定するためにＬ２Ｐテーブルを検索し、前記検索がＬ２Ｐテーブル領域ごとにエントリを含むブロックデータ構造によって指示され、前記Ｌ２Ｐテーブル領域内の論理ページが前記物理ブロックに対応したかどうかを前記エントリが示し、
前記ページが有効であることに応答して、前記ページを前記いくつかのブロックの新しい物理ブロックに書き込む、前記コントローラを含み、
前記計算されたガベージコレクション動作数が実行されることに応答して、前記書き込み要求を実行する、前記デバイス。
【請求項２】
前記Ｌ２Ｐ領域検索比率は、前記物理ブロックへの論理ページ対応を示す前記ブロックデータ構造内のエントリカウントに等しい分子を含む、請求項１に記載のデバイス。
【請求項３】
前記Ｌ２Ｐ領域検索比率は、負荷閾値パラメータに等しい分母を含む、請求項２に記載のデバイス。
【請求項４】
前記コントローラは、
第二書き込み要求を受信し、
前記ブロックデータ構造内の前記エントリカウントが前記負荷閾値パラメータよりも大きいことに応答して、前記ガベージコレクション動作をサスペンドし、
前記第二書き込み要求を実行する、
ように構成される、請求項３に記載のデバイス。
【請求項５】
前記コントローラは、
第二書き込み要求を受信し、
ガベージコレクション動作閾値数がガベージコレクションサイクルでは前記物理ブロック上に実行されたことに応答して、前記ガベージコレクション動作をサスペンドし、
前記第二書き込み要求を実行する、
ように構成される、請求項１に記載のデバイス。
【請求項６】
ＮＡＮＤ動作レイテンシを制御する方法であって、
書き込み要求をＮＡＮＤデバイスのコントローラで受信することと、
閉じられている物理ブロック上で実行するガベージコレクション動作数を計算することであって、前記計算することがガベージコレクションについてのケイデンス計算に論理対物理（Ｌ２Ｐ）領域検索比率を追加することを含む、前記計算することと、
前記物理ブロック上で前記計算されたガベージコレクション動作数を実行することであって、各ガベージコレクション動作はページを前記物理ブロック内に与えられると、
前記ページが有効であるかどうかを判定するためにＬ２Ｐテーブルを検索することであって、前記検索することがＬ２Ｐテーブル領域ごとにエントリを含むブロックデータ構造によって指示され、前記Ｌ２Ｐテーブル領域内の論理ページが前記物理ブロックに対応したかどうかを前記エントリが示す、前記検索すること、及び
前記ページが有効であることに応答して、前記ページを新しい物理ブロックに書き込むこと、
を含む、前記実行することと、
前記計算されたガベージコレクション動作数が実行されることに応答して、前記書き込み要求を実行することと、
を備える、前記方法。
【請求項７】
前記Ｌ２Ｐ領域検索比率は、前記物理ブロックへの論理ページ対応を示す前記ブロックデータ構造内のエントリカウントに等しい分子を含む、請求項６に記載の方法。
【請求項８】
前記Ｌ２Ｐ領域検索比率は、負荷閾値パラメータに等しい分母を含む、請求項７に記載の方法。
【請求項９】
第二書き込み要求を受信することと、
前記ブロックデータ構造内の前記エントリカウントが前記負荷閾値パラメータよりも大きいことに応答して、前記ガベージコレクション動作をサスペンドすることと、
前記第二書き込み要求を実行することと、
を含む、請求項８に記載の方法。
【請求項１０】
前記Ｌ２Ｐ領域検索比率を前記ケイデンス計算に追加することは、前記Ｌ２Ｐ領域検索比率を前記ガベージコレクション書き込みに追加することを含む、請求項９に記載の方法。
【請求項１１】
第二書き込み要求を受信することと、
ガベージコレクション動作閾値数がガベージコレクションサイクルでは前記物理ブロック上に実行されたことに応答して、前記ガベージコレクション動作をサスペンドすることと、
前記第二書き込み要求を実行することと、
を含む、請求項６に記載の方法。
【請求項１２】
前記ケイデンス計算は、ガベージコレクション書き込みとホスト書き込みとの間の比率であり、前記ガベージコレクション書き込みは、前記物理ブロックから前記新しい物理ブロックにすべての有効なページを移動させるガベージコレクション動作カウントであり、前記ホスト書き込みは、ホスト書き込みカウントを定義するパラメータであり、前記ホスト書き込みカウントを上回る前記ガベージコレクション書き込みを拡散させる、請求項６に記載の方法。
【請求項１３】
前記ブロックデータ構造はビットマップである、請求項６に記載の方法。
【請求項１４】
前記データ構造内のエントリはシングルビットである、請求項１３に記載の方法。
【請求項１５】
エントリ内の論理１は、前記ビットの位置に対応するＬ２Ｐ領域が前記物理ブロックに対応した論理ページを含むことを示す、請求項１４に記載の方法。
【請求項１６】
前記データ構造は前記物理ブロックに書き込まれる、請求項６に記載の方法。
【請求項１７】
前記ＮＡＮＤデバイスは、ワーキングメモリを含み、前記Ｌ２Ｐテーブルは、前記ワーキングメモリよりも大きく、Ｌ２Ｐ領域は、前記ワーキングメモリよりも大きくない、請求項６に記載の方法。
【請求項１８】
前記Ｌ２Ｐテーブルを検索することは、論理ページを示す前記ブロックデータ構造内の対応するエントリが前記物理ブロックに対応したことに応答して、Ｌ２Ｐ領域を前記ワーキングメモリにロードすることを含む、請求項１７に記載の方法。
【請求項１９】
請求項６〜１８に記載のいずれかの方法を実行する手段を含むシステム。
【請求項２０】
実行されるときに、請求項６〜１８に記載のいずれかの方法を処理回路に実行させるインストラクションを含むコンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
優先権出願
本出願は、２０１８年６月２９日に出願された米国出願第１６／０２４，３８０号に優先権の利益を主張するものであり、参照によりその全体が本明細書に援用される。
【０００２】
メモリデバイスは典型的には、内部の、半導体、集積回路としてコンピュータまたは他の電子デバイスに設けられる。揮発性メモリ及び不揮発性メモリを含む多くの異なるタイプのメモリが存在する。
【０００３】
揮発性メモリは、そのデータを維持するために電力を必要とし、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、または同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）などを含む。
【０００４】
不揮発性メモリは、電力が供給されていないときに格納されたデータを保持することができ、フラッシュメモリ、読み出し専用メモリ（ＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、スタティックＲＡＭ（ＳＲＡＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、抵抗可変メモリ（例えば、相変化ランダムアクセスメモリ（ＰＣＲＡＭ）、抵抗ランダムアクセスメモリ（ＲＲＡＭ）、磁気抵抗型ランダムアクセスメモリ（ＭＲＡＭ）、または３Ｄ  Ｘｐｏｉｎｔ（商標）メモリ）などを含む。
【０００５】
フラッシュメモリは、広範囲の電子アプリケーションのために不揮発性メモリとして利用される。フラッシュメモリデバイスは、メモリが高密度であり、信頼性が高く、消費電力が低いことを可能にする、１トランジスタ、フローティングゲートまたはチャージトラップメモリセルの１つ以上のグループを一般的に含む。
【０００６】
フラッシュメモリアレイアーキテクチャの２つの一般的なタイプは、ＮＡＮＤアーキテクチャ、及びＮＯＲアーキテクチャを含み、それぞれのベーシックメモリセル構成が配列される論理形式にちなんで名付けられている。メモリアレイのメモリセルは、行列で一般に配列される。一例では、アレイのロウ内の各フローティングゲートメモリセルのゲートは、アクセス線（例えば、ワード線）に結合される。ＮＯＲアーキテクチャでは、アレイのカラム内の各メモリセルのドレインはデータ線（例えば、ビット線）に結合される。ＮＡＮＤアーキテクチャでは、アレイストリング内の各メモリセルのドレインは、ソース線とビット線との間で、ソースからドレインに直列で共に結合される。
【０００７】
ＮＯＲアーキテクチャ及びＮＡＮＤアーキテクチャの両方の半導体メモリアレイは、それらのゲートに結合されるワード線を選択することによって、特定のメモリセルをアクティブにする復号器を介してアクセスされる。ＮＯＲアーキテクチャの半導体メモリアレイでは、アクティブにされると、選択されたメモリセルは、それらのデータ値をビット線に配置し、特定のセルがプログラムされている状態に応じて異なる電流を流させる。ＮＡＮＤアーキテクチャの半導体メモリアレイでは、高いバイアス電圧は、ドレイン側選択ゲート（ＳＧＤ）線に印加される。各グループの選択されていないメモリセルのゲートに結合されるワード線を、指定されたパス電圧（例えば、Ｖｐａｓｓ）で駆動し、各グループの選択されていないメモリセルをパストランジスタとして動作させる（例えば、それらの格納されたデータ値によって制限されない方法で電流を流すために）。次に、電流は、各グループの選択されたメモリセルによってのみ制限される、直列に結合された各グループを介してソース線からビット線に流れ、選択されたメモリセルの現在の符号化データ値をビット線に配置する。
【０００８】
ＮＯＲアーキテクチャまたはＮＡＮＤアーキテクチャの半導体メモリアレイでの各フラッシュメモリセルは、１つの、または複数のプログラムされた状態に個別に、または集合的にプログラムされることができる。例えば、シングルレベルセル（ＳＬＣ）は、１ビットのデータを表す、２つのプログラムされた状態（例えば、１または０）のうちの１つを表すことができる。
【０００９】
ただし、フラッシュメモリセルは２つより多いプログラムされた状態のうちの１つを表すこともできることにより、各セルが１つより多い二進数（例えば、１ビットよりも多い）を表すことができるため、メモリセルの数を増やすことなく、より高密度のメモリの製造を可能にする。それらのようなセルは、マルチステートメモリセル、マルチデジットセル、またはマルチレベルセル（ＭＬＣ）と称されることができる。ある特定の例では、ＭＬＣは、セルあたり２ビットのデータを格納することができるメモリセル（例えば、４つのプログラムされた状態のうちの１つ）を指すことができ、トリプルレベルセル（ＴＬＣ）は、セルあたり３ビットのデータを格納することができるメモリセル（例えば、８つのプログラムされた状態のうちの１つ）を指すことができ、クアッドレベルセル（ＱＬＣ）は、セルあたり４ビットのデータを格納することができる。ＭＬＣは、本明細書では、そのより広い文脈で使用され、セルあたり１ビットより多いデータを格納することができる（すなわち、２つより多いプログラムされた状態を表すことができる）任意のメモリセルを指すことができる。
【００１０】
従来のメモリアレイは、半導体基板の表面上に配列される二次元（２Ｄ）構造である。所与の領域についてのメモリ容量を増やし、コストを削減するために、個々のメモリセルのサイズは小さくなっている。ただし、個々のメモリセルのサイズの縮小、したがって、２Ｄメモリアレイのメモリの密度には、技術的な限界がある。これに応じて、三次元（３Ｄ）ＮＡＮＤアーキテクチャの半導体メモリデバイスなどの３Ｄメモリ構造は、さらにメモリの密度を高め、メモリコストを下げるように開発されている。
【００１１】
それらのような３Ｄ  ＮＡＮＤデバイスは、ストレージセルのストリングを含むことが多く、これらのストレージセルのストリングは、ソースに近接する１つ以上のソース側選択ゲート（ＳＧＳ）と、ビット線に近接する１つ以上のドレイン側選択ゲート（ＳＧＤ）との間に、直列（例えば、ドレインからソース）で結合される。一例では、ＳＧＳまたはＳＧＤは、１つ以上の電界効果トランジスタ（ＦＥＴ）または金属酸化物半導体（ＭＯＳ）構造デバイスなどを含むことができる。いくつかの例では、ストリングは、それぞれワード線を含む、複数の垂直方向に離隔されたティアを通って垂直方向に延伸する。半導体構造（例えば、ポリシリコン構造）は、ストレージセルのストリングに隣接して延在し、このストリングのストレージセルについてチャネルを形成することができる。垂直方向のストリングの例では、ポリシリコン構造は、垂直方向に延伸するピラー形状であることができる。いくつかの例では、ストリングを「折りたたむ」ことができるので、Ｕ字形のピラーに対して配列することができる。他の例では、複数の垂直構造を互いの上に積層させて、ストレージセルストリングの積層型アレイを形成することができる。
【００１２】
メモリアレイまたはデバイスを共に組み合わせて、ソリッドステートドライブ（ＳＳＤ）、ユニバーサルフラッシュストレージ（ＵＦＳ（商標））デバイス、ＭｕｌｔｉＭｅｄｉａＣａｒｄ（ＭＭＣ）ソリッドステートストレージデバイス、組み込みＭＭＣデバイス（ｅＭＭＣ（商標））などのようなメモリシステムのストレージボリュームを形成することができる。ＳＳＤは、とりわけ、コンピュータのメインストレージデバイスとして使用されることができ、例えば、パフォーマンス、サイズ、重量、耐久性、動作温度範囲、及び消費電力に関して可動部品を含む従来のハードドライブに対する利点を有する。例えば、ＳＳＤは、磁気ディスクドライブ（例えば、電気機械など）に関連するシーク時間、レイテンシ、または他の遅延を減らすことができる。ＳＳＤは、フラッシュメモリセルなどの不揮発性メモリセルを使用して、内部バッテリ供給要件を不要にすることにより、ドライブをより多用途でコンパクトにすることを可能にする。
【００１３】
ＳＳＤは、複数のダイまたは論理ユニット（例えば、論理ユニット番号またはＬＵＮ）を含む、複数のメモリデバイスを含むことができ、メモリデバイスまたはインタフェースを外部システムによって動作させるために必要な論理機能を実行する、１つ以上のプロセッサまたは他のコントローラを含むことができる。それらのようなＳＳＤは、複数のメモリアレイ、及びそれらの上の周辺回路を含む、１つ以上のフラッシュメモリダイを含むことができる。フラッシュメモリアレイは、複数の物理ページに編成されるメモリセルの複数のブロックを含むことができる。多くの例では、ＳＳＤは、ＤＲＡＭまたはＳＲＡＭ（または他のメモリダイ形態または他のメモリ構造）も含む。ＳＳＤは、メモリデバイスとホストとの間でデータ（例えば、エラーデータ及びアドレスデータなどのような、ユーザデータ及び関連する完全性データ）を転送する読み出しもしくは書き込み動作、またはメモリデバイスからのデータを消去する消去動作などのメモリ動作に関連してホストからコマンドを受信することができる。
【００１４】
必ずしも一定の縮尺で描かれているわけではない図面では、類似数字が異なる図中の類似構成要素を説明し得る。異なる文字接尾辞を有する類似数字は、類似構成要素の別の例を表す場合がある。図面は、概して、限定ではなく実施例として、本明細書で論じられているさまざまな実施形態を示す。
【図面の簡単な説明】
【００１５】
【図１】メモリデバイスを含む環境の一例を示す。
【図２】ワーキングメモリ内の論理対物理テーブル領域の一例を示す。
【図３】論理対物理領域、物理ブロック、及び追跡データ構造の間の関係の一例を示す。
【図４】論理対物理領域、物理ブロック、及び追跡データ構造の間の関係の一例を示す。
【図５】Ａ〜Ｂは、追跡データ構造についてのストレージ構成を示す。
【図６】ＮＡＮＤ動作レイテンシを制御する方法のフローチャートを示す。
【図７】１つ以上の実施形態が実装されることができるマシンの一例を示すブロック図である。
【発明を実施するための形態】
【００１６】
フラッシュデバイスなどの多くのストレージデバイスは、変換テーブルを使用して、論理素子（例えば、ページまたはブロック）を論理素子の物理的な均等物にマッピングする。これにより、デバイスのストレージ素子のパフォーマンスまたは寿命を高めるために、デバイスのコントローラがさまざまな技法を実行することが可能である。例えば、ＮＡＮＤフラッシュセルは、書き込みまたは消去サイクルによって物理的な摩耗を受ける。さらに、これらのデバイスは、一度に多くの要素を消去する必要がある（例えば、ブロック消去）。これらの問題に対処するために、コントローラは、利用可能なセルの周囲に書き込みを一般に拡散させ（例えば、これらのセルからの摩耗を減らすために）、ブロックから適したページを移行してブロックを消去することにより、追加のスペースを解放する。どちらの場合も、所与のページまたはブロックについてのホストアドレスは、それが参照するデータが変換テーブルによって別の物理ページまたはブロックに移動する場合でも、一定であることができる。
【００１７】
変換テーブルは、コントローラの内部メモリ（例えば、ワーキングメモリ）に一般にロードされる。テーブルサイズがワーキングメモリ（ランダムアクセスメモリ（ＲＡＭ）、例えば、コントローラのダイナミックＲＡＭ（ＤＲＡＭ）またはスタティックＲＡＭ（ＳＲＡＭ）などの内の）よりも大きい場合、テーブルの一部分は、ワーキングメモリにロードされ、テーブルの残りの部分は、他のストレージ（ＮＡＮＤフラッシュアレイ素子など）に格納される。変換要求（例えば、論理対物理（Ｌ２Ｐ）マッピング）がワーキングメモリにない場合、コントローラは、テーブルの内部メモリ部分を他のストレージからの適切な部分と置換する。このプロセスは、ストレージデバイスに読み出しまたは書き込みなどの動作を実行するときに、レイテンシを増加させる場合がある。ワーキングメモリを増やすことにより、これらの発生を減らすことができるが、これにより、製造コスト及び電力コストがかかり、所与の用途に許容できない可能性がある。
【００１８】
ガベージコレクション（ＧＣ）などの、ある特定のメンテナンスタスクを実行する場合、Ｌ２Ｐテーブルの断片化された性質が問題になる可能性がある。例えば、ＮＡＮＤデバイスは、単一ページの書き込みを一般に可能にするが、消去は、ブロックレベルで実行される（例えば、ブロックは個別に消去されることができるＮＡＮＤデバイスの最小単位である）。ガベージコレクションは、ＮＡＮＤデバイスで解放した物理スペースが少なくなったときに解放したスペースを回復するように設計される。一般に、ガベージコレクションは、論理的に有効なページをソースブロックから宛先ブロックにコピーしてから、ソースブロックを消去してスペースを解放することを含む。コピーを達成するために、従来、Ｌ２Ｐテーブルを検索して、ソースブロックを指す物理アドレスを探すことによって、ソースブロックの有効なページを識別する。
【００１９】
完全なＬ２Ｐテーブルがワーキングメモリ内に適合することができない場合のガベージコレクションへの従来のアプローチは、いくつかの問題がある。例えば、各Ｌ２Ｐ領域がより遅いＮＡＮＤストレージから取得され、検索を行うためにワーキングメモリに置かれるため、検索に時間がかかっている場合がある。Ｌ２Ｐ領域がブロック内に物理ページを含まない場合、ロード及び検索時間の全体が無駄になる。これにより、デバイスがガベージコレクションプロセスを完了するまで待機している間、高いレイテンシをもたらす。
【００２０】
ブロックについてのデータ構造を維持して、ガベージコレクションが進行する速度を上げることができる。データ構造は、所与のブロックに関連するＬ２Ｐテーブル領域を示す。例えば、ページがブロックに書き込まれるときに、対応するデータ構造を変更して、論理ページをその物理ページにマッピングするＬ２Ｐ領域を示す。ブロックでガベージコレクションが開始されたときに、デバイスは、データ構造をロードし、示されたＬ２Ｐテーブル領域を検索する。このプロセスは、ワーキングメモリにロードされるＬ２Ｐ領域を、ブロックへの参照を含む可能性が高いこれらの領域のみに制限する。
【００２１】
データ構造の実装は、本明細書ではマップビットマップ（例えば、ＭＢＭ）と称されるビットマップ（例えば、バイナリ配列）を含むことができ、ビットマップでのインデックスは、Ｌ２Ｐテーブル領域に対応し、インデックスでの値（例えば、バイナリ「１」対バイナリ「０」）は、Ｌ２Ｐ領域がブロックの物理ページへの参照を保持する（または保持した）かどうかを示す。この例では、ブロックが消去されるときに、関連するビットマップは、完全にリセットされる（例えば、すべての値はバイナリ「０」に設定される）。Ｌ２Ｐ領域に属するページがブロックに書き込まれるときに（例えば、ホスト書き込みか、ガベージコレクションプロシージャのいずれかのために）、ビットマップでの関連するビットが設定される（例えば、バイナリ「１」に）。一例では、ブロックが完全に書き込まれた後、すなわち、解放したページがなくなった後、ブロックが消去されるまで、ブロックについてのビットマップは変更されない。
【００２２】
上記のデータ構造の使用は、従来のブロック管理にいくつかの利点を提供する。例えば、ワーキングメモリにロードされるＬ２Ｐ領域が少なくなるため、ブロック内で有効なページの検索を実行する時間が短縮される。さらに、ワーキングメモリにロードされる各Ｌ２Ｐ領域が、動作中に移動する有効なページをもたらす可能性が高いため、検索の効率を向上させる。さらに、データ構造はブロックへの書き込みの一部として更新されるため、構造を維持する際のメンテナンスオーバーヘッドがほとんどない。
【００２３】
データ構造を使用してメンテナンス中に検索するＬ２Ｐ領域を選択するために発生する可能性がある問題は、時間の経過とともにデータ構造の効率を低下させる可能性がある。ブロックが閉じられるとデータ構造が変わらないため、ブロック内で削除される、または上書きされるデータが増えるほど、データ構造が古くなり、例えば、データ構造内の有効なエントリは、前のものになるほど、これらの論理ブロックが今では異なるブロックを指すようになるため、有効ではなくなる。データ構造エントリの多くが古くなっている場合、ガベージコレクションプロセスは、ホスト書き込みレイテンシを増加させることなどによって、再び非効率的になる可能性がある。
【００２４】
その古くなっているデータ構造の問題に対処するために、ガベージコレクションのケイデンスをデータ構造エントリによって変更し、古くなっているデータ構造エントリが引き起こすレイテンシを、いくつかのホスト書き込みにわたり拡散させることができる。一般に、レイテンシの問題を制御するために、ガベージコレクションをホスト書き込みなどの動作にわたり分割することができる。この分割、またはそのような１つの動作に対して実行する作業量の決定は、ガベージコレクションに対するケイデンスと称される。ケイデンス比率は、
【数１】
2021528783.tif 000003
として表されることができ、式中、Ｃはケイデンスであり、ＧＣＷ（例えば、ガベージコレクション書き込み数）はガベージコレクション中にこのブロックを解放するために新しいブロックに再コピーするページ数であり、ＨＷ（例えば、ホスト書き込み）は固定値である。ＨＷは、完全なガベージコレクションの実行に対応する、書き込まれるホストデータ量を示すように設定される。例えば、ブロックを解放するために９回のガベージコレクション書き込みを必要とし、１メガバイト（１ｍｂ）のホストデータがメモリデバイスに書き込まれた後にブロックを解放する必要がある場合、それらのケイデンスは、
【数２】
2021528783.tif 000004
または書き込まれる１１１．１２キロバイト（ｋｂ）のホストデータごとに１回のガベージコレクション書き込みである。
【００２５】
ケイデンスは、所与のブロックに関係するＬ２Ｐ領域の数を追跡することで、より効率的に計算されることができる。この追跡は、インデックスがブロックに対応し（例えば、インデックス１がブロック１に対応し）、インデックスでの値がＬ２Ｐ領域のカウントであるカウンタ配列によって達成されることができる。ただし、他の追跡構造を使用することもできる。追跡データ構造でのカウントは、所与のブロックについてのＭＢＭでの１の数に等しい。したがって、カウントについての最大値はＬ２Ｐ領域の数に等しい。
【００２６】
この情報を使用して、ケイデンスは次のように計算されることができる。
【数３】
2021528783.tif 000005
【００２７】
式中、Ｌ２ＰＣ［ｉ］はカウンタアレイ内のインデックスｉ（ブロックｉに対応）での値であり、Ｌ２ＰＬｏａｄＴｈｒは１回のガベージコレクション動作でロードするＬ２Ｐ領域の最大数の閾値である。Ｌ２ＰＬｏａｄＴｈｒは、動作に所望のホストレイテンシを達成するように設定されることができる。したがって、新しいケイデンス計算によって変更されるときに、ガベージコレクションは、１）所定の数のガベージコレクション書き込みが収集されてロードされ（例えば、キャッシュに）、新しいブロックに書き込む準備ができているとき、または２）有効なページを検索するためにロードされるＬ２Ｐ領域の数がＬ２ＰＬｏａｄＴｈｒを超えるとき、にサスペンドされる。サスペンド時に、バッファはフラッシュされ（例えば、ページは新しいブロックに書き込まれ）、例えば、ホスト書き込みデータを許容するために解放される。この方法でガベージコレクションを制限することにより、デバイスがガベージコレクションに対応することができる間（例えば、ガベージコレクションが完了することができる間）、ホストレイテンシは低減する。追加の詳細及び例を以下に説明する。
【００２８】
図１は、通信インタフェースを介して通信するように設定されるホストデバイス１０５及びメモリデバイス１１０を含む環境１００の一例を示す。ホストデバイス１０５またはメモリデバイス１１０は、モノのインターネット（ＩｏＴ）デバイス（例えば、冷蔵庫または他の機器、センサ、モーターまたはアクチュエータ、移動体通信デバイス、自動車、ドローンなど）のようなさまざまな製品１５０に含まれ、製品１５０の処理、通信、または制御をサポートすることができる。
【００２９】
メモリデバイス１１０は、メモリコントローラ１１５と、例えば、複数の個別のメモリダイ（例えば、三次元（３Ｄ）ＮＡＮＤダイのスタック）を含むメモリアレイ１２０とを備える。３Ｄアーキテクチャ半導体メモリ技術では、垂直構造は、積層され、ティアの数、物理ページ、それに応じてメモリデバイス（ストレージデバイスなど）の密度を増加させる。一例では、メモリデバイス１１０は、ホストデバイス１０５の個別のメモリまたはストレージデバイスコンポーネントであることができる。他の例では、メモリデバイス１１０は、集積回路（例えば、システムオンチップ（ＳＯＣ）など）の一部であるか、ホストデバイス１０５の１つ以上の他のコンポーネントが積層されるか、その他の方法で含まれることができる。これらの例では、メモリデバイス１１０は、バスなどのインターリンク１１１を介してホストデバイス１０５のコンポーネントと通信する。したがって、本明細書で説明されるように、ホストまたはホストデバイス１０５の動作は、メモリデバイス１１０がホストデバイス１０５に統合されている場合でさえ、メモリデバイス１１０の動作とは異なる。
【００３０】
１つ以上の通信インタフェース（例えば、インターリンク１１１）を使用して、メモリデバイス１１０と、シリアルアドバンスドテクノロジーアタッチメント（ＳＡＴＡ）インタフェース、ペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩｅ）インタフェース、ユニバーサルシリアルバス（ＵＳＢ）インタフェース、ユニバーサルフラッシュストレージ（ＵＦＳ）インタフェース、ｅＭＭＣ（商標）インタフェース、または１つ以上の他のコネクタもしくはインタフェースなどのホストデバイス１０５の１つ以上の他のコンポーネントとの間でデータを転送することができる。ホストデバイス１０５は、ホストシステム、電子デバイス、プロセッサ、メモリカードリーダー、またはメモリデバイス１１０の外部にある１つ以上の他の電子デバイスを含むことができる。いくつかの例では、ホスト１０５は、図７のマシン７００を参照して考察されるコンポーネントの、ある部分または全部を含むマシンであることができる。
【００３１】
メモリコントローラ１１５は、ホスト１０５からインストラクションを受信することができ、メモリアレイ１２０のメモリセル、プレーン、サブブロック、ブロック、またはページのうちの１つ以上にデータを転送する（例えば、書き込む、または消去する）、またはそれらからデータを転送する（例えば、読み出す）などのために、メモリアレイ１２０と通信することができる。メモリコントローラ１１５は、とりわけ、１つ以上のコンポーネントまたは集積回路を含む回路またはファームウェアを含むことができる。例えば、メモリコントローラ１１５は、メモリアレイ１２０全体のアクセスを制御し、ホスト１０５とメモリデバイス１１０との間に変換層を提供するように構成される１つ以上のメモリ制御ユニット、回路、またはコンポーネントを含むことができる。
【００３２】
メモリマネージャ１２５は、とりわけ、さまざまなメモリ管理機能に関連する複数のコンポーネントまたは集積回路のような、回路またはファームウェアを含むことができる。本発明の説明の目的のために、例示的なメモリ動作及び管理機能は、ＮＡＮＤメモリのコンテキストで説明される。当業者は、不揮発性メモリの他の形態が類似のメモリ動作または管理機能を有することができることを認識するであろう。これらのようなＮＡＮＤ管理機能は、ウェアレベリング（例えば、ガベージコレクションまたは再利用）、エラー検出もしくは訂正、ブロックリタイア、または１つ以上の他のメモリ管理機能を含む。メモリマネージャ１２５は、ホストコマンド（例えば、ホストから受信するコマンド）をデバイスコマンド（例えば、メモリアレイの動作に関連するコマンドなど）にパースする、もしくはフォーマットすることができる、またはアレイコントローラ１３５、もしくはメモリデバイス１１０の１つ以上の他のコンポーネントについてデバイスコマンドを生成する（例えば、さまざまなメモリ管理機能を達成するために）ことができる。
【００３３】
メモリマネージャ１２５は、メモリデバイス１１０の１つ以上のコンポーネントに関連するさまざまな情報（例えば、メモリコントローラ１１５に結合される１つのメモリアレイまたは１つ以上のメモリセルに関連するさまざまな情報）を維持するように構成される１セットの管理テーブル１３０を含むことができる。例えば、管理テーブル１３０は、メモリコントローラ１１５に結合されるメモリセルの１つ以上のブロックについて、ブロックエイジ、ブロック消去カウント、エラー履歴、または１つ以上のエラーカウント（例えば、書き込み動作エラーカウント、読み出しビットエラーカウント、読み出し動作エラーカウント、消去エラーカウントなど）に関する情報を含むことができる。ある特定の例では、１つ以上のエラーカウントに検出されたエラーの数が閾値を上回る場合、ビットエラーは、訂正不可能なビットエラーと称されることができる。管理テーブル１３０は、とりわけ、訂正可能な、または訂正不可能なビットエラーのカウントを維持することができる。一例では、管理テーブル１０３は、変換テーブルまたはＬ２Ｐマッピングを含むことができる。
【００３４】
メモリマネージャ１２５は、データ構造を実装して使用し、ガベージコレクションなどの有効なページについてのＬ２Ｐテーブルを検索することを含む動作におけるメモリデバイス１１０のレイテンシを低減させることができる。この目的のために、メモリマネージャ１２５は、物理ブロックについてデータ構造（例えば、テーブル領域データ構造、追跡データ構造など）を維持するように構成される。データ構造は、Ｌ２Ｐテーブルの、Ｌ２Ｐマッピングテーブル領域のインジケーションを含む。一例では、Ｌ２Ｐテーブルは、メモリコントローラ１１５、またはメモリデバイス１１０の他のコンポーネントと共有されることができる、メモリマネージャ１２５についてのワーキングメモリよりも大きい。ただし、Ｌ２Ｐテーブル領域は、ワーキングメモリより大きくないため、Ｌ２Ｐ領域をワーキングメモリにロードしてその上で動作させることができる。
【００３５】
データ構造を効率的に管理するために、メモリマネージャ１２５は、データが書き込まれるときにデータ構造にメンテナンス動作を実行する。したがって、メモリコントローラ１１５は、論理ページ、及び論理ページに書き込まれるデータを含む書き込み要求（例えば、ホスト１０５からの）を受信するように構成される。メモリマネージャ１２５は、その論理ページと、データが書き込まれるＮＡＮＤデバイスの物理ブロックの物理ページとの間のＬ２Ｐテーブルにエントリを確立する（例えば、更新する、または作成する）ように構成される。ここで、Ｌ２Ｐテーブルがワーキングメモリよりも大きい場合、エントリは、Ｌ２Ｐテーブルに及ぶ（例えば、これを網羅する）複数の領域のうちの１つの領域内にある。
【００３６】
メモリマネージャ１２５は、書き込み要求の物理ブロックに対応するデータ構造に、領域のインジケーションを書き込むように構成される。一例では、データ構造は物理ブロックに書き込まれる。一例では、データ構造は、ブロックとは別のアレイ１２０のメンテナンス領域に書き込まれる。メモリマネージャ１２５を含むことは、メモリマネージャが書き込み用にＬ２Ｐテーブル領域も選択したため、インジケーションを書き込むのに効率的であるが、メモリコントローラ１１５などの他のエンティティもまた書き込みを実行することができる。
【００３７】
一例では、データ構造はビットマップ（例えば、バイナリ配列）である。一例では、ビットマップは、Ｌ２Ｐテーブルに及ぶ複数の相互に排他的な領域の領域ごとに１ビットを含む。したがって、Ｌ２Ｐテーブル領域は互いにオーバーラップせず、すべてのＬ２Ｐテーブル領域の組み合わせはＬ２Ｐテーブル全体に及ぶ。ビットマップは、これらの領域のそれぞれについて１ビットを含む。一例では、Ｌ２Ｐテーブル領域は順序付けられており、ビットのインデックスは所与のＬ２Ｐテーブル領域の順序に対応する。例えば、Ｌ２Ｐテーブルには２つのＬ２Ｐテーブル領域があり、１つはＬ２Ｐテーブルの前半をカバーし、もう１つはＬ２Ｐテーブルの後半をカバーする場合、ビットマップのインデックス「０」は、前半の領域に対応し、ビットマップのインデックス「１」は、後半の領域に対応する。ただし、領域がＬ２Ｐテーブルの隣接部分をカバーする必要はなく（例えば、領域Ａはテーブル内の領域Ｂの隣にあることができない）、それらの領域が特定の順序を有する必要もない。ただし、所与のＬ２Ｐテーブル領域をビットマップの所与のインデックスに割り当てるために使用されるどんな基準でも、一貫している必要がある（例えば、領域「Ｙ」は常に同じインデックスにマッピングされる）。一例では、ビットマップ内のＬ２Ｐテーブル領域のインジケーション（例えば、所与のＬ２Ｐテーブル領域が一度でブロック内に物理ページを含むことを示すための）は、その領域のそれぞれのビット内の論理１（例えば、バイナリ「１」）である。
【００３８】
一例では、メモリマネージャ１２５は、物理ブロックのガベージコレクション動作中にデータ構造を読み出し、Ｌ２Ｐテーブルの限定された１セットの領域をワーキングメモリにロードするように構成される。メモリマネージャ１２５は、この限定された１セットの領域を検索して、有効なページを見つけて、そのブロックから別のブロックに移動させる。有効なページを移動させると、ブロックを消去してガベージコレクションを完了する。一例では、限定された１セットの領域にはない複数の領域のうちのいくつかの領域は、ガベージコレクションに使用されない。
【００３９】
一例では、メモリマネージャ１２５は、物理ブロックを消去することに応答して、データ構造を初期化するように構成される。したがって、ガベージコレクションが完了すると、ブロックについてのデータ構造は、既知の解放した状態に設定される。データ構造がビットマップである一例では、データ構造は、論理ゼロ（例えば、バイナリ「０」）をビットマップの各ビットに書き込むことによって初期化される。一例では、インジケーションは、初期化することによってのみ、設定解除される。この制限は、メンテナンス要件を減らし、他のコンポーネントについての予測性を高めるのに役立つ。したがって、ブロックが完全に書き込まれるときに、ブロックが消去されてデータ構造が初期化されるまで、データ構造は変わらない。また、Ｌ２Ｐ領域は、データ構造内に示されると、初期化まで「示されない」ことができない。
【００４０】
動作レイテンシ（例えば、ホスト書き込みレイテンシ）を制御するために、メモリマネージャ１２５は、追跡データ構造を維持するように構成される。一例では、追跡データ構造はアレイであり、ブロックに対応するアレイのインデックス、及びＬ２ＰテーブルからのＬ２Ｐ領域の数に対応するアレイの値は、インデックスによって示されるブロックを指す論理アドレスを含む。一例では、メモリマネージャ１２５は、追跡データ構造をメモリ内に維持する（例えば、それはアレイ１２０に書き込まれない）。
【００４１】
メモリマネージャ１２５は、ガベージコレクションが動作しているときに実行する動作数を計算するように構成される。したがって、所与のブロックについてのガベージコレクションは、すべての有効なページを新しいブロックに移動させることを伴い、ガベージコレクションは、中断される（例えば、サスペンドされる）可能性があるため、いくつかの間隔にわたって動作する。計算されたガベージコレクション動作数は、これらの間隔のうちの１つで実行する動作数である。
【００４２】
一例では、計算は、ガベージコレクションについてのケイデンス計算にＬ２Ｐ領域検索比率を追加することを含む。上記のように、ケイデンスは、ホスト１０５によって書き込まれている、所与のある特定のデータ量を実行するガベージコレクション動作の数の比率である。Ｌ２Ｐ領域検索比率は、ブロック上で有効なページを検索することに関係するＬ２Ｐ領域の数も制限する。一例では、ケイデンス計算にＬ２Ｐ領域検索比率を追加することは、ガベージコレクション書き込みにＬ２Ｐ領域検索比率を追加することを含む。一例では、Ｌ２Ｐ領域検索比率は、ブロックデータ構造内のエントリのカウントに等しい分子を含み、これらのエントリはそれぞれ、物理ブロックへの論理ページ対応を示す。一例では、Ｌ２Ｐ領域検索比率は、負荷閾値パラメータに等しい分母を含む。これらの例は次のように表されることができる。
【数４】
2021528783.tif 000006
【００４３】
式中、Ｌ２ＰＣ［ｉ］はカウンタアレイ内のインデックスｉ（ｉに対応）での値であり、Ｌ２ＰＬｏａｄＴｈｒは１回のガベージコレクション動作でロードするＬ２Ｐ領域の最大数の閾値である。
【００４４】
一例では、メモリマネージャ１２５は、ブロックデータ構造内のエントリのカウンタが負荷閾値パラメータよりも大きいことに応答して、ガベージコレクションをサスペンドするように構成される。このサスペンド時に、ガベージコレクションバッファをアレイ１２０にフラッシュすることができ、新しいホスト書き込みをバッファにロードして、アレイ１２０に書き込む。
【００４５】
アレイコントローラ１３５は、とりわけ、メモリコントローラ１１５に結合されるメモリデバイス１１０の１つ以上のメモリセルへのデータの書き込み、それらからのデータの読み出し、またはそれらの消去に関連するメモリ動作を制御するように構成される回路またはコンポーネントを含むことができる。メモリ動作は、例えば、ホスト１０５から受信する、またはメモリマネージャ１２５によって内部に生成される（例えば、ウェアレベリング、エラー検出または訂正などに関連して）ホストコマンドに基づくことができる。
【００４６】
アレイコントローラ１３５は、エラー訂正コード（ＥＣＣ）コンポーネント１４０を含むことができ、これは、とりわけ、メモリコントローラ１１５に結合されるメモリデバイス１１０の１つ以上のメモリセルへのデータの書き込み、またはそれらからのデータの読み出しに関連するエラーを検出する、または訂正するように構成されるＥＣＣエンジンまたは他の回路を含むことができる。メモリコントローラ１１５は、ホスト１０５とメモリデバイス１１０との間で転送されるデータの完全性を維持しながら、または格納されたデータの完全性を維持しながら（例えば、冗長ＲＡＩＤストレージなどを使用して）、データのさまざまな動作またはストレージに関連するエラー発生（例えば、ビットエラー、動作エラーなど）を能動的に検出して、それらから回復するように構成されることができ、今後のエラーを防ぐために、障害のあるメモリリソース（例えば、メモリセル、メモリアレイ、ページ、ブロックなど）を除去する（例えば、リタイアする）ことができる。
【００４７】
メモリアレイ１２０は、例えば、複数のデバイス、プレーン、サブブロック、ブロック、またはページに配列されるいくつかのメモリセルを含むことができる。一例として、４８ＧＢ  ＴＬＣ  ＮＡＮＤメモリデバイスは、ページあたり１８，５９２バイト（Ｂ）のデータ（１６，３８４＋２２０８バイト）、ブロックあたり１５３６ページ、プレーンあたり５４８ブロック、及びデバイスあたり４つ以上のプレーンを含むことができる。別の例として、３２ＧＢ  ＭＬＣメモリデバイス（セルあたり２ビットのデータ（すなわち、４つのプログラム可能な状態）を格納する）は、ページあたり１８，５９２バイト（Ｂ）のデータ（１６，３８４＋２２０８バイト）、ブロックあたり１０２４ページ、プレーンあたり５４８ブロック、デバイスあたり４プレーンを含むことができるが、対応するＴＬＣメモリデバイスの、必要な書き込み時間の半分であり、プログラム／消去（Ｐ／Ｅ）サイクルの２倍である。他の例は、他の数または配置を含むことができる。いくつかの例では、メモリデバイスまたはその一部は、ＳＬＣモードで、または所望のＭＬＣモード（ＴＬＣ、ＱＬＣなどのような）で選択的に動作することができる。
【００４８】
動作中、データは、一般に、ページ単位でＮＡＮＤメモリデバイス１１０に書き込まれ、またはそれから読み出され、ブロック単位で消去される。ただし、１つ以上のメモリ動作（例えば、読み出し、書き込み、消去など）は、必要に応じて、メモリセルのより大きな、またはより小さなグループに実行されることができる。ＮＡＮＤメモリデバイス１１０のデータ転送サイズは、一般にページと称され、ホストのデータ転送サイズは、一般にセクタと称される。
【００４９】
データのページは、ユーザデータのバイト数（例えば、データのセクタ数を含むデータペイロード）、及びその対応するメタデータを含むことができるが、ページサイズは、ユーザデータを格納するために使用されるバイト数のみを指すことが多い。一例として、４ＫＢのページサイズを有するデータのページは、４ＫＢのユーザデータ（例えば、５１２Ｂのセクタサイズを想定する８セクタ）だけでなく、完全性データ（例えば、コードデータのエラー検出または訂正）、アドレスデータ（例えば、論理アドレスデータなど）、またはユーザデータに関連する他のメタデータなどのユーザデータに対応する数バイト（例えば、３２Ｂ、５４Ｂ、２２４Ｂなど）のメタデータを含むことができる。
【００５０】
異なるタイプのメモリセルまたはメモリアレイ１２０は、異なるページサイズを提供することができる、またはそれに関連する異なるメタデータ量を必要とする場合がある。例えば、異なるメモリデバイスタイプは、異なるビットエラーレートを有することができることにより、データのページの完全性を確保するために必要なメタデータ量が異なるという結果になる可能性がある（例えば、ビットエラーレートの高いメモリデバイスは、ビットエラーレートの低いメモリデバイスよりも多いバイトのエラー訂正コードデータを必要とする可能性がある）。一例として、マルチレベルセル（ＭＬＣ）ＮＡＮＤフラッシュデバイスは、対応するシングルレベルセル（ＳＬＣ）ＮＡＮＤフラッシュデバイスよりも高いビットエラーレートを有することができる。そのようなものとして、ＭＬＣデバイスは、対応するＳＬＣデバイスよりも多いメタデータバイトをエラーデータに必要とする可能性がある。
【００５１】
図２は、ワーキングメモリ２２０内の論理対物理テーブル領域２２５の一例を示す。完全なＬ２Ｐテーブル２１５は、ＮＡＮＤアレイ２１０に格納される。ただし、完全なＬ２Ｐテーブルは、ワーキングメモリ２２０内に適合しない。したがって、Ｌ２Ｐテーブル２１５を検索するときに、処理回路２０５（例えば、メモリマネージャ、メモリコントローラなど）は、Ｌ２Ｐテーブル領域２２５をアレイ２１０からワーキングメモリにロードする。
【００５２】
図３は、論理対物理領域３１０、物理ブロック３１５、及び追跡データ構造３２５の間の関係の一例を示す。ここで、追跡データ構造は、インデックスがゼロから始まるバイナリ配列として編成される。したがって、所与のテーブル領域（例えば、領域２）に対応する配列の要素は、領域マイナス１である（例えば、追跡データ構造３２５のインデックス１は領域２に対応する）。データ構造３２５内の各インデックスは、Ｌ２Ｐテーブル３０５内の単一のテーブル領域に一意に対応する。ビットマップまたはバイナリ配列構造は、追跡データ構造の可能な実装として提示されるが、構造化データファイル（例えば、拡張可能マークアップ言語（ＸＭＬ）など）、データベースなどのような他の構造を使用することができる。さらに、インジケーションは、文字または他の記号を含むことができる。
【００５３】
これらのエンティティ間の関係は、ブロック３１５へのホスト（または他の）書き込み中に確立されることができる。Ｌ２Ｐテーブル３０５は、領域Ｎ３１０を含む領域にセグメント化される。論理対物理ページの関係は、領域Ｎ３１０に格納される。ブロック３１５内の物理ページ３２０は、書き込み用のデータを格納するために使用される。インデックスＮ−１  ３３０は、領域Ｎ３１０に対応する。したがって、アレイ要素３３５は、領域Ｎ３１０がブロック３１５に関する関係を有することを示すために、バイナリ「１」に更新される。バイナリ「０」は、対応する領域がブロック３１５に関する関係を有さないことを示す。ブロック３１５が満たされるか、閉じられる場合（例えば、新しい要求を書き込む、解放されたページがこれ以上ない場合）、データ構造３２５は更新されなくなる。
【００５４】
図４は、ブロックＸについての論理対物理領域４１０、物理ブロックＸ４１５、及び追跡データ構造４０５の間の関係の一例を示す。
【００５５】
ここで、追跡データ構造４０５は、ブロックＸ４１５に関するＬ２Ｐテーブル領域のインジケーションが投入される。ブロックＸ４１５についてのガベージコレクション中に、追跡データ構造４０５を読み出し、ガベージコレクションを完了するためにどのＬ２Ｐテーブル領域をワーキングメモリにロードするかを決定する。ここで、追跡データ構造は、領域Ｎ４１０がブロックＸ４１５に関するエントリを含むことを示す。したがって、領域Ｎを不揮発性ストレージにロードすることができる。
【００５６】
ワーキングメモリにロードされると、領域Ｎ４１０は、ＬＢＡ４及びＬＢＡ３のようなブロックＸ４１５などを指すエントリについて検索される。次に、これらのページは、別のブロックに書き込まれ、ブロックＸ４１５に関して無効とマーク付けされる。このプロセスは、ブロックＸ４１５内のすべての有効なページが移動するまで繰り返され、有効なデータがないブロックＸ４１５を残す。次に、ブロックＸ４１５を消去して、ブロックＸのガベージコレクションを完了することができる。上記のように、追跡データ構造４０５は、従来のアプローチを介してガベージコレクションプロセスを完了するために、ワーキングメモリにロードされる必要があるＬ２Ｐテーブル領域の数を減らす。
【００５７】
図５Ａ〜５Ｂは、ブロック内の検証コンポーネントについてのストレージ構成を示す。図５Ａは、ブロックの専用部分がコントローラメタデータ用に留保される編成を示す。したがって、ブロックは、ユーザデータ部分５０５及び補助部分５１０に分割される。テーブル領域追跡のためのデータ構造は、「ＩＮＦＯ」とマーク付けされるセグメントなどの補助部分に格納されることができる。対照的に、図５Ｂは、補助部分がユーザデータセグメント全体を通して散在する結果として、異種部分５１５をもたらす代替の編成を示す。ただし、「ＩＮＦＯ」補助部分５２０は、依然としてブロック上に位置しており、ブロックが最後に書き込まれたときのそのブロックのデータ構造を格納することができる。データ構造を格納するために使用されることができる他の位置は、デバイス管理用にリザーブされるメモリデバイスのエリアを含む。
【００５８】
図６は、ＮＡＮＤ動作レイテンシを制御する方法６００のフローチャートを示す。方法６００の動作は、本明細書に記載されているような電子ハードウェア（例えば、回路）によって実行される。
【００５９】
動作６０５では、書き込み要求をＮＡＮＤデバイスのコントローラで受信する。
【００６０】
動作６１０では、閉じられている物理ブロックに実行するガベージコレクション動作数を計算する。一例では、ケイデンス計算は、ガベージコレクション書き込みと、ホスト書き込みとの間の比率である。一例では、ガベージコレクション書き込みは、物理ブロックから新しい物理ブロックにすべての有効なページを移動させるガベージコレクション動作のカウントであり、ホスト書き込みは、ホスト書き込みのカウントを定義するパラメータであり、このホスト書き込みのカウントを上回るガベージコレクション書き込みを拡散させる。一例では、計算は、ガベージコレクションについてのケイデンス計算にＬ２Ｐ領域検索比率を追加することを含む。一例では、ケイデンス計算にＬ２Ｐ領域検索比率を追加することは、ガベージコレクション書き込みにＬ２Ｐ領域検索比率を追加することを含む。一例では、Ｌ２Ｐ領域検索比率は、ブロックデータ構造内のエントリのカウントに等しい分子を含み、これらのエントリは、物理ブロックへの論理ページ対応を各示す。一例では、Ｌ２Ｐ領域検索比率は、負荷閾値パラメータに等しい分母を含む。
【００６１】
一例では、方法６００の動作は、第二書き込み要求を受信すること、ブロックデータ構造内のエントリのカウンタが負荷閾値パラメータよりも大きいことに応答してガベージコレクション動作の検索をサスペンドすること、及び第二書き込み要求を実行することをも含む。
【００６２】
動作６１５では、ガベージコレクション動作を物理ブロック上で実行する。一例では、各ガベージコレクション動作は、物理ブロック内の所与のページについて動作６２０〜６２５を含む。
【００６３】
動作６２５では、Ｌ２Ｐテーブルを検索し、ページが有効であるかどうかを決定する。一例では、検索は、Ｌ２Ｐテーブル領域ごとにエントリを含むブロックデータ構造によって指示される。一例では、ブロックデータ構造はビットマップである。一例では、ブロックデータ構造内のエントリはシングルビットである。一例では、エントリ内の論理１は、ビットの位置に対応するＬ２Ｐ領域が物理ブロックに対応した論理ページを含むことを示す。一例では、ブロックデータ構造を物理ブロックに書き込む。
【００６４】
一例では、ＮＡＮＤデバイスはワーキングメモリを含む／一例では、Ｌ２Ｐテーブルはワーキングメモリよりも大きい。一例では、Ｌ２Ｐ領域はワーキングメモリよりも大きくはない。一例では、Ｌ２Ｐテーブルを検索する（動作６２５）ことは、論理ページを示すブロックデータ構造内の対応するエントリが物理ブロックに対応したことに応答して、Ｌ２Ｐ領域をワーキングメモリにロードすることを含む。
【００６５】
動作６３０では、ページが有効であることに応答して、ベージを新しい物理ブロックに書き込む。
【００６６】
動作６３５では、ページを新しい物理ブロックに書き込むことを完了することに応答して、書き込み要求を実行する。
【００６７】
一例では、方法６００の動作は、第二書き込み要求を受信すること、ガベージコレクション動作の閾値数がガベージコレクションサイクルでは物理ブロック上に実行されたことに応答してガベージコレクション動作の検索をサスペンドすること、及び第二書き込み要求を実行することを含むように拡張されることができる。
【００６８】
図７は、本明細書に考察される技法（例えば、方法論）のいずれか１つ以上を実行することができる、一例のマシン７００のブロック図を示す。代替の実施形態では、マシン７００は、スタンドアロンデバイスとして動作する場合もあれば、他のマシンに接続される（例えば、ネットワーク化される）場合もある。ネットワーク化された展開では、マシン７００は、サーバクライアントネットワーク環境においてサーバマシン、クライアントマシン、または両方の能力で動作することができる。一例では、マシン７００は、ピアツーピア（Ｐ２Ｐ）（または他の分散型）ネットワーク環境でピアマシンとして機能することができる。マシン７００は、パーソナルコンピュータ（ＰＣ）、タブレットＰＣ、セットトップボックス（ＳＴＢ）、パーソナルデジタルアシスタント（ＰＤＡ）、携帯電話、ウェブアプライアンス、ＩｏＴデバイス、自動車システム、またはそのマシンによって実行されるアクションを指定するインストラクション（シーケンシャルまたはその他の方法）を実行することが可能な任意のマシンであることができる。さらに、単一マシンのみを示しているが、用語「マシン」は、クラウドコンピューティング、サービスとしてのソフトウェア（ＳａａＳ）、他のコンピュータクラスタ構成などの本明細書に考察される方法論のうちのいずれか１つ以上を実行するために１セット（または複数のセット）のインストラクションを個別に、または合わせて実行するマシンの任意の集合体を含むとも解釈されるものとする。
【００６９】
本明細書に記載される例は、論理、構成要素、デバイス、パッケージ、または機構を含み得るか、またはそれらによって動作し得る。回路網は、ハードウェア（例えば、単純な回路、ゲート、ロジックなど）を含む有形のエンティティに実装された回路の集合（例えば、セット）である。回路網の構成要素は、時間の経過及び基礎となるハードウェアの変動性に柔軟に対応し得る。回路網は、単独でまたは組み合わせて、動作時に特定のタスクを実行することができるメンバーを含む。一例では、回路網のハードウェアは、特定の動作を実施するように不変に設計される場合がある（例えば、ハードウェアに組み込まれている）。一例では、回路網のハードウェアは、特定の操作のインストラクションを符号化するために、物理的に修正された（例えば、不変密集粒子などの磁気的に、電気的に可動な配置）コンピュータ可読媒体を含む可変に接続された物理的構成要素（例えば、実行ユニット、トランジスタ、単純な回路）を含む場合がある。物理的構成要素を接続する際に、ハードウェア構成物の基礎となる電気的特性は、例えば、絶縁体から導体に、またはその逆に変更される。このインストラクションにより、関係するハードウェア（実行ユニットまたはロード機構など）は、可変接続を介してハードウェア内に回路網の構成要素を作成し、動作中に特定のタスクの一部を実行できる。したがって、コンピュータ可読媒体は、デバイスが動作しているときに、回路網の他の構成要素に通信可能に結合される。一例では、物理的構成要素のいずれも、複数の回路網の複数の要素の中で使用できる。例えば、動作中、実行ユニットは、ある時点で第１の回路網の第１の回路で使用され、別の時点で第１の回路網の第２の回路によってまたは第２の回路網の第３の回路によって再利用される場合がある。
【００７０】
マシン（例えば、コンピュータシステム）７００（例えば、ホストデバイス１０５、メモリデバイス１１０など）は、ハードウェアプロセッサ７０２（例えば、中央処理装置（ＣＰＵ）、グラフィックスプロセッシングユニット（ＧＰＵ）、ハードウェアプロセッサコア、またはメモリコントローラ１１５のようなそれらの任意の組み合わせなど）、メインメモリ７０４及びスタティックメモリ７０６を含むことができ、これらの一部またはすべては、インターリンク（例えば、バス）７０８を介して互いに通信することができる。マシン７００は、ディスプレイユニット７１０、英数字入力デバイス（例えば、キーボード）７１２、及びユーザーインタフェース（（ＵＩ）ナビゲーションデバイス（例えば、マウス）７１４をさらに含むことができる。一例では、ディスプレイユニット７１０、入力デバイス７１２、及びＵＩナビゲーションデバイス７１４は、タッチスクリーンディスプレイであることができる。マシン７００は、ストレージデバイス（例えば、ドライブユニット）７１６、信号発生デバイス７１８（例えば、スピーカ）、ネットワークインタフェースデバイス７２０、及び全地球測位システム（ＧＰＳ）センサ、コンパス、加速度計、または他のセンサなどの１つ以上のセンサ７１６をさらに含むことができる。マシン７００は、１つ以上の周辺機器（例えば、プリンタ、カードリーダなど）と通信する、またはそれらを制御するために、シリアル（例えば、ユニバーサルシリアルバス（ＵＳＢ））、パラレル、または他の有線もしくは無線（例えば、赤外線（ＩＲ）、近距離無線通信（ＮＦＣ）など）接続などの出力コントローラ７２８を含むことができる。
【００７１】
ストレージデバイス７１６は、機械可読媒体７２２を含むことができ、この機械可読媒体には、本明細書に説明される技法または機能のうちの任意の１つ以上を具現化する、またはそれらによって利用される、１セット以上のデータ構造またはインストラクション７２４（例えば、ソフトウェア）が格納される。インストラクション７２４もまた、マシン７００によるそれらの実行中に、メインメモリ７０４内に、スタティックメモリ７０６内に、またはハードウェアプロセッサ７０２内に、完全に、または少なくとも部分的に存在することができる。一例では、ハードウェアプロセッサ７０２、メインメモリ７０４、スタティックメモリ７０６、またはストレージデバイス７１６の１つまたは任意の組み合わせは、機械可読媒体７２２を構成することができる。
【００７２】
機械可読媒体７２２は、単一の媒体として示されているが、用語「機械可読媒体」は、１つ以上のインストラクション７２４を格納するように構成された単一の媒体または複数の媒体（例えば、集中型もしくは分散型のデータベース、または関連付けられたキャッシュ及びサーバ）を含む場合がある。
【００７３】
用語「機械可読媒体」は、マシン７００による実行のためのインストラクションを格納する、符号化する、または搬送することができ、マシン７００に、本開示の技術のいずれか１つ以上を実行させる、またはそのようなインストラクションによって使用される、もしくはそのようなインストラクションと関連付けられるデータ構造を格納する、符号化する、または搬送することができる任意の媒体を含むことができる。非限定的な機械可読媒体の例は、ソリッドステートメモリ、ならびに光及び磁気媒体を含むことができる。一例では、大容量の機械可読媒体は不変（例えば、静止）質量を有する複数の粒子を使用する機械可読媒体を含む。したがって、大容量の機械可読媒体は一時的な伝播信号ではない。大容量の機械可読媒体の具体的な例は、半導体メモリデバイス（例えば、電気的プログラマブル読み出し専用メモリ（ＥＰＲＯＭ）、電子的消去可能プログラマブル読み出し専用メモリ（ＥＥＰＲＯＭ）及びフラッシュメモリデバイスなどの不揮発性メモリ、内蔵ハードディスク及びリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにＣＤ−ＲＯＭ及びＤＶＤ−ＲＯＭディスクを含み得る。
【００７４】
ストレージデバイス７２１に格納されるインストラクション７２４（例えば、ソフトウェア、プログラム、オペレーティングシステム（ＯＳ）など）または他のデータは、プロセッサ７０２による使用のためにメモリ７０４からアクセスされることができる。メモリ７０４（例えば、ＤＲＡＭ）は、典型的には、高速であるが揮発性であり、したがって、「オフ」状態にある間を含む長期ストレージに適しているストレージデバイス７２１（例えば、ＳＳＤ）とは異なるタイプのストレージである。ユーザまたはマシン７００が使用するインストラクション７２４またはデータは、典型的には、プロセッサ７０２が使用するためにメモリ７０４にロードされる。メモリ７０４が一杯になると、メモリ７０４を補うために、ストレージデバイス７２１からの仮想空間を割り当てることができるが、ストレージデバイス７２１が典型的には、メモリ７０４よりも遅く、書き込み速度が典型的には、読み取り速度の少なくとも２倍遅いので、仮想メモリの使用は、ストレージデバイスのレイテンシに起因してユーザエクスペリエンスを大幅に低下させる場合がある（メモリ７０４、例えば、ＤＲＡＭとは対照的に）。さらに、仮想メモリのためのストレージデバイス７２１の使用は、ストレージデバイス７２１の使用可能な寿命を大幅に減らす可能性がある。
【００７５】
仮想メモリとは対照的に、仮想メモリ圧縮（例えば、Ｌｉｎｕｘ（登録商標）カーネル機能「ＺＲＡＭ」）は、メモリの一部を圧縮ブロックストレージとして使用し、ストレージデバイス７２１へのページングを回避する。ページングは、そのようなデータをストレージデバイス７２１に書き込むことが必要であるまで圧縮ブロックで行われる。仮想メモリ圧縮は、メモリ７０４の使用可能なサイズを増加させ、ストレージデバイス７２１での摩耗を減少させる。
【００７６】
モバイル電子デバイスについて最適化されるストレージデバイス、またはモバイルストレージは、従来、ＭＭＣソリッドステートストレージデバイス（例えば、マイクロセキュアデジタル（ｍｉｃｒｏＳＤ（商標））カードなど）を含む。ＭＭＣデバイスは、ホストデバイスとの複数のパラレルインタフェース（例えば、８ビットパラレルインタフェース）を含み、多くの場合、取り外し可能であり、ホストデバイスからコンポーネントを分離させる。対照的に、ｅＭＭＣ（商標）デバイスは、回路基板に取り付けられ、ホストデバイスのコンポーネントと見なされ、シリアルＡＴＡ（商標）（シリアルＡＴ（Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ）アタッチメント、またはＳＡＴＡ）ベースのＳＳＤデバイスに匹敵する読み出し速度を有する。ただし、仮想デバイスまたは拡張現実デバイスを完全に有効にしたり、ネットワーク速度を上げるために利用したりするために、モバイルデバイスのパフォーマンスに対する需要は増え続けている。この需要に応えて、ストレージデバイスは、パラレル通信インタフェースからシリアル通信インタフェースに移行している。コントローラ及びファームウェアを含むユニバーサルフラッシュストレージ（ＵＦＳ）デバイスは、専用の読み出し／書き込み経路を備える低電圧差動信号（ＬＶＤＳ）シリアルインタフェースを使用してホストデバイスと通信し、読み出し／書き込み速度をさらに向上させる。
【００７７】
インストラクション７２４はさらに、いくつかの転送プロトコル（例えば、フレームリレー、インターネットプロトコル（ＩＰ）、伝送制御プロトコル（ＴＣＰ）、ユーザーデータグラムプロトコル（ＵＤＰ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）など）のうちの任意の１つを利用するネットワークインタフェースデバイス７２０を経由して伝送媒体を使用して通信ネットワーク７２６を介して送信または受信される場合がある。通信ネットワークの例は、中でもローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、パケットデータネットワーク（例えば、インターネット）、携帯電話網（例えば、セルラーネットワーク）、従来型電話サービス（ＰＯＴＳ）ネットワーク、及び無線データネットワーク（例えば、Ｗｉ−Ｆｉ（登録商標）として知られる規格の電気電子技術者協会（ＩＥＥＥ）８０２．１１ファミリ、ＷｉＭａｘ（登録商標）として知られる規格のＩＥＥＥ８０２．１６ファミリ）、規格のＩＥＥＥ８０２．１５．４ファミリ、ピアツーピア（Ｐ２Ｐ）ネットワークを含む場合がある。一例では、ネットワークインタフェースデバイス７２０は、通信ネットワーク７２６に接続するために１つ以上の物理的なジャック（例えば、Ｅｔｈｅｒｎｅｔ、同軸ジャック、もしくは電話ジャック）または１つ以上のアンテナを含む場合がある。一例では、ネットワークインタフェースデバイス７２０は、単一入力複数出力（ＳＩＭＯ）技術、複数入力複数出力（ＭＩＭＯ）技術、または複数入力単一出力（ＭＩＳＯ）技術のうちの少なくとも１つを使用して無線通信するために複数のアンテナを含む場合がある。用語「伝送媒体」は、マシン７００による実行のためのインストラクションを格納する、符号化する、または搬送することができる任意の無形媒体を含み、そのようなソフトウェアの通信を容易にするためにデジタルもしくはアナログ通信信号、または他の無形媒体を含むと解釈されるものとする。
【００７８】
追加の実施例
実施例１は、ＮＡＮＤ動作レイテンシを制御するデバイスであり、前記デバイスは、いくつかのブロックを含むＮＡＮＤアレイであって、前記いくつかの物理ブロックの少なくとも１つの物理ブロックが閉じられている、前記ＮＡＮＤアレイと、コントローラとを含み、前記コントローラは、書き込み要求を受信し、閉じられている前記物理ブロック上で実行するガベージコレクション動作数を計算し、前記計算がガベージコレクションについてのケイデンス計算への論理対物理（Ｌ２Ｐ）領域検索比率の追加を含み、前記計算されたガベージコレクション動作数を前記物理ブロック上で実行し、各ガベージコレクション動作が、ページを前記物理ブロック内に与えられると、Ｌ２Ｐテーブルを検索して前記ページが有効であるかどうかを判定し、Ｌ２Ｐテーブル領域ごとにエントリを含むブロックデータ構造によって前記検索が指示され、前記Ｌ２Ｐテーブル領域内の論理ページが前記物理ブロックに対応したかどうかを前記エントリが示し、前記ページが有効であることに応答して前記ページを前記いくつかのブロックのうちの新しい物理ブロックに書き込む前記コントローラを含み、前記計算されたガベージコレクション動作数が実行されることに応答して前記書き込み要求を実行する。
【００７９】
実施例２では、前記Ｌ２Ｐ領域検索比率は、前記物理ブロックへの論理ページ対応を示す前記ブロックデータ構造内のエントリのカウントに等しい分子を含む、実施例１に記載の発明の主題。
【００８０】
実施例３では、前記Ｌ２Ｐ領域検索比率は、負荷閾値パラメータに等しい分母を含む、実施例２に記載の発明の主題。
【００８１】
実施例４では、前記コントローラは、第二書き込み要求を受信し、前記ブロックデータ構造内の前記エントリのカウントが前記負荷閾値パラメータよりも大きいことに応答して前記ガベージコレクション動作をサスペンドし、前記第二書き込み要求を実行する、ように構成される、実施例３に記載の発明の主題。
【００８２】
実施例５では、前記ケイデンス計算に前記Ｌ２Ｐ領域検索比率を追加するために、前記コントローラは、前記ガベージコレクション書き込みに前記Ｌ２Ｐ領域検索比率を追加する、実施例４に記載の発明の主題。
【００８３】
実施例６では、前記コントローラは、第二書き込み要求を受信し、ガベージコレクション動作の閾値数がガベージコレクションサイクルでは前記物理ブロック上に実行されたことに応答して前記ガベージコレクション動作をサスペンドし、前記第二書き込み要求を実行する、ように構成される、実施例１〜５のいずれかに記載の発明の主題。
【００８４】
実施例７では、前記ケイデンス計算は、ガベージコレクション書き込みとホスト書き込みとの間の比率であり、前記ガベージコレクション書き込みは、すべての有効なページを前記物理ブロックから前記新しい物理ブロックに移動させるガベージコレクション動作のカウントであり、前記ホスト書き込みは、ホスト書き込みのカウントを定義するパラメータであり、前記ホスト書き込みのカウントを上回る前記ガベージコレクション書き込みを拡散させる、実施例１〜６のいずれかに記載の発明の主題。
【００８５】
実施例８では、前記ブロックデータ構造はビットマップである、実施例１〜７のいずれかに記載の発明の主題。
【００８６】
実施例９では、前記データ構造内のエントリはシングルビットである、実施例８に記載の発明の主題。
【００８７】
実施例１０では、エントリ内の論理１は、前記ビットの位置に対応するＬ２Ｐ領域が前記物理ブロックに対応した論理ページを含むことを示す、実施例９に記載の発明の主題。
【００８８】
実施例１１では、前記データ構造は前記物理ブロックに書き込まれる、実施例１〜１０のいずれかに記載の発明の主題。
【００８９】
実施例１２では、前記デバイスは、ワーキングメモリを含み、前記Ｌ２Ｐテーブルは、前記ワーキングメモリよりも大きく、Ｌ２Ｐ領域は、前記ワーキングメモリよりも大きくない、実施例１〜１１のいずれかに記載の発明の主題。
【００９０】
実施例１３では、前記Ｌ２Ｐテーブルを検索するために、論理ページを示す前記ブロックデータ構造内の対応するエントリが前記物理ブロックに対応したことに応答して、前記コントローラは、Ｌ２Ｐ領域を前記ワーキングメモリにロードする、実施例１２に記載の発明の主題。
【００９１】
実施例１４は、ＮＡＮＤ動作レイテンシを制御する方法であり、前記方法は、書き込み要求をＮＡＮＤデバイスのコントローラで受信し、閉じられている物理ブロック上で実行するガベージコレクション動作数を計算し、前記計算することがガベージコレクションについてのケイデンス計算に論理対物理（Ｌ２Ｐ）領域検索比率を追加することを含み、前記計算されたガベージコレクション動作数を前記物理ブロック上で実行し、各ガベージコレクション動作が、ページを前記物理ブロック内に与えられると、Ｌ２Ｐテーブルを検索して前記ページが有効であるかどうかを判定し、前記検索することがＬ２Ｐテーブル領域ごとにエントリを含むブロックデータ構造によって指示され、前記Ｌ２Ｐテーブル領域内の論理ページが前記物理ブロックに対応したかどうかを前記エントリが示し、前記ページが有効であることに応答して前記ページを新しい物理ブロックに書き込むことを含み、前記計算されたガベージコレクション動作数が実行されることに応答して前記書き込み要求を実行することを含む。
【００９２】
実施例１５では、前記Ｌ２Ｐ領域検索比率は、前記物理ブロックへの論理ページ対応を示す前記ブロックデータ構造内のエントリのカウントに等しい分子を含む、実施例１４に記載の発明の主題。
【００９３】
実施例１６では、前記Ｌ２Ｐ領域検索比率は、負荷閾値パラメータに等しい分母を含む、実施例１５に記載の発明の主題。
【００９４】
実施例１７では、第二書き込み要求を受信し、前記ブロックデータ構造内の前記エントリのカウントが前記負荷閾値パラメータよりも大きいことに応答して前記ガベージコレクション動作をサスペンドし、前記第二書き込み要求を実行することを含む、実施例１６の発明の主題。
【００９５】
実施例１８では、前記Ｌ２Ｐ領域検索比率を前記ケイデンス計算に追加することは、前記Ｌ２Ｐ領域検索比率を前記ガベージコレクション書き込みに追加することを含む、実施例１７に記載の発明の主題。
【００９６】
実施例１９では、第二書き込み要求を受信し、ガベージコレクション動作の閾値数がガベージコレクションサイクルでは前記物理ブロック上に実行されたことに応答して前記ガベージコレクション動作をサスペンドし、前記第二書き込み要求を実行することを含む、実施例１４〜１８のいずれかに記載の発明の主題。
【００９７】
実施例２０では、前記ケイデンス計算は、ガベージコレクション書き込みとホスト書き込みとの間の比率であり、前記ガベージコレクション書き込みは、すべての有効なページを前記物理ブロックから前記新しい物理ブロックに移動させるガベージコレクション動作のカウントであり、前記ホスト書き込みは、ホスト書き込みのカウントを定義するパラメータであり、前記ホスト書き込みのカウントを上回る前記ガベージコレクション書き込みを拡散させる、実施例１４〜１９のいずれかに記載の発明の主題。
【００９８】
実施例２１では、前記ブロックデータ構造はビットマップである、実施例１４〜２０のいずれかに記載の発明の主題。
【００９９】
実施例２２では、前記データ構造内のエントリはシングルビットである、実施例２１に記載の発明の主題。
【０１００】
実施例２３では、エントリ内の論理１は、前記ビットの位置に対応するＬ２Ｐ領域が前記物理ブロックに対応した論理ページを含むことを示す、実施例２２に記載の発明の主題。
【０１０１】
実施例２４では、前記データ構造は前記物理ブロックに書き込まれる、実施例１４〜２３のいずれかに記載の発明の主題。
【０１０２】
実施例２５では、前記ＮＡＮＤデバイスは、ワーキングメモリを含み、前記Ｌ２Ｐテーブルは、前記ワーキングメモリよりも大きく、Ｌ２Ｐ領域は、前記ワーキングメモリよりも大きくない、実施例１４〜２４のいずれかに記載の発明の主題。
【０１０３】
実施例２６では、前記Ｌ２Ｐテーブルを検索することは、論理ページを示す前記ブロックデータ構造内の対応するエントリが前記物理ブロックに対応したことに応答して、Ｌ２Ｐ領域を前記ワーキングメモリにロードすることを含む、実施例２５に記載の発明の主題。
【０１０４】
実施例２７は、ＮＡＮＤ動作レイテンシを制御するためのインストラクションを含む機械可読媒体であり、前記インストラクションは、マシンの処理回路によって実行されるときに、ＮＡＮＤデバイスのコントローラで書き込み要求を受信し、閉じられている物理ブロック上で実行するガベージコレクション動作数を計算し、前記計算することがガベージコレクションについてのケイデンス計算に論理対物理（Ｌ２Ｐ）領域検索比率を追加することを含み、前記計算されたガベージコレクション動作数を前記物理ブロック上で実行し、各ガベージコレクション動作が、ページを前記物理ブロック内に与えられると、Ｌ２Ｐテーブルを検索して前記ページが有効であるかどうかを判定し、前記検索することがＬ２Ｐテーブル領域ごとにエントリを含むブロックデータ構造によって指示され、前記Ｌ２Ｐテーブル領域内の論理ページが前記物理ブロックに対応したかどうかを前記エントリが示し、前記ページが有効であることに応答して前記ページを新しい物理ブロックに書き込むことを含み、前記計算されたガベージコレクション動作数が実行されることに応答して前記書き込み要求を実行することを含む動作を前記処理回路に実行させる。
【０１０５】
実施例２８では、前記Ｌ２Ｐ領域検索比率は、前記物理ブロックへの論理ページ対応を示す前記ブロックデータ構造内のエントリのカウントに等しい分子を含む、実施例２７に記載の発明の主題。
【０１０６】
実施例２９では、前記Ｌ２Ｐ領域検索比率は、負荷閾値パラメータに等しい分母を含む、実施例２８に記載の発明の主題。
【０１０７】
実施例３０では、前記動作は、第二書き込み要求を受信し、前記ブロックデータ構造内の前記エントリのカウントが前記負荷閾値パラメータよりも大きいことに応答して、前記ガベージコレクション動作をサスペンドし、前記第二書き込み要求を実行することを含む、実施例２９に記載の発明の主題。
【０１０８】
実施例３１では、前記Ｌ２Ｐ領域検索比率を前記ケイデンス計算に追加することは、前記Ｌ２Ｐ領域検索比率を前記ガベージコレクション書き込みに追加することを含む、実施例３０に記載の発明の主題。
【０１０９】
実施例３２では、前記動作は、第二書き込み要求を受信し、ガベージコレクション動作の閾値数がガベージコレクションサイクルでは前記物理ブロック上に実行されたことに応答して前記ガベージコレクション動作をサスペンドし、前記第二書き込み要求を実行することを含む、実施例２７〜３１のいずれかに記載の発明の主題。
【０１１０】
実施例３３では、前記ケイデンス計算は、ガベージコレクション書き込みとホスト書き込みとの間の比率であり、前記ガベージコレクション書き込みは、すべての有効なページを前記物理ブロックから前記新しい物理ブロックに移動させるガベージコレクション動作のカウントであり、前記ホスト書き込みは、ホスト書き込みのカウントを定義するパラメータであり、前記ホスト書き込みのカウントを上回る前記ガベージコレクション書き込みを拡散させる、実施例２７〜３２のいずれかに記載の発明の主題。
【０１１１】
実施例３４では、前記ブロックデータ構造はビットマップである、実施例２７〜３３のいずれかに記載の発明の主題。
【０１１２】
実施例３５では、前記データ構造内のエントリはシングルビットである、実施例３４に記載の発明の主題。
【０１１３】
実施例３６では、エントリ内の論理１は、前記ビットの位置に対応するＬ２Ｐ領域が前記物理ブロックに対応した論理ページを含むことを示す、実施例３５に記載の発明の主題。
【０１１４】
実施例３７では、前記データ構造は前記物理ブロックに書き込まれる、実施例２７〜３６のいずれかに記載の発明の主題。
【０１１５】
実施例３８では、前記ＮＡＮＤデバイスは、ワーキングメモリを含み、前記Ｌ２Ｐテーブルは、前記ワーキングメモリよりも大きく、Ｌ２Ｐ領域は、前記ワーキングメモリよりも大きくない、実施例２７〜３７のいずれかに記載の発明の主題。
【０１１６】
実施例３９では、前記Ｌ２Ｐテーブルを検索することは、論理ページを示す前記ブロックデータ構造内の対応するエントリが前記物理ブロックに対応したことに応答して、Ｌ２Ｐ領域を前記ワーキングメモリにロードすることを含む、実施例３８に記載の発明の主題。
【０１１７】
実施例４０は、ＮＡＮＤ動作レイテンシを制御するシステムであり、前記システムは、ＮＡＮＤデバイスのコントローラで書き込み要求を受信する手段と、閉じられている物理ブロック上で実行するガベージコレクション動作数を計算する手段であって、前記計算することがガベージコレクションについてのケイデンス計算に論理対物理（Ｌ２Ｐ）領域検索比率を追加することを含む、前記計算する手段と、前記計算されたガベージコレクション動作数を前記物理ブロック上で実行する手段であって、各ガベージコレクション動作が、ページを前記物理ブロック内に与えられると、前記ページが有効であるかどうかを判定するためにＬ２Ｐテーブルを検索する手段であって、前記検索することがＬ２Ｐテーブル領域ごとにエントリを含むブロックデータ構造によって指示され、前記Ｌ２Ｐテーブル領域内の論理ページが前記物理ブロックに対応したかどうかを前記エントリが示す、前記検索する手段、及び前記ページが有効であることに応答して前記ページを新しい物理ブロックに書き込む手段を含む、前記実行する手段と、前記計算されたガベージコレクション動作数が実行されることに応答して前記書き込み要求を実行する手段とを含む。
【０１１８】
実施例４１では、前記Ｌ２Ｐ領域検索比率は、前記物理ブロックへの論理ページ対応を示す前記ブロックデータ構造内のエントリのカウントに等しい分子を含む、実施例４０に記載の発明の主題。
【０１１９】
実施例４２では、前記Ｌ２Ｐ領域検索比率は、負荷閾値パラメータに等しい分母を含む、実施例４１に記載の発明の主題。
【０１２０】
実施例４３では、第二書き込み要求を受信する手段と、前記ブロックデータ構造内の前記エントリのカウントが前記負荷閾値パラメータよりも大きいことに応答してガベージコレクション動作をサスペンドする手段と、前記第二書き込み要求を実行する手段とを含む、実施例４２に記載の発明の主題。
【０１２１】
実施例４４では、前記Ｌ２Ｐ領域検索比率を前記ケイデンス計算に追加する前記手段は、前記Ｌ２Ｐ領域検索比率を前記ガベージコレクション書き込みに追加することを含む、実施例４３に記載の発明の主題。
【０１２２】
実施例４５では、第二書き込み要求を受信する手段と、ガベージコレクション動作の閾値数がガベージコレクションサイクルでは前記物理ブロック上に実行されたことに応答してガベージコレクション動作をサスペンドする手段と、前記第二書き込み要求を実行する手段とを含む、実施例４０〜４４のいずれかに記載の発明の主題。
【０１２３】
実施例４６では、前記ケイデンス計算は、ガベージコレクション書き込みとホスト書き込みとの間の比率であり、前記ガベージコレクション書き込みは、すべての有効なページを前記物理ブロックから前記新しい物理ブロックに移動させるガベージコレクション動作のカウントであり、前記ホスト書き込みは、ホスト書き込みのカウントを定義するパラメータであり、前記ホスト書き込みのカウントを上回る前記ガベージコレクション書き込みを拡散させる、実施例４０〜４５のいずれかに記載の発明の主題。
【０１２４】
実施例４７では、前記ブロックデータ構造はビットマップである、実施例４０〜４６のいずれかに記載の発明の主題。
【０１２５】
実施例４８では、前記データ構造内のエントリはシングルビットである、実施例４７に記載の発明の主題。
【０１２６】
実施例４９では、エントリ内の論理１は、前記ビットの位置に対応するＬ２Ｐ領域が前記物理ブロックに対応した論理ページを含むことを示す、実施例４８に記載の発明の主題。
【０１２７】
実施例５０では、前記データ構造は前記物理ブロックに書き込まれる、実施例４０〜４９のいずれかに記載の発明の主題。
【０１２８】
実施例５１では、前記ＮＡＮＤデバイスは、ワーキングメモリを含み、前記Ｌ２Ｐテーブルは、前記ワーキングメモリよりも大きく、Ｌ２Ｐ領域は、前記ワーキングメモリよりも大きくない、実施例４０〜５０のいずれかに記載の発明の主題。
【０１２９】
実施例５２では、前記Ｌ２Ｐテーブルを検索する前記手段は、論理ページを示す前記ブロックデータ構造内の対応するエントリが前記物理ブロックに対応したことに応答して、Ｌ２Ｐ領域を前記ワーキングメモリにロードする手段を含む、実施例５１に記載の発明の主題。
【０１３０】
実施例５３は、少なくとも１つの機械可読媒体であって、処理回路によって実行されるときに、実施例１〜５２のいずれかを実装する動作を前記処理回路に実行させるインストラクションを含む、前記少なくとも１つの機械可読媒体である。
【０１３１】
実施例５４は、実施例１〜５２のいずれかを実装する手段を含む装置である。
【０１３２】
実施例５５は、実施例１〜５２のいずれかを実装するシステムである。
【０１３３】
実施例５６は、実施例１〜５２のいずれかを実装する方法である。
【０１３４】
上記の詳細な説明は、詳細な説明の一部を形成する添付図面に対する参照を含む。図面は、例示として、本発明を実施できる特定の実施形態を示す。これらの実施形態は、本明細書では「実施例」とも呼ばれる。そのような実施例は、図示または説明された要素に加えて要素を含む場合がある。しかしながら、本発明者らは、図示または説明されたそれらの要素のみが提供される実施例も企図する。さらに、本発明者は、本明細書に図示または説明された特定の実施例（もしくはその１つ以上の態様）に関して、または他の実施例（もしくはその１つ以上の態様）に関して、図示または説明されたそれらの要素（もしくはその１つ以上の態様）の任意の組み合わせまたは順列を使用する実施例も企図する。
【０１３５】
本明細書では、用語「ａ」または「ａｎ」は、特許文書で一般的であるように、「少なくとも１つの（ａｔ  ｌｅａｓｔ  ｏｎｅ）」または「１つ以上の（ｏｎｅ  ｏｒ  ｍｏｒｅ）」の任意の他の実施例または用法とは関係なく、１つまたは複数を含むために使用される。本明細書では、用語「または（ｏｒ）」は、非排他的を指す、つまり別段の指示がない限り、「ＡまたはＢ（Ａ  ｏｒ  Ｂ）」は「ＡであるがＢではなく（Ａ  ｂｕｔ  ｎｏｔ  Ｂ）」、「ＢであるがＡではなく（Ｂ  ｂｕｔ  ｎｏｔ  Ａ）」、及び「Ａ及びＢ（Ａ  ａｎｄ  Ｂ）」を含み得るように使用される。添付の特許請求の範囲では、用語「含む（ｉｎｃｌｕｄｉｎｇ）」及び「〜において（ｉｎ  ｗｈｉｃｈ）」は、それぞれの用語「含む（ｃｏｍｐｒｉｓｉｎｇ）」及び「そこで（ｗｈｅｒｅｉｎ）」の分かりやすい英語の同等物として使用される。また、以下の特許請求の範囲では、用語「含む（ｉｎｃｌｕｄｉｎｇ）」及び「備える（ｃｏｍｐｒｉｓｉｎｇ）」は、オープンエンドである。つまり、請求項の中のそのような用語の後に示される要素に加えて要素を含むシステム、デバイス、商品、またはプロセスもその請求項の範囲に含まれると見なされる。さらに、以下の特許請求の範囲では、用語「第１の」、「第２の」、及び「第３の」などは、単にラベルとして使用されており、その対象に対する数的な要件を課すことを意図していない。
【０１３６】
さまざまな実施例では、本明細書に記載されるコンポーネント、コントローラ、プロセッサ、ユニット、エンジン、またはテーブルは、とりわけ、物理デバイスに格納される物理回路またはファームウェアを含むことができる。本明細書で使用される場合、「プロセッサ」は、限定されないが、マイクロプロセッサ、マイクロコントローラ、グラフィックプロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、または、プロセッサまたはマルチコアデバイスのグループを含む、任意の他のタイプのプロセッサまたは処理回路などの任意のタイプの計算回路を意味する。
【０１３７】
「ウェーハ」及び「基板」という用語は、集積回路が形成される任意の構造、そのうえ集積回路製造のさまざまな段階中のそれらのような構造を一般に指すために本明細書では使用される。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではなく、添付の特許請求の範囲のみが、そのような特許請求の範囲が権利のある均等物の全範囲に加えて、さまざまな実施形態の範囲を定義する。
【０１３８】
本開示に従って、本明細書に記載されるさまざまな実施形態は、メモリセルの垂直構造（例えば、メモリセルのＮＡＮＤストリング）を利用するメモリを含む。本明細書で使用される場合、指向性形容詞は、メモリセルが形成される基板表面に対して取られる（すなわち、垂直構造は、基板表面から離れて延伸すると見なされ、垂直構造の下端部は、基板表面に最も近い端部と見なされ、垂直構造の上端部は、基板表面から最も遠い端部と見なされる）。
【０１３９】
本明細書で使用される場合、メモリセルの動作は、メモリセルから読み出すこと、メモリセルに書き込むこと、またはメモリセルを消去することを含む。メモリセルを意図された状態に置く動作は、本明細書では「プログラミング」と呼ばれ、メモリセルへの書き込みまたはメモリセルからの消去（例えば、メモリセルは消去状態にプログラムされ得る）の両方を含むことができる。
【０１４０】
本開示の１つ以上の実施形態によれば、メモリデバイスの内部に、または外部に配置されるメモリコントローラ（例えば、プロセッサ、コントローラ、ファームウェアなど）は、摩耗サイクルの量、または摩耗状態（例えば、摩耗サイクルを記録すること、摩耗サイクルの発生時にメモリデバイスの動作をカウントすること、カウントを開始するメモリデバイスの動作を追跡すること、摩耗状態に対応するメモリデバイス特性を評価することなど）を決定すること（例えば、選択すること、設定すること、調整すること、計算すること、変更すること、クリアすること、通信すること、適合させること、導出すること、定義すること、利用すること、修正すること、適用することなど）ができる。
【０１４１】
本開示の１つ以上の実施形態によれば、メモリアクセスデバイスは、メモリ動作のたびにメモリデバイスに摩耗サイクル情報を提供するように構成されることができる。メモリデバイス制御回路（例えば、制御ロジック）は、摩耗サイクル情報に対応するメモリデバイスパフォーマンスの変化を補償するようにプログラムされることができる。メモリデバイスは、摩耗サイクル情報を受信し、この摩耗サイクル情報に応答して、１つ以上の動作パラメータ（例えば、値、特性）を決定することができる。
【０１４２】
要素が別の要素の「上にある（ｏｎ）」、別の要素に「接続している（ｃｏｎｎｅｃｔｅｄ  ｔｏ）」、または別の要素と「結合している（ｃｏｕｐｌｅｄ  ｗｉｔｈ）」と呼ばれる場合、その要素は、他の要素の上に直接あり得るか、直接接続し得るか、または直接結合し得るか、あるいは介在する要素が存在し得ることが理解されよう。対照的に、要素が別の要素の「上に直接ある（ｄｉｒｅｃｔｌｙ  ｏｎ）」、別の要素に「直接接続している（ｄｉｒｅｃｔｌｙ  ｃｏｎｎｅｃｔｅｄ  ｔｏ）」、または別の要素と「直接結合している（ｄｉｒｅｃｔｌｙ  ｃｏｕｐｌｅｄ  ｗｉｔｈ）」と呼ばれる場合、介在する要素または層は存在しない。２つの要素がそれらを結ぶ線で図面に示されている場合、別段の指示がない限り、２つの要素は結合するか、または直接結合することができる。
【０１４３】
本明細書に説明する方法の例は、少なくとも部分的に機械またはコンピュータに実装することが可能である。一部の例は、上記の例に説明したように方法を実施するために電子デバイスを構成するように動作可能なインストラクションで符号化されたコンピュータ可読媒体または機械可読媒体を含み得る。このような方法の実装は、マイクロコード、アセンブリ言語コード、高水準言語コードなどのようなコードを含むことができる。このようなコードは、さまざまな方法を実施するためのコンピュータ可読インストラクションを含むことができる。コードは、コンピュータプログラム製品の一部を形成し得る。さらに、コードは、実行中または他の時間などに、１つまたは複数の揮発性または不揮発性の有形のコンピュータ可読媒体上に有形に格納できる。これらの有形のコンピュータ可読媒体の例は、限定されないが、ハードディスク、リムーバブル磁気ディスク、リムーバブル光ディスク（例えば、コンパクトディスク及びデジタルビデオディスク）、磁気カセット、メモリカードまたはスティック、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、ソリッドステートドライブ（ＳＳＤ）、ユニバーサルフラッシュストレージ（ＵＦＳ）デバイス、組み込みＭＭＣ（ｅＭＭＣ）デバイスなどを含むことができる。
【０１４４】
上記の説明は、例示を意図したものであり、限定的なものではない。例えば、上述の例（またはその１つ以上の態様）は、互いと組み合わせて使用される場合がある。上記の説明を検討する際に当業者によってなど他の実施形態を使用できる。これは、特許請求の範囲または意味を解釈または限定するために使用されないとの理解のもとに提供される。また、上記の発明を実施するための形態では、さまざまな特徴が本開示を効率化するために互いにグループ化される場合がある。これは、特許請求されていない開示された特徴が任意の請求項に対して不可欠であることを意図すると解釈されるべきではない。むしろ、本発明の主題は、特定の開示されている実施形態のすべてに満たない特徴に存在する場合がある。したがって、次の特許請求の範囲は、詳細な説明に組み込まれ、各特許請求の範囲は、別個の実施形態として自立しており、そのような実施形態は、様々な組み合わせまたは順列で互いに組み合わせることができると考えられる。本発明の範囲は、添付された特許請求の範囲に関して、そのような特許請求の範囲によって権利が与えられる均等物の全範囲とともに定められるべきである。
【図１】
2021528783.tif 000007
【図２】
2021528783.tif 000008
【図３】
2021528783.tif 000009
【図４】
2021528783.tif 000010
【図５】
2021528783.tif 000011
【図６】
2021528783.tif 000012
【図７】
2021528783.tif 000013
【国際調査報告】
2021528783.tif 000014
2021528783.tif 000015