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