JP2021530044A - フラッシュメモリのホスト側キャッシュセキュリティ - Google Patents

フラッシュメモリのホスト側キャッシュセキュリティ Download PDF

Info

Publication number
JP2021530044A
JP2021530044A JP2020572971A JP2020572971A JP2021530044A JP 2021530044 A JP2021530044 A JP 2021530044A JP 2020572971 A JP2020572971 A JP 2020572971A JP 2020572971 A JP2020572971 A JP 2020572971A JP 2021530044 A JP2021530044 A JP 2021530044A
Authority
JP
Japan
Prior art keywords
encrypted
physical address
pointer
memory
memory system
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
JP2020572971A
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 JP2021530044A publication Critical patent/JP2021530044A/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/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
    • 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/602Providing cryptographic facilities or services
    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

様々な例は、メモリシステムを管理するためのシステム及び方法を対象とする。メモリシステムは、第1のクリアな物理アドレスを使用して、第1の暗号化された物理アドレスを生成することができる。メモリシステムは、第1の論理アドレス及び第1の暗号化された物理アドレスを示す第1の暗号化された論理対物理(L2P)ポインタを生成することができる。メモリシステムは、第1の暗号化されたL2Pポインタをホストメモリでの記憶のためホストデバイスに送信することができる。

Description

優先権出願
本願は、参照によりその全体が本明細書に組み込まれる、2018年6月29日に出願された米国特許出願第16/023,247号に対する優先権の利益を主張するものである。
メモリシステムは典型的には、内部の、半導体、集積回路としてコンピュータまたは他の電子デバイスに設けられる。揮発性メモリ及び不揮発性メモリを含む多くの異なるタイプのメモリが存在する。
揮発性メモリは、そのデータを維持するために電力を必要とし、とりわけ、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、または同期ダイナミックランダムアクセスメモリ(SDRAM)を含む。
不揮発性メモリは、電力が供給されていないときに格納されたデータを保持することができ、とりわけ、フラッシュメモリ、読み取り専用メモリ(ROM)、電気的消去可能プログラマブルROM(EEPROM)、スタティックRAM(SRAM)、消去可能プログラマブルROM(EPROM)、相変化ランダムアクセスメモリ(PCRAM)、抵抗ランダムアクセスメモリ(RRAM)、磁気抵抗型ランダムアクセスメモリ(MRAM)、または3D XPoint(商標)メモリなどの抵抗可変メモリを含む。
フラッシュメモリは、広範囲な電気的用途のために不揮発性メモリとして利用される。フラッシュメモリシステムは、通常、高メモリ密度、高信頼性、及び低消費電力を可能にする1トランジスタ、フローティングゲート、またはチャージトラップメモリセルの1つ以上のグループを含む。
フラッシュメモリアレイアーキテクチャの2つの一般的なタイプには、NANDアーキテクチャとNORアーキテクチャがあり、それぞれの基本的なメモリセル構成が配置されている論理形式にちなんで名付けられている。メモリアレイのメモリセルは、通常、マトリックスに配置される。一実施例では、アレイの行内の各フローティングゲートメモリセルのゲートは、アクセスライン(例えば、ワードライン)に結合されている。NORアーキテクチャでは、アレイの列にある各メモリセルのドレインは、データライン(例えば、ビットライン)に結合される。NANDアーキテクチャでは、アレイのストリング内の各メモリセルのドレインは、ソースラインとビットラインの間で、ソースからドレインに直列に結合される。
NOR及びNANDアーキテクチャの半導体メモリアレイの両方は、ゲートに結合されたワードラインを選択することによって特定のメモリセルをアクティブにするデコーダを介してアクセスされる。NORアーキテクチャの半導体メモリアレイでは、アクティブ化されると、選択されたメモリセルがデータ値をビットラインに配置し、特定のセルがプログラムされている状態に応じて異なる電流を流す。NANDアーキテクチャの半導体メモリアレイでは、高バイアス電圧がドレイン側選択ゲート(SGD)ラインに印加される。各グループの選択されていないメモリセルのゲートに結合されたワードラインは、指定された通過電圧(例えば、Vpass)で駆動されて、各グループの選択されていないメモリセルをパストランジスタとして動作させる(例えば、保存されたデータ値により制限されない方法で電流を流す)。次に、電流は、各グループの選択されたメモリセルによってのみ制限され、各直列結合グループを介してソースラインからビットラインに流れ、選択されたメモリセルの電流のエンコードされたデータ値をビットラインに配置する。
NORまたはNANDアーキテクチャの半導体メモリアレイの各フラッシュメモリセルは、個別にまたは集合的に1つまたは複数のプログラムされた状態にプログラムできる。例えば、シングルレベルセル(SLC)は、1ビットのデータを表す2つのプログラムされた状態(例えば、1または0)のうちの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テーブルを使用してR/W要求に応じるためにメモリシステムによって実行され得るプロセスフロー400の一例を示すフローチャートである。 ホストデバイスでキャッシュされた暗号化されたL2Pポインタを用いて読み取り要求を処理するためにメモリシステム及びホストデバイスによって実行され得るプロセスフローの一例を示すフローチャートである。 ホストでキャッシュされた要求に対応する暗号化されたL2Pポインタがない場合に、読み取り要求を処理するためにメモリシステム及びホストデバイスによって実行され得るプロセスフローの一例を示すフローチャートである。 書き込み要求を処理するためにメモリシステム及びホストデバイスによって実行され得るプロセスフローの一例を示すフローチャートである。 ホストでL2Pポインタのセットをキャッシュするためにメモリシステム及びホストデバイスによって実行され得るプロセスフローの一例を示すフローチャートである。 1つまたは複数の装置の一部としてメモリシステムを備えたホストの例を示す。 1つまたは複数の実施形態を実装することができるマシンの例を示すブロック図である。
本開示の態様は、安全なホストデバイスキャッシングを備えたメモリシステムを対象とする。メモリシステムは、論理から物理(L2P)ポインタのセットを維持するように構成できる。L2Pポインタは、メモリシステムのメモリアレイの物理アドレスを、例えばホストデバイスで使用される論理アドレスに関連付ける。L2Pポインタは、L2Pテーブルとして共通のデータ構造に格納できる。ホストデバイスによってなされる読み取り及び書き込み要求には、読み取りまたは書き込み対象のデータユニットに関連付けられた論理アドレスを含めることができる。メモリシステムは、論理アドレスを使用して、メモリアレイの1つまたは複数の物理アドレスへの論理アドレスに関連する以前に生成されたL2Pポインタを生成及び/またはそれにアクセスする。
永続性を維持するために、L2Pポインタをメモリシステムのメモリアレイに格納できる。メモリシステムの使用中、L2Pポインタはメモリアレイから直接読み取ることができる。メモリシステムコントローラにRAMが含まれている場合は、使用中にL2Pポインタの一部またはすべてをRAMに格納して、待ち時間を短縮できる。例えば、メモリシステムコントローラのRAMでの読み取り動作は、メモリアレイでの読み取り動作よりも高速であり得る。ただし、一部のアプリケーションでは、デバイスコントローラのRAMが小さすぎて、メモリアレイの完全なL2Pテーブルをロードできない。さらに、一部のメモリシステムコントローラにはRAMが含まれていない。
したがって、いくつかの例では、メモリシステムは、ホストデバイスでのL2Pポインタを含むそのL2Pテーブルの一部またはすべてをキャッシュするように構成される。L2Pポインタは、ホストデバイスのRAMに格納できる。論理アドレスで読み取り要求を行うと、ホストデバイスは、その論理アドレスに対応するL2Pポインタのコピーをキャッシュしたかどうかを判断する。ホストデバイスにL2Pポインタのキャッシュコピーがある場合、ホストデバイスはL2Pポインタを使用して、論理アドレスに対応するメモリシステムの物理アドレスを解決する。ホストデバイスは、物理アドレスを使用してメモリシステムに読み取り要求を行うことができる。メモリシステムは、物理アドレスに格納されているデータを返す。
ホストデバイスでL2Pポインタをキャッシュすると、いくつかの利点が得られる。例えば、メモリシステムがL2Pポインタにアクセスするためにメモリアレイで個別の読み取り動作を実行しない可能性があるため、データをより高速に取得できる可能性がある。また、メモリシステムは、ホストデバイスにキャッシュされているL2Pポインタを個別にキャッシュする必要がない可能性があるため、メモリシステムでのRAMの必要性を減らすことができる。
一方、ホストデバイスでL2Pポインタをキャッシュすると、メモリシステムの物理アドレス構造がホストデバイスに公開される可能性がある。これは脆弱性につながる可能性がある。例えば、ホストデバイスは、キャッシュされたL2Pポインタからの物理アドレスを予測可能な方法で変更して、意図したものを超えてメモリシステムのデータにアクセスできる場合がある。また、ホストデバイスがキャッシュされたL2Pポインタを変更して、メモリシステムに意図しない変更をもたらし得る可能性がある。
本開示の態様は、ホストデバイスにキャッシュされるL2Pポインタに含まれる物理アドレスを暗号化することによって、上記及び他の欠陥に対処する。メモリシステム(例えば、そのコントローラ)は、物理アドレス及び暗号化鍵を使用して暗号化された物理アドレスを生成することができる。メモリシステムは、暗号化された物理アドレスと対応する論理アドレスを示す暗号化されたL2Pポインタを生成する。論理アドレスは暗号化されていない場合があり、ここでは「クリア(clear)」または「クリアな(in the clear)」とも呼ばれる。暗号化されたL2Pポインタは、ホストデバイスにキャッシュされる。
ホストデバイスは、クリアな論理アドレスを使用して、ホストデバイスにキャッシュされている適切な暗号化されたL2Pポインタにアクセスする。ホストデバイスは、暗号化された物理アドレスを使用して、メモリシステムに対して読み取りまたは書き込み要求(読み取り/書き込み要求)を行う。読み取り/書き込み要求を受信すると、メモリシステムは暗号化された物理アドレスを復号して、クリアな物理アドレスを生成する。次に、メモリシステムは、クリアな物理アドレスを使用して要求された動作を実行する。
ホストデバイスにはクリアな物理アドレスへのアクセス権が与えられていないため、ホストデバイスがメモリシステムで他の物理アドレスを取得して意図しないデータにアクセスしたり、メモリシステムに意図しない変更をしたりすることがより困難になり得る。
図1は、通信インターフェースを介して通信するように構成されたホストデバイス105及びメモリシステム110を含む環境100の例を示している。ホストデバイス105またはメモリシステム110は、モノのインターネット(IoT)デバイス(例えば、冷蔵庫または他の機器、センサ、モータまたはアクチュエータ、移動通信デバイス、自動車、ドローン、など)などの様々な製品に含まれて、製品の処理、通信、または制御をサポートすることができる。
メモリシステム110は、メモリコントローラ115と、例えば、複数の個別のメモリダイ(例えば、二次元または三次元(3D)NANDダイのスタック)を含むメモリアレイ120とを含む。3Dアーキテクチャの半導体メモリ技術では、垂直構造が積み重ねられ、層の数、物理ページが増加し、それに応じてメモリシステム(例えば、ストレージデバイス)の密度が増加する。一実施例では、メモリシステム110は、ホストデバイス105のディスクリートメモリまたはストレージデバイス構成要素であり得る。他の例では、メモリシステム110は、集積回路(例えば、システムオンチップ(SOC)など)の一部であり得、積み重ねられるか、そうでなければ、ホストデバイス105の他の1つまたは複数の構成要素に含まれ得る。
図1の例示的な環境100では、ホストデバイス105は、プロセッサ160及びホストRAM162を含む。ホストRAM162は、DRAM、SDRAM、または任意の他の適切な揮発性または不揮発性メモリ構成要素を含み得る。1つまたは複数の通信インターフェースを使用して、メモリシステム110と、シリアルアドバンストテクノロジアタッチメント(SATA)インターフェース、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)インターフェース、ユニバーサルシリアルバス(USB)インターフェース、ユニバーサルフラッシュストレージ(UFS)インターフェース、eMMC(商標)インターフェース、または1つまたは複数の他のコネクタもしくはインターフェースなどのホストデバイス105の他の1つまたは複数の構成要素との間でデータを転送することができる。ホストデバイス105は、電子デバイス、プロセッサ、メモリカードリーダ、またはメモリシステム110の外部にある1つまたは複数の他の電子デバイスを含むことができる。いくつかの例では、ホストデバイス105は、図10のマシン1000を参照して説明された構成要素の一部または全部を有するマシンであり得る。また、ホストデバイス105の追加の例は、図9を参照して説明される。
メモリコントローラ115は、ホストデバイス105から命令を受信でき、メモリアレイ120のメモリセル、プレーン、サブブロック、ブロック、またはページのうちの1つ以上へのデータ転送(例えば、書き込みまたは消去)またはそれらからのデータ転送(例えば、読み取り)など、メモリアレイ120と通信できる。メモリコントローラ115は、とりわけ、1つまたは複数の構成要素または集積回路を含む回路またはファームウェアを含むことができる。例えば、メモリコントローラ115は、メモリアレイ120全体のアクセスを制御し、ホストデバイス105とメモリシステム110との間に変換層を提供するように構成された1つまたは複数のメモリ制御ユニット、回路、または構成要素を含むことができる。メモリコントローラ115は、メモリアレイ120との間でデータを転送するための1つまたは複数の入力/出力(I/O)回路、ライン、またはインターフェースを含むことができる。メモリコントローラ115は、メモリマネージャ125及びアレイコントローラ135を含むことができる。
メモリマネージャ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は、クリアなL2Pテーブル及び暗号化されたL2Pテーブルを含むことができる。クリアなL2Pテーブルには、クリアな論理アドレスとクリアな物理アドレスを示すL2Pポインタが含まれる。暗号化されたL2Pテーブルには、暗号化された物理アドレスとクリアな論理アドレスを示す暗号化されたL2Pポインタが含まれる。管理テーブル130は、マネージャ125に示されている。例えば、管理テーブル130は、メモリコントローラ115のRAMに格納され得る。いくつかの例では、管理テーブル130の一部またはすべてがメモリアレイに格納されている。例えば、マネージャ125は、メモリアレイ120から管理テーブル130を読み取り、かつ/または管理テーブル130の一部またはすべてをキャッシュすることができる。
アレイコントローラ135は、とりわけ、メモリコントローラ115に結合されたメモリシステム110の1つ以上のメモリセルへのデータの書き込み、メモリセルからのデータの読み取り、またはメモリセルの消去に関連付けられたメモリ動作を制御するように構成された回路または構成要素を含むことができる。メモリ動作は、例えば、ホストデバイス105から受信された、またはメモリマネージャ125によって内部的に生成された(例えば、ウェアレベリング、エラー検出または訂正などに関連して)ホストコマンドに基づくことができる。
アレイコントローラ135は、エラー訂正コード(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は、入力値に対してhas関数を実行して、デジタル署名を生成することができる。
いくつかの例では、暗号化エンジン142は、ホストデバイス105とメモリシステム110Aとの間の通信インターフェースと連動して動作するように構成される。例えば、暗号化エンジン142は、例えば、PCIeまたは他の適切なインターフェースに従って、メモリシステム110Aとホストデバイス105との間の通信に関連するデジタル署名を暗号化及び/または生成するために使用される暗号化鍵をストーリー化するためのキーレジスタまたは他の適切な記憶位置を備え得る。また、いくつかの例では、暗号化エンジン142は、サーバルートキーを格納するキーレジスタを備える。メモリシステムのサーバルートキーは、本明細書で説明するように、署名されたコマンドを検証するために使用される暗号化鍵である。
暗号化エンジン142は、任意の適切な暗号化操作を使用して、対称暗号化、非対称暗号化、及び/またはその両方を実装するように構成することができる。例えば、暗号化エンジン142は、先進暗号化標準(AES)操作、データ暗号化標準(DES)操作、トリプルDES操作などの1つまたは複数の非対称操作を利用できる。いくつかの例では、暗号化エンジン142はRivest−Shamir−Adleman(RSA)暗号化などの1つまたは複数の対称的な操作を利用することができる。暗号化エンジン142は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの両方の組み合わせで実装することができる。例えば、暗号化エンジン142は、プロセッサまたはメモリコントローラ115の同様のハードウェア構成要素で実行される命令を含むことができる。また、いくつかの例では、暗号化エンジン142は、暗号化操作を実行するための専用ハードウェアを含むことができる。
メモリアレイ120は、例えば、1つまたは複数のデバイス、1つまたは複数のプレーン、1つまたは複数のサブブロック、1つまたは複数のブロック、1つまたは複数のページなどに配置された、いくつかのメモリセルを含むことができる。一例として、48 GB 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デバイスよりも多くのメタデータバイトをエラーデータに必要とする場合がある。
図1の環境100はまた、ホストデバイス105での暗号化されたL2Pポインタ172のキャッシングを示している。メモリシステム110(例えば、そのコントローラ115)は、暗号化されたL2Pポインタ172を生成する。いくつかの例では、メモリシステム110は、L2Pテーブルに格納されたL2Pポインタから暗号化されたL2Pポインタ172を生成する。L2Pポインタは、クリアな論理アドレスと、物理アドレス位置150A、150B、150Nを参照するクリアな物理アドレスとを含む。メモリシステム110は、暗号化エンジン142を使用して、暗号化された物理アドレス170を作成する。暗号化された物理アドレス170は、論理アドレス168(例えば、論理アドレスのクリアバージョン)と組み合わされて、暗号化されたL2Pポインタ172を生成する。例えば、暗号化された物理アドレス170及び論理アドレス168は、暗号化されたL2Pポインタ172の全部または一部を構成する共通のテーブルまたは他の同様のデータ構造に組み込むことができる。
暗号化されたL2Pポインタ172は、ホストデバイス105(例えば、そのプロセッサ160)に提供される。ホストデバイス105において、暗号化されたL2Pポインタ172は、ホストRAM162にキャッシュされる。
ホストデバイス105(例えば、そのプロセッサ160)は、R/W要求164を生成する。R/W要求164は、暗号化された物理アドレス170を含む。メモリシステム110(例えば、コントローラ115)は、R/W要求164を受信する。メモリシステム110は、暗号化された物理アドレス170を復号し、結果として得られたクリアな物理アドレスを使用して、メモリアレイ120でR/W要求を実行する。
図2は、暗号化されたL2Pポインタをホストデバイスにキャッシュするために、メモリシステム110などのメモリシステムによって実行され得るプロセスフロー200の一例を示すフローチャートである。例えば、プロセスフロー200は、コントローラ115などのメモリシステムのコントローラで実行することができる。
動作202で、メモリシステムは暗号化された物理アドレスを生成する。暗号化された物理アドレスは、クリアな物理アドレスと、場合によっては暗号化鍵を使用して生成できる。クリアな物理アドレスは、メモリシステムのメモリアレイで物理アドレス位置を一意に識別するアドレスである。暗号化鍵は、暗号化された物理アドレスを生成するために、クリアな物理アドレスとともに暗号化操作で使用されるデータ値である。暗号化鍵のサイズは、例えば、使用される暗号化操作のタイプによって異なり得る。
動作202は、例えば、本明細書で説明するように、メモリシステムの暗号化エンジンによって実行することができる。暗号化鍵は、メモリシステム、例えばホストデバイスからアクセスできない位置に格納できる。いくつかの例では、暗号化鍵は、コントローラの暗号化エンジンのキーレジスタに格納される。任意の適切な暗号化操作を使用して、暗号化された物理アドレスを生成できる。
動作204で、メモリシステムは、暗号化されたL2Pポインタ172などの暗号化されたL2Pポインタを生成する。メモリシステムは、暗号化された物理アドレスの表示及び対応するクリアな論理アドレスの表示を含むデータ構造を生成することによって、暗号化されたL2Pポインタを生成することができる。いくつかの例では、メモリシステムは既存のL2Pポインタから暗号化されたL2Pポインタを生成する。メモリシステムは、既存のL2Pポインタのクリアな物理アドレスを、生成された暗号化された物理アドレスに置き換えることができる。
動作206で、メモリシステムは、暗号化されたL2Pポインタをキャッシュのためにホストデバイスに送信する。暗号化されたL2Pポインタは、適切なプロトコルまたは標準を使用して、適切な方法でホストデバイスに送信できる。いくつかの例では、暗号化されたL2Pポインタは、PCIeバスで実装されたNon−Volatile Memory Express(NVMe)標準でサポートされるホストメモリバッファ(HMB)機能の一部としてホストデバイスに送信されるが、他の配置も可能である。
図3は、ホストデバイスでキャッシュするためにL2Pポインタを暗号化されたL2Pポインタに変換するために、メモリシステム110などのメモリシステムで実行され得るプロセスフロー300の一例を示すフローチャートである。動作302で、メモリシステムは、例えば、メモリシステムのメモリアレイに格納されたL2PテーブルからL2Pポインタを読み取る。
動作304で、メモリシステムは、L2Pポインタから暗号化されたL2Pポインタを生成する。例えば、メモリシステムは、L2Pポインタによって示されるクリアな物理アドレスを使用して、暗号化された物理アドレスを生成する。これには、本明細書で説明するように、クリアな物理アドレスと暗号化鍵を使用して暗号化操作を実行することが含まれ得る。メモリシステムは、暗号化された物理アドレスをL2Pポインタに組み込んで、暗号化されたL2Pポインタを生成する。例えば、クリアな物理アドレスが削除される場合がある。つまり、暗号化されたL2Pポインタにクリアな物理アドレスが含まれていない可能性がある。
暗号化されたL2Pポインタが生成されると、メモリシステムが実行できることがいくつかある。いくつかの例では、メモリシステムは、動作306で、暗号化されたL2Pポインタを暗号化されたL2Pテーブルに書き込む。暗号化されたL2Pテーブルには、暗号化されたL2Pポインタが含まれる。いくつかの例では、暗号化されたL2Pテーブルは、暗号化されたL2PポインタとクリアなL2Pポインタの両方を含む。暗号化されたL2Pテーブルは、メモリアレイ120及び/またはメモリコントローラRAMに格納することができる。暗号化されたL2Pテーブルには、L2Pテーブルのすべてまたはすべて未満のL2Pポインタに対応する暗号化されたL2Pポインタを含めることができる。いくつかの例では、暗号化されたL2Pテーブルを使用して、例えば、図4に関して説明したように、メモリアレイの物理アドレス位置にアクセスすることができる。また、いくつかの例では、暗号化されたL2Pテーブルは、本明細書で説明されるように、ホストデバイスでのキャッシュのために提供され得る暗号化されたL2Pポインタのキャッシュとして使用され得る。
暗号化されたL2Pポインタをメモリシステムの暗号化されたL2Pテーブルに書き込むことに加えて、または書き込む代わりに、メモリシステムは、動作308で暗号化されたL2Pポインタをホストデバイスに送ることができる。例えば、動作308は、本明細書に記載の動作206と同様であり得る。
いくつかの例では、メモリシステムは、クリアなL2Pテーブルに加えて、またはその代わりに、暗号化されたL2Pテーブルを維持する。これにより、暗号化されたL2Pポインタを事前に生成できるようになり、暗号化されたL2Pポインタのキャッシュ速度が向上する可能性がある。クリアなL2Pテーブルの代わりに暗号化されたL2Pテーブルが存在する場合、メモリシステムは暗号化されたL2Pテーブルを使用してR/W要求に応答する。図4は、メモリシステムに格納された暗号化されたL2Pテーブルを使用してR/W要求に応じるために、メモリシステム110などのメモリシステムによって実行され得るプロセスフロー400の一例を示すフローチャートである。
動作402で、メモリシステムは、論理アドレスを含むR/W要求を受信(及び/または生成)した。動作402で、メモリシステムは、論理アドレスを使用して暗号化されたL2Pポインタにアクセスまたは生成する。例えば、R/W要求が読み取り要求である場合、メモリシステムは論理アドレスを使用して、暗号化されたL2PポインタテーブルでL2Pポインタを見つける。R/W要求が書き込み要求である場合、メモリシステムは、書き込み要求に含まれるデータを格納するための物理アドレス位置を選択する。メモリシステムは、その物理アドレス位置の物理アドレスを暗号化された物理アドレスに変換し、暗号化されたL2Pポインタを生成して、書き込み要求に含まれる物理アドレスと論理アドレスを示す。
動作406で、メモリシステムは、暗号化されたL2Pポインタを使用してR/W要求を処理する。例えば、R/W要求が読み取り要求である場合、メモリシステムは、R/W要求に含まれる暗号化された物理アドレスを復号して、クリアな物理アドレスを生成する。メモリシステムは、クリアな物理アドレスに関連付けられた物理アドレス位置に格納されているデータを取得し、そのデータを読み取り要求の発信者に返す。R/W要求が書き込み要求の場合、メモリシステムは、R/W要求に含まれるデータを、物理アドレスに関連付けられた物理アドレスに書き込み、暗号化されたL2Pテーブルに物理アドレスを格納する。
図5は、ホストデバイスでキャッシュされた暗号化されたL2Pポインタを用いて読み取り要求を処理するためにメモリシステム及びホストデバイスによって実行され得るプロセスフロー500の一例を示すフローチャートである。プロセスフロー500は、2つの列501、503を含む。列501は、ホストデバイス105などのホストデバイスによって実行される動作を含む。列503は、メモリシステム110などのメモリシステムによって実行される動作を含む。プロセスフロー500では、1つまたは複数の暗号化されたL2Pポインタがホストデバイスでキャッシュされる。キャッシュされたL2Pポインタの論理アドレスは、ホストデバイスに対してクリアである。キャッシュされたL2Pポインタの物理アドレスは、ホストデバイスに対して暗号化されている。
動作502で、ホストデバイスは、論理アドレスを示す読み取り要求を生成する。読み取り要求は、ホストデバイスのオペレーティングシステムによって生成され得、かつ/またはホストデバイスで実行されているアプリケーションから受信され得る。動作504で、ホストデバイスは、ホストデバイスでキャッシュされた1つまたは複数の暗号化されたL2Pポインタを検索して、キャッシュされた暗号化L2Pポインタのいずれかが読み取り要求からの論理アドレスを示すかどうかを判定する。キャッシュされた暗号化されたL2Pポインタのいずれも論理アドレスを示さない場合、ホストデバイス及びメモリシステムは、動作506でキャッシュされていない読み取り要求ルーチンを実行する。キャッシュされていない要求ルーチンの例が、図6に関して本明細書に記載されている。
論理アドレスを示す暗号化されたL2Pポインタが動作504で識別された場合、ホストデバイスは、動作508で、キャッシュされたL2Pポインタにアクセスする。動作510で、ホストデバイスは、暗号化されたL2Pポインタによって示される暗号化された物理アドレスを含む読み取り要求505をメモリシステムに送信する。
メモリシステムは、動作512で読み取り要求505を受信する。動作514で、メモリシステムは、暗号化された物理アドレスからクリアな物理アドレスを生成する。メモリシステム(例えば、その暗号化エンジン)は、暗号化された物理アドレス及び暗号化鍵を使用して暗号化操作を実行することができる。動作516で、メモリシステムは、クリアな物理アドレスに対応する物理アドレス位置からデータを読み取り、データ507をホストデバイスに返す。ホースは、動作518でデータを読み取り、処理する。
図6は、ホストデバイスでキャッシュされた要求に対応する暗号化されたL2Pポインタがない場合に読み取り要求を処理するためにメモリシステム及びホストデバイスによって実行され得るプロセスフロー600の一例を示すフローチャートである。プロセスフロー600は、上記のプロセスフロー500の動作506で実行することができる、キャッシュされていない読み取り要求ルーチンの一例である。プロセスフロー600は、2つの列601、603を含む。列601は、ホストデバイス105などのホストデバイスによって実行される動作を含む。列603は、メモリシステム110などのメモリシステムによって実行される動作を含む。
動作602で、ホストデバイスは、読み取り要求605をメモリシステムに送信する。読み取り要求605は、論理アドレスを含む。いくつかの例では、読み取り要求605は、ホストデバイスのオペレーティングシステム及び/またはホストデバイスで実行されているアプリケーションによって生成された読み取り要求であるか、またはそれに基づいている。
動作604で、メモリシステムは、読み取り要求605を受信する。動作606で、メモリシステムは、読み取り要求605に含まれる論理アドレスに関連付けられた物理アドレスを決定する。これには、メモリシステム(例えば、メモリアレイ及び/またはコントローラRAM)に格納されている暗号化されたL2Pポインタへのアクセスが含まれる。暗号化されたL2Pポインタには、暗号化された物理アドレスが含まれる。メモリシステムは、暗号化された物理アドレスを復号して物理アドレスを生成する。他の例では、論理アドレスに関連付けられた物理アドレスを決定することは、メモリシステムに格納されたクリアなL2Pポインタにアクセスすることを含む。クリアなL2Pポインタには、物理アドレスが含まれる。メモリシステムは、物理アドレスで示される物理アドレス位置からデータを読み取る。
動作608で、メモリシステムは、論理アドレスのための暗号化されたL2Pポインタを生成またはそれにアクセスする。例えば、暗号化されたL2Pポインタがすでにメモリシステムに格納されている場合、メモリシステムは暗号化されたL2Pポインタを読み取る。暗号化されたL2Pポインタがメモリシステムにまだ格納されていない場合、メモリシステムは、本明細書で説明されるように、暗号化されたL2Pポインタを生成する。動作610で、メモリシステムは、読み取りデータ609及び暗号化されたL2Pポインタ607をホストデバイスに送信する。ホストデバイスは、動作612で暗号化されたL2Pポインタをキャッシュする。
図7は、書き込み要求を処理するためにメモリシステム及びホストデバイスによって実行され得るプロセスフロー700の一例を示すフローチャートである。プロセスフロー700は、2つの列701、703を含む。列701は、ホストデバイス105などのホストデバイスによって実行される動作を含む。列703は、メモリシステム110などのメモリシステムによって実行される動作を含む。
動作702で、ホストデバイスは、書き込み要求705をメモリシステムに送信する。読み取り要求705は、論理アドレス及び論理アドレスに関連付けられて格納されるデータを含む。いくつかの例では、書き込み要求705は、ホストデバイスのオペレーティングシステム及び/またはホストデバイスで実行されているアプリケーションによって生成された書き込み要求であるか、またはそれに基づいている。
動作704で、メモリシステムは、書き込み要求を受信し、書き込み要求705によって示される論理アドレスに関連付けられる物理アドレスを選択する。動作706で、メモリシステムは、物理アドレスによって示される物理アドレス位置にデータを書き込む。動作708で、メモリシステムは、論理アドレスのための暗号化されたL2Pポインタを生成する。メモリシステムは、本明細書で説明するように、暗号化されたL2Pポインタを生成する。動作710で、メモリシステムは、暗号化されたL2Pポインタ707をホストデバイスに送信する。任意に、メモリシステムはまた、要求された書き込みが成功したことを示す書き込み確認709をホストデバイスに送信する。ホストデバイスは、動作712で暗号化されたL2Pポインタをキャッシュする。
図6及び7は、メモリシステムが、対応する論理及び物理アドレス(例えば、読み取り要求及び書き込み要求)を含むトランザクション中にキャッシュするために、ホストデバイスへの暗号化されたL2Pポインタを提供する例を示す。いくつかの例では、ホストデバイスは、複数の論理アドレスのセットに対応するL2Pポインタのセットを要求する。図8は、ホストデバイスでL2Pポインタのセットをキャッシュするためにメモリシステム及びホストデバイスによって実行され得るプロセスフロー800の一例を示すフローチャートである。プロセスフロー800は、2つの列801、803を含む。列801は、ホストデバイス105などのホストデバイスによって実行される動作を含む。列803は、メモリシステム110などのメモリシステムによって実行される動作を含む。
動作802で、ホストデバイスは、L2Pポインタのセットに対する要求805をメモリシステムに送信する。要求805は、例えば、論理アドレスのセットを含み得る。メモリシステムは、動作804で要求805を受信する。動作806で、メモリシステムは、要求805に含まれる物理アドレスのセットに対応する暗号化されたL2Pポインタのセットを生成またはそれにアクセスする。要求805に含まれる論理アドレスの一部またはすべてに対する暗号化されたL2Pポインタは、すでにメモリシステムに格納され得る。例えば、メモリシステムは、本明細書で説明されるように、暗号化されたL2Pテーブルを格納することができる。メモリシステムが対応する暗号化されたL2Pポインタをまだ格納していない論理アドレスが要求805にある場合、メモリシステムは、本明細書で説明されるように、それらの論理アドレスのためのL2Pポインタを生成する。動作808で、メモリシステムは、要求805内の論理アドレスに対応する暗号化されたL2Pポインタ807をホストデバイスに送信する。ホストデバイスは、動作810で暗号化されたL2Pポインタをキャッシュする。
図9は、1つまたは複数の装置930〜950の一部としてメモリシステム920(例えば、本明細書に記載のメモリシステムのいずれか)を備えた例示的なホストデバイス910(例えば、処理システム101)を示す。装置は、ホストデバイス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ディスクを含み得る。
記憶デバイス1021に格納されている命令1024(例えば、ソフトウェア、プログラム、オペレーティングシステム(OS)など)または他のデータは、プロセッサ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つまたは複数を含むために使用される。本文書では、用語「または(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)」などの前置詞は、基板の向きに関係なく、基板の上面または露出面上にある従来の平面または表面に関して定義される。「上に(on)」は、「上」にある別の構造に対するある構造の直接接触を示唆することを意図するが(反対の明示的な指示がない場合)、「上(over)」および「下(under)」という用語は、構造(または層、特徴など)の相対的な配置を特定することを明示的に意図しており、特に具体的に特定されない限り、特定された構造間の直接接触を明示的に含むが、これらに限定されない。同様に、「上(over)」及び「下(under)」という用語は、水平方向に限定されない。というのも、構造は、ある時点で、議論中の構造の最も外側の部分である場合、このような構造は、水平方向ではなく、参照されている構造に対して垂直方向に伸びたとしても、参照された構造の「上」である可能性があるためである。
「ウェーハ」及び「基板」という用語は、本明細書では、一般に、集積回路が形成される任意の構造、及び集積回路製造のさまざまな段階中のそのような構造を指すために使用される。したがって、以下の詳細な説明は、限定的な意味において見なされず、様々な実施形態の範囲は、添付の特許請求の範囲及びこうした特許請求の範囲が権利を与えられる同等物の全範囲によってのみ定義される。
本開示による、及び本明細書に記載される様々な実施形態は、メモリセルの垂直構造(例えば、メモリセルのNANDストリング)を利用するメモリを含む。本明細書で使用される場合、方向形容詞は、メモリセルが形成される基板の表面に対して取られる(すなわち、垂直構造は、基板表面から離れて延びるとみなされ、垂直構造の下端は、基板表面に最も近い端とみなされ、垂直構造の上端は、基板表面から最も遠い端と見なされる)。
本明細書で使用される場合、水平、垂直、垂直、平行、垂直などの方向形容詞は、相対的な向きを指すことができ、特に明記しない限り、特定の幾何学的特性への厳密な順守を要求することを意図しない。例えば、本明細書で使用される場合、垂直構造は、基板の表面に厳密に垂直である必要はなく、代わりに、基板の表面にほぼ垂直であってよく、基板の表面と鋭角を形成してもよい(例えば、60〜120度など)。
本明細書に記載のいくつかの実施形態では、異なるドーピング構成を、ソース側選択ゲート(SGS)、制御ゲート(CG)、及びドレイン側選択ゲート(SGD)に適用することができ、これらのそれぞれは、この例では、ポリシリコンで形成されているか、少なくともポリシリコンを含み、その結果、これらの層(例えば、ポリシリコンなど)は、エッチング溶液にさらされたときに異なるエッチング速度を有する可能性がある。例えば、3D半導体デバイスにおいてモノリシックピラーを形成するプロセスにおいて、SGS及びCGは、凹みを形成し得るが、SGDは、凹みが少ないままであるか、または凹んでさえいない場合がある。したがって、これらのドーピング構成は、エッチング溶液(例えば、テトラメチルアンモニウムヒドロキシド(TMCH))を使用することによって、3D半導体デバイス内の別個の層(例えば、SGS、CG、及びSGD)への選択的エッチングを可能にし得る。
本明細書で使用されるメモリセルの動作は、メモリセルからの読み取り、メモリセルへの書き込み、またはメモリセルの消去を含む。メモリセルを意図された状態に置く動作は、本明細書では「プログラミング」と呼ばれ、メモリセルへの書き込みまたはメモリセルからの消去(例えば、メモリセルは消去状態にプログラムされ得る)の両方を含むことができる。
本開示の1つまたは複数の実施形態によれば、メモリシステムの内部または外部に配置されたメモリコントローラ(例えば、プロセッサ、コントローラ、ファームウェアなど)は、摩耗サイクルの量、または摩耗状態(例えば、摩耗サイクルを記録すること、摩耗サイクルの発生時にメモリシステムの動作をカウントすること、カウントを開始したメモリシステムの動作を追跡すること、摩耗状態に対応するメモリシステムの特性を評価することなど)を判定すること(例えば、選択すること、設定すること、調整すること、計算すること、変更すること、消去すること、通信すること、適応すること、導出すること、定義すること、利用すること、修正すること、適用すること、など)ができる。
本開示の1つまたは複数の実施形態によれば、メモリアクセスデバイスは、メモリ動作のたびにメモリシステムに摩耗サイクル情報を提供するように構成され得る。メモリシステム制御回路(例えば、制御ロジック)は、摩耗サイクル情報に対応するメモリシステム性能の変化を補償するようにプログラムし得る。メモリシステムは、摩耗サイクル情報を受信し、摩耗サイクル情報に応じて、1つまたは複数の動作パラメータ(例えば、値、特性)を決定し得る。
要素が別の要素の「上にある(on)」、別の要素に「接続している(connected to)」、または別の要素と「結合している(coupled with)」と呼ばれる場合、その要素は、他の要素の上に直接あり得るか、直接接続し得るか、または直接結合し得るか、あるいは介在する要素が存在し得ることが理解されよう。対照的に、要素が別の要素の「上に直接ある(directly on)」、別の要素に「直接接続している(directly connected to)」、または別の要素と「直接結合している(directly coupled with)」と呼ばれる場合、介在する要素または層は存在しない。2つの要素がそれらを結ぶ線で図面に示されている場合、別段の指示がない限り、2つの要素は結合するか、または直接結合することができる。
本明細書に説明する方法の例は、少なくとも部分的に機械またはコンピュータに実装することが可能である。一部の実施例は、上記の例に説明したように方法を実施するために電子デバイスを構成するように動作可能な命令で符号化されたコンピュータ可読媒体または機械可読媒体を含み得る。このような方法の実装は、マイクロコード、アセンブリ言語コード、高水準言語コードなどのようなコードを含むことができる。このようなコードは、様々な方法を実施するためのコンピュータ可読命令を含むことができる。コードは、コンピュータプログラム製品の一部を形成し得る。さらに、コードは、実行中または他の時間などに、1つまたは複数の揮発性または不揮発性の有形のコンピュータ可読媒体上に有形に格納できる。これらの有形のコンピュータ可読媒体の例は、限定されないが、ハードディスク、リムーバブル磁気ディスク、リムーバブル光ディスク(例えば、コンパクトディスク及びデジタルビデオディスク)、磁気カセット、メモリカードまたはスティック、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、ソリッドステートドライブ(SSD)、ユニバーサルフラッシュストレージ(UFS)デバイス、組み込みMMC(eMMC)デバイスなどを含むことができる。
実施例
実施例1では、メモリシステムは、メモリアレイと、第1のクリアな物理アドレスを使用して第1の暗号化された物理アドレスを生成することと、第1の暗号化された物理アドレス及び第1のクリアな物理アドレスに対応する第1の論理アドレスを示す第1の暗号化された論理対物理(L2P)ポインタを生成することと、第1の暗号化されたL2Pポインタをホストメモリでの記憶のためホストデバイスに送信することと、を含む動作を実行するようにプログラムされたコントローラと、を備える。
実施例2では、実施例1の主題は、任意に、第1の論理アドレス及び第1の論理アドレスに関連付けられたメモリアレイにおける第1のクリアな物理アドレスを示すPポインタを含む。
実施例3では、実施例1〜2のいずれか1つ以上の主題は、任意に、コントローラが、第1の暗号化されたL2Pポインタ及び第2の暗号化されたL2Pポインタを含む複数の暗号化されたL2Pポインタを含む暗号化されたL2Pテーブルを生成することと、暗号化されたL2Pテーブルをメモリアレイに格納することと、を含む動作を実行するようにさらにプログラムされることを含む。
実施例4では、実施例3の主題は、任意に、コントローラが、ホストデバイスから、第2の論理アドレスを含む読み取り要求を受信することと、メモリアレイに格納された暗号化されたL2Pテーブルから、第2の論理アドレス及び第2の暗号化された物理アドレスを示す第2の暗号化されたL2Pポインタにアクセスすることと、第2の暗号化された物理アドレスを使用して第2のクリアな物理アドレスを生成することと、第2のクリアな物理アドレスでメモリシステムからデータを取得することと、データをホストデバイスに送信することと、を含む動作を実行するようにさらにプログラムされることを含む。
実施例5では、実施例1〜4のいずれか1つ以上の主題は、任意に、コントローラが、第2の論理アドレスを示すホストデバイスからの要求を受信することと、第2の論理アドレス及び第2の暗号化された物理アドレスを示す第2の暗号化されたL2Pポインタにアクセスすることと、第2の暗号化されたL2Pポインタをホストデバイスに送信することと、を含む動作を実行するようにさらにプログラムされることを含む。
実施例6では、実施例1〜5のいずれか1つ以上の主題は、任意に、コントローラが、ホストデバイスから、第1の暗号化された物理アドレスの表示を含む読み取り要求を受信することと、第1の暗号化された物理アドレスを使用して、第1のクリアな物理アドレスを生成することと、第1のクリアな物理アドレスに関連付けられた物理アドレス位置からデータユニットを取得することと、データユニットをホストデバイスに返すことと、を含む動作を実行するようにさらにプログラムされることを含む。
実施例7では、実施例1〜6のいずれか1つ以上の主題は、任意に、コントローラが、ホストデバイスから、第1のL2Pポインタを含むL2Pポインタのセットに対する要求を受信することと、第1のL2Pポインタに対応する第1の暗号化されたL2Pポインタを含む暗号化されたL2Pポインタのセットをホストデバイスに送信することと、を含む動作を実行するようにさらにプログラムされることを含む。
実施例8では、実施例7の主題は、任意に、メモリアレイからのPポインタを含む。
実施例9では、方法は、メモリシステムによって、第1のクリアな物理アドレスを使用して第1の暗号化された物理アドレスを生成することと、メモリシステムによって、第1の暗号化された物理アドレス及び第1のクリアな物理アドレスに対応する第1の論理アドレスを示す第1の暗号化された論理対物理(L2P)ポインタを生成することと、メモリシステムによって、第1の暗号化されたL2Pポインタをホストメモリでの記憶のためホストデバイスに送信することと、を含む。
実施例10では、実施例9の主題は、任意に、第1の論理アドレス及び第1の論理アドレスに関連付けられたメモリシステムの第1のクリアな物理アドレスを示すPポインタを含む。
実施例11では、実施例9〜10のいずれか1つ以上の主題は、任意に、第1の暗号化されたL2Pポインタ及び第2の暗号化されたL2Pポインタを含む複数の暗号化されたL2Pポインタを含む暗号化されたL2Pテーブルを生成することと、暗号化されたL2Pテーブルをメモリシステムに格納することと、を含む。
実施例12では、実施例11の主題は、任意に、ホストデバイスから第2の論理アドレスを含む読み取り要求を受信することと、メモリシステムに格納された暗号化されたL2Pテーブルから、第2の論理アドレス及び第2の暗号化された物理アドレスを示す第2の暗号化されたL2Pポインタにアクセスすることと、第2の暗号化された物理アドレスを使用して第2のクリアな物理アドレスを生成することと、第2のクリアな物理アドレスからデータユニットを取得することと、データユニットをホストデバイスに送信することと、を含む。
実施例13では、実施例9〜12のいずれか1つ以上の主題は、任意に、第2の論理アドレスを示す、ホストデバイスからの要求の受信することと、第2の論理アドレス及び第2の暗号化された物理アドレスを示す第2の暗号化されたL2Pポインタにアクセスすることと、第2の暗号化されたL2Pポインタをホストデバイスに送信することと、を含む。
実施例14では、実施例9〜13のいずれか1つ以上の主題は、任意に、第1の暗号化された物理アドレスの表示を含む、ホストデバイスからの読み取り要求を受信することと、第1の暗号化された物理アドレスを使用して、第1のクリアな物理アドレスを生成することと、第1のクリアな物理アドレスに関連付けられた物理アドレス位置からデータユニットを取得することと、データユニットをホストデバイスに返すことと、を含む。
実施例15では、実施例9〜14のいずれか1つ以上の主題は、任意に、ホストデバイスから、第1のL2Pポインタを含むL2Pポインタのセットに対する要求を受信することと、第1のL2Pポインタに対応する第1の暗号化されたL2Pポインタを含む暗号化されたL2Pポインタのセットをホストデバイスに送信することと、を含む。
実施例16では、実施例15の主題は、任意に、メモリシステムからのPポインタを含む。
実施例17は、プロセッサによって実行されると、プロセッサに第1のクリアな物理アドレスを使用して第1の暗号化された物理アドレスを生成することと、第1のクリアな物理アドレスに関連付けられた第1の論理アドレス及び第1の暗号化された物理アドレスを示す第1の暗号化された論理対物理(L2P)ポインタを生成することと、第1の暗号化されたL2Pポインタをホストメモリでの記憶のためホストデバイスに送信することと、を含む動作を実行させる命令を含む非一時的コンピュータ可読媒体である。
実施例18では、実施例17の主題は、任意に、第1の論理アドレス及び第1の論理アドレスに関連付けられたメモリシステムの第1のクリアな物理アドレスを示すPポインタを含む。
実施例19では、実施例17〜18のいずれか1つ以上の主題は、任意に、第1の暗号化された物理アドレス及び第1のクリアな物理アドレスに対応する第1の論理アドレスを示すL2Pポインタを含み、暗号化されたL2Pテーブルをメモリシステムに格納する。
実施例20では、実施例19の主題は、任意に、プロセッサによって実行されると、プロセッサに、ホストデバイスから、第2の論理アドレスを含む読み取り要求を受信することと、メモリシステムに格納された暗号化されたL2Pテーブルから、第2の論理アドレス及び第2の暗号化された物理アドレスを示す第2の暗号化されたL2Pポインタにアクセスすることと、第2の暗号化された物理アドレスを使用して第2のクリアな物理アドレスを生成することと、第2のクリアな物理アドレスからデータユニットを取得することと、データユニットをホストデバイスに送信することと、を含む動作をさらに実行させる命令を含む。
上記の説明は、例示を意図したものであり、限定的なものではない。例えば、上述の実施例(またはその1つまたは複数の態様)は、互いに組み合わせて使用され得る。上記の説明を検討する際に当業者によってなど他の実施形態を使用できる。これは、特許請求の範囲または意味を解釈または限定するために使用されないとの理解のもとに提供される。また、上記の発明を実施するための形態では、様々な特徴が本開示を効率化するために互いにグループ化され得る。これは、特許請求されていない開示された特徴が任意の請求項に対して不可欠であることを意図すると解釈されるべきではない。むしろ、本発明の主題は、特定の開示されている実施形態のすべてに満たない特徴に存在し得る。したがって、次の特許請求の範囲は、詳細な説明に組み込まれ、各特許請求の範囲は、別個の実施形態として自立しており、そのような実施形態は、様々な組み合わせまたは順列で互いに組み合わせることができると考えられる。本発明の範囲は、添付された特許請求の範囲に関して、そのような特許請求の範囲によって権利が与えられる均等物の全範囲とともに定められるべきである。

Claims (20)

  1. メモリアレイと、
    コントローラであって、
    第1の暗号化されていない物理アドレスを使用して、第1の暗号化された物理アドレスを生成することと、
    前記第1の暗号化された物理アドレス及び前記第1の暗号化されていない物理アドレスに対応する第1の論理アドレスを示す第1の暗号化された論理対物理(L2P)ポインタを生成することと、
    前記第1の暗号化されたL2Pポインタをホストメモリでの記憶のためにホストデバイスに送信することと、
    を含む動作を実行するようにプログラムされている、前記コントローラと、
    を備える、メモリシステム。
  2. 前記コントローラは、前記メモリアレイに格納されたL2Pテーブルから第1のL2Pポインタを読み出すことを含む動作を実行するようにさらにプログラムされ、前記第1のL2Pポインタは、前記第1の論理アドレス及び前記第1の論理アドレスに関連付けられた前記メモリアレイにおける前記第1の暗号化されていない物理アドレスを示す、請求項1に記載のメモリシステム。
  3. 前記コントローラが、
    前記第1の暗号化されたL2Pポインタ及び第2の暗号化されたL2Pポインタを含む複数の暗号化されたL2Pポインタを含む暗号化されたL2Pテーブルを生成することと、
    前記暗号化されたL2Pテーブルを前記メモリアレイに格納することと、
    を含む動作を実行するようにさらにプログラムされている、
    請求項1〜2のいずれか1項に記載のメモリシステム。
  4. 前記コントローラが、
    前記ホストデバイスから、第2の論理アドレスを含む読み取り要求を受信することと、
    前記メモリアレイに格納された前記暗号化されたL2Pテーブルから、前記第2の論理アドレス及び第2の暗号化された物理アドレスを示す第2の暗号化されたL2Pポインタにアクセスすることと、
    前記第2の暗号化された物理アドレスを使用して第2の暗号化されていない物理アドレスを生成することと、
    前記第2の暗号化されていない物理アドレスで前記メモリシステムからデータを取得することと、
    前記ホストデバイスに前記データを送信することと、
    を含む動作を実行するようにさらにプログラムされている、請求項3に記載のメモリシステム。
  5. 前記コントローラが、
    前記ホストデバイスから要求を受信することであって、前記要求は第2の論理アドレスを示す、前記受信することと、
    第2の暗号化されたL2Pポインタにアクセスすることであって、前記第2の暗号化されたL2Pポインタは、前記第2の論理アドレス及び第2の暗号化された物理アドレスを示す、前記アクセスすることと、
    前記第2の暗号化されたL2Pポインタを前記ホストデバイスに送信することと、
    を含む動作を実行するようにさらにプログラムされている、請求項1に記載のメモリシステム。
  6. 前記コントローラが、
    前記ホストデバイスから読み取り要求を受信することであって、前記読み取り要求は、前記第1の暗号化された物理アドレスの表示を含む、前記受信することと、
    前記第1の暗号化された物理アドレスを使用して、前記第1の暗号化されていない物理アドレスを生成することと、
    前記第1の暗号化されていない物理アドレスに関連付けられた物理アドレス位置からデータユニットを取得することと、
    前記データユニットを前記ホストデバイスに返すことと、
    を含む動作を実行するようにさらにプログラムされている、請求項1に記載のメモリシステム。
  7. 前記コントローラが、
    前記ホストデバイスから、L2Pポインタのセットに対する要求を受信することであって、前記L2Pポインタのセットは前記第1のL2Pポインタを含む、前記受信することと、
    前記第1の暗号化されたL2Pポインタを含む暗号化されたL2Pポインタのセットを前記ホストデバイスに送信することであって、前記第1の暗号化されたL2Pポインタは、前記第1のL2Pポインタに対応する、前記送信することと、
    を含む動作を実行するようにさらにプログラムされている、請求項1に記載のメモリシステム。
  8. 前記コントローラは、前記メモリアレイから前記暗号化されたL2Pポインタのセットを読み出すことを含む動作を実行するようにさらにプログラムされている、請求項7に記載のメモリシステム。
  9. メモリシステムによって、第1の暗号化されていない物理アドレスを使用して第1の暗号化された物理アドレスを生成することと、
    前記メモリシステムによって、前記第1の暗号化された物理アドレス及び前記第1の暗号化されていない物理アドレスに対応する第1の論理アドレスを示す第1の暗号化された論理対物理(L2P)ポインタを生成することと、
    前記メモリシステムによって、前記第1の暗号化されたL2Pポインタをホストメモリでの記憶のためにホストデバイスに送信することと、
    を含む、方法。
  10. 前記メモリシステムに格納されたL2Pテーブルから、第1のL2Pポインタを読み取ることをさらに含み、前記第1のL2Pポインタは、前記第1の論理アドレス及び前記第1の論理アドレスに関連付けられた前記メモリシステムの前記第1の暗号化されていない物理アドレスを示す、請求項9に記載の方法。
  11. 前記第1の暗号化されたL2Pポインタ及び第2の暗号化されたL2Pポインタを含む複数の暗号化されたL2Pポインタを含む暗号化されたL2Pテーブルを生成することと、
    前記暗号化されたL2Pテーブルを前記メモリシステムに格納することと、
    をさらに含む、請求項9〜10のいずれか1項に記載の方法。
  12. 前記ホストデバイスから、第2の論理アドレスを含む読み取り要求を受信することと、
    前記メモリシステムに格納された前記暗号化されたL2Pテーブルから、前記第2の論理アドレス及び第2の暗号化された物理アドレスを示す第2の暗号化されたL2Pポインタにアクセスすることと、
    前記第2の暗号化された物理アドレスを使用して第2の暗号化されていない物理アドレスを生成することと、
    前記第2の暗号化されていない物理アドレスからデータユニットを取得することと、
    前記データユニットを前記ホストデバイスに送信することと、
    をさらに含む、請求項11に記載の方法。
  13. 前記ホストデバイスから要求を受信することであって、前記要求は第2の論理アドレスを示す、前記受信することと、
    第2の暗号化されたL2Pポインタにアクセスすることであって、前記第2の暗号化されたL2Pポインタは、前記第2の論理アドレス及び第2の暗号化された物理アドレスを示す、前記アクセスすることと、
    前記第2の暗号化されたL2Pポインタを前記ホストデバイスに送信することと、
    をさらに含む、請求項9に記載の方法。
  14. 前記ホストデバイスから読み取り要求を受信することであって、前記読み取り要求は、前記第1の暗号化された物理アドレスの表示を含む、前記受信することと、
    前記第1の暗号化された物理アドレスを使用して、前記第1の暗号化されていない物理アドレスを生成することと、
    前記第1の暗号化されていない物理アドレスに関連付けられた物理アドレス位置からデータユニットを取得することと、
    前記データユニットを前記ホストデバイスに返すことと、
    をさらに含む、請求項9に記載の方法。
  15. 前記ホストデバイスから、L2Pポインタのセットに対する要求を受信することであって、前記L2Pポインタのセットは、第1のL2Pポインタを含む、前記受信することと、
    前記第1の暗号化されたL2Pポインタを含む暗号化されたL2Pポインタのセットを前記ホストデバイスに送信することであって、前記第1の暗号化されたL2Pポインタは、前記第1のL2Pポインタに対応する、前記送信することと、
    をさらに含む、請求項9に記載の方法。
  16. 前記メモリシステムから前記暗号化されたL2Pポインタのセットを読み取ることをさらに含む、請求項15に記載の方法。
  17. プロセッサによって実行されると、前記プロセッサに、
    第1の暗号化されていない物理アドレスを使用して、第1の暗号化された物理アドレスを生成することと、
    前記第1の暗号化されていない物理アドレスに関連付けられた第1の論理アドレス及び前記第1の暗号化された物理アドレスを示す第1の暗号化された論理対物理(L2P)ポインタを生成することと、
    前記第1の暗号化されたL2Pポインタをホストメモリでの記憶のためホストデバイスに送信することと、
    を含む動作を実行させる命令を含む、非一時的コンピュータ可読媒体。
  18. プロセッサによって実行されると、前記プロセッサに、メモリシステムに格納されているL2Pテーブルから、前記第1の論理アドレス及び前記第1の論理アドレスに関連付けられた前記メモリシステムの前記第1の暗号化されていない物理アドレスを示す第1のL2Pポインタを読み取ることを含む動作をさらに実行させる命令をさらに含む、請求項17に記載の非一時的コンピュータ可読媒体。
  19. プロセッサによって実行されると、前記プロセッサに、
    前記第1の暗号化された物理アドレス及び前記第1の暗号化されていない物理アドレスに対応する第1の論理アドレスを示す第1の暗号化された論理対物理(L2P)ポインタを生成することと、
    前記暗号化されたL2Pテーブルをメモリシステムに格納することと、
    を含む動作をさらに実行させる命令をさらに含む、請求項17〜18のいずれか1項に記載の非一時的コンピュータ可読媒体。
  20. プロセッサによって実行されると、前記プロセッサに、
    前記ホストデバイスから、第2の論理アドレスを含む読み取り要求を受信することと、
    メモリシステムに格納された前記暗号化されたL2Pテーブルから、前記第2の論理アドレス及び第2の暗号化された物理アドレスを示す第2の暗号化されたL2Pポインタにアクセスすることと、
    前記第2の暗号化された物理アドレスを使用して第2の暗号化されていない物理アドレスを生成することと、
    前記第2の暗号化されていない物理アドレスからデータユニットを取得することと、
    前記データユニットを前記ホストデバイスに送信することと、
    を含む動作をさらに実行させる命令をさらに含む、請求項19に記載の非一時的コンピュータ可読媒体。
JP2020572971A 2018-06-29 2019-06-28 フラッシュメモリのホスト側キャッシュセキュリティ Ceased JP2021530044A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/023,247 US11036651B2 (en) 2018-06-29 2018-06-29 Host side caching security for flash memory
US16/023,247 2018-06-29
PCT/US2019/039902 WO2020006464A1 (en) 2018-06-29 2019-06-28 Host side caching security for flash memory

Publications (1)

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

Family

ID=68984607

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020572971A Ceased JP2021530044A (ja) 2018-06-29 2019-06-28 フラッシュメモリのホスト側キャッシュセキュリティ

Country Status (6)

Country Link
US (2) US11036651B2 (ja)
EP (1) EP3814915A4 (ja)
JP (1) JP2021530044A (ja)
KR (1) KR20210014208A (ja)
CN (1) CN112313634A (ja)
WO (1) WO2020006464A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11036651B2 (en) 2018-06-29 2021-06-15 Micron Technology, Inc. Host side caching security for flash memory
US11263124B2 (en) 2018-08-03 2022-03-01 Micron Technology, Inc. Host-resident translation layer validity check
US11226907B2 (en) 2018-12-19 2022-01-18 Micron Technology, Inc. Host-resident translation layer validity check techniques
US11226894B2 (en) 2018-12-21 2022-01-18 Micron Technology, Inc. Host-based flash memory maintenance techniques
US11138108B2 (en) * 2019-08-22 2021-10-05 Micron Technology, Inc. Logical-to-physical map synchronization in a memory device
US20210334200A1 (en) * 2020-04-22 2021-10-28 Micron Technology, Inc. Storing translation layer metadata in host memory buffer
FR3121766A1 (fr) * 2021-04-08 2022-10-14 Proton World International N.V. Procédé de stockage en mémoire
US11556482B1 (en) * 2021-09-30 2023-01-17 International Business Machines Corporation Security for address translation services

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170192902A1 (en) * 2015-12-30 2017-07-06 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device and controller, operating method of storage device, and method for accessing storage device

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272637B1 (en) * 1997-04-14 2001-08-07 Dallas Semiconductor Corporation Systems and methods for protecting access to encrypted information
US7873837B1 (en) * 2000-01-06 2011-01-18 Super Talent Electronics, Inc. Data security for electronic data flash card
US8060756B2 (en) * 2003-08-07 2011-11-15 Rao G R Mohan Data security and digital rights management system
US20080082736A1 (en) 2004-03-11 2008-04-03 Chow David Q Managing bad blocks in various flash memory cells for electronic data flash card
US8489817B2 (en) * 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US8176295B2 (en) 2009-04-20 2012-05-08 Imation Corp. Logical-to-physical address translation for a removable data storage device
US8683145B2 (en) * 2009-11-09 2014-03-25 Microsoft Corporation Packed storage commands and storage command streams
WO2012127266A1 (en) 2011-03-23 2012-09-27 Sandisk Il Ltd. Storage device and method for updating data in a partition of the storage device
US8495386B2 (en) * 2011-04-05 2013-07-23 Mcafee, Inc. Encryption of memory device with wear leveling
US9703723B2 (en) * 2011-08-29 2017-07-11 International Business Machines Corporation Method and apparatus for performing mapping within a data processing system having virtual machines
US9128876B2 (en) * 2011-12-06 2015-09-08 Honeywell International Inc. Memory location specific data encryption key
US10566082B1 (en) * 2012-01-10 2020-02-18 Cerner Innovation, Inc. Proximity-based mobile-device updates of electronic health records
US8762431B2 (en) * 2012-01-17 2014-06-24 Apple Inc. System and method for secure erase in copy-on-write file systems
US10102390B2 (en) * 2012-06-28 2018-10-16 Honeywell International Inc. Memory authentication with redundant encryption
WO2014110095A1 (en) * 2013-01-08 2014-07-17 Violin Memory Inc. Method and system for data storage
US9519575B2 (en) * 2013-04-25 2016-12-13 Sandisk Technologies Llc Conditional iteration for a non-volatile device
US10176121B2 (en) * 2013-07-15 2019-01-08 Infineon Technologies Ag Apparatus and method for memory address encryption
US9910790B2 (en) * 2013-12-12 2018-03-06 Intel Corporation Using a memory address to form a tweak key to use to encrypt and decrypt data
US9298647B2 (en) * 2014-08-25 2016-03-29 HGST Netherlands B.V. Method and apparatus to generate zero content over garbage data when encryption parameters are changed
IL235729A (en) * 2014-11-17 2017-06-29 Kaluzhny Uri A device and method for securely storing information
KR102466412B1 (ko) * 2016-01-14 2022-11-15 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US10133681B2 (en) * 2016-07-22 2018-11-20 Seagate Technology Llc Using encryption keys to manage data retention
KR20180019419A (ko) * 2016-08-16 2018-02-26 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 그 동작방법
US20180150256A1 (en) * 2016-11-29 2018-05-31 Intel Corporation Technologies for data deduplication in disaggregated architectures
US10296249B2 (en) * 2017-05-03 2019-05-21 Western Digital Technologies, Inc. System and method for processing non-contiguous submission and completion queues
US11036651B2 (en) 2018-06-29 2021-06-15 Micron Technology, Inc. Host side caching security for flash memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170192902A1 (en) * 2015-12-30 2017-07-06 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device and controller, operating method of storage device, and method for accessing storage device

Also Published As

Publication number Publication date
EP3814915A1 (en) 2021-05-05
US11036651B2 (en) 2021-06-15
CN112313634A (zh) 2021-02-02
KR20210014208A (ko) 2021-02-08
US20200004694A1 (en) 2020-01-02
WO2020006464A1 (en) 2020-01-02
EP3814915A4 (en) 2022-03-16
US20210279182A1 (en) 2021-09-09
US11704254B2 (en) 2023-07-18

Similar Documents

Publication Publication Date Title
US10936250B2 (en) Host accelerated operations in managed NAND devices
US11409651B2 (en) Host accelerated operations in managed NAND devices
JP7022199B2 (ja) 管理されたnvm適合キャッシュ管理
US11704254B2 (en) Host side caching security for flash memory
US11886339B2 (en) Secure logical-to-physical caching
US10884944B2 (en) Host accelerated operations in managed NAND devices
JP2021532491A (ja) 安全なメモリシステムプログラミング
US11687469B2 (en) Host-resident translation layer validity check techniques
JP2022522595A (ja) ホストベースのフラッシュメモリメンテナンス技術
US11983106B2 (en) Host accelerated operations in managed NAND devices
CN114093406A (zh) 一种存储器装置、系统、信息处理方法及可读存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220308

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220309

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220607

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220927

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221013

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221220

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

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20230425