JP7186892B2 - マルチプレーンメモリデバイスをプログラミングする方法 - Google Patents

マルチプレーンメモリデバイスをプログラミングする方法 Download PDF

Info

Publication number
JP7186892B2
JP7186892B2 JP2021549843A JP2021549843A JP7186892B2 JP 7186892 B2 JP7186892 B2 JP 7186892B2 JP 2021549843 A JP2021549843 A JP 2021549843A JP 2021549843 A JP2021549843 A JP 2021549843A JP 7186892 B2 JP7186892 B2 JP 7186892B2
Authority
JP
Japan
Prior art keywords
plane
planes
controller
program
memory cells
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
JP2021549843A
Other languages
English (en)
Other versions
JP2022524728A (ja
Inventor
ジアリアン・デン
ユ・ワン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yangtze Memory Technologies Co Ltd
Original Assignee
Yangtze Memory Technologies Co Ltd
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 Yangtze Memory Technologies Co Ltd filed Critical Yangtze Memory Technologies Co Ltd
Publication of JP2022524728A publication Critical patent/JP2022524728A/ja
Application granted granted Critical
Publication of JP7186892B2 publication Critical patent/JP7186892B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5671Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge trapping in an insulator
    • 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/24Bit-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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • 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/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50004Marginal testing, e.g. race, voltage or current testing of threshold voltage
    • 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/883Masking faults in memories by using spares or by reconfiguring with partially good memories using a single defective memory device with reduced capacity, e.g. half capacity
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/025Geometric lay-out considerations of storage- and peripheral-blocks in a semiconductor storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • 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
    • 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
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5642Multilevel memory with buffers, latches, registers at input or output
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5644Multilevel memory comprising counting devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Description

本発明は、メモリ制御に関し、詳細には、マルチプレーンメモリデバイスをプログラミングする方法に関する。
パーソナルコンピュータ、電気通信、家電製品、およびその他の分野で不揮発性メモリが広範囲に使用されている。電気的に消去可能な読み取り専用メモリ(EEPROM)およびフラッシュメモリは、不揮発性メモリにおいて最も広く使用されている。
メモリデバイスは、メモリアレイの構造構成に従ってシングルプレーン型とマルチプレーン型に分類されることがある。シングルプレーン型メモリデバイスは、シングルプレーンとして構成されたメモリアレイを含み、マルチプレーン型メモリデバイスは、複数のプレーンとして構成されたメモリアレイを含む。マルチプレーン型メモリデバイスをプログラミングする際、プログラミング効率を高めるために2つ以上のメモリプレーンが同時にプログラミングされることがある。しかし、マルチプレーン型メモリデバイスが欠陥のあるメモリプレーンを含むとき、データを欠陥のあるメモリプレーンにプログラミングしようとして正常なメモリプレーンと欠陥のあるメモリプレーンの両方が繰り返しプログラミングされ、プログラミング速度が遅くなり、プログラミング効率が低下し、正常なメモリプレーンにおけるプログラム障害が増大する。
一実施形態によれば、メモリデバイスは、複数のプレーンと、行ドライバと、コントローラとを含む。メモリデバイスをプログラミングする方法は、プログラム動作において、行ドライバが、複数のプレーンにおける第1のプレーンの複数のメモリセルにプログラムパルスを印加するステップと、行ドライバがプログラムパルスを複数のメモリセルに印加した後、コントローラが、複数のメモリセルが所定のプログラム状態に達したかどうかを検証するステップと、複数のメモリセルが所定の回数にわたって検証された後に複数のメモリセルのうちの事前に設定された数のメモリセルが所定のプログラム状態に達しなかった場合、コントローラが第1のプレーンを無効にするステップとを含む。
本発明のこれらの目的およびその他の目的は、当業者が、様々な図および図面に示される好ましい実施形態についての以下の詳細な説明を読んだ後に、間違いなく明らかになろう。
本発明の実施形態によるメモリデバイスのブロック図である。 図1のプレーンのメモリセルのページの概略図である。 図1における列ドライバおよびコントローラのブロックである。 図1におけるコントローラの被選択回路の概略図である。 図1におけるメモリデバイスをプログラミングする方法のフローチャートである。 図1におけるメモリデバイスをプログラミングする別の方法のフローチャートである。
本発明の実施形態について2次元NANDフラッシュデバイスを参照して説明するが、本発明の概念の実施形態がこの構成に限定されず、3次元NANDフラッシュメモリデバイスにも適用できることが理解されよう。さらに、本発明は、本発明の範囲から逸脱せずに、電気的に消去可能な読み取り専用メモリ(EEPROM)、NORフラッシュメモリ、相変化RAM(PRAM)、磁気抵抗RAM(MRAM)、抵抗変化型RAM(RRAM)、強磁性RAM(FRAM)などの他の不揮発性メモリデバイスに適用可能である。
図1は、本発明の実施形態によるメモリデバイス1のブロック図である。メモリデバイス1は、デュアルプレーン構造を有し、コントローラ10と、電圧生成回路11と、行デコーダ12と、列ドライバ131、132と、プレーン141、142とを含んでもよい。実施形態ではデュアルプレーン構造が使用されるが、本発明の範囲内で他の数のプレーンが採用されてもよいことを諒解されたい。プレーン141、142は、同時にプログラミングされてもよい。プログラミング後、プレーン141またはプレーン142が検証において所定の回数にわたって不合格になる場合、行ドライバ12は、不合格のプレーン141または142を以後のプログラミングにおいて無効にしてもよい。不合格のプレーンを無効にすると、そのプレーンをプログラミングしようとする試みに費やされる時間が短縮され、使用プレーンにおけるプログラム障害が低減する。
コントローラ10は、電圧生成回路11および列ドライバ131、132に結合されてもよい。電圧生成回路11は行ドライバ12に結合されてもよい。行ドライバ12は、ストリング選択線SSL1、ワード線WL1(1)~WL1(N)、およびグランド選択線GSL1を介してプレーン142に結合されてもよく、ここで、Nは正の整数、たとえば、N=64である。行ドライバ12は、ストリング選択線SSL2、ワード線WL2(1)~WL2(N)、およびグランド選択線GSL2を介してプレーン142に結合されてもよい。列ドライバ131は、ビット線BL1(1)~BL1(M)を介してプレーン141に結合されてもよく、Mは正の整数であり、たとえば、M=8192である。列ドライバ132は、ビット線BL2(1)~BL2(M)を介してプレーン142に結合されてもよい。各プレーン141、142は、複数のブロックを含んでもよく、各ブロックは、複数のページを含んでもよく、各ページは、メモリセルのアレイを含んでもよい。プレーン141におけるメモリセルのアレイは、ワード線WL1(1)~WL1(N)およびビット線BL1(1)~BL1(M)によってアドレス指定されてもよく、プレーン142におけるメモリセルのアレイは、ワード線WL2(1)~WL2(N)およびビット線BL2(1)~BL2(M)によってアドレス指定されてもよい。
コントローラ10は、外部ホストと通信してプレーン141、142に記憶されるデータを受信し、プレーン141、142から取り出されたデータを送信してもよい。コントローラ10は、コマンド、アドレス、またはデータを外部ホストから受信し、列アドレス信号Scadr1、Scadr2、行アドレス信号Sradr、および電圧制御信号Svcを生成してもよい。電圧生成回路11は、コントローラ10からの電圧制御信号Svcに応じて読み取り動作、プログラム動作、消去動作、および検証動作用の電圧を生成してもよい。電圧生成回路11によって生成される電圧は、メモリデバイス1に与えられる供給電圧を超えてもよい。行ドライバ12は、コントローラ10からの行アドレス信号Sradrに応じて動作して、読み取り動作、プログラム動作、消去動作、および検証動作用のワード線を選択してもよい。列ドライバ131、132は、コントローラ10からの列アドレス信号Scadr1、Scadr2に応じて動作して、読み取り動作、プログラム動作、消去動作、および検証動作用のビット線を選択するようビット線信号を生成してもよい。プログラム動作では、電圧生成回路11は、供給電圧(たとえば、3.3V)を使用してプログラム電圧(たとえば、20V)およびプログラムパス電圧(たとえば、10V)を生成してもよく、行ドライバ12は、プログラム電圧の大きさを有するプログラムパルスを被選択ワード線に印加し、プログラムパス電圧を非選択ワード線に印加し、供給電圧をストリング選択線SSL1、SSL2に印加し、グランド電圧をグランド選択線GSL1、GSL2に印加してもよく、列ドライバ131、132は、グランド電圧(たとえば、0V)を被選択ビット線に印加し、供給電圧を非選択ビット線に印加してもよい。検証動作では、電圧生成回路11は、適切な検証電圧を生成してもよく、行ドライバ12は、適切な検証電圧を被選択ワード線に印加し、供給電圧をストリング選択線SSL1、SSL2に印加し、供給電圧をグランド選択線GSL1、GSL2に印加してもよく、列ドライバ131、132はそれぞれ、グランド電圧を非選択ビット線に印加し、供給電圧をプレーン141、142の被選択ビット線に印加して、被選択ビット線上の被選択メモリセルからデータを読み取ってもよい。読み取られたデータが誤っている場合、コントローラ10は、被選択メモリセルを検証不合格とし、読み取られたデータが正しい場合、コントローラ10は、被選択メモリセルを検証合格としてもよい。
図2は、プレーン141、142におけるページの概略図である。ページは、メモリセルC(1,1)~C(M,N)、ストリング選択セルCss(1)~Css(M)、グランド選択セルCgs(1)~Cgs(M)を含んでもよい。メモリセルC(1,1)~C(M,N)は、フローティングゲートトランジスタまたは電荷捕捉トランジスタであってもよく、メモリセルC(1,1)~C(M,N)、ストリング選択セルCss(1)~Css(M)、およびグランド選択セルCgs(1)~Cgs(M)の各々は、制御端子、第1の端子、および第2の端子を含んでもよい。ストリング選択線SSLnは、ストリング選択セルCss(1)~Css(M)の制御端子に結合されてもよく、ビット線BL1(1)~BL1(M)はそれぞれ、ストリング選択セルCss(1)~Css(M)の第1の端子に結合されてもよい。メモリセルC(1,1)~C(M,N)は、それぞれのワード線WL(1)~WL(N)に結合されたメモリセルの行として配置されてもよい。ワード線WL(1)~WL(N)は、第1の行のメモリセルC(1,1)~C(M,1)の制御端子~第Nの行のメモリセルC(1,N)~C(M,N)の制御端子に結合されてもよく、メモリセルC(1,1)~C(M,1)の第1の端子はそれぞれ、ストリング選択セルCss(1)~Css(M)の第2の端子に結合されてもよい。グランド選択線GSLnは、グランド選択セルCgs(1)~Cgs(M)の制御端子に結合されてもよく、グランド選択セルCgs(1)~Cgs(M)の第1の端子はそれぞれ、メモリセルC(1,N)~C(M,N)の第2の端子に結合されてもよく、グランド選択セルCgs(1)~Cgs(M)の第2の端子は、グランド端子に結合されてもよい。グランド端子はグランド電圧を生成してもよい。
メモリセルC(1,1)~C(M,N)は、シングルレベルセル(SLC)型、マルチレベルセル(MLC)型、トリプルレベルセル(TLC)型、クアッドレベルセル(QLC)型、ペンタレベルセル(PLC)型、または上位型であってもよい。各メモリセルC(m,n)は、Q個の考えられるデータ状態のうちの1つを保持してもよく、Qは2以上の正の整数であり、たとえば、SLCの場合はQ=2であり、MLCの場合はQ=4であり、TLCの場合はQ=8であり、QLCの場合はQ=16であり、PLCの場合はQ=32である。Q個の考えられるデータ状態は、消去状態S(0)およびプログラム状態S(1)~S(Q-1)を含んでもよく、プログラム状態S(1)は最低プログラム状態であり、プログラム状態S(Q-1)は最高プログラム状態である。一例では、TLCは8つの考えられるデータ状態のうちの1つにプログラミングされてもよく、プログラム状態S(1)は最低プログラム状態であり、プログラム状態S(7)は最高プログラム状態である。
メモリセルC(1,1)~C(M,N)は最初、消去状態S(0)に設定されてもよく、その後、一連のプログラム-検証動作がメモリセルC(1,1)~C(M,N)に対して実行され、それぞれの目標プログラム状態にプログラミングされてもよい。一連のプログラム-検証動作は、最低プログラム状態S(1)から開始して、被選択メモリセルのしきい値電圧がそれぞれの目標プログラム状態のそれぞれの検証電圧レベルに達するまでより高いプログラム状態に進んでもよい。いくつかの実施形態では、検証電圧はそれぞれ、プログラム状態S(1)~S(Q-1)のしきい値電圧分布曲線の最小しきい値電圧として選択されてもよい。各プログラム-検証動作は、プログラム動作とそれに続く検証動作とを含んでもよい。プログラム動作では、メモリセルC(1,1)~C(M,N)のうちのいくつかが選択され、第1の行から第Nの行まで、または第Nの行から第1の行まで、行ごとにプログラム状態にプログラミングされてもよい。以後の検証動作では、コントローラ10は、被選択メモリセルがプログラム状態に達したかどうかを、第1の行から第Nの行まで、または第Nの行から第1の行まで、行ごとに検証してもよい。このように、メモリセルC(1,1)~C(M,N)は、それぞれの目標プログラム状態にプログラミングされてもよい。
図3は、列ドライバ131、132およびコントローラ10のブロック図である。列ドライバ131、132の各々は、ページバッファ301~30nと、フェイルビットカウンタ(fail bit counter)321~32nと、列デコーダ341~34nとを含んでもよい。コントローラ10は加算器36を含んでもよい。いくつかの実施形態では、列ドライバ131、132は被選択ビット線からの電流を検出し、それによって、それぞれプレーン141、142からデータを読み取るセンス増幅器をさらに含んでもよい。ページバッファ301~30nはそれぞれ、フェイルビットカウンタ321~32nに結合されてもよい。フェイルビットカウンタ321~32nはそれぞれ、列デコーダ341~34nに結合されてもよい。列デコーダ341~34nは加算器36に結合されてもよい。いくつかの実施形態では、加算器36は、列ドライバ131、132の各々に位置してもよく、コントローラ10に結合されてもよい。
列デコーダ341~34nは、プレーン141、142のプログラム状態S(q)を検証する際、列アドレス信号Scadr1、Scadr2内の列アドレスを受信してプレーン141、142のビット線を選択し、それによって、データをそれぞれプレーン141、142のページ内の被選択メモリセルからページバッファ301~30nに取り込んでもよい。フェイルビットカウンタ321~32nは、プレーン141、142のページにおける検証で不合格になったメモリセルの数をカウントし、それぞれページフェイルビットカウントを生成する。加算器36は、プレーン141のすべてのページのページフェイルビットカウントを蓄積して第1のプレーンフェイルビットカウントを生成し、プレーン142のすべてのページのページフェイルビットカウントを蓄積して第2のプレーンフェイルビットカウントを生成してもよい。第1のプレーンフェイルビットカウントが事前に設定されたプレーンフェイルビットカウントよりも小さい場合、コントローラ10は、プレーン141を検証合格としてもよく、第1のプレーンフェイルビットカウントが事前に設定されたプレーンフェイルビットカウントを超える場合、コントローラ10は、プレーン141を検証不合格としてもよい。同様に、第2のプレーンフェイルビットカウントが事前に設定されたプレーンフェイルビットカウントよりも小さい場合、コントローラ10は、プレーン142を検証合格としてもよく、第2のプレーンフェイルビットカウントが事前に設定されたプレーンフェイルビットカウントを超える場合、コントローラ10は、プレーン142を検証不合格としてもよい。プレーン141、142が所定の回数、たとえば、4回にわたって検証不合格になると、コントローラ10はプレーン141、142を無効にしてもよい。プレーン141、142が、所定の回数にわたって検証不合格になる前の検証合格であるとき、コントローラ10は、引き続きプレーン141、142を次のプログラム状態S(q+1)にプログラミングしてもよい。
プレーン141および/またはプレーン142が検証に合格すると、コントローラ10は、プログラム合格を示すフェイルビットパス信号を生成してもよく、プレーン141とプレーン142の両方が検証不合格になると、コントローラ10は、プログラム不合格を示すフェイルビットパス信号を生成してもよい。フェイルビットパス信号は、メモリデバイス1のプログラムを継続するかどうかを判定するために使用されてもよい。いくつかの実施形態では、コントローラ10は、フェイルビットパス信号を論理ハイに設定してメモリデバイス1のプログラミングを継続し、フェイルビットパス信号を論理ローに設定してメモリデバイス1のプログラミングを停止する。いくつかの実施形態では、コントローラ10は、プログラム検証動作を終了するときにプログラム結果を示すステータスレポートをさらに生成してもよい。プレーン141、142の少なくとも一方がより高い状態S(Q-1)のプログラミングを完了すると、ステータスレポートはプログラム合格を示してもよい。最高状態S(Q-1)のプログラミングが完了する前に両方のプレーン141、142が無効になると、ステータスレポートはプログラム不合格を示してもよい。メモリデバイス1に印加されるプログラムパルスが最大プログラムパルスカウントを超えると、ステータスレポートはプログラム不合格を示してもよい。
図4は、コントローラ10内の被選択回路の概略図である。コントローラ10は、それぞれプレーン141、142へのアクセスを制御するANDゲート41および42を含んでもよい。ANDゲート41は、プレーンアドレス信号Sap1、フェイルビットパス信号Sfbp、およびプレーン無効信号Sdisp1を受信してプレーン選択信号Ssp1を生成してもよい。ANDゲート42は、プレーンアドレス信号Sap2、フェイルビットパス信号Sfbp、およびプレーン無効信号Sdisp2を受信してプレーン選択信号Ssp2を生成してもよい。コントローラ10は、プレーン選択信号Ssp1に従って列アドレス信号Scadr1を生成し、プレーン選択信号Ssp2に従って列アドレス信号Scadr2を生成し、プレーン選択信号Ssp1、Ssp2に従って行アドレス信号Scadr2を生成してもよい。いくつかの実施形態では、プレーン141を無効にすることが決定されると、コントローラ10は、プレーン無効信号Sdisp1を論理ローに設定してもよく、ANDゲート41は、プレーン選択信号Ssp1を論理ローに設定することによってプレーン無効信号Sdisp1に応じてプレーン選択信号Ssp1をブロックしてもよく、コントローラ10は、行アドレス信号Sradrおよび列アドレス信号Scadr1を生成してプレーン141のワード線WL1(1)~WL1(N)およびビット線BL1(1)~BL1(M)を選択解除してもよい。同様に、プレーン142を無効にすることが決定されると、コントローラ10は、プレーン無効信号Sdisp2を論理ローに設定してもよく、ANDゲート42は、プレーン選択信号Ssp2を論理ローに設定することによってプレーン無効信号Sdisp2に応じてプレーン選択信号Ssp2をブロックしてもよく、コントローラ10は、行アドレス信号Sradrおよび列アドレス信号Scadr2を生成してプレーン142のワード線WL2(1)~WL2(N)およびビット線BL2(1)~BL2(M)を選択解除してもよい。
いくつかの実施形態では、ANDゲート41は、プレーンアドレス信号Sap1の代わりに第1のブロックアドレス信号を受信して第1のブロック選択信号を生成してもよく、ANDゲート42は、プレーンアドレス信号Sap2の代わりに第2のブロックアドレス信号を受信して第2のブロック選択信号を生成してもよい。コントローラ10は、第1のブロック選択信号に従って列アドレス信号Scadr1を生成し、第2のブロック選択信号に従って列アドレス信号Scadr2を生成し、第1のブロック選択信号および第2のブロック選択信号に従って行アドレス信号Sradrを生成してもよい。いくつかの実施形態では、プレーン141を無効にすることが決定されると、コントローラ10はプレーン無効信号Sdisp1を論理ローに設定してもよく、ANDゲート41は、第1のブロック選択信号を論理ローに設定することによってプレーン無効信号Sdisp1に応じて第1のブロック選択信号をブロックしてもよく、コントローラ10は、行アドレス信号Sradrおよび列アドレス信号Scadr1を生成してプレーン141のワード線WL1(1)~WL1(N)およびビット線BL1(1)~BL1(M)を選択解除してもよい。同様に、プレーン142を無効にすることが決定されると、コントローラ10はプレーン無効信号Sdisp2を論理ローに設定してもよく、ANDゲート42は、第2のブロック選択信号を論理ローに設定することによってプレーン無効信号Sdisp2に応じて第2のブロック選択信号をブロックしてもよく、コントローラ10は、行アドレス信号Sradrおよび列アドレス信号Scadr2を生成してプレーン142のワード線WL2(1)~WL2(N)およびビット線BL2(1)~BL2(M)を選択解除してもよい。
コントローラ10は、プログラム状態カウンタq、不合格検証カウントCvf1、Cvf2、およびプログラムパルスカウントCpを使用してプレーン無効信号Sdisp1、Sdisp2を生成してプレーン141、142へのアクセスを制御してもよい。プログラム状態カウンタqは、1から(Q-1)の間の範囲の正の整数であってもよい。不合格検証カウントCvf1、Cvf2は、1から最大不合格カウントCvmax(q)の間の範囲の正の整数であってもよい。最大不合格カウントCvmax(q)は、プレーンを無効にする前にプログラム状態S(q)の検証を実行する最大回数を定義してもよく、プログラム状態S(q)に固有であってもよい。たとえば、プログラム状態S(1)~S(7)にはそれぞれ、最大不合格カウントCvmax(1)~Cvmax(7)が割り当てられてもよい。最大不合格カウントCvmax(q)は1よりも大きい正の整数であってもよく、製造セットアップ時に設定されてもよい。プログラムパルスカウントCpは、1から最大プログラムパルスカウントCpmaxの間の範囲の正の整数であってもよい。最大プログラムパルスカウントCpmaxは、プログラムパルスをプレーン141、142に印加する最大回数を定義してもよく、1よりも大きい正の整数であり、製造セットアップ時に設定されてもよい。
プレーン141、142が、最大不合格カウントCvmax(q)によって定義される所定回数にわたって検証不合格になると、コントローラ10は、その後のプログラミングについてプレーン141、142を無効にしてもよく、それによって、データプログラミングを加速し、オペレーティングプレーンにおけるプログラム障害を低減させる。
図5は、メモリデバイス1をプログラミングする方法500のフローチャートである。方法500は、プレーン141、142上でマルチプレーンプログラムを実行し、プレーン141、142のそれぞれの不合格検証カウントCvf1、Cvf2に従ってプレーン141、142を無効にするステップS502~S542を含む。ステップS502~S508は、メモリデバイス1をプログラミングして検証するために使用される。ステップS512~S516は、プレーン141を無効にすべきかどうかを判定するために使用される。ステップS522~S526は、プレーン142を無効にすべきかどうかを判定するために使用される。ステップS532~S536は、プログラム対応プレーン141、142のプログラミングを完了するために使用される。ステップS540およびS542は、プログラムパルスカウントCpに従ってメモリデバイス1のプログラミングを無効にするために使用される。あらゆる妥当なステップ変更または調整は本開示の範囲内である。ステップS502~S542について以下に説明する。
ステップS502: コントローラ10が、プログラムパルスカウントCp、不合格検証カウントCvf1、Cvf2、およびプログラム状態カウンタqをリセットする。
ステップS504: 行ドライバ12がプログラムパルスをプレーン141、142に印加する。
ステップS506: コントローラ10が、プログラムパルスカウントCpを増分する。
ステップS508: コントローラ10が、プレーン141、142のプログラム状態S(q)を検証する。
ステップS510: コントローラ10が、検証においてプレーン141を不合格にしている。
ステップS512: コントローラ10が、不合格検証カウントCvf1が最大不合格カウントCvmax(q)未満であるかどうかを判定する。最大不合格カウントCvmax(q)未満である場合、ステップS514に進み、最大不合格カウントCvmax(q)以上である場合、ステップS516に進む。
ステップS514: コントローラ10が、不合格検証カウントCvf1を増分する。ステップS540に進む。
ステップS516: コントローラ10が、プレーン141を無効にする。ステップS540に進む。
ステップS520: コントローラ10が、検証においてプレーン142を不合格にしている。
ステップS522: コントローラ10が、不合格検証カウントCvf2が最大不合格カウントCvmax(q)未満であるかどうかを判定する。最大不合格カウントCvmax(q)未満である場合、ステップS524に進み、最大不合格カウントCvmax(q)以上である場合、ステップS526に進む。
ステップS524: コントローラ10が、不合格検証カウントCvf2を増分する。ステップS540に進む。
ステップS526: コントローラ10が、プレーン142を無効にする。ステップS540に進む。
ステップS530: コントローラ10が、検証においてプレーン141または142を合格にしている。
ステップS532: コントローラ10が、プログラム状態S(q)が最高プログラム状態S(Q-1)未満であるかどうかを判定する。最高プログラム状態S(Q-1)未満である場合、ステップS534に進み、最高プログラム状態S(Q-1)以上である場合、ステップS536に進む。
ステップS534: コントローラ10が、プログラム状態S(q)を増分し、不合格検証カウントCvf1、Cvf2をリセットする。ステップS540に進む。
ステップS536: コントローラ10が、プログラム合格を示すステータスレポートを生成し、方法500を終了する。
ステップS540: コントローラ10が、プログラムパルスカウントCpが最大プログラムパルスカウントCpmax未満であるかどうかを判定する。最大プログラムパルスカウントCpmax未満である場合、ステップS504に進む。最大プログラムパルスカウントCpmax以上である場合、ステップS542に進む。
ステップS542: コントローラ10が、プログラム不合格を示すステータスレポートを生成し、方法500を終了する。
方法500は、各ステップの詳細を示すためにメモリデバイス1およびTLCメモリセルを使用して例示されてもよい。マルチプレーンプログラムの起動時に、プレーン141、142がプログラミングのために初期設定される。コントローラ10は、プレーン無効信号Sdisp1、Sdisp2およびフェイルビットパス信号Sfbpを論理ハイに設定し、プログラムパルスカウントCp、不合格検証カウントCvf1、Cvf2、およびプログラム状態カウンタqをセットする(S502)。いくつかの実施形態では、プログラムパルスカウントCpおよび不合格検証カウントCvf1、Cvf2が、0にリセットされてもよく(Cp=0、Cvf1=0、Cvf2=0)、プログラム状態カウンタqが1にリセットされてもよい(q=1)。次に、行ドライバ12が、プログラムパルスをプレーン141、142の被選択ワード線に印加し(S504)、コントローラ10がプログラムパルスカウントCpを1増分する(Cp=1)(S506)。コントローラ10は、プレーン141、142のメモリセルがプログラム状態S(1)に達したかどうかを検証する(S508)。プレーン141、142のメモリセルのうちで事前に設定された数よりも多くのメモリセルがプログラム状態S(1)に達していない場合、コントローラ10は検証においてプレーン141、142を不合格とする。プレーン141、142のメモリセルのうちでプログラム状態S(1)に達していないメモリセルの数が事前に設定された数未満である場合、コントローラ10は検証においてプレーン141、142を合格とする。
コントローラ10が検証においてプレーン141を不合格とした場合(S510)、コントローラ10は次に、不合格検証カウントCvf1がプログラム状態S(1)の最大不合格カウントCvmax(1)未満であるかどうかを判定する(S512)。いくつかの実施形態では、最大不合格カウントCvmax(1)は4であってもよい。不合格検証カウントCvf1(Cvf1=0)が最大不合格カウントCvmax(1)(Cvmax(1)=4)未満である場合、コントローラ10は、不合格検証カウントCvf1を1増分する(Cvf1=1)(S514)。ステップS540において、コントローラ10は、プログラムパルスカウントCpが最大プログラムパルスカウントCpmax未満であるかどうかを判定する。いくつかの実施形態では、最大プログラムパルスカウントCpmaxは20であってもよい。プログラムパルスカウントCp(Cp=1)が最大プログラムパルスカウントCpmax(Cpmax=20)未満である場合、コントローラ10は、不合格検証カウントCvf1が4に達したときにプレーン141が検証不合格のままになるまでステップ504からステップS514およびステップS540を反復する。コントローラ10は、不合格検証カウントCvf1(Cvf1=4)が最大不合格カウントCvmax(1)(Cvmax(1)=4)以上であると判定すると、フェイルビットパス信号Sfbpを論理ハイに維持しつつプレーン無効信号Sdisp1を論理ローに設定してプレーン141を無効にする(S516)。
同様に、コントローラ10が検証においてプレーン142を不合格とした場合(S520)、コントローラ10は次に、不合格検証カウントCvf2(Cvf2=0)がプログラム状態S(1)の最大不合格カウントCvmax(1)(Cvmax(1)=4)未満であるかどうかを判定する(S522)。不合格検証カウントCvf2が最大不合格カウントCvmax(1)未満である場合、コントローラ10は、不合格検証カウントCvf2を1増分する(Cvf2=1)(S524)。ステップS540において、コントローラ10は、プログラムパルスカウントCp(Cp=1)が最大プログラムパルスカウントCpmax(Cpmax=20)未満であるかどうかを判定する。プログラムパルスカウントCpが最大プログラムパルスカウントCpmax未満である場合、コントローラ10は、不合格検証カウントCvf2が4に達したときにプレーン142が検証不合格のままになるまでステップ504からステップS508、ステップS520からステップS524、およびステップS540を反復する。コントローラ10は、不合格検証カウントCvf2(Cvf2=4)が最大不合格カウントCvmax(1)(Cvmax(1)=4)以上であると判定すると、フェイルビットパス信号Sfbpを論理ハイに維持しつつプレーン無効信号Sdisp2を論理ローに設定してプレーン142を無効にする(S526)。
それぞれの不合格検証カウントCvf1、Cvf2が最大不合格カウントCvmax(1)に達する前にコントローラ10が検証において両方のプレーン141、142を合格にするか、またはそれぞれの不合格検証カウントCvf1、Cvf2が最大不合格カウントCvmax(1)に達する前にコントローラ10が検証においてプレーン141、142の一方を合格とし、プレーン141、142の他方を無効にした場合(S530)、コントローラ10は次に、プログラム状態S(1)が最高プログラム状態S(7)未満であるかどうかを判定するS(7)(S532)。たとえば、コントローラ10は、第4のプログラムパルスを印加するときに検証においてプレーン141を合格としかつプレーン142を不合格とし(Cp=4、Cvf1=3、Cvf2=4)、プレーン142を無効にし(S526)、さらにプレーン141を次のプログラム状態S(2)にプログラミングしてもよい。プログラム状態S(1)が最高プログラム状態S(7)未満である場合、コントローラ10は、プログラム状態カウンタqを1増分し(q=2)、不合格検証カウントCvf1、Cvf2を0にリセットし(Cvf1=0、Cvf2=0)(S534)、プログラムパルスカウントCp(Cp=4)が最大プログラムパルスカウントCpmax(Cpmax=20)未満であるかどうかを判定する(S540)。プログラムパルスカウントCp(Cp=4)が最大プログラムパルスカウントCpmax(Cpmax=20)未満である場合、プレーン142が無効にされていたことに起因して、コントローラ10は、プレーン141が無効になるか、最高プログラム状態S(7)に達するか、またはプログラムパルスカウントCpが最大プログラムパルスカウントCpmaxに達するまで、S504~S514、ステップS530~S534、およびステップS540を反復する。プレーン141とプレーン142の両方が無効になると、コントローラ10は、プレーン無効信号Sdisp1およびフェイルビットパス信号Sfbpを論理ハイに設定し、プログラム不合格を示すステータスレポートを生成し、方法500を終了する(S516)。最高プログラム状態S(7)に達すると、コントローラ10は、プログラム合格を示すステータスレポートを生成し、方法500を終了する(S536)。プログラムパルスカウントCp(Cp=20)が最大プログラムパルスカウントCpmax(Cpmax=20)に達すると、コントローラ10は、フェイルビットパス信号Sfbpを論理ローに設定し、プログラム不合格を示すステータスレポートを生成し、方法500を終了する(S542)。
ステップS512およびS522において、最大不合格カウントCvmax(q)は、他の最大不合格カウントCvmax(1)~Cvmax(q-1)、Cvmax(q+1)~Cvmax(Q-1)と同一であってもよくまたは異なってもよい。たとえば、最大不合格カウントCvmax(1)~Cvmax(7)のうちの2つ以上が同一であってもよく、たとえば、Cvmax(1)=Cvmax(2)=...=Cvmax(7)=4であってもよい。他の実施形態では、最大不合格カウントCvmax(1)~Cvmax(7)のうちの2つ以上が異なってもよく、たとえば、Cvmax(1)=4およびCvmax(2)=3であってもよい。
ステップS516およびS526において、プレーン無効信号Sdisp1、Sdisp2が論理ローに設定され、プレーン選択信号Ssp1、Ssp2を論理ローに設定し、第1のブロック選択信号または第2のブロック選択信号を論理ローに設定し、またはワード線WL1(1)~WL1(N)、WL2(1)~WL2(N)、ビット線BL1(1)~BL1(M)、BL2(1)~BL2(M)、ストリング選択線SSL1、SSL2、およびグランド選択線GSL1、GSL2を制御する他の信号を論理ローに設定する。プレーン141、142のうちの一方が検証に合格したときは、フェイルビットパス信号Sfbpを論理ハイに設定してメモリデバイス1のプログラミングを継続してもよい。
方法500は、検証不合格のプレーンを所定の回数にわたって不合格のプレーンと特定し、使用プレーンのプログラミングを継続しながら不合格のプレーンを無効にし、それによってデータプログラミングを加速し、使用プレーンにおけるプログラム障害を低減させるために使用される。
図6は、メモリデバイス1をプログラミングする方法600のフローチャートである。方法600は、ステップS602~S616を含み、プレーン141/142のそれぞれの不合格検証カウントCvf1、Cvf2に従ってプレーン141、142を無効にする。ステップS602およびS604は、メモリデバイス1をプログラミングし検証するために使用される。ステップS606~S610は、プレーン141/142を無効にすべきかどうかを判定するために使用される。ステップS612~S616は、プログラム対応プレーン141、142のプログラミングの完了を継続するために使用される。あらゆる妥当なステップ変更または調整は本開示の範囲内である。ステップS602~S616について以下に説明する。
ステップS602: 行ドライバ12がプログラムパルスをプレーン141、142の複数のメモリセルに印加する。
ステップS604: コントローラ10が、複数のメモリセルが所定のプログラム状態S(q)に達したかどうかを検証する。所定のプログラム状態S(q)に達している場合、ステップS612に進み、所定のプログラム状態S(q)に達していない場合、ステップS606に進む。
ステップS606: コントローラ10が、複数のメモリセルのうちの事前に設定された数のメモリセルが、所定の回数Cvmax(q)にわたって所定のプログラム状態S(q)に達していないかどうかを判定する。事前に設定された数のメモリセルが、所定の回数Cvmax(q)にわたって所定のプログラム状態S(q)に達していない場合、ステップ608に進み、事前に設定された数のメモリセルが、所定の回数Cvmax(q)にわたって所定のプログラム状態S(q)に達している場合、ステップ610に進む。
ステップS608: コントローラ10が、プレーン141、142を無効にし、方法600を終了する。
ステップS610: コントローラ10が、不合格検証カウントCvf1、Cvf2を増分する。ステップS602に進む。
ステップS612: コントローラ10が、所定のプログラム状態S(q)が最高プログラム状態S(Q-1)であるかどうかを判定する。所定のプログラム状態S(q)が最高プログラム状態S(Q-1)である場合、ステップS614に進み、所定のプログラム状態S(q)が最高プログラム状態S(Q-1)ではない場合、ステップS616に進む。
ステップS614: コントローラ10がプレーン141、142を無効にし、方法600を終了する。
ステップS616: コントローラ10が、所定のプログラム状態S(q)を次のプログラム状態S(q+1)に設定する。ステップS602に進む。
ステップS602~S616についての説明は、前のパラグラフに記載されており、ここでは繰り返さない。方法600では、プレーン141、142が所定の回数にわたって検証不合格になったときに、コントローラ10は、以後のプログラミングについて不合格のプレーン141、142を無効にし、それによって、データプログラミングを加速し、使用プレーンにおけるプログラム障害を低減させる。
当業者には、本発明の教示を保持しつつデバイスおよび方法の多数の修正形態および代替形態が実現されることが容易に理解されよう。したがって、上記の開示は、添付の特許請求の範囲によってのみ制限されると解釈すべきである。
1 メモリデバイス
10 コントローラ
11 電圧生成回路
12 行デコーダ、行ドライバ
131、132 列ドライバ
141、142 プレーン
301~30n ページバッファ
321~32n フェイルビットカウンタ
341~34n 列デコーダ
36 加算器
41、42 ANDゲート
BL1(1)~BL1(M)、BL2(1)~BL2(M) ビット線
C(1,1)~C(M,N) メモリセル
Cp プログラムパルスカウント
Cpmax 最大プログラムパルスカウント
Css(1)~Css(M) ストリング選択セル
Cvf1、Cvf2 不合格検証カウント
Cvmax(q) 最大不合格カウント
GSL1、GSL2 グランド選択線
S(1)~S(Q-1) プログラム状態
Sap1、Sap2 プレーンアドレス信号
Sfbp フェイルビットパス信号
Scadr1、Scadr2 列アドレス信号
Sdisp1、Sdisp2 プレーン無効信号
Sradr 行アドレス信号
SSL1、SSL2 ストリング選択線
Ssp1、Ssp2 プレーン選択信号
Svc 電圧制御信号
WL1(1)~WL1(N)、WL2(1)~WL2(N) ワード線

Claims (17)

  1. 複数のプレーンを備えるメモリデバイスをプログラミングする方法であって、
    前記複数のプレーンの各々の複数のメモリセルにプログラムパルスを印加するステップと、
    前記複数のプレーンのうちの第1のプレーンの前記複数のメモリセルが所定のプログラム状態に達したかどうかを検証するステップと、
    前記複数のメモリセルが所定の回数にわたって検証された後に前記複数のメモリセルのうちの前記第1のプレーンの事前に設定された数のメモリセルが前記所定のプログラム状態に達していない場合に、前記複数のプレーンのうちの前記第1のプレーンを無効にするステップと
    を含む方法。
  2. 前記複数のメモリセルのうちの前記事前に設定された数のメモリセルが前記所定のプログラム状態に達していないときに、不合格検証カウントを増分するステップをさらに含む、請求項1に記載の方法。
  3. 前記所定のプログラム状態と別のプログラム状態の不合格検証に関連する所定の回数が同一である、または異なる、請求項1に記載の方法。
  4. 前記第1のプレーンを無効にするステップが、
    プレーン選択信号をブロックするステップ、
    ブロック選択信号をブロックするステップ、
    前記第1のプレーンのすべてのワード線を選択解除するステップ、
    前記第1のプレーンのすべてのビット線を選択解除するステップ、および
    前記メモリデバイスのプログラミングを継続するようにフェイルビットカウントパス信号を設定するステップ
    のうちの少なくとも1つを含む、請求項1に記載の方法。
  5. 前記複数のプレーンのうちの1つが前記所定のプログラム状態の検証に合格しており、かつ前記所定のプログラム状態が最高プログラム状態ではないときに、前記所定のプログラム状態を次のプログラム状態に設定するステップ
    をさらに含む、請求項1に記載の方法。
  6. 前記複数のプレーンのうちの前記第1のプレーンが前記所定のプログラム状態の検証に合格しており、かつ前記所定のプログラム状態が最高プログラム状態であるときに、前記複数のプレーンのうちの前記第1のプレーンをバイパスして、前記複数のプレーンのうちの第2のプレーンの複数のメモリセルにプログラムパルスを印加するステップ
    をさらに含む、請求項1に記載の方法。
  7. メモリデバイスであって、
    各々が1つまたは複数のメモリセルを有する複数のプレーンと、
    記複数のプレーンに結合され、前記複数のプレーンの各々の複数のメモリセルにプログラムパルスを印加するために使用される行ドライバと、
    コントローラであって、
    前記複数のプレーンのうちの第1のプレーンの前記複数のメモリセルが所定のプログラム状態に達したかどうかを検証することと
    前記複数のメモリセルが所定の回数にわたって検証された後に前記複数のメモリセルのうちの前記第1のプレーンの事前に設定された数のメモリセルが前記所定のプログラム状態に達していない場合に、前記複数のプレーンのうちの前記第1のプレーンを無効にすることとを行うために使用されるコントローラと
    を備えるメモリデバイス。
  8. 前記行ドライバが、前記コントローラからの行アドレス信号に応じて動作し、読み取り動作、プログラム動作、消去動作、および検証動作についてワード線を選択するためにさらに使用される、請求項7に記載のメモリデバイス。
  9. 前記コントローラに結合され、前記コントローラからの1つまたは複数の列アドレス信号に応じて動作し、読み取り動作、プログラム動作、消去動作、および検証動作についてビット線を選択するためのビット線信号を生成するために使用される、1つまたは複数の列ドライバ
    をさらに備える、請求項7に記載のメモリデバイス。
  10. 前記1つまたは複数の列ドライバの各々が、
    1つまたは複数の列ページバッファと、
    各フェイルビットカウンタが前記1つまたは複数の列ページバッファのそれぞれに結合される、1つまたは複数のフェイルビットカウンタと、
    各列デコーダが前記1つまたは複数のフェイルビットカウンタのそれぞれに結合される、1つまたは複数の列デコーダと
    をさらに備える、請求項9に記載のメモリデバイス。
  11. 前記コントローラが、前記1つまたは複数の列デコーダに結合された加算器をさらに備える、請求項10に記載のメモリデバイス。
  12. 前記複数のメモリセルが所定のプログラム状態に達したかどうかを検証することは、前記所定のプログラム状態を検証するときに、
    それぞれ、前記1つまたは複数の列デコーダが、前記1つまたは複数の列アドレス信号における列アドレスを受信して前記第1のプレーンのビット線を選択することによって、データを前記第1のプレーンの前記1つまたは複数のページ内の被選択メモリセルから前記1つまたは複数のページバッファに取り込むことと、
    前記1つまたは複数のフェイルビットカウンタが、前記第1のプレーンの前記1つまたは複数のページにおいて検証不合格とされたメモリセルの数をカウントすることによって、1つまたは複数のそれぞれのページフェイルビットカウントを生成することと、
    前記加算器が前記1つまたは複数のそれぞれのページフェイルビットカウントを蓄積することによって、第1のプレーンフェイルビットカウントを生成することと、
    前記第1のプレーンフェイルビットカウントが事前に設定されたプレーンフェイルビットカウントよりも小さい場合、前記コントローラによって、前記第1のプレーンを検証合格とし、前記第1のプレーンフェイルビットカウントが前記事前に設定されたプレーンフェイルビットカウントを超える場合、前記コントローラによって、前記第1のプレーンを検証不合格とすることと
    を含む、請求項11に記載のメモリデバイス。
  13. 前記コントローラは、前記複数のメモリセルのうちの前記事前に設定された数のメモリセルが前記所定のプログラム状態に達していないときに、不合格検証カウントを増分するためにさらに使用される、請求項7に記載のメモリデバイス。
  14. 前記コントローラは、プレーン選択信号をブロックして前記第1のプレーンを無効にするためにさらに使用される、請求項7に記載のメモリデバイス。
  15. 前記第1のプレーンを無効にすることが、
    プレーン選択信号をブロックすること、
    ブロック選択信号をブロックすること、
    前記第1のプレーンのすべてのワード線を選択解除すること、
    前記第1のプレーンのすべてのビット線を選択解除すること、および
    前記メモリデバイスのプログラミングを継続するようにフェイルビットカウントパス信号を設定すること
    のうちの少なくとも1つを含む、請求項7に記載のメモリデバイス。
  16. 前記コントローラは、
    複数のプレーンのうちの1つが前記所定のプログラム状態の検証に合格しており、かつ前記所定のプログラム状態が最高プログラム状態ではないときに、前記所定のプログラム状態を次のプログラム状態に設定するためにさらに使用される、請求項7に記載のメモリデバイス。
  17. 前記コントローラは、
    前記複数のプレーンのうちの前記第1のプレーンが前記所定のプログラム状態の検証に合格しており、かつ前記所定のプログラム状態が最高プログラム状態であるときに、前記複数のプレーンのうちの前記第1のプレーンをバイパスして、前記複数のプレーンのうちの第2のプレーンの複数のメモリセルにプログラムパルスを印加するためにさらに使用される、請求項7に記載のメモリデバイス。
JP2021549843A 2020-02-20 2020-02-20 マルチプレーンメモリデバイスをプログラミングする方法 Active JP7186892B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/075936 WO2021163945A1 (en) 2020-02-20 2020-02-20 Method of programming multi-plane memory device

Publications (2)

Publication Number Publication Date
JP2022524728A JP2022524728A (ja) 2022-05-10
JP7186892B2 true JP7186892B2 (ja) 2022-12-09

Family

ID=71197892

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021549843A Active JP7186892B2 (ja) 2020-02-20 2020-02-20 マルチプレーンメモリデバイスをプログラミングする方法

Country Status (7)

Country Link
US (3) US11133077B2 (ja)
EP (2) EP3899711B1 (ja)
JP (1) JP7186892B2 (ja)
KR (2) KR102709099B1 (ja)
CN (2) CN112965667B (ja)
TW (1) TWI747219B (ja)
WO (1) WO2021163945A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112965667B (zh) * 2020-02-20 2024-08-16 长江存储科技有限责任公司 对多平面存储器件进行编程的方法和多平面存储器件
CN114171092A (zh) * 2020-04-23 2022-03-11 长江存储科技有限责任公司 存储器件及其编程方法
US11657883B2 (en) * 2021-07-22 2023-05-23 Western Digital Technologies, Inc. Isolating problematic memory planes to avoid neighbor plan disturb
KR20230108332A (ko) * 2021-08-30 2023-07-18 양쯔 메모리 테크놀로지스 씨오., 엘티디. 메모리 디바이스, 메모리 디바이스의 동작 방법 및 메모리 시스템
WO2023028898A1 (zh) * 2021-08-31 2023-03-09 长江存储科技有限责任公司 存储装置的编程方法、存储装置及存储系统
CN113539336B (zh) * 2021-09-14 2021-12-14 浙江地芯引力科技有限公司 存储器电路系统、设备及写入方法
US11967383B2 (en) 2022-01-20 2024-04-23 Western Digital Technologies, Inc. Non-volatile memory with enhanced program operation for last state on slow plane
US11862256B2 (en) 2022-02-22 2024-01-02 Sandisk Technologies Llc Non-volatile memory with plane independent screening
CN118262770A (zh) * 2022-12-26 2024-06-28 长江存储科技有限责任公司 数字验证失败位计数(vfc)电路

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008198337A (ja) 2007-01-17 2008-08-28 Toshiba Corp 半導体記憶装置
JP2013073657A (ja) 2011-09-28 2013-04-22 Winbond Electronics Corp 半導体記憶装置
US10134474B1 (en) 2017-10-20 2018-11-20 Sandisk Technologies Llc Independent state completion for each plane during flash memory programming

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1055688A (ja) * 1996-08-12 1998-02-24 Sony Corp 不揮発性半導体記憶装置
KR100335769B1 (ko) * 1999-12-29 2002-05-09 박종섭 플래쉬 메모리 소자의 프로그램 방법
US6504742B1 (en) * 2001-10-31 2003-01-07 Hewlett-Packard Company 3-D memory device for large storage capacity
US6920523B2 (en) * 2002-10-07 2005-07-19 Infineon Technologies Ag Bank address mapping according to bank retention time in dynamic random access memories
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
KR100590388B1 (ko) * 2005-03-10 2006-06-19 주식회사 하이닉스반도체 멀티-플레인 타입 플래쉬 메모리 장치와, 그 프로그램 동작및 리드 동작 제어 방법
CN101218651B (zh) * 2005-03-31 2013-06-12 桑迪士克科技公司 非易失性存储器系统及软编程方法
US7768836B2 (en) * 2008-10-10 2010-08-03 Sandisk Corporation Nonvolatile memory and method with reduced program verify by ignoring fastest and/or slowest programming bits
US8400854B2 (en) * 2009-09-11 2013-03-19 Sandisk Technologies Inc. Identifying at-risk data in non-volatile storage
US8174895B2 (en) * 2009-12-15 2012-05-08 Sandisk Technologies Inc. Programming non-volatile storage with fast bit detection and verify skip
KR101088450B1 (ko) * 2009-12-31 2011-12-01 주식회사 하이닉스반도체 반도체 메모리 장치
US8248850B2 (en) * 2010-01-28 2012-08-21 Sandisk Technologies Inc. Data recovery for non-volatile memory based on count of data state-specific fails
US9122476B2 (en) * 2010-12-07 2015-09-01 Advanced Micro Devices, Inc. Programmable atomic memory using hardware validation agent
US9003102B2 (en) * 2011-08-26 2015-04-07 Sandisk Technologies Inc. Controller with extended status register and method of use therewith
KR101855169B1 (ko) * 2011-10-13 2018-05-09 삼성전자주식회사 불휘발성 메모리 장치, 불휘발성 메모리 장치의 프로그램 방법, 불휘발성 메모리 장치를 포함하는 메모리 시스템
KR20130072667A (ko) * 2011-12-22 2013-07-02 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이의 동작방법
US9043661B2 (en) * 2012-05-30 2015-05-26 Micron Technology, Inc. Memories and methods for performing column repair
KR102137075B1 (ko) * 2013-09-10 2020-07-23 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 프로그램 방법
KR102235492B1 (ko) * 2014-08-25 2021-04-05 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 검증 방법
KR20160072706A (ko) * 2014-12-15 2016-06-23 에스케이하이닉스 주식회사 반도체 장치 및 이의 동작 방법
US9543023B2 (en) * 2015-01-23 2017-01-10 Sandisk Technologies Llc Partial block erase for block programming in non-volatile memory
US9672920B2 (en) * 2015-03-13 2017-06-06 Macronix International Co., Ltd. Electronic device, non-volatile memorty device, and programming method
TWI537964B (zh) * 2015-04-20 2016-06-11 華邦電子股份有限公司 反及閘快閃記憶體和其操作方法
US9570179B2 (en) * 2015-04-22 2017-02-14 Sandisk Technologies Llc Non-volatile memory with two phased programming
KR102313017B1 (ko) * 2015-08-21 2021-10-18 삼성전자주식회사 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 쓰기를 제어하는 컨트롤러를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법
US20170123994A1 (en) * 2015-10-28 2017-05-04 Sandisk Technologies Inc. Handling Of Plane Failure In Non-Volatile Storage
KR102391514B1 (ko) * 2015-11-04 2022-04-27 삼성전자주식회사 메모리 장치 및 메모리 장치의 동작 방법
US10026487B2 (en) * 2016-06-03 2018-07-17 Sandisk Technologies Llc Non-volatile memory with customized control of injection type of disturb during program verify for improved program performance
KR102651425B1 (ko) * 2016-06-30 2024-03-28 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20180062158A (ko) * 2016-11-30 2018-06-08 삼성전자주식회사 루프 상태 정보를 생성하는 불휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 방법
JP7234141B2 (ja) * 2017-05-31 2023-03-07 マイクロソフト テクノロジー ライセンシング,エルエルシー Ipsecの地理的冗長性のための分離した制御プレーンおよびデータプレーンの同期
US10360947B2 (en) * 2017-08-31 2019-07-23 Micron Technology, Inc. NAND cell encoding to improve data integrity
CN109509503B (zh) * 2017-09-14 2021-07-16 旺宏电子股份有限公司 编程非易失性存储器的方法及存储器系统
US10614886B2 (en) * 2017-09-22 2020-04-07 Samsung Electronics Co., Ltd. Nonvolatile memory device and a method of programming the nonvolatile memory device
KR102524916B1 (ko) * 2018-03-13 2023-04-26 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
CN108549588A (zh) * 2018-03-27 2018-09-18 深圳忆联信息系统有限公司 一种消除tlc闪存多片编程失败的方法
CN110400594A (zh) * 2018-04-24 2019-11-01 中国科学院微电子研究所 一种闪存存储器及其编程验证系统和编程验证方法
US10726923B2 (en) * 2018-11-21 2020-07-28 Sandisk Technologies Llc Bias scheme for dummy lines of data storage devices
CN110619916A (zh) * 2019-08-12 2019-12-27 长江存储科技有限责任公司 存储器编程方法、装置、电子设备及可读存储介质
CN112965667B (zh) * 2020-02-20 2024-08-16 长江存储科技有限责任公司 对多平面存储器件进行编程的方法和多平面存储器件

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008198337A (ja) 2007-01-17 2008-08-28 Toshiba Corp 半導体記憶装置
JP2013073657A (ja) 2011-09-28 2013-04-22 Winbond Electronics Corp 半導体記憶装置
US10134474B1 (en) 2017-10-20 2018-11-20 Sandisk Technologies Llc Independent state completion for each plane during flash memory programming

Also Published As

Publication number Publication date
EP3899711A4 (en) 2022-07-27
CN112965667A (zh) 2021-06-15
KR102709099B1 (ko) 2024-09-23
JP2022524728A (ja) 2022-05-10
EP4332973A3 (en) 2024-05-01
KR20210109593A (ko) 2021-09-06
EP3899711B1 (en) 2024-02-07
CN112965667B (zh) 2024-08-16
TWI747219B (zh) 2021-11-21
US11776641B2 (en) 2023-10-03
US20230368853A1 (en) 2023-11-16
US20210383882A1 (en) 2021-12-09
CN111356980A (zh) 2020-06-30
WO2021163945A1 (en) 2021-08-26
TW202133168A (zh) 2021-09-01
KR20240135689A (ko) 2024-09-11
EP3899711A1 (en) 2021-10-27
US11133077B2 (en) 2021-09-28
EP4332973A2 (en) 2024-03-06
US20210264994A1 (en) 2021-08-26
CN111356980B (zh) 2021-03-12

Similar Documents

Publication Publication Date Title
JP7186892B2 (ja) マルチプレーンメモリデバイスをプログラミングする方法
KR101184866B1 (ko) 불휘발성 메모리 장치 및 이의 동작 방법
KR20160117713A (ko) 반도체 장치 및 그것의 동작 방법
CN111833949A (zh) 存储器控制器、存储器系统及其操作方法
US9293213B2 (en) Sensing data stored in memory
CN111615731B (zh) 存储器件及其编程方法
US20230143677A1 (en) Methods for programming a memory device, memory devices, and memory systems
KR102702652B1 (ko) 메모리 장치
TWI740780B (zh) 半導體儲存裝置以及讀出方法
US20240120008A1 (en) Nonvolatile memory device including selection transistors and operating method thereof
CN118629469A (zh) 减少编程上升时间的闪存存储器及其编程方法
CN118629476A (zh) 存储器装置及其操作方法
CN116137161A (zh) 存储器装置及操作存储器装置的方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210825

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220719

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221017

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221129

R150 Certificate of patent or registration of utility model

Ref document number: 7186892

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150