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