JP2021530152A - 安全な論理対物理キャッシング - Google Patents

安全な論理対物理キャッシング Download PDF

Info

Publication number
JP2021530152A
JP2021530152A JP2020572997A JP2020572997A JP2021530152A JP 2021530152 A JP2021530152 A JP 2021530152A JP 2020572997 A JP2020572997 A JP 2020572997A JP 2020572997 A JP2020572997 A JP 2020572997A JP 2021530152 A JP2021530152 A JP 2021530152A
Authority
JP
Japan
Prior art keywords
pointer
memory
host device
processor
digital signature
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
JP2020572997A
Other languages
English (en)
Inventor
ゾルタン スボッセブ
アルバート トロイア
フェデリコ ティツィアーン
アントニーノ モンデッロ
Original Assignee
マイクロン テクノロジー,インク.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by マイクロン テクノロジー,インク. filed Critical マイクロン テクノロジー,インク.
Publication of JP2021530152A publication Critical patent/JP2021530152A/ja
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/402Encrypted data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

様々な例は、メモリシステム、ホストデバイスメモリ、及びプロセッサを含むホストデバイスに関する。プロセッサは、メモリシステムから、第1のL2Pポインタ及び第1のデジタル署名を含む第1の論理対物理(L2P)ポインタメッセージを受信するようにプログラムされる。プロセッサは、第1のL2Pポインタ及び暗号化キーに少なくとも部分的に基づいて暗号化動作を実行して、暗号化動作に少なくとも部分的に基づいて第1のデジタル署名を検証する。プロセッサは、ホストデバイスメモリにおいて第1のL2Pポインタをキャッシュする。

Description

優先権出願
本願は、全体が参照により本明細書に組み込まれる、2018年6月29日に出願された米国特許出願第16/023,485号に対する優先権の利益を主張するものである。
メモリシステムは、一般的に、コンピュータまたは他の電子デバイスに内蔵の半導体、集積回路として提供される。揮発性メモリ及び不揮発性メモリを含む多くの異なるタイプのメモリが存在する。
揮発性メモリはそのデータを維持するために電力を必要とし、とりわけ、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、または同期ダイナミックランダムアクセスメモリ(SDRAM)を含む。
不揮発性メモリは電力が供給されていないときに記憶されたデータを保持でき、とりわけ、フラッシュメモリ、読み取り専用メモリ(ROM)、電気的消去可能プログラマブルROM(EEPROM)、消去可能プログラマブルROM(EPROM)、相変化ランダムアクセスメモリ(PCRAM)、抵抗ランダムアクセスメモリ(RRAM)、磁気抵抗型ランダムアクセスメモリ(MRAM)等の抵抗可変メモリ、または3D XPoint(商標)メモリを含む。
フラッシュメモリは、広範囲な電気的用途のために不揮発性メモリとして利用される。フラッシュメモリシステムは、一般的に、高い記憶密度、高い信頼性、及び低消費電力を可能にする1トランジスタ、フローティングゲート、または電荷トラップメモリセルの1つ以上のグループを含む。
フラッシュメモリアレイアーキテクチャの2つの一般的なタイプはNANDアーキテクチャ及びNORアーキテクチャを含み、それらは、それぞれの基本メモリセル構成が配置される論理形式にちなんで名付けられている。メモリアレイのメモリセルは、一般的に、マトリックスに配置される。実施例では、アレイの行内の各フローティングゲートメモリセルのゲートは、アクセスライン(例えば、ワードライン)に結合される。NORアーキテクチャでは、アレイのカラムにある各メモリセルのドレインがデータライン(ビットライン等)に結合される。NANDアーキテクチャでは、アレイのストリングにおける各メモリセルのドレインは、ソースラインとビットラインとの間で、ソースからドレインに直列に連結される。
NOR及びNANDアーキテクチャの半導体メモリアレイの両方は、ゲートに結合されるワードラインを選択することによって特定のメモリセルをアクティブにするデコーダを介してアクセスされる。NORアーキテクチャの半導体メモリアレイでは、いったんアクティブ化されると、選択されたメモリセルがデータ値をビットラインにセットし、特定のセルがプログラムされる状態に応じて異なる電流を流させる。NANDアーキテクチャの半導体メモリアレイでは、高バイアス電圧がドレイン側選択ゲート(SGD)ラインに印加される。各グループの選択されていないメモリセルのゲートに結合されるワードラインは、指定されたパス電圧(Vpass等)で駆動し、各グループの選択されていないメモリセルをパストランジスタとして動作させる(例えば、記憶されたデータ値によって制限されない方式で電流を通過させる)。次に、電流は、各グループの選択されたメモリセルだけによって制限され、直列に結合されたグループのそれぞれを経由してソースラインからビットラインに流れ、選択されたメモリセルの電流のエンコードされたデータ値をビットラインにセットする。
NORまたはNANDアーキテクチャの半導体メモリアレイの各フラッシュメモリセルは、個々にまたはまとめて1つまたはいくつかのプログラムされた状態にプログラムできる。例えば、シングルレベルセル(SLC)は、2つのプログラムされた状態(例えば、1または0)の1つを表すことができ、1ビットのデータを表す。しかしながら、フラッシュメモリセルはまた3つ以上のプログラム状態の1つを表すことができ、各セルは複数の2進数(例えば、複数のビット)を表すことができるため、メモリセルの数を増やすことなく高密度メモリを製造することが可能である。係るセルは、マルチステートメモリセル、マルチデジットセル、またはマルチレベルセル(MLC)と称され得る。特定の実施例では、MLCはセルごとに2ビットのデータ(例えば、4つのプログラムされた状態の1つ)を記憶できるメモリセルを指し得、トリプルレベルセル(TLC)はセルあたり3ビットのデータ(例えば、8つのプログラムされた状態の1つ)を記憶できるメモリセルを指し得、クアッドレベルセル(QLC)はセルあたり4ビットのデータを記憶できる。MLCは、本明細書では、より広い文脈で使用され、セルごとに2ビットを超えるデータを記憶できる(すなわち、3つ以上のプログラムされた状態を表すことができる)任意のメモリセルを指し得る。
いくつかのメモリアレイは、半導体基板の表面に配置された2次元(2D)構造である。一定領域のメモリ容量を増やし、コストを減少させるために、個々のメモリセルのサイズを小さくしている。しかしながら、個々のメモリセルのサイズの縮小、ひいては、2Dメモリアレイのメモリ密度には技術的制限がある。これに応えて、3D NANDアーキテクチャの半導体メモリシステム等の3次元(3D)メモリ構造が開発され、メモリ密度がさらに向上し、メモリコストが安くなっている。
係る3D NANDデバイスには、多くの場合、ソースに近接する1つ以上のソース側選択ゲート(SGS)と、ビットラインに近接する1つ以上のドレイン側選択ゲート(SGD)との間に、直列に結合される(例えば、ドレインからソースに結合される)記憶セルのストリングを含む。実施例では、SGSまたはSGDは、1つ以上の電界効果トランジスタ(FET)構造デバイスまたは金属酸化物半導体(MOS)構造デバイス等を含み得る。いくつかの実施例では、ストリングは、各々のワードラインを含む複数の垂直にスペースがある層を通って垂直に延在する。半導体構造(例えば、ポリシリコン構造)は、貯蔵セルのストリングに隣接して延在して、ストリングの記憶セルのためのチャネルを形成し得る。垂直ストリングの実施例では、ポリシリコン構造は、垂直に延在するピラーの形態であり得る。いくつかの実施例では、ストリングは「折り畳まれ」、ひいては、U字形ピラーに対して配置され得る。他の実施例では、複数の垂直構造を相互に積み重ねて、記憶セルのストリングの積み重ねられたアレイを形成し得る。
メモリアレイまたはデバイスを一緒に組み合わせて、ソリッドステートドライブ(SSD)、ユニバーサルフラッシュストレージ(UFS(商標))デバイス、マルチメディアカード(MMC)ソリッドステートストレージデバイス、組み込みMMCデバイス(eMMC(商標))等のメモリシステムのストレージボリュームを形成できる。SSDは、とりわけ、コンピュータのメインストレージデバイスとして使用でき、例えば、パフォーマンス、サイズ、重量、耐久性、動作温度範囲、及び消費電力に関して、可動部品を伴う従来のハードドライブよりも優れている。例えば、SSDは、磁気ディスクドライブ(例えば、電気機械等)に関連付けられるシーク時間、遅延、または他の遅延を減らすことができる。SSDは、フラッシュメモリセル等の不揮発性メモリセルを使用して、内蔵バッテリの供給要件を不要にし、したがって、ドライブをより多用途で使用しコンパクトにすることが可能になる。
SSDは、いくつかのダイまたは論理ユニット(論理ユニットの数またはLUN等)を含むいくつかのメモリシステムを含み得、メモリシステムまたは外部システムとのインターフェースを動作するために必要な論理機能を行う1つ以上のプロセッサまたは他のコントローラを含み得る。係るSSDは、いくつかのメモリアレイ及びその上の周辺回路を含む、1つ以上のフラッシュメモリダイを含み得る。フラッシュメモリアレイは、いくつかの物理ページに編成されたメモリセルのいくつかのブロックを含み得る。多くの実施例では、また、SSDはDRAMまたはSRAM(または他の形式のメモリダイまたは他のメモリ構造)を含む。SSDは、メモリシステムとホストとの間でデータ(例えば、エラーデータ及びアドレスデータ等のユーザデータ及び関連付けられるインテグリティデータ等)を転送するための読み取り動作もしくは書き込み動作またはメモリシステムからデータを消去する消去動作等のメモリ動作と関連して、ホストからコマンドを受信できる。
必ずしも一定の縮尺で描かれているわけではない図面では、類似数字は異なる図の類似コンポーネントを示し得る。異なる文字の接尾辞を有する類似数字は、類似コンポーネントの異なる事例を表し得る。図面は、概して、限定ではなく例として、本書で説明される様々な実施形態を示す。
通信インターフェースを通じて通信するように構成されるメモリシステムを含むホストデバイスを含む環境の例を示す。 論理対物理(L2P)ポインタメッセージを生成するためにメモリシステムによって実行され得るプロセスフローの一例を示すフローチャートである。 L2Pポインタメッセージを検証するためにホストデバイスによって実行され得るプロセスフローの一例を示すフローチャートである。 L2Pポインタメッセージを検証するためにホストデバイスによって実行され得るプロセスフローの別の例を示すフローチャートである。 L2Pポインタメッセージを検証するためにホストデバイスによって実行され得るプロセスフロー500のさらに別の例を示すフローチャートである。 本明細書で説明されるような、安全なL2Pポインタキャッシングで読み取り/書き込み要求を処理するためにメモリシステム及びホストデバイスによって実行され得るプロセスフローの一例を示すフローチャートである。 ホストにおいて1つ以上のL2Pポインタのセットをキャッシュするために、メモリシステム及びホストデバイスによって実行され得るプロセスフローの一例を示すフローチャートである。 ホストデバイスにおいてキャッシュされたL2Pポインタで読み取り要求を処理するためにメモリシステム及びホストデバイスによって実行され得るプロセスフローの一例を示すフローチャートである。 1つ以上の装置の一部としてメモリシステムを伴うホストの例を示す。 1つ以上の実施形態を実装し得るマシンの例を示すブロック図である。
本開示の態様は、安全な論理対物理(L2P)キャッシングを伴うメモリシステムに関する。メモリシステムは、L2Pポインタのセットを維持するように構成できる。L2Pポインタは、メモリシステムのメモリアレイにおける物理アドレスを、例えば、ホストデバイスにおいて使用される論理アドレスに関連付ける。L2Pポインタは、L2Pテーブル等の共通データ構造のメモリシステムに記憶できる。ホストデバイスによって行われる読み取り要求及び書き込み要求は、読み取られるまたは書き込まれるデータユニットに関連付けられる論理アドレスを含み得る。メモリシステムは、論理アドレスを使用して、L2Pポインタを生成する及び/または論理アドレスをメモリアレイにおける1つ以上の物理アドレスに関連付ける事前に生成したL2Pポインタにアクセスする。
永続性を維持するために、メモリシステムのメモリアレイにL2Pポインタを記憶できる。メモリシステムの使用中、L2Pポインタをメモリアレイから直接読み取ることができる。メモリシステムコントローラがRAMを含む場合、使用中にL2Pポインタの一部または全てをメモリシステムコントローラのRAMに記憶し、遅延を減少できる。例えば、メモリシステムコントローラのRAMにおいてL2Pポインタにアクセスするための読み取り動作は、メモリアレイにおいてL2Pポインタにアクセスするための読み取り動作よりも高速であり得る。しかしながら、いくつかの適用について、デバイスコントローラのRAMは、小さすぎて、メモリアレイの完全なL2Pテーブルをロードできない。さらに、いくつかのメモリシステムコントローラはRAMを含まない。
したがって、いくつかの実施例では、メモリシステムは、ホストデバイスにおけるL2Pポインタを含むそのL2Pテーブルの一部または全てをキャッシュするように構成される。L2Pポインタは、ホストデバイスのRAMに記憶され得る。論理アドレスにおいて読み取り要求を行うとき、ホストデバイスは、その論理アドレスに対応するL2Pポインタのコピーをキャッシュしたかどうかを決定する。ホストデバイスにL2Pポインタのキャッシュコピーを有する場合、ホストデバイスはL2Pポインタを使用して、論理アドレスに対応するメモリシステムにおいて物理アドレスを解決する。ホストデバイスは、物理アドレスを使用して、メモリシステムに読み取り要求を行うことができる。メモリシステムは物理アドレスに記憶されたデータを返す。時々、L2Pポインタホストキャッシングは、周辺機器相互接続エクスプレス(PCIe)インターフェースを通じて、不揮発性メモリホストコントローラインターフェース仕様(NVMHCI)を使用して実装されるホストメモリバッファ(HMB)プロトコル等のプロトコルを使用して行われるが、他のプロトコル及び他のインターフェースが想到される。
ホストデバイスにおいてL2Pポインタをキャッシュすると、特定の利点をもたらし得る。例えば、それにより、データをより高速に読み出すことを可能にし得る。ホストデバイスは、メモリシステムがメモリアレイから同じL2Pポインタを読み取ることが可能であろう速さよりも速く、ホストデバイスメモリにキャッシュされたL2Pポインタを読み取ることが可能であり得る。また、ホストデバイスにおいてL2Pポインタをキャッシュすると、メモリシステムにおけるRAMの必要性が減り得る。例えば、ホストデバイスからの読み取り要求がアクセスする物理アドレスを既に含むとき、メモリシステムコントローラのRAMにおけるキャッシュL2Pポインタをキャッシュする要望が減り得る。
他方では、ホストデバイスでL2Pポインタをキャッシュすると、メモリシステムの物理アドレス構造が公開される可能性がある。例えば、悪意のあるアクターが中間者攻撃を試みて、メモリシステムからホストデバイスに送信されたL2Pポインタを妨害し得る。悪意のあるアクターは、妨害されたL2Pポインタを修正し得る、またはスプーフィングされたL2Pポインタを提供し得る。別のタイプの攻撃では、悪意のあるアクターがメモリシステムをスプーフィングし、ホストデバイスにスプーフィングされたL2Pポインタを提供する。ホストデバイスは、スプーフィングされたL2Pポインタをキャッシュして、次にそれを使用する。これにより、メモリシステムが破損しているように見えさせる可能性がある。いくつかの実施例では、スプーフィングされたL2Pポインタを使用すると、メモリシステムにおいて破損が生じる可能性がある。
本明細書で説明される様々な実施例では、デジタル署名と一緒に、メモリシステムからホストデバイスにL2Pポインタを送信することによって、これらの課題及び/または他の課題に対処していることが説明される。メモリシステムは、ホストデバイスに送信される1つのL2Pポインタまたは複数のL2Pポインタ及び暗号化キーを使用して、デジタル署名を生成できる。1つのL2Pポインタまたは複数のL2Pポインタ及びデジタル署名は、L2Pポインタメッセージでホストデバイスに提供される。
ホストデバイスは、また、暗号化キーのコピーを有する。ホストデバイスは、暗号化キーのコピーを使用して、暗号化キー及びL2Pポインタメッセージに含まれる1つのL2Pポインタまたは複数のL2Pポインタを使用して、ホスト側のデジタル署名を生成する。ホストデバイス及びメモリシステムは同じ暗号化キーを有するため、L2Pポインタメッセージからのデジタル署名及びホスト側のデジタル署名は一致する必要がある。デジタル署名が一致する場合、ホストデバイスはRAMにおいて1つのL2Pポインタまたは複数のL2Pポインタをキャッシュする。デジタル署名が一致しない場合、ホストデバイスはRAMにおいて1つのL2Pポインタまたは複数のL2Pポインタをキャッシュすることを拒否する。
いくつかの実施例では、ホストデバイスは、L2Pポインタメッセージを受信すると、そのホストデバイスメモリにL2Pポインタメッセージのコンテンツの一部または全てを記憶するように構成される。次に、L2PポインタメッセージのコンテンツをRAMに記憶した後、L2Pポインタメッセージのデジタル署名を検証できる。このように、L2Pポインタメッセージのコンテンツを修正する機会は制限される。ホスト側のデジタル署名がL2Pポインタメッセージのデジタル署名に一致しない場合、受信したL2Pポインタはホストデバイスメモリから除去される。
いくつかの実施例では、デジタル署名はカウンタ値を使用して生成される。メモリシステムはモノトニックカウンタを実装できる。モノトニックカウンタは、特定のイベントの発生時にインクリメントするように構成される。例えば、L2Pポインタメッセージのデジタル署名が生成されるたびに、モノトニックカウンタはインクリメントできる。いくつかの実施例では、モノトニックカウンタは、例えば、メモリシステムの電源投入時等の他のイベントの発生時にインクリメントする。
メモリシステムは、モノトニックカウンタから得られた値を使用して、L2Pポインタメッセージのデジタル署名を生成できる。例えば、メモリシステムは、暗号化キー及びモノトニックカウンタから得られた現在のカウンタ値を使用して、トランザクション暗号化キーを生成できる。メモリシステムは、トランザクション暗号化キーを使用してデジタル署名を生成し、L2Pポインタメッセージとともにカウンタ値のクリアコピーを提供する。ホストデバイス側において、本明細書に説明されるように、ホストデバイスはカウンタ値のクリアコピーを使用してトランザクション暗号化キーを生成し、トランザクション暗号化キーを使用してL2Pポインタメッセージから得られたデジタル署名を検証する。
デジタル署名が決定されるたびにモノトニックカウンタがインクリメントされるため、このようにカウンタ値を使用すると、異なる時間に、前のL2Pポインタメッセージを妨害して及び再送信することを試みる攻撃者を無効にできる。例えば、ホストデバイスが前のL2Pポインタメッセージと同じモノトニックカウンタ値を有するL2Pポインタメッセージを受信する場合、そのメッセージがメモリシステムによって正しく生成されなかったことが分かる。さらに、攻撃者がL2Pポインタメッセージのクリアカウンタ値を更新することを試みる場合、デジタル署名は更新されたクリアカウンタ値に一致せず、L2Pポインタメッセージはホストデバイスによって拒否される。
図1は、通信インターフェースを通じて通信するように構成されるメモリシステム110を含むホストデバイス105を含む環境100の例を示す。ホストデバイス105またはメモリシステム110は、製品の処理、通信、または制御をサポートするために、モノのインターネット(IoT)デバイス(例えば、冷蔵庫または他の機器、センサ、モータまたはアクチュエータ、移動通信デバイス、自動車、ドローン等)等の様々な製品に含まれ得る。
メモリシステム110はメモリコントローラ115及びメモリアレイ120を含み、メモリアレイ120は、例えば、各々のダイ上に形成されるいくつかの個々のメモリシステム(いくつかの実施例では、2次元または3次元(3D)NANDダイのスタックに配置されるメモリシステム)を含む。3Dアーキテクチャの半導体メモリ技術では、垂直構造が積み重ねられ、層の数、物理ページが増加し、それに応じて、所与のフットプリント内のメモリシステム(例えば、ストレージデバイス)の密度が増加する。実施例では、メモリシステム110は、ホストデバイス105のディスクリートメモリまたはストレージデバイスコンポーネントであり得る。他の実施例では、メモリシステム110は、集積回路(例えば、システムオンチップ(SOC)等)の一部であり得、ホストデバイス105の他の1つ以上のコンポーネントによって積み重ねられることができる、またはそうでなければ、それらに含まれ得る。
図1の例示的な環境100では、ホストデバイス105はプロセッサ160及びホストデバイスメモリ162を含む。ホストデバイスメモリ162は、DRAM、SDRAM、または任意の他の適切な揮発性メモリコンポーネントまたは不揮発性メモリコンポーネント等のランダムアクセスメモリを含み得る。1つ以上の通信インターフェースを使用して、メモリシステム110と、ホストデバイス105の他の1つ以上のコンポーネントとの間でデータを転送できる。その通信インターフェースとして、シリアルアドバンストテクノロジーアタッチメント(SATA)インターフェース、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)インターフェース、ユニバーサルシリアルバス(USB)インターフェース、ユニバーサルフラッシュストレージ(UFS)インターフェース、eMMC(商標)インターフェース、または他の1つ以上のコネクタもしくはインターフェース等が挙げられる。ホストデバイス105は、ホストシステム、電子デバイス、プロセッサ、メモリカードリーダー、またはメモリシステム110の外部にある他の1つ以上の電子デバイスを含み得る。いくつかの実施例では、ホストデバイス105は、図10のマシン1000を参照して説明されるコンポーネントの一部または全てを有するマシンであり得る。また、ホストデバイス105の追加例は、図9を参照して説明される。
メモリコントローラ115は、ホストデバイス105から命令を受信でき、メモリアレイ120と通信し、例えば、メモリアレイ120の1つ以上のプレーン、サブブロック、ブロック、またはページに、(例えば、書き込みまたは消去するために)、あるいはそれらから、(例えば、読み取るために)データを転送する。メモリコントローラ115は、とりわけ、1つ以上のコンポーネントまたは集積回路を含む回路網またはファームウェアを含み得る。例えば、メモリコントローラ115は、メモリアレイ120の全体にわたってアクセスを制御し、ホストデバイス105とメモリシステム110との間に転位層を提供するように構成される1つ以上のメモリ制御ユニット、回路、またはコンポーネントを含み得る。メモリコントローラ115は、メモリアレイ120にまたはメモリアレイ120からデータを転送するための1つ以上の入力/出力(I/O)回路、ライン、またはインターフェースを含み得る。メモリコントローラ115はメモリマネージャ125及びアレイコントローラ135を含み得る。命令144は、本明細書で説明される安全なL2Pキャッシングを実施するために、メモリコントローラ115において実行され得る。
メモリマネージャ125は、とりわけ、様々なメモリ管理機能に関連付けられるいくつかのコンポーネントまたは集積回路等の回路網またはファームウェアを含み得る。本説明の目的のために、例示的なメモリ動作及び管理機能は、NANDメモリの文脈で説明される。当業者は、不揮発性メモリの他の形態が類似のメモリ動作または管理機能を有し得ることを認識する。係るNAND管理機能は、ウェアレベリング(例えば、ガベージコレクションまたはリクラメーション)、エラー検出またはエラー訂正、ブロックリタイアメント、または他の1つ以上のメモリ管理機能を含む。メモリマネージャ125は、ホストコマンド(例えば、ホストから受信されたコマンド)をデバイスコマンド(例えば、メモリアレイの動作に関連付けられるコマンド等)にパースもしくはフォーマットできる、または(例えば、様々なメモリ管理機能を達成するために)アレイコントローラ135もしくはメモリシステム110の他の1つ以上のコンポーネントためのデバイスコマンドを生成できる。
メモリマネージャ125は、メモリシステム110の1つ以上のコンポーネントに関連付けられる様々な情報(例えば、メモリコントローラ115に結合されるメモリアレイまたは1つ以上のメモリセルに関連付けられる様々な情報)を維持するように構成される管理テーブル130のセットを含み得る。例えば、管理テーブル130は、メモリコントローラ115に結合されるメモリセルの1つ以上のブロックについてのブロックエージ、ブロック消去カウント、エラー履歴、または1つ以上のエラーカウント(例えば、書き込み動作エラーカウント、読み取りビットエラーカウント、読み取り動作エラーカウント、消去エラーカウント等)に関する情報を含み得る。特定の実施例では、1つ以上のエラーカウントの検出されたエラーの数が閾値を上回る場合、ビットエラーは修正不可能なビットエラーと称され得る。管理テーブル130は、とりわけ、修正可能または修正不可能なビットエラーのカウントを維持できる。
本明細書で説明されるように、管理テーブル130は、また、論理アドレスをメモリアレイ120の物理アドレスに関連付けるL2Pポインタを含む1つ以上のL2Pテーブルを含み得る。管理テーブル130はマネージャ125で示される。例えば、管理テーブル130はメモリコントローラ115のRAMに記憶され得る。いくつかの実施例では、管理テーブル130の一部または全てはメモリアレイ120に記憶される。例えば、マネージャ125は、管理テーブル130をメモリアレイ120から読み取り得る、及び/またはメモリコントローラ115のRAMにおいて管理テーブル130の一部または全てをキャッシュし得る。
アレイコントローラ135は、とりわけ、メモリコントローラ115に結合されるメモリシステム110の1つ以上のメモリセルへのデータの書き込み、そのメモリセルからのデータの読み取り、またはそのメモリセルの消去に関連付けられるメモリ動作を制御するように構成される回路網またはコンポーネントを含み得る。メモリ動作は、例えば、ホストデバイス105から受信されたホストコマンド、または(例えば、ウェアレベリング、エラー検出またはエラー訂正等に関連して)メモリマネージャ125によって内部に生成されたホストコマンドに基づき得る。
アレイコントローラ135はエラー訂正コード(ECC)コンポーネント140を含み得、ECCコンポーネント140は、とりわけ、メモリコントローラ115に結合されるメモリシステム110の1つ以上のメモリセルへのデータの書き込みまたはそのメモリセルからのデータの読み取りに関連付けられるエラーを検出または訂正するように構成されるECCエンジンまたは他の回路網を含み得る。メモリコントローラ115は、データの様々な動作または記憶に関連付けられるエラー発生(例えば、ビットエラー、動作エラー等)をアクティブに検出し、エラー発生から回復するように構成でき、これは、ホストデバイス105とメモリシステム110との間で転送されるデータのインテグリティを維持しながら行われ、または(例えば、冗長RAIDストレージ等を使用して)記憶されたデータのインテグリティを維持しながら行われ、今後発生し得るエラーを防止するために機能しなくなるメモリリソース(例えば、メモリセル、メモリアレイ、ページ、ブロック等)を除去できる(例えば、使わなくする)。
図1の例示的な環境100では、メモリコントローラ115は、また、暗号化エンジン142を含む。暗号化エンジン142は、例えば、本明細書で説明されるように、データにおいて暗号化動作を実行するように構成できる。暗号化エンジン142は、1つ以上のキーレジスタ及び1つ以上の数学エンジンを含み得る。キーレジスタは、暗号化動作を実行するために使用される暗号化キーを記憶できる。キーレジスタは暗号化エンジン142のコンポーネントとして説明されているが、いくつかの実施例では、キーレジスタは他の場所(例えば、メモリアレイ121の安全な場所)に位置付けられ得る。数学エンジンは、例えば、キーレジスタに記憶された1つ以上の暗号化キーを利用して、暗号化動作を行うように構成できる。
暗号化エンジン142は、本明細書で説明されるように、デジタル署名を生成するために1つ以上の暗号化動作を実行するように構成できる。暗号化エンジン142は、例えば、SHAアルゴリズム(例えば、SHA256)、MD5アルゴリズム等の暗号化ハッシュ関数の任意の適切な暗号化アルゴリズムを使用してデジタル署名を生成するように構成できる。暗号化ハッシュ関数は、入力値を、通常は短縮されたハッシュ値にマッピングする。ハッシュ関数は、2つの異なる入力値が同じハッシュ値にマッピングされる可能性が低くなるように選択できる。暗号化エンジン142は、デジタル署名されているものに関連する入力値に対してハッシュ関数を実行することによってデジタル署名を生成するように構成できる。例えば、暗号化エンジン142は、実行される符号付きコマンド、メモリシステムカウンタ値、及び暗号化キーを連結して、入力値を生じさせることができる。次に、暗号化エンジン142は、入力値に対してハッシュ関数を実行して、デジタル署名を生成できる。
いくつかの実施例では、暗号化エンジン142は、ホストデバイス105とメモリシステム110Aとの間の通信インターフェースと連動して動作するように構成される。例えば、暗号化エンジン142は、例えば、PCIeまたは他の適切なインターフェースに従って、メモリシステム110Aとホストデバイス105との間の通信に関連するデジタル署名を暗号化及び/または生成するために使用される暗号化キーをストーリー化するためのキーレジスタまたは他の適切な記憶場所を含み得る。また、いくつかの実施例では、暗号化エンジン142は、サーバールートキーを記憶するキーレジスタを含む。メモリシステムのサーバールートキーは、ここで説明されるように、署名されたコマンドを検証するために使用される暗号化キーである。
メモリアレイ120は、例えば、1つ以上のデバイス、1つ以上のプレーン、1つ以上のサブブロック、1つ以上のブロック、1つ以上のページ等に配置されるいくつかのメモリセルを含み得る。一例として、48GBのTLC NANDメモリシステムは、ページあたり18,592バイト(B)(16,384+2208バイト)のデータ、ブロックあたり1536ページ、プレーンあたり548ブロック、及びデバイスあたり4つ以上のプレーンを含み得る。別の実施例として、32GBのMLCメモリシステム(セルあたりの2ビットのデータを記憶している(すなわち、4つのプログラム可能状態))は、ページあたり18,592バイト(B)(16,384+2208バイト)のデータ、ブロックあたり1024ページ、プレーンあたり548ブロック、デバイスあたり4プレーンを含み得るが、対応するTLCメモリシステムと比較して、必要な書き込み時間は半分になり、プログラム/消去(P/E)サイクルは2倍になる。他の実施例は他の数または配置を含み得る。いくつかの実施例では、メモリシステムまたはその一部は、SLCモードで、または所望のMLCモード(TLC、QLC等)で選択的に動作し得る。
アレイ120は、物理アドレス位置150A、150B、150Nを含む。物理アドレス位置は、物理アドレスに一意に関連付けられるメモリアレイ120における場所である。動作時、データは、一般的に、ページのメモリシステム110に書き込まれまたはメモリシステム110から読み取られ、ブロックで消去される。例えば、物理アドレス位置150A、150B、150Nは、ページに対応し得る。しかしながら、1つ以上のメモリ動作(例えば、読み取り、書き込み、消去等)は、必要に応じて、より大きなまたはより小さなメモリセルのグループで行われることができる。したがって、いくつかの実施例では、物理アドレス位置150A、150B、150Nは、1ページよりも多いまたは少ないページを含む。メモリシステム110のデータ転送サイズは一般的にページと称される一方、ホストのデータ転送サイズは一般的にセクタと称される。
データのページはユーザデータのバイト数(例えば、データのセクタ数を含むデータペイロード)及びそれに対応するメタデータを含み得るが、ページのサイズは、多くの場合、ユーザデータを記憶するために使用されるバイト数だけを指す。例として、4KBのページサイズを有するデータのページは、4KBのユーザデータ(例えば、512Bのセクタサイズを想定した8セクタ)と、インテグリティデータ(例えば、エラー検出データまたはエラー訂正コードデータ)、アドレスデータ(例えば、論理アドレスデータ等)等のユーザデータに対応するメタデータ、またはユーザデータに関連付けられる他のメタデータのバイト数(例えば、32B、54B、224B等)とを含み得る。メタデータ等を記憶するための記憶ユニットまたはサブユニットは、オーバープロビジョニングされた記憶ユニットまたはサブユニットと称され得る。
異なるタイプのメモリセルまたはメモリアレイ120は異なるページサイズを提供できる、またはそれに関連付けられる異なる量のメタデータを必要とし得る。例えば、異なるメモリシステムタイプは異なるビットエラー率をもたらし得、これにより、データページのインテグリティを確実にするために必要な異なるメタデータの量をもたらし得る(例えば、ビットエラー率がより高いメモリシステムは、ビットエラー率がより低いメモリシステムよりも多いバイトのエラー訂正コードデータを必要とし得る)。例として、マルチレベルセル(MLC)NANDフラッシュデバイスは、対応するシングルレベルセル(SLC)NANDフラッシュデバイスよりも高いビットエラー率をもたらし得る。したがって、MLCデバイスは、対応するSLCデバイスよりも多くのエラーデータのメタデータバイトを必要とし得る。
いくつかの実施例では、メモリコントローラ115は、また、モノトニックカウンタ146を含む。モノトニックカウンタ146は、カウンタ値をインクリメントするためのソフトウェアまたはハードウェアを含む。モノトニックカウンタ146は、カウンタ値が常に特定の方向に移動するように構成される。本明細書で説明されるように、モノトニックカウンタ146はデジタル署名がL2Pポインタメッセージ172に生成されるときにインクリメントするように構成される。いくつかの実施例では、例えば、メモリシステム110とホストデバイス105との間の他の通信のためにデジタル署名が生成されるとき、メモリシステム110が電源オフまたは起動するとき等、モノトニックカウンタは、メモリシステム110における他のイベントの発生時にインクリメントするように構成される。
図1の環境100は、また、L2Pポインタ168及びデジタル署名174を含むL2Pポインタメッセージ172を示す。例示的なL2Pポインタメッセージ172は単一のL2Pポインタ168を含むが、いくつかのL2PポインタメッセージはL2Pポインタ168に加えて複数のL2Pポインタを含む。例えば、L2Pポインタメッセージ172は、アレイ120に記憶された完全なL2PポインタテーブルにおけるL2Pポインタの一部または全てを含むL2Pポインタテーブルを含み得る。随意に、L2Pポインタメッセージ172は、また、カウンタ値170を含む。
メモリシステム110は、少なくとも部分的に、L2Pポインタ168、L2Pポインタメッセージ172に含まれ得る任意の他のL2Pポインタ、及び暗号化キーを使用してデジタル署名174を生成する。例えば、メモリシステム110は、暗号化キーを使用して、L2Pポインタ168(及び他のL2Pポインタ)のハッシュを生成し得る。デジタル署名174は、ハッシュの結果の一部または全てを含み得る。例えば、SHA256等のSHAアルゴリズム、MD5アルゴリズム等の任意の適切なハッシュアルゴリズムを使用し得る。
暗号化キーは、メモリシステム及びホストデバイスに認識されている共有シークレットである。暗号化キーは、任意の適切な方式で、メモリシステム110とホストデバイス105との間で安全に通信できる。いくつかの実施例では、ディフィーヘルマンまたは他の適切なキー交換等の暗号化キー転送アルゴリズムを使用する。他の実施例では、暗号化キーは、製造プロセスにおいてまたは製造プロセス中に、メモリシステム110及び/またはホストデバイス105に書き込まれる。いくつかの実施例では、メモリシステム110及びホストデバイスは、PCIe等の通信プロトコルの一部として、メモリシステム110とホストデバイス105との間で既に共有されている暗号化キーを使用する。
いくつかの実施例では、メモリシステム110は、メモリシステム110が公開キー及び秘密キーを含む非対称暗号キー配置を利用する。秘密キーは秘密が保たれ、例えば、暗号化エンジン142のキーレジスタに記憶され得る。また、メモリシステム110は共有される公開キーを有し、公開キーは、認証機関、メモリシステム110またはホスト105の製造業者、または他の適切な関係者によって検証され得る。非対称暗号キー配置を使用する実施例では、メモリシステム110は、L2Pポインタ168(または複数のL2Pポインタ168)をその秘密キーで暗号化することによってデジタル署名を生成する。ホストデバイス105は、公開キーを使用してデジタル署名174を復号化することによって、デジタル署名174を検証する。復号化の結果がL2PポインタメッセージのL2Pポインタ168(または複数のL2Pポインタ168)に一致する場合、デジタル署名を検証する。
L2Pポインタメッセージ172は、ホストデバイス105に提供される。本明細書で説明されるように、ホストデバイス105におけるプロセッサ160はデジタル署名174を検証する。デジタル署名174が検証される場合、プロセッサ160は、ホストデバイス105のRAM162においてL2Pポインタ168をキャッシュする。
いくつかの実施例では、ホストデバイス105は、L2Pポインタメッセージ172の全体をRAM162に記憶する。デジタル署名174を検証するために、ホストデバイス105のプロセッサ160は、L2Pポインタメッセージ172をRAM162から読み取り、デジタル署名174を検証する。デジタル署名174が検証されなかった場合、L2Pポインタメッセージ172はRAM162から除去される。デジタル署名174が検証される場合、L2Pポインタ168は、RAM162に(例えば、RAM162におけるL2Pキャッシュ場所で)記憶されたままである。
図2は、L2Pポインタメッセージを生成するために、メモリシステム110等のメモリシステムによって実行され得るプロセスフロー200の一例を示すフローチャートである。図2は、単一のL2Pポインタを含むL2Pポインタメッセージに関して説明されている。しかしながら、いくつかの実施例では、L2Pポインタメッセージは複数のL2Pポインタを含む。例えば、本明細書で説明されるように、L2Pポインタメッセージは、複数のL2Pポインタを含むL2Pポインタテーブルを含み得る。
動作202において、メモリシステムは、L2Pポインタにアクセスし及び/またはL2Pポインタを生成する。(L2Pポインタメッセージが複数のL2Pポインタを含む実施例では、メモリシステムは複数のL2Pポインタにアクセス及び/または複数のL2Pポインタを生成する)。メモリシステムが特定の論理アドレスに対応するメモリアレイの記憶ユニットを選択すると、メモリシステムはL2Pポインタを生成する。メモリシステムは、選択された論理アドレスに関連付けられる物理アドレスに論理アドレスを関連付けるためのL2Pポインタを生成する。代替として、メモリシステムは、例えば、メモリアレイ及び/またはメモリコントローラのRAMに記憶された事前に生成したL2Pポインタにアクセスできる。
選択的な動作204において、メモリシステムは、暗号化キーからトランザクション暗号化キーを生成し、モノトニックカウンタから現在のカウンタ値を生成する。これは、任意の適切な方式で実行し得る。いくつかの実施例では、メモリシステムは、トランザクション暗号化キーにおける結果を使用して、カウンタ値及び暗号化キーを連結する。別の実施例では、メモリシステムは、暗号化キー及びカウンタ値を使用して、ハッシュ動作等の暗号化動作を実行する。結果は、トランザクション暗号化キーとして使用される。
動作206において、メモリシステムは、動作202からの単一のL2Pポインタまたは複数のL2Pポインタを使用してデジタル署名を生成する。これは、L2Pポインタ及びキーを使用して、ハッシュ動作等の暗号化動作を実行することを含む。動作204においてトランザクション暗号化キーがカウンタ値から生成される場合、デジタル署名はトランザクション暗号化キーを使用して生成される。トランザクション暗号化キーが生成されない場合、デジタル署名は暗号化キーを使用して生成される。いくつかの実施例では、デジタル署名はキー付きハッシュメッセージ認証コード(HMAC)である。
動作208において、メモリシステム110はL2Pポインタメッセージを生成する。L2Pポインタメッセージは、ホスト105においてキャッシュされるL2Pポインタと、動作206において生成されたデジタル署名とを含む。カウンタ値を使用する実施例では、L2Pポインタメッセージはカウンタ値も含む。
図3は、L2Pポインタメッセージを検証するためにホストデバイスによって実行され得るプロセスフロー300の一例を示すフローチャートである。図3は、単一のL2Pポインタを含むL2Pポインタメッセージに関して説明されている。しかしながら、いくつかの実施例では、L2Pポインタメッセージは複数のL2Pポインタを含む。例えば、本明細書で説明されるように、L2Pポインタメッセージは、複数のL2Pポインタを含むL2Pポインタテーブルを含み得る。
動作302において、ホストデバイスはL2Pポインタメッセージを受信する。動作304において、ホストデバイスはホスト側のデジタル署名を生成する。ホストデバイスは、暗号化キー及びL2Pポインタメッセージに含まれるL2Pポインタを使用して、ホスト側のデジタル署名を生成できる。ホスト側のデジタル署名を生成するために、ホストデバイスは暗号化キー及びL2Pポインタを使用して暗号化動作を実行する。複数のL2PポインタがL2Pポインタメッセージに含まれる場合、ホスト側のデジタル署名は、L2PポインタメッセージのL2Pポインタのそれぞれを使用して生成され得る。
動作306において、ホストデバイスは、ホスト側のデジタル署名がL2Pポインタメッセージからのデジタル署名と同等であるかどうかを決定する。ホスト側のデジタル署名がデジタル署名と同じ暗号化キー及び同じL2Pポインタデータを使用して生成されるため、L2Pポインタメッセージがメモリシステムによって正しく及び確実に生成された場合は、ホスト側のデジタル署名はL2Pポインタメッセージからのデジタル署名に一致する必要がある。
ホスト側のデジタル署名がL2Pポインタメッセージからのデジタル署名に一致する場合、動作310において、ホストデバイスはL2Pポインタをキャッシュする。一方、ホスト側のデジタル署名がL2Pポインタメッセージからのデジタル署名に一致しない場合、動作308において、ホストデバイスはキャッシュすることなく、L2Pポインタ168(または複数のL2Pポインタ168)を破棄する。例えば、ホスト側のデジタル署名がL2Pポインタメッセージからのデジタル署名に一致しない場合は、L2Pポインタメッセージがメモリシステムによって生成されなかった、メモリシステムによって正しく生成されなかった、及び/または修正されたことを示し得る。
図4は、L2Pポインタメッセージを検証するためにホストデバイスによって実行され得るプロセスフロー400の別の例を示すフローチャートである。図4は、単一のL2Pポインタを含むL2Pポインタメッセージに関して説明されている。しかしながら、いくつかの実施例では、L2Pポインタメッセージは複数のL2Pポインタを含む。例えば、本明細書で説明されるように、L2Pポインタメッセージは、複数のL2Pポインタを含むL2Pポインタテーブルを含み得る。
動作402において、ホストデバイスはL2Pポインタメッセージを受信する。動作404において、ホストデバイスは、L2Pポインタメッセージに含まれるL2Pポインタを、図1のホストデバイスメモリ162等のRAMに書き込む。デジタル署名を検証する前にL2Pポインタ及びデジタル署名をホストデバイスメモリに書き込むことによって、ホストデバイスは、デジタル署名の検証前または検証中にL2Pポインタまたはデジタル署名が破損するリスクを最小にできる。
動作406において、ホストデバイスはL2Pポインタをホストデバイスメモリから読み取る。動作408において、ホストデバイスは、ホストデバイスメモリから読み取られたL2Pポインタを使用してホスト側署名を生成する。また、ホストデバイスは暗号化キーを使用する。
動作410において、ホストデバイスは、ホスト側のデジタル署名がL2Pポインタメッセージからのデジタル署名と同等であるかどうかを決定する。デジタル署名が同等でない場合、動作412において、ホストデバイスはL2PポインタメッセージからL2Pポインタを破棄する。これは、ホストデバイスのRAMからL2Pポインタを削除することを含み得る。デジタル署名が同等である場合、動作414において、ホストデバイスはL2Pポインタをキャッシュする。いくつかの実施例では、動作404において、L2Pポインタを事前にキャッシュする。これが事実である場合、L2Pポインタをキャッシュすることは、L2Pポインタが動作404において記憶されたホストデバイスメモリの場所にL2Pポインタを残すことを含む。他の実施例では、L2Pポインタをキャッシュすることは、L2Pポインタが動作404において記憶されたホストデバイスメモリの場所からキャッシュ場所に、L2Pポインタを移動することを含む。
図5は、L2Pポインタメッセージを検証するためにホストデバイスによって実行され得るプロセスフロー500のさらに別の例を示すフローチャートである。図5の実施例では、L2Pポインタメッセージは、メモリシステムにおけるモノトニックカウンタからのカウンタ値を含む。図5の実施例では、L2Pポインタメッセージは、メモリシステムにおけるモノトニックカウンタからのカウンタ値を含む。図5は、単一のL2Pポインタを含むL2Pポインタメッセージに関して説明されている。しかしながら、いくつかの実施例では、L2Pポインタメッセージは複数のL2Pポインタを含む。例えば、本明細書で説明されるように、L2Pポインタメッセージは、複数のL2Pポインタを含むL2Pポインタテーブルを含み得る。
動作502において、ホストデバイスはL2Pポインタメッセージを受信する。動作504において、ホストデバイスは、暗号化キー及びカウンタ値からトランザクション暗号化キーを生成する。本明細書で説明されるように、トランザクション暗号化キーは、暗号化キー及びカウンタ値を連結すること、暗号化キー及びカウンタ値を使用して暗号化動作を行うこと等によって生成できる。動作506において、ホストデバイスは、トランザクション暗号化キー及びL2PポインタメッセージからのL2Pポインタを使用してホスト側デジタル署名を生成する。例えば、ホストデバイスは、トランザクション暗号化キー及びL2Pポインタを使用して暗号化動作を実行し得る。
動作508において、ホストデバイスは、ホスト側のデジタル署名が、L2Pポインタメッセージとともに受信されたデジタル署名と同等であるかどうかを決定する。そうでない場合、動作512において、L2PポインタメッセージからのL2Pポインタは破棄される。ホスト側のデジタル署名がL2Pポインタメッセージとともに受信されたデジタル署名と同等である場合、動作514において、ホストデバイスはL2Pポインタをキャッシュする。
随意に、動作514においてL2Pポインタをキャッシュする前に、動作510において、ホストデバイスはL2Pポインタメッセージに含まれるカウンタ値が前に受信されたかどうかを決定する。例えば、ホストデバイスによって処理された前のL2Pポインタメッセージにカウンタ値が含まれる場合、それは、メモリシステムにおけるモノトニックカウンタからの現在のカウンタ値でL2Pポインタメッセージが生成されなかったことを示し得る。(前のL2Pポインタメッセージが生成された後に、モノトニックカウンタはインクリメントするであろう。)ホストデバイスは、メモリシステムから受信された前のL2Pポインタメッセージからのカウンタ値の記録を保持し得る。現在のL2Pポインタメッセージのカウンタ値が新しいものでない場合、動作512において、ホストデバイスはL2Pポインタメッセージに含まれるL2Pポインタを破棄する。カウンタ値が新しい場合、動作514において、ホストデバイスはL2Pポインタをキャッシュする。図5に具体的に示されていないが、いくつかの実施例では、プロセスフロー500は、デジタル署名を検証する前に、L2Pポインタメッセージの全てまたは一部をホストデバイスのRAMに記憶することを含み得る。
図6は、本明細書で説明されるように、安全なL2Pポインタキャッシングで読み取り/書き込み要求を処理するためにメモリシステム及びホストデバイスによって実行され得るプロセスフロー600の一例を示すフローチャートである。プロセスフロー600は、2つのカラム601、603を含む。カラム601は、ホストデバイス105等のホストによって実行される動作を含む。カラム603は、メモリシステム110等のメモリシステムによって実行される動作を含む。
動作602において、ホストは読み取り/書き込み要求605をメモリシステムに送信する。読み取り/書き込み要求605は、読み取り要求または書き込み要求であり得る。読み取り/書き込み要求605が読み取り要求であるとき、それは論理アドレスを含む。論理アドレスは、データを記憶するメモリシステムにおけるデータユニットの物理アドレスに関連付けられる。読み取り/書き込み要求605が書き込み要求であるとき、それは、メモリシステムの1つの記憶ユニットまたは複数の記憶ユニットに書き込まれる論理アドレス及びデータを含む。
動作604において、メモリシステムは読み取り/書き込み要求605を受信する。動作606において、メモリシステムは読み取り/書き込み要求605を処理する。例えば、読み取り/書き込み要求605が読み取り要求である場合、メモリシステムは、読み取り/書き込み要求605に含まれる論理アドレスを物理アドレスに関連付けるL2Pポインタにアクセスする。メモリシステムは、物理アドレスに対応する記憶ユニットを読み取り、読み取ったデータをホストデバイスに返す。読み取り/書き込み要求605が書き込み要求である場合、メモリシステムは、書き込み要求に含まれるデータを記憶するための1つの記憶ユニットまたは複数の記憶ユニットを選択する。また、メモリシステムは、書き込み要求からの論理アドレスを選択された記憶ユニットの物理アドレスに関連付けるL2Pポインタを作成する。
動作608において、メモリシステムは、デジタル署名と、動作606においてアクセス及び/または生成されたL2Pポインタとを含むL2Pポインタメッセージを生成する。例えば、メモリシステムは、例えば、図2に関して本明細書で説明されるように、L2Pポインタメッセージを生成できる。
動作610において、メモリシステムは、L2Pメッセージ607をホストデバイスに送信する。随意に、メモリシステムは、また、読み取り/書き込み要求605の実行から生じるデータ609を送信する。データ609は、例えば、読み取り要求に応答してメモリアレイから読み取られたデータと、書き込み要求が完了したことの確認等を含み得る。
ホストデバイスはL2Pメッセージ607を受信し、動作612において、L2Pメッセージ607に含まれるデジタル署名を検証する。ホストデバイスは、例えば、図3〜図5に関して本明細書で説明されるように、L2Pメッセージ607に含まれるデジタル署名を検証できる。L2Pメッセージが検証される場合、ホストデバイスは、動作614において、L2Pポインタメッセージ607に含まれるL2Pポインタをキャッシュする。
図6は、メモリシステムが読み取り/書き込み要求に応答してL2Pポインタメッセージを提供する例を示す。いくつかの実施例では、ホストは1つ以上のL2Pポインタのセットを要求する。図7は、ホストにおいて1つ以上のL2Pポインタのセットをキャッシュするために、メモリシステム及びホストデバイスによって実行され得るプロセスフロー700の一例を示すフローチャートである。プロセスフロー700は、2つのカラム701、703を含む。カラム701は、ホストデバイス105等のホストによって実行される動作を含む。カラム703は、メモリシステム110等のメモリシステムによって実行される動作を含む。
動作702において、ホストは、メモリシステムに、L2Pポインタのセットに対する要求705を送信する。要求705は、例えば、論理アドレスのセットを含み得る。要求されたL2Pポインタのセットは、単一のL2Pポインタ及び/またはL2Pポインタのセットを含み得る。
メモリシステムは、動作704で要求705を受信する。動作706において、メモリシステムは、L2Pポインタメッセージ707を生成する。例えば、メモリシステムは、図2に関して本明細書で説明されるように、L2Pポインタメッセージを生成できる。動作708において、メモリシステムは、L2Pポインタメッセージ707をホストデバイスに送信する。
ホストデバイスはL2Pポインタメッセージ707を受信し、動作710において、L2Pポインタメッセージ707を検証する。ホストデバイスは、例えば、図3〜図5に関して本明細書で説明されるように、L2Pポインタメッセージ707に含まれるデジタル署名を検証できる。L2Pポインタメッセージ707に含まれるデジタル署名が検証される場合、ホストデバイスは、動作712において、L2Pポインタメッセージ707に含まれる1つのL2Pポインタまたは複数のL2Pポインタをキャッシュする。
図8は、ホストデバイスにおいてキャッシュされたL2Pポインタで読み取り要求を処理するためにメモリシステム及びホストデバイスによって実行され得るプロセスフロー800の一例を示すフローチャートである。プロセスフロー800は、2つのカラム801、803を含む。カラム801は、ホストデバイス105等のホストによって実行される動作を含む。カラム803は、メモリシステム110等のメモリシステムによって実行される動作を含む。
動作802において、ホストは、論理アドレスを示す読み取り要求を生成する。読み取り要求は、ホストのオペレーティングシステムによって生成され得る及び/またはホストで実行しているアプリケーションから受信され得る。動作804において、ホストは、ホストにおいてキャッシュされた1つ以上のL2Pポインタを検索して、キャッシュされたL2Pポインタのいずれかが読み取り要求からの論理アドレスを示しているかどうかを決定する。キャッシュされたL2Pポインタのいずれも論理アドレスを示さない場合、ホスト及びメモリシステムは、動作806において、キャッシュされていない読み取り要求ルーチンを実行する。キャッシュされていない要求ルーチンの例が、図6に関して本明細書で説明されている。
論理アドレスを示すL2Pポインタが動作804において識別される場合、ホストは、動作808において、キャッシュされたL2Pポインタにアクセスする。動作810において、ホストは、メモリシステムに、L2Pポインタによって示される物理アドレスを含む読み取り要求805を送信する。
動作812において、メモリシステムは読み取り要求805を受信する。動作814において、メモリシステムは、読み取り要求805に含まれる物理アドレスに対応する記憶ユニットからデータを読み取る。動作816において、メモリシステムはデータ807をホストデバイスに返す。動作818において、ホストデバイスはデータを読み取り及び処理する。
図9は、1つ以上の装置930〜950の一部としてメモリシステム920(例えば、本明細書で説明されるメモリシステムのいずれか)を伴う例示的なホストデバイス910(例えば、ホスト105)を示す。装置は、ホストデバイス910等のホストデバイスを含み得るいずれかのデバイスを含む。ホストデバイス910は、命令(シーケンシャル命令またはその他の命令)を実行することが可能であるいずれかのデバイスであり得る。例示的な装置は、車両930(例えば、インフォテインメントシステム、制御システム等の一部として)、ドローン950(例えば、制御システムの一部として)、家具または器具940(例えば、センサシステム、エンターテインメント、またはインフォテインメントシステムの一部として)等を含む。他の実施例では、示されていないが、装置は、航空用デバイス、海洋用デバイス、モノのインターネット(IOT)、及び他のデバイスを含み得る。
図10は、本明細書で説明される技術(例えば、方法論)の任意の1つ以上が行われ得る例示的なマシン1000のブロック図を示す。代替の実施形態では、マシン1000はスタンドアロンデバイスとして動作し得る、または他のマシンに接続(例えば、ネットワーク化)され得る。ネットワーク配備では、マシン1000は、サーバークライアントネットワーク環境で、サーバーマシン、クライアントマシン、またはその両方の能力で動作し得る。実施例では、マシン1000は、ピアツーピア(P2P)(または他の分散型)ネットワーク環境でピアマシンとして機能し得る。マシン1000は、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、携帯電話、ウェブアプライアンス、IoTデバイス、自動車システム、またはそのマシンによって行われるアクションを指定する命令(シーケンシャル命令またはその他の命令)を実行することが可能であるいずれかのマシンであり得る。さらに単一のマシンしか示していないが、用語「マシン」は、また、クラウドコンピューティング、サービス型ソフトウェア(SaaS)、他のコンピュータクラスタ構成等の本明細書で説明される方法論の任意の1つ以上の方法論を行うために命令のセット(または複数のセット)を個々にまたは共同で行うマシンのいずれかの集合体を含むと解釈されるものとする。
本明細書で説明される実施例は、論理、コンポーネント、デバイス、パッケージ、もしくは機構を含み得る、またはそれらによって動作し得る。回路網は、ハードウェア(例えば、単純回路、ゲート、論理等)を含む有形エンティティに実装された回路の集合(例えば、セット)である。回路網の構成要素は、時間の経過及び基礎となるハードウェアの変動性に柔軟に対応し得る。回路網は、単独でまたは組み合わせて、動作するときに特定のタスクを行い得る構成要素を含む。実施例では、回路網のハードウェアは、特定の動作(例えば、ハードワイヤード)を実行するように不変に設計され得る。実施例では、回路網のハードウェアは、特定の動作の命令をエンコードするために、物理的に修正された(例えば、不変質量粒子の磁気的に、電気的に移動可能な配置等に修正された)コンピュータ可読媒体を含む、可変的に接続された物理的コンポーネント(例えば、実行ユニット、トランジスタ、単純回路等)を含み得る。物理的コンポーネントを接続する際に、ハードウェア構成要素の基礎となる電気的特性は、例えば、絶縁体から導体に、またはその逆に変化する。この命令は、関係するハードウェア(例えば、実行ユニットまたはロード機構等)は、可変接続を介してハードウェアの回路網の構成要素を作成し、動作するとき特定のタスクの一部を実行することを可能する。したがって、コンピュータ可読媒体は、デバイスが動作しているときに、回路網の他のコンポーネントに通信可能に結合される。実施例では、物理的コンポーネントのいずれかが、複数の回路網の複数の構成要素で使用され得る。例えば、動作中、実行ユニットは、ある時点で第1の回路網の第1の回路で使用され、別の時点で第1の回路網の第2の回路によって再利用され得る、または第2の回路網の第3の回路によって再利用され得る。
マシン(例えば、コンピュータシステム)1000(例えば、ホストデバイス105、メモリシステム110等)は、ハードウェアプロセッサ1002(例えば、中央処理装置(CPU)、グラフィックス処理装置(GPU)、ハードウェアプロセッサコア、またはメモリコントローラ115等のそれらのいずれかの組み合わせ)、メインメモリ1004及びスタティックメモリ1006を含み得、これらの一部または全ては、インターリンク(例えば、バス)1008を介して相互に通信し得る。マシン1000は、さらに、ディスプレイユニット1010、英数字入力デバイス1012(例えば、キーボード)、及びユーザインターフェース(UI)ナビゲーションデバイス1014(例えば、マウス)を含み得る。実施例では、ディスプレイユニット1010、入力デバイス1012、及びUIナビゲーションデバイス1014は、タッチスクリーンディスプレイであり得る。加えて、マシン1000は、ストレージデバイス(例えば、ドライブユニット)1016、信号生成デバイス1018(例えば、スピーカ)、ネットワークインターフェースデバイス1020、及びグローバルポジショニングシステム(GPS)センサ、コンパス、加速度計、または他のセンサ等の1つ以上のセンサ1017を含み得る。マシン1000は、1つ以上の周辺デバイス(例えば、プリンタ、カードリーダー等)と通信または制御するためのシリアル接続(例えば、ユニバーサルシリアルバス(USB)接続、パラレル接続、または他の有線または無線(例えば、赤外線(IR)、近距離無線通信(NFC)等))接続等の出力コントローラ1028を含み得る。
ストレージデバイス1016は、本明細書で説明される技術または機能の任意の1つ以上を組み入れるまたはそれによって利用されるデータ構造または命令1024(例えば、ソフトウェア)の1つ以上のセットが記憶される、マシン可読媒体1022を含み得る。また、命令1024は、マシン1000によるその命令の実行中に、メインメモリ1004内に、スタティックメモリ1006内に、またはハードウェアプロセッサ1002内に、完全にまたは少なくとも部分的に存在し得る。実施例では、ハードウェアプロセッサ1002、メインメモリ1004、スタティックメモリ1006、またはストレージデバイス1016の1つまたはいずれかの組み合わせは、マシン可読媒体1022を構成し得る。
マシン可読媒体1022は単一の媒体として示されているが、用語「マシン可読媒体」は、1つ以上の命令1024を記憶するように構成される単一の媒体または複数の媒体(例えば、集中型もしくは分散型のデータベース、または関連付けられるキャッシュ及びサーバー)を含み得る。
用語「マシン可読媒体」はいずれかの媒体を含み得、いずれかの媒体は、マシン1000によって実行される命令を記憶、エンコード、または運ぶことが可能であり、マシン1000に、本開示の任意の1つ以上の技術を行わせる、または係る命令によって使用される、もしくは係る命令と関連付けられるデータ構造を記憶、エンコード、または運ぶことが可能である。非限定的なマシン可読媒体の例は、ソリッドステートメモリ、ならびに光媒体及び磁気媒体を含み得る。実施例では、大容量マシン可読媒体は不変容量(例えば、静止容量)を有する複数の粒子を伴うマシン可読媒体を含む。したがって、大容量マシン可読媒体は一時的な伝播信号ではない。大容量マシン可読媒体の具体例は、半導体メモリシステム(例えば、電気的プログラマブル読み取り専用メモリ(EPROM)、電子的消去可能プログラマブル読み取り専用メモリ(EEPROM))及びフラッシュメモリシステム等の不揮発性メモリと、内蔵のハードディスク及びリムーバブルディスク等の磁気ディスクと、光磁気ディスクと、CD−ROMディスク及びDVD−ROMディスクとを含み得る。
命令1024(例えば、ソフトウェア、プログラム、オペレーティングシステム(OS)等)または他のデータは、ストレージデバイス1021に記憶され、プロセッサ1002による使用のためにメインメモリ1004によってアクセスできる。メインメモリ1004(例えば、DRAM)は、一般的に、高速であるが揮発性であり、ひいては、「オフ」状態にある期間を含む長期記憶に適しているストレージデバイス1021(例えば、SSD)とは異なるタイプのストレージである。ユーザまたはマシン1000によって使用される命令1024またはデータは、一般的に、プロセッサ1002による使用のためにメインメモリ1004にロードされる。メインメモリ1004が一杯になると、メインメモリ1004を補うために、ストレージデバイス1021からの仮想空間を割り当てできるが、ストレージデバイス1021は、一般的に、メインメモリ1004よりも遅く、書き込み速度は、一般的に、読み取り速度の少なくとも2倍遅いため、仮想メモリの使用は、(メインメモリ1004(例えば、DRAM)と対照的に)ストレージデバイスの遅延によって、ユーザ体験を大幅に減らす可能性がある。さらに、仮想メモリのためのストレージデバイス1021の使用は、ストレージデバイス1021の使用可能な寿命を大幅に減らす可能性がある。
仮想メモリと対照的に、仮想メモリ圧縮(例えば、Linux(登録商標)カーネル特徴「ZRAM」)は、ストレージデバイス1021へのページングを回避するために、メモリの一部を圧縮ブロックストレージとして使用する。係るデータをストレージデバイス1021に書き込むことが必要になるまで、ページングは圧縮されたブロックで行われる。仮想メモリ圧縮は、ストレージデバイス1021の摩耗を減らしながら、メモリ1004の使用可能なサイズを増加させる。
モバイル電子デバイスまたはモバイルストレージ用に最適化されたストレージデバイスは、従来、MMCソリッドステートストレージデバイス(例:micro Secure Digital(microSD(商標))カード等)を含む。MMCデバイスは、ホストデバイスを伴ういくつかのパラレルインターフェース(例えば、8ビットパラレルインターフェース等)を含み、多くの場合、ホストデバイスから取り外し可能で分離しているコンポーネントである。対照的に、eMMC(商標)デバイスは回路基板に取り付けられ、ホストデバイスのコンポーネントと見なされ、シリアルATA(商標)(シリアルAT(アドバンストテクノロジー)アタッチメント、またはSATA)ベースのSSDデバイスに匹敵する読み取り速度がある。しかしながら、仮想デバイスまたは拡張現実デバイスを完全に可能にする、速いネットワーク速度を利用すること等のモバイルデバイスのパフォーマンスに対する需要は増え続けている。この需要に応えて、ストレージデバイスはパラレル通信インターフェースからシリアル通信インターフェースに移行している。コントローラ及びファームウェアを含むユニバーサルフラッシュストレージ(UFS)デバイスは、専用の読み取り/書き込みパスを伴う低電圧差動信号(LVDS)シリアルインターフェースを使用してホストデバイスと通信し、読み取り/書き込み速度をさらに向上させる。
命令1024は、さらに、いくつかの転送プロトコル(例えば、フレームリレー、インターネットプロトコル(IP)、伝送制御プロトコル(TCP)、ユーザデータグラムプロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)等)のいずれかの1つを利用するネットワークインターフェースデバイス1020を介して伝送媒体を使用して通信ネットワーク1026を通じて伝送または受信され得る。通信ネットワークの例は、とりわけ、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、パケットデータネットワーク(例えば、インターネット)、携帯電話網(例えば、セルラーネットワーク)、従来型電話サービス(POTS)ネットワーク、及び無線データネットワーク(例えば、Wi−Fi(登録商標)として知られる電気電子技術者協会(IEEE)802.11ファミリの規格、WiMax(登録商標)として知られるIEEE802.16ファミリの規格)、IEEE802.15.4ファミリの規格、ピアツーピア(P2P)ネットワークを含み得る。実施例では、ネットワークインターフェースデバイス1020は、通信ネットワーク1026に接続するために、1つ以上の物理的なジャック(例えば、Ethernetジャック、同軸ジャック、または電話ジャック)または1つ以上のアンテナを含み得る。実施例では、ネットワークインターフェースデバイス1020は、シングル入力マルチ出力(SIMO)技術、マルチ入力マルチ出力(MIMO)技術、またはマルチ入力シングル出力(MISO)技術のうちの少なくとも1つを使用して無線通信するための複数のアンテナを含み得る。用語「伝送媒体」は、マシン1000による実行のための命令を記憶、エンコード、または運ぶことが可能であるいずれかの無形媒体を含み、係るソフトウェアの通信を容易にするためにデジタル通信信号もしくはアナログ通信信号または他の無形媒体を含むと解釈されたい。
上記の詳細な説明は、詳細な説明の一部を形成する添付の図面に対する参照を含む。図面は、例示として、本発明を実践できる特定の実施形態を示す。これらの実施形態は、また、本明細書では「実施例」と称される。係る実施例は、示された要素または説明された要素に加えた要素を含み得る。しかしながら、本発明者の数人は、また、示されたまたは説明されたその要素だけが提供される実施例を想到している。さらに、本発明者の数人は、また、特定の実施例(またはその1つ以上の態様)に関して、または本明細書に示されたまたは説明された他の実施例(またはその1つ以上の態様)に関してのいずれかについて、示されたまたは説明されたその要素(またはその1つ以上の態様)のいずれかの組み合わせまたは順列を使用する実施例を想到している。
本書では、用語「a」または「an」は、特許文書で一般的であるように、「少なくとも1つの(at least one)」または「1つ以上の(one or more)」の任意の他の例または使用法とは関係なく、「1つ」または「1つ以上」を含むために使用される。本書では、用語「または(or)」は非排他的を指すために使用され、または別段の指示がない限り、「AまたはB(A or B)」は「AであるがBではない(A but not B)」、「BであるがAではない(B but not A)」、及び「A及びB(A and B)」を含み得るように使用される。添付の「特許請求の範囲」では、用語「含む(including)」及び「〜において(in which)」は、各々の用語「含む(comprising)」及び「そこで(wherein)」の分かりやすい英語の均等物として使用される。また、以下の「特許請求の範囲」では、用語「含む(including)」及び「備える(comprising)」は制約がない。つまり、請求項の係る用語の後に示される要素に加えた要素を含むシステム、デバイス、物品、またはプロセスは、さらに、その請求項の範囲内に含まれると見なされる。さらに、以下の「特許請求の範囲」では、用語「第1の」、「第2の」、及び「第3の」等は、単にラベルとして使用されており、その対象に対する数的な要件を課すことを意図していない。
様々な実施例では、本明細書で説明されるコンポーネント、コントローラ、プロセッサ、ユニット、エンジン、またはテーブルは、とりわけ、物理デバイスに記憶された物理回路またはファームウェアを含み得る。本明細書で使用される「プロセッサ」は、限定的ではないが、マイクロプロセッサ、マイクロコントローラ、グラフィックプロセッサ、デジタルシグナルプロセッサ(DSP)、またはプロセッサもしくはマルチコアデバイスのグループを含む任意の他のタイプのプロセッサまたは処理回路等の任意のタイプの計算回路を意味する。
本書で使用される用語「水平」は、任意の時点における基板の実際の向きに関係なく、ウェーハまたはダイの下にあるもの等、基板の従来の平面または表面に平行な平面として定義される。用語「垂直」は、上記に定義した水平に直角な方向を指す。「上に(on)」、「上方に(over)」、及び「下に(under)」等の前置詞は、基板の向きに関係なく、基板の上面または露出面にある従来の平面または表面に関して定義される一方、(反対の明示的な指示がない場合)「上に」は、「上」にある別の構造に対するある構造の直接接触を示唆することを意図している。用語「上方に(over)」及び「下に(under)」は、構造(または層、特徴等)の相対的配置を識別することを明示的に意図しており、限定的ではないが、そのように特に識別されない限り、識別された構造間の直接接触を明示的に含む。同様に、用語「上方に(over)」及び「下に(under)」は水平配向に限定されない。この理由として、構造が水平配向ではなく参照される構造に対して垂直方向に延在しても、係る構造はある時点で説明中の構造の最外部である場合、参照された構造の「上方に(over)」にあり得るためである。
用語「ウェーハ」及び「基板」は、本明細書では、概して、集積回路が形成される任意の構造と、集積回路の製造の様々な段階の期間の係る構造とを指すために使用される。したがって、以下の詳細な説明は、限定的な意味において解釈されず、様々な実施形態の範囲は、添付の「特許請求の範囲」だけによって、「特許請求の範囲」によって権利が与えられる均等物の全範囲と一緒に定義される。
本開示に従った及び本明細書で説明される様々な実施形態は、メモリセルの垂直構造(例えば、メモリセルのNANDストリング)を利用するメモリを含む。本明細書で使用されるように、方向に関する形容詞は、メモリセルが形成される基板の表面に対するものとして解釈される(すなわち、垂直構造は基板表面から離れて延在すると解釈され、垂直構造の底端は基板表面に最も近い端と解釈され、垂直構造の上端は基板表面から最も遠い端と解釈される)。
本明細書で使用されるように、水平、垂直、垂線、平行、直角等の方向に関する形容詞は、相対配向を指し得、特に明記しない限り、特定の幾何学的特性への厳密な順守を要求することを意図しない。例えば、本明細書で使用される「垂直構造」は、基板の表面に厳密に垂直である必要はないが、代わりに、基板の表面に略垂直であり得、基板の表面に対して鋭角(例えば、60〜120度等)を形成し得る。
本明細書で説明されるいくつかの実施形態では、異なるドーピング構成を、ソース側選択ゲート(SGS)、制御ゲート(CG)、及びドレイン側選択ゲート(SGD)に適用し得、これらのそれぞれは、この実施例では、ポリシリコンで形成される、または少なくともポリシリコンを含み、その結果、これらの層(例えば、ポリシリコン等)は、エッチング液に露出されたときに異なるエッチ速度をもたらし得る。例えば、3D半導体デバイスでモノリシックピラーを形成するプロセスでは、SGS及びCGが凹部を形成し得る一方、SGDは凹部が少ないままであり得る、または凹部が存在すらしないままであり得る。したがって、これらのドーピング構成は、エッチング液(例えば、テトラメチルアンモニウムヒドロキシド(TMCH))を使用することによって、3D半導体デバイスの別個の層(例えば、SGS、CG、及びSGD)への選択的エッチングを可能にし得る。
本明細書で使用されるメモリセルの動作は、メモリセルからの読み取り、メモリセルへの書き込み、またはメモリセルの消去を含む。メモリセルを意図された状態にセットする動作は、本明細書では「プログラミング」と称され、メモリセルへの書き込みまたはメモリセルからの消去(例えば、メモリセルは消去状態にプログラムされ得る)の両方を含み得る。
本開示の1つ以上の実施形態に従って、メモリシステムの内部または外部に位置するメモリコントローラ(例えば、プロセッサ、コントローラ、ファームウェア等)は、摩耗サイクルの量、または摩耗状態を決定すること(例えば、選択すること、設定すること、調整すること、算出すること、変更すること、クリアすること、通信すること、適応すること、導出すること、定義すること、利用すること、修正すること、適用すること等)が可能である(例えば、摩耗サイクルを記録すること、摩耗サイクルが発生したときにメモリシステムの動作をカウントすること、カウントを開始したメモリシステムの動作を追跡すること、摩耗状態に対応するメモリシステムの特徴を評価すること等が可能である)。
本開示の1つ以上の実施形態に従って、メモリアクセスデバイスは、各メモリ動作でメモリシステムに摩耗サイクル情報を提供するように構成され得る。メモリシステム制御回路(例えば、制御論理)は、摩耗サイクル情報に対応するメモリシステム性能の変化を補償するようにプログラムされ得る。メモリシステムは、摩耗サイクル情報を受信し、摩耗サイクル情報に応答して、1つ以上の動作パラメータ(例えば、値、特性)を決定し得る。
要素が別の要素の「上にある」、別の要素に「接続している」、または別の要素と「結合している」と称されるとき、その要素は、他の要素の上に直接あり得る、直接接続され得る、もしくは直接結合され得るか、または介在要素が存在し得ることが理解される。対照的に、要素が別の要素の「上に直接ある」、別の要素に「直接接続している」、または別の要素と「直接結合している」と称されるとき、介在要素または層は存在しない。2つの要素がそれらを結ぶ線で図面に示されている場合、別段の指示がない限り、2つの要素は結合できる、または直接結合できるのいずれかである。
本明細書で説明される方法の例は、少なくとも部分的に、マシンまたはコンピュータに実装できる。いくつかの例は、上記の例に説明した方法を行うために電子デバイスを構成するように動作可能な命令でエンコードされたコンピュータ可読媒体またはマシン可読媒体を含み得る。係る方法の実施態様は、マイクロコード、アセンブリ言語コード、高水準言語コード等のコードを含み得る。係るコードは、様々な方法を行うためのコンピュータ可読命令を含み得る。コードは、コンピュータプログラム製品の一部を形成し得る。さらに、コードは、実行中または他の時間等に、1つ以上の揮発性または不揮発性の有形コンピュータ可読媒体に有形で記憶できる。これらの有形コンピュータ可読媒体の例は、限定的ではないが、ハードディスク、リムーバブル磁気ディスク、リムーバブル光ディスク(例えば、コンパクトディスク及びデジタルビデオディスク)、磁気カセット、メモリカードまたはメモリスティック、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、ソリッドステートドライブ(SSD)、ユニバーサルフラッシュストレージ(UFS)デバイス、組み込みMMC(eMMC)デバイス等を含み得る。
実施例1は、メモリシステムと、ホストデバイスメモリと、ホストデバイスプロセッサとを含むシステムであり、前記ホストデバイスプロセッサは動作を行うようにプログラムされ、前記動作は、前記メモリシステムから第1の論理対物理(L2P)ポインタメッセージを受信することであって、前記第1のL2Pポインタメッセージは、第1の論理アドレス、及び前記第1の論理アドレスに対応する前記メモリシステムにおける第1の物理アドレスを示す、第1のL2Pポインタと、第1のデジタル署名と、を含む、前記受信することと、前記第1のL2Pポインタ及び暗号化キーに少なくとも部分的に基づいて、第1の暗号化動作を実行することと、前記第1の暗号化動作に少なくとも部分的に基づいて、前記第1のデジタル署名を検証することと、前記プロセッサによって、前記ホストデバイスメモリにおいて前記第1のL2Pポインタをキャッシュすることと、を含む。
実施例2では、実施例1の主題が随意に含むものに関して、前記ホストデバイスプロセッサは、さらに、動作を行うようにプログラムされ、前記動作は、第2のL2Pポインタメッセージを受信することであって、前記第2のL2Pポインタメッセージは、第2の論理アドレス、及び前記第2の論理アドレスに対応する前記メモリシステムにおける第2の物理アドレスを示す、第2のL2Pポインタと、第2のデジタル署名と、を含む、前記受信することと、前記第2のL2Pポインタ及び前記暗号化キーに少なくとも部分的に基づいて、第2の暗号化動作を実行することと、前記第2の暗号化動作に少なくとも部分的に基づいて、前記第2のデジタル署名が検証されていないことを決定することと、を含む。
実施例3では、実施例2の主題が随意に含むものに関して、前記ホストデバイスプロセッサは、さらに、動作を行うようにプログラムされ、前記動作は、前記第2の暗号化動作を実行する前に、前記プロセッサによって、前記ホストデバイスメモリにおいて前記第2のL2Pポインタをキャッシュすることと、前記第2のL2Pポインタ及び前記第2のデジタル署名を前記ホストデバイスメモリから読み取ることと、前記第2のデジタル署名が検証されていないと決定した後、前記第2のL2Pポインタを前記ホストデバイスメモリから除去することと、を含む。
実施例4では、実施例1〜3の任意の1つ以上の主題が随意に含むものに関して、Pポインタメッセージはさらに第1のカウンタ値を含み、前記第1の暗号化動作を実行することは、また、前記第1のカウンタ値に少なくとも部分的に基づいている。
実施例5では、実施例4の主題が随意に含むものに関して、前記プロセッサは、さらに、前記暗号化キー及び前記第1のカウンタ値に少なくとも部分的に基づいて、トランザクション暗号化キーを生成することを含む動作を行うようにプログラムされ、前記暗号化キーを実行することは、また、前記トランザクション暗号化キーに少なくとも部分的に基づいている。
実施例6では、実施例4〜5の任意の1つ以上の主題は、随意に、前記メモリシステムからのPポインタメッセージを含む。
実施例7では、実施例1〜6の任意の1つ以上の主題は、随意に、Pポインタを含む。
実施例8では、実施例1〜7の任意の1つ以上の主題が随意に含むものに関して、前記メモリシステムは、メモリアレイと、コントローラと、を備え、前記コントローラは動作を行うようにプログラムされ、前記動作は、第1のL2Pポインタ及び暗号化キーに少なくとも部分的に基づいて第3の暗号化動作を実行して、前記第1のデジタル署名を生成することと、前記ホストデバイスメモリにおいて前記第1のL2Pポインタをキャッシュすることを決定することと、前記ホストデバイスメモリに記憶するために、前記第1のL2Pポインタメッセージを前記プロセッサに送信することと、を含む。
実施例9では、実施例8の主題が随意に含むものに関して、前記メモリシステムはさらにモノトニックカウンタを含み、前記コントローラはさらに前記第1のカウンタ値を前記モノトニックカウンタから読み出すことを含む動作を行うようにプログラムされ、前記第3の暗号化動作はまた前記第1のカウンタ値に少なくとも部分的に基づいている。
実施例10では、実施例9の主題が随意に含むものに関して、前記コントローラは、さらに、前記暗号化キー及び前記第1のカウンタ値に少なくとも部分的に基づいて、トランザクション暗号化キーを生成することを含む動作を行うようにプログラムされ、前記第3の暗号化動作はまた前記トランザクション暗号化キーに少なくとも部分的に基づいている。
実施例11は、メモリシステムを管理する方法であり、前記方法は、プロセッサによって、メモリシステムにおいて発信された第1の論理対物理(L2P)ポインタメッセージを受信することであって、前記第1のL2Pポインタメッセージは、第1の論理アドレス、及び前記第1の論理アドレスに対応する前記メモリシステムにおける第1の物理アドレスを示す、第1のL2Pポインタと、第1のデジタル署名と、を含む、前記受信することと、前記プロセッサによって、前記第1のL2Pポインタ及び暗号化キーに少なくとも部分的に基づいて、第1の暗号化動作を実行することと、前記プロセッサによって、前記第1の暗号化動作に少なくとも部分的に基づいて、前記第1のデジタル署名を検証することと、前記プロセッサによって、前記プロセッサに関連付けられるホストデバイスメモリにおいて前記第1のL2Pポインタをキャッシュすることと、を含む。
実施例12では、実施例11の主題は、随意に、前記プロセッサによって、第2のL2Pポインタメッセージを受信することであって、前記第2のL2Pポインタメッセージは、第2の論理アドレス、及び前記第2の論理アドレスに対応する前記メモリシステムにおける第2の物理アドレスを示す、第2のL2Pポインタと、第2のデジタル署名と、を含む、前記受信することと、前記プロセッサによって、前記第2のL2Pポインタ及び前記暗号化キーに少なくとも部分的に基づいて、第2の暗号化動作を実行することと、前記プロセッサによって、前記第2の暗号化動作に少なくとも部分的に基づいて、前記第2のデジタル署名が検証されていないことを決定することと、を含む。
実施例13では、実施例12の主題が随意に含むものに関して、前記プロセッサによって、前記ホストデバイスメモリにおいて前記第2のL2Pポインタをキャッシュすることと、前記第2のデジタル署名が検証されていないと決定した後、前記第2のL2Pポインタを前記ホストデバイスメモリから除去することと、を含む。
実施例14では、実施例11〜13の任意の1つ以上の主題が随意に含むものに関して、Pポインタメッセージはさらに第1のカウンタ値を含み、前記第1の暗号化動作を実行することは、また、前記第1のカウンタ値に少なくとも部分的に基づいている。
実施例15では、実施例14の主題は、随意に、前記暗号化キー及び前記第1のカウンタ値に少なくとも部分的に基づいて、トランザクション暗号化キーを生成することを含み、前記暗号化キーを実行することは、また、前記トランザクション暗号化キーに少なくとも部分的に基づいている。
実施例16では、実施例14〜15の任意の1つ以上の主題は、随意に、メモリシステムからのPポインタメッセージを含む。
実施例17では、実施例11〜16の任意の1つ以上の主題は、随意に、Pポインタを含む。
実施例18は、プロセッサによって実行されるとき、前記プロセッサに動作を行わせる命令を含む、有形コンピュータ可読媒体であり、前記動作は、第1の論理対物理(L2P)ポインタメッセージを受信することであって、前記第1のL2Pポインタメッセージは、第1の論理アドレス、及び前記第1の論理アドレスに対応するメモリシステムにおける第1の物理アドレスを示す、第1のL2Pポインタと、第1のデジタル署名と、を含む、前記受信することと、前記第1のL2Pポインタ及び暗号化キーに少なくとも部分的に基づいて、第1の暗号化動作を実行することと、前記第1の暗号化動作に少なくとも部分的に基づいて、前記第1のデジタル署名を検証することと、前記プロセッサに関連付けられるホストデバイスメモリにおいて前記第1のL2Pポインタをキャッシュすることと、を含む。
実施例19では、実施例18の主題が随意に含むものに関して、前記コンピュータ可読媒体は、さらに、前記プロセッサによって実行されるとき、前記プロセッサに動作を行わせる命令を含み、前記動作は、第2のL2Pポインタメッセージを受信することであって、前記第2のL2Pポインタメッセージは、第2の論理アドレス、及び前記第2の論理アドレスに対応する前記メモリシステムにおける第2の物理アドレスを示す、第2のL2Pポインタと、第2のデジタル署名と、を含む、前記受信することと、前記第2のL2Pポインタ及び前記暗号化キーに少なくとも部分的に基づいて、第2の暗号化動作を実行することと、前記第2の暗号化動作に少なくとも部分的に基づいて、前記第2のデジタル署名が検証されていないことを決定することと、を含む。
実施例20では、実施例19の主題が随意に含むものに関して、前記コンピュータ可読媒体は、さらに、前記プロセッサによって実行されるとき、前記プロセッサに動作を行わせる命令を含み、前記動作は、前記プロセッサによって、前記ホストデバイスメモリにおいて前記第2のL2Pポインタをキャッシュすることと、前記第2のデジタル署名が検証されていないと決定した後、前記第2のL2Pポインタを前記ホストデバイスメモリから除去することと、を含む。
上記の説明は、例示を意図したものであり、限定的なものではない。例えば、上述の実施例(またはその1つ以上の態様)は、相互に組み合わされて使用され得る。上記の説明を検討する際に当業者によって等、他の実施形態を使用できる。これは、「特許請求の範囲」の範囲または意味を解釈または限定するために使用されないとの理解のもとに提案されている。また、上記の「発明を実施するための形態」では、様々な特性が本開示を効率化するために一緒にグループ化され得る。これは、請求されていない開示された特徴がいずれかの請求項に対して不可欠であることを意図すると解釈されるべきではない。むしろ、本発明の主題は、特定の開示されている実施形態の全ての特性に満たないものに存在し得る。したがって、次の「特許請求の範囲」は「発明を実施するための形態」に組み込まれ、各請求項は別個の実施形態として自立しており、係る実施形態は、様々な組み合わせまたは順列で相互に組み合わせることができると想到される。本発明の範囲は、添付の「特許請求の範囲」に関して、係る「特許請求の範囲」によって権利が与えられる均等物の全範囲と一緒に決定されるべきである。

Claims (20)

  1. メモリシステムと、
    ホストデバイスメモリと、
    ホストデバイスプロセッサと、
    を含む、システムであって、
    前記ホストデバイスプロセッサは動作を行うようにプログラムされ、
    前記動作は、
    前記メモリシステムから第1の論理対物理(L2P)ポインタメッセージを受信することであって、前記第1のL2Pポインタメッセージは、
    第1の論理アドレス、及び前記第1の論理アドレスに対応する前記メモリシステムにおける第1の物理アドレスを示す、第1のL2Pポインタと、
    第1のデジタル署名と、
    を含む、前記受信することと、
    前記第1のL2Pポインタ及び暗号化キーに少なくとも部分的に基づいて、第1の暗号化動作を実行することと、
    前記第1の暗号化動作に少なくとも部分的に基づいて、前記第1のデジタル署名を検証することと、
    前記プロセッサによって、前記ホストデバイスメモリにおいて前記第1のL2Pポインタをキャッシュすることと、
    を含む、前記システム。
  2. 前記ホストデバイスプロセッサは、さらに、動作を行うようにプログラムされ、
    前記動作は、
    第2のL2Pポインタメッセージを受信することであって、前記第2のL2Pポインタメッセージは、
    第2の論理アドレス、及び前記第2の論理アドレスに対応する前記メモリシステムにおける第2の物理アドレスを示す、第2のL2Pポインタと、
    第2のデジタル署名と、
    を含む、前記受信することと、
    前記第2のL2Pポインタ及び前記暗号化キーに少なくとも部分的に基づいて、第2の暗号化動作を実行することと、
    前記第2の暗号化動作に少なくとも部分的に基づいて、前記第2のデジタル署名が検証されていないことを判定することと、
    を含む、請求項1に記載のシステム。
  3. 前記ホストデバイスプロセッサは、さらに、動作を行うようにプログラムされ、
    前記動作は、
    前記第2の暗号化動作を実行する前に、前記プロセッサによって、前記ホストデバイスメモリにおいて前記第2のL2Pポインタをキャッシュすることと、
    前記第2のL2Pポインタ及び前記第2のデジタル署名を前記ホストデバイスメモリから読み取ることと、
    前記第2のデジタル署名が検証されていないと判定した後、前記第2のL2Pポインタを前記ホストデバイスメモリから除去することと、
    を含む、請求項2に記載のシステム。
  4. 前記第1のL2Pポインタメッセージはさらに第1のカウンタ値を含み、
    前記第1の暗号化動作を実行することは、また、前記第1のカウンタ値に少なくとも部分的に基づいている、請求項1〜3のいずれかに記載のシステム。
  5. 前記プロセッサは、さらに、前記暗号化キー及び前記第1のカウンタ値に少なくとも部分的に基づいて、トランザクション暗号化キーを生成することを含む動作を行うようにプログラムされ、
    前記暗号化キーを実行することは、また、前記トランザクション暗号化キーに少なくとも部分的に基づいている、請求項4に記載のシステム。
  6. 前記プロセッサは、さらに、前記第1のカウンタ値が前記メモリシステムからの前のL2Pポインタメッセージで使用されていないことを判定することを含む動作を行うようにプログラムされる、請求項4に記載のシステム。
  7. 前記第1のL2Pポインタメッセージはさらに複数のL2Pポインタを含むL2Pポインタテーブルを含み、前記複数のL2Pポインタは前記第1のL2Pポインタを含み、
    前記第1の暗号化動作を実行することはまた前記複数のL2Pポインタに少なくとも部分的に基づいている、請求項1に記載のシステム。
  8. 前記メモリシステムは、
    メモリアレイと、
    コントローラと、を備え、前記コントローラは動作を行うようにプログラムされ、
    前記動作は、
    第1のL2Pポインタ及び暗号化キーに少なくとも部分的に基づいて第3の暗号化動作を実行して、前記第1のデジタル署名を生成することと、
    前記ホストデバイスメモリにおいて前記第1のL2Pポインタをキャッシュすることを決定することと、
    前記ホストデバイスメモリに記憶するために、前記第1のL2Pポインタメッセージを前記プロセッサに送信することと、
    を含む、請求項1に記載のシステム。
  9. 前記メモリシステムはさらにモノトニックカウンタを含み、
    前記コントローラはさらに前記第1のカウンタ値を前記モノトニックカウンタから読み出すことを含む動作を行うようにプログラムされ、
    前記第3の暗号化動作はまた前記第1のカウンタ値に少なくとも部分的に基づいている、請求項8に記載のシステム。
  10. 前記コントローラは、さらに、前記暗号化キー及び前記第1のカウンタ値に少なくとも部分的に基づいて、トランザクション暗号化キーを生成することを含む動作を行うようにプログラムされ、
    前記第3の暗号化動作はまた前記トランザクション暗号化キーに少なくとも部分的に基づいている、請求項9に記載のシステム。
  11. メモリシステムを管理する方法であって、
    プロセッサによって、メモリシステムにおいて発信された第1の論理対物理(L2P)ポインタメッセージを受信することであって、前記第1のL2Pポインタメッセージは、
    第1の論理アドレス、及び前記第1の論理アドレスに対応する前記メモリシステムにおける第1の物理アドレスを示す、第1のL2Pポインタと、
    第1のデジタル署名と、
    を含む、前記受信することと、
    前記プロセッサによって、前記第1のL2Pポインタ及び暗号化キーに少なくとも部分的に基づいて、第1の暗号化動作を実行することと、
    前記プロセッサによって、前記第1の暗号化動作に少なくとも部分的に基づいて、前記第1のデジタル署名を検証することと、
    前記プロセッサによって、前記プロセッサに関連付けられるホストデバイスメモリにおいて前記第1のL2Pポインタをキャッシュすることと、
    を含む、前記方法。
  12. 前記プロセッサによって、第2のL2Pポインタメッセージを受信することであって、前記第2のL2Pポインタメッセージは、
    第2の論理アドレス、及び前記第2の論理アドレスに対応する前記メモリシステムにおける第2の物理アドレスを示す、第2のL2Pポインタと、
    第2のデジタル署名と、
    を含む、前記受信することと、
    前記プロセッサによって、前記第2のL2Pポインタ及び前記暗号化キーに少なくとも部分的に基づいて、第2の暗号化動作を実行することと、
    前記プロセッサによって、前記第2の暗号化動作に少なくとも部分的に基づいて、前記第2のデジタル署名が検証されていないことを判定することと、
    をさらに含む、請求項11に記載の方法。
  13. 前記プロセッサによって、前記ホストデバイスメモリにおいて前記第2のL2Pポインタをキャッシュすることと、
    前記第2のデジタル署名が検証されていないと判定した後、前記第2のL2Pポインタを前記ホストデバイスメモリから除去することと、
    をさらに含む、請求項12に記載の方法。
  14. 前記第1のL2Pポインタメッセージはさらに第1のカウンタ値を含み、
    前記第1の暗号化動作を実行することは、また、前記第1のカウンタ値に少なくとも部分的に基づいている、請求項11〜13のいずれかに記載の方法。
  15. 前記暗号化キー及び前記第1のカウンタ値に少なくとも部分的に基づいて、トランザクション暗号化キーを生成することをさらに含み、
    前記暗号化キーを実行することは、また、前記トランザクション暗号化キーに少なくとも部分的に基づいている、請求項14に記載の方法。
  16. 前記プロセッサによって、前記第1のカウンタ値が前記メモリシステムからの前のL2Pポインタメッセージで使用されていないことを判定することをさらに含む、請求項14に記載の方法。
  17. 前記第1のL2Pポインタメッセージはさらに複数のL2Pポインタを含むL2Pポインタテーブルを含み、前記複数のL2Pポインタは前記第1のL2Pポインタを含み、
    前記第1の暗号化動作を実行することはまた前記複数のL2Pポインタに少なくとも部分的に基づいている、請求項11に記載の方法。
  18. プロセッサによって実行されるとき、前記プロセッサに動作を行わせる命令を含む、有形コンピュータ可読媒体であって、
    前記動作は、
    第1の論理対物理(L2P)ポインタメッセージを受信することであって、前記第1のL2Pポインタメッセージは、
    第1の論理アドレス、及び前記第1の論理アドレスに対応するメモリシステムにおける第1の物理アドレスを示す、第1のL2Pポインタと、
    第1のデジタル署名と、
    を含む、前記受信することと、
    前記第1のL2Pポインタ及び暗号化キーに少なくとも部分的に基づいて、第1の暗号化動作を実行することと、
    前記第1の暗号化動作に少なくとも部分的に基づいて、前記第1のデジタル署名を検証することと、
    前記プロセッサに関連付けられるホストデバイスメモリにおいて前記第1のL2Pポインタをキャッシュすることと、
    を含む、前記媒体。
  19. 前記コンピュータ可読媒体は、さらに、前記プロセッサによって実行されるとき、前記プロセッサに動作を行わせる命令を含み、
    前記動作は、
    第2のL2Pポインタメッセージを受信することであって、前記第2のL2Pポインタメッセージは、
    第2の論理アドレス、及び前記第2の論理アドレスに対応する前記メモリシステムにおける第2の物理アドレスを示す、第2のL2Pポインタと、
    第2のデジタル署名と、
    を含む、前記受信することと、
    前記第2のL2Pポインタ及び前記暗号化キーに少なくとも部分的に基づいて、第2の暗号化動作を実行することと、
    前記第2の暗号化動作に少なくとも部分的に基づいて、前記第2のデジタル署名が検証されていないことを判定することと、
    を含む、請求項18に記載の媒体。
  20. 前記コンピュータ可読媒体は、さらに、前記プロセッサによって実行されるとき、前記プロセッサに動作を行わせる命令を含み、
    前記動作は、
    前記プロセッサによって、前記ホストデバイスメモリにおいて前記第2のL2Pポインタをキャッシュすることと、
    前記第2のデジタル署名が検証されていないと判定した後、前記第2のL2Pポインタを前記ホストデバイスメモリから除去することと、
    を含む、請求項19に記載の媒体。
JP2020572997A 2018-06-29 2019-06-28 安全な論理対物理キャッシング Ceased JP2021530152A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/023,485 2018-06-29
US16/023,485 US10698816B2 (en) 2018-06-29 2018-06-29 Secure logical-to-physical caching
PCT/US2019/039938 WO2020006485A1 (en) 2018-06-29 2019-06-28 Secure logical-to-physical caching

Publications (1)

Publication Number Publication Date
JP2021530152A true JP2021530152A (ja) 2021-11-04

Family

ID=68987620

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020572997A Ceased JP2021530152A (ja) 2018-06-29 2019-06-28 安全な論理対物理キャッシング

Country Status (6)

Country Link
US (3) US10698816B2 (ja)
EP (1) EP3814972A4 (ja)
JP (1) JP2021530152A (ja)
KR (1) KR20210013649A (ja)
CN (1) CN113015975B (ja)
WO (1) WO2020006485A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10430117B2 (en) 2017-10-23 2019-10-01 Micron Technology, Inc. Host accelerated operations in managed NAND devices
US10698816B2 (en) 2018-06-29 2020-06-30 Micron Technology, Inc. Secure logical-to-physical caching
KR20210012820A (ko) * 2019-07-26 2021-02-03 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
JP2022549671A (ja) * 2019-09-25 2022-11-28 コモンウェルス サイエンティフィック アンド インダストリアル リサーチ オーガナイゼーション ブラウザアプリケーション用の暗号化サービス
US11062756B2 (en) 2019-10-14 2021-07-13 Western Digital Technologies, Inc. Extending operating temperature of storage device
CN111338991B (zh) * 2020-02-20 2022-03-11 中国科学院自动化研究所 基于eMMC阵列的多模态存储系统
US20220021544A1 (en) * 2020-07-15 2022-01-20 Micron Technology, Inc. Secure Serial Peripheral Interface (SPI) Flash

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002259213A (ja) * 2001-02-28 2002-09-13 Hitachi Ltd 並列コンピュータシステム
JP2007258789A (ja) * 2006-03-20 2007-10-04 Softbank Telecom Corp エージェント認証システム、エージェント認証方法、及びエージェント認証プログラム
US20110296088A1 (en) * 2010-05-27 2011-12-01 Sandisk Il Ltd. Memory management storage to a host device
US20110320910A1 (en) * 2010-06-29 2011-12-29 Yi-Chun Liu Storage management method and storage system
US20140281588A1 (en) * 2013-03-14 2014-09-18 Apple Inc. Generating efficient reads for a system having non-volatile memory
JP2016021700A (ja) * 2014-07-15 2016-02-04 株式会社日立製作所 情報処理システム、情報処理装置、及び情報処理システムの制御方法
US20170206030A1 (en) * 2016-01-14 2017-07-20 Samsung Electronics Co., Ltd. Storage device and operating method of storage device

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0039227A3 (en) * 1980-04-25 1982-09-01 Data General Corporation Data processing system
US4788746A (en) 1985-06-27 1988-12-06 Martin Marietta Corporation Cam actuated self-locking hinge
US6959382B1 (en) * 1999-08-16 2005-10-25 Accela, Inc. Digital signature service
US6839826B2 (en) * 2002-02-06 2005-01-04 Sandisk Corporation Memory device with pointer structure to map logical to physical addresses
US7716139B2 (en) * 2004-10-29 2010-05-11 Research In Motion Limited System and method for verifying digital signatures on certificates
EP1988549B1 (fr) 2007-05-02 2010-10-27 Stmicroelectronics Sa Mémoire non volatile à effacement partiel
US8874920B2 (en) * 2008-02-26 2014-10-28 Texas Instruments Incorporated Verifying cryptographic signature from stored primitives of previously received signature
EP2175378A1 (en) * 2008-10-13 2010-04-14 Vodafone Holding GmbH Provision of data stored in a memory card to a user device
US8453140B2 (en) * 2009-04-28 2013-05-28 Qualcomm Incorporated Method for generically handling carrier specific provisioning for computer cellular wireless cards
KR101084936B1 (ko) 2009-08-07 2011-11-17 삼성전기주식회사 터치스크린 장치
WO2012014140A2 (en) 2010-07-27 2012-02-02 International Business Machines Corporation Logical to physical address mapping in storage systems comprising solid state memory devices
US8862902B2 (en) * 2011-04-29 2014-10-14 Seagate Technology Llc Cascaded data encryption dependent on attributes of physical memory
US9189225B2 (en) * 2012-10-16 2015-11-17 Imprivata, Inc. Secure, non-disruptive firmware updating
KR101526110B1 (ko) 2013-02-07 2015-06-10 서울대학교산학협력단 증명 가능하고 정확한 오류 복구를 위한 플래시 변환 계층 설계 프레임워크
US9514057B2 (en) * 2013-12-04 2016-12-06 Sandisk Technologies Llc Storage module and method for managing logical-to-physical address mapping
US20160363919A1 (en) * 2015-06-09 2016-12-15 Fisher Controls International Llc Custom application environment in a process control device
US9880939B2 (en) * 2015-09-04 2018-01-30 Toshiba Memory Corporation Memory system and information processing system
US10503653B2 (en) * 2015-09-11 2019-12-10 Toshiba Memory Corporation Memory system
US20170177497A1 (en) * 2015-12-21 2017-06-22 Qualcomm Incorporated Compressed caching of a logical-to-physical address table for nand-type flash memory
US10303384B1 (en) * 2017-11-28 2019-05-28 Western Digital Technologies, Inc. Task readiness for queued storage tasks
US10698816B2 (en) 2018-06-29 2020-06-30 Micron Technology, Inc. Secure logical-to-physical caching

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002259213A (ja) * 2001-02-28 2002-09-13 Hitachi Ltd 並列コンピュータシステム
JP2007258789A (ja) * 2006-03-20 2007-10-04 Softbank Telecom Corp エージェント認証システム、エージェント認証方法、及びエージェント認証プログラム
US20110296088A1 (en) * 2010-05-27 2011-12-01 Sandisk Il Ltd. Memory management storage to a host device
US20110320910A1 (en) * 2010-06-29 2011-12-29 Yi-Chun Liu Storage management method and storage system
US20140281588A1 (en) * 2013-03-14 2014-09-18 Apple Inc. Generating efficient reads for a system having non-volatile memory
JP2016021700A (ja) * 2014-07-15 2016-02-04 株式会社日立製作所 情報処理システム、情報処理装置、及び情報処理システムの制御方法
US20170206030A1 (en) * 2016-01-14 2017-07-20 Samsung Electronics Co., Ltd. Storage device and operating method of storage device

Also Published As

Publication number Publication date
CN113015975B (zh) 2024-03-15
US20220283940A1 (en) 2022-09-08
EP3814972A1 (en) 2021-05-05
US10698816B2 (en) 2020-06-30
WO2020006485A1 (en) 2020-01-02
US20200004679A1 (en) 2020-01-02
EP3814972A4 (en) 2022-03-16
US11341050B2 (en) 2022-05-24
US11886339B2 (en) 2024-01-30
KR20210013649A (ko) 2021-02-04
CN113015975A (zh) 2021-06-22
US20200327054A1 (en) 2020-10-15

Similar Documents

Publication Publication Date Title
US11983106B2 (en) Host accelerated operations in managed NAND devices
US11385838B2 (en) Host accelerated operations in managed NAND devices
US11886339B2 (en) Secure logical-to-physical caching
US11704254B2 (en) Host side caching security for flash memory
KR20210024430A (ko) 메모리 디바이스에 있어서 논리 대 물리 맵 동기화
JP2021532491A (ja) 安全なメモリシステムプログラミング
US20230214332A1 (en) Increased efficiency obfuscated logical-to-physical map management
US11989138B2 (en) Host assisted operations in managed memory devices
JP2022522595A (ja) ホストベースのフラッシュメモリメンテナンス技術

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220621

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221108

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20230328