JP7216773B2 - 読み出し閾値較正サポートを備える、サブコード及び畳み込みベースのldpcインターリーブコード化スキームを使用するための記憶システム及び方法 - Google Patents

読み出し閾値較正サポートを備える、サブコード及び畳み込みベースのldpcインターリーブコード化スキームを使用するための記憶システム及び方法 Download PDF

Info

Publication number
JP7216773B2
JP7216773B2 JP2021103135A JP2021103135A JP7216773B2 JP 7216773 B2 JP7216773 B2 JP 7216773B2 JP 2021103135 A JP2021103135 A JP 2021103135A JP 2021103135 A JP2021103135 A JP 2021103135A JP 7216773 B2 JP7216773 B2 JP 7216773B2
Authority
JP
Japan
Prior art keywords
memory
storage system
stored
code
page
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.)
Active
Application number
JP2021103135A
Other languages
English (en)
Other versions
JP2022142695A (ja
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 JP2022142695A publication Critical patent/JP2022142695A/ja
Application granted granted Critical
Publication of JP7216773B2 publication Critical patent/JP7216773B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/104Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error using arithmetic codes, i.e. codes which are preserved during operation, e.g. modulo 9 or 11 check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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
    • 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
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/1154Low-density parity-check convolutional codes [LDPC-CC]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2732Convolutional interleaver; Interleavers using shift-registers or delay lines like, e.g. Ramsey type interleaver
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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/7207Details relating to flash memory management management of metadata or control 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/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

低コストのメモリは、コールド記憶製品に対して所望される。コールド記憶製品は、典型的には、耐久性及びデータ保持並びに性能要件の低減(すなわち、より低い書き込み/読み出し性能)の点で、緩和された仕様を有する。著しいメモリコスト低減を達成するために、論理スケーリングが、プログラミング状態の数を増加させること、及び/又はエラー訂正コード(ECC)冗長性を低減させることによって、メモリセル当たりにより多くの情報を記憶するために使用され得、その両方がより多くのエラー(例えば、セル当たりにより多くの状態)を導入すること又はコードを弱めることのいずれかによって、ECC性能を劣化させる。
一実施形態の不揮発性記憶システムのブロック図である。
一実施形態の記憶モジュールを例解するブロック図である。
一実施形態の階層記憶システムを例解するブロック図である。
一実施形態による、図1Aに例解された不揮発性記憶システムのコントローラの構成要素を例解するブロック図である。
一実施形態による、図1Aに例解された不揮発性記憶システムの構成要素を例解するブロック図である。
一実施形態のホスト及び記憶システムの図である。
一実施形態の垂直インターリービングスキームを例解する図である。
一実施形態のチェッカーボードインターリービングスキームを例解する図である。
4つの平面にわたって生じる一実施形態のチェッカーボードインターリービングスキームを例解する図である。 4つの平面にわたって生じる一実施形態のチェッカーボードインターリービングスキームを例解する図である。
一実施形態の低密度パリティチェック(low-density parity check、LDPC)コードのパリティチェック行列のグラフである。
一実施形態の畳み込みベースの低密度パリティチェック(convolutional-based low-density parity check、CLDPC)コードのパリティチェック行列のグラフである。
多数の相互接続チェックが低減された、及び低減されない、パリティチェック行列の鳥瞰図の例解図である。
ハイブリッドインターリーブ/非インターリーブコード化方法を使用する一実施形態の例解図である。
代表的なブロック上の非インターリーブワード線を使用する一実施形態の例解図である。
以下の実施形態は、概して、読み出し閾値較正サポートを備える、サブコード及び畳み込みベースの低密度パリティチェック(LDPC)インターリーブコード化スキームを使用するための記憶システム及び方法に関する。一実施形態では、記憶システムが提供され、メモリと、メモリに結合されたコントローラと、を備える。コントローラは、複数のサブコードから低密度パリティチェック(LDPC)コードを生成し、メモリ内のワード線の異なるページ内に、複数のサブコードの各サブコードを記憶するように構成される。別の実施形態では、記憶システム内で実施される方法が提供される。本方法は、畳み込み低密度パリティチェック(CLDPC)コードを生成することと、メモリ内のワード線の異なるページ内に、CLDPCコードの異なる部分を記憶することと、を含む。更に別の実施形態では、メモリと、複数のサブコードから低密度パリティチェック(LDPC)コードを生成するための手段と、メモリ内のワード線の異なるページ内に複数のサブコードの各サブコードを記憶するための手段と、を備える、記憶システムが提供される。他の実施形態が提供され、これらの実施形態の各々は、単独で又は組み合わせて使用することができる。
ここで図面を参照すると、これらの実施形態の態様を実装することに使用するために好適な記憶システムが、図1A~図1Cに示される。図1Aは、本明細書に記載される主題の一実施形態による不揮発性記憶システム100(本明細書では記憶デバイス又は単にデバイスと称されることもある)を例解するブロック図である。図1Aを参照すると、不揮発性記憶システム100は、コントローラ102及び1つ以上の不揮発性メモリダイ104から構成され得る不揮発性メモリを含む。本明細書で使用される際、ダイという用語は、単一の半導体基板上に形成される、不揮発性メモリセル、及びこれらの不揮発性メモリセルの物理的動作を管理するための関連回路の集合体を指す。コントローラ102は、ホストシステムとインターフェースし、不揮発性メモリダイ104への読み出し、プログラム、及び消去動作のためのコマンドシーケンスを送信する。
コントローラ102(不揮発性メモリコントローラ(例えば、フラッシュ、抵抗性ランダムアクセスメモリ(resistive random-access memory、ReRAM)、相変化メモリ(phase-change memory、PCM)、又は磁気抵抗性ランダムアクセスメモリ(magnetoresistive random-access memory、MRAM)コントローラ)であってもよい)は、処理回路、マイクロプロセッサ又はプロセッサ、及び例えば、(マイクロ)プロセッサ、ロジックゲート、スイッチ、特定用途向け集積回路(application specific integrated circuit、ASIC)、プログラマブルロジックコントローラ、並びに埋め込みマイクロコントローラによって実行可能なコンピュータ可読プログラムコード(例えば、ファームウェア)を記憶するコンピュータ可読媒体の形態を採ることができる。コントローラ102は、以下に記載され、フロー図に示される様々な機能を実施するためのハードウェア及び/又はファームウェアで構成することができる。また、コントローラの内部にあるものとして示される構成要素の一部はまた、コントローラの外部に記憶されてもよく、他の構成要素を使用することもできる。追加的に、「動作可能に通信している」という語句は、1つ以上の構成要素を通じて直接的に通信しているか、又は間接的に(有線又は無線)通信することを意味することができ、このことは本明細書に示されるか、若しくは記載される場合があり、又はされない場合もある。
本明細書で使用される際、不揮発性メモリコントローラは、不揮発性メモリ上に記憶されたデータを管理し、コンピュータ又は電子デバイスなどのホストと通信するデバイスである。不揮発性メモリコントローラは、本明細書に記載された特定の機能に加えて、様々な機能を有することができる。例えば、不揮発性メモリコントローラは、不揮発性メモリをフォーマットして、メモリが適切に動作していることを確実にし、不良の不揮発性メモリセルを打ち出し、将来の故障セルと置換される予備セルを割り当てることができる。予備セルの一部は、不揮発性メモリコントローラを動作させ、他の特徴を実装するためのファームウェアを保持するために使用することができる。動作中、ホストがデータを不揮発性メモリから読み出すか又はデータを不揮発性メモリに書き込む必要があるとき、ホストは不揮発性メモリコントローラと通信することができる。ホストがデータを読み出し/書き込むべき論理アドレスを提供する場合、不揮発性メモリコントローラは、ホストから受信した論理アドレスを不揮発性メモリ内の物理アドレスに変換することができる。(代替的に、ホストが、物理アドレスを提供することもできる)。不揮発性メモリコントローラはまた、これらに限定されないが、ウェアレベリング(さもなければ繰り返し書き込まれる特定のメモリのブロックの消耗を回避するために書き込みを分散させること)及びガーベッジコレクション(ブロックが満杯となった後、フルブロックを消去し再利用することができるように有効なデータのページのみを新たなブロックに移動させること)などの様々なメモリ管理機能も実施することができる。また、請求項に列挙される「手段」のための構造は、例えば、コントローラを動作させて、列挙された機能を実施させるために適切となるように、本明細書に記載され、プログラムされ、又は製造されるコントローラの構造の一部又は全てを含むことができる。
不揮発性メモリダイ104は、抵抗性ランダムアクセスメモリ(ReRAM)、磁気抵抗性ランダムアクセスメモリ(MRAM)、相変化メモリ(PCM)、NANDフラッシュメモリセル、及び/又はNORフラッシュメモリセルを含む、任意の好適な不揮発性記憶媒体を含み得る。メモリセルは、半導体(例えば、フラッシュ)メモリセルの形態を採ることができ、ワンタイムプログラマブル、複数回プログラマブル、又は多数回プログラマブルであり得る。メモリセルはまた、単一レベルセル(single-level cells、SLC)、多重レベルセル(multiple-level cells、MLC)、三重レベルセル(triple-level cells、TLC)であり得るか、又は現在既知であるか若しくは今後開発される、他のメモリセルレベル技術を使用することもできる。また、メモリセルは、二次元又は三次元様式で作製することができる。
コントローラ102と不揮発性メモリダイ104との間のインターフェースは、トグルモード200、400、又は800などの任意の好適なフラッシュインターフェースであってもよい。一実施形態では、記憶システム100は、セキュアデジタル(secure digital、SD)又はマイクロセキュアデジタル(micro secure digital、マイクロSD)カードなどのカードベースシステムであってもよい。代替的な実施形態では、記憶システム100は、埋め込み記憶システムの一部であってもよい。
図1Aに例解された実施例において、不揮発性記憶システム100(時々本明細書では記憶モジュールと称される)は、コントローラ102と不揮発性メモリダイ104との間に単一のチャネルを含み、本明細書に記載される主題は、単一のメモリチャネルを有することに限定されない。例えば、(図1B及び図1Cに示されるものなど)一部の記憶システムアーキテクチャでは、コントローラの能力に応じて、コントローラとメモリデバイスとの間に2つ、4つ、8つ、又はそれ以上のメモリチャネルが存在してもよい。本明細書に記載する実施形態のいずれにおいても、たとえ単一のチャネルが図面に示されているとしても、コントローラとメモリダイとの間に単一より多いチャネルが存在することがある。
図1Bは、複数の不揮発性記憶システム100を含む記憶モジュール200を例解する。このように、記憶モジュール200は、ホストとインターフェースし、かつ複数の不揮発性記憶システム100を含む、記憶システム204とインターフェースする、記憶コントローラ202を含み得る。記憶コントローラ202と不揮発性記憶システム100との間のインターフェースは、シリアルアドバンスドテクノロジーアタッチメント(serial advanced technology attachment、SATA)、周辺構成要素相互接続エクスプレス(peripheral component interconnect express、PCIe)インターフェース、又はダブルデータレート(double-data-rate、DDR)インターフェースなどのバスインターフェースであってもよい。一実施形態では、記憶モジュール200は、ラップトップコンピュータ及びタブレットコンピュータなどのサーバPC又はポータブルコンピューティングデバイスにおいて見られるような、半導体ドライブ(solid state drive、SSD)、又は不揮発性デュアルインラインメモリモジュール(non-volatile dual in-line memory module、NVDIMM)であってもよい。
図1Cは、階層記憶システムを例解するブロック図である。階層記憶システム250は、複数の記憶コントローラ202を含み、これらの各々は、それぞれの記憶システム204を制御する。ホストシステム252は、バスインターフェースを介して記憶システム内のメモリにアクセスし得る。一実施形態では、バスインターフェースは、不揮発性メモリエクスプレス(Non-Volatile Memory Express、NVMe)又はファイバチャネルオーバイーサネット(fiber channel over Ethernet、FCoE)インターフェースであってもよい。一実施形態では、図1Cに例解されるシステムは、データセンタ又は大容量記憶が必要とされる他の場所に見られるような、複数のホストコンピュータによってアクセス可能であるラック搭載可能な大容量記憶システムであってもよい。
図2Aは、コントローラ102の構成要素をより詳細に例解するブロック図である。コントローラ102は、ホストとインターフェースするフロントエンドモジュール108と、1つ以上の不揮発性メモリダイ104とインターフェースするバックエンドモジュール110と、今後詳細に説明することになる機能を実施する様々な他のモジュールと、を含む。モジュールは、例えば、他の構成要素とともに使用するように設計されたパッケージ化された機能ハードウェアユニット、関連機能の特定の機能を通常実施する(マイクロ)プロセッサ若しくは処理回路によって実行可能なプログラムコード(例えば、ソフトウェア又はファームウェア)の一部分、又はより大きいシステムとインターフェースする自己完結型のハードウェア若しくはソフトウェア構成要素の形態を取り得る。コントローラ102は、本明細書では、NANDコントローラ又はフラッシュコントローラとして称され得ることがあるが、コントローラ102は、任意の好適なメモリ技術とともに使用することができることを理解されたく、その一部の例が、以下に提供される。
コントローラ102のモジュールを再び参照すると、バッファマネージャ/バスコントローラ114が、ランダムアクセスメモリ(random access memory、RAM)116内のバッファを管理し、コントローラ102の内部バスの調停を制御する。読み出し専用メモリ(read only memory、ROM)118は、システム起動コードを記憶する。図2Aではコントローラ102から離れて位置するものとして例解されるが、他の実施形態では、RAM116及びROM118の一方又は両方がコントローラ内に位置してもよい。更に他の実施形態では、RAM及びROMの一部分が、コントローラ102内及びコントローラ外の両方に位置し得る。
フロントエンドモジュール108は、ホスト又は次のレベルの記憶コントローラとの電気的インターフェースを提供するホストインターフェース120及び物理層インターフェース(physical layer interface、PHY)122を含む。ホストインターフェース120のタイプの選択は、使用されているメモリのタイプに依存し得る。ホストインターフェース120の例としては、限定されるものではないが、SATA、SATA Express、連続的に取り付けられた小型コンピュータシステムインターフェース(serially attached small computer system interface、SAS)、ファイバチャネル、ユニバーサルシリアルバス(universal serial bus、USB)、PCIe、及びNVMeが挙げられる。ホストインターフェース120は、典型的に、データ、制御信号、及びタイミング信号の転送を促進する。
バックエンドモジュール110は、ホストから受信したデータバイトをコード化し、不揮発性メモリから読み出したデータバイトを復号してエラーを訂正するエラー訂正コード(error correction code、ECC)エンジン124を含む。コマンドシーケンサ126は、不揮発性メモリダイ104に伝送されるプログラムコマンドシーケンス及び消去コマンドシーケンスなどのコマンドシーケンスを生成する。RAID(Redundant Array of Independent Drives、独立ドライブの冗長アレイ)モジュール128は、RAIDパリティの生成及び障害データの回復を管理する。RAIDパリティは、メモリデバイス104内に書き込まれているデータのための完全性保護の追加のレベルとして使用され得る。場合によっては、RAIDモジュール128が、ECCエンジン124の一部であってもよい。メモリインターフェース130は、コマンドシーケンスを不揮発性メモリダイ104に提供し、不揮発性メモリダイ104から状態情報を受信する。一実施形態では、メモリインターフェース130は、トグルモード200、400、又は800インターフェースなどのダブルデータレート(DDR)インターフェースであり得る。フラッシュ制御層132は、バックエンドモジュール110の全体的な動作を制御する。
記憶システム100はまた、外部の電気的インターフェース、外部RAM、抵抗、コンデンサ、又はコントローラ102とインターフェースし得る他の構成要素などの他のディスクリート構成要素140も含む。代替的な実施形態では、物理層インターフェース122、RAIDモジュール128、メディア管理層138、及びバッファ管理/バスコントローラ114のうちの1つ以上が、コントローラ102内で不要である任意選択的な構成要素である。
図2Bは、不揮発性メモリダイ104の構成要素をより詳細に例解するブロック図である。不揮発性メモリダイ104は、周辺回路141及び不揮発性メモリアレイ142を含む。不揮発性メモリアレイ142は、データを記憶するために使用される不揮発性メモリセルを含む。不揮発性メモリセルは、ReRAM、MRAM、PCM、NANDフラッシュメモリセル、並びに/又は二次元及び/若しくは三次元構成におけるNORフラッシュメモリセルを含む、任意の好適な不揮発性メモリセルであってもよい。不揮発性メモリダイ104は、データをキャッシュするデータキャッシュ156を更に含む。周辺回路141は、状態情報をコントローラ102に提供する状態マシン152を含む。
再び図2Aに戻ると、フラッシュ制御層132(本明細書ではフラッシュ変換層(flash translation layer、FTL)と称されるか、又はより一般的には、メモリがフラッシュでなくてもよい「メディア管理層」と称される)は、フラッシュエラーを扱い、ホストとインターフェースする。具体的には、ファームウェア内のアルゴリズムであり得るFTLは、メモリ管理の内部に関与し、ホストからの書き込みをメモリ104への書き込みに変換する。FTLは、メモリ104が限定された耐久性を有する場合があり、ページの倍数でのみき込まれる場合があり、及び/又はブロックとして消去されない限り、書き込まれない場合があるため、必要とされる場合があり得る。FTLは、ホストにとって可視でない可能性があるメモリ104のこれらの潜在的限定を理解する。したがって、FTLは、ホストからの書き込みをメモリ104内への書き込みに変換することをと試みる。
FTLは、論理から物理アドレス(logical-to-physical address、L2P)マップ(本明細書では、テーブル又はデータ構造と称されることもある)及び割り当てられたキャッシュメモリを含んでもよい。このようにして、FTLは、ホストからメモリ104内の物理アドレスに論理ブロックアドレス(logical block addresses、「LBA」)を変換する。FTLは、限定されるものではないが、(急激な電力損失の場合にFTLのデータ構造が回復することができるように)電力オフ回復、及び(メモリブロックにわたる摩耗が、より大きな故障のきっかけをもたらし得る、ある特定のブロックの過剰摩耗を防止するように)摩耗レベリングなどの、他の特徴を含むことができる。
図面を再び参照すると、図3は、一実施形態のホスト300及び記憶システム(本明細書では、デバイスと称されることもある)100のブロック図である。ホスト300は、限定されるものではないが、コンピュータ、携帯電話、デジタルカメラ、タブレット、ウェアラブルデバイス、デジタルビデオレコーダ、監視システムなどを含む、任意の好適な形態を採ることができる。ホスト300は、記憶システムのメモリ104内に記憶するために、(例えば、ホストのメモリ340内に最初に記憶された)データを記憶システム100に送信するように構成されているプロセッサ330を備える。
エラーは、データの記憶内で発生し得、記憶システム100は、エラー検出/補正スキームを使用して、そのようなエラーに対処することができる。例えば、低密度パリティチェック(LDPC)コードを使用することができる。LPDCコードは、2部/Tannerグラフによって表すことができる。1組のノード(可変ノード又はビットノード)は、コードワードの要素に対応し、他の組のノード(チェックノード)は、コードワードによって満たされた一組のパリティチェック制約に対応する。エッジ接続は、ランダムに選択することができる。したがって、グラフ内のN個の記号ノードは、コードワードのビットに対応することができ、M個のチェックノードは、コードを定義する一組のパリティチェック制約に対応することができる。グラフ内のエッジは、記号ノードをチェックノードに接続する。サイズM×Nのパリティチェック行列Hを使用して、LDPCコードを指定することができ、各列は記号ノードに対応することができ、各行はチェックノードに対応することができる。行列は、LDPCブロックコード(N、K)を定義し、式中、Kは、情報ブロックサイズであり、Nは、コードワードの長さであり、Mは、パリティチェックビット数(M=N-K)である。LDPCは、ノイズ閾値が理論上の最大値(Shannon限界)の近くに設定されることを可能にする。
以下の特許出願は、LDPCについて考察し、その中に開示される実施形態は、本明細書に開示されるこれらの実施形態とともに使用することができる:第15/265,045号、第15/617,059号、第15/179,069号、及び第14/561.084号。
これらの特許出願のいくつかで考察されるように、サブコードベースのLDPCは、LDPCエンジンの複雑性を低減する方法として使用することができる。しかしながら、サブコードベースのLDPCソリューションは、典型的には、非インターリーブであり、その結果、「スーパーコード」全体が単一の物理ページ内に存在する。加えて、かかるソリューションは、典型的には、2KB又は4KBの相対的に短いLDPCコードに基づく。これらの特許出願の一部はまた、畳み込みベースのLDPCについても考察する。
この十数年にわたるクラウド記憶容量における有意な増加に伴い、「コールド」データを記憶するための低コストメモリを利用することが非常に望ましい。コールド記憶製品は、耐久性及びデータ保持並びに性能要件の低減(すなわち、より低い書き込み/読み出し性能)の点で、緩和された仕様を有するであろう。著しいメモリコスト低減を達成するために、論理スケーリングが、プログラミング状態の数を増加させること、及び/又はエラー訂正コード(ECC)冗長性を低減させることによって、セル当たりにより多くの情報を記憶するために使用され得、その両方がより多くのエラー(例えば、セル当たりにより多くの状態)を導入すること又はコードを弱めることのいずれかによって、ECC性能を劣化させる。これは、記憶システム(本明細書では記憶デバイスとして称されることもある)の信頼性を維持することにおける課題を提起する。
かかる論理スケーリングを可能にするために、改善されたコード化スキームが必要とされる。2つのかかる改善されたコード化スキームは、インターリーブコード化であり、より長いLDPCコードを使用する。しかしながら、これらの2つのスキームも、それらの不都合な点を有する。
インターリーブコード化は、物理ページにわたりコードワードに広がり、その結果、ECCが、(非インターリーブコード化手法のように)最も悪いページのBERとは対照的に、ページにわたる平均的なビットエラー率(bit error rate、BER)を扱う必要がある。しかしながら、このインターリーブスキームにはいくつかの不都合な点がある。例えば、単一の4KBフラッシュメモリユニット(flash memory unit、FMU)を読み取ることが、従来の非インターリーブコード化における単一ページとは対照的に、ワード線の全てのページ(例えば、16個のプログラミング状態を有するX4メモリに対する4ページ、又は32個のプログラミング状態を有するX5メモリに対する5ページ)を感知することを必要とするため、インターリーブコード化は、ランダムリード性能の劣化につながる可能性がある。別の不都合な点は、インターリーブコード化が、著しくより複雑な読み出し閾値のECCベースの較正を必要とすることである。読み出し閾値を較正するために使用される1つの好ましいスキームは、BER推定スキャン(BER Estimation Scan、BES)であり、ここで、BERは、可能な各組の読み出し閾値に関して、(コードワードのシンドローム重み(syndrome weight、SW)を算出することを介して)推定され、最小のBER推定を提供する組が、最適読み出し閾値として選択される。この問題は、BESアルゴリズムの複雑性が、単一のコードワードの読み出しに伴う読み出し閾値の数で指数関数的に増加することである。閾値当たりのn個の読み出しレベルをスキャンしたい場合、評価する必要があるオプションの数は、n^(コードワード当たりの読み出し閾値数)である。例えば、3444マッピングを有するX4メモリを検討する。すなわち第1の論理ページは、3つの論理遷移(→3つの読み出し閾値を必要とする)を有し、第2の論理ページは、4つの論理遷移(→4つの読み出し閾値)などを伴う。非インターリーブコード化スキームでは、コードワードの読み出しに伴う読み出し閾値の最大数は4であり、したがって、BESの複雑性は、n^4である。インターリーブコード化スキームでは、コードワードの読み出しに伴う閾値の数は、15(=3+4+4+4)であり、したがって、BESの複雑性はn^15であり、これはもはや実現可能ではない。
インターリーブスキームでの別の不都合な点は、メモリエラーモデル(Memory Error Model、MEM)推定及び対応する対数尤度比(log likelihood ratio、LLR)テーブル較正において課題を提示することである。コードワードが、ワード線の全ての物理ページにわたって広がるインターリーブコード化スキームでは、コードワードは、ワード線のフルMEMによって影響される。一例として、X4メモリに関して、読み出し閾値当たり5感知の読み出し解像度でワード線を読み出すと仮定すると、MEMは、(ワード線当たりの読み出し閾値数)x(閾値当たりの感知数)=15x5=75電圧ビンのエラー率の推定を伴う。これは、非インターリーブコード化を行う必要があるものよりも著しく高く、最大で6つの電圧ビンを推定する必要がある。より多くのパラメータを推定する必要があるため、推定品質はより低くなる。加えて、ハードウェアの複雑性が増加する。
そのため、ECC要件を大幅に緩和する、BER平均化の点の利点にもかかわらず、インターリーブコード化の著しく劣化したランダム読み出し性能(例えば、単一の論理ページ(又は単一の4KBフラッシュメモリユニット(FMU))を読み出すことが、ワード線の全ての物理ページの読み出し(感知及び転送)を必要とし得る)に起因して、非インターリーブコード化が典型的に使用される。
より長いLDPCコードスキームに関して、より長いLDPCコード(例えば、8KB/16KB/32KB/64KB)を使用することにより、Shannon制限に近い動作を可能にし、これは、より高いコード化効率及びより高い補正能力を提供する。しかしながら、このスキームの不都合な点は、LDPCメモリの複雑性が、コード長に比例することである。したがって、16KB/32KB/64KBのLDPCは、X4/X8/X16のメモリサイズを必要とする。
以下の実施形態は、上記の問題を解決するために使用することができ、インターリーブコード化及び長いLDPCコードの利点を享受することができるコード化スキームを提供する。一実施形態は、LDPCサブコードに基づいており、第2の実施形態は、畳み込みLDPCコードに基づく。両方の実施形態は、記憶システム100のコントローラ102内に実装することができ、記憶システム100がコールド記憶に使用されるときに特定の使用を見出し得る。これらの実施形態の例を以下に提供する。これらは単なる例であり、他の実装を使用することができることに留意することが重要である。
最初にLDPCサブコードに基づいて、実施形態を参照すると、この実施形態は、少数のグローバルパリティビットと接続されたt個のサブコードからの長いLDPCコードを構築し、各サブコードは、ワード線の異なる物理ページ上及び/又は異なる平面内に存在する。例えば、16KBのLDPCは、4×4KBのサブコードから構築されてもよく、各1つは、X4のワード線の異なる物理ページ内に記憶され、潜在的に異なる平面(例えば、チェッカーボード方式)でも記憶される。図4及び図5は、これらの実施例の例解図を提供する。図4では、サブコード1が下部(L)ページに記憶され、サブコード2が中央(M)ページに記憶され、サブコード3が上部(U)ページに記憶され、サブコード4が頂部(T)ページに記憶される。図4は、これらのサブコードが、垂直方式に記憶されることを示すが、しかしながら、サブコードは、図5に例解されるように、チェッカーボードのインターリービング方式などの異なる方式で記憶され得る。
図6A及び図6Bは、4つの平面にわたって生じる一実施形態のチェッカーボードインターリービングスキームを例解する図である。チェッカーボードインターリーブ方式で平面にわたって、サブコード1がLページ-平面0に記憶され、サブコード2がMページ-平面1に記憶され、サブコード3がUページ-平面3に記憶され、サブコード4がTページ-平面4に記憶される。
これらの実施形態は、上述の問題を解決するために、並びに追加の利点を提供するために使用することができる。1つの利点は、最も悪いページ上に記憶されたサブコード(異なる動作条件に関して異なる場合がある)が、他のページ上に記憶された他のサブコードから、共同グローバルパリティを通して補助を受けるため、これらの実施形態が、(インターリーブコード化スキームと同様に)ページのBERの変動に対する感度を低減させることができることである。別の利点は、これらの実施形態が、(非インターリーブコード化スキームと同様に)良好なランダム読み出し性能を提供することができることである。例えば、ほとんどの時間、これらの実施形態は、単一(例えば、4KB)のサブコードを読み出し、復号することができ、単一のページのみを感知及び転送する必要がある。高BERのまれな場合にのみ、これらの実施形態は全てのページを読み出し、フル(例えば、16KB)コードを復号する必要がある。追加の利点として、これらの実施形態は、従来の長いLDPCコードソリューションに対応する改善された補正能力を提供し、サブコードを使用することにより、(4KBのLDPCソリューションに対応する)LDPCエンジンの小さいシリコンフットプリントを使用することができる。別の利点は、これらの実施形態が、単一のBESベースの読み出し閾値較正ソリューション(非インターリーブコード化ソリューションと同様)を提供することである。このようにして、各物理ページ上の読み出し閾値を較正することは、そのページ上に記憶された適切なサブコードを使用してそのページ上にBESを適用することによって行うことができ、それにより、ワード線の全ての読み出し閾値を較正するフル問題をより単純なサブ問題に分解する。同様に、これらの実施形態は、サブコードレベルでの推定を適用し、サブコードに対応する特定のページのMEMを推定し、そのためワード線当たりのMEMを推定するフル問題をより単純なサブ問題に分解することによって、非インターリーブコード化ソリューションで使用され得るように、MEMを推定し、デコーダ及び/又は(a-priori LLRsなどの)システムパラメータを較正するためにMEMを使用するための単純なスキームを提供することができる。
別の実施形態では、畳み込みLDPCコード(CLDPC)ベースのスキームが使用される。畳み込みLDPCコードは、古典的な畳み込みコードの特性をLDPCコードの特性と組み合わせる。これらのコードは、標準的なLDPCコードよりも良好な復号閾値(補正能力)を有することが実証されている。ランダム様構造を備えるパリティチェック行列を有する標準的なLDPC(図7を参照)とは異なり、CLDPCコードは、階段様パターン(図8参照)を有するパリティチェック行列によって特徴付けられる。
実際的な観点から、任意のLDPC構造(特に、CLDPC構造)において最初に検査される一部の重要な特性は、可変ノード度分布d_v及びチェックノード度分布d_cである。可変ノード度分布及びチェックノード度分布は、高い補正能力を備えるコードを作成する能力において重要な役割を果たす。加えて、可変度分布は、それ自体が、より低い補正能力によって特徴付けられる、低電力、高スループットデコーダで動作する能力を判定する。実験により、(コードレート及び長さの点で)対象となるフラッシュベースの領域については、補正能力の観点で、標準的なLDPCコード(又はサブコードベースのLDPC)上のCLDPCコードの利点は、ブロック長さとともに増加し、非常に長いブロック長の飽和に達することが示されている。
ランダム読み出しを実施する能力は、それらの構造の固有の場所に起因して、CLDPCコードによってサポートされ得る。これは図9に例解され、4Kコードチャンクの境界は、ランダム読み出しにおけるCLDPCコードの動作に対する限定を表す。パリティチェックは、全てのその変数から情報が得られない限り使用することができないため、相互接続領域内の全てのパリティチェックは使用可能ではなく、補正能力に寄与することができない。この現象を緩和し、ランダム読み出し動作のスループット補正能力の両方を増加させるために、接続チェック層は、図9の底部分に示されるように収縮させることができる。この技術は、米国特許第10,389,389号により詳細に考察される。接続層が収縮するほど、ランダム読み出しを達成することができる性能及び補正能力がより良好になる。しかしながら、これは、全長の読み出しの性能及び補正能力を犠牲にする。
共同パリティの量を判定することにおける、サブコードベースのスキームについても同様のトレードオフが存在する。共同パリティサイズが非常に小さいとき、全体的な補正能力は、サブコードレベルでのより良好な性能の利点を受ける単一のサブコードの能力に近づく。共同パリティが大きいとき、全体的な補正能力は、サブコードレベルでより悪い性能を犠牲にして増加する。
再び図9を参照すると、図9の上部は、4K区分に分割された、32KのCLDPCコードのパリティチェック行列の鳥瞰図を示す。図9に示されるように、2つの左端及び2つの右端の4Kチャンクのみが示される。図9の底部分は、同じCLDPC行列を示すが、相互連結チェックの数が、非相互連結チェックの利点で低減される。これにより、性能及び補正能力の点で4K~32Kのトレードオフを作成する。CLDPCコードの異なる4Kチャンクは、サブコードベースのソリューションと同様の方式で、垂直インターリーブ又はチェッカーボードインターリーブのいずれかを使用して記憶されてもよい。
CLDPCベースのシステムを提供する実施形態と関連付けられた多くの利点が存在する。1つの利点は、これらの実施形態が(インターリーブコード化スキームと同様に)ページのBERの変動に対する感度が低減されることである。最も悪い論理ページ上のチャンクは、共同グローバルパリティを通じて他のページ上に記憶された他のチャンクによって支援される。別の利点として、これらの実施形態は、良好なランダム読み出し性能(非インターリーブコード化スキームと同様)を提供する。ほとんどの時間、これらの実施形態は、単一のチャンクを含む単一のページのみを感知し、転送することができる。高BERのまれな場合にのみ、これらの実施形態は全てのページを読み出し、フルコードを復号する必要があり得る。これらの実施形態はまた、改善された補正能力(コード長が十分に長いと仮定する)及びLDPCエンジンの小さいシリコンフットプリント(より小さい4-K様のシリコンフットプリントは、ウィンドウ復号で達成可能であり得るが、これは、性能及び補正能力に対する一部のヒットを伴う)を提供する。別の利点として、これらの実施形態は、単純なBESベースの読み出し閾値較正ソリューション(既存の非インターリーブコード化ソリューションと同様)を提供する。サブコードベースのスキームと同様に、BESは、1つの論理ページ上に含まれる単一のチャンク上にのみ適用されてもよく、それによって、ワード線当たりの読み出し閾値を推定するフル問題を、より単純なサブ問題に分解する。同様に、これらの実施形態は、従来の非インターリーブコード化ソリューションと同様に、対応するページのMEMを推定するために、チャンクレベルで推定を適用し、そのためワード線当たりのMEMを推定するフル問題をより単純なサブ問題に分解することによって、MEMを推定し、デコーダ及び(a-priori LLRsなどの)システムパラメータを較正するためにMEMを使用するための単純なソリューションを提供することができる。
サブコード/CLDPCスキームから独立して、従来のインターリーブコード化に伴う主な問題のうちの1つは、ECCベースの読み出し閾値較正(例えば、BER推定スキャン(BES))を著しく複雑にすることである。これに対処するために、追加のソリューションを使用することができる。1つの追加のソリューションは、ヒストグラム及びBESの組み合わせを使用する。このソリューションでは、Vtビン当たりのセル数のヒストグラムを生成するために、ワード線のM個の読み出し閾値(例えば、X4メモリに対してM=15)の各々の周囲でn個のVtを感知して、高い解像度でワード線を読み出し、バレー探索が、M個のバレーの場所を見出すためにヒストグラム上で実施され、これが、BESアルゴリズムに関する「初期推測」として使用される。BESは、各読み出し閾値j=1-Mについて以下の手順:全ての他のM-1閾値(i~=j)を現在の「最良の推測」に固定し、最小BER/SWについてj番目の閾値をスキャンし、次いで、SWを最小限に抑える読み出しレベルまで、j番目の閾値「最良の推測」を更新すること、を繰り返し実施することによって行うことができる。これは、見出された読み出し閾値においてこれ以上の変化がなくなるまで反復的に繰り返される。
この手順により、読み出し閾値較正が、(サブコード/CLDPCチャンクの代わりに)スーパーコード全体で実施されることを可能にし、これが全ての物理ページにわたって広がるが(例えば、X4メモリについて15個の閾値にわたって広がる)、しかしながら、読み出し閾値の数において直線的であり指数関数的ではない複雑性を有する。より具体的には、全てのn^Mの組み合わせ(実質的ではない)の網羅的なスキャンを実施する代わりに、各閾値の周りでn(=5、7、...)個の読み出しレベルオプションを有するウィンドウをスキャンしたいと仮定すると、各閾値は、現在の「最良の推測」上に他の閾値を固定しながら、別々にスキャンされ、これは、反復的に更新され得、Mnの直線的な複雑性につながる。このアプローチの実現可能性は、初期推測が過度に離れていない(その結果、BERが高すぎない場合、SWが飽和し、読み出しレベル補正のための勾配信号を提供しない)ことを必要とする。これは、Vtビンヒストグラム当たりの細胞数の最小点に基づいて、初期推測を生成する初期工程を導入することによって達成される。提案される反復スキームは、nにおいて、線状の複雑性、すなわちInを有し、Iは反復の数(例えば、約2など低いことが予想される)である。
別のアプローチは、インターリーブコード化と非インターリーブコード化との組み合わせを使用する。各ワード線において、又は各ワード線ゾーンにおいて、又は各ブロックにおいて、他の全てのコードワードがインターリーブコード化フォーマットで記憶されながら、1つのコードワードが非インターリーブコード化形式で記憶される。非インターリーブコードワードは、従来のBESを通じて読み出し閾値較正のために使用される。非インターリーブコードワードのより高いBERを補償するために、より高い冗長性が、これらのコードワードに対して使用され得る。
例示的な一実装形態では、ブロック内に1つの非インターリーブワード線が存在する。これは、図10に例解され、ページ当たり1つの非インターリーブワード線コードワードを有する4つの平面にわたって垂直インターリーブを示す(同じスキームがまた、チェッカーボードインターリーブに適用される可能性がある)。この場合、読み出し閾値較正は、非インターリーブであり、非インターリーブされた1つから他の全てのワード線について推定された較正された読み出し閾値であるワード線上で実施されてもよい。インターリーブコードワードはインターリービングに起因してより良好な信頼性を有するため、信頼性の低下を補償するために、非インターリーブコードワードに、より多くの冗長性を割り当てることができる。これは、同じブロックのワード線間に相関関係があるために可能である。代替的に、異なるブロックは、異なる非インターリーブワード線番号を含んでもよく、その結果、対応するワード線番号の読み出し閾値はまた、他のブロックのワード線番号から推定され得る。このプロセスは、デバイスの他のブロックにわたって使用された較正結果を提供する代表的なブロック及びワード線番号を使用する。
図11は、1つのワード線が、各代表的なブロック上で非インターリーブされ得、その結果、全体的に、全てのワード線が等しい表現を有し、提案された方式で較正することができる方法を示す。通常、ブロック(例えば、数千)よりも、少ないワード線(例えば、約数百)が存在し、その結果、ブロックの欠如はなくなるはずである。
最後に、上述したように、任意の好適なタイプのメモリを使用することができる。半導体メモリデバイスは、ダイナミックランダムアクセスメモリ(dynamic random access memory、「DRAM」)、スタティックランダムアクセスメモリ(static random access memory、「SRAM」)デバイスなどの揮発性メモリデバイス、抵抗ランダムアクセスメモリ(resistive random access memory、「ReRAM」)、電気的消去可能プログラム可能読み出し専用メモリ(electrically erasable programmable read only memory、「EEPROM」)、フラッシュメモリ(EEPROMのサブセットとみなすこともできる)、強誘電性ランダムアクセスメモリ(ferroelectric random access memory、「FRAM」)、磁気抵抗ランダムアクセスメモリ(magnetoresistive random access memory、「MRAM」)などの不揮発性メモリデバイス及び情報を記憶する能力がある他の半導体素子を含む。各タイプのメモリデバイスは、異なる構成を有してもよい。例えば、フラッシュメモリデバイスは、NAND又はNOR構成で構成され得る。
メモリデバイスは、受動及び/又は能動素子から、任意の組み合わせで形成することができる。非限定的な例として、受動半導体メモリ素子は、ReRAMデバイス素子を含み、いくつかの実施形態では、抗ヒューズ、相変化材料などの抵抗スイッチング記憶素子、及び任意選択的に、ダイオードなどの操縦素子を含む。更に非限定的な例として、能動半導体メモリ素子は、EEPROM及びフラッシュメモリデバイス素子を含み、いくつかの実施形態では、浮遊ゲート、導電性ナノ粒子、又は電荷蓄積誘電材料などの電荷蓄積領域を含む素子を含む。
複数のメモリ素子は、直列に接続されるように、又は各素子が個別にアクセス可能であるように構成され得る。非限定的な例として、NAND構成(NANDメモリ)内のフラッシュメモリデバイスは、典型的には、直列に接続されたメモリ素子を含む。NANDメモリアレイは、ストリングが、単一のビット線を共有しグループとしてアクセスされる複数のメモリ素子から構成される、複数のメモリストリングからアレイが構成されるように構成され得る。代替的に、メモリ素子は、各素子が個別にアクセス可能な、例えば、NORメモリアレイであるように構成され得る。NAND及びNORメモリ構成は、例であり、メモリ素子は、別様に構成され得る。
基板内及び/又は基板の上に位置する半導体メモリ素子は、二次元メモリ構造、三次元メモリ構造などの二次元又は三次元で配置され得る。
二次元メモリ構造では、半導体メモリ素子は、単一の平面又は単一のメモリデバイスレベルに配置される。典型的には、二次元メモリ構造では、メモリ素子は、メモリ素子を支持する基板の主表面に実質的に平行に延在する平面(例えば、x-y方向平面)に配置される。基板は、ウェハであり、ウェハの上若しくはウェハ内にメモリ素子の層が形成されるウェハであってもよく、又はメモリ素子が形成された後にメモリ素子に取り付けられるキャリア基板であってもよい。非限定的な例として、基板は、シリコンなどの半導体を含み得る。
メモリ素子は、複数の行及び/又は列などの順序付きアレイにおいて単一のメモリデバイスレベルに配置され得る。しかしながら、メモリ素子は非規則的又は非直交構成で配列され得る。メモリ素子は、各々2つ以上の電極、又はビット線及びワード線などの接触線を有し得る。
三次元メモリアレイは、メモリ素子が複数の平面又は複数のメモリデバイスレベルを占有するように配置され、それによって、三次元(すなわち、x、y、及びz方向であり、y方向は基板の主表面に実質的に垂直であり、x及びz方向は基板の主表面に実質的に平行である)の構造を形成する。
非限定的な例として、三次元メモリ構造は、複数の二次元メモリデバイスレベルの積層体として垂直に配置され得る。別の非限定的な例として、三次元メモリアレイは、各列が各列において複数のメモリ素子を有する複数の垂直列(例えば、基板の主表面に対して実質的に垂直、すなわちy方向に延在する列)として配置され得る。列は、二次元構成、例えば、x-z平面に配置されてもよく、複数の垂直に積層されたメモリ平面上に素子を有するメモリ素子の三次元配置をもたらす。三次元のメモリ素子の他の構成が、三次元メモリアレイを構成することもできる。
非限定的な例として、三次元NANDメモリアレイでは、メモリ素子は、単一の水平(例えば、x-z)メモリデバイスレベル内にNANDストリングを形成するようにまとめて結合され得る。代替的に、メモリ素子は、複数の水平メモリデバイスレベルにわたって横断する垂直なNANDストリングを形成するようにまとめて結合され得る。いくつかのNANDストリングが単一のメモリレベルでメモリ素子を含有し、他のストリングが複数のメモリレベルにわたるメモリ素子を含有する、他の三次元構成を想定することができる。三次元メモリアレイはまた、NOR構成及びReRAM構成で設計されてもよい。
典型的には、モノリシック三次元メモリアレイでは、1つ以上のメモリデバイスレベルが単一の基板の上方に形成される。任意選択的に、モノリシック三次元メモリアレイは、単一の基板内に少なくとも部分的に1つ以上のメモリ層も有し得る。非限定的な例として、基板は、シリコンなどの半導体を含み得る。モノリシック三次元アレイでは、アレイの各メモリデバイスレベルを構成する層は、典型的には、アレイの下方のメモリデバイスレベルの層上に形成される。しかしながら、モノリシック三次元メモリアレイの隣接するメモリデバイスレベルの層は、共有されてもよいか、又はメモリデバイスレベル間に介在する層を有してもよい。
別の観点から、二次元アレイが別個に形成され、次いでまとめてパッケージ化されて、複数のメモリ層を有する非モノリシックメモリデバイスを形成してもよい。例えば、非モノリシック積層メモリは、別個の基板上にメモリレベルを形成し、次いで、メモリレベルを互いの上に積層することによって構築することができる。基板は、積層前にメモリデバイスレベルから薄くされるか、又は除去され得るが、メモリデバイスレベルが別個の基板にわたって最初に形成されるため、結果として得られるメモリアレイはモノリシック三次元メモリアレイではない。更に、複数の二次元メモリアレイ又は三次元メモリアレイ(モノリシック又は非モノリシック)は、別個のチップ上に形成され、次いでまとめてパッケージ化されて積層チップメモリデバイスを形成してもよい。
関連する回路は、典型的には、メモリ素子の動作及びメモリ素子との通信のために必要とされる。非限定的な例として、メモリデバイスは、プログラミング、読み出しなどの機能を達成するためにメモリ素子を制御及び駆動するために使用される回路を有し得る。これに関連する回路は、メモリ素子と同じ基板上及び/又は別個の基板上にあってもよい。例えば、メモリ読み出し書き込み動作のためのコントローラは、別個のコントローラチップ上及び/又はメモリ素子と同じ基板上に位置し得る。
当業者であれば、本発明は説明された二次元及び三次元の構造に限定されず、本明細書で説明され、当業者によって理解されるように、本発明の趣旨及び範囲内で、全ての関連するメモリ構造を網羅すると理解するであろう。
前述の詳細な説明は、本発明が採り得る選択された形態の例解として理解され、本発明の定義として理解されるものではないことが意図される。特許請求される発明の範囲を定義することを意図するのは、全ての等価物を含む、以下の特許請求の範囲のみである。最後に、本明細書に記載される実施形態のいずれかの任意の態様は、単独で、又は互いと組み合わせて使用され得ることに留意されたい。
以下に、本明細書で開示する技術の特徴を列挙する。
(項目1)
記憶システムであって、
メモリと、
コントローラであって、前記メモリに結合されており、かつ
複数のサブコードから低密度パリティチェック(LDPC)コードを生成することと、
前記複数のサブコードの各サブコードを、前記メモリ内のワード線の異なるページ内に記憶することと、を行うように構成されている、コントローラと、を備える、記憶システム。
(項目2)
前記複数のサブコードが、前記メモリ内の同一平面内に記憶されている、項目1に記載の記憶システム。
(項目3)
前記複数のサブコードが、前記メモリ内の異なる平面内に記憶されている、項目1に記載の記憶システム。
(項目4)
前記複数のサブコードが、前記メモリ内の前記異なる平面内にチェッカーボードパターンで記憶されている、項目3に記載の記憶システム。
(項目5)
前記コントローラが、前記メモリのページに関する読み出し閾値を較正するように更に構成されている、項目1に記載の記憶システム。
(項目6)
前記較正が、較正されている前記ページ上に記憶されたサブコードを使用して行われており、前記較正が、前記ページ上に記憶されているサブコードビット、及び前記サブコードビットのみを伴う一組のパリティチェック式に基づいて行われている、項目5に記載の記憶システム。
(項目7)
前記較正が、ヒストグラムを使用して行われている、項目5に記載の記憶システム。
(項目8)
前記コントローラが、前記メモリ内にインターリーブコードワード及び非インターリーブコードワードを記憶するように更に構成されている、項目1に記載の記憶システム。
(項目9)
前記インターリーブコードワード及び前記非インターリーブコードワードが、前記メモリ内の異なるワード線、異なるワード線ゾーン、又は異なるブロック内に記憶されている、項目8に記載の記憶システム。
(項目10)
前記非インターリーブコードワードが、閾値較正を読み出すために使用されている、項目8に記載の記憶システム。
(項目11)
前記メモリが、三次元メモリを備える、項目1に記載の記憶システム。
(項目12)
メモリを備える記憶システムにおける、方法であって、
畳み込み低密度パリティチェック(CLDPC)コードを生成することと、
前記メモリ内のワード線の異なるページ内に前記CLDPCコードの異なる部分を記憶することと、を含む、方法。
(項目13)
前記CLDPCコードの前記異なる部分が、前記メモリ内の同一平面内に記憶されている、項目12に記載の方法。
(項目14)
前記CLDPCコードの前記異なる部分が、前記メモリ内の異なる平面内に記憶されている、項目12に記載の方法。
(項目15)
前記CLDPCコードの前記異なる部分が、前記メモリ内の前記異なる平面内にチェッカーボードパターンで記憶されている、項目14に記載の方法。
(項目16)
較正されたページ上に記憶される、CLDPCコードビットの部分に基づいて、及びCLDPCコードビットの前記部分のみを伴う一組のパリティチェック式に基づいて、前記メモリのページに関する読み出し閾値を較正することを更に含む、項目12に記載の方法。
(項目17)
ヒストグラムを使用して、前記メモリのページに関する読み出し閾値を較正することを更に含む、項目12に記載の方法。
(項目18)
前記メモリ内にインターリーブコードワード及び非インターリーブコードワードを記憶することを更に含む、項目12に記載の方法。
(項目19)
前記メモリが、三次元メモリを備える、項目12に記載の方法。
(項目20)
記憶システムであって、
メモリと、
複数のサブコードから低密度パリティチェック(LDPC)コードを生成するための手段と、
前記メモリ内のワード線の異なるページ内に前記複数のサブコードの各サブコードを記憶するための手段と、を備える、記憶システム。

Claims (17)

  1. 記憶システムであって、
    メモリと、
    コントローラであって、前記メモリに結合されており、かつ
    複数のサブコードから低密度パリティチェック(LDPC)コードを生成することと、
    前記複数のサブコードの各サブコードを、前記メモリ内のワード線の異なるページ内に記憶することと、を行うように構成されている、コントローラと、を備え、
    前記コントローラは、前記メモリのページに関する読み出し閾値を較正するように更に構成されており、
    前記較正が、較正されている前記ページ上に記憶されたサブコードを使用して行われており、前記較正が、前記ページ上に記憶されているサブコードビット、及び前記サブコードビットのみを伴う一組のパリティチェック式に基づいて行われている、
    記憶システム。
  2. 前記複数のサブコードが、前記メモリ内の同一平面内に記憶されている、請求項1に記載の記憶システム。
  3. 前記複数のサブコードが、前記メモリ内の異なる平面内に記憶されている、請求項1に記載の記憶システム。
  4. 前記複数のサブコードが、前記メモリ内の前記異なる平面内にチェッカーボードパターンで記憶されている、請求項3に記載の記憶システム。
  5. 前記較正が、ヒストグラムを使用して行われている、請求項に記載の記憶システム。
  6. 前記コントローラが、前記メモリ内にインターリーブコードワード及び非インターリーブコードワードを記憶するように更に構成されている、請求項1に記載の記憶システム。
  7. 前記インターリーブコードワード及び前記非インターリーブコードワードが、前記メモリ内の異なるワード線、異なるワード線ゾーン、又は異なるブロック内に記憶されている、請求項に記載の記憶システム。
  8. 前記非インターリーブコードワードが、閾値較正を読み出すために使用されている、請求項に記載の記憶システム。
  9. 前記メモリが、三次元メモリを備える、請求項1に記載の記憶システム。
  10. メモリを備える記憶システムにおける、方法であって、
    畳み込み低密度パリティチェック(CLDPC)コードを生成することと、
    前記メモリ内のワード線の異なるページ内に前記CLDPCコードの異なる部分を記憶することと、
    較正されたページ上に記憶される、CLDPCコードビットの部分に基づいて、及びCLDPCコードビットの前記部分のみを伴う一組のパリティチェック式に基づいて、前記メモリのページに関する読み出し閾値を較正することと、
    を含む、方法。
  11. メモリを備える記憶システムにおける、方法であって、
    畳み込み低密度パリティチェック(CLDPC)コードを生成することと、
    前記メモリ内のワード線の異なるページ内に前記CLDPCコードの異なる部分を記憶することと、
    ヒストグラムを使用して、前記メモリのページに関する読み出し閾値を較正することと、
    を含む、方法。
  12. 前記CLDPCコードの前記異なる部分が、前記メモリ内の同一平面内に記憶されている、請求項10又は11に記載の方法。
  13. 前記CLDPCコードの前記異なる部分が、前記メモリ内の異なる平面内に記憶されている、請求項10又は11に記載の方法。
  14. 前記CLDPCコードの前記異なる部分が、前記メモリ内の前記異なる平面内にチェッカーボードパターンで記憶されている、請求項13に記載の方法。
  15. 前記メモリ内にインターリーブコードワード及び非インターリーブコードワードを記憶することを更に含む、請求項10又は11に記載の方法。
  16. 前記メモリが、三次元メモリを備える、請求項10又は11に記載の方法。
  17. 記憶システムであって、
    メモリと、
    複数のサブコードから低密度パリティチェック(LDPC)コードを生成するための手段と、
    前記メモリ内のワード線の異なるページ内に前記複数のサブコードの各サブコードを記憶するための手段と、
    前記メモリのページに関する読み出し閾値を較正するための手段と、
    を備え、
    前記較正が、較正されている前記ページ上に記憶されたサブコードを使用して行われており、前記較正が、前記ページ上に記憶されているサブコードビット、及び前記サブコードビットのみを伴う一組のパリティチェック式に基づいて行われている、
    記憶システム。
JP2021103135A 2021-03-16 2021-06-22 読み出し閾値較正サポートを備える、サブコード及び畳み込みベースのldpcインターリーブコード化スキームを使用するための記憶システム及び方法 Active JP7216773B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/202,601 US11481271B2 (en) 2021-03-16 2021-03-16 Storage system and method for using subcodes and convolutional-based LDPC interleaved coding schemes with read threshold calibration support
US17/202,601 2021-03-16

Publications (2)

Publication Number Publication Date
JP2022142695A JP2022142695A (ja) 2022-09-30
JP7216773B2 true JP7216773B2 (ja) 2023-02-01

Family

ID=83284843

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021103135A Active JP7216773B2 (ja) 2021-03-16 2021-06-22 読み出し閾値較正サポートを備える、サブコード及び畳み込みベースのldpcインターリーブコード化スキームを使用するための記憶システム及び方法

Country Status (3)

Country Link
US (1) US11481271B2 (ja)
JP (1) JP7216773B2 (ja)
KR (1) KR102478333B1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11556420B2 (en) * 2021-04-06 2023-01-17 Macronix International Co., Ltd. Managing error correction coding in memory systems

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012118979A (ja) 2010-12-03 2012-06-21 Internatl Business Mach Corp <Ibm> Nandフラッシュ・メモリにおける確率論的多層エラー訂正のためのシステム、方法、およびコンピュータ・プログラム
US20130318422A1 (en) 2012-05-22 2013-11-28 Stec, Inc. Read level adjustment using soft information
JP2014523595A (ja) 2011-07-22 2014-09-11 サンディスク テクノロジィース インコーポレイテッド データを蓄積するシステムおよび方法
US20190188078A1 (en) 2017-12-18 2019-06-20 Samsung Electronics Co., Ltd. Method of operating memory controller for performing encoding and decoding by using a convolution-type low density parity check code
JP2019169216A (ja) 2018-03-22 2019-10-03 東芝メモリ株式会社 メモリシステム
JP2020202553A (ja) 2019-06-06 2020-12-17 ウェスタン デジタル テクノロジーズ インコーポレーテッド 特定のシステムレベルトリガ及びポリシーに基づいた不規則なコードスキームの適応的使用

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006039801A1 (en) 2004-10-12 2006-04-20 Nortel Networks Limited System and method for low density parity check encoding of data
US7681109B2 (en) 2005-10-13 2010-03-16 Ramot At Tel Aviv University Ltd. Method of error correction in MBC flash memory
US7844877B2 (en) 2005-11-15 2010-11-30 Ramot At Tel Aviv University Ltd. Method and device for multi phase error-correction
US7971130B2 (en) * 2006-03-31 2011-06-28 Marvell International Ltd. Multi-level signal memory with LDPC and interleaving
TW200908569A (en) 2007-05-21 2009-02-16 Ramot At Tel Aviv University Co Ltd Memory-efficient LDPC decoding
US9088303B2 (en) * 2013-02-28 2015-07-21 Micron Technology, Inc. Codewords that span pages of memory
US9092350B1 (en) * 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9697905B2 (en) 2013-05-31 2017-07-04 Sandisk Technologies Llc Updating read voltages using syndrome weight comparisons
US9229876B2 (en) * 2013-12-17 2016-01-05 Sandisk Technologies Inc. Method and system for dynamic compression of address tables in a memory
US9875156B2 (en) * 2015-10-01 2018-01-23 Sandisk Technologies Llc Data storage device with a memory die that includes an interleaver
EP3364578B1 (en) 2015-11-17 2023-07-26 Huawei Technologies Co., Ltd. Parallel decoding for qc-ldpc codes
US10063258B2 (en) 2016-03-04 2018-08-28 Sandisk Technologies Llc Method and data storage device to estimate a number of errors using convolutional low-density parity-check coding
US10389389B2 (en) 2016-03-04 2019-08-20 Western Digital Technologies, Inc. Method and data storage device using convolutional low-density parity-check coding with a long page write and a short page read granularity
US10367528B2 (en) 2016-03-04 2019-07-30 Sandisk Technologies Llc Convolutional low-density parity-check coding
TWI658402B (zh) * 2017-07-20 2019-05-01 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元及記憶體儲存裝置
US11062758B2 (en) * 2018-09-19 2021-07-13 SK Hynix Inc. Memory system to process multiple word line failures with limited storage and method of operating such memory system
KR20200069892A (ko) * 2018-12-07 2020-06-17 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
US10867655B1 (en) * 2019-07-08 2020-12-15 Micron Technology, Inc. Methods and apparatus for dynamically adjusting performance of partitioned memory

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012118979A (ja) 2010-12-03 2012-06-21 Internatl Business Mach Corp <Ibm> Nandフラッシュ・メモリにおける確率論的多層エラー訂正のためのシステム、方法、およびコンピュータ・プログラム
JP2014523595A (ja) 2011-07-22 2014-09-11 サンディスク テクノロジィース インコーポレイテッド データを蓄積するシステムおよび方法
US20130318422A1 (en) 2012-05-22 2013-11-28 Stec, Inc. Read level adjustment using soft information
US20190188078A1 (en) 2017-12-18 2019-06-20 Samsung Electronics Co., Ltd. Method of operating memory controller for performing encoding and decoding by using a convolution-type low density parity check code
JP2019169216A (ja) 2018-03-22 2019-10-03 東芝メモリ株式会社 メモリシステム
JP2020202553A (ja) 2019-06-06 2020-12-17 ウェスタン デジタル テクノロジーズ インコーポレーテッド 特定のシステムレベルトリガ及びポリシーに基づいた不規則なコードスキームの適応的使用

Also Published As

Publication number Publication date
US11481271B2 (en) 2022-10-25
US20220300369A1 (en) 2022-09-22
JP2022142695A (ja) 2022-09-30
KR102478333B1 (ko) 2022-12-15
KR20220129437A (ko) 2022-09-23

Similar Documents

Publication Publication Date Title
US10116333B2 (en) Decoder with parallel decoding paths
US10567006B2 (en) Data relocation
US10484019B2 (en) Adaptive encoder/decoder
US20170300246A1 (en) Storage System and Method for Recovering Data Corrupted in a Host Memory Buffer
US10389389B2 (en) Method and data storage device using convolutional low-density parity-check coding with a long page write and a short page read granularity
US9766976B2 (en) Data storage device and method for storing multiple codewords and redundancy information at a word line
US9811418B2 (en) Syndrome-based codeword decoding
US10367528B2 (en) Convolutional low-density parity-check coding
US10339343B2 (en) Storage system and method for improved generation and storage of data protection information
US11036407B1 (en) Storage system and method for smart folding
US11442666B2 (en) Storage system and dual-write programming method with reverse order for secondary block
US11488684B1 (en) Storage system and method for decision-based memory read threshold calibration
US10572189B2 (en) Method and decoder to adjust an error locator polynomial based on an error parity
US11269725B2 (en) Storage system and method for direct quad-level cell (QLC) programming
US11231997B2 (en) Storage system and method for balanced quad-level cell (QLC) coding with margin for an internal data load (IDL) read
WO2021247093A1 (en) Storage system and method for retention-based zone determination
CN115756299A (zh) 用于在易失性存储器中的码字中存储逻辑到物理地址表条目的存储系统和方法
US11437104B2 (en) Storage system and method for a hybrid quad-level cell (QLC) write scheme for reduced random access memory (RAM) footprint
JP7216773B2 (ja) 読み出し閾値較正サポートを備える、サブコード及び畳み込みベースのldpcインターリーブコード化スキームを使用するための記憶システム及び方法
US11138065B1 (en) Storage system and method for fast low-density parity check (LDPC) encoding
US9595353B2 (en) Resistance-based memory with auxiliary redundancy information
US11915772B1 (en) Data storage device and method for power on reset and read error handling
US11809331B1 (en) Storage system and method for avoiding header to improve parity
US11797445B2 (en) Data storage device and method for preventing data loss during an ungraceful shutdown
US20240274213A1 (en) Data Storage Device and Method for Runtime Exclusive-Or Zoning During Folding

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210622

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20210706

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20211027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221003

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230117

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230120

R150 Certificate of patent or registration of utility model

Ref document number: 7216773

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150