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