JP7167164B2 - 訂正不可能なecc - Google Patents

訂正不可能なecc Download PDF

Info

Publication number
JP7167164B2
JP7167164B2 JP2020536221A JP2020536221A JP7167164B2 JP 7167164 B2 JP7167164 B2 JP 7167164B2 JP 2020536221 A JP2020536221 A JP 2020536221A JP 2020536221 A JP2020536221 A JP 2020536221A JP 7167164 B2 JP7167164 B2 JP 7167164B2
Authority
JP
Japan
Prior art keywords
block
value
memory
nand memory
array
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
JP2020536221A
Other languages
English (en)
Other versions
JP2021508140A (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 JP2021508140A publication Critical patent/JP2021508140A/ja
Priority to JP2022171048A priority Critical patent/JP2023011721A/ja
Application granted granted Critical
Publication of JP7167164B2 publication Critical patent/JP7167164B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/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/1064Adding 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 cache or content addressable memories
    • 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
    • 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
    • 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/14Implementation of control logic, e.g. test mode decoders
    • 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/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/20Address generation devices; Devices for accessing memories, e.g. details of addressing circuits using counters or linear-feedback shift registers [LFSR]
    • 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/44Indication or identification of errors, e.g. for repair
    • 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/88Masking faults in memories by using spares or by reconfiguring with partially good memories
    • G11C29/886Masking faults in memories by using spares or by reconfiguring with partially good memories combining plural defective memory devices to provide a contiguous address range, e.g. one device supplies working blocks to replace defective blocks in another device
    • 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/7209Validity control, e.g. using flags, time stamps or sequence numbers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Memory System (AREA)

Description

メモリデバイスは典型的には、コンピュータまたは他の電子デバイスにおいて内部の半導体集積回路として設けられる。揮発性及び不揮発性メモリを含む多くの異なるタイプのメモリが存在する。
揮発性メモリは、そのデータを保持するために電力を必要とし、ランダムアクセスメモリ(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)の一方を表すことができる。
しかしながら、フラッシュメモリセルは、3つ以上のプログラム状態のうちの1つを表すこともでき、各セルは2桁以上の2進数(たとえば、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は、メモリデバイス及びホストの間でデータ(たとえば、ユーザデータ及び関連する整合性データ(たとえば、エラーデータ及びアドレスデータなど))を転送するための読み出し動作もしくは書き込み動作、またはメモリデバイスからデータを消去するための消去動作などのメモリ動作に関連するコマンドをホストから受信することができる。
必ずしも縮尺通りで描いていない図面では、異なる図において同様の参照番号は同様のコンポーネントを示し得る。異なる文字の添字を有する同様の参照番号は、同様のコンポーネントの異なるインスタンスを表し得る。図面は概して、限定ではなく例として、本文書で論じる様々な実施形態を示している。
メモリデバイスを含む環境の一例を示す図である。 3D NANDアーキテクチャ半導体メモリアレイの一例の概略図である。 3D NANDアーキテクチャ半導体メモリアレイの一例の概略図である。 メモリモジュールの例示的なブロック図である。 本開示の一部の例によるNANDを読み出す方法のフローチャートである。 本開示の一部の例による第1のエラー処理モードの方法のフローチャートである。 本開示の一部の例によるメモリコントローラを示す図である。 1つまたは複数の実施形態が実装され得るマシンの一例を示すブロック図である。
電子デバイス、たとえば、モバイル電子デバイス(たとえば、スマートフォン、タブレットなど)、自動車用途で使用される電子デバイス(たとえば、自動車センサ、制御ユニット、運転者支援システム、乗客安全または快適システムなど)、及びインターネット接続された電化製品またはデバイス(たとえば、モノのインターネット(IoT)デバイスなど)には、とりわけ、電子デバイスのタイプ、使用環境、期待性能などに応じて、様々なストレージのニーズがある。
電子デバイスは、いくつかの主要なコンポーネント、すなわち、プロセッサ(たとえば、中央処理装置(CPU)またはその他のメインプロセッサ)、メモリ(たとえば、1つまたは複数の揮発性または不揮発性ランダムアクセスメモリ(RAM)メモリデバイス、たとえば、ダイナミックRAM(DRAM)、モバイルまたは低電力ダブルデータレート同期DRAM(DDR SDRAM)など)、及びストレージデバイス(たとえば、不揮発性メモリ(NVM:non-volatile memory)デバイス、たとえば、フラッシュメモリ、読み取り専用メモリ(ROM)、SSD、MMC、またはその他のメモリカード構造もしくはアセンブリなど)に分解することができる。特定の例では、電子デバイスは、ユーザインターフェース(たとえば、ディスプレイ、タッチスクリーン、キーボード、1つまたは複数のボタンなど)、グラフィックス処理ユニット(GPU)、電力管理回路、ベースバンドプロセッサあるいは1つまたは複数の送受信機回路などを含むことができる。
図1は、通信インターフェースを介して通信するように構成されるホストデバイス105及びメモリデバイス110を含む環境100の一例を示す。ホストデバイス105またはメモリデバイス110を、たとえば、モノのインターネット(IoT)デバイス(たとえば、冷蔵庫またはその他の電化製品、センサ、モータまたはアクチュエータ、モバイル通信デバイス、自動車、ドローンなど)などの様々な製品150に含めて、製品150の処理、通信、または制御をサポートし得る。
メモリデバイス110は、メモリコントローラ115と、たとえば、いくつかの個々のメモリダイ(たとえば、3次元(3D)NANDダイのスタック)を含むメモリアレイ120とを含む。3Dアーキテクチャ半導体メモリ技術では、垂直構造が積み重ねられて、層の数、物理ページ、ひいてはメモリデバイス(たとえば、ストレージデバイス)の密度が増加する。一例では、メモリデバイス110は、ホストデバイス105の個別のメモリまたはストレージデバイスコンポーネントとすることができる。他の例では、メモリデバイス110は、ホストデバイス105の1つまたは複数の他のコンポーネントと積み重ねられるか、または他の方法で含められる、集積回路(たとえば、システムオンチップ(SOC)など)の一部とすることができる。
1つまたは複数の通信インターフェースを使用して、メモリデバイス110と、ホストデバイス105の1つまたは複数の他のコンポーネント、たとえば、シリアルアドバンストテクノロジーアタッチメント(SATA)インターフェース、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)インターフェース、ユニバーサルシリアルバス(USB)インターフェース、ユニバーサルフラッシュストレージ(UFS)インターフェース、eMMC(商標)インターフェース、あるいは1つまたは複数の他のコネクタまたはインターフェースとの間でデータを転送することができる。ホストデバイス105は、ホストシステム、電子デバイス、プロセッサ、メモリカードリーダ、あるいはメモリデバイス110の外部の1つまたは複数の他の電子デバイスを含むことができる。一部の例では、ホスト105は、図8のマシン800を参照して論じるコンポーネントの一部または全部を有するマシンであり得る。
メモリコントローラ115は、ホスト105から命令を受信することができ、メモリアレイと通信して、たとえば、メモリアレイのメモリセル、プレーン、サブブロック、ブロック、またはページのうちの1つまたは複数にデータを転送する(たとえば、書き込むまたは消去する)、またはそこからデータを転送する(たとえば、読み出す)ことができる。メモリコントローラ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つまたは複数のブロックについてのブロック経過時間(block age)、ブロック消去カウント、エラー履歴、あるいは1つまたは複数のエラーカウント(たとえば、書き込み動作エラーカウント、読み出しビットエラーカウント、読み出し動作エラーカウント、消去エラーカウントなど)に関する情報を含むことができる。特定の例では、エラーカウントのうちの1つまたは複数について検出されたエラーの数が閾値を上回る場合、ビットエラーは訂正不可能なビットエラーと呼ばれ得る。管理テーブル130はとりわけ、訂正可能または訂正不可能なビットエラーのカウントを保持することができる。
アレイコントローラ135はとりわけ、メモリコントローラ115に結合されたメモリデバイス110の1つまたは複数のメモリセルへのデータの書き込み、そこからのデータの読み出し、またはその消去に関連するメモリ動作を制御するように構成される回路構成またはコンポーネントを含むことができる。メモリ動作は、ホスト105から受信するか、またはメモリマネージャ125によって内部的に生成されるホストコマンドなど(たとえば、ウェアレベリング、エラー検出または訂正などに関連するもの)に基づくことができる。
アレイコントローラ135は、エラー訂正コード(ECC)コンポーネント140を含むことができ、これはとりわけ、メモリコントローラ115に結合されたメモリデバイス110の1つまたは複数のメモリセルに対するデータの読み書きに関連するエラーを検出または訂正するように構成されるECCエンジンまたは他の回路構成を含むことができる。メモリコントローラ115は、ホスト105とメモリデバイス110との間で転送されるデータの整合性を維持しながら、または(たとえば、冗長RAIDストレージなどを使用して)記憶されたデータの整合性を維持しながら、様々な動作またはデータの記憶に関連するエラー発生(たとえば、ビットエラー、動作エラーなど)を能動的に検出及び回復するように構成することができ、今後のエラーを防止するために障害のあるメモリリソース(たとえば、メモリセル、メモリアレイ、ページ、ブロックなど)を排除する(たとえば、リタイアさせる)ことができる。
メモリアレイ120は、たとえば、いくつかのデバイス、プレーン、サブブロック、ブロック、またはページに配置されたいくつかのメモリセルを含むことができる。一例として、48GBのTLCのNANDメモリデバイスは、ページあたり18,592バイト(B)(16,384+2208バイト)のデータ、ブロックあたり1536ページ、プレーンあたり548ブロック、及びデバイスあたり4つ以上のプレーンを含むことができる。他の例として、32GBのMLCメモリデバイス(セルあたり2ビットのデータ(すなわち、4つのプログラム可能な状態)を記憶するもの)は、ページあたり18,592バイト(B)(16,384+2208バイト)のデータ、ブロックあたり1024ページ、プレーンあたり548ブロック、及びデバイスあたり4プレーンを含むことができるが、対応するTLCメモリデバイスに対して、必要な書き込み時間が半分であり、プログラム/消去(P/E)サイクルが2倍である。他の例は、他の数または構成を含むことができる。一部の例では、メモリデバイスまたはその一部は、SLCモードまたは所望のMLCモード(たとえば、TLC、QLCなど)で選択的に動作させ得る。
動作において、データは典型的にはページ単位でNANDメモリデバイス110に対して読み書きされ、ブロック単位で消去される。しかしながら、1つまたは複数のメモリ動作(たとえば、読み出し、書き込み、消去など)は、所望に応じて、メモリセルのより大きいまたはより小さいグループに対して実行することができる。NANDメモリデバイス110のデータ転送サイズは、典型的にはページと呼ばれ、ホストのデータ転送サイズは、典型的にはセクタと呼ばれる。
1ページのデータは、あるバイト数のユーザデータ(たとえば、あるセクタ数のデータを含むデータペイロード)及びそれに対応するメタデータを含み得るが、ページのサイズは、ユーザデータの記憶に使用されるバイト数のみを指すことが多い。一例として、4KBのページサイズを有する1ページのデータは、4KBのユーザデータ(たとえば、512Bのセクタサイズを仮定すると8セクタ)、ならびにユーザデータに対応するあるバイト数(たとえば、32B、54B、224Bなど)のメタデータ、たとえば、整合性データ(たとえば、エラー検出または訂正コードデータ)、アドレスデータ(たとえば、論理アドレスデータなど)、またはユーザに関連するその他のメタデータを含み得る。
異なるタイプのメモリセルまたはメモリアレイ120は、異なるページサイズを提供することができ、またはそれに関連する異なる量のメタデータを必要とし得る。たとえば、メモリデバイスのタイプによってビットエラー率が異なり得、それによってデータのページの整合性を保証するのに必要なメタデータの量が異なり得る(たとえば、ビットエラー率が高いメモリデバイスでは、ビットエラー率が低いメモリデバイスよりも多くのバイト数のエラー訂正コードデータが必要になり得る)。一例として、マルチレベルセル(MLC)NANDフラッシュデバイスは、対応するシングルレベルセル(SLC)NANDフラッシュデバイスよりも高いビットエラー率を有し得る。したがって、MLCデバイスは、エラーデータに対して、対応するSLCデバイスよりも多くのメタデータバイトを必要とし得る。
図2に、ブロック(たとえば、ブロックA 201A、ブロックB 201Bなど)、及びサブブロック(たとえば、サブブロックA201A、サブブロックA201A、サブブロックB201B、サブブロックB201Bなど)に編成された、メモリセルのいくつかのストリング(たとえば、第1~第3のAメモリストリング205A~207A、第1~第3のAメモリストリング205A~207A、第1~第3のBメモリストリング205B~207B、第1~第3のBメモリストリング205B~207Bなど)を含む3D NANDアーキテクチャ半導体メモリアレイ200の例示的な概略図を示す。メモリアレイ200は、典型的にはメモリデバイスのブロック、デバイス、またはその他の単位に見られるであろう、より多くの類似した構造の一部を表す。
メモリセルの各ストリングは、ソース線(SRC)235またはソース側選択ゲート(SGS)(たとえば、第1~第3のASGS231A~233A、第1~第3のASGS231A~233A、第1~第3のBSGS231B~233B、第1~第3のBSGS231B~233Bなど)と、ドレイン側選択ゲート(SGD)(たとえば、第1~第3のASGD226A~228A、第1~第3のASGD226A~228A、第1~第3のBSGD226B~228B、第1~第3のBSGD226B~228Bなど)との間で、Z方向に、ソースからドレインに積み重ねられたいくつかの層の電荷蓄積トランジスタ(たとえば、フローティングゲートトランジスタ、チャージトラップ構造など)を含む。3Dメモリアレイ内のメモリセルの各ストリングは、X方向に沿ってデータ線(たとえば、ビット線(BL)BL0~BL2 220~222)として配置し、Y方向に沿って物理ページとして配置することができる。
物理ページ内では、各層はメモリセルの行を表し、メモリセルの各ストリングは列を表す。サブブロックは、1つまたは複数の物理ページを含むことができる。ブロックは、いくつか(たとえば、128個、256個、384個など)のサブブロック(すなわち、物理ページ)を含むことができる。本明細書では2つのブロックを有し、各ブロックは2つのサブブロックを有し、各サブブロックは単一の物理ページを有し、各物理ページはメモリセルの3つのストリングを有し、各ストリングはメモリセルの8つの層を有するものとして示しているが、他の例では、メモリアレイ200は、より多いまたはより少ないブロック、サブブロック、物理ページ、メモリセルのストリング、メモリセル、または層を含むことができる。たとえば、メモリセルの各ストリングは、所望に応じて、より多いまたはより少ない層(たとえば、16、32、64、128など)を含むことができるだけでなく、電荷蓄積トランジスタ(たとえば、選択ゲート、データ線など)の上または下に1つまたは複数の追加の半導体材料の層を含むことができる。一例として、48GBのTLCのNANDメモリデバイスは、ページあたり18,592バイト(B)(16,384+2208バイト)のデータ、ブロックあたり1536ページ、プレーンあたり548ブロック、及びデバイスあたり4つ以上のプレーンを含むことができる。
メモリアレイ200の各メモリセルは、アクセス線(たとえば、ワード線(WL)WL0~WL7210A~217A、WL0~WL7210B~217Bなど)に結合された(たとえば、電気的にまたは他の方法で動作可能に接続された)制御ゲート(CG)を含み、アクセス線は、所望に応じて、特定の層または層の一部にわたって制御ゲート(CG)をまとめて結合する。3Dメモリアレイ内の特定の層、ひいてはストリング内の特定のメモリセルには、それぞれのアクセス線を使用してアクセスまたは制御することができる。選択ゲートのグループには、様々な選択線を使用してアクセスすることができる。たとえば、第1~第3のASGD226A~228Aには、ASGD線SGDA225Aを使用してアクセスすることができ、第1~第3のASGD226A~228Aには、ASGD線SGDA225Aを使用してアクセスすることができ、第1~第3のBSGD226B~228Bには、BSGD線SGDB225Bを使用してアクセスすることができ、第1~第3のBSGD226B~228Bには、BSGD線SGDB225Bを使用してアクセスすることができる。第1~第3のASGS231A~233A及び第1~第3のASGS231A~233Aには、ゲート選択線SGS230Aを使用してアクセスすることができ、第1~第3のBSGS231B~233B及び第1~第3のBSGS231B~233Bには、ゲート選択線SGS230Bを使用してアクセスすることができる。
一例では、メモリアレイ200は、アレイのそれぞれの層の各メモリセルまたは選択ゲートの制御ゲート(CG)(あるいはCGまたは選択ゲートの一部)を結合するように構成されるいくつかのレベルの半導体材料(たとえば、ポリシリコンなど)を含むことができる。アレイ内のメモリセルの特定のストリングは、ビット線(BL)と選択ゲートとの組み合わせなどを使用して、アクセス、選択、または制御することができ、特定のストリング内の1つまたは複数の層にある特定のメモリセルは、1つまたは複数のアクセス線(たとえば、ワード線)を使用して、アクセス、選択、または制御することができる。
図3に、ストリング(たとえば、第1~第3のストリング305~307)及び層(たとえば、それぞれのワード線(WL)WL0~WL7 310~317、ドレイン側選択ゲート(SGD)線325、ソース側選択ゲート(SGS)線330などとして図示)の2次元アレイに配置された複数のメモリセル302と、センスアンプまたはデバイス360と、を含むNANDアーキテクチャ半導体メモリアレイ300の一部の例示的な概略図を示す。たとえば、メモリアレイ300は、図2に示すような3D NANDアーキテクチャ半導体メモリデバイスのメモリセルの1つの物理ページの一部の例示的な概略図を示し得る。
メモリセルの各ストリングは、それぞれのソース側選択ゲート(SGS)(たとえば、第1~第3のSGS331~333)を使用してソース線(SRC)に結合され、それぞれのドレイン側選択ゲート(SGD)(たとえば、第1~第3のSGD326~328)を使用してそれぞれのデータ線(たとえば、第1~第3のビット線(BL)BL0~BL2 320~322)に結合される。図3の例では、8つの層(たとえば、ワード線(WL)WL0~WL7 310~317を使用)及び3つのデータ線(BL0~BL2 326~328)を使用して示しているが、他の例は、所望に応じて、より多いまたはより少ない層またはデータ線を有するメモリセルのストリングを含むことができる。
例示的なメモリアレイ300などのNANDアーキテクチャ半導体メモリアレイでは、選択されたメモリセルを含む特定のデータ線に関連する電流または電圧の変化を検知することによって、選択されたメモリセル302の状態にアクセスすることができる。メモリアレイ300は、(たとえば、制御回路、1つまたは複数のプロセッサ、デジタル論理などによって)1つまたは複数のドライバを使用してアクセスすることができる。一例では、1つまたは複数のドライバは、特定のメモリセルまたはメモリセルのセットに対して実行したい動作のタイプに応じて、特定の電位を1つまたは複数のデータ線(たとえば、ビット線BL0~BL2)、アクセス線(たとえば、ワード線WL0~WL7)、あるいは選択ゲートに駆動することによって、特定のメモリセルまたはメモリセルのセットをアクティブ化することができる。
メモリセルをプログラムするか、またはそれにデータを書き込むために、プログラミング電圧(Vpgm)(たとえば、1つまたは複数のプログラミングパルスなど)を、選択されたワード線(たとえば、WL4)に、ひいては選択されたワード線に結合された各メモリセルの制御ゲート(たとえば、WL4に結合されたメモリセルの第1~第3の制御ゲート(CG)341~343)に印加することができる。プログラミングパルスは、たとえば、15Vまたはその付近で開始することができ、特定の例では、各プログラミングパルスの印加中に大きさを増加させることができる。プログラム電圧を選択されたワード線に印加しながら、接地電位(たとえば、Vss)などの電位をプログラミング対象メモリセルのデータ線(たとえば、ビット線)及び基板(ひいてはソース及びドレインの間のチャネル)に印加することによって、チャネルから対象メモリセルのフローティングゲートへの電荷転送(たとえば、直接注入またはファウラー・ノルドハイム(FN)トンネリングなど)を発生させることができる。
対照的に、プログラミング非対象メモリセルを有する1つまたは複数のワード線にパス電圧(Vpass)を印加することができ、またはプログラミング非対象メモリセルを有するデータ線(たとえば、ビット線)に禁止電圧(たとえば、Vcc)を印加して、たとえば、チャネルからそのような非対象メモリセルのフローティングゲートに電荷が転送されるのを禁止することができる。パス電圧は、たとえば、印加されるパス電圧の、プログラミング対象のワード線への近接度に応じて、可変にすることができる。禁止電圧は、接地電位(たとえば、Vss)に対する電源電圧(Vcc)、たとえば、外部電源または供給源(たとえば、バッテリー、AC/DCコンバータなど)からの電圧を含むことができる。
一例として、プログラミング電圧(たとえば、15V以上)がWL4などの特定のワード線に印加される場合、10Vのパス電圧をWL3、WL5などの他の1つまたは複数のワード線に印加して、非対象メモリセルのプログラミングを禁止するか、またはそのようなプログラミング非対象メモリセルに記憶された値を保持することができる。印加されるプログラム電圧と非対象メモリセルとの間の距離が増加するにつれて、非対象メモリセルをプログラミングしないようにするのに必要なパス電圧を減少させることができる。たとえば、15Vのプログラミング電圧がWL4に印加される場合、たとえば、10Vのパス電圧をWL3及びWL5に印加することができ、8Vのパス電圧をWL2及びWL6に印加することができ、7Vのパス電圧をWL1及びWL7に印加することができる。他の例では、パス電圧またはワード線の数などは、より高くもしくはより低く、またはより多くもしくはより少なくすることができる。
1つまたは複数のデータ線(たとえば、第1、第2、または第3のビット線(BL0~BL2)320~322)に結合されたセンスアンプ360は、特定のデータ線上の電圧または電流を検知することにより、それぞれのデータ線における各メモリセルの状態を検出することができる。
1つまたは複数のプログラミングパルス(たとえば、Vpgm)の印加の間に、検証動作を実行して、選択されたメモリセルが意図したプログラム状態に達したか否かを判定することができる。選択されたメモリセルが意図したプログラム状態に達した場合、それ以上のプログラムを禁止することができる。選択されたメモリセルが意図したプログラム状態に達していない場合、追加のプログラミングパルスを印加することができる。特定の数(たとえば、最大数)のプログラミングパルスの後に、選択されたメモリセルが意図したプログラム状態に達していない場合、選択されたメモリセル、またはそのような選択されたメモリセルに関連するストリング、ブロック、もしくはページに、欠陥があるものとしてマークを付けることができる。
メモリセルまたはメモリセルのグループを消去するために(たとえば、消去は典型的にはブロックまたはサブブロック単位で実行される)、対象メモリセルのワード線を接地電位(たとえば、Vss)などの電位に維持しながら、消去電圧(Vers)(たとえば、典型的にはVpgm)を消去対象メモリセルの基板(ひいてはソース及びドレインの間のチャネル)に印加することによって(たとえば、1つまたは複数のビット線、選択ゲートなどを使用)、対象メモリセルのフローティングゲートからチャネルへの電荷転送(たとえば、直接注入またはファウラー・ノルドハイム(FN)トンネリングなど)を発生させることができる。
図4に、複数のメモリセル404を有するメモリアレイ402と、メモリアレイ402との通信を提供するか、またはそれに対して1つまたは複数のメモリ動作を実行する1つまたは複数の回路またはコンポーネントと、を含むメモリデバイス400の例示的なブロック図を示す。メモリデバイス400は、行デコーダ412、列デコーダ414、センスアンプ420、ページバッファ422、セレクタ424、入出力(I/O)回路426、及びメモリ制御ユニット430を含むことができる。
メモリアレイ402のメモリセル404は、第1及び第2のブロック402A、402Bなどのブロックに配置することができる。各ブロックはサブブロックを含むことができる。たとえば、第1のブロック402Aは、第1及び第2のサブブロック402A、402Aを含むことができ、第2のブロック402Bは、第1及び第2のサブブロック402B、402Bを含むことができる。各サブブロックはいくつかの物理ページを含むことができ、各ページはいくつかのメモリセル404を含む。本明細書では2つのブロックを有し、各ブロックは2つのサブブロックを有し、各サブブロックはいくつかのメモリセル404を有するものとして示しているが、他の例では、メモリアレイ402は、より多いまたはより少ないブロック、サブブロック、メモリセルなどを含むことができる。他の例では、メモリセル404を、いくつかの行、列、ページ、サブブロック、ブロックなどに配置し、たとえば、アクセス線406、第1のデータ線410、あるいは1つまたは複数の選択ゲート、ソース線などを使用してアクセスすることができる。
メモリ制御ユニット430は、たとえば、所望の動作(たとえば、書き込み、読み出し、消去など)を示す1つまたは複数のクロック信号または制御信号を含む、制御線432で受け取られる1つまたは複数の信号または命令、あるいは1つまたは複数のアドレス線416で受け取られるアドレス信号(A0~AX)に従って、メモリデバイス400のメモリ動作を制御することができる。メモリデバイス400の外部の1つまたは複数のデバイスは、制御線432の制御信号、またはアドレス線416のアドレス信号の値を制御することができる。メモリデバイス400の外部のデバイスの例は、ホスト、メモリコントローラ、プロセッサ、あるいは図4に示していない1つまたは複数の回路またはコンポーネントを含むことができるが、これらに限定されない。
メモリデバイス400は、アクセス線406及び第1のデータ線410を使用して、メモリセル404のうちの1つまたは複数にデータを転送する(たとえば、書き込むまたは消去する)、またはそこからデータを転送する(たとえば、読み出す)ことができる。行デコーダ412及び列デコーダ414は、アドレス線416からアドレス信号(A0~AX)を受け取ってデコードすることができ、アクセスすべきメモリセル404を決定することができ、上述のように、アクセス線406(たとえば、複数のワード線(WL0~WLm)のうちの1つまたは複数)あるいは第1のデータ線410(たとえば、複数のビット線(BL0~BLn)のうちの1つまたは複数)のうちの1つまたは複数に信号を提供することができる。
メモリデバイス400は、第1のデータ線410を使用してメモリセル404のデータの値を特定する(たとえば、読み出す)か、またはそこに書き込まれるデータの値を決定するように構成されるセンスアンプ420などのセンス回路を含むことができる。たとえば、メモリセル404の選択されたストリングにおいて、センスアンプ420のうちの1つまたは複数は、メモリアレイ402内で選択されたストリングを介してデータ線410へ流れる読み出し電流に応答して、選択されたメモリセル404の論理レベルを読み出すことができる。
メモリデバイス400の外部の1つまたは複数のデバイスは、I/O線(DQ0~DQN)408、アドレス線416(A0~AX)、または制御線432を使用してメモリデバイス400と通信することができる。入出力(I/O)回路426は、たとえば、制御線432及びアドレス線416に従って、I/O線408を使用して、ページバッファ422またはメモリアレイ402の内外など、メモリデバイス400の内外にデータの値を転送することができる。ページバッファ422は、メモリデバイス400の外部の1つまたは複数のデバイスから受信したデータを、そのデータがメモリアレイ402の関連部分にプログラムされる前に記憶することができ、またはメモリアレイ402から読み出されたデータを、そのデータがメモリデバイス400の外部の1つまたは複数のデバイスに送信される前に記憶することができる。
列デコーダ414は、アドレス信号(A0~AX)を受け取って、1つまたは複数の列選択信号(CSEL1~CSELn)にデコードすることができる。セレクタ424(たとえば、選択回路)は、列選択信号(CSEL1~CSELn)を受け取り、メモリセル404から読み出されるかまたはそこにプログラムされるデータの値を表すページバッファ422内のデータを選択することができる。選択されたデータは、ページバッファ422とI/O回路426との間で第2のデータ線418を使用して転送することができる。
メモリ制御ユニット430は、外部電源または供給源(たとえば、内部または外部バッテリー、AC/DCコンバータなど)から、電源電圧(Vcc)434及び負電源(Vss)436(たとえば、接地電位)などの正及び負の電源信号を受け取ることができる。特定の例では、メモリ制御ユニット430は、正または負の電源信号を内部的に提供するためのレギュレータ428を含むことができる。
NANDデバイスが製造される場合、設計されたストレージのサイズに必要な数よりも多くの物理ブロックを備えて製造される。これらの余分なブロックはオーバープロビジョニングと呼ばれ、パフォーマンスの向上及びガベージコレクションに利用される。製造プロセスの仕組みにより、製造中に一部の物理ブロックに欠陥が生じ、このエラー率は変動する。広告されたストレージサイズと、必要なオーバープロビジョニングとの両方に十分なブロックを確保するために、NANDメーカーは、実際には、予想される欠陥を補償するために追加のブロックを含め得る。追加される付加的なブロックの数は、予想される製造欠陥率に基づき得る。ダイによっては、これらの余分なブロックに欠陥がなく、実際に使用できる場合がある。NANDデバイスの品質管理の一環として、ブロックは典型的にはテストされる。しかしながら、NANDの設計によって、これらのブロックは、必要数を超えているために使用されない場合がある。これらのNANDブロックは、無駄なメモリストレージスペースを表し得る。
前述のように、NANDに値が書き込まれる場合、書き込まれる値に数式が適用され、その式の結果が、その値に加えてNANDに記憶される。NANDから値が読み出された場合、読み出された値に数式が適用され、書き込み時にその値に式が適用されたときの記憶された結果と比較される。NANDから読み出された値を使用して計算された数式の結果が、NANDが最初に書き込まれたときに計算された記憶された結果と一致する場合、NANDから読み出された値は信頼できると考えられる。そうでない場合、メモリセルにはエラー(たとえば、読み出し妨害エラーなど)が生じている。
そのような技法は、エラー訂正コード(ECC)と呼ばれる。アルゴリズムの例は、ハミングコード、ボーズ・チョドーリ・オッケンジェム(BCH)コードなどを含む。ブロックの正しい記憶及び読み出しを判定することに加えて、ECCコードは、エラーが見つかった場合に訂正を行うことを可能にし得る。訂正され得るビットエラーの量は、ECCのタイプと、記憶されるECCビット数に依存する。たとえば、512バイトのデータあたり1ビットの訂正を行うには、24ECCビットが必要となる。より多くのビットが変更された場合、これらのエラーは訂正不可能になり得る。訂正不可能なECCエラーは、典型的には、製造上の欠陥または極端な動作条件のしるしである。
典型的には、訂正不可能なECCエラーを有するページに対処する方法は、それらを消去すること、後で試すことなどを含む。典型的には、NANDデバイスの寿命の初期に発生するECCエラーは、欠陥のあるブロックにより生じる。その後のエラーは、NANDの損耗または極端な動作温度に起因し得る。これらの方法は、ホストコマンドへのサービス提供に本来利用され得るクロックサイクルを消費するので、時間がかかる。モバイルNANDソリューションの場合、これは、これらのルーチンが生成する必要のある余分な電力によって悪化する。
一部の例で開示しているのは、余剰のオーバープロビジョニングを利用してECCエラーを処理するスマートなアルゴリズムを適用するNANDデバイス、ファームウェア、システム、方法、及びデバイスである。一部の例では、オーバープロビジョニングされたブロックの量が所定の閾値を上回る場合、第1のECCブロックエラー処理モードが実施され得、オーバープロビジョニングされたブロックが所定の閾値以下である場合、第2のECCブロックエラー処理モードが利用され得る。第1のエラー処理モードは、より頑強であり得る第2のエラー処理モードよりも単純かつ高速であり得る。一部の例では、第1の処理モードは、ECCチェックで不合格になったブロックを不合格にし、使用時に余剰のオーバープロビジョニングのブロックに置き換える。すなわち、このモードでは、ECCチェックで不合格になったブロックは使用されなくなり、スーパーブロックまたは他のNAND単位内で、オーバープロビジョニングされたブロックに置き換えられる。これは、効率的で電力を節約する、ECCエラーからの単純な回復手段として有益である。
典型的には、NANDの寿命にわたるECCエラーの数は、余分なオーバープロビジョニングされたブロックの数よりも少ないと予想される。そうではなく、不良ECCブロックの数が閾値を超える場合(たとえば、オーバープロビジョニングが閾値以下である場合)、第2のエラー処理のモードが利用され得、これは、NAND容量及びオーバープロビジョニングを維持するためにブロックの回復を試みるものである。たとえば、追加の有効性チェックがブロックに実行されている間、ブロックは一時的にリタイアされ得る。他の例では、ブロックは消去され、再書き込みされ得る。さらに他の例では、ブロックがECCチェックで不合格になった回数に応じて、ステップの組み合わせが行われ得、各ステップは次のステップよりも徐々に複雑になり得る。この方法は、NANDの容量を維持する必要がある場合にのみ、訂正不可能なECCを訂正する高度な方法の使用を許可する。
図5に、本開示の一部の例によるNANDを読み出す方法500のフローチャートを示す。動作510において、コントローラは、NANDから1単位のデータを読み出し得る。たとえば、ページ、ブロック、スーパーブロックなどである。これは、1つまたは複数の論理アドレスにあるデータに対するホストからのコマンドに応答し得る。これらの論理アドレスは、(たとえば、フラッシュ変換レイヤを介して)1つまたは複数の物理アドレス(たとえば、1つまたは複数のページ)に変換される。コントローラは、メモリセルに(たとえば、ページ、ブロックなどに)読み出し電圧を印加し、得られた電圧を測定して、メモリセルに記憶された値を特定し得る。動作515において、コントローラは、メモリセルから読み出された値に対してECCチェックを実行し得る。たとえば、データが最初に書き込まれたときに、データは、数学演算(たとえば、ハミングまたはBCH演算)がデータに実行されている場合があり、その結果は特定の場所に記憶されている場合がある。特定の場所が読み出され、読み出されたデータに適用された数式の結果と比較され得る。
ECCエラーがない場合、またはECCエラーが訂正可能である場合、動作525において、システムは読み出し動作を継続し得る。ECCエラーが訂正可能な場合、訂正が行われ得る。コントローラは、ホストに値を提供するために、出力メモリ位置に値をコピーし得る。訂正不可能なECCエラーがある場合、動作530においてチェックが行われて、オーバープロビジョニングされたブロックの数が閾値より多いか否かが判定される(換言すれば、利用可能なブロックの総数が閾値より多いか否かが判定され、ここで閾値は、所望の最小オーバープロビジョニングの量を含むように設定される)。利用可能なオーバープロビジョニングが閾値よりも多い場合、コントローラは動作540において第1のエラー処理方法を実行し、それ以外の場合、コントローラは動作535において第2のエラー処理モードを実行し得る。
図6に、本開示の一部の例による、第1のエラー処理モードの方法545のフローチャートを示す。動作615において、コントローラは、ブロックを不良としてマークし得る。すなわち、コントローラは、データ構造内のブロックにマークを付けて、ブロックに対してデータを読み書きしないように指示し得る。ブロックは永続的に使用不可なものとしてマークされ得る。動作620において、コントローラは、ブロックをオーバープロビジョニングされたブロックに置き換え得る。たとえば、オーバープロビジョニングされたブロックは、NANDの寿命の間、スーパーブロックなどにおいて不良ブロック(ECCチェックで不合格になったブロック)の代わりになり得る。動作625において、コントローラは、オーバープロビジョニングされたカウントをデクリメントして、オーバープロビジョニングされたブロックがまた1つ失われたことを示し得る。
第2のエラー処理モード(たとえば、動作535)の例は、リタイアメントポリシーを含み得る。たとえば、第2のエラー処理モードは、ブロックが遭遇したエラーの数を示すカウンタを有し得る。エラーの数が決定された閾値を上回ると、ブロック内のデータが他のメモリブロックにコピーされ得(データが訂正できると仮定)、メモリブロックが一時的にサービスから排除され得る。そして、メモリブロックは、プログラムされて連続して数回読み出され、読み出された値がプログラムされた値と一致する回数を求めることによって、テストされ得る。読み出された値がプログラムされた値と閾値回数だけ一致する場合、ブロックはサービスに戻され得る。そうでない場合、ブロックは永久にリタイアされ得る。他の例示的な第2のエラー処理モードは、データを回復するために、第1のメモリブロックの1つまたは複数のメモリセルの読み出し電圧(たとえば、制御ゲート(CG)電圧)を変えること、読み出し動作を複数回再試行することなどを含み得る。
図7に、本開示の一部の例によるメモリコントローラ715を示す。メモリコントローラ715は、図1のメモリコントローラ115の1つの例示的な実施態様であり得る。メモリマネージャ725はメモリマネージャ125の一例であり得、テーブル730はテーブル130の一例であり得、コントローラ735はコントローラ135の一例であり得、ECC740はECC140の一例であり得る。ECC740は、読み出されたブロックに対してECCチェックを実行し得、ブロックがECCチェックで不合格になった場合を特定し得る。たとえば、読み出されたデータのパリティがNANDに記憶されたパリティデータと一致しない場合である。ECCは訂正可能なECCエラーを訂正し、訂正不可能なECCエラーに対処し得る。ECC740は、利用可能なオーバープロビジョニングされたブロックの数を特定し得、閾値に応じて、訂正不可能なECCエラーが生じているメモリセル(たとえば、ブロック)に対して第1または第2のECC障害処理モードを実施し得る。利用可能なオーバープロビジョニングされたブロックの数が閾値よりも多い場合、第1のECC障害処理モードを利用し得、それによって障害のあるブロックを不良なものとしてマークし、ブロックの使用が永久に中止される。オーバープロビジョニング空間内のブロックは、ECCチェックで不合格になったブロックの代わりに使用され得る。上記のように、利用可能なオーバープロビジョニングされたブロックの数がブロックの閾値数より少ない場合、第2のECC障害処理モードが利用され得る。一部の例では、第2の処理モードは、テストまたは他の方法により、ブロックが本当に不良である場合、またはある一時的な条件(たとえば、温度)の結果としてブロックがECCチェックで不合格になった場合を区別することによって、ブロックの再利用を試みる。
図8に、本明細書で論じた技法(たとえば、方法論)のいずれか1つまたは複数が実行され得る例示的なマシン800のブロック図を示す。代替の実施形態では、マシン800は、スタンドアロンデバイスとして動作し得、または他のマシンに接続され得る(たとえば、ネットワーク接続され得る)。ネットワーク接続された配備では、マシン800は、サーバ-クライアントネットワーク環境において、サーバマシン、クライアントマシン、またはその両方として動作し得る。一例では、マシン800は、ピアツーピア(P2P)(または他の分散)ネットワーク環境において、ピアマシンとして機能し得る。マシン800は、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA)、携帯電話、Webアプライアンス、IoTデバイス、自動車システム、またはそのマシンが取る行動を指定する(順次またはその他の)命令を実行可能な任意のマシンであり得る。さらに、単一のマシンのみを例示しているが、「マシン」という用語は、クラウドコンピューティング、サービスとしてのソフトウェア(SaaS)、その他のコンピュータクラスタ構成など、本明細書で論じた方法論のうちの1つまたは複数を実施する命令のセット(または複数のセット)を個別または共同で実行する任意のマシンの集合体も含むように解釈されるものとする。
本明細書に記載の例は、ロジック、コンポーネント、デバイス、パッケージ、またはメカニズムを含み得、またはそれらによって動作し得る。回路構成(circuitry)は、(たとえば、単純な回路、ゲート、ロジックなどの)ハードウェアを含む有形のエンティティで実装される回路の集合体(たとえば、セット)である。回路構成のメンバーシップは、時間経過と共に、また、基盤となるハードウェアの変化に関して柔軟であり得る。回路構成は、動作時に特定のタスクを単独または共同で実行し得るメンバーを含む。一例では、回路構成のハードウェアは、特定の動作を実行するように不変に(たとえば、ハードワイヤードで)設計され得る。一例では、回路構成のハードウェアは、特定の動作の命令をエンコードするように物理的に(たとえば、磁気的に、電気的に、不変質量粒子の可動配置などにより)変更されたコンピュータ可読媒体を含む、可変に接続された物理コンポーネント(たとえば、実行ユニット、トランジスタ、単純な回路など)を含み得る。物理コンポーネントを接続する際に、ハードウェア構成要素の基本的な電気的特性が、たとえば、絶縁体から導体に、またはその逆に変更される。命令により、関与するハードウェア(たとえば、実行ユニットまたはローディング機構)は、可変接続を介してハードウェアで回路構成のメンバーを作成して、動作時に特定のタスクの一部を実行させることが可能になる。それに応じて、コンピュータ可読媒体は、デバイスが動作しているときに、回路構成の他のコンポーネントに通信可能に結合される。一例では、任意の物理的コンポーネントは、2つ以上の回路構成の2つ以上のメンバーで使用され得る。たとえば、動作中、実行ユニットは、ある時点で第1の回路構成の第1の回路で使用され、異なる時間に第1の回路構成の第2の回路によって、または第2の回路構成の第3の回路によって再利用され得る。
マシン(たとえば、コンピュータシステム)800(たとえば、ホストデバイス105、メモリデバイス110など)は、ハードウェアプロセッサ802(たとえば、中央処理装置(CPU)、グラフィックス処理ユニット(GPU)、ハードウェアプロセッサコア、またはそれらの任意の組み合わせ、たとえば、メモリコントローラ115など)、メインメモリ804及びスタティックメモリ806、を含み得、それらの一部または全部は、インターリンク(たとえば、バス)808を介して互いに通信し得る。マシン800は、ディスプレイユニット810、英数字入力デバイス812(たとえば、キーボード)、及びユーザインターフェース(UI)ナビゲーションデバイス814(たとえば、マウス)をさらに含み得る。一例では、ディスプレイユニット810、入力デバイス812、及びUIナビゲーションデバイス814は、タッチスクリーンディスプレイであり得る。マシン800は、ストレージデバイス(たとえば、ドライブユニット)816、信号生成装置818(たとえば、スピーカー)、ネットワークインターフェースデバイス820、及び1つまたは複数のセンサ816、たとえば、全地球測位システム(GPS)センサ、コンパス、加速度計、またはその他のセンサをさらに含み得る。マシン800は、1つまたは複数の周辺デバイス(たとえば、プリンタ、カードリーダなど)と通信するかまたはこれらを制御するための出力コントローラ828、たとえば、シリアル接続(たとえば、ユニバーサルシリアルバス(USB))、パラレル接続、あるいは他の有線または無線接続(たとえば、赤外線(IR)、近距離無線通信(NFC)など)を含み得る。
ストレージデバイス816は、本明細書に記載の技法または機能のいずれか1つまたは複数を具現化するかまたはこれらによって利用されるデータ構造または命令824の1つまたは複数のセット(たとえば、ソフトウェア)が記憶されるマシン可読媒体822を含み得る。命令824はまた、マシン800によるその実行中に、メインメモリ804、スタティックメモリ806、またはハードウェアプロセッサ802内に、完全にまたは少なくとも部分的に存在し得る。一例では、ハードウェアプロセッサ802、メインメモリ804、スタティックメモリ806、またはストレージデバイス816のうちの1つまたは任意の組み合わせがマシン可読媒体822を構成し得る。
マシン可読媒体822は単一の媒体として示しているが、「マシン可読媒体」という用語は、1つまたは複数の命令824を記憶するように構成される単一の媒体または複数の媒体(たとえば、集中型または分散型データベース、あるいは関連付けられたキャッシュ及びサーバ)を含み得る。
「マシン可読媒体」という用語は、マシン800が実行するための命令であって、マシン800に本開示の技法のうちのいずれか1つまたは複数を実行させる命令を記憶する、エンコードする、または運ぶことが可能な任意の媒体、またはそのような命令によって使用されるかまたはそれに関連するデータ構造を記憶する、エンコードする、または運ぶことが可能な任意の媒体を含み得る。非限定的なマシン可読媒体の例は、固体メモリ、ならびに光学媒体及び磁気媒体を含み得る。一例では、大容量(massed)のマシン可読媒体は、不変(たとえば、静止)質量を有する複数の粒子を備えたマシン可読媒体を含む。したがって、大容量のマシン可読媒体は一時的な伝播信号ではない。大容量のマシン可読媒体の具体例は、不揮発性メモリ、たとえば、半導体メモリデバイス(たとえば、電気的プログラム可能読み取り専用メモリ(EPROM)、電気的消去可能プログラム可能読み取り専用メモリ(EEPROM))及びフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスク及びリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスク及びDVD-ROMディスクを含み得る。
命令824(たとえば、ソフトウェア、プログラム、オペレーティングシステム(OS)など)またはその他のデータは、ストレージデバイス821に記憶され、メモリ804がアクセスして、プロセッサ802が使用することができる。メモリ804(たとえば、DRAM)は、典型的には高速であるが揮発性であるので、「オフ」状態中を含む長期保存に適しているストレージデバイス821(たとえば、SSD)とは異なるタイプのストレージである。ユーザもしくはマシン800が使用中の命令824またはデータは、典型的にはメモリ804にロードされて、プロセッサ802により使用される。メモリ804が満杯になった場合、ストレージデバイス821の仮想スペースを割り当てて、メモリ804を補うことができるが、ストレージデバイス821は典型的にはメモリ804よりも低速であり、書き込み速度は典型的には読み出し速度の少なくとも2倍遅いので、仮想メモリを使用すると、(DRAMなどのメモリ804と対比して)ストレージデバイスの待ち時間によってユーザエクスペリエンスが大幅に低下し得る。さらに、仮想メモリにストレージデバイス821を使用すると、ストレージデバイス821の使用可能な寿命が大幅に短縮され得る。
仮想メモリとは対照的に、仮想メモリ圧縮(たとえば、Linux(登録商標)カーネル機能「ZRAM」)は、メモリの一部を圧縮ブロックストレージとして使用して、ストレージデバイス821へのページングを回避する。そのようなデータをストレージデバイス821に書き込むことが必要になるまで、ページングは圧縮ブロックへ行われる。仮想メモリ圧縮は、メモリ804の使用可能なサイズを増加させつつ、ストレージデバイス821の損耗を低減する。
モバイル電子デバイス用に最適化されたストレージデバイス、すなわち、モバイルストレージは従来、MMCソリッドステートストレージデバイス(たとえば、マイクロセキュアデジタル(microSD(商標))カードなど)を含む。MMCデバイスは、ホストデバイスとのいくつかのパラレルインターフェース(たとえば、8ビットパラレルインターフェース)を含み、ホストデバイスから取り外し可能な別個のコンポーネントであることが多い。対照的に、eMMC(商標)デバイスは回路基板に取り付けられ、シリアルATA(商標)(シリアルAT(アドバンストテクノロジー)アタッチメント、またはSATA)ベースのSSDデバイスに匹敵する読み出し速度を有するホストデバイスのコンポーネントと見なされる。しかしながら、仮想または拡張現実デバイスを完全に実現する、上昇しているネットワーク速度を利用する、などのために、モバイルデバイスの性能に対する需要は高まり続けている。この需要に応えて、ストレージデバイスはパラレル通信インターフェースからシリアル通信インターフェースに移行している。コントローラ及びファームウェアを含むユニバーサルフラッシュストレージ(UFS)デバイスは、より高い読み出し/書き込み速度をさらに前進させる専用の読み出し/書き込み経路を有する低電圧差動信号(LVDS)シリアルインターフェースを使用してホストデバイスと通信する。
命令824はさらに、いくつかの転送プロトコル(たとえば、フレームリレー、インターネットプロトコル(IP)、伝送制御プロトコル(TCP)、ユーザデータグラムプロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)など)のいずれか1つを利用して、ネットワークインターフェースデバイス820を介して、伝送媒体を使用して、通信ネットワーク826を介して送信または受信され得る。例示的な通信ネットワークは、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、パケットデータネットワーク(たとえば、インターネット)、携帯電話ネットワーク(たとえば、セルラーネットワーク)、旧来電話(POTS)ネットワーク、及び無線データネットワーク(たとえば、Wi-Fi(登録商標)として知られている電気電子技術者協会(IEEE)802.11規格ファミリ、WiMax(登録商標)として知られているIEEE802.16規格ファミリ)、IEEE802.15.4規格ファミリ、ピアツーピア(P2P)ネットワークをとりわけ含み得る。一例では、ネットワークインターフェースデバイス820は、通信ネットワーク826に接続するための1つまたは複数の物理ジャック(たとえば、イーサネット、同軸、または電話ジャック)あるいは1つまたは複数のアンテナを含み得る。一例では、ネットワークインターフェースデバイス820は、単一入力複数出力(SIMO)技法、複数入力複数出力(MIMO)技法、または複数入力単一出力(MISO)技法のうちの少なくとも1つを使用して無線通信するための複数のアンテナを含み得る。「伝送媒体」という用語は、マシン800が実行するための命令を記憶する、エンコードする、または運ぶことが可能な任意の無形媒体を含み、そのようなソフトウェアの通信を容易にするためのデジタルもしくはアナログの通信信号またはその他の無形媒体を含むように解釈されるものとする。
上記の詳細な説明は添付図面への参照を含み、添付図面は詳細な説明の一部を形成する。図面は、例示として、本発明を実施できる特定の実施形態を示している。これらの実施形態は、本明細書では「実施例」とも呼ばれる。そのような実施例は、図示または説明した要素以外の要素を含むことができる。しかしながら、本発明者らは、図示または説明した要素のみが設けられている実施例も企図している。さらに、本発明者らは、特定の実施例(あるいはその1つまたは複数の態様)に関して、または本明細書で図示または説明した他の実施例(あるいはそれらの1つまたは複数の態様)に関して図示または説明した要素の任意の組み合わせまたは順列を使用する実施例(あるいはそれらの1つまたは複数の態様)も企図している。
本文書では、「a」または「an」という語は、特許文書で一般的であるように、「少なくとも1つ」あるいは「1つまたは複数」の他のいかなる実例にも用法にも関係なく、1つまたは2つ以上を含むように使用している。本文書では、「または」という用語は、特記のない限り、「AまたはB」が、「AであるがBでない」、「BであるがAでない」、及び「AかつB」を含み得るように、非排他的な「または」を指すために使用している。添付の特許請求の範囲において、「含む(including)」及び「in which」という用語は、「備える(comprising)」及び「wherein」というそれぞれの用語の平易な英語の同義語として使用している。また、以下の特許請求の範囲では、「含む」及び「備える」という用語はオープンエンドであり、すなわち、請求項内でそのような用語の後にリストされている要素に加えて要素を含むシステム、デバイス、物品、またはプロセスは、依然としてその請求項の範囲内にあると見なされる。さらに、以下の特許請求の範囲では、「第1」、「第2」、及び「第3」などの用語は、単にラベルとして使用しており、それらのオブジェクトに数値要件を課すことを意図していない。
様々な実施例では、本明細書に記載のコンポーネント、コントローラ、プロセッサ、ユニット、エンジン、またはテーブルはとりわけ、物理デバイスに記憶された物理的な回路構成またはファームウェアを含むことができる。本明細書で使用する場合、「プロセッサ」とは任意のタイプの計算回路を意味し、たとえば、マイクロプロセッサ、マイクロコントローラ、グラフィックスプロセッサ、デジタルシグナルプロセッサ(DSP)、あるいはプロセッサのグループまたはマルチコアデバイスを含む他の任意のタイプのプロセッサまたは処理回路であるがこれらに限定されない。
本文書で使用する「水平」という用語は、任意の時点での基板の実際の向きに関係なく、たとえば、ウエハまたはダイの下などの、基板の通常の平面または表面に平行な平面と定義する。「垂直」という用語は、上記で定義した水平に対して垂直な方向を指す。「上(on)」、「上方(over)」、「下方(under)」などの前置詞は、基板の向きに関係なく、基板の上面または露出面上にある通常の平面または表面に対して定義され、「上」は、ある構造が、それが「上」に載っている他の構造に対して直接接触していることを示唆するものとし(そうでないという明示がない場合)、「上方」及び「下方」という用語は、特にそのように明記していない限り、特定された構造間の直接接触を明示的に含むがこれに限定されない、構造(またはレイヤ、特徴など)の相対的な配置を識別することを明確に意図している。同様に、「上方」及び「下方」という用語は、水平方向に限定されず、その理由は、ある構造が、ある時点で議論中の構造物の最外部である場合に、そのような構造が基準構造に対して水平方向ではなく垂直方向に延伸している場合でも、基準構造の「上方」になり得るためである。
「ウエハ」及び「基板」という用語は、本明細書では、集積回路が上に形成される任意の構造を一般的に指し、さらには集積回路の製造の様々な段階におけるそのような構造を指すために使用する。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではなく、様々な実施形態の範囲は、添付の特許請求の範囲、ならびにそのような特許請求の範囲に権利が与えられる均等物の全範囲によってのみ定義される。
本開示による、本明細書に記載の様々な実施形態は、垂直構造のメモリセル(たとえば、メモリセルのNANDストリング)を利用するメモリを含む。本明細書で使用する場合、方向の形容詞は、メモリセルが上に形成される基板の表面に対して相対的なものと解釈される(すなわち、垂直構造は、基板表面から離れて延伸するものと解釈され、垂直構造の下端は、基板表面に最も近い端と解釈され、垂直構造の上端は、基板表面から最も遠い端と解釈される)。
本明細書で使用する場合、水平、垂直、法線、平行、垂直などの方向の形容詞は、相対的な向きを指す場合があり、特に明記しない限り、特定の幾何学的特性の厳守を必要とするものではない。たとえば、本明細書で使用する場合、垂直構造は、基板の表面に対して厳密に垂直である必要はなく、代わりに基板の表面に対して概ね垂直であり得、基板の表面と鋭角(たとえば、60~120度など)を成し得る。
本明細書に記載のいくつかの実施形態では、異なるドーピング構成がソース側選択ゲート(SGS)、制御ゲート(CG)、及びドレイン側選択ゲート(SGD)に適用され得、それぞれ、この例では、ポリシリコンで形成されるか、または少なくともポリシリコンを含み得、その結果、これらの層(たとえば、ポリシリコンなど)は、エッチング液にさらされた場合に異なるエッチング速度を有し得る。たとえば、3D半導体デバイスにおいてモノリシックピラーを形成するプロセスでは、SGS及びCGは凹部を形成し得、SGDはあまり凹んでいないままであり得、さらには全く凹んでいない場合がある。このようにして、これらのドーピング構成は、エッチング液(たとえば、水酸化テトラメチルアンモニウム(TMCH))を使用することにより、3D半導体デバイス内の別個の層(たとえば、SGS、CG、及びSGD)への選択的なエッチングを可能にし得る。
本明細書で使用するメモリセルの動作は、メモリセルに対する読み出し、書き込み、または消去を含む。メモリセルを意図した状態にする動作は、本明細書では「プログラミング」と呼び、メモリセルに対する書き込みまたは消去の両方を含むことができる(たとえば、メモリセルは消去状態にプログラムされ得る)。
本開示の1つまたは複数の実施形態によれば、メモリデバイスの内部または外部に配置されたメモリコントローラ(たとえば、プロセッサ、コントローラ、ファームウェアなど)は、損耗サイクルの量または損耗状態を決定(たとえば、選択、設定、調整、計算、変更、クリア、通信、適応、導出、定義、利用、修正、適用など)することができる(たとえば、損耗サイクルを記録する、メモリデバイスの動作を発生時にカウントする、メモリデバイスの開始した動作を追跡する、損耗状態に対応するメモリデバイス特性を評価する、など)。
本開示の1つまたは複数の実施形態によれば、メモリアクセスデバイスは、各メモリ動作によって損耗サイクル情報をメモリデバイスに提供するように構成され得る。メモリデバイス制御回路(たとえば、制御ロジック)は、損耗サイクル情報に対応するメモリデバイス性能の変化を補償するようにプログラムされ得る。メモリデバイスは、損耗サイクル情報を受け取り、損耗サイクル情報に応じて1つまたは複数の動作パラメータ(たとえば、値、特性)を決定し得る。
ある要素が他の要素の「上」にあるか、それに「接続」されているか、または「結合」されていると称される場合、他の要素の直接上にあるか、それに接続されているか、または結合されている場合があり、あるいは介在する要素が存在し得る。対照的に、ある要素が他の要素の「直接上」にあるか、「直接接続」されているか、または「直接結合」されていると称される場合、介在する要素またはレイヤは存在しない。2つの要素を、それらを接続する線と共に図示している場合、2つの要素は、特記のない限り、結合するかまたは直接結合することができる。
本明細書に記載の方法の例は、少なくとも部分的にマシンまたはコンピュータで実装することができる。一部の例は、上記の例で説明した方法を実施するように電子デバイスを構成するよう動作可能な命令によってエンコードされたコンピュータ可読媒体またはマシン可読媒体を含むことができる。そのような方法の一実施態様は、マイクロコード、アセンブリ言語コード、高水準言語コードなどのコードを含むことができる。そのようなコードは、様々な方法を実施するためのコンピュータ可読命令を含むことができる。コードは、コンピュータプログラム製品の各部を形成し得る。さらに、コードは、たとえば実行中またはその他の時間に、1つまたは複数の揮発性または不揮発性の有形コンピュータ可読媒体上に有形に記憶することができる。これらの有形コンピュータ可読媒体の例は、ハードディスク、取り外し可能磁気ディスク、取り外し可能光ディスク(たとえば、コンパクトディスク及びデジタルビデオディスク)、磁気カセット、メモリカードもしくはスティック、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、ソリッドステートドライブ(SSD)、ユニバーサルフラッシュストレージ(UFS)デバイス、組み込みMMC(eMMC)デバイスなどを含むことができるが、これらに限定されない。
上記の説明は限定的ではなく例示的なものとする。たとえば、上述の実施例(あるいはそれらの1つまたは複数の態様)は、互いに組み合わせて使用され得る。たとえば、当業者は、上記の説明を検討すると、他の実施形態を使用することができる。上記の説明は、特許請求の範囲またはその意味を解釈または制限するために使用されないという理解の下で、提出している。また、上記の詳細な説明では、本開示を簡素化するために、様々な特徴がグループ化され得る。これは、特許請求していない開示した特徴が任意の請求項に不可欠であることを意図するものとして解釈されるべきではない。むしろ、発明の主題は、特定の開示した実施形態の全てより少ない特徴にあり得る。したがって、以下の特許請求の範囲は、本明細書の詳細な説明に組み込まれ、各請求項は別個の実施形態として独立し、そのような実施形態は、様々な組み合わせまたは順列で互いに組み合わせられると考えられる。本発明の範囲は、特許請求の範囲、ならびにそのような特許請求の範囲に権利が与えられる均等物の全範囲を参照して決定されるべきである。
その他の注記及び例
例1は、NANDメモリセルのアレイと、動作を実行するように構成されるコントローラと、を備え、前記動作は、前記NANDメモリセルのアレイから値を読み出すことと、前記値に対してエラー訂正コード(ECC)チェックを実行することと、前記ECCチェックが失敗したと判定することと、前記アレイ内のオーバープロビジョニングされたブロックの残数の値を、決定された閾値と比較することと、前記比較に基づいて、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値より多い場合は第1のエラー処理モードを実行し、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値以下の場合は第2のエラー処理モードを実行することと、を含む、NANDメモリデバイスである。
例2では、例1の主題は、任意選択により、前記第1のエラー処理モードを実行する前記動作は、前記値が記憶された前記NANDメモリセル内の第1のブロックを不良としてマークすることと、前記第1のブロックを前記アレイ内の第2のブロックに置き換えることであって、前記第2のブロックは、オーバープロビジョニングとして指定されたブロックのプールの一部のブロックである、前記置き換えることと、前記オーバープロビジョニングされたブロックの残数の前記値をデクリメントすることと、を含む、ことを含む。
例3では、例2の主題は、任意選択により、前記決定された閾値は、前記NANDメモリデバイスの記憶容量が与えられた場合に、所望のオーバープロビジョニングされたブロックの数になるように製造中に設定される、ことを含む。
例4では、例2~3のいずれか1つまたは複数の主題は、任意選択により、前記第1のブロックは、前記NANDのスーパーブロック内で前記第2のブロックに置き換えられる、ことを含む。
例5では、例1~4のいずれか1つまたは複数の主題は、任意選択により、前記第2のエラー処理モードを実行する前記動作は、前記値が記憶された前記NANDメモリセル内のブロックの障害カウンタをインクリメントすることと、前記ブロックの前記障害カウンタが閾値を超えていると判定することと、前記障害カウンタが前記閾値を超えていると判定したことに応答して、前記ブロックをテストすることと、テストが成功した場合に、前記ブロックをサービスに戻すことと、を含む、ことを含む。
例6では、例1~5のいずれか1つまたは複数の主題は、任意選択により、前記決定された閾値は、前記NANDデバイスのサイズに基づいて計算される、ことを含む。
例7では、例1~6のいずれか1つまたは複数の主題は、任意選択により、前記値に対して前記エラー訂正コード(ECC)チェックを実行する前記動作は、前記値に対する数学演算の出力を記憶された値と比較すること、を含み、前記ECCチェックが失敗したと判定する前記動作は、前記値に対する前記数学演算の前記出力が前記記憶された値と一致しないと判定することを含む、ことを含む。
例8では、例1~7のいずれか1つまたは複数の主題は、任意選択により、前記NANDメモリデバイスは、3次元NANDメモリデバイスである、ことを含む。
例9は、マシンによって実行された場合に、前記マシンに動作を実行させる命令を含むマシン可読媒体であって、前記命令は、NANDメモリセルのアレイから値を読み出すことと、前記値に対してエラー訂正コード(ECC)チェックを実行することと、前記ECCチェックが失敗したと判定することと、前記アレイ内のオーバープロビジョニングされたブロックの残数の値を、決定された閾値と比較することと、前記比較に基づいて、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値より多い場合は第1のエラー処理モードを実行し、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値以下の場合は第2のエラー処理モードを実行することと、を含む、前記マシン可読媒体である。
例10では、例9の主題は、任意選択により、前記第1のエラー処理モードを実行する前記動作は、前記値が記憶された前記NANDメモリセル内の第1のブロックを不良としてマークすることと、前記第1のブロックを前記アレイ内の第2のブロックに置き換えることであって、前記第2のブロックは、オーバープロビジョニングとして指定されたブロックのプールの一部のブロックである、前記置き換えることと、前記オーバープロビジョニングされたブロックの残数の前記値をデクリメントすることと、を含む、ことを含む。
例11では、例10の主題は、任意選択により、前記決定された閾値は、前記NANDメモリデバイスの記憶容量が与えられた場合に、所望のオーバープロビジョニングされたブロックの数になるように製造中に設定される、ことを含む。
例12では、例10~11のいずれか1つまたは複数の主題は、任意選択により、前記第1のブロックは、前記NANDのスーパーブロック内で前記第2のブロックに置き換えられる、ことを含む。
例13では、例9~12のいずれか1つまたは複数の主題は、任意選択により、前記第2のエラー処理モードを実行する前記動作は、前記値が記憶された前記NANDメモリセル内のブロックの障害カウンタをインクリメントすることと、前記ブロックの前記障害カウンタが閾値を超えていると判定することと、前記障害カウンタが前記閾値を超えていると判定したことに応答して、前記ブロックをテストすることと、テストが成功した場合に、前記ブロックをサービスに戻すことと、を含む、ことを含む。
例14では、例9~13のいずれか1つまたは複数の主題は、任意選択により、前記決定された閾値は、前記NANDデバイスのサイズに基づいて計算される、ことを含む。
例15では、例9~14のいずれか1つまたは複数の主題は、任意選択により、前記値に対して前記エラー訂正コード(ECC)チェックを実行する前記動作は、前記値に対する数学演算の出力を記憶された値と比較すること、を含み、前記ECCチェックが失敗したと判定する前記動作は、前記値に対する前記数学演算の前記出力が前記記憶された値と一致しないと判定することを含む、ことを含む。
例16では、例9~15のいずれか1つまたは複数の主題は、任意選択により、前記NANDメモリデバイスは、3次元NANDメモリデバイスである、ことを含む。
例17は、NANDメモリセルのアレイから値を読み出すことと、前記値に対してエラー訂正コード(ECC)チェックを実行することと、前記ECCチェックが失敗したと判定することと、前記アレイ内のオーバープロビジョニングされたブロックの残数の値を、決定された閾値と比較することと、前記比較に基づいて、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値より多い場合は第1のエラー処理モードを実行し、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値以下の場合は第2のエラー処理モードを実行することと、を含む、NANDメモリ管理方法である。
例18では、例17の主題は、任意選択により、前記第1のエラー処理モードを実行する前記動作は、前記値が記憶された前記NANDメモリセル内の第1のブロックを不良としてマークすることと、前記第1のブロックを前記アレイ内の第2のブロックに置き換えることであって、前記第2のブロックは、オーバープロビジョニングとして指定されたブロックのプールの一部のブロックである、前記置き換えることと、前記オーバープロビジョニングされたブロックの残数の前記値をデクリメントすることと、を含む、ことを含む。
例19では、例18の主題は、任意選択により、前記決定された閾値は、前記NANDメモリデバイスの記憶容量が与えられた場合に、所望のオーバープロビジョニングされたブロックの数になるように製造中に設定される、ことを含む。
例20では、例18~19のいずれか1つまたは複数の主題は、任意選択により、前記第1のブロックは、前記NANDのスーパーブロック内で前記第2のブロックに置き換えられる、ことを含む。
例21では、例17~20のいずれか1つまたは複数の主題は、任意選択により、前記第2のエラー処理モードを実行する前記動作は、前記値が記憶された前記NANDメモリセル内のブロックの障害カウンタをインクリメントすることと、前記ブロックの前記障害カウンタが閾値を超えていると判定することと、前記障害カウンタが前記閾値を超えていると判定したことに応答して、前記ブロックをテストすることと、テストが成功した場合に、前記ブロックをサービスに戻すことと、を含む、ことを含む。
例22では、例17~21のいずれか1つまたは複数の主題は、任意選択により、前記決定された閾値は、前記NANDデバイスのサイズに基づいて計算される、ことを含む。
例23では、例17~22のいずれか1つまたは複数の主題は、任意選択により、前記値に対して前記エラー訂正コード(ECC)チェックを実行する前記動作は、前記値に対する数学演算の出力を記憶された値と比較すること、を含み、前記ECCチェックが失敗したと判定する前記動作は、前記値に対する前記数学演算の前記出力が前記記憶された値と一致しないと判定することを含む、ことを含む。
例24では、例17~23のいずれか1つまたは複数の主題は、任意選択により、前記NANDメモリデバイスは、3次元NANDメモリデバイスである、ことを含む。
例25は、NANDメモリセルのアレイと、NANDメモリセルのアレイから値を読み出すための手段と、前記値に対してエラー訂正コード(ECC)チェックを実行するための手段と、前記ECCチェックが失敗したと判定するための手段と、前記アレイ内のオーバープロビジョニングされたブロックの残数の値を、決定された閾値と比較するための手段と、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値より多い場合は第1のエラー処理モードを実行し、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値以下の場合は第2のエラー処理モードを実行するための手段と、を備える、NANDメモリデバイスである。
例26では、例25の主題は、任意選択により、前記第1のエラー処理モードを実行するための前記手段は、前記値が記憶された前記NANDメモリセル内の第1のブロックを不良としてマークするための手段と、前記第1のブロックを前記アレイ内の第2のブロックに置き換えるための手段であって、前記第2のブロックは、オーバープロビジョニングとして指定されたブロックのプールの一部のブロックである、前記置き換えるための手段と、前記オーバープロビジョニングされたブロックの残数の前記値をデクリメントするための手段と、を含む、ことを含む。
例27では、例26の主題は、任意選択により、前記決定された閾値は、前記NANDメモリデバイスの記憶容量が与えられた場合に、所望のオーバープロビジョニングされたブロックの数になるように製造中に設定される、ことを含む。
例28では、例26~27のいずれか1つまたは複数の主題は、任意選択により、前記第1のブロックは、前記NANDのスーパーブロック内で前記第2のブロックに置き換えられる、ことを含む。
例29では、例25~28のいずれか1つまたは複数の主題は、任意選択により、前記第2のエラー処理モードを実行するための前記手段は、前記値が記憶された前記NANDメモリセル内のブロックの障害カウンタをインクリメントするための手段と、前記ブロックの前記障害カウンタが閾値を超えていると判定するための手段と、前記障害カウンタが前記閾値を超えていると判定したことに応答して、前記ブロックをテストするための手段と、テストが成功した場合に、前記ブロックをサービスに戻すための手段と、を含む、ことを含む。
例30では、例25~29のいずれか1つまたは複数の主題は、任意選択により、前記決定された閾値は、前記NANDデバイスのサイズに基づいて計算される、ことを含む。
例31では、例25~30のいずれか1つまたは複数の主題は、任意選択により、前記値に対して前記エラー訂正コード(ECC)チェックを実行するための前記手段は、前記値に対する数学演算の出力を記憶された値と比較するための手段、を含み、前記ECCチェックが失敗したと判定する前記動作は、前記値に対する前記数学演算の前記出力が前記記憶された値と一致しないと判定するための手段を含む、ことを含む。
例32では、例25~31のいずれか1つまたは複数の主題は、任意選択により、前記NANDメモリデバイスは、3次元NANDメモリデバイスである、ことを含む。

Claims (21)

  1. NANDメモリセルのアレイと、
    動作を実行するように構成されるコントローラと、
    を備え、前記動作は、
    前記NANDメモリセルのアレイから値を読み出すことと、
    前記値に対してエラー訂正コード(ECC)チェックを実行することと、
    前記ECCチェックが失敗したと判定することと、
    前記アレイ内のオーバープロビジョニングされたブロックの残数の値を、決定された閾値と比較することと、
    前記比較に基づいて、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値より多い場合は第1のエラー処理モードを実行し、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値以下の場合は第2のエラー処理モードを実行することと、
    を含み、
    前記第2のエラー処理モードを実行する前記動作は、
    前記値が記憶された前記NANDメモリセルのアレイ内のブロックの障害カウンタが閾値を超えていると判定することと、
    前記障害カウンタが前記閾値を超えていると判定したことに応答して、前記ブロックをサービスから排除してテストすることと、
    テストが成功した場合に、前記ブロックをサービスに戻すことと、
    を含む、NANDメモリデバイス。
  2. 前記第1のエラー処理モードを実行する前記動作は、
    前記値が記憶された前記NANDメモリセルのアレイ内の第1のブロックを不良としてマークすることと、
    前記第1のブロックを前記アレイ内の第2のブロックに置き換えることであって、前記第2のブロックは、オーバープロビジョニングとして指定されたブロックのプールの一部のブロックである、前記置き換えることと、
    前記オーバープロビジョニングされたブロックの残数の前記値をデクリメントすることと、
    を含む、請求項1に記載のメモリデバイス。
  3. 前記決定された閾値は、前記NANDメモリデバイスの記憶容量が与えられた場合に、所望のオーバープロビジョニングされたブロックの数になるように製造中に設定される、請求項2に記載のメモリデバイス。
  4. 前記第1のブロックは、前記NANDメモリセルのアレイのスーパーブロック内で前記第2のブロックに置き換えられる、請求項2に記載のメモリデバイス。
  5. 前記決定された閾値は、前記NANDメモリデバイスのサイズに基づいて計算される、請求項1に記載のメモリデバイス。
  6. 前記値に対して前記エラー訂正コード(ECC)チェックを実行する前記動作は、
    前記値に対する数学演算の出力を記憶された値と比較すること、
    を含み、前記ECCチェックが失敗したと判定する前記動作は、前記値に対する前記数学演算の前記出力が前記記憶された値と一致しないと判定することを含む、請求項1に記載のメモリデバイス。
  7. 前記NANDメモリデバイスは、3次元NANDメモリデバイスである、請求項1に記載のメモリデバイス。
  8. マシンによって実行された場合に、前記マシンに動作を実行させる命令を含むマシン可読媒体であって、前記命令は、
    NANDメモリデバイスのNANDメモリセルのアレイから値を読み出すことと、
    前記値に対してエラー訂正コード(ECC)チェックを実行することと、
    前記ECCチェックが失敗したと判定することと、
    前記アレイ内のオーバープロビジョニングされたブロックの残数の値を、決定された閾値と比較することと、
    前記比較に基づいて、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値より多い場合は第1のエラー処理モードを実行し、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値以下の場合は第2のエラー処理モードを実行することと、
    を含み、
    前記第2のエラー処理モードを実行する前記動作は、
    前記値が記憶された前記NANDメモリセルのアレイ内のブロックの障害カウンタが閾値を超えていると判定することと、
    前記障害カウンタが前記閾値を超えていると判定したことに応答して、前記ブロックをサービスから排除してテストすることと、
    テストが成功した場合に、前記ブロックをサービスに戻すことと、
    を含む、前記マシン可読媒体。
  9. 前記第1のエラー処理モードを実行する前記動作は、
    前記値が記憶された前記NANDメモリセルのアレイ内の第1のブロックを不良としてマークすることと、
    前記第1のブロックを前記アレイ内の第2のブロックに置き換えることであって、前記第2のブロックは、オーバープロビジョニングとして指定されたブロックのプールの一部のブロックである、前記置き換えることと、
    前記オーバープロビジョニングされたブロックの残数の前記値をデクリメントすることと、
    を含む、請求項8に記載のマシン可読媒体。
  10. 前記決定された閾値は、前記NANDメモリデバイスの記憶容量が与えられた場合に、所望のオーバープロビジョニングされたブロックの数になるように製造中に設定される、請求項9に記載のマシン可読媒体。
  11. 前記第1のブロックは、前記NANDメモリセルのアレイのスーパーブロック内で前記第2のブロックに置き換えられる、請求項9に記載のマシン可読媒体。
  12. 前記決定された閾値は、前記NANDメモリデバイスのサイズに基づいて計算される、請求項8に記載のマシン可読媒体。
  13. 前記値に対して前記エラー訂正コード(ECC)チェックを実行する前記動作は、
    前記値に対する数学演算の出力を記憶された値と比較すること、
    を含み、前記ECCチェックが失敗したと判定する前記動作は、前記値に対する前記数学演算の前記出力が前記記憶された値と一致しないと判定することを含む、請求項8に記載のマシン可読媒体。
  14. 前記NANDメモリデバイスは、3次元NANDメモリデバイスである、請求項8に記載のマシン可読媒体。
  15. NANDメモリデバイスのNANDメモリセルのアレイから値を読み出すことと、
    前記値に対してエラー訂正コード(ECC)チェックを実行することと、
    前記ECCチェックが失敗したと判定することと、
    前記アレイ内のオーバープロビジョニングされたブロックの残数の値を、決定された閾値と比較することと、
    前記比較に基づいて、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値より多い場合は第1のエラー処理モードを実行し、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値以下の場合は第2のエラー処理モードを実行することと、
    を含み、
    前記第2のエラー処理モードを実行する前記動作は、
    前記値が記憶された前記NANDメモリセルのアレイ内のブロックの障害カウンタが閾値を超えていると判定することと、
    前記障害カウンタが前記閾値を超えていると判定したことに応答して、前記ブロックをサービスから排除してテストすることと、
    テストが成功した場合に、前記ブロックをサービスに戻すことと、
    を含む、NANDメモリ管理方法。
  16. 前記第1のエラー処理モードを実行する前記動作は、
    前記値が記憶された前記NANDメモリセルのアレイ内の第1のブロックを不良としてマークすることと、
    前記第1のブロックを前記アレイ内の第2のブロックに置き換えることであって、前記第2のブロックは、オーバープロビジョニングとして指定されたブロックのプールの一部のブロックである、前記置き換えることと、
    前記オーバープロビジョニングされたブロックの残数の前記値をデクリメントすることと、
    を含む、請求項15に記載の方法。
  17. 前記決定された閾値は、前記NANDメモリデバイスの記憶容量が与えられた場合に、所望のオーバープロビジョニングされたブロックの数になるように製造中に設定される、請求項16に記載の方法。
  18. 前記第1のブロックは、前記NANDメモリセルのアレイのスーパーブロック内で前記第2のブロックに置き換えられる、請求項16に記載の方法。
  19. 前記決定された閾値は、前記NANDメモリデバイスのサイズに基づいて計算される、請求項15に記載の方法。
  20. 前記値に対して前記エラー訂正コード(ECC)チェックを実行する前記動作は、
    前記値に対する数学演算の出力を記憶された値と比較すること、
    を含み、前記ECCチェックが失敗したと判定する前記動作は、前記値に対する前記数学演算の前記出力が前記記憶された値と一致しないと判定することを含む、請求項15に記載の方法。
  21. 前記NANDメモリデバイスは、3次元NANDメモリデバイスである、請求項15に記載の方法。
JP2020536221A 2017-12-29 2017-12-29 訂正不可能なecc Active JP7167164B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022171048A JP2023011721A (ja) 2017-12-29 2022-10-26 訂正不可能なecc

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/119790 WO2019127350A1 (en) 2017-12-29 2017-12-29 Uncorrectable ecc

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2022171048A Division JP2023011721A (ja) 2017-12-29 2022-10-26 訂正不可能なecc

Publications (2)

Publication Number Publication Date
JP2021508140A JP2021508140A (ja) 2021-02-25
JP7167164B2 true JP7167164B2 (ja) 2022-11-08

Family

ID=67064470

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020536221A Active JP7167164B2 (ja) 2017-12-29 2017-12-29 訂正不可能なecc
JP2022171048A Pending JP2023011721A (ja) 2017-12-29 2022-10-26 訂正不可能なecc

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2022171048A Pending JP2023011721A (ja) 2017-12-29 2022-10-26 訂正不可能なecc

Country Status (5)

Country Link
US (2) US11074989B2 (ja)
JP (2) JP7167164B2 (ja)
KR (3) KR102362767B1 (ja)
CN (1) CN111656329A (ja)
WO (1) WO2019127350A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11694760B2 (en) 2017-12-29 2023-07-04 Micron Technology, Inc. Uncorrectable ECC

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210025249A (ko) 2019-08-27 2021-03-09 삼성전자주식회사 메모리 시스템 및 그 동작 방법
US11069417B2 (en) * 2019-08-27 2021-07-20 Samsung Electronics Co., Ltd. Memory system and method of operating the same
US10915400B1 (en) * 2019-11-08 2021-02-09 Micron Technology, Inc. Dynamic over provisioning allocation for purposed blocks
US11810637B2 (en) 2021-04-13 2023-11-07 Changxin Memory Technologies, Inc. Data transmission circuit, data transmission method, and storage apparatus with read-write conversion circuit
US11901028B2 (en) 2021-04-13 2024-02-13 Changxin Memory Technologies, Inc. Data transmission circuit, data transmission method, and storage apparatus
CN115206359A (zh) * 2021-04-13 2022-10-18 长鑫存储技术有限公司 数据传输电路、方法及存储装置
CN115454710B (zh) * 2022-11-10 2023-03-24 珠海妙存科技有限公司 闪存数据读取方法及其装置、电子设备、存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004152299A (ja) 2002-10-28 2004-05-27 Sandisk Corp 不揮発性メモリシステム内での使用不可能なブロック管理
JP2005284700A (ja) 2004-03-30 2005-10-13 Renesas Technology Corp メモリカード

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3730423B2 (ja) * 1998-11-24 2006-01-05 富士通株式会社 半導体記憶装置
KR100681429B1 (ko) * 2005-10-24 2007-02-15 삼성전자주식회사 반도체 메모리 장치 및 그것의 비트 에러 검출 방법
JP2007179257A (ja) * 2005-12-27 2007-07-12 Toshiba Corp 情報機器およびメモリ領域管理方法
US20080052446A1 (en) 2006-08-28 2008-02-28 Sandisk Il Ltd. Logical super block mapping for NAND flash memory
JP5306745B2 (ja) * 2008-09-05 2013-10-02 ハギワラソリューションズ株式会社 フラッシュメモリの管理方法及びフラッシュメモリデバイス
JP2010086404A (ja) * 2008-10-01 2010-04-15 Hagiwara Sys-Com:Kk メモリの管理方法及びフラッシュメモリデバイス
CN101727397B (zh) 2008-10-20 2012-06-27 群联电子股份有限公司 区块管理与更换方法、闪存储存系统及其控制器
WO2010054410A2 (en) 2008-11-10 2010-05-14 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for predicting failures in solid-state storage
US8151137B2 (en) * 2009-05-28 2012-04-03 Lsi Corporation Systems and methods for governing the life cycle of a solid state drive
US8341498B2 (en) * 2010-10-01 2012-12-25 Sandisk Technologies Inc. System and method of data encoding
JP2013122793A (ja) * 2011-12-09 2013-06-20 Toshiba Corp 不揮発性半導体記憶装置
KR101962786B1 (ko) * 2012-03-23 2019-03-27 삼성전자주식회사 불휘발성 메모리 장치, 메모리 시스템 및 그것의 프로그램 방법
US8891303B1 (en) * 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory device
US10078546B2 (en) 2014-10-24 2018-09-18 Micron Technology, Inc. Temperature related error management
CN105843699B (zh) * 2015-02-02 2019-06-04 国际商业机器公司 用于错误监视与校正的动态随机存取存储器设备与方法
KR101653999B1 (ko) 2015-04-02 2016-09-09 서울시립대학교 산학협력단 낸드 플래시 기반의 스토리지 시스템 및 데이터 보존 강화 방법
CN107037976B (zh) 2016-02-03 2020-03-20 株式会社东芝 存储装置及其工作方法
US10156999B2 (en) * 2016-03-28 2018-12-18 Seagate Technology Llc Dynamic bandwidth reporting for solid-state drives
US10248501B2 (en) * 2016-10-18 2019-04-02 SK Hynix Inc. Data storage apparatus and operation method thereof
CN106910528B (zh) * 2017-02-27 2020-05-29 郑州云海信息技术有限公司 一种固态硬盘数据巡检的优化方法及装置
US10346232B2 (en) * 2017-08-16 2019-07-09 Western Digital Technologies, Inc. Non-volatile storage with failure prediction
JP7167164B2 (ja) 2017-12-29 2022-11-08 マイクロン テクノロジー,インク. 訂正不可能なecc
US10878920B2 (en) * 2018-03-21 2020-12-29 SK Hynix Inc. Memory controller and memory system having the same
KR20200087487A (ko) * 2019-01-11 2020-07-21 에스케이하이닉스 주식회사 메모리 시스템에서의 유효 데이터 체크 방법 및 장치
KR20210079555A (ko) * 2019-12-20 2021-06-30 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
JP2022146585A (ja) * 2021-03-22 2022-10-05 キオクシア株式会社 メモリシステム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004152299A (ja) 2002-10-28 2004-05-27 Sandisk Corp 不揮発性メモリシステム内での使用不可能なブロック管理
JP2005284700A (ja) 2004-03-30 2005-10-13 Renesas Technology Corp メモリカード

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11694760B2 (en) 2017-12-29 2023-07-04 Micron Technology, Inc. Uncorrectable ECC

Also Published As

Publication number Publication date
KR102420955B1 (ko) 2022-07-15
KR20220025189A (ko) 2022-03-03
US20210012851A1 (en) 2021-01-14
JP2021508140A (ja) 2021-02-25
KR102362767B1 (ko) 2022-02-15
KR20220103205A (ko) 2022-07-21
US20210350871A1 (en) 2021-11-11
WO2019127350A1 (en) 2019-07-04
US11694760B2 (en) 2023-07-04
CN111656329A (zh) 2020-09-11
JP2023011721A (ja) 2023-01-24
KR20200100167A (ko) 2020-08-25
US11074989B2 (en) 2021-07-27

Similar Documents

Publication Publication Date Title
US11288149B2 (en) Flash memory block retirement policy
US10529434B2 (en) Detecting power loss in NAND memory devices
JP7167164B2 (ja) 訂正不可能なecc
US10522229B2 (en) Secure erase for data corruption
US11688473B2 (en) SLC page read
US10685731B2 (en) Erase page check
US11456037B2 (en) Block read count voltage adjustment
US10579307B2 (en) Correcting power loss in NAND memory devices
WO2020006447A1 (en) Temperature sensitive nand programming
CN114115716B (zh) 使用半良块的存储器装置虚拟块
CN111381778A (zh) 从异步功率损耗中恢复存储器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200727

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210803

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211015

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220530

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: 20220927

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221026

R150 Certificate of patent or registration of utility model

Ref document number: 7167164

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150