JP7414669B2 - memory system - Google Patents

memory system Download PDF

Info

Publication number
JP7414669B2
JP7414669B2 JP2020144847A JP2020144847A JP7414669B2 JP 7414669 B2 JP7414669 B2 JP 7414669B2 JP 2020144847 A JP2020144847 A JP 2020144847A JP 2020144847 A JP2020144847 A JP 2020144847A JP 7414669 B2 JP7414669 B2 JP 7414669B2
Authority
JP
Japan
Prior art keywords
data
program
threshold
bit
memory
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
JP2020144847A
Other languages
Japanese (ja)
Other versions
JP2022002160A (en
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.)
Kioxia Corp
Original Assignee
Kioxia Corp
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 Kioxia Corp filed Critical Kioxia Corp
Priority to US17/016,765 priority Critical patent/US11238924B2/en
Priority to US17/545,470 priority patent/US11646076B2/en
Publication of JP2022002160A publication Critical patent/JP2022002160A/en
Priority to US18/295,504 priority patent/US11967368B2/en
Application granted granted Critical
Publication of JP7414669B2 publication Critical patent/JP7414669B2/en
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/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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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/0656Data buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)
  • Semiconductor Memories (AREA)
  • Non-Volatile Memory (AREA)
  • Vehicle Body Suspensions (AREA)
  • Iron Core Of Rotating Electric Machines (AREA)
  • Soundproofing, Sound Blocking, And Sound Damping (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本開示の実施形態は、メモリシステムに関する。 Embodiments of the present disclosure relate to memory systems.

NAND型フラッシュメモリでは、メモリセルに複数ビットからなる多値データを書き込むのが一般的であり、メモリセルに3ビットからなる多値データを書き込むTLC(Triple Level Cell)技術が実用化されている。今後は、4ビットからなる多値データを書き込むQLC(Quadruple Level Cell)技術が主流になると考えられている。 In NAND flash memory, it is common to write multi-value data consisting of multiple bits into memory cells, and TLC (Triple Level Cell) technology, which writes multi-value data consisting of 3 bits into memory cells, has been put into practical use. . In the future, it is thought that QLC (Quadruple Level Cell) technology, which writes multivalued data consisting of 4 bits, will become mainstream.

QLCでは、セル間相互干渉を避けるため、第1のメモリセルに4ビットデータを同時に書き込んだ後、隣接セルにも同様に4ビットデータを同時に書き込み、その後に、再び第1のメモリセルに4ビットデータを同時に再書き込みする手法が検討されている。しかしながら、この手法では、再書き込みが完了するまで4ビットデータをメモリコントローラ内の書込みバッファに保持しておく必要がある。 In QLC, in order to avoid mutual interference between cells, 4-bit data is simultaneously written into the first memory cell, 4-bit data is written simultaneously into the adjacent cell, and then 4-bit data is written into the first memory cell again. A method of simultaneously rewriting bit data is being considered. However, this technique requires that 4-bit data be held in a write buffer within the memory controller until rewriting is complete.

近年のNANDメモリは3次元化されており、必要とされる書き込みバッファのメモリ容量が増大し、書込みバッファを内蔵したメモリコントローラのコストが高くなるという問題がある。このため、3次元の不揮発性メモリにおいても、メモリコントローラの書き込みバッファ量を低減する対策が必要である。 In recent years, NAND memories have become three-dimensional, which increases the memory capacity of the write buffer required, resulting in an increase in the cost of a memory controller with a built-in write buffer. Therefore, even in three-dimensional nonvolatile memory, measures are required to reduce the write buffer amount of the memory controller.

セル間相互干渉を避けつつ、メモリコントローラの書き込みバッファ量を削減する対策として、メモリセルに各ビットのデータを書き込む際に、2つのステージに分けて書き込むことで、全ビットデータの再書き込みを不要とする手法が知られている。 As a measure to reduce the write buffer size of the memory controller while avoiding mutual interference between cells, when writing each bit of data to a memory cell, it is written in two stages, eliminating the need to rewrite all bits of data. There are known methods to do this.

しかしながら、この手法では、メモリセルに各ビットデータを書き込む際のビットエラー率の偏りが大きいという問題がある。 However, this method has a problem in that the bit error rate when writing each bit data to the memory cell is highly biased.

QLC技術の信頼性を向上するには、セル間相互干渉を避け、かつメモリコントローラ内の書き込みバッファの容量を削減し、かつ各ビットデータを書き込む際のビットエラー率の偏りを抑制する必要がある。 To improve the reliability of QLC technology, it is necessary to avoid mutual interference between cells, reduce the capacity of the write buffer in the memory controller, and suppress the bias in the bit error rate when writing each bit of data. .

特開2018-5959号公報JP 2018-5959 Publication

本開示の一態様では、セル間相互干渉を避け、かつメモリコントローラ内の書き込みバッファの容量を削減し、かつ各ビットデータを書き込む際のビットエラー率の偏りを抑制できるメモリシステムを提供するものである。 One aspect of the present disclosure provides a memory system that can avoid mutual interference between cells, reduce the capacity of a write buffer in a memory controller, and suppress bias in bit error rate when writing each bit data. be.

本実施形態によれば、各々が、データが消去された消去状態を示す第1のしきい値領域と、前記第1のしきい値領域よりも電圧レベルが高くデータが書き込まれた書き込み状態を示す第2乃至第16のしきい値領域とを含む16個のしきい値領域により、第1乃至第4ビットで表わせられる4ビットのデータを記憶可能な複数のメモリセルを有する不揮発性メモリと、
前記第1ビット、前記第2ビット、前記第4ビットのデータを書き込む第1プログラムを前記不揮発性メモリに行わせた後に、前記第3ビットのデータを書き込む第2プログラムを前記不揮発性メモリに行わせるメモリコントローラと、
を備え、
前記第1乃至第16のしきい値領域のうち隣接するしきい値領域間に存在する15個の境界のうち、前記第1ビットのデータの値の判定に用いられる第1の境界の数、前記第2ビットのデータの値の判定に用いられる第2の境界の数、前記第3ビットのデータの値の判定に用いられる第3の境界の数、前記第4ビットのデータの値の判定に用いられる第4の境界の数のうち最大の値は5であり、二番目に大きな値は4であり、
前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第1ビット、前記第2ビット、前記第4ビットのデータに応じて、データが消去された消去状態を示す第17のしきい値領域と、前記第17のしきい値領域よりも電圧レベルが高くデータが書き込まれた書き込み状態を示す第18乃至第24のしきい値領域のいずれかのしきい値領域となるように前記第1プログラムを前記不揮発性メモリに行わせるように構成され、 前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第3ビットのデータに応じて、前記第17乃至第24のしきい値領域のうちいずれかのしきい値領域から前記第1乃至第16のしきい値領域のうちの2個のしきい値領域内のいずれかのしきい値領域となるように前記第2プログラムを前記不揮発性メモリに行わせるように構成され、
前記2個のしきい値領域のうち電圧レベルが最低のしきい値領域と電圧レベルが最高のしきい値領域との間にあるしきい値領域の個数が2個以内であり、
前記メモリコントローラは、前記第2プログラムを前記不揮発性メモリに行わせる場合に、前記第2ビットのデータと前記第3ビットのデータとを前記不揮発性メモリへ入力するように構成される、メモリシステムが提供される。
According to the present embodiment, each has a first threshold area indicating an erased state in which data is erased, and a written state in which data is written at a voltage level higher than the first threshold area. A non-volatile memory having a plurality of memory cells capable of storing 4-bit data represented by the 1st to 4th bits by 16 threshold areas including the second to 16th threshold areas shown in FIG. ,
After causing the nonvolatile memory to execute a first program for writing the data of the first bit, the second bit, and the fourth bit, a second program for writing the data of the third bit is executed for the nonvolatile memory. memory controller,
Equipped with
The number of first boundaries used to determine the value of the first bit data among the 15 boundaries existing between adjacent threshold areas among the first to 16th threshold areas; the number of second boundaries used to determine the value of the second bit data; the number of third boundaries used to determine the value of the third bit data; and the determination of the value of the fourth bit data. The maximum value of the number of fourth boundaries used for is 5, the second largest value is 4,
The memory controller is configured such that a threshold region in the memory cell has a seventeenth threshold value indicating an erased state in which data is erased according to data of the first bit, the second bit, and the fourth bit. area and the 18th to 24th threshold areas, which indicate a write state in which data is written and whose voltage level is higher than the 17th threshold area. The memory controller is configured to cause the nonvolatile memory to perform one program, and the memory controller is configured to set the threshold area of the memory cell to the seventeenth to twenty-fourth threshold values according to the data of the third bit. The second program is configured to change from one of the threshold areas to one of the two threshold areas among the first to sixteenth threshold areas. configured to cause the non-volatile memory to perform;
The number of threshold regions between the threshold region with the lowest voltage level and the threshold region with the highest voltage level among the two threshold regions is 2 or less,
The memory system is configured such that the memory controller inputs the second bit data and the third bit data to the nonvolatile memory when causing the nonvolatile memory to execute the second program. is provided.

第1の実施形態によるメモリシステムの概略構成を示すブロック図。FIG. 1 is a block diagram showing a schematic configuration of a memory system according to a first embodiment. 本実施形態の不揮発性メモリの内部構成の一例を示すブロック図。FIG. 2 is a block diagram showing an example of the internal configuration of a nonvolatile memory according to the present embodiment. 3次元構造のNANDメモリセルアレイの一例を示す回路図。FIG. 2 is a circuit diagram showing an example of a NAND memory cell array having a three-dimensional structure. 3次元構造のNANDメモリのNANDメモリセルアレイの一部領域の断面図。FIG. 2 is a cross-sectional view of a partial region of a NAND memory cell array of a three-dimensional NAND memory. 第1の実施形態のしきい値領域の一例を示す図。FIG. 3 is a diagram showing an example of a threshold region according to the first embodiment. 第1の実施形態のデータコーディングの一例を示す図。FIG. 3 is a diagram showing an example of data coding according to the first embodiment. 第1の実施形態のデータコーディングの他の一例を示す図。The figure which shows another example of data coding of 1st Embodiment. 第1の実施形態におけるプログラム後のしきい値領域を示す図。FIG. 3 is a diagram showing a threshold area after programming in the first embodiment. 第1の実施形態のプログラム順序の第1例を示す図。FIG. 3 is a diagram showing a first example of the program order of the first embodiment. 第1の実施形態のプログラム順序の第2例を示す図。FIG. 7 is a diagram showing a second example of the program order of the first embodiment. 第1の実施形態のプログラム順序の第3例を示す図。FIG. 7 is a diagram showing a third example of the program order of the first embodiment. 第1の実施形態による1ブロック分全体の書き込み手順の第1例を示すフローチャート。2 is a flowchart showing a first example of a procedure for writing an entire block according to the first embodiment. 第1の実施形態による1stステージにおける書き込み手順を示すフローチャート。5 is a flowchart showing a write procedure in the 1st stage according to the first embodiment. 2ndステージの書込み手順の第1例を示すフローチャート。5 is a flowchart showing a first example of a writing procedure in the 2nd stage. 複数回数の読み出し結果の多数決処理を説明するための図。FIG. 6 is a diagram for explaining majority decision processing of the results of reading a plurality of times. 第1の実施形態に係る2ndステージでの書き込み手順の変形例を示すフローチャート。7 is a flowchart showing a modification of the writing procedure in the 2nd stage according to the first embodiment. 4-3-4-4データコーディングを採用したFoggy-Fineプログラムにおける書き込みバッファのデータ量を説明する図。The figure explaining the data amount of the write buffer in the Foggy-Fine program which adopted 4-3-4-4 data coding. 本実施形態における書き込みバッファのデータ量を説明する図。FIG. 3 is a diagram illustrating the amount of data in a write buffer in this embodiment. 1stステージまでプログラムが完了しているワード線でのページ読み出しの処理手順を示すフローチャート。12 is a flowchart showing a page read processing procedure for a word line whose programming has been completed up to the 1st stage. 2ndステージまでプログラムが完了しているワード線でのページ読み出しの処理手順を示すフローチャート。7 is a flowchart showing a page read processing procedure for a word line whose programming has been completed up to the 2nd stage. 一変形例によるページ読み出し処理に適したデータコーディングを示す図。FIG. 7 is a diagram illustrating data coding suitable for page read processing according to a modified example. 一変形例による読出し処理手順を示すフローチャート。7 is a flowchart showing a read processing procedure according to a modified example. 選択ワード線、ReadyBusy信号線、出力データ線の電圧波形図。Voltage waveform diagram of selected word line, ReadyBusy signal line, and output data line. 1-5-4-5データコーディングの一例を示す図。The figure which shows an example of 1-5-4-5 data coding. 1-5-4-5データコーディングの一例を示す図。The figure which shows an example of 1-5-4-5 data coding. 3-5-2-5データコーディングの一例を示す図。3-5-2-5 A diagram showing an example of data coding. 3-3-4-5データコーディングの一例を示す図。3-3-4-5 A diagram showing an example of data coding. 2-3-5-5データコーディングの一例を示す図。2-3-5-5 A diagram showing an example of data coding. 3-2-5-5データコーディングの一例を示す図。3-2-5-5 A diagram showing an example of data coding. 3-4-4-4データコーディングの一例を示す図。The figure which shows an example of 3-4-4-4 data coding. 3-4-4-4データコーディングの一例を示す図。The figure which shows an example of 3-4-4-4 data coding. 1-4-5-5データコーディングの一例を示す図。The figure which shows an example of 1-4-5-5 data coding. 2-5-3-5データコーディングの一例を示す図。2-5-3-5 A diagram showing an example of data coding. 3-4-5-3データコーディングの一例を示す図。3-4-5-3 A diagram showing an example of data coding. 3-2-5-5データコーディングの一例を示す図。3-2-5-5 A diagram showing an example of data coding. 3-2-5-5データコーディングの一例を示す図。3-2-5-5 A diagram showing an example of data coding. 1-5-5-4データコーディングの一例を示す図。The figure which shows an example of 1-5-5-4 data coding. 1-5-4-5データコーディングの一例を示す図。The figure which shows an example of 1-5-4-5 data coding. 1-4-5-5データコーディングの一例を示す図。The figure which shows an example of 1-4-5-5 data coding. 1-5-3-6データコーディングの一例を示す図。1-5-3-6 A diagram showing an example of data coding. 1-3-6-5データコーディングの一例を示す図。1-3-6-5 A diagram showing an example of data coding. 1-2-6-6データコーディングの一例を示す図。1-2-6-6 A diagram showing an example of data coding. 1-2-6-6データコーディングの一例を示す図。1-2-6-6 A diagram showing an example of data coding. 1-2-6-6データコーディングの一例を示す図。1-2-6-6 A diagram showing an example of data coding. 1-4-6-4データコーディングの一例を示す図。The figure which shows an example of 1-4-6-4 data coding. 1-4-4-6データコーディングの一例を示す図。The figure which shows an example of 1-4-4-6 data coding. 1-4-6-4データコーディングの一例を示す図。The figure which shows an example of 1-4-6-4 data coding. 1-4-4-6データコーディングの一例を示す図。The figure which shows an example of 1-4-4-6 data coding. 2-5-2-6データコーディングの一例を示す図。2-5-2-6 A diagram showing an example of data coding. 2-5-2-6データコーディングの一例を示す図。2-5-2-6 A diagram showing an example of data coding. 2-5-2-6データコーディングの一例を示す図。2-5-2-6 A diagram showing an example of data coding. 3-3-3-6データコーディングの一例を示す図。3-3-3-6 A diagram showing an example of data coding. 3-3-6-3データコーディングの一例を示す図。3-3-6-3 A diagram showing an example of data coding. 2-3-4-6データコーディングの一例を示す図。2-3-4-6 A diagram showing an example of data coding. 3-4-2-6データコーディングの一例を示す図。3-4-2-6 A diagram showing an example of data coding. 2-3-4-6データコーディングの一例を示す図。2-3-4-6 A diagram showing an example of data coding. 3-2-6-4データコーディングの一例を示す図。3-2-6-4 A diagram showing an example of data coding. 3-2-4-6データコーディングの一例を示す図。3-2-4-6 A diagram showing an example of data coding. 3-2-6-4データコーディングの一例を示す図。3-2-6-4 A diagram showing an example of data coding. 3-4-2-6データコーディングの一例を示す図。3-4-2-6 A diagram showing an example of data coding. 3-2-4-6データコーディングの一例を示す図。3-2-4-6 A diagram showing an example of data coding. 5-3-2-5データコーディングの一例を示す図。5-3-2-5 A diagram showing an example of data coding. 3-5-2-5データコーディングの一例を示す図。3-5-2-5 A diagram showing an example of data coding. 3-2-5-5データコーディングの一例を示す図。3-2-5-5 A diagram showing an example of data coding. 2-3-5-5データコーディングの一例を示す図。2-3-5-5 A diagram showing an example of data coding. 2-3-5-5データコーディングの一例を示す図。2-3-5-5 A diagram showing an example of data coding. 2-3-5-5データコーディングの一例を示す図。2-3-5-5 A diagram showing an example of data coding. 5-4-2-4データコーディングの一例を示す図。5-4-2-4 A diagram showing an example of data coding. 4-5-2-4データコーディングの一例を示す図。4-5-2-4 A diagram showing an example of data coding. 5-4-2-4データコーディングの一例を示す図。5-4-2-4 A diagram showing an example of data coding. 2-4-5-4データコーディングの一例を示す図。The figure which shows an example of 2-4-5-4 data coding. 2-4-5-4データコーディングの一例を示す図。The figure which shows an example of 2-4-5-4 data coding. 2-5-4-4データコーディングの一例を示す図。The figure which shows an example of 2-5-4-4 data coding. 2-5-4-4データコーディングの一例を示す図。The figure which shows an example of 2-5-4-4 data coding. 2-5-4-4データコーディングの一例を示す図。The figure which shows an example of 2-5-4-4 data coding. 1-5-4-5データコーディングの一例を示す図。The figure which shows an example of 1-5-4-5 data coding. 1-4-5-5データコーディングの一例を示す図。The figure which shows an example of 1-4-5-5 data coding. 1-5-5-4データコーディングの一例を示す図。The figure which shows an example of 1-5-5-4 data coding. 1-4-5-5データコーディングの一例を示す図。The figure which shows an example of 1-4-5-5 data coding. 1-5-5-4データコーディングの一例を示す図。The figure which shows an example of 1-5-5-4 data coding. 1-5-4-5データコーディングの一例を示す図。The figure which shows an example of 1-5-4-5 data coding. 1-5-5-4データコーディングの一例を示す図。The figure which shows an example of 1-5-5-4 data coding. 1-5-4-5データコーディングの一例を示す図。The figure which shows an example of 1-5-4-5 data coding. 1-4-5-5データコーディングの一例を示す図。The figure which shows an example of 1-4-5-5 data coding. 1-4-5-5データコーディングの一例を示す図。The figure which shows an example of 1-4-5-5 data coding. 1-4-5-5データコーディングの一例を示す図。The figure which shows an example of 1-4-5-5 data coding. 1-4-5-5データコーディングの一例を示す図。The figure which shows an example of 1-4-5-5 data coding. 3-5-4-3データコーディングの一例を示す図。3-5-4-3 A diagram showing an example of data coding. 3-4-5-3データコーディングの一例を示す図。3-4-5-3 A diagram showing an example of data coding. 3-5-3-4データコーディングの一例を示す図。3-5-3-4 A diagram showing an example of data coding. 3-4-3-5データコーディングの一例を示す図。3-4-3-5 A diagram showing an example of data coding. 3-4-5-3データコーディングの一例を示す図。3-4-5-3 A diagram showing an example of data coding. 3-4-3-5データコーディングの一例を示す図。3-4-3-5 A diagram showing an example of data coding. 3-3-5-4データコーディングの一例を示す図。3-3-5-4 A diagram showing an example of data coding. 3-3-5-4データコーディングの一例を示す図。3-3-5-4 A diagram showing an example of data coding. 4-5-3-3データコーディングの一例を示す図。4-5-3-3 A diagram showing an example of data coding. 3-5-4-3データコーディングの一例を示す図。3-5-4-3 A diagram showing an example of data coding. 3-4-5-3データコーディングの一例を示す図。3-4-5-3 A diagram showing an example of data coding. 3-3-4-5データコーディングの一例を示す図。3-3-4-5 A diagram showing an example of data coding. 3-3-4-5データコーディングの一例を示す図。3-3-4-5 A diagram showing an example of data coding. 3-3-4-5データコーディングの一例を示す図。3-3-4-5 A diagram showing an example of data coding. 3-4-5-3データコーディングの一例を示す図。3-4-5-3 A diagram showing an example of data coding. 3-3-5-4データコーディングの一例を示す図。3-3-5-4 A diagram showing an example of data coding. 3-3-4-5データコーディングの一例を示す図。3-3-4-5 A diagram showing an example of data coding. 4-3-4-4データコーディングの一例を示す図。The figure which shows an example of 4-3-4-4 data coding. 3-4-4-4データコーディングの一例を示す図。The figure which shows an example of 3-4-4-4 data coding. 3-4-4-4データコーディングの一例を示す図。The figure which shows an example of 3-4-4-4 data coding. 4-3-4-4データコーディングの一例を示す図。FIG. 4 is a diagram showing an example of 4-3-4-4 data coding. 3-4-4-4データコーディングの一例を示す図。The figure which shows an example of 3-4-4-4 data coding. 3-4-4-4データコーディングの一例を示す図。The figure which shows an example of 3-4-4-4 data coding. 3-4-4-4データコーディングの一例を示す図。The figure which shows an example of 3-4-4-4 data coding. 3-4-4-4データコーディングの一例を示す図。The figure which shows an example of 3-4-4-4 data coding. 4-4-3-4データコーディングの一例を示す図。FIG. 4 is a diagram showing an example of 4-4-3-4 data coding. 4-4-3-4データコーディングの一例を示す図。FIG. 4 is a diagram showing an example of 4-4-3-4 data coding. 第3の実施形態に係る1ブロック分全体の書き込み手順を示すフローチャート。12 is a flowchart showing the entire writing procedure for one block according to the third embodiment. 第3の実施形態に係る1stステージ及び2ndステージにおける書き込み手順を示すフローチャート。10 is a flowchart showing a write procedure in a 1st stage and a 2nd stage according to a third embodiment. 第3の実施形態のプログラムにおける書き込みバッファ量を説明するための図。FIG. 7 is a diagram for explaining the write buffer amount in the program of the third embodiment.

図1は第1の実施形態によるメモリシステム1の概略構成を示すブロック図である。図1のメモリシステム1は、メモリコントローラ2と不揮発性メモリ3とを備える。図1のメモリシステム1は、ホストプロセッサ(以下、単にホストと呼ぶ)4と接続可能である。ホスト4は、例えば、パーソナルコンピュータ、携帯端末などの電子機器である。 FIG. 1 is a block diagram showing a schematic configuration of a memory system 1 according to the first embodiment. The memory system 1 in FIG. 1 includes a memory controller 2 and a nonvolatile memory 3. The memory system 1 in FIG. 1 is connectable to a host processor (hereinafter simply referred to as host) 4. The host 4 is, for example, an electronic device such as a personal computer or a mobile terminal.

不揮発性メモリ3は、データを不揮発に記憶するメモリであり、例えば、NANDフラッシュメモリ(以下、NANDメモリと呼ぶこともある)5を備えている。本実施形態では、不揮発性メモリ3が、メモリセルあたり4ビットのデータを記憶可能なメモリセルを有する4ビット/Cell(QLC:Quad Level Cell)のNANDメモリ5である例を説明する。本実施形態による不揮発性メモリ3は、メモリセルが立体的に積層された3次元構造を有する。不揮発性メモリ3は、各々が、データが消去された消去状態を示す第1のしきい値領域と、第1のしきい値領域よりも電圧レベルが高くデータが書き込まれた書き込み状態を示す第2乃至第16のしきい値領域とを含む16個のしきい値領域により、第1乃至第4ビットで表わせられる4ビットのデータを記憶可能な複数のメモリセルを有する。例えば、第1ビットは最下位のLowerビット、前記第2ビットは二番目に小さいMiddleビット、前記第3ビットは二番目に大きいUpperビット、前記第4ビットは最上位のTopビットである。 The nonvolatile memory 3 is a memory that stores data in a nonvolatile manner, and includes, for example, a NAND flash memory (hereinafter sometimes referred to as a NAND memory) 5. In this embodiment, an example will be described in which the nonvolatile memory 3 is a 4-bit/Cell (QLC: Quad Level Cell) NAND memory 5 having memory cells that can store 4-bit data per memory cell. The nonvolatile memory 3 according to this embodiment has a three-dimensional structure in which memory cells are stacked three-dimensionally. Each of the nonvolatile memories 3 has a first threshold area indicating an erased state in which data is erased, and a first threshold area indicating a written state in which data is written at a voltage level higher than the first threshold area. It has a plurality of memory cells capable of storing 4-bit data represented by the 1st to 4th bits by 16 threshold regions including the 2nd to 16th threshold regions. For example, the first bit is the least significant Lower bit, the second bit is the second smallest Middle bit, the third bit is the second largest Upper bit, and the fourth bit is the most significant Top bit.

メモリコントローラ2は、ホスト4からの書き込みコマンドに従って不揮発性メモリ3へのデータの書き込みを制御する。また、メモリコントローラ2は、ホスト4からの読み出しコマンドに従って不揮発性メモリ3からのデータの読み出しを制御する。メモリコントローラ2は、RAM(Random Access Memory)6、ROM(Read Only Memory)7、プロセッサ8、ホストインターフェイス9、ECC(Error Check and Correct)回路10及びメモリインターフェイス11を備える。RAM6、プロセッサ8、ホストインターフェイス9、ECC回路10及びメモリインターフェイス11は、共通の内部バス12で接続される。 The memory controller 2 controls writing of data to the nonvolatile memory 3 according to a write command from the host 4. Furthermore, the memory controller 2 controls reading of data from the nonvolatile memory 3 according to a read command from the host 4. The memory controller 2 includes a RAM (Random Access Memory) 6, a ROM (Read Only Memory) 7, a processor 8, a host interface 9, an ECC (Error Check and Correct) circuit 10, and a memory interface 11. The RAM 6, processor 8, host interface 9, ECC circuit 10, and memory interface 11 are connected by a common internal bus 12.

後述するように、本実施形態のメモリコントローラ2は、第1ビット、第2ビット、第4ビットのデータを書き込む第1プログラムを不揮発性メモリ3に行わせた後に、第3ビットのデータを書き込む第2プログラムを不揮発性メモリ3に行わせる。第1乃至第16のしきい値領域のうち隣接するしきい値領域間に存在する15個の境界のうち、第1ビットのデータの値の判定に用いられる第1の境界の数、第2ビットのデータの値の判定に用いられる第2の境界の数、第3ビットのデータの値の判定に用いられる第3の境界の数、第4ビットのデータの値の判定に用いられる第4の境界の数のうち最大の値は5であり、二番目に大きな値は4である。メモリコントローラ2は、メモリセルにおけるしきい値領域が、第1ビット、第2ビット、第4ビットのデータに応じて、データが消去された消去状態を示す第17のしきい値領域と、第17のしきい値領域よりも電圧レベルが高くデータが書き込まれた書き込み状態を示す第18乃至第24のしきい値領域のいずれかのしきい値領域となるように第1プログラムを不揮発性メモリ3に行わせるように構成される。メモリコントローラ2は、メモリセルにおけるしきい値領域が、第3ビットのデータに応じて、第17乃至第24のしきい値領域のうちいずれかのしきい値領域から第1乃至第16のしきい値領域のうちの2個のしきい値領域内のいずれかのしきい値領域となるように第2プログラムを不揮発性メモリ3に行わせるように構成される。2個のしきい値領域のうち電圧レベルが最低のしきい値領域と電圧レベルが最高のしきい値領域との間にあるしきい値領域の個数が2個以内である。メモリコントローラ2は、第2プログラムを不揮発性メモリ3に行わせる場合に、第2ビットのデータと第3ビットのデータとを不揮発性メモリ3へ入力するように構成される。 As described later, the memory controller 2 of this embodiment causes the nonvolatile memory 3 to execute a first program for writing the data of the first bit, the second bit, and the fourth bit, and then writes the data of the third bit. The second program is caused to be executed in the nonvolatile memory 3. Among the 15 boundaries existing between adjacent threshold areas among the first to 16th threshold areas, the number of first boundaries used to determine the value of the data of the first bit, The number of second boundaries used to determine the value of the data of the bit, the number of third boundaries used to determine the value of the data of the third bit, and the number of the fourth boundary used to determine the value of the data of the fourth bit. The largest value of the number of boundaries is 5, and the second largest value is 4. The memory controller 2 is arranged such that the threshold area in the memory cell is a 17th threshold area indicating an erased state in which data is erased, and a The first program is programmed into the non-volatile memory so that the voltage level is higher than the 17th threshold area and the voltage level is higher than the 17th threshold area, indicating a written state in which data is written. 3. The memory controller 2 changes the threshold area in the memory cell from any one of the 17th to 24th threshold areas to the first to 16th threshold area according to the data of the third bit. The non-volatile memory 3 is configured to perform the second program so as to be set to one of the two threshold areas of the threshold areas. The number of threshold regions between the threshold region with the lowest voltage level and the threshold region with the highest voltage level among the two threshold regions is two or less. The memory controller 2 is configured to input second bit data and third bit data to the nonvolatile memory 3 when the nonvolatile memory 3 executes the second program.

より詳細には、メモリコントローラ2は、16個のしきい値領域(第1乃至第16のしきい値領域)間の15個の境界のうち、隣接するしきい値領域間で、第1ビットの値が異なる境界の数、第2ビットの値が異なる境界の数、第3ビットの値が異なる境界の数、及び第4ビットの値が異なる境界の数が順に(1、4、5、5)、(1、5、4、5)、又は(3、3、4、5)となるように第1プログラム及び第2プログラムを不揮発性メモリに行わせる。 More specifically, the memory controller 2 selects the first bit between adjacent threshold areas among 15 boundaries between 16 threshold areas (first to 16th threshold areas). The number of boundaries with different values of , the number of boundaries with different values of the second bit, the number of boundaries with different values of the third bit, and the number of boundaries with different values of the fourth bit are (1, 4, 5, 5) The first program and the second program are executed in the nonvolatile memory so that the program becomes (1, 5, 4, 5), or (3, 3, 4, 5).

あるいは、本実施形態のメモリコントローラ2は、第1ビット、第2ビット、第4ビットのデータを書き込む第1プログラムを不揮発性メモリ3に行わせた後に、第3ビットのデータを書き込む第2プログラムを不揮発性メモリ3に行わせる。第1乃至第16のしきい値領域のうち隣接するしきい値領域間に存在する15個の境界のうち、第1ビットのデータの値の判定に用いられる第1の境界の数、第2ビットのデータの値の判定に用いられる第2の境界の数、第3ビットのデータの値の判定に用いられる第3の境界の数、第4ビットのデータの値の判定に用いられる第4の境界の数は順に(3、5、2、5)である。メモリコントローラ2は、メモリセルにおけるしきい値領域が、第1ビット、第2ビット、第4ビットのデータに応じて、データが消去された消去状態を示す第17のしきい値領域と、第17のしきい値領域よりも電圧レベルが高くデータが書き込まれた書き込み状態を示す第18乃至第24のしきい値領域のいずれかのしきい値領域となるように第1プログラムを不揮発性メモリ3に行わせるように構成される。メモリコントローラ2は、メモリセルにおけるしきい値領域が、第3ビットのデータに応じて、第17乃至第24のしきい値領域のうちいずれかのしきい値領域から第1乃至第16のしきい値領域のうちの2個のしきい値領域内のいずれかのしきい値領域となるように第2プログラムを不揮発性メモリ3に行わせるように構成される。2個のしきい値領域のうち電圧レベルが最低のしきい値領域と電圧レベルが最高のしきい値領域との間にあるしきい値領域の個数が2個以内である。メモリコントローラ2は、第2プログラムを不揮発性メモリ3に行わせる場合に、第2ビットのデータと第3ビットのデータとを不揮発性メモリ3へ入力するように構成される。 Alternatively, the memory controller 2 of this embodiment causes the nonvolatile memory 3 to execute a first program for writing data of the first bit, second bit, and fourth bit, and then a second program for writing data of the third bit. The non-volatile memory 3 performs this. Among the 15 boundaries existing between adjacent threshold areas among the first to 16th threshold areas, the number of first boundaries used to determine the value of the data of the first bit, The number of second boundaries used to determine the value of the data of the bit, the number of third boundaries used to determine the value of the data of the third bit, and the number of the fourth boundary used to determine the value of the data of the fourth bit. The number of boundaries is (3, 5, 2, 5) in order. The memory controller 2 is arranged such that the threshold area in the memory cell is a 17th threshold area indicating an erased state in which data is erased, and a The first program is programmed into the non-volatile memory so that the voltage level is higher than the 17th threshold area and the voltage level is higher than the 17th threshold area, indicating a written state in which data is written. 3. The memory controller 2 changes the threshold area in the memory cell from any one of the 17th to 24th threshold areas to the first to 16th threshold area according to the data of the third bit. The non-volatile memory 3 is configured to perform the second program so as to be set to one of the two threshold areas of the threshold areas. The number of threshold regions between the threshold region with the lowest voltage level and the threshold region with the highest voltage level among the two threshold regions is two or less. The memory controller 2 is configured to input second bit data and third bit data to the nonvolatile memory 3 when the nonvolatile memory 3 executes the second program.

メモリコントローラ2は、第17乃至第24のしきい値領域のうち第2ビットのデータの値が異なる2つのしきい値領域の間の電圧レベルの差が、第1ビットのデータの値が異なる2つのしきい値領域の間の電圧レベルの差よりも小さく、かつ第4ビットのデータの値が異なる2つのしきい値領域の間の電圧レベルの差よりも小さくなるように第1プログラムを不揮発性メモリに行わせてもよい。 The memory controller 2 determines that the difference in voltage level between two threshold regions having different values of the data of the second bit among the seventeenth to twenty-fourth threshold regions is the difference in the voltage level between the two threshold regions having different values of the data of the first bit. The first program is performed so that the difference in voltage level between the two threshold regions is smaller than the difference in voltage level between the two threshold regions, and the value of the data of the fourth bit is smaller than the difference in voltage level between the two threshold regions. It may also be performed by non-volatile memory.

あるいは、メモリコントローラ2は、第2ビットのデータの値が異なる第1プログラム時の2つのしきい値領域の間隔よりも、2つのしきい値領域に対して第3ビットのデータにより第2プログラムを行って得られる4つのしきい値領域のうち隣接するしきい値領域の間隔が広くなるように、第2プログラムを不揮発性メモリに行わせてもよい。 Alternatively, the memory controller 2 may program the second threshold area with the data of the third bit for the two threshold areas, rather than the interval between the two threshold areas during the first programming in which the value of the data of the second bit is different. The second program may be performed in the nonvolatile memory so that the distance between adjacent threshold areas among the four threshold areas obtained by performing the above steps is wide.

ホストインターフェイス9は、ホスト4から受信したコマンド、ユーザデータ(書き込みデータ)などを内部バス12に出力する。また、ホストインターフェイス9は、不揮発性メモリ3から読み出されたユーザデータやプロセッサ8からの応答などをホスト4へ送信する。 The host interface 9 outputs commands, user data (write data), etc. received from the host 4 to the internal bus 12. Further, the host interface 9 transmits user data read from the nonvolatile memory 3, responses from the processor 8, etc. to the host 4.

メモリインターフェイス11は、プロセッサ8の指示に基づいて、ユーザデータ等を不揮発性メモリ3へ書き込む処理と不揮発性メモリ3から読み出す処理を制御する。 The memory interface 11 controls the process of writing user data and the like into the nonvolatile memory 3 and the process of reading it from the nonvolatile memory 3 based on instructions from the processor 8 .

プロセッサ8は、メモリコントローラ2を統括的に制御する。プロセッサ8は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等である。プロセッサ8は、ホスト4からホストインターフェイス9経由でコマンドを受けた場合に、そのコマンドに従った制御を行う。例えば、プロセッサ8は、ホスト4からのコマンドに従って、不揮発性メモリ3へのユーザデータ及びパリティの書き込みをメモリインターフェイス11へ指示する。また、プロセッサ8は、ホスト4からのコマンドに従って、不揮発性メモリ3からのユーザデータ及びパリティの読み出しを、メモリインターフェイス11へ指示する。 The processor 8 controls the memory controller 2 in an integrated manner. The processor 8 is, for example, a CPU (Central Processing Unit), an MPU (Micro Processing Unit), or the like. When the processor 8 receives a command from the host 4 via the host interface 9, it performs control according to the command. For example, the processor 8 instructs the memory interface 11 to write user data and parity to the nonvolatile memory 3 in accordance with a command from the host 4. Further, the processor 8 instructs the memory interface 11 to read user data and parity from the nonvolatile memory 3 in accordance with a command from the host 4 .

ユーザデータは、内部バス12経由でRAM6に格納される。プロセッサ8は、RAM6に格納されるユーザデータに対して、不揮発性メモリ3上の格納領域(メモリ領域)を決定する。プロセッサ8は、書き込み単位であるページ単位のデータ(ページデータ)に対して、不揮発性メモリ3上のメモリ領域を決定する。本明細書では、不揮発性メモリ3の1ページに格納されるユーザデータをユニットデータと定義する。ユニットデータは、一般には符号化されて符号語として不揮発性メモリ3に格納されるが、符号化は必須ではない。メモリコントローラ2は、符号化せずにユニットデータを不揮発性メモリ3に格納してもよいが、図1では、一構成例として符号化を行う構成を示している。メモリコントローラ2が符号化を行わない場合には、ページデータはユニットデータと一致する。また、1つのユニットデータに基づいて1つの符号語が生成されてもよいし、ユニットデータが分割された分割データに基づいて1つの符号語が生成されてもよい。また、複数のユニットデータを用いて1つの符号語が生成されてもよい。 User data is stored in RAM 6 via internal bus 12. Processor 8 determines a storage area (memory area) on nonvolatile memory 3 for user data stored in RAM 6. The processor 8 determines a memory area on the nonvolatile memory 3 for data in units of pages (page data) that are write units. In this specification, user data stored in one page of the nonvolatile memory 3 is defined as unit data. Unit data is generally encoded and stored in the nonvolatile memory 3 as a code word, but encoding is not essential. Although the memory controller 2 may store unit data in the nonvolatile memory 3 without encoding it, FIG. 1 shows a configuration in which encoding is performed as an example of the configuration. If the memory controller 2 does not perform encoding, the page data matches the unit data. Moreover, one code word may be generated based on one unit data, or one code word may be generated based on divided data obtained by dividing unit data. Further, one code word may be generated using a plurality of unit data.

プロセッサ8は、ユニットデータごとに書き込み先の不揮発性メモリ3のメモリ領域を決定する。不揮発性メモリ3のメモリ領域には物理アドレスが割当てられている。プロセッサ8は、ユニットデータの書き込み先のメモリ領域を、物理アドレスを用いて管理する。プロセッサ8は、決定したメモリ領域(物理アドレス)を指定してユーザデータを不揮発性メモリ3へ書き込むようメモリインターフェイス11へ指示する。一方、ホスト4は論理アドレスでデータを管理する。このため、プロセッサ8は、ユーザデータの論理アドレスと物理アドレスとの対応関係を管理する。プロセッサ8は、ホスト4からの論理アドレスを含む読み出しコマンドを受信した場合は、論理アドレスに対応する物理アドレスを特定し、物理アドレスを指定してユーザデータの読み出しをメモリインターフェイス11へ指示する。 The processor 8 determines the memory area of the nonvolatile memory 3 to which data will be written for each unit of data. A physical address is assigned to a memory area of the nonvolatile memory 3. The processor 8 manages the memory area to which unit data is written using physical addresses. The processor 8 instructs the memory interface 11 to designate the determined memory area (physical address) and write the user data into the nonvolatile memory 3. On the other hand, the host 4 manages data using logical addresses. Therefore, the processor 8 manages the correspondence between logical addresses and physical addresses of user data. When the processor 8 receives a read command including a logical address from the host 4, it identifies a physical address corresponding to the logical address, specifies the physical address, and instructs the memory interface 11 to read user data.

本明細書では、1つのワード線に共通に接続された複数のメモリセルをメモリセルグループMGと定義する。1つのメモリセルグループMGが書込み(プログラム)の単位になる。本実施形態では、不揮発性メモリ3は、4ビット/CellのNANDメモリ5であり、1つのメモリセルグループMGは4ビット×ビット数分のデータ量を有する。各メモリセルに書き込まれる各ビットは、それぞれ異なるページに対応する。本実施形態では、1つのメモリセルグループMGの4ページを、Lowerページ(第1のページ)、Middleページ(第2のページ)、Upperページ(第3のページ)、Topページ(第4のページ)と呼ぶ。 In this specification, a plurality of memory cells commonly connected to one word line are defined as a memory cell group MG. One memory cell group MG becomes a write (program) unit. In this embodiment, the nonvolatile memory 3 is a 4-bit/cell NAND memory 5, and one memory cell group MG has a data amount equal to 4 bits×number of bits. Each bit written to each memory cell corresponds to a different page. In this embodiment, four pages of one memory cell group MG are divided into Lower page (first page), Middle page (second page), Upper page (third page), and Top page (fourth page). ).

ECC回路10は、RAM6に格納されたユーザデータを符号化して、符号語を生成する。また、ECC回路10は、不揮発性メモリ3から読み出された符号語を復号する。ECC回路10は、不揮発性メモリ3から読み出した符号語に含まれるビットエラーを訂正した上で、ユーザデータに復号する。 The ECC circuit 10 encodes user data stored in the RAM 6 to generate code words. Further, the ECC circuit 10 decodes the code word read from the nonvolatile memory 3. The ECC circuit 10 corrects bit errors included in the code word read from the nonvolatile memory 3, and then decodes the code word into user data.

RAM6は、ホスト4から受信したユーザデータを不揮発性メモリ3へ記憶するまでに一時的に格納したり、不揮発性メモリ3から読み出したデータをホスト4へ送信するまでに一時的に格納する。RAM6は、例えば、SRAM(Static Random Access Memory)やDRAM(Dynamic Random Access Memory)などの汎用メモリである。 The RAM 6 temporarily stores user data received from the host 4 before being stored in the nonvolatile memory 3, and temporarily stores data read from the nonvolatile memory 3 before being transmitted to the host 4. The RAM 6 is, for example, a general-purpose memory such as SRAM (Static Random Access Memory) or DRAM (Dynamic Random Access Memory).

図1では、メモリコントローラ2が、ECC回路10とメモリインターフェイス11をそれぞれ備える構成例を示した。しかしながら、ECC回路10がメモリインターフェイス11に内蔵されていてもよい。また、ECC回路10が、不揮発性メモリ3に内蔵されていてもよい。 FIG. 1 shows a configuration example in which the memory controller 2 includes an ECC circuit 10 and a memory interface 11, respectively. However, the ECC circuit 10 may be built into the memory interface 11. Furthermore, the ECC circuit 10 may be built into the nonvolatile memory 3.

ホスト4からライト要求を受信した場合、メモリシステム1は次のように動作する。プロセッサ8は、ライトデータをRAM6に一時的に格納する。プロセッサ8は、RAM6に格納されたデータをリードし、ECC回路10に入力する。ECC回路10は、入力されたデータを符号化し、符号語をメモリインターフェイス11に入力する。メモリインターフェイス11は、入力された符号語を不揮発性メモリ3に書き込む。 When receiving a write request from the host 4, the memory system 1 operates as follows. Processor 8 temporarily stores the write data in RAM 6. Processor 8 reads data stored in RAM 6 and inputs it to ECC circuit 10 . The ECC circuit 10 encodes input data and inputs a code word to the memory interface 11. The memory interface 11 writes the input code word into the nonvolatile memory 3.

ホスト4からリード要求を受信した場合、メモリシステム1は次のように動作する。メモリインターフェイス11は、不揮発性メモリ3から読み出した符号語をECC回路10に入力する。ECC回路10は、入力された符号語を復号し、復号されたデータをRAM6に一時的に格納する。プロセッサ8は、RAM6に格納されたデータを、ホストインターフェイス9を介してホスト4に送信する。なお、不揮発性メモリ3は、複数のチップで構成される場合もあり、不揮発性メモリ3とメモリインターフェイス11は、貫通ビア(TSV:Through Silicon Via)によって接続することも可能である。 When receiving a read request from the host 4, the memory system 1 operates as follows. The memory interface 11 inputs the code word read from the nonvolatile memory 3 to the ECC circuit 10. The ECC circuit 10 decodes the input code word and temporarily stores the decoded data in the RAM 6. Processor 8 transmits the data stored in RAM 6 to host 4 via host interface 9. Note that the nonvolatile memory 3 may be composed of a plurality of chips, and the nonvolatile memory 3 and the memory interface 11 may be connected by a through silicon via (TSV).

なお、図1に示すメモリコントローラ2の構成は一例であり、内部バス12が分割構造や階層構造になったり、あるいは付加的な機能ブロックが接続されるなど、他にも様々な派生的な形態をとりうる。 Note that the configuration of the memory controller 2 shown in FIG. 1 is an example, and there are various other derivative configurations such as the internal bus 12 having a divided structure or a hierarchical structure, or additional functional blocks being connected. can be taken.

図2は、本実施形態の不揮発性メモリ3の内部構成の一例を示すブロック図である。不揮発性メモリ3は、NAND I/Oインターフェイス21、制御部22、NANDメモリセルアレイ(メモリセル部)23、及びページバッファ(第2記憶部)24を備える。不揮発性メモリ3は、例えば半導体基板(例えば、シリコン基板)上に形成されてチップ化される。 FIG. 2 is a block diagram showing an example of the internal configuration of the nonvolatile memory 3 of this embodiment. The nonvolatile memory 3 includes a NAND I/O interface 21, a control section 22, a NAND memory cell array (memory cell section) 23, and a page buffer (second storage section) 24. The nonvolatile memory 3 is formed, for example, on a semiconductor substrate (for example, a silicon substrate) and made into a chip.

制御部22は、NAND I/Oインターフェイス21経由でメモリコントローラ2からのコマンド等に基づいて、不揮発性メモリ3の動作を制御する。具体的には、制御部22は、書き込み要求が入力された場合、書き込みが要求されたデータをNANDメモリセルアレイ23上の指定されたアドレスへ書き込むよう制御する。また、制御部22は、読み出し要求が入力された場合、読み出しが要求されたデータをNANDメモリセルアレイ23から読み出して、NAND I/Oインターフェイス21経由でメモリコントローラ2へ出力するよう制御する。ページバッファ24は、NANDメモリセルアレイ23の書き込み時にメモリコントローラ2から入力されたデータを一時的に格納したり、NANDメモリセルアレイ23から読み出したデータを一時的に格納したりするバッファである。 The control unit 22 controls the operation of the nonvolatile memory 3 based on commands and the like from the memory controller 2 via the NAND I/O interface 21 . Specifically, when a write request is input, the control unit 22 controls to write the data requested to be written to a specified address on the NAND memory cell array 23. Furthermore, when a read request is input, the control unit 22 controls to read the data requested to be read from the NAND memory cell array 23 and output it to the memory controller 2 via the NAND I/O interface 21. The page buffer 24 is a buffer that temporarily stores data input from the memory controller 2 when writing to the NAND memory cell array 23, and temporarily stores data read from the NAND memory cell array 23.

後述するように、制御部22は、1stステージのプログラムによりプログラムされたデータを読み出して得られるデータと、1stステージ及び2ndステージのプログラムで重複して入力されるビットのデータと、2ndステージのプログラムでプログラムされるビットの入力データとに基づいて、2ndステージのプログラムでプログラムされるビットのデータのしきい値電圧を決定する。 As will be described later, the control unit 22 reads data obtained by reading data programmed by the 1st stage program, bit data that is input redundantly in the 1st stage and 2nd stage programs, and the 2nd stage program. Based on the input data of the bit programmed in the second stage program, the threshold voltage of the data of the bit programmed in the second stage program is determined.

制御部22は、発振器31と、シーケンサ32と、コマンドユーザインターフェイス33と、電圧供給部34と、カラムカウンタ35と、シリアルアクセスコントローラ36とを有する。また、NANDメモリセルアレイ23は、ローデコーダ37とセンスアンプ38を有する。 The control section 22 includes an oscillator 31, a sequencer 32, a command user interface 33, a voltage supply section 34, a column counter 35, and a serial access controller 36. Further, the NAND memory cell array 23 includes a row decoder 37 and a sense amplifier 38.

NAND I/Oインターフェイス21は、メモリコントローラ2との間でIO信号及び制御信号を送受信するための回路である。コマンドユーザインターフェイス33は、メモリコントローラ2からIO信号線を介して受信したコマンド、アドレス、及びデータのうちの、コマンド及びアドレスを、制御信号に基づいて取得する。コマンドユーザインターフェイス33は、取得したコマンド及びアドレスをシーケンサ32に渡す。 The NAND I/O interface 21 is a circuit for transmitting and receiving IO signals and control signals to and from the memory controller 2. The command user interface 33 acquires commands and addresses from among the commands, addresses, and data received from the memory controller 2 via the IO signal line based on the control signal. The command user interface 33 passes the acquired command and address to the sequencer 32.

発振器31は、クロックを生成する回路である。発振器31によって生成されたクロックは、シーケンサ32を含む各構成要素に供給される。シーケンサ32は、発振器31から供給されるクロックによって駆動されるステートマシンである。シーケンサ32は、NANDメモリセルアレイ23へのアクセスなどの制御を実行する。例えば、シーケンサ32は、コマンドユーザインターフェイス33から受信したコマンドに応じて、各種の内部電圧や動作タイミング等を制御するための指令を出す。また、シーケンサ32は、コマンドユーザインターフェイス33から受信したアドレスに含まれるブロックアドレス及びページアドレスをローデコーダ37に供給する。さらに、シーケンサ32は、コマンドユーザインターフェイス33から受信したアドレスに含まれるカラムアドレスをカラムカウンタ35に供給する。 The oscillator 31 is a circuit that generates a clock. A clock generated by the oscillator 31 is supplied to each component including the sequencer 32. Sequencer 32 is a state machine driven by a clock supplied from oscillator 31. The sequencer 32 executes control such as access to the NAND memory cell array 23. For example, the sequencer 32 issues commands for controlling various internal voltages, operation timings, etc. in response to commands received from the command user interface 33. Furthermore, the sequencer 32 supplies the block address and page address included in the address received from the command user interface 33 to the row decoder 37. Furthermore, the sequencer 32 supplies the column address included in the address received from the command user interface 33 to the column counter 35.

電圧供給部34は、ワード線に供給される各種の内部電圧やビット線に供給される各種の内部電圧を生成して、ローデコーダ37やセンスアンプ38へ供給する。カラムカウンタ35は、プログラム動作あるいはリード動作の際には、シーケンサ32から供給されたカラムアドレスを先頭として、シリアルアクセスコントローラ36から供給される制御信号に従ってカラムアドレスを順次進める。 The voltage supply section 34 generates various internal voltages to be supplied to the word line and various internal voltages to be supplied to the bit line, and supplies them to the row decoder 37 and the sense amplifier 38. During a program operation or a read operation, the column counter 35 starts with the column address supplied from the sequencer 32 and advances the column address sequentially according to a control signal supplied from the serial access controller 36.

ページバッファ24は、プログラム動作の際には、シリアルアクセスコントローラ36から受信したデータを、上記カラムカウンタ35が指定するカラムアドレス領域に順次格納する。また、ページバッファ24は、リード動作の際には、格納されているデータのうち、上記カラムアドレスで指定されたカラムアドレスのデータを順次、シリアルアクセスコントローラ36に送る。 During a program operation, the page buffer 24 sequentially stores data received from the serial access controller 36 in the column address area designated by the column counter 35. Further, during a read operation, the page buffer 24 sequentially sends the data of the column address specified by the column address, among the stored data, to the serial access controller 36.

シリアルアクセスコントローラ36は、プログラム動作の際には、NAND I/Oインターフェイス21からIO信号線のビット幅毎にシリアルに受信したデータを、ページバッファ24に格納する。また、シリアルアクセスコントローラ36は、リード動作の際にはページバッファ24からIO信号線のビット幅毎にシリアルに受信したデータをNAND I/Oインターフェイス21に送る。 During a program operation, the serial access controller 36 stores data serially received from the NAND I/O interface 21 for each bit width of the IO signal line into the page buffer 24 . Furthermore, during a read operation, the serial access controller 36 sends data serially received from the page buffer 24 for each bit width of the IO signal line to the NAND I/O interface 21 .

ローデコーダ37は、プログラム動作及びリード動作の際、ブロックアドレス及びページアドレスをデコードして、アクセス先のブロックBLKに含まれるアクセス対象となるページに対応するワード線を選択する。そして各ローデコーダ37は、選択ワード線及び非選択ワード線に適切な電圧を印加する。 During a program operation and a read operation, the row decoder 37 decodes a block address and a page address and selects a word line corresponding to a page to be accessed included in the accessed block BLK. Each row decoder 37 applies an appropriate voltage to the selected word line and unselected word line.

センスアンプ38は、プログラム動作の際には、ページバッファ24に格納された対応するデータをメモリセルトランジスタに転送する。また、センスアンプ38は、リード動作の際には、選択ワード線からビット線に読み出されたデータをセンスして、得られたデータを、ページバッファ24に格納する。ページバッファ24に格納されたデータは、シリアルアクセスコントローラ36及びNAND I/Oインターフェイス21を介してメモリコントローラ2に送られる。 During a program operation, the sense amplifier 38 transfers the corresponding data stored in the page buffer 24 to the memory cell transistor. Further, during a read operation, the sense amplifier 38 senses data read from the selected word line to the bit line, and stores the obtained data in the page buffer 24. The data stored in the page buffer 24 is sent to the memory controller 2 via the serial access controller 36 and the NAND I/O interface 21.

図3は3次元構造のNANDメモリセルアレイ23の一例を示す回路図である。図3は、3次元構造のNANDメモリセルアレイ23内の複数のブロックのうちの1つのブロックBLKの回路構成を示している。NANDメモリセルアレイ23の他のブロックも図3と同様の回路構成を有する。なお、本実施形態は、2次元構造のメモリセルにも適用可能である。 FIG. 3 is a circuit diagram showing an example of a NAND memory cell array 23 having a three-dimensional structure. FIG. 3 shows the circuit configuration of one block BLK among a plurality of blocks in the three-dimensionally structured NAND memory cell array 23. Other blocks of the NAND memory cell array 23 also have the same circuit configuration as in FIG. 3. Note that this embodiment is also applicable to a memory cell with a two-dimensional structure.

図3に示すように、ブロックBLKは、例えば4つのフィンガーFNG(FNG0~FNG3)を有する。また各々のフィンガーFNGは、複数のNANDストリングNSを含む。NANDストリングNSの各々は、例えば縦続接続された8個のメモリセルトランジスタMT(MT0~MT7)と、選択トランジスタST1、ST2とを有する。本明細書では、各々のフィンガーFNGをストリングStと呼ぶ場合がある。 As shown in FIG. 3, the block BLK has, for example, four fingers FNG (FNG0 to FNG3). Each finger FNG also includes multiple NAND strings NS. Each NAND string NS includes, for example, eight cascade-connected memory cell transistors MT (MT0 to MT7) and selection transistors ST1 and ST2. In this specification, each finger FNG may be referred to as a string St.

なお、NANDストリングNS内のメモリセルトランジスタMTの個数は8個に限られない。メモリセルトランジスタMTは、選択トランジスタST1、ST2の間に、その電流経路が直列接続されるようにして配置されている。この直列接続の一端側のメモリセルトランジスタMT7の電流経路は、選択トランジスタST1の電流経路の一端に接続され、他端側のメモリセルトランジスタMT0の電流経路は、選択トランジスタST2の電流経路の一端に接続されている。 Note that the number of memory cell transistors MT in the NAND string NS is not limited to eight. Memory cell transistor MT is arranged between selection transistors ST1 and ST2 so that its current path is connected in series. The current path of the memory cell transistor MT7 at one end of this series connection is connected to one end of the current path of the selection transistor ST1, and the current path of the memory cell transistor MT0 at the other end is connected to one end of the current path of the selection transistor ST2. It is connected.

フィンガーFNG0~FNG3の各々の選択トランジスタST1のゲートは、それぞれセレクトゲート線SGD0~SGD3に共通接続される。他方で、選択トランジスタST2のゲートは、複数のフィンガーFNG間で同一のセレクトゲート線SGSに共通接続される。また、同一のブロックBLK内にあるメモリセルトランジスタMT0~MT7の制御ゲートは、それぞれワード線WL0~WL7に共通接続される。すなわち、ワード線WL0~WL7及びセレクトゲート線SGSは、同一ブロックBLK内の複数のフィンガーFNG0~FNG3間で共通に接続されているのに対し、セレクトゲート線SGDは、同一ブロックBLK内であってもフィンガーFNG0~FNG3のそれぞれ毎に独立している。 The gates of the selection transistors ST1 of the fingers FNG0 to FNG3 are commonly connected to select gate lines SGD0 to SGD3, respectively. On the other hand, the gates of the selection transistors ST2 are commonly connected to the same selection gate line SGS among the plurality of fingers FNG. Further, the control gates of memory cell transistors MT0 to MT7 in the same block BLK are commonly connected to word lines WL0 to WL7, respectively. That is, the word lines WL0 to WL7 and the select gate line SGS are commonly connected among the fingers FNG0 to FNG3 in the same block BLK, whereas the select gate line SGD is connected in common among the fingers FNG0 to FNG3 in the same block BLK. is also independent for each of the fingers FNG0 to FNG3.

NANDストリングNSを構成するメモリセルトランジスタMT0~MT7の制御ゲート電極には、それぞれワード線WL0~WL7が接続されており、また、同一のフィンガーFNG内の各NANDストリングNS中のi番目のメモリセルトランジスタMTi(i=0~n)は、同一のワード線WLi(i=0~n)によって共通接続されている。すなわち、ブロックBLK内の同一行のメモリセルトランジスタMTiの制御ゲート電極は、同一のワード線WLiに接続される。 Word lines WL0 to WL7 are connected to the control gate electrodes of memory cell transistors MT0 to MT7 constituting the NAND string NS, respectively, and the i-th memory cell in each NAND string NS in the same finger FNG is The transistors MTi (i=0-n) are commonly connected by the same word line WLi (i=0-n). That is, the control gate electrodes of memory cell transistors MTi in the same row in block BLK are connected to the same word line WLi.

各NANDストリングNSは、ワード線WLiに接続するとともにビット線にも接続される。各NANDストリングNS内の各メモリセルは、ワード線WLi及びセレクトゲート線SGD0~SGD3を識別するアドレスとビット線を識別するアドレスとで識別可能である。上述した通り、同一のブロックBLK内にあるメモリセル(メモリセルトランジスタMT)のデータは、一括して消去される。一方、データの読み出し及び書き込みは、物理セクタMS単位で行われる。1物理セクタMSは、1つのワード線WLiに接続され、かつ1つのフィンガーFNGに属する複数のメモリセルを含む。 Each NAND string NS is connected to a word line WLi and also to a bit line. Each memory cell in each NAND string NS can be identified by an address identifying the word line WLi and select gate lines SGD0 to SGD3 and an address identifying the bit line. As described above, the data of memory cells (memory cell transistors MT) in the same block BLK are erased all at once. On the other hand, data reading and writing are performed in units of physical sectors MS. One physical sector MS includes a plurality of memory cells connected to one word line WLi and belonging to one finger FNG.

メモリコントローラ2は、一つのフィンガー内の1本のワード線に接続されている全NANDストリングNSを単位として、書込み(プログラム)を行う。このため、メモリコントローラ2がプログラムを行うデータ量の単位は、4ビット×ビット線数になる。 The memory controller 2 performs writing (programming) in units of all NAND strings NS connected to one word line in one finger. Therefore, the unit of data amount that the memory controller 2 programs is 4 bits×number of bit lines.

リード動作及びプログラム動作時において、物理アドレスに応じて、1本のワード線WLi及び1本のセレクトゲート線SGDが選択され、物理セクタMSが選択される。なお、本明細書では、メモリセルにデータを書き込むことを、必要に応じてプログラムと呼ぶ。 During a read operation and a program operation, one word line WLi and one select gate line SGD are selected according to a physical address, and a physical sector MS is selected. Note that in this specification, writing data to a memory cell is referred to as a program as necessary.

図4は3次元構造のNANDメモリ5のNANDメモリセルアレイ23の一部領域の断面図である。図4に示すように、半導体基板のp型ウェル領域(P-well)41上に複数のNANDストリングNSが上下方向に形成されている。すなわち、p型ウェル領域41上には、セレクトゲート線SGSとして機能する複数の配線層42、ワード線WLiとして機能する複数の配線層43、及びセレクトゲート線SGDとして機能する複数の配線層44が上下方向に形成されている。 FIG. 4 is a cross-sectional view of a partial region of the NAND memory cell array 23 of the NAND memory 5 having a three-dimensional structure. As shown in FIG. 4, a plurality of NAND strings NS are formed in the vertical direction on a p-well region (P-well) 41 of a semiconductor substrate. That is, on the p-type well region 41, there are a plurality of wiring layers 42 functioning as select gate lines SGS, a plurality of wiring layers 43 functioning as word lines WLi, and a plurality of wiring layers 44 functioning as select gate lines SGD. It is formed in the vertical direction.

そして、これらの配線層42、43、44を貫通してp型ウェル領域41に達するメモリホール45が形成されている。メモリホール45の側面には、ブロック絶縁膜46、電荷蓄積層47、及びゲート絶縁膜48が順次形成され、更にメモリホール45内に導電膜49が埋め込まれている。導電膜49は、NANDストリングNSの電流経路として機能し、メモリセルトランジスタMT並びに選択トランジスタST1及びST2の動作時にチャネルが形成される領域である。 A memory hole 45 is formed that penetrates these wiring layers 42, 43, and 44 and reaches the p-type well region 41. A block insulating film 46 , a charge storage layer 47 , and a gate insulating film 48 are sequentially formed on the side surface of the memory hole 45 , and a conductive film 49 is further embedded in the memory hole 45 . The conductive film 49 functions as a current path of the NAND string NS, and is a region where a channel is formed when the memory cell transistor MT and selection transistors ST1 and ST2 operate.

各NANDストリングNSにおいて、p型ウェル領域41上に選択トランジスタST2、複数のメモリセルトランジスタMT、及び選択トランジスタST1が順次積層されている。導電膜49の上端には、ビット線BLとして機能する配線層が形成される。 In each NAND string NS, a selection transistor ST2, a plurality of memory cell transistors MT, and a selection transistor ST1 are sequentially stacked on the p-type well region 41. A wiring layer functioning as a bit line BL is formed at the upper end of the conductive film 49.

さらに、p型ウェル領域41の表面内には、n+型不純物拡散層及びp+型不純物拡散層が形成されている。n+型不純物拡散層上にはコンタクトプラグ50が形成され、コンタクトプラグ50上には、ソース線SLとして機能する配線層が形成される。またp+型不純物拡散層上にはコンタクトプラグ51が形成され、コンタクトプラグ51上には、ウェル配線CPWELLとして機能する配線層が形成される。ウェル配線CPWELLは消去電圧を印加するために用いられる。 Furthermore, an n+ type impurity diffusion layer and a p+ type impurity diffusion layer are formed within the surface of the p type well region 41. A contact plug 50 is formed on the n+ type impurity diffusion layer, and a wiring layer functioning as a source line SL is formed on the contact plug 50. Further, a contact plug 51 is formed on the p+ type impurity diffusion layer, and a wiring layer functioning as a well wiring CPWELL is formed on the contact plug 51. The well wiring CPWELL is used to apply an erase voltage.

図4に示したNANDメモリセルアレイ23は、図4の紙面の奥行き方向に複数配列されており、奥行き方向に一列に並ぶ複数のNANDストリングNSの集合によって、1つのフィンガーFNGが形成される。他のフィンガーFNGは例えば図4の左右方向に形成されている。図3には4つのフィンガーFNG0~3が図示されているが、図4にはコンタクトプラグ50,51の間に3つのフィンガーを配置した例を示している。 A plurality of NAND memory cell arrays 23 shown in FIG. 4 are arranged in the depth direction of the paper surface of FIG. 4, and one finger FNG is formed by a set of a plurality of NAND strings NS aligned in a row in the depth direction. Other fingers FNG are formed, for example, in the left-right direction in FIG. Although four fingers FNG0 to FNG3 are shown in FIG. 3, FIG. 4 shows an example in which three fingers are arranged between contact plugs 50 and 51.

図5は第1の実施形態のしきい値領域の一例を示す図である。図5は、4ビット/Cellの不揮発性メモリ3のしきい値領域の分布の一例を示している。不揮発性メモリ3では、メモリセルの電荷蓄積層47に蓄えられた電子の電荷量により情報を記憶する。各メモリセルは、電子の電荷量に応じたしきい値電圧を有する。そして、メモリセルに記憶する複数のデータ値を、しきい値電圧が異なる複数の領域(しきい値領域)にそれぞれ対応させる。 FIG. 5 is a diagram illustrating an example of a threshold region according to the first embodiment. FIG. 5 shows an example of the distribution of the threshold area of the nonvolatile memory 3 of 4 bits/cell. In the nonvolatile memory 3, information is stored using the amount of charge of electrons stored in the charge storage layer 47 of the memory cell. Each memory cell has a threshold voltage depending on the amount of electron charge. Then, a plurality of data values stored in a memory cell are respectively made to correspond to a plurality of regions (threshold regions) having different threshold voltages.

図5の、S0~S15は、16個のしきい値領域内のしきい値分布を示している。図5の横軸はしきい値電圧を示し、縦軸はメモリセル数(セル数)である。しきい値分布とは、しきい値が変動する範囲である。このように、各メモリセルは、15個の境界によって仕切られた16個のしきい値領域を有し、各しきい値領域は、固有のしきい値分布を有する。 In FIG. 5, S0 to S15 indicate threshold distributions within the 16 threshold regions. The horizontal axis in FIG. 5 indicates the threshold voltage, and the vertical axis indicates the number of memory cells (cell number). The threshold distribution is the range in which the threshold varies. Thus, each memory cell has 16 threshold regions separated by 15 boundaries, and each threshold region has a unique threshold distribution.

本実施形態では、しきい値電圧がVr1以下となる領域を領域S0と呼び、しきい値電圧がVr1より大きくVr2以下となる領域を領域S1と呼び、しきい値電圧がVr2より大きくVr3以下となる領域を領域S2と呼び、しきい値電圧がVr3より大きくVr4以下となる領域を領域S3と呼ぶ。また、本実施形態では、しきい値電圧がVr4より大きくVr5以下となる領域を領域S4と呼び、しきい値電圧がVr5より大きくVr6以下となる領域を領域S5と呼び、しきい値電圧がVr6より大きくVr7以下となる領域を領域S6と呼び、しきい値電圧がVr7より大きくVr8以下となる領域を領域S7と呼ぶ。また、本実施形態では、しきい値電圧がVr8より大きくVr9以下となる領域を領域S8と呼び、しきい値電圧がVr9より大きくVr10以下となる領域を領域S9と呼び、しきい値電圧がVr10より大きくVr11以下となる領域を領域S10と呼び、しきい値電圧がVr11より大きくVr12以下となる領域を領域S11と呼ぶ。また、本実施形態では、しきい値電圧がVr12より大きくVr13以下となる領域を領域S12と呼び、しきい値電圧がVr13より大きくVr14以下となる領域を領域S13と呼び、しきい値電圧がVr14より大きくVr15以下となる領域を領域S14と呼び、しきい値電圧がVr15より大きくなる領域を領域S15と呼ぶ。 In this embodiment, a region where the threshold voltage is Vr1 or less is called region S0, a region where the threshold voltage is greater than Vr1 and less than Vr2 is called region S1, and a region where the threshold voltage is greater than Vr2 and less than Vr3. The region where the threshold voltage is greater than Vr3 and equal to or less than Vr4 is called the region S3. In addition, in this embodiment, a region where the threshold voltage is greater than Vr4 and less than or equal to Vr5 is referred to as region S4, and a region where the threshold voltage is greater than Vr5 and less than or equal to Vr6 is referred to as region S5, and the region where the threshold voltage is greater than Vr5 and less than or equal to Vr6 is referred to as region S5. The region where the threshold voltage is greater than Vr6 and equal to or less than Vr7 is referred to as region S6, and the region where the threshold voltage is greater than Vr7 and equal to or less than Vr8 is referred to as region S7. Furthermore, in this embodiment, a region where the threshold voltage is greater than Vr8 and less than or equal to Vr9 is referred to as region S8, and a region where the threshold voltage is greater than Vr9 and less than or equal to Vr10 is referred to as region S9, and the region where the threshold voltage is greater than Vr9 and less than or equal to Vr10 is referred to as region S9. A region where the threshold voltage is greater than Vr10 and less than or equal to Vr11 is referred to as region S10, and a region where the threshold voltage is greater than Vr11 and less than or equal to Vr12 is referred to as region S11. Furthermore, in this embodiment, a region where the threshold voltage is greater than Vr12 and less than or equal to Vr13 is referred to as region S12, and a region where the threshold voltage is greater than Vr13 and less than or equal to Vr14 is referred to as region S13, and the region where the threshold voltage is greater than Vr13 and less than or equal to Vr13 is referred to as region S13. The region in which the threshold voltage is greater than Vr14 and less than or equal to Vr15 is referred to as region S14, and the region in which the threshold voltage is greater than Vr15 is referred to as region S15.

また、領域S0~S15に対応するしきい値分布を第1~第16の分布と呼ぶ。Vr1~Vr15は、各しきい値領域の境界となるしきい値電圧である。 Further, the threshold distributions corresponding to the regions S0 to S15 are referred to as first to sixteenth distributions. Vr1 to Vr15 are threshold voltages serving as boundaries of each threshold region.

不揮発性メモリ3では、メモリセルの複数のしきい値領域に複数のデータ値をそれぞれ対応させる。この対応をデータコーディングという。このデータコーディングをあらかじめ定めておき、データの書き込み(プログラム)時には、データコーディングに従って記憶するデータ値に応じたしきい値領域内となるようにメモリセル内の電荷蓄積層47に電荷を注入する。そして、読み出し時には、メモリセルに読み出し電圧を印加し、読み出し電圧よりメモリセルのしきい値が低いか高いかにより、データ論理が決定される。 In the nonvolatile memory 3, a plurality of data values are respectively associated with a plurality of threshold regions of a memory cell. This correspondence is called data coding. This data coding is determined in advance, and when data is written (programmed), charges are injected into the charge storage layer 47 in the memory cell so that it falls within a threshold region corresponding to the data value to be stored according to the data coding. At the time of reading, a read voltage is applied to the memory cell, and the data logic is determined depending on whether the threshold value of the memory cell is lower or higher than the read voltage.

データの読み出し時には、読み出し対象の境界の読み出しレベルよりも、しきい値が低いか高いかでデータの論理が決定される。しきい値が最も低い場合は、「消去」状態であり、全てのビットのデータが”1”と定義される。しきい値が、「消去」状態よりも高い場合は、「プログラムされた」状態であり、コーディングに従ってデータが”1”または”0”と定義される。 When reading data, the logic of the data is determined depending on whether the threshold value is lower or higher than the read level at the boundary of the read target. When the threshold value is the lowest, it is an "erased" state, and all bits of data are defined as "1". If the threshold is higher than the "erased" state, it is a "programmed" state, and the data is defined as "1" or "0" according to the coding.

図6Aは第1の実施形態のデータコーディングの一例を示す図であり、1-4-5-5データコーディングの一例を示している。本実施形態では、図5に示した16個のしきい値領域を4ビットの16個のデータ値にそれぞれ対応させる。図6Aにおけるしきい値電圧と、Top、Upper、Middle、Lowerページに対応するビットのデータ値との関係は、以下に示す通りである。 FIG. 6A is a diagram showing an example of data coding according to the first embodiment, and shows an example of 1-4-5-5 data coding. In this embodiment, the 16 threshold areas shown in FIG. 5 correspond to 16 4-bit data values, respectively. The relationship between the threshold voltage in FIG. 6A and the data values of the bits corresponding to the Top, Upper, Middle, and Lower pages is as shown below.

・しきい値電圧がS0領域内にあるメモリセルは“1111”を記憶している状態である。
・しきい値電圧がS1領域内にあるメモリセルは“0111”を記憶している状態である。
・しきい値電圧がS2領域内にあるメモリセルは“0011”を記憶している状態である。
・しきい値電圧がS3領域内にあるメモリセルは“1011”を記憶している状態である。
・しきい値電圧がS4領域内にあるメモリセルは“1001”を記憶している状態である。
・しきい値電圧がS5領域内にあるメモリセルは“0001”を記憶している状態である。
・しきい値電圧がS6領域内にあるメモリセルは“0101”を記憶している状態である。
・しきい値電圧がS7領域内にあるメモリセルは“1101”を記憶している状態である。
・しきい値電圧がS8領域内にあるメモリセルは“1100”を記憶している状態である。
・しきい値電圧がS9領域内にあるメモリセルは“1110”を記憶している状態である。
・しきい値電圧がS10領域内にあるメモリセルは“1010”を記憶している状態である。
・しきい値電圧がS11領域内にあるメモリセルは“1000”を記憶している状態である。
・しきい値電圧がS12領域内にあるメモリセルは“0000”を記憶している状態である。
・しきい値電圧がS13領域内にあるメモリセルは“0100”を記憶している状態である。
・しきい値電圧がS14領域内にあるメモリセルは“0110”を記憶している状態である。
・しきい値電圧がS15領域内にあるメモリセルは“0010”を記憶している状態である。
-A memory cell whose threshold voltage is within the S0 region is in a state where "1111" is stored.
-A memory cell whose threshold voltage is within the S1 region is in a state where "0111" is stored.
-A memory cell whose threshold voltage is within the S2 region is in a state where "0011" is stored.
-A memory cell whose threshold voltage is within the S3 region is in a state where "1011" is stored.
-A memory cell whose threshold voltage is within the S4 region is in a state where "1001" is stored.
-A memory cell whose threshold voltage is within the S5 region is in a state where "0001" is stored.
-A memory cell whose threshold voltage is within the S6 region is in a state where "0101" is stored.
-A memory cell whose threshold voltage is within the S7 region is in a state where "1101" is stored.
-A memory cell whose threshold voltage is within the S8 region is in a state where "1100" is stored.
-A memory cell whose threshold voltage is within the S9 region is in a state where "1110" is stored.
-A memory cell whose threshold voltage is within the S10 region is in a state where "1010" is stored.
-A memory cell whose threshold voltage is within the S11 region is in a state where "1000" is stored.
-A memory cell whose threshold voltage is within the S12 region is in a state where "0000" is stored.
-A memory cell whose threshold voltage is within the S13 region is in a state where "0100" is stored.
-A memory cell whose threshold voltage is within the S14 region is in a state where "0110" is stored.
-A memory cell whose threshold voltage is within the S15 region is in a state where "0010" is stored.

図6Bは第1の実施形態のデータコーディングの他の一例を示す図であり、4-3-4-4データコーディングの一例を示している。図6Bにおけるしきい値電圧と、Top、Upper、Middle、Lowerページに対応するビットのデータ値との関係は、以下に示す通りである。 FIG. 6B is a diagram showing another example of data coding in the first embodiment, and shows an example of 4-3-4-4 data coding. The relationship between the threshold voltage in FIG. 6B and the data values of the bits corresponding to the Top, Upper, Middle, and Lower pages is as shown below.

・しきい値電圧がS0領域内にあるメモリセルは“1111”を記憶している状態である。
・しきい値電圧がS1領域内にあるメモリセルは“0111”を記憶している状態である。
・しきい値電圧がS2領域内にあるメモリセルは“0011”を記憶している状態である。
・しきい値電圧がS3領域内にあるメモリセルは“1011”を記憶している状態である。
・しきい値電圧がS4領域内にあるメモリセルは“1010”を記憶している状態である。
・しきい値電圧がS5領域内にあるメモリセルは“1110”を記憶している状態である。
・しきい値電圧がS6領域内にあるメモリセルは“1100”を記憶している状態である。
・しきい値電圧がS7領域内にあるメモリセルは“1000”を記憶している状態である。
・しきい値電圧がS8領域内にあるメモリセルは“1001”を記憶している状態である。
・しきい値電圧がS9領域内にあるメモリセルは“0001”を記憶している状態である。
・しきい値電圧がS10領域内にあるメモリセルは“0000”を記憶している状態である。
・しきい値電圧がS11領域内にあるメモリセルは“0010”を記憶している状態である。
・しきい値電圧がS12領域内にあるメモリセルは“0110”を記憶している状態である。
・しきい値電圧がS13領域内にあるメモリセルは“0100”を記憶している状態である。
・しきい値電圧がS14領域内にあるメモリセルは“0101”を記憶している状態である。
・しきい値電圧がS15領域内にあるメモリセルは“1101”を記憶している状態である。
-A memory cell whose threshold voltage is within the S0 region is in a state where "1111" is stored.
-A memory cell whose threshold voltage is within the S1 region is in a state where "0111" is stored.
-A memory cell whose threshold voltage is within the S2 region is in a state where "0011" is stored.
-A memory cell whose threshold voltage is within the S3 region is in a state where "1011" is stored.
-A memory cell whose threshold voltage is within the S4 region is in a state where "1010" is stored.
- A memory cell whose threshold voltage is within the S5 region is in a state where "1110" is stored.
- A memory cell whose threshold voltage is within the S6 region is in a state where "1100" is stored.
-A memory cell whose threshold voltage is within the S7 region is in a state where "1000" is stored.
-A memory cell whose threshold voltage is within the S8 region is in a state where "1001" is stored.
- A memory cell whose threshold voltage is within the S9 region is in a state where "0001" is stored.
- A memory cell whose threshold voltage is within the S10 region is in a state where "0000" is stored.
-A memory cell whose threshold voltage is within the S11 region is in a state where "0010" is stored.
-A memory cell whose threshold voltage is within the S12 region is in a state where "0110" is stored.
-A memory cell whose threshold voltage is within the S13 region is in a state where "0100" is stored.
-A memory cell whose threshold voltage is within the S14 region is in a state where "0101" is stored.
-A memory cell whose threshold voltage is within the S15 region is in a state where "1101" is stored.

図6A及び図6Bに示すように、しきい値電圧の各領域に、各メモリセルの4ビットのデータの論理を割り振ることが出来る。なお、メモリセルが未書き込みの状態(「消去」の状態)では、メモリセルのしきい値電圧はS0領域内にある。また、ここに示した符号では、S0(消去)状態で”1111”というデータを記憶し、S1状態で”0111”というデータを記憶するといったように、任意の2つの隣接する領域間で1ビットのみデータが変化する。このように、図6A及び図6Bに示したデータコーディングは、任意の2つの隣接する領域間で1ビットのみデータが変化するグレイ符号である。 As shown in FIGS. 6A and 6B, the logic of 4-bit data of each memory cell can be assigned to each region of threshold voltage. Note that when the memory cell is in an unwritten state (“erased” state), the threshold voltage of the memory cell is within the S0 region. In addition, in the code shown here, one bit is stored between any two adjacent areas, such as storing data "1111" in the S0 (erased) state and storing data "0111" in the S1 state. Only the data changes. In this way, the data coding shown in FIGS. 6A and 6B is a Gray code in which only one bit of data changes between any two adjacent regions.

図6Aに示す本実施形態のコーディングでは、各ページのビット値を判定するための境界となるしきい値電圧は、以下に示す通りである。 In the coding of this embodiment shown in FIG. 6A, the threshold voltages serving as boundaries for determining the bit values of each page are as shown below.

・Topページのビット値を判定するための境界となるしきい値電圧はVr1、Vr3、Vr5、Vr7、Vr12である。
・Upperページのビット値を判定するための境界となるしきい値電圧はVr2、Vr6、Vr10、Vr13、Vr15である。
・Middleページのビット値を判定するための境界となるしきい値電圧はVr4、Vr9、Vr11、Vr14である。
・Lowerページのビット値を判定するための境界となるしきい値電圧はVr8である。
- Threshold voltages serving as boundaries for determining the top page bit value are Vr1, Vr3, Vr5, Vr7, and Vr12.
- Threshold voltages serving as boundaries for determining the bit value of the Upper page are Vr2, Vr6, Vr10, Vr13, and Vr15.
- Threshold voltages serving as boundaries for determining the bit value of the Middle page are Vr4, Vr9, Vr11, and Vr14.
- The threshold voltage that is the boundary for determining the bit value of the Lower page is Vr8.

このように、ビット値を判定するための境界となるしきい値電圧の数(以下、境界数とよぶ)が、Lowerページ、Middleページ、Upperページ、Topページでそれぞれ1,4,5,5である。以下、このようなコーディングをLowerページ、Middleページ、Upperページ、Topページのそれぞれの境界数を用いて、1-4-5-5コーディングという。 In this way, the number of threshold voltages that serve as boundaries for determining bit values (hereinafter referred to as the number of boundaries) is 1, 4, 5, and 5 for the Lower page, Middle page, Upper page, and Top page, respectively. It is. Hereinafter, such coding will be referred to as 1-4-5-5 coding using the number of boundaries for each of the Lower page, Middle page, Upper page, and Top page.

本実施形態の第1の特徴は、ページごとのビット値が変化する境界数が最大5であることである。16個の状態を4ビットで表現する場合、最大境界数の最小値は4であり、図6のコーディングは、これよりも1つ多いだけであり、ビットエラーの偏りが少なくなる。このように、本実施形態によるメモリシステム1は、第1の特徴を備えることで、ビットエラー率を抑制でき、またページごとにビットエラーの偏りも抑制できる。 The first feature of this embodiment is that the number of boundaries at which the bit value changes for each page is five at maximum. When 16 states are represented by 4 bits, the minimum value of the maximum number of boundaries is 4, and the coding of FIG. 6 has only one more than this, which reduces the bias of bit errors. In this way, the memory system 1 according to the present embodiment, having the first feature, can suppress the bit error rate and also suppress the bias of bit errors from page to page.

本実施形態の第2の特徴は、Lowerページの境界数が1つ、Middleページの境界数が4つであり、LowerページとMiddleページをひとまとめとした第1ステージのプログラムと、UpperページとTopページをひとまとめとした第2ステージのプログラムとの2つのステージでプログラムが可能になることである。 The second feature of this embodiment is that the number of boundaries for the Lower page is one, and the number of boundaries for the Middle page is four. It is possible to program in two stages, including a second stage program in which pages are grouped together.

本実施形態の第3の特徴は、第1ステージのプログラムで生成されたしきい値領域から、第2ステージのプログラムで生成されたしきい値領域への変化幅が少ないことである。すなわち、しきい値領域の変化幅が小さいことである。しきい値領域の変化幅が小さいほど、隣接セル間干渉を受けにくくなる。上述した第1~第3の特徴については、後に詳述する。 The third feature of this embodiment is that the range of change from the threshold area generated by the first stage program to the threshold area generated by the second stage program is small. That is, the width of change in the threshold area is small. The smaller the width of change in the threshold area, the less susceptible to interference between adjacent cells. The first to third features described above will be explained in detail later.

不揮発性メモリ3の制御部22は、図6A又は図6Bに示したコーディングに基づいて、NANDメモリセルアレイ23へのプログラム及びNANDメモリセルアレイ23からの読み出しを制御する。 The control unit 22 of the nonvolatile memory 3 controls programming to and reading from the NAND memory cell array 23 based on the coding shown in FIG. 6A or 6B.

3次元メモリセルは、メモリセルの微細化が2次元メモリセルほどは進行していない。このため、3次元メモリセルにおいて、隣接するメモリセル同士の間隔が広い世代であれば、セル間相互干渉が小さい。この場合は、一般に、各メモリセルの全ビットを同時に、例えば各ビットを異なるページに割り付けていれば全ページを同時に、プログラムする手法が取られる。 In three-dimensional memory cells, miniaturization of memory cells has not progressed as much as in two-dimensional memory cells. Therefore, in three-dimensional memory cells, if the generation has a wide interval between adjacent memory cells, mutual interference between cells is small. In this case, a technique is generally used in which all bits of each memory cell are programmed at the same time, for example, if each bit is assigned to a different page, all pages are programmed at the same time.

各メモリセルの全ビットを同時にプログラムする場合、データコーディングとしては、特に組み合わせを問わない。全ビットのデータに基づき、16個のしきい値領域のどれに位置するかが決定され、消去状態であるS0の領域から、決定されたしきい値領域になるようにプログラムすればよい。この場合、一般に、4-4-3-4データコーディングといった、最大境界数が最小値をとるようなデータコーディングが採用される。4-4-3-4データコーディングでは、16個のしきい値領域間の15個の境界を4つのページに分配する際に、Lowerページに4つ、Middleページに4つ、Upperページに3つ、Topページに4つの境界を分配する。このデータコーディングの場合、ページ間の境界数の偏りが小さいために、結果としてページ間のビットエラー率の偏りが小さくなる。これは、ビットエラーの原因のほとんどが、隣接するしきい値領域にしきい値がシフトすることによって引き起こされ、境界数を多く有するページほどビットエラー数が多くなるためである。このことは、メモリセルとしてのエラー率が同じであったとしても、ページデータのエラーを訂正するのに必要なECC回路10の訂正能力を強化しなくてはいけないことにつながるので、ホスト4からの書込み要求に対するメモリシステム1の応答性能、コスト及び消費電力の悪化を抑制するためにも有効である。また、境界数の偏りによって引き起こされる読み出し速度の偏りも小さくなる。 When programming all bits of each memory cell at the same time, any particular combination of data coding does not matter. Based on the data of all the bits, it is determined in which of the 16 threshold areas it is located, and programming can be performed from the area of S0, which is in the erased state, to the determined threshold area. In this case, data coding such as 4-4-3-4 data coding in which the maximum number of boundaries takes a minimum value is generally employed. In 4-4-3-4 data coding, when distributing 15 boundaries between 16 threshold areas into 4 pages, 4 boundaries are assigned to the Lower page, 4 boundaries are assigned to the Middle page, and 3 boundaries are assigned to the Upper page. 4 borders are distributed on the top page. In the case of this data coding, since the deviation in the number of boundaries between pages is small, as a result, the deviation in the bit error rate between pages is small. This is because most of the causes of bit errors are caused by shifting of the threshold value to adjacent threshold areas, and the more boundaries the page has, the greater the number of bit errors. This means that even if the error rate as a memory cell is the same, the correction ability of the ECC circuit 10 required to correct errors in page data must be strengthened. This is also effective for suppressing deterioration in response performance, cost, and power consumption of the memory system 1 to write requests. Furthermore, the deviation in read speed caused by the deviation in the number of boundaries is also reduced.

また、4ビット/CellのNANDメモリ5では、隣接するしきい値領域の間隔が狭まるため、セル間相互干渉による影響が1ビット/Cellや2ビット/CellのNANDメモリ5と比較して大きくなる。このため、近年の微細化が進んだ世代のNANDメモリ5では、一般に、セル間相互干渉を抑えるため、複数のプログラムステージ、例えば2つのプログラムステージ(以下、単にステージと呼ぶ場合もある)を用いて、メモリセルの電荷蓄積層47に少しずつ電荷を注入するプログラム方法(Foggy-Fineプログラム)が採用される。このFoggy-Fineプログラムでは、1つ目のステージ(Foggyステージ)でメモリセルへの書き込みを行った後に隣接セルの書き込みを行い、この後最初のメモリセルに戻り2つ目のステージ(Fineステージ)の書込みを行う。この場合の各ステージは、プログラムの実行単位であり、1ワード線WLiに対応するメモリセルのプログラムは2つのプログラムステージを実行することで完了する。 In addition, in the 4-bit/Cell NAND memory 5, the interval between adjacent threshold regions becomes narrower, so the influence of mutual interference between cells becomes larger compared to the 1-bit/Cell or 2-bit/Cell NAND memory 5. . For this reason, in the recent generation of NAND memory 5 with advanced miniaturization, in order to suppress mutual interference between cells, multiple program stages, for example two program stages (hereinafter sometimes simply referred to as stages) are used. Therefore, a programming method (Foggy-Fine programming) is adopted in which charges are injected little by little into the charge storage layer 47 of the memory cell. In this Foggy-Fine program, after writing to the memory cell in the first stage (Foggy stage), writing to the adjacent cell is performed, and then the program returns to the first memory cell and starts the second stage (Fine stage). Write. Each stage in this case is a program execution unit, and programming of a memory cell corresponding to one word line WLi is completed by executing two program stages.

1つ目のステージのプログラムでも2つ目のステージのプログラムでも、16個のしきい値領域を用いてプログラムが実行される。1つ目のステージのプログラム終了時のしきい値領域のしきい値分布は、最終的なデータコーディングにおけるしきい値領域のしきい値分布より広い幅を有する。すなわち、Foggyステージでは、Foggy(ラフ)書き込みが行われる。このFoggyステージのプログラムでは、入力データは4ページ全てが必要である。Foggyステージのプログラム後のしきい値分布は、隣接する分布が互いに重なり合っている中間状態であるので、データの読み出しは出来ない。2つ目のステージであるFineステージのプログラムでは、Foggyステージのプログラム後のしきい値領域を最終的なデータコーディングにおけるしきい値領域に移動させる。すなわち、Fineステージでは、Fine書き込みが行われる。このFineステージのプログラムも、入力データは4ページ全てが必要である。Fineステージのプログラム後のしきい値分布は、隣接する分布が分離された最終状態であるので、Fineステージのプログラム後にはデータの読み出しが可能である。 Both the first stage program and the second stage program are executed using 16 threshold areas. The threshold distribution of the threshold region at the end of the program of the first stage has a wider width than the threshold distribution of the threshold region in the final data coding. That is, in the Foggy stage, Foggy (rough) writing is performed. This Foggy stage program requires all four pages of input data. The threshold distribution after programming in the Foggy stage is in an intermediate state where adjacent distributions overlap each other, so data cannot be read. In the program of the second stage, Fine stage, the threshold area after programming of the Foggy stage is moved to the threshold area in the final data coding. That is, in the Fine stage, Fine writing is performed. This Fine stage program also requires all four pages of input data. Since the threshold distribution after programming in the Fine stage is the final state in which adjacent distributions are separated, data can be read out after programming in the Fine stage.

4-4-3-4データコーディングの場合、境界数の偏りは少ないが、Foggy-Fineプログラムのデータ入力において、各ステージで4ページ分のデータ入力が必要となる。これは、データ入力にかかる時間の増大となり、ホスト4からの書込み要求に対するメモリシステム1の応答性能を悪化させてしまう。また、メモリシステム1内において、NANDメモリ5へ入力するためにデータを保持しておくための書き込みバッファ(第1記憶部)のバッファ量(書き込みバッファ量)を増大させてしまう。この書き込みバッファは、一般に、メモリシステム1内のRAM6の一部の領域が割り当てられたものである。 In the case of 4-4-3-4 data coding, the deviation in the number of boundaries is small, but in the data input of the Foggy-Fine program, data input for four pages is required at each stage. This increases the time required for data input and deteriorates the response performance of the memory system 1 to write requests from the host 4. Furthermore, in the memory system 1, the buffer amount (write buffer amount) of the write buffer (first storage section) for holding data to be input to the NAND memory 5 is increased. Generally, a part of the RAM 6 in the memory system 1 is allocated to this write buffer.

これらに対する対策として、本実施形態では、メモリシステム1が、3次元構造を有した不揮発性メモリ3に対して、1-4-5-5データコーディングを採用し、さらに、2ステージでページ単位(page by page)の書き込みを実施する。これにより、本実施形態では、3次元構造を有する不揮発性メモリ3においてもセル間相互干渉と各ページ間のビットエラー率の偏りを抑制しつつ、メモリコントローラ2の書き込みバッファ量を低減する。本実施形態の書き込みバッファは、第1乃至第4ビット(Lowerページ、Middleページ、Upperページ及びTopページの各データ)のうち、第1プログラム及び第2プログラム時に重複して入力されるビットのデータを、第2プログラムを開始した以降は破棄又は無効化可能とし、それ以外のビットのデータを、第1プログラムを開始した以降は破棄又は無効化可能とする。 As a countermeasure against these problems, in the present embodiment, the memory system 1 adopts 1-4-5-5 data coding for the nonvolatile memory 3 having a three-dimensional structure, and furthermore, in two stages, page by page ( Perform page-by-page) writing. As a result, in this embodiment, even in the nonvolatile memory 3 having a three-dimensional structure, the write buffer amount of the memory controller 2 is reduced while suppressing mutual interference between cells and bias in bit error rate between pages. In the write buffer of this embodiment, among the first to fourth bits (lower page, middle page, upper page, and top page data), bit data is input redundantly during the first program and the second program. can be discarded or invalidated after starting the second program, and data of other bits can be discarded or invalidated after starting the first program.

ここで、隣接メモリセル間干渉について説明する。ある1つのメモリセルの電荷蓄積層47に蓄積された電荷は、隣接するメモリセルの電界を乱し、その結果、隣接するメモリセルを読み出す際のしきい値電圧を変動させるノイズを与える。ある電界条件下でプログラムとベリファイとが実施され、プログラムが完結した後、隣接するメモリセルが異なる電荷にプログラムされるということは、これに起因して読み出し精度が劣化することになる。この隣接メモリセル間干渉は、メモリデバイスの製造技術が微細化され、メモリセル間隔が縮小するにつれて顕著となる。そして、この隣接メモリセル間干渉は、大きくは同一ワード線WLi上の異なるビット線に接続された隣接メモリセル同士で生じる。 Here, interference between adjacent memory cells will be explained. Charges accumulated in the charge storage layer 47 of one memory cell disturb the electric field of the adjacent memory cell, and as a result, give noise that changes the threshold voltage when reading the adjacent memory cell. Programming and verifying are performed under certain electric field conditions, and after the programming is completed, adjacent memory cells are programmed with different charges, which causes read accuracy to deteriorate. This interference between adjacent memory cells becomes more noticeable as memory device manufacturing technology becomes finer and memory cell spacing becomes smaller. This interference between adjacent memory cells mainly occurs between adjacent memory cells connected to different bit lines on the same word line WLi.

隣接メモリセル間干渉は、プログラム及びベリファイの時と、隣接するメモリセルがプログラムされた後の読み出しの時とで、メモリセルの電界条件の違いを小さくすることによって緩和することができる。同一ワード線WLi上の異なるビット線に接続された隣接メモリセル同士の隣接メモリセル間干渉を低減する1つの方法として、プログラムを複数のステージに分割し、各ステージ間で電荷蓄積層47内の電荷量に大きな変化が起きないようにプログラムを実行する方法がある。 Interference between adjacent memory cells can be alleviated by reducing the difference in the electric field conditions of the memory cells between programming and verifying and reading after adjacent memory cells have been programmed. One way to reduce interference between adjacent memory cells connected to different bit lines on the same word line WLi is to divide the program into multiple stages, and between each stage, the charge storage layer 47 is There is a way to execute a program so that large changes in the amount of charge do not occur.

本実施形態におけるプログラムシーケンスでは、1つのワード線WLi上の4ビットは、2つのプログラムステージ、すなわち1stステージと2ndステージとによってプログラムされる。各プログラムステージは、プログラムの実行単位であり、本実施形態のメモリシステム1は、メモリセルへの4ビットデータの書込みを、2つのプログラムステージを実行することで完了する。また、本実施形態では、2つのプログラムステージのそれぞれに、4ビットの何れかのページのデータが用いられる。具体的には、1stステージのプログラムには、Lowerページデータ、Middleページ及びTopページのデータが用いられ、2ndステージのプログラムには、Middleページ及びUpperページ及びTopページのデータが用いられる。 In the program sequence in this embodiment, 4 bits on one word line WLi are programmed by two program stages, ie, a 1st stage and a 2nd stage. Each program stage is a program execution unit, and the memory system 1 of this embodiment completes writing of 4-bit data to a memory cell by executing two program stages. Furthermore, in this embodiment, 4-bit data of any page is used for each of the two program stages. Specifically, the 1st stage program uses Lower page data, Middle page data, and Top page data, and the 2nd stage program uses Middle page data, Upper page data, and Top page data.

図7は第1の実施形態におけるプログラム後のしきい値領域を示す図である。図7では、メモリセルに対して1stステージと2ndステージのプログラムを行った後のしきい値領域を示している。図7の(T1)は、プログラム前の初期状態である消去状態のしきい値領域を示している。図7の(T2)は、1stステージのプログラム(第1プログラム)後のしきい値領域を示している。図7の(T3)は、2ndステージのプログラム(第2プログラム)後のしきい値領域を示している。 FIG. 7 is a diagram showing the threshold area after programming in the first embodiment. FIG. 7 shows the threshold region after programming the memory cell in the 1st stage and the 2nd stage. (T1) in FIG. 7 shows the threshold area in the erased state, which is the initial state before programming. (T2) in FIG. 7 shows the threshold area after the 1st stage program (first program). (T3) in FIG. 7 shows the threshold area after the 2nd stage program (second program).

図7の(T1)に示すように、NANDメモリセルアレイ23の全メモリセルは、未書き込みの状態(「消去」の状態)では分布S0の状態である。不揮発性メモリ3の制御部22は、図7の(T2)に示すように、1stステージのプログラムでは、LowerページおよびMiddleページおよびTopページに書き込む(記憶する)ビット値に応じて、メモリセルごとに分布S0のままとする、または電荷を注入して分布S0よりも上の分布に移動させる。 As shown at (T1) in FIG. 7, all memory cells of the NAND memory cell array 23 are in a state of distribution S0 in an unwritten state (“erased” state). As shown in (T2) in FIG. 7, in the 1st stage program, the control unit 22 of the non-volatile memory 3 controls each memory cell according to the bit values to be written (stored) in the Lower page, Middle page, and Top page. The distribution S0 is left as is, or the distribution is moved to a position above the distribution S0 by injecting charge.

具体的には、制御部22は、LowerページおよびMiddleページおよびTopページに書き込むビット値がともに“1”の場合は、電荷を注入せず、LowerページおよびMiddleページおよびTopページに書き込むビット値のどれが1つでも“0”の場合は電荷を注入して、しきい値電圧を高い方に移動させるようプログラムする。 Specifically, if the bit values to be written to the Lower page, Middle page, and Top page are all “1”, the control unit 22 does not inject charge, and instead injects the bit values to be written to the Lower page, Middle page, and Top page. If any one of them is "0", charge is injected and programmed to move the threshold voltage higher.

すなわち、LowerページとMiddleページとTopページに書き込むビット値が “011”の場合は分布S1へ、またLowerページとMiddleページとTopページに書き込むビット値が “101”の場合は分布S4へ、またLowerページとMiddleページとTopページに書き込むビット値が “001”の場合は分布S5へ、またLowerページとMiddleページとTopページに書き込むビット値が “100”の場合は分布S8へ、またLowerページとMiddleページとTopページに書き込むビット値が “110”の場合は分布S9へ、またLowerページとMiddleページとTopページに書き込むビット値が “000”の場合は分布S12へ、またLowerページとMiddleページとTopページに書き込むビット値が “010”の場合は分布S14へ移動させる。 In other words, if the bit value written to the Lower page, Middle page, and Top page is "011", the bit value written to the Lower page, Middle page, and Top page is "101", to the distribution S4, and If the bit value written to the Lower page, Middle page, and Top page is "001", go to distribution S5, and if the bit value written to the Lower page, Middle page, and Top page is "100", go to distribution S8, and to the Lower page. If the bit value written to the Middle page and Top page is "110", the flow goes to distribution S9, and if the bit value written to the Lower page, Middle page, and Top page is "000", the flow goes to distribution S12; If the bit value written to the page and top page is "010", it is moved to distribution S14.

ここで好ましくは、分布S1、分布S4、分布S5、分布S8、分布S9、分布S12、分布S14は、しきい値電圧が多少低くなるようにしきい値領域の幅を広げて粗くプログラムする。すなわち、後述する、プログラム電圧パルスの上昇幅を大きくする。それにより書き込みにかかる時間を短縮することができる。そしてしきい値電圧が多少低くなるようにプログラムすることで、2ndステージのプログラムで最終的に所定の幅になるようにしきい値分布領域の幅を書き込みすることができる。 Preferably, distribution S1, distribution S4, distribution S5, distribution S8, distribution S9, distribution S12, and distribution S14 are roughly programmed by widening the width of the threshold region so that the threshold voltage becomes somewhat lower. That is, the rise width of the program voltage pulse, which will be described later, is increased. Thereby, the time required for writing can be shortened. By programming so that the threshold voltage is somewhat lower, it is possible to write the width of the threshold distribution region so that it finally becomes a predetermined width in the 2nd stage programming.

そして好ましくは、隣接する分布S8と分布S9、および隣接するしきい値分布S12と分布S14のそれぞれの間隔は、他の隣接する分布との間隔よりも狭くする。これらの間隔を狭くした隣接しきい値分布同士の書き込みビット値は、Middleページのデータが異なっている。すなわち、1stステージのプログラム後のデータは、バイナリのように見えるので、LowerページとMiddleページデータとTopページの読み出しが可能であるが、Middleページのデータが異なるしきい値分布の間隔は狭くすることで、LowerページとTopページのデータが異なるしきい値分布の間隔は広く確保し、LowerページとTopページの読み出しの際のマージンを増加させる。図7の(T2)に示すしきい値分布S0~S14は、第17乃至第24のしきい値領域に対応する。 Preferably, the intervals between the adjacent distributions S8 and S9 and between the adjacent threshold distributions S12 and S14 are narrower than the intervals between the adjacent distributions. The write bit values of adjacent threshold distributions with narrower intervals have different middle page data. In other words, since the data after programming in the 1st stage looks like binary, it is possible to read the Lower page, Middle page data, and Top page, but the interval between the threshold distributions where the Middle page data differs is narrowed. By doing so, the interval between the threshold distributions where the data of the Lower page and the Top page are different is ensured wide, and the margin when reading the Lower page and the Top page is increased. The threshold distributions S0 to S14 shown in (T2) of FIG. 7 correspond to the 17th to 24th threshold regions.

次に、図7の(T3)に示すように、2ndステージのプログラムでは、データの書き込みにはMiddleページとUpperページとの2ページが必要である。そして、不揮発性メモリ3の制御部22は、2ndステージのプログラム後のしきい値分布を、各隣接する分布が分離された最終状態で16値のレベルとなるようにプログラムする。2ndステージのプログラム後は、全てのページデータの読み出しが可能である。 Next, as shown at (T3) in FIG. 7, in the 2nd stage program, two pages, a Middle page and an Upper page, are required for data writing. Then, the control unit 22 of the nonvolatile memory 3 programs the threshold distribution after programming in the 2nd stage so that the final state in which each adjacent distribution is separated has 16 levels. After the 2nd stage programming, all page data can be read.

2ndステージのプログラムにおいて、メモリセルのしきい値の1stステージのプログラム終了時からの変化幅が大きいほど、隣接セル間干渉が大きくなる。したがって、メモリセルのしきい値分布の変化量が最も大きいしきい値分布の変化量が最小になることが好ましい。本実施例によれば、この最大のしきい値分布の変化量はしきい値分布3つ分で、S0がS3に変化する場合と、S4がS7に変化する場合と、S8がS11に変化する場合である。図7の(T3)に示すしきい値分布S0~S15は、第1乃至第16のしきい値領域に対応する。 In the 2nd stage programming, the larger the change in the threshold value of the memory cell from the end of the 1st stage programming, the greater the interference between adjacent cells. Therefore, it is preferable that the amount of change in the threshold distribution of the memory cell is the largest and the amount of change in the threshold distribution is the smallest. According to this embodiment, the maximum amount of change in the threshold distribution is for three threshold distributions: when S0 changes to S3, when S4 changes to S7, and when S8 changes to S11. This is the case. The threshold distributions S0 to S15 shown in (T3) of FIG. 7 correspond to the first to sixteenth threshold regions.

なお、典型的には、プログラムは、1回または複数回のプログラム電圧パルスが印加されることによって行われる。複数回のプログラム印加パルスにおいては、電圧値は段階的に上昇させる。各プログラム電圧パルスの後には、メモリセルがしきい値境界レベルを超えて移動したか否かを確認するために、ベリファイと呼ばれる読み出しが行なわれる。この印加と読み出しとが繰り返されることで、所定のしきい値分布の範囲の中にメモリセルのしきい値を移動させることが可能となる。 Note that programming is typically performed by applying a programming voltage pulse one or more times. In multiple program application pulses, the voltage value is increased stepwise. After each program voltage pulse, a read, called a verify, is performed to determine whether the memory cell has moved beyond the threshold boundary level. By repeating this application and reading, it becomes possible to move the threshold value of the memory cell within the range of a predetermined threshold distribution.

なお、制御部22は、1つのワード線WLiについて、1stステージのプログラムと、2ndステージのプログラムとを連続して実施してもよいが、隣接メモリセル間干渉の影響を低減するために、複数のワード線WLiをまたいで、非連続的な順序でプログラムを実施することも可能である。 Note that the control unit 22 may perform the 1st stage program and the 2nd stage program consecutively for one word line WLi, but in order to reduce the influence of interference between adjacent memory cells, It is also possible to perform programming in a non-sequential order across word lines WLi.

図8Aは第1の実施形態のプログラム順序の第1例を示す図である。図8Bは第1の実施形態のプログラム順序の第2例を示す図である。図8Cは第1の実施形態のプログラム順序の第3例を示す図である。図8A~図8Cでは、隣接メモリセル間干渉の影響を小さくするために、2つのプログラムステージでプログラムを行う。図8Aは、各ブロック内の各ワード線に1個のストリングStが接続されているNANDメモリ5におけるプログラム順序の一例を示している。また、図8B及び図8Cは、各ブロック内の各ワード線に4つのストリングStが接続されているNANDメモリ5におけるプログラム順序の一例を示している。なお、図8B及び図8Cでは、各ワード線に接続された4つのストリングStをString0~3と表記している。 FIG. 8A is a diagram showing a first example of the program order of the first embodiment. FIG. 8B is a diagram showing a second example of the program order of the first embodiment. FIG. 8C is a diagram showing a third example of the program order of the first embodiment. In FIGS. 8A to 8C, programming is performed in two program stages in order to reduce the influence of interference between adjacent memory cells. FIG. 8A shows an example of a program order in the NAND memory 5 in which one string St is connected to each word line in each block. Further, FIGS. 8B and 8C show an example of a program order in the NAND memory 5 in which four strings St are connected to each word line in each block. Note that in FIGS. 8B and 8C, the four strings St connected to each word line are expressed as Strings 0 to 3.

書き込みを開始すると、制御部22は、所定の非連続的な順序でワード線WLiをまたぎながら、各プログラムステージを進む。すなわち、同一ワード線についての1stステージと2ndステージは、連続的には実行されず、あるワード線について1stステージのプログラムを行った後に、異なるワード線について2ndステージのプログラムを行う。 When writing starts, the control unit 22 advances through each program stage while straddling the word lines WLi in a predetermined non-sequential order. That is, the 1st stage and 2nd stage for the same word line are not executed consecutively, but after the 1st stage is programmed for a certain word line, the 2nd stage is programmed for a different word line.

あるワード線について2ndステージまでプログラムを完了した後に、隣接するワード線について1stステージ及び2ndステージのプログラムを連続して行うと、しきい値電圧の変動量が大きくなる。そして、隣接ワード線のしきい値電圧の変動量が大きいと、ワード線間の隣接メモリセル間干渉が大きくなる。したがって、ワード線間の隣接メモリセル間干渉を小さくするためには、ワード線が2ndステージまでプログラムを完了した後に、隣接ワード線のしきい値電圧の変動量を小さくすることが有効である。図8Aのシーケンスであれば、あるワード線が2ndステージまでプログラムを完了した後の隣接ワード線のプログラムステージは2ndステージのみとなる。 After completing programming up to the 2nd stage for a certain word line, if programming for the 1st stage and 2nd stage is successively performed for adjacent word lines, the amount of variation in threshold voltage increases. When the amount of variation in the threshold voltage of adjacent word lines is large, interference between adjacent memory cells between word lines becomes large. Therefore, in order to reduce the interference between adjacent memory cells between word lines, it is effective to reduce the amount of variation in the threshold voltage of the adjacent word lines after the word lines complete programming up to the 2nd stage. In the sequence of FIG. 8A, after a certain word line completes programming up to the 2nd stage, the programming stage of the adjacent word line is only the 2nd stage.

図8Aのプログラム順序で3次元構造のNANDメモリ5にプログラムを行う場合、書き込みを開始すると、制御部22は、プロセッサ8からの指示に基づいて、以下の(1)~(9)に示す順番でプログラムを実行する。制御部22は、プロセッサ8からの指示に基づいてNANDメモリ5へのプログラムを行うが、以下では、プロセッサ8からの指示に基づく旨の記述を省略する。 When programming the three-dimensionally structured NAND memory 5 in the programming order shown in FIG. Run the program with . The control unit 22 programs the NAND memory 5 based on instructions from the processor 8, but the description that it is based on instructions from the processor 8 will be omitted below.

(1)まず、制御部22は、ワード線WL0の1stステージのプログラムST11を実施する。
(2)次に、制御部22は、ワード線WL1の1stステージのプログラムST12を実施する。
(3)次に、制御部22は、ワード線WL0の2ndステージのプログラムST13を実施する。
(4)次に、制御部22は、ワード線WL2の1stステージのプログラムST14を実施する。
(5)次に、制御部22は、ワード線WL1の2ndステージのプログラムST15を実施する。
(6)次に、制御部22は、ワード線WL3の1stステージのプログラムST16を実施する。
(7)次に、制御部22は、ワード線WL2の2ndステージのプログラムST17を実施する。
(8)次に、制御部22は、ワード線WL4の1stステージのプログラムST18を実施する。
(9)次に、制御部22は、ワード線WL3の2ndステージのプログラムST19を実施する。
(1) First, the control unit 22 executes the 1st stage program ST11 for the word line WL0.
(2) Next, the control unit 22 executes the 1st stage program ST12 for the word line WL1.
(3) Next, the control unit 22 executes the 2nd stage program ST13 for the word line WL0.
(4) Next, the control unit 22 executes the 1st stage program ST14 for the word line WL2.
(5) Next, the control unit 22 executes the 2nd stage program ST15 for the word line WL1.
(6) Next, the control unit 22 executes the 1st stage program ST16 for the word line WL3.
(7) Next, the control unit 22 executes the 2nd stage program ST17 for the word line WL2.
(8) Next, the control unit 22 executes the 1st stage program ST18 for the word line WL4.
(9) Next, the control unit 22 executes the 2nd stage program ST19 for the word line WL3.

以下同様に、制御部22は、図8Aの左下から右上に向けて斜め上方に処理を進めていく。このように、図8Aでは、不揮発性メモリ3内の複数のメモリセルは、第1ワード線に接続された複数の第1メモリセルと、第1ワード線に隣接する第2ワード線に接続された複数の第2メモリセルと、を有し、メモリコントローラ2は、複数の第1メモリセルに対して第1プログラムを行わせた後、複数の第2メモリセルに対して第1プログラムを行わせ、次に複数の第2メモリセルに対して第1プログラムを行わせた後、複数の第1メモリセルに対して第2プログラムを行わせる。 Similarly, the control unit 22 proceeds with the process diagonally upward from the lower left to the upper right in FIG. 8A. In this manner, in FIG. 8A, a plurality of memory cells in the nonvolatile memory 3 are connected to a plurality of first memory cells connected to a first word line and a second word line adjacent to the first word line. and a plurality of second memory cells, the memory controller 2 causes the plurality of first memory cells to perform the first program, and then executes the first program to the plurality of second memory cells. Then, the first programming is performed on the plurality of second memory cells, and then the second programming is performed on the plurality of first memory cells.

図8Bのプログラム順序で3次元構造のNANDメモリ5にプログラムを行う場合、書き込みを開始すると、制御部22は、以下の(11)~(24)に示す順番でプログラムを実行する。 When programming the three-dimensional NAND memory 5 in the program order shown in FIG. 8B, when writing starts, the control unit 22 executes the program in the order shown in (11) to (24) below.

(11)まず、制御部22は、ストリングSt0_ワード線WL0の1stステージのプログラムST21を実施する。
(12)次に、制御部22は、ストリングSt1_ワード線WL0の1stステージのプログラムST22を実施する。
(13)次に、制御部22は、ストリングSt2_ワード線WL0の1stステージのプログラムST23を実施する。
(14)次に、制御部22は、ストリングSt3_ワード線WL0の1stステージのプログラムST24を実施する。
(15)次に、制御部22は、ストリングSt0_ワード線WL1の1stステージのプログラムST25を実施する。
(16)次に、制御部22は、ストリングSt0_ワード線WL0の2ndステージのプログラムST26を実施する。
(17)次に、制御部22は、ストリングSt1_ワード線WL1の1stステージのプログラムST27を実施する。
(18)次に、制御部22は、ストリングSt1_ワード線WL0の2ndステージのプログラムST28を実施する。
(19)次に、制御部22は、ストリングSt2_ワード線WL1の1stステージのプログラムST29を実施する。
(20)次に、制御部22は、ストリングSt2_ワード線WL0の2ndステージのプログラムST210を実施する。
(21)次に、制御部22は、ストリングSt3_ワード線WL1の1stステージのプログラムST211を実施する。
(22)次に、制御部22は、ストリングSt3_ワード線WL0の2ndステージのプログラムST212を実施する。
(23)次に、制御部22は、ストリングSt0_ワード線WL2の1stステージのプログラムST213を実施する。
(24)次に、制御部22は、ストリングSt0_ワード線WL1の2ndステージのプログラムST214を実施する。
(11) First, the control unit 22 executes the 1st stage program ST21 of the string St0_word line WL0.
(12) Next, the control unit 22 executes the 1st stage program ST22 of the string St1_word line WL0.
(13) Next, the control unit 22 executes the 1st stage program ST23 of the string St2_word line WL0.
(14) Next, the control unit 22 executes the 1st stage program ST24 of the string St3_word line WL0.
(15) Next, the control unit 22 executes the 1st stage program ST25 for the string St0_word line WL1.
(16) Next, the control unit 22 executes the 2nd stage program ST26 of the string St0_word line WL0.
(17) Next, the control unit 22 executes the 1st stage program ST27 of the string St1_word line WL1.
(18) Next, the control unit 22 executes the 2nd stage program ST28 of the string St1_word line WL0.
(19) Next, the control unit 22 executes the 1st stage program ST29 of the string St2_word line WL1.
(20) Next, the control unit 22 executes the 2nd stage program ST210 of the string St2_word line WL0.
(21) Next, the control unit 22 executes the 1st stage program ST211 of the string St3_word line WL1.
(22) Next, the control unit 22 executes the 2nd stage program ST212 of the string St3_word line WL0.
(23) Next, the control unit 22 executes the 1st stage program ST213 of the string St0_word line WL2.
(24) Next, the control unit 22 executes the 2nd stage program ST214 for the string St0_word line WL1.

以下同様に、制御部22は、図8Bの左下から右上に向けて斜め上方に処理を進めていく。なお、図8Bでは、ブロック内のストリングStが4つである場合について説明したが、ブロック内のストリングStは、3つ以下であってもよいし、5つ以上であってもよい。 Similarly, the control unit 22 proceeds with the process diagonally upward from the lower left to the upper right in FIG. 8B. Note that in FIG. 8B, a case has been described in which there are four strings St in a block, but the number of strings St in a block may be three or less, or five or more.

図8Cのプログラム順序で3次元構造のNANDメモリ5にプログラムを行う場合、書き込みを開始すると、制御部22は、以下の(31)~(50)に示す順番でプログラムを実行する。 When programming the three-dimensional NAND memory 5 in the program order shown in FIG. 8C, when writing starts, the control unit 22 executes the program in the order shown in (31) to (50) below.

(31)まず、制御部22は、ストリングSt0_ワード線WL0の1stステージのプログラムST31を実施する。
(32)次に、制御部22は、ストリングSt1_ワード線WL0の1stステージのプログラムST32を実施する。
(33)次に、制御部22は、ストリングSt2_ワード線WL0の1stステージのプログラムST33を実施する。
(34)次に、制御部22は、ストリングSt3_ワード線WL0の1stステージのプログラムST34を実施する。
(35)まず、制御部22は、ストリングSt0_ワード線WL1の1stステージのプログラムST35を実施する。
(36)次に、制御部22は、ストリングSt1_ワード線WL1の1stステージのプログラムST36を実施する。
(37)次に、制御部22は、ストリングSt2_ワード線WL1の1stステージのプログラムST37を実施する。
(38)次に、制御部22は、ストリングSt3_ワード線WL1の1stステージのプログラムST38を実施する。
(39)次に、制御部22は、ストリングSt0_ワード線WL0の2ndステージのプログラムST39を実施する。
(40)次に、制御部22は、ストリングSt1_ワード線WL0の2ndステージのプログラムST310を実施する。
(41)次に、制御部22は、ストリングSt2_ワード線WL0の2ndステージのプログラムST311を実施する。
(42)次に、制御部22は、ストリングSt3_ワード線WL0の2ndステージのプログラムST312を実施する。
(43)次に、制御部22は、ストリングSt0_ワード線WL2の1stステージのプログラムST313を実施する。
(44)次に、制御部22は、ストリングSt1_ワード線WL2の1stステージのプログラムST314を実施する。
(45)次に、制御部22は、ストリングSt2_ワード線WL2の1stステージのプログラムST315を実施する。
(46)次に、制御部22は、ストリングSt3_ワード線WL2の1stステージのプログラムST316を実施する。
(47)次に、制御部22は、ストリングSt0_ワード線WL1の2ndステージのプログラムST317を実施する。
(48)次に、制御部22は、ストリングSt1_ワード線WL1の2ndステージのプログラムST318を実施する。
(49)次に、制御部22は、ストリングSt2_ワード線WL1の2ndステージのプログラムST319を実施する。
(50)次に、制御部22は、ストリングSt3_ワード線WL1の2ndステージのプログラムST320を実施する。
(31) First, the control unit 22 executes the 1st stage program ST31 of the string St0_word line WL0.
(32) Next, the control unit 22 executes the 1st stage program ST32 of the string St1_word line WL0.
(33) Next, the control unit 22 executes the 1st stage program ST33 of the string St2_word line WL0.
(34) Next, the control unit 22 executes the 1st stage program ST34 of the string St3_word line WL0.
(35) First, the control unit 22 executes the 1st stage program ST35 for the string St0_word line WL1.
(36) Next, the control unit 22 executes the 1st stage program ST36 of the string St1_word line WL1.
(37) Next, the control unit 22 executes the 1st stage program ST37 for the string St2_word line WL1.
(38) Next, the control unit 22 executes the 1st stage program ST38 for the string St3_word line WL1.
(39) Next, the control unit 22 executes the 2nd stage program ST39 of the string St0_word line WL0.
(40) Next, the control unit 22 executes the 2nd stage program ST310 of the string St1_word line WL0.
(41) Next, the control unit 22 executes the 2nd stage program ST311 of the string St2_word line WL0.
(42) Next, the control unit 22 executes the 2nd stage program ST312 of the string St3_word line WL0.
(43) Next, the control unit 22 executes the 1st stage program ST313 of the string St0_word line WL2.
(44) Next, the control unit 22 executes the 1st stage program ST314 of the string St1_word line WL2.
(45) Next, the control unit 22 executes the 1st stage program ST315 of the string St2_word line WL2.
(46) Next, the control unit 22 executes the 1st stage program ST316 of the string St3_word line WL2.
(47) Next, the control unit 22 executes the 2nd stage program ST317 for the string St0_word line WL1.
(48) Next, the control unit 22 executes the 2nd stage program ST318 of the string St1_word line WL1.
(49) Next, the control unit 22 executes the 2nd stage program ST319 of the string St2_word line WL1.
(50) Next, the control unit 22 executes the 2nd stage program ST320 of the string St3_word line WL1.

なお、図8Cでは、ブロック内のストリングStが4つである場合について説明したが、ブロック内のストリングStは、3つ以下であってもよいし、5つ以上であってもよい。 Note that in FIG. 8C, a case has been described in which the number of strings St in a block is four, but the number of strings St in a block may be three or less, or may be five or more.

このように、ストリングStが複数となっても、1つのストリングSt内におけるワード線WLiの各プログラムステージのプログラムの順番は、ストリングStが1つの場合と同じである。ブロック内に複数のストリングStが存在する3次元構造の不揮発性メモリ3の場合、ワード線WLiとストリングStとの組み合わせ位置のプログラムは、一般には、異なるストリングSt内の同一ワード線番号をまずプログラムしてから、次のワード線番号に進められる。このような順番に従った場合、図8AをストリングSt数分だけ結合すると、例えば、図8Bまたは図8Cのような順番となる。 In this way, even if there are a plurality of strings St, the order of programming of each program stage of the word line WLi within one string St is the same as when there is only one string St. In the case of a nonvolatile memory 3 with a three-dimensional structure in which a plurality of strings St exist in a block, the combination position of a word line WLi and a string St is generally programmed by first programming the same word line number in a different string St. and then advances to the next word line number. If such an order is followed, if the strings in FIG. 8A are combined by the number of strings St, the order will be as shown in FIG. 8B or 8C, for example.

ここで、図9~図11を用いて、第1の実施形態によるプログラム順序に従った書き込み手順の例について説明する。図9~図11では、図8Bまたは図8Cに示すプログラム順序に従った場合の書き込み手順を示している。前述のように、メモリコントローラ2は、非連続的な順序でワード線WLiをまたぎながらプログラムステージを進めていくので、あるワード線WLiのまとまり(ここではブロック)をプログラムシーケンスのまとまりとしてプログラムを実行する。 Here, an example of a write procedure according to the program order according to the first embodiment will be explained using FIGS. 9 to 11. 9 to 11 show the write procedure in the case of following the program order shown in FIG. 8B or 8C. As described above, the memory controller 2 advances the program stage while straddling the word lines WLi in a non-continuous order, so it executes the program using a group of word lines WLi (here, a block) as a group of the program sequence. do.

図9は第1の実施形態による1ブロック分全体の書き込み手順の第1例を示すフローチャートである。ここでの1ブロックは、ワード線WL0~WLn(nは自然数)のn+1本のワード線WLiを有するとする。図10は第1の実施形態による1stステージにおける書き込み手順を示すフローチャートであり、図11は、第1の実施形態による2ndステージでの書き込み手順を示すフローチャートである。 FIG. 9 is a flowchart showing a first example of a procedure for writing an entire block according to the first embodiment. It is assumed here that one block has n+1 word lines WLi of word lines WL0 to WLn (n is a natural number). FIG. 10 is a flowchart showing the write procedure in the 1st stage according to the first embodiment, and FIG. 11 is a flowchart showing the write procedure in the 2nd stage according to the first embodiment.

図9に示すように、書き込みを開始すると、制御部22は、ストリングSt0_ワード線WL0の1stステージのプログラムを実行する(ステップS10)。次に、制御部22は、ストリングSt1_ワード線WL0の1stステージのプログラムを実行する(ステップS20)。この後、制御部22は、各ストリングStに対してステップS10、S20と同様の処理を実行する。そして、制御部22は、ストリングSt3_ワード線WL0の1stステージのプログラムを実行する(ステップS30)。 As shown in FIG. 9, when writing starts, the control unit 22 executes the 1st stage program of the string St0_word line WL0 (step S10). Next, the control unit 22 executes the 1st stage program of the string St1_word line WL0 (step S20). After this, the control unit 22 executes the same processing as steps S10 and S20 for each string St. Then, the control unit 22 executes the 1st stage program for string St3_word line WL0 (step S30).

さらに、制御部22は、ストリングSt0_ワード線WL1の1stステージのプログラムを実行する(ステップS40)。次に、制御部22は、ストリングSt0_ワード線WL0の2ndステージのプログラムを実行する(ステップS50)。次に、制御部22は、ストリングSt1_ワード線WL1の1stステージのプログラムを実行する(ステップS60)。この後、制御部22は、各ストリングStの各ワード線WLiに対してステップS40、S50、S60のような処理を繰り返す。 Further, the control unit 22 executes the 1st stage program of the string St0_word line WL1 (step S40). Next, the control unit 22 executes the 2nd stage program of the string St0_word line WL0 (step S50). Next, the control unit 22 executes the 1st stage program for the string St1_word line WL1 (step S60). After that, the control unit 22 repeats the processes such as steps S40, S50, and S60 for each word line WLi of each string St.

そして、制御部22は、ストリングSt0_ワード線WLnの1stステージのプログラムを実行する(ステップS70)。次に、制御部22は、ストリングSt0_ワード線WLn-1の2ndステージのプログラムを実行する(ステップS80)。この後、制御部22は、各ストリングStの各ワード線WLiに対してステップS70、S80のような処理を繰り返す。 Then, the control unit 22 executes the 1st stage program of the string St0_word line WLn (step S70). Next, the control unit 22 executes the 2nd stage program for the string St0_word line WLn-1 (step S80). After this, the control unit 22 repeats the processes such as steps S70 and S80 for each word line WLi of each string St.

そして、制御部22は、ストリングSt3_ワード線WLn-1の2ndステージのプログラムを実行する(ステップS90)。次に、制御部22は、ストリングSt0_ワード線WLnの2ndステージのプログラムを実行する(ステップS100)。次に、制御部22は、ストリングSt1_ワード線WLnの2ndステージのプログラムを実行する(ステップS110)。この後、制御部22は、各ストリングStに対してステップS100、S110と同様の処理を実施する。そして、制御部22は、ストリングSt3_ワード線WLnの2ndステージのプログラムを実行する(ステップS120)。 Then, the control unit 22 executes the 2nd stage program for string St3_word line WLn-1 (step S90). Next, the control unit 22 executes the 2nd stage program of the string St0_word line WLn (step S100). Next, the control unit 22 executes the 2nd stage program of the string St1_word line WLn (step S110). After that, the control unit 22 performs the same processing as steps S100 and S110 for each string St. Then, the control unit 22 executes the 2nd stage program for string St3_word line WLn (step S120).

図10は1stステージの書込み手順の第1例を示すフローチャートである。1stステージのプログラムでは、まず、メモリコントローラ2から不揮発性メモリ3へLowerページデータの入力開始コマンドが入力される(ステップS210)。そして、メモリコントローラ2から不揮発性メモリ3へLowerページデータが入力される(ステップS215)。次に、メモリコントローラ2から不揮発性メモリ3へMiddleページデータの入力開始コマンドが入力される(ステップS220)。そして、メモリコントローラ2から不揮発性メモリ3へMiddleページデータが入力される(ステップS225)。次に、メモリコントローラ2から不揮発性メモリ3へTopページデータの入力開始コマンドが入力される(ステップS230)。そして、メモリコントローラ2から不揮発性メモリ3へTopページデータが入力される(ステップS235)。さらに、メモリコントローラ2から不揮発性メモリ3へ1stステージのプログラム実行コマンドが入力され(ステップS240)、これによりチップビジーとなる(ステップS245)。 FIG. 10 is a flowchart showing a first example of the write procedure of the 1st stage. In the first stage program, first, a lower page data input start command is input from the memory controller 2 to the nonvolatile memory 3 (step S210). Then, the lower page data is input from the memory controller 2 to the nonvolatile memory 3 (step S215). Next, a middle page data input start command is input from the memory controller 2 to the nonvolatile memory 3 (step S220). Then, Middle page data is input from the memory controller 2 to the nonvolatile memory 3 (step S225). Next, a top page data input start command is input from the memory controller 2 to the nonvolatile memory 3 (step S230). Then, the top page data is input from the memory controller 2 to the nonvolatile memory 3 (step S235). Further, a 1st stage program execution command is input from the memory controller 2 to the nonvolatile memory 3 (step S240), and the chip becomes busy (step S245).

データ書き込みの際には、しきい値電圧Vthを決定し(ステップS250)、1~複数回のプログラム電圧パルスが印加される(ステップS255)。そして、メモリセルがしきい値境界レベルを超えて移動したか否かを確認するためのデータ読み出し(ベリファイ)が行なわれる(ステップS260)。 When writing data, a threshold voltage Vth is determined (step S250), and one to a plurality of program voltage pulses are applied (step S255). Then, data reading (verification) is performed to check whether the memory cell has moved beyond the threshold boundary level (step S260).

さらに、LowerページおよびMiddleページおよびTopページにおけるデータのフェイルビット数がクライテリア(判定基準)よりも小さいか否かが確認される(ステップS265)。データのフェイルビット数がクライテリア以上である場合、プログラムパルス印加からクライテリア判定までの処理(ステップS255~S265)が繰り返される。そして、データのフェイルビット数がクライテリアよりも小さくなると、チップレディーとなる(ステップS270)。このように、印加と、読み出しと、確認とが繰り返されることで、所定のしきい値分布の範囲の中にメモリセルのしきい値を移動させることが可能となる。 Furthermore, it is checked whether the number of fail bits of data in the Lower page, Middle page, and Top page is smaller than a criterion (step S265). If the number of fail bits of the data is equal to or greater than the criterion, the processing from application of the program pulse to criterion determination (steps S255 to S265) is repeated. Then, when the number of fail bits of the data becomes smaller than the criterion, the chip becomes ready (step S270). By repeating the application, reading, and confirmation in this way, it is possible to move the threshold value of the memory cell within the range of a predetermined threshold distribution.

なお、上述したように、1stステージ書き込み時のプログラム電圧パルス印加後の読み出しレベルは、2ndステージ書き込み後の読出しレベルと若干異なっていてもよく、好ましくは、2ndステージ書き込み後の読出しレベルよりも低いレベルである。すなわち、Vr1’≦Vr1、Vr4’≦Vr4、Vr5’≦Vr5、Vr8’≦Vr8、Vr9’≦Vr9、Vr12’≦Vr12、Vr14’≦Vr14である。 Note that, as described above, the read level after application of the program voltage pulse during 1st stage writing may be slightly different from the read level after 2nd stage writing, and is preferably lower than the read level after 2nd stage writing. level. That is, Vr1'≦Vr1, Vr4'≦Vr4, Vr5'≦Vr5, Vr8'≦Vr8, Vr9'≦Vr9, Vr12'≦Vr12, and Vr14'≦Vr14.

また、1stステージ書き込みにおけるプログラム電圧パルス印加後の読み出しにおいて、Vr9’による読み出しとVr14’による読み出しを省略し、Vr9’はVr8’の読み出しをパスした後、ある規定回数のプログラム電圧パルスを印加後に書き込み完了とし、Vr14’はVr13’の読み出しをパスした後、ある規定回数のプログラム電圧パルスを印加後に書き込み完了としてもよい。 In addition, in the read after application of the program voltage pulse in the 1st stage write, the read by Vr9' and the read by Vr14' are omitted, and Vr9' passes the read of Vr8' and after applying a certain specified number of program voltage pulses. The writing may be completed, and after Vr14' passes the reading of Vr13', the writing may be completed after applying a certain prescribed number of program voltage pulses.

これは、上述したように、1stステージのプログラム後のデータにおいてMiddleページのデータが異なるしきい値領域の間隔を狭くすることで、2ndステージ書き込み時に読み出しを行うLowerページとTopページのデータが異なるしきい値領域の間隔が、ある規定回数のプログラム電圧パルスを印加するだけという簡単な制御でも、十分広く確保できるためである。 As mentioned above, by narrowing the interval between the threshold areas where the data of the Middle page differs in the data after programming in the 1st stage, the data of the Lower page and the Top page that are read during writing in the 2nd stage are different. This is because the interval between the threshold regions can be ensured to be sufficiently wide even with simple control of applying a certain number of program voltage pulses.

さらに、Vr8’とVr9’とVr12’とVr14’のプログラム電圧パルス印加後の読み出しを省略し、Vr5’の読み出しをパスした後、それぞれのある規定回数のプログラム電圧パルスを印加後に書き込み完了としてもよい。この他、更にVr4’、Vr5’、Vr8’、Vr9’Vr12’、Vr14’のプログラム電圧パルス印加後の読み出しを省略し、Vr1’の読み出しをパスした後、それぞれのある規定回数のプログラム電圧パルスを印加後に書き込み完了としてもよい。 Furthermore, even if reading after applying program voltage pulses of Vr8', Vr9', Vr12' and Vr14' is omitted, and after passing the reading of Vr5', writing is completed after applying a certain number of program voltage pulses for each. good. In addition, the readout after applying the program voltage pulses of Vr4', Vr5', Vr8', Vr9', Vr12', and Vr14' is omitted, and after passing the readout of Vr1', the program voltage pulses are applied a certain number of times. Writing may be completed after applying .

図11は2ndステージの書込み手順の第1例を示すフローチャートである。2ndステージのプログラムでは、まず、メモリコントローラ2から不揮発性メモリ3へMiddleページのデータの入力開始コマンドが入力される(ステップS310)。そして、メモリコントローラ2から不揮発性メモリ3へMiddleページのデータが入力される(ステップS320)。 FIG. 11 is a flowchart showing a first example of the write procedure of the 2nd stage. In the second stage program, first, a command to start inputting Middle page data is input from the memory controller 2 to the nonvolatile memory 3 (step S310). Then, data of the Middle page is input from the memory controller 2 to the nonvolatile memory 3 (step S320).

次に、メモリコントローラ2から不揮発性メモリ3へUpperページのデータの入力開始コマンドが入力される(ステップS330)。そして、メモリコントローラ2から不揮発性メモリ3へUpperページのデータが入力される(ステップS340)。次に、メモリコントローラ2から不揮発性メモリ3へ2ndステージのプログラム実行コマンドが入力され(ステップS350)、これによりチップビジーとなる(ステップS360)。 Next, a command to start inputting Upper page data is input from the memory controller 2 to the nonvolatile memory 3 (step S330). Then, the data of the Upper page is input from the memory controller 2 to the nonvolatile memory 3 (step S340). Next, a 2nd stage program execution command is input from the memory controller 2 to the nonvolatile memory 3 (step S350), and the chip becomes busy (step S360).

この後、制御部22は、IDL(Internal Data Load)であるLowerページおよびTopページデータの読み出しを行う(ステップS370)。そして、さきに入力されたMiddleページデータと、IDLによるLowerページおよびTopページのデータに基づいて、Upperページのプログラム先のVth(しきい値電圧)が決定される(ステップS380)。この後、決定されたVthを用いて、Upperページへのデータ書き込みが行われる。より具体的には、決定されたしきい値電圧になるように、複数のプログラムパルスの電圧値を少しずつ上げて書き込む(ステップS390)。目的とするしきい値電圧に達したメモリセルは書込み対象から除外される。 After that, the control unit 22 reads the Lower page and Top page data as IDL (Internal Data Load) (Step S370). Then, Vth (threshold voltage) of the program destination of the Upper page is determined based on the previously input Middle page data and the data of the Lower page and Top page by IDL (step S380). Thereafter, data is written to the Upper page using the determined Vth. More specifically, the voltage values of the plurality of program pulses are gradually increased and written so as to reach the determined threshold voltage (step S390). Memory cells that have reached the target threshold voltage are excluded from being programmed.

その後、書き込んだデータを読み出して(ステップS400)、フェイルビット数がクライテリア(判定基準)よりも小さいか否かが確認される(ステップS410)。データのフェイルビット数がクライテリア以上である場合、プログラムパルス印加からクライテリア判定までの処理(ステップS390~S410)が繰り返される。そして、データのフェイルビット数がクライテリアよりも小さくなると、チップレディーとなる(ステップS420)。 Thereafter, the written data is read (step S400), and it is determined whether the number of fail bits is smaller than a criterion (step S410). If the number of fail bits of the data is equal to or greater than the criterion, the processing from application of the program pulse to criterion determination (steps S390 to S410) is repeated. Then, when the number of fail bits of the data becomes smaller than the criterion, the chip becomes ready (step S420).

ここで、本実施形態には、2つの特徴がある。第1の特徴は、Middleページのデータは1stステージのプログラムでもすでに入力されており、1stプログラム後のしきい値領域はMiddleページのデータも含まれた書き込み状態であるが、2ndステージのプログラムでも再びMiddleページのデータを入力していることである。第2の特徴は、1stステージのプログラムではそのMiddleページのデータが切り替わる隣接しきい値領域同士は間隔が狭くなっており、LowerページのデータとTopページのデータが切り替わる隣接しきい値分布同士は反対に間隔が広くなっていることである。これにより、IDLで読み出す LowerページおよびTopページデータの信頼性を上げることができる。一方、Middleページのデータは、もしIDLでデータを読み出したとしたら信頼性が低下するおそれがあるが、本実施形態では1stステージプログラムで使用したMiddleページのデータを再び入力するため、信頼性が低下するおそれはない。 Here, this embodiment has two features. The first feature is that the Middle page data has already been input in the 1st stage program, and the threshold area after the 1st program is in a written state that also includes the Middle page data, but even in the 2nd stage program. This is again entering the data for the Middle page. The second feature is that in the 1st stage program, the distance between adjacent threshold areas where the data of the Middle page is switched is narrow, and the interval between adjacent threshold areas where the data of the Lower page and the data of the Top page are switched is narrow. On the contrary, the intervals are getting wider. This makes it possible to improve the reliability of the Lower page and Top page data read by IDL. On the other hand, if the data on the Middle page is read using IDL, there is a risk that the reliability will decrease, but in this embodiment, the data on the Middle page used in the 1st stage program is input again, so the reliability decreases. There is no risk of it happening.

さらに、制御部22は、IDLの読み出しデータの信頼性を上げるために、複数回数読み出しを行い、チップ内のページバッファでこの読み出し結果の多数決をとり、次の書き込みデータとして使用することも可能である。無論、制御部22は、通常の読み出し動作時に於いて、複数回数読み出しを行いチップ内でこの読み出し結果の多数決をとり、外部への読み出しデータとして使用することも可能である。 Furthermore, in order to improve the reliability of the IDL read data, the control unit 22 can read the IDL multiple times, take a majority vote on the read results in the page buffer in the chip, and use it as the next write data. be. Of course, during a normal read operation, the control unit 22 can also read data a plurality of times, take a majority vote on the read results within the chip, and use the result as read data to the outside.

図12は複数回数の読み出し結果の多数決処理を説明するための図である。図12では、所定のページのデータを読み出した結果として、正しいビットを丸印(○)で示し、誤ったビットをばつ印(×)で示している。また、図12では、3回の読み出しが行われた場合の多数決の結果を示している。 FIG. 12 is a diagram for explaining majority decision processing of the results of reading a plurality of times. In FIG. 12, as a result of reading data of a predetermined page, correct bits are indicated by circles (◯), and incorrect bits are indicated by cross marks (×). Further, FIG. 12 shows the result of majority voting when reading is performed three times.

各ビットにおいて、多数決の結果が誤りと判断されるのは、(a)3回とも誤った場合と、(b)2回とも誤った場合である。各ビットが誤っている確率をpとすると、p=0.2の場合、(a)3回誤る確率は、p×p×p=0.2×0.2×0.2であり、(b)2回誤る確率は、(1-p)×p×p=(1-0.2)×0.2×0.2である。 For each bit, the result of the majority vote is determined to be incorrect if (a) it is incorrect three times, or (b) if it is incorrect twice. Let p be the probability that each bit is incorrect. When p = 0.2, (a) the probability of making an error three times is p x p x p = 0.2 x 0.2 x 0.2, and ( b) The probability of making a mistake twice is (1-p)×p×p=(1-0.2)×0.2×0.2.

したがって、3回の多数決結果が誤りと判断されるのは、(p×p×p)+3×(1-p)×p×p=0.104である。このように、制御部22は、複数回数の読み出し結果の多数決処理をチップ内のページバッファ24で行うことで、読み出しデータの信頼性を上げることが可能となる。 Therefore, the number of times when the three majority voting results are determined to be incorrect is (p×p×p)+3×(1−p)×p×p=0.104. In this way, the control unit 22 can improve the reliability of read data by performing majority voting on the results of reading a plurality of times using the page buffer 24 in the chip.

さらに、制御部22は、ワード線WLnの2ndステージ書き込みにおけるIDLの読み出しデータの信頼性を上げるために、WLn+1の1stステージ書き込みで書き込みを行ったデータもしくはしきい値電圧に応じて、IDLにおけるワード線WLnの読み出し電圧を変えて読み出しを行っても良い。 Furthermore, in order to improve the reliability of the IDL read data in the 2nd stage writing of the word line WLn, the control unit 22 controls the word line in the IDL according to the data written in the 1st stage writing of WLn+1 or the threshold voltage. Reading may be performed by changing the read voltage of line WLn.

そしてさらに、制御部22は、ワード線WLnの2ndステージ書き込みにおけるIDLの読み出しデータの信頼性を上げるために、ワード線WLn+1の1stステージ書き込みで書き込みを行ったデータもしくはしきい値電圧に応じて、IDLにおけるワード線WLn+1の非選択電圧を変えて読み出しを行っても良い。このとき同時にワード線WLnの読み出し電圧を変えて読み出しを行っても良い。 Furthermore, in order to improve the reliability of the IDL read data in the 2nd stage writing of the word line WLn, the control unit 22 performs the following according to the data written in the 1st stage writing of the word line WLn+1 or the threshold voltage. Reading may be performed by changing the non-selection voltage of word line WLn+1 in IDL. At this time, reading may be performed by changing the read voltage of the word line WLn at the same time.

Upperページへのデータ書き込みの際には、1~複数回のプログラム電圧パルスが印加される。そして、メモリセルがしきい値境界レベルを超えて移動したか否かを確認するために、Upperページのデータ読み出し(ベリファイ)が行なわれる。このときの読み出しレベルは所定のレベルである。 When writing data to the Upper page, one to a plurality of program voltage pulses are applied. Then, in order to confirm whether the memory cell has moved beyond the threshold boundary level, data reading (verification) of the Upper page is performed. The read level at this time is a predetermined level.

さらに、Upperページにおけるデータのフェイルビット数がクライテリアよりも小さいか否かが確認される。Upperページにおけるデータのフェイルビット数がクライテリア以上である場合、プログラム電圧パルス印加からベリファイの処理が繰り返される。そして、データのフェイルビット数がクライテリアよりも小さくなると、チップレディーとなる。 Furthermore, it is checked whether the number of fail bits of data in the Upper page is smaller than the criteria. If the number of failed bits of data in the Upper page is equal to or greater than the criterion, the verification process from application of the program voltage pulse is repeated. Then, when the number of data fail bits becomes smaller than the criterion, the chip becomes ready.

ここで、図11に示した書き込み手順の変形例について説明する。図13は第1の実施形態に係る2ndステージでの書き込み手順の変形例を示すフローチャートである。なお、図13のフローチャートでは、1stステージでプログラムしたデータを読み出したIDLデータに対してエラー訂正を行った上で不揮発性メモリ3に戻すという手順が追加している。具体的には、まず、メモリコントローラ2から不揮発性メモリ3へLowerページの読み出しコマンドが入力される(ステップS510)。これにより、チップビジーとなる(ステップS512)。次に、制御部22は、Lowerページデータの読み出しをVr8’のしきい値電圧で行う。そして、制御部22は、Vr8’のしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS514)。この後、チップレディーとなる(ステップS516)。 Here, a modification of the writing procedure shown in FIG. 11 will be described. FIG. 13 is a flowchart showing a modification of the writing procedure in the 2nd stage according to the first embodiment. Note that in the flowchart of FIG. 13, a procedure is added in which error correction is performed on the IDL data read from the data programmed in the 1st stage and then returned to the nonvolatile memory 3. Specifically, first, a lower page read command is input from the memory controller 2 to the nonvolatile memory 3 (step S510). As a result, the chip becomes busy (step S512). Next, the control unit 22 reads the lower page data at a threshold voltage of Vr8'. Then, the control unit 22 determines the value of the read data to be "0" or "1" based on the read result at the threshold voltage of Vr8' (step S514). After this, the chip becomes ready (step S516).

制御部22が読み出したLowerページデータを出力すると(ステップS518)、このLowerページデータは、ECC回路10に送信される(ステップS520)。これにより、ECC回路10がLowerページデータをECC訂正する(ステップS522)。 When the control unit 22 outputs the read Lower page data (Step S518), this Lower page data is transmitted to the ECC circuit 10 (Step S520). As a result, the ECC circuit 10 performs ECC correction on the lower page data (step S522).

次に、メモリコントローラ2から不揮発性メモリ3へLowerページのデータの入力開始コマンドが入力される(ステップS524)。これにより、ECC回路10が、不揮発性メモリ3へLowerページのデータを入力する(ステップS526)。 Next, a lower page data input start command is input from the memory controller 2 to the nonvolatile memory 3 (step S524). As a result, the ECC circuit 10 inputs the data of the lower page to the nonvolatile memory 3 (step S526).

次に、メモリコントローラ2から不揮発性メモリ3へTopページの読み出しコマンドが入力され(ステップS528)、これによりチップビジーとなる(ステップS530)。この後、制御部22は、Topページデータの読み出しをVr2’とVr10’のしきい値電圧で行う。そして、制御部22は、Vr1’とVr4’とVr8’とVr12’のしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS532)。この後、チップレディーとなる(ステップS534)。 Next, a top page read command is input from the memory controller 2 to the nonvolatile memory 3 (step S528), and the chip becomes busy (step S530). After that, the control unit 22 reads the top page data at the threshold voltages of Vr2' and Vr10'. Then, the control unit 22 determines the value of the read data to be "0" or "1" based on the read results at the threshold voltages of Vr1', Vr4', Vr8', and Vr12' (step S532). ). After this, the chip becomes ready (step S534).

制御部22が読み出したTopページデータを出力すると(ステップS536)、このTopページデータは、ECC回路10に送信される(ステップS538)。これにより、ECC回路10がTopページデータをECC訂正する(ステップS540)。次に、メモリコントローラ2から不揮発性メモリ3へTopページのデータの入力開始コマンドが入力される(ステップS542)。これにより、ECC回路10が、不揮発性メモリ3へTopページのデータを入力する(ステップS544)。 When the control unit 22 outputs the read top page data (step S536), this top page data is transmitted to the ECC circuit 10 (step S538). As a result, the ECC circuit 10 performs ECC correction on the top page data (step S540). Next, a top page data input start command is input from the memory controller 2 to the nonvolatile memory 3 (step S542). As a result, the ECC circuit 10 inputs the top page data to the nonvolatile memory 3 (step S544).

この後、メモリコントローラ2から不揮発性メモリ3へMiddleページのデータの入力開始コマンドが入力される。(ステップS546)。これ以降のステップは図11の手順と同様である。プログラム先のしきい値電圧Vthは、ECC回路10からのLowerページデータ及びTopページデータと、再び入力されたMiddleページのデータ、及び新しく入力されたUpperページのデータに基づいてプログラム先のしきい値電圧Vthが決定される。 Thereafter, a command to start inputting Middle page data is input from the memory controller 2 to the nonvolatile memory 3. (Step S546). The subsequent steps are similar to the procedure shown in FIG. The threshold voltage Vth of the program destination is determined based on the Lower page data and Top page data from the ECC circuit 10, the re-input Middle page data, and the newly input Upper page data. A value voltage Vth is determined.

上述した2ndステージのプログラムでは、不揮発性メモリ3へのデータ入力は、MiddleページとUpperページとの2ページだけである。しかし、この2ndステージでは、メモリセルのプログラムの目的地であるしきい値電圧Vthには、Lowerページ、Topページ(2ndステージを始める前のしきい値電圧Vth)も含めた4ページ分のデータが必要である。そのため、このステージのプログラムでは、前処理として、制御部22が、まずLowerページデータとTopページデータを読み出し、そのデータを、さらに入力されたMiddleページとUpperページとで合成してプログラム先のしきい値電圧Vthを決定するという動作を行う。なお、2ndステージのベリファイ時の読み出しレベルは、2ndステージ書き込み後の読出しレベルと若干異なっていてもよい。 In the above-described 2nd stage program, data is input to the nonvolatile memory 3 only in two pages, the Middle page and the Upper page. However, in this 2nd stage, the threshold voltage Vth, which is the destination of memory cell programming, contains data for 4 pages including the Lower page and the Top page (threshold voltage Vth before starting the 2nd stage). is necessary. Therefore, in the program at this stage, as preprocessing, the control unit 22 first reads the Lower page data and the Top page data, and then combines the data with the input Middle page and Upper page to create the program destination. The operation of determining the threshold voltage Vth is performed. Note that the read level at the time of verifying the 2nd stage may be slightly different from the read level after writing in the 2nd stage.

ここで、4-3-4-4データコーディングを採用したFoggy-Fineプログラムの処理手順と、本実施形態のプログラム処理手順との比較について説明する。図14Aは4-3-4-4データコーディングを採用したFoggy-Fineプログラムにおける書き込みバッファのデータ量を説明する図である。図14Bは本実施形態における書き込みバッファのデータ量を説明する図である。図14Bは1-4-5-5データコーディングを採用した例を示している。 Here, a comparison between the processing procedure of the Foggy-Fine program that employs 4-3-4-4 data coding and the program processing procedure of this embodiment will be explained. FIG. 14A is a diagram illustrating the amount of data in the write buffer in a Foggy-Fine program that employs 4-3-4-4 data coding. FIG. 14B is a diagram illustrating the amount of data in the write buffer in this embodiment. FIG. 14B shows an example using 1-4-5-5 data coding.

図14A及び図14Bでは、上段側に、ブロック書き込みのデータ入力とプログラム実行のタイムチャートを示し、下段側に、書き込みバッファ内にデータを保持するのに必要な期間のタイムチャートを示している。なお、図14A及び図14Bでは、説明を簡単化するために、1ブロック内のストリングStの個数が1の場合を示している。ストリングStが複数の場合は、書き込みバッファのデータ量がストリングStの個数倍だけ必要となる。 In FIGS. 14A and 14B, the upper side shows a time chart of data input and program execution for block writing, and the lower side shows a time chart of the period required to hold data in the write buffer. Note that, in order to simplify the explanation, FIGS. 14A and 14B show a case where the number of strings St in one block is one. When there are multiple strings St, the amount of data in the write buffer is required to be equal to the number of strings St.

4-3-4-4データコーディングのFoggy-Fineプログラムの場合、1つ目のステージであるFoggyステージでは、4ページ分のデータ入力と、この4ページ分のプログラム(Foggyステージのプログラム)とが行われる。また、4-3-4-4データコーディングのFoggy-Fineプログラムの場合、2つ目のステージであるFineステージでも、4ページ分のデータ入力と、この4ページ分のプログラム(Fineステージのプログラム)とが行われる。 In the case of a Foggy-Fine program with 4-3-4-4 data coding, the first stage, Foggy stage, involves inputting data for 4 pages and creating a program for these 4 pages (Foggy stage program). It will be done. In addition, in the case of a Foggy-Fine program with 4-3-4-4 data coding, even in the second stage, Fine stage, there is data input for 4 pages, and a program for these 4 pages (Fine stage program). will be carried out.

そして、各ワード線WL0、WL1、WL2、・・・では、Fineステージにおいてプログラムが開始されるまで、Foggyステージにおいて書き込まれた4ページ分のデータを書き込みバッファ内に格納しておく必要がある。 For each word line WL0, WL1, WL2, . . ., it is necessary to store four pages worth of data written in the Foggy stage in the write buffer until programming is started in the Fine stage.

Foggy-Fineプログラムにおいても、隣接メモリセル間干渉を低減するため、Lower/Middle/Upper/Topの4ページ分のデータは連続して書き込まれない。例えば、ワード線WL0へのFoggyステージが実行された後、ワード線WL0へのFineステージが実行される前に、ワード線WL0に隣接するワード線WL1へのFoggyステージが実行される。また、ワード線WL0へのFoggyステージが実行された後、ワード線WL1へのFineステージが実行される前に、ワード線WL1に隣接するワード線WL2へのFoggyステージが実行される。この方法の場合、最終の2つ目であるFineステージのデータ入力が完了するまで、Lower/Middle/Upper/Topの4ページ分のデータを、書き込みバッファ内に保持しておく必要がある。また、隣接メモリセル間干渉を低減するためには、複数のワード線WLiにおけるデータを、書き込みバッファ内に保持しておく必要がある。例えば、ワード線WL2に対してFoggyステージが実行される際には、ワード線WL1に対する3ページ分のデータと、ワード線WL2に対する3ページ分のデータとが、書き込みバッファ内に保持されている必要がある。このように、4-3-4-4データコーディングのFoggy-Fineプログラムの場合、最大8ページ分のデータが書き込みバッファ内に保持されている必要がある。 In the Foggy-Fine program as well, data for four pages of Lower/Middle/Upper/Top are not written consecutively in order to reduce interference between adjacent memory cells. For example, after the Foggy stage is performed on the word line WL0, and before the Fine stage is performed on the word line WL0, the Foggy stage is performed on the word line WL1 adjacent to the word line WL0. Furthermore, after the Foggy stage is executed on the word line WL0 and before the Fine stage is executed on the word line WL1, the Foggy stage is executed on the word line WL2 adjacent to the word line WL1. In this method, it is necessary to hold data for four pages of Lower/Middle/Upper/Top in the write buffer until data input for the second and final Fine stage is completed. Furthermore, in order to reduce interference between adjacent memory cells, it is necessary to hold data on a plurality of word lines WLi in a write buffer. For example, when the Foggy stage is executed for word line WL2, three pages of data for word line WL1 and three pages of data for word line WL2 must be held in the write buffer. There is. Thus, in the case of a Foggy-Fine program with 4-3-4-4 data coding, a maximum of eight pages of data must be held in the write buffer.

図14Bに示すように、本実施形態のプログラムでは、例えば1-4-5-5データコーディングで2ステージのプログラムが用いられる。この本実施形態のプログラムでは、1stステージでは、3ページ分(Lowerページ及びMiddleページ及びTopページ)のデータ入力と、この3ページ分のプログラム(1stプログラム)とが行われる。また、本実施形態のプログラムの場合、2ndステージでは、2ページ分(Middleページ及びUpperページ)のデータ入力と、Upperページの1ページ分のプログラム(2ndプログラム)とが行われる。 As shown in FIG. 14B, the program of this embodiment uses, for example, a two-stage program with 1-4-5-5 data coding. In the program of this embodiment, in the 1st stage, data input for three pages (Lower page, Middle page, and Top page) and a program for these three pages (1st program) are performed. Further, in the case of the program of this embodiment, in the second stage, data input for two pages (Middle page and Upper page) and a program for one page of the Upper page (second program) are performed.

そして、各ワード線WL0、WL1、WL2、・・・では、両方のステージで入力されるMiddleページを除き、各ステージのデータ入力の際にデータを書き込みバッファ内に格納しておけばよく、プログラムが開始されると、書き込みバッファ内からデータが削除されてもよい。例えば、1stステージにおいてデータが入力されると、このデータは書き込みバッファ内に格納される。そして、1stステージにおいてプログラムが開始されると、書き込みバッファ内に格納しておいたLowerページとTopページのデータは削除されてもよい。同様に、2ndステージにおいてデータが入力されると、このデータは書き込みバッファ内に格納される。そして、2ndステージにおいてプログラムが開始されると、書き込みバッファ内に格納しておいたデータはすべて削除されてもよい。このため、本実施形態のプログラムの場合、書き込みバッファ内に保持しておく必要があるデータは、最大でも4ページ分のデータである。 Then, for each word line WL0, WL1, WL2, etc., except for the middle page that is input in both stages, it is only necessary to store data in the write buffer when inputting data in each stage, and the program Once the write buffer is started, data may be deleted from within the write buffer. For example, when data is input in the 1st stage, this data is stored in the write buffer. Then, when the program is started in the 1st stage, the data of the Lower page and Top page stored in the write buffer may be deleted. Similarly, when data is input in the 2nd stage, this data is stored in the write buffer. Then, when the program is started in the 2nd stage, all data stored in the write buffer may be deleted. Therefore, in the case of the program of this embodiment, the data that needs to be held in the write buffer is at most 4 pages worth of data.

本実施形態のプログラムにおいても、隣接メモリセル間干渉を低減するため、Lower/Middle/Upper/Topの4ページ分のデータは連続して書き込まれない。例えば、ワード線WL0への1stステージが実行された後、ワード線WL0への2ndステージが実行される前に、ワード線WL0に隣接するワード線WL1への1stステージが実行される。同様に、ワード線WL1への1stステージが実行された後、ワード線WL1への2ndステージが実行される前に、ワード線WL1に隣接するワード線WL2への1stステージが実行される。 Also in the program of this embodiment, data for four pages of Lower/Middle/Upper/Top are not written consecutively in order to reduce interference between adjacent memory cells. For example, after the 1st stage is performed on the word line WL0, and before the 2nd stage is performed on the word line WL0, the 1st stage is performed on the word line WL1 adjacent to the word line WL0. Similarly, after the 1st stage to the word line WL1 is performed, and before the 2nd stage to the word line WL1 is performed, the 1st stage to the word line WL2 adjacent to the word line WL1 is performed.

このように、本実施形態では、Middleページ以外のページデータは、1回のステージのプログラムでのみ必要であるので、そのデータ入力が完了すれば書き込みバッファ内のデータは破棄可能となる。そのため、本実施形態では、書き込みバッファ内に同時に保持しておくことが必要なページ数が少なくて済む。 In this manner, in this embodiment, the page data other than the Middle page is required only for one stage of the program, and therefore, once the data input is completed, the data in the write buffer can be discarded. Therefore, in this embodiment, the number of pages that need to be held simultaneously in the write buffer can be reduced.

不揮発性メモリ3へプログラムされるページデータは、RAM6内の書き込みバッファに一旦保持されてから、プログラム時に不揮発性メモリ3へデータ入力される。本実施形態においては、このRAM6の必要容量を小さくすることが可能となるので、コスト削減が図れる。 Page data to be programmed into the non-volatile memory 3 is temporarily held in a write buffer in the RAM 6, and then input into the non-volatile memory 3 at the time of programming. In this embodiment, it is possible to reduce the required capacity of the RAM 6, thereby reducing costs.

また、Foggy-Fineプログラムが用いられるときは、全てのページデータのデータ転送を2回行なわなくてはならないので、転送時間が掛かり、また転送時の消費電力も余分に必要となる。本実施形態では、Middleページ以外のページデータは、各ページそれぞれ1回のデータ転送で完了するため、転送時間及び電力消費をおよそ1/2程度に抑えることが可能になる。 Furthermore, when the Foggy-Fine program is used, all page data must be transferred twice, which increases the transfer time and requires additional power consumption during transfer. In this embodiment, page data other than the Middle page is completed by one data transfer for each page, so it is possible to reduce the transfer time and power consumption to approximately 1/2.

ここで、ページ読み出し処理について説明する。ページ読み出しの方法は、読み出し対象ページを含むワード線WLiに対するプログラムが、2ndステージの書き込み前か、後かで異なる。 Here, page read processing will be explained. The method of reading a page differs depending on whether the word line WLi including the page to be read is programmed before or after writing in the 2nd stage.

2ndステージ書き込み前の場合、記録されているデータはLowerページとMiddleページとTopページだけが有効である。このため、制御部22は、読み出しページがLowerページとMiddleページとTopページのときはメモリセルからデータを読み出すが、その他のページ(具体的にはUpperページ)の場合には、メモリセル読み出し動作は行わず、読み出しデータとして強制的に全て“1”を出力する制御を行う。 Before 2nd stage writing, only the Lower page, Middle page, and Top page are valid recorded data. Therefore, the control unit 22 reads data from memory cells when the read page is the Lower page, Middle page, and Top page, but when the read page is other pages (specifically, the Upper page), the control unit 22 performs the memory cell read operation. is not performed, and control is performed to forcibly output all "1"s as read data.

一方、2ndステージまで完了したワード線WLiの場合、制御部22は、読み出しページがTop/Upper/Middle/Lowerページの何れであってもメモリセルを読み出す。この場合、読み出すページが何れのページかによって必要な読み出し電圧が異なるので、制御部22は、選択されたページに従って必要な読み出しだけを実行する。 On the other hand, in the case of the word line WLi that has completed up to the 2nd stage, the control unit 22 reads the memory cell regardless of whether the read page is Top/Upper/Middle/Lower page. In this case, since the required read voltage differs depending on which page is to be read, the control unit 22 executes only the necessary read according to the selected page.

以下、ページ読み出しの具体的な処理手順について説明する。図15は、第1の実施形態に係るメモリシステム1において1stステージまでプログラムが完了している(2ndステージのプログラムが完了していない)ワード線でのページ読み出しの処理手順を示すフローチャートである。図6に示した1-4-5-5データコーディングによれば、Lowerページデータが変化するしきい値状態間の境界は1つなので、制御部22は、その境界で分離された2つの範囲の何れにしきい値が位置するかでデータを決定する。例えば、しきい値電圧がVr8’よりも小さい場合には、制御部22は、メモリセルのデータとして“1”を出力する制御を行う。一方、しきい値電圧がVr8’よりも大きい場合には、制御部22は、メモリセルのデータとして“0”を出力する制御を行う。 The specific processing procedure for page reading will be described below. FIG. 15 is a flowchart showing a page read processing procedure for a word line for which programming has been completed up to the 1st stage (programming for the 2nd stage has not been completed) in the memory system 1 according to the first embodiment. According to the 1-4-5-5 data coding shown in FIG. 6, there is one boundary between the threshold states where the lower page data changes, so the control unit 22 controls two ranges separated by the boundary. The data is determined depending on where the threshold is located. For example, when the threshold voltage is lower than Vr8', the control unit 22 performs control to output "1" as data of the memory cell. On the other hand, when the threshold voltage is higher than Vr8', the control unit 22 performs control to output "0" as data of the memory cell.

また、Middleページのデータが変化するしきい値状態間の境界は3つであるので、制御部22は、それらの境界で分離された4つの範囲の何れの中にしきい値が位置するかでデータを決定する。また、Topページのデータが変化するしきい値状態間の境界は4つであるので、制御部22は、それらの境界で分離された5つの範囲の何れの中にしきい値が位置するかでデータを決定する。 Furthermore, since there are three boundaries between the threshold states where the data of the Middle page changes, the control unit 22 determines in which of the four ranges separated by those boundaries the threshold is located. Determine the data. Furthermore, since there are four boundaries between the threshold states where the data on the top page changes, the control unit 22 determines in which of the five ranges separated by those boundaries the threshold is located. Determine the data.

図15に示すように、2ndステージ書き込み前のワード線WLiの場合、制御部22は、読み出しページを選択する(ステップS610)。読み出しページがLowerページの場合、制御部22は、1つの読み出し電圧で読み出しを行う(ステップS612)。この電圧は、Vr8であるが、前述したように、2ndステージ書き込み前のワード線である場合、図8(T2)に示すように、読み出し電圧としきい値電圧の余裕をもって、例えばVr8’でもよい。そして、制御部22は、Vr8のしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS614)。 As shown in FIG. 15, in the case of the word line WLi before 2nd stage writing, the control unit 22 selects a read page (step S610). If the read page is the Lower page, the control unit 22 performs read with one read voltage (step S612). This voltage is Vr8, but as described above, in the case of the word line before 2nd stage writing, it may be Vr8', for example, with a margin between the read voltage and the threshold voltage, as shown in FIG. 8 (T2). . Then, the control unit 22 determines the value of the read data to be "0" or "1" based on the read result at the threshold voltage of Vr8 (step S614).

また、読み出しページがMiddleページの場合、制御部22は、3つの読み出し電圧で読み出しを行う(ステップS616、S618、S620)。この電圧は、前述したようにVr4とVr9とVr14であるが、2ndステージ書き込み前のワード線である場合、図8(T2)に示すように、読み出し電圧としきい値電圧の余裕をもって、例えばそれらの代わりにそれぞれVr4’とVr9’とVr14’でもよい。そして、制御部22は、Vr4のしきい値「電圧での読み出し結果とVr9のしきい値電圧での読み出し結果とVr14のしきい値電圧での読み出し結果とに基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS622)。ここで、前述したように、Middleページのデータが異なるしきい値分布の間隔が狭く、Middleページの読み出しマージンが狭くなっているため、読み出しデータの値は信頼性が著しく悪い可能性があり、2ndステージ書き込み前のMiddleページデータは無効であると定義しても良い。その場合、読み出しページがMiddleページの場合、制御部22は、メモリセルの出力データとして全て強制的に“1”を出力する制御を行ってもよい。 Further, when the read page is the Middle page, the control unit 22 performs read using three read voltages (steps S616, S618, S620). As mentioned above, these voltages are Vr4, Vr9, and Vr14, but in the case of the word line before 2nd stage writing, for example, with a margin between the read voltage and the threshold voltage, as shown in FIG. Instead, Vr4', Vr9', and Vr14' may be used, respectively. Then, the control unit 22 determines the value of the read data based on the read result at the threshold voltage of Vr4, the read result at the threshold voltage of Vr9, and the read result at the threshold voltage of Vr14. is determined to be "0" or "1" (step S622).Here, as mentioned above, because the interval between the threshold distributions where the data of the Middle page differs is narrow and the read margin of the Middle page is narrow, , the reliability of the read data value may be extremely poor, and the Middle page data before 2nd stage writing may be defined as invalid.In that case, if the read page is the Middle page, the control unit 22 , control may be performed to forcibly output "1" as the output data of the memory cells.

また、読み出しページがUpperページの場合、1stプログラムではUpperページのプログラムを行っていないことから、制御部22は、出力データとして全て強制的に”1”を出力する(ステップS624)。 Furthermore, when the read page is the Upper page, since the 1st program does not program the Upper page, the control unit 22 forcibly outputs "1" as all output data (step S624).

また、読み出しページがTopページの場合、制御部22は、4つの読み出し電圧で読み出しを行う(ステップS626、S628、S630、S632)。この電圧は、前述したようにVr1とVr4とVr8とVr12であるが、2ndステージ書き込み前のワード線である場合、図8(T2)に示すように、読み出し電圧としきい値電圧の余裕をもって、例えばそれらの代わりにそれぞれVr1’とVr4’とVr8’とVr12’でもよい。そして、制御部22は、Vr1のしきい値電圧での読み出し結果とVr4のしきい値電圧での読み出し結果とVr8のしきい値電圧での読み出し結果とVr12のしきい値電圧での読み出し結果とに基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS634)。 Further, when the read page is the top page, the control unit 22 performs read using four read voltages (steps S626, S628, S630, and S632). These voltages are Vr1, Vr4, Vr8, and Vr12 as described above, but in the case of the word line before 2nd stage writing, as shown in FIG. 8 (T2), with a margin between the read voltage and the threshold voltage, For example, they may be replaced with Vr1', Vr4', Vr8', and Vr12', respectively. The control unit 22 then calculates the read result at the threshold voltage of Vr1, the read result at the threshold voltage of Vr4, the read result at the threshold voltage of Vr8, and the read result at the threshold voltage of Vr12. Based on this, the value of the read data is determined to be "0" or "1" (step S634).

図16Aは第1の実施形態に係るメモリシステム1において2ndステージまでプログラムが完了しているワード線でのページ読み出しの処理手順を示すフローチャートである。2ndステージまでプログラムが完了したワード線WLiの場合、制御部22は、読み出しページを選択する(ステップS650)。読み出しページがLowerページの場合、制御部22は、Vr8の1つのしきい値電圧で読み出しを行う(ステップS652)。そして、制御部22は、Vr8の1つのしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS654)。 FIG. 16A is a flowchart illustrating a page read processing procedure for a word line for which programming has been completed up to the 2nd stage in the memory system 1 according to the first embodiment. In the case of the word line WLi for which programming has been completed up to the 2nd stage, the control unit 22 selects a read page (step S650). If the read page is the Lower page, the control unit 22 performs read at one threshold voltage of Vr8 (step S652). Then, the control unit 22 determines the value of the read data to be "0" or "1" based on the read result at one threshold voltage of Vr8 (step S654).

また、読み出しページがMiddleページの場合、制御部22は、Vr4、Vr9、Vr11及びVr14のしきい値電圧で読み出しを行う(ステップS656、S658、S660、S662)。そして、制御部22は、Vr4、Vr9、Vr11及びVr14のしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS664)。 Furthermore, when the read page is the Middle page, the control unit 22 performs read at the threshold voltages of Vr4, Vr9, Vr11, and Vr14 (steps S656, S658, S660, and S662). Then, the control unit 22 determines the value of the read data to be "0" or "1" based on the read results at the threshold voltages of Vr4, Vr9, Vr11, and Vr14 (step S664).

また、読み出しページがUpperページの場合、制御部22は、Vr2、Vr6、Vr10、Vr13及びVr15のしきい値電圧で読み出しを行う(ステップS666、S668、S670、S672、S674)。そして、制御部22は、Vr2、Vr6、Vr10、Vr13及びVr15のしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS676)。 Further, when the read page is the Upper page, the control unit 22 performs read at the threshold voltages of Vr2, Vr6, Vr10, Vr13, and Vr15 (steps S666, S668, S670, S672, S674). Then, the control unit 22 determines the value of the read data to be "0" or "1" based on the read results at the threshold voltages of Vr2, Vr6, Vr10, Vr13, and Vr15 (step S676).

また、読み出しページがTopページの場合、制御部22は、Vr1、Vr3、Vr5、Vr7及びVr12のしきい値電圧で読み出しを行う(ステップS678、S680、S682、S684、S686)。そして、制御部22は、Vr1、Vr3、Vr5、Vr7及びVr12のしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS688)。 Further, when the read page is the top page, the control unit 22 performs read at the threshold voltages of Vr1, Vr3, Vr5, Vr7, and Vr12 (steps S678, S680, S682, S684, and S686). Then, the control unit 22 determines the value of the read data to be "0" or "1" based on the read results at the threshold voltages of Vr1, Vr3, Vr5, Vr7, and Vr12 (step S688).

なお、ワード線WLiに対するプログラムが、2ndステージ書き込み完了前か後かは、メモリコントローラ2が管理及び識別することが可能である。メモリシステム1においてはメモリコントローラ2がプログラム制御を行っているので、メモリコントローラ2がその進捗状況を記録しておけば、メモリコントローラ2は、不揮発性メモリ3のどのアドレスがどのようなプログラム状態であるか容易に参照できる。この場合、メモリコントローラ2は、不揮発性メモリ3から読み出しを行う際、対象ページアドレスを含むワード線WLiがどのようなプログラム状態であるかを識別し、識別した状態に応じた読み出しコマンドを発行する。また、別の方法として、ワード線WLi毎にフラグセルを設け、2ndステージ書き込み時にフラグセルを書き込み、フラグセルのデータに応じて、2ndステージ書き込み完了前か後か、不揮発性メモリ3で管理・識別することも可能である。 Note that the memory controller 2 can manage and identify whether the program for the word line WLi is before or after the completion of the 2nd stage write. In the memory system 1, the memory controller 2 controls the program, so if the memory controller 2 records its progress, the memory controller 2 can determine which addresses in the nonvolatile memory 3 are in what program state. You can easily see if there is one. In this case, when reading from the nonvolatile memory 3, the memory controller 2 identifies what kind of program state the word line WLi including the target page address is in, and issues a read command according to the identified state. . Another method is to provide a flag cell for each word line WLi, write the flag cell during the 2nd stage write, and manage and identify in the nonvolatile memory 3 whether it is before or after the completion of the 2nd stage write, depending on the data in the flag cell. is also possible.

以下に、ページ読み出し処理の一変形例を説明する。一変形例によるページ読出し処理は、読み出し対象ページを含むワード線WLiに対するプログラムが2ndステージの書き込みを行った後のみ実行可能である。一変形例によるページ読み出し処理は、読出し対象のワード線のすべてのデータを読み出す場合に、読み出し速度が速くなる点で有効である。 A modified example of page read processing will be described below. The page read process according to the first modified example can be executed only after the second stage of the program to the word line WLi including the page to be read has been written. The page read process according to the first modified example is effective in that the read speed becomes faster when all data of the word line to be read is read.

一変形例によるページ読み出し処理に適したデータコーディングは、例えば図16Bのようなものである。以下、このデータコーディングの場合における一変形例による読出し処理について説明する。一変形例によるページ読み出し処理では、Top/Upper/Middle/Lowerページのすべてのページを読み出す。 Data coding suitable for page read processing according to a modified example is as shown in FIG. 16B, for example. A reading process according to a modified example in this data coding case will be described below. In the page read processing according to a modified example, all pages of Top/Upper/Middle/Lower pages are read.

図16Cは一変形例による読出し処理手順を示すフローチャートである。また、図16Dは、選択ワード線、ReadyBusy信号線、出力データ線の電圧波形図である。制御部22は、15個のすべての読出し電圧Vr15~Vr1で順番に読出しを行う。まず、図16Dに示すように最も高い電圧であるVr15で読出しを行い(ステップS690)、続けて1段階ずつ下がりながら低い読出し電圧で順番に読出しを続けていく(ステップS691~S707)。各ページの読出しデータを決定するために必要な読み出しが完了したところで、そのページの読出しデータが出力可能になる。 FIG. 16C is a flowchart showing a read processing procedure according to a modified example. Further, FIG. 16D is a voltage waveform diagram of the selected word line, ReadyBusy signal line, and output data line. The control unit 22 sequentially performs reading using all 15 read voltages Vr15 to Vr1. First, as shown in FIG. 16D, reading is performed at the highest voltage Vr15 (step S690), and then reading is continued at lower read voltages one step at a time (steps S691 to S707). When the reading necessary to determine the read data of each page is completed, the read data of that page can be output.

一変形例によるページ読み出し処理では、Vr15から順に読み出してVr8の読出しまで終わったところで(ステップS699)、Lowerページのデータが決定され、このデータを出力することが可能になる(ステップS700)。このステップS700では、読み出し電圧Vr8での読み出しデータに基づいてLowerページのデータが決定される。 In the page read process according to the first modification, when the data is sequentially read from Vr15 to Vr8 (step S699), the data of the lower page is determined, and this data can be output (step S700). In step S700, lower page data is determined based on the read data at read voltage Vr8.

続いてVr4まで読出しが終わったところで(ステップS702)、Middleページのデータが決定される(ステップS703)。このステップS703では、読み出し電圧Vr4、Vr9、Vr11及びVr14での読み出しデータに基づいてMiddleページのデータが決定される。 Subsequently, when reading up to Vr4 is completed (step S702), the data of the Middle page is determined (step S703). In this step S703, the data of the Middle page is determined based on the read data at the read voltages Vr4, Vr9, Vr11, and Vr14.

続いてVr2まで読出しが終わったところで(ステップS705)、Upperページのデータが決定される(ステップS706)。このステップS706では、読み出し電圧Vr2、Vr6、Vr10、Vr13及びVr15での読み出しデータに基づいてUpperページのデータが決定される。 Subsequently, when reading up to Vr2 is completed (step S705), the data of the Upper page is determined (step S706). In step S706, Upper page data is determined based on the read data at read voltages Vr2, Vr6, Vr10, Vr13, and Vr15.

続いてVr1まで読出しが終わったところで(ステップS707)、最終のTopページのデータが決定される(ステップS708)。このステップS708では、読み出し電圧Vr1、Vr3、Vr5、Vr7及びVr12での読み出しデータに基づいてTopページのデータが決定される。 Subsequently, when the reading up to Vr1 is completed (step S707), the data of the final top page is determined (step S708). In step S708, top page data is determined based on the read data at read voltages Vr1, Vr3, Vr5, Vr7, and Vr12.

一変形例によるページ読み出し処理では、任意の1ページのデータを出力可能になるまでのレイテンシは長くなるが、全4ページを読み出す合計時間は、前に説明した1ページずつ読み出した場合の合計時間よりも短くできる。図16Dに示すように、読出し準備としてワード線をゼロから高電圧であるVr15まで充電する時間が1回で済み、また読出しレベルを次の電圧に変化させる際の電圧変化の振幅が小さく短時間で電圧が安定するため、読み出し電圧が安定するまでの待機時間を短縮できる。このため、すべての読出し電圧Vr15~Vr1で読み出す場合は、選択ワード線の遷移時間の合計が短くなり、結果として合計の読出し時間を高速化できる。 In the page read processing according to the first variation, the latency until it becomes possible to output the data of any one page is longer, but the total time to read all four pages is the total time when reading one page at a time as explained earlier. It can be made shorter than As shown in FIG. 16D, it only takes one time to charge the word line from zero to the high voltage Vr15 in preparation for reading, and the amplitude of the voltage change when changing the read level to the next voltage is small and takes a short time. Since the voltage is stabilized at , the waiting time until the read voltage becomes stable can be shortened. Therefore, when reading with all the read voltages Vr15 to Vr1, the total transition time of the selected word lines becomes shorter, and as a result, the total read time can be increased.

なお、以上では、図16Bのデータコーディングを例に取って説明したが、基本的にはどのようなデータコーディングでも適用可能である。ただし、読出し電圧を最大電圧から最小電圧まで順に変化させて読出しを行うため、データを確定するのに必要な電圧の読出しが完了したページの順番にデータ出力が可能になる。このため、データコーディングの形態によっては、Lower、Middle、Upper、Topのページ順番に読み出せないことに留意が必要である。 Note that although the explanation has been given above using the data coding in FIG. 16B as an example, basically any data coding can be applied. However, since reading is performed by sequentially changing the read voltage from the maximum voltage to the minimum voltage, data can be output in the order of the pages for which reading of the voltage necessary to determine the data is completed. Therefore, it must be noted that depending on the data coding format, pages cannot be read in the order of Lower, Middle, Upper, and Top.

このように、第1の実施形態では、不揮発性メモリ3(3次元構造または2次元構造を有した4bit/CellのNANDメモリ)をプログラムする際に、1-4-5-5データコーディングを採用し、プログラムのステージを2ステージ制とした。このように2ステージ制でプログラムされるので、各ステージでのデータプログラムの際に入力するデータ量が減り、メモリコントローラ2に必要とされる書き込みバッファ量を抑制することが可能となる。また、各ページでのしきい値境界の数が均一であるため、不揮発性メモリ3のページ間のビットエラー率の偏りを低減できるとともに、ECCにかかるコストを下げることができる。また、データ転送は1ページを除き各ページ1回のみとなるため、転送時間及び消費電力を抑えることができる。 In this way, in the first embodiment, 1-4-5-5 data coding is adopted when programming the non-volatile memory 3 (a 4-bit/cell NAND memory with a three-dimensional structure or a two-dimensional structure). The program was divided into two stages. Since programming is performed in a two-stage system in this manner, the amount of data input during data programming in each stage is reduced, making it possible to suppress the amount of write buffer required for the memory controller 2. Furthermore, since the number of threshold boundaries in each page is uniform, it is possible to reduce the bias in the bit error rate between pages of the nonvolatile memory 3, and it is also possible to reduce the cost required for ECC. Further, since data is transferred only once for each page except for one page, transfer time and power consumption can be reduced.

また、ワード線WLiをまたぎながら、各プログラムステージを実行するので、隣接ワード線WLiとの隣接セル間干渉の量を低減することができる。また、1-4-5-5データコーディングを用いるので、2ndプログラムにおけるしきい値分布の変化量が小さくなるために、隣接セル間干渉量を抑制することが可能となる。また、1ページ(具体的にはMiddleページ)は両方のステージでデータを入力することにより、2ndステージの前のIDLマージンを拡大することができ、書き込みシーケンスの信頼性を向上することが可能となる。また、1-4-5-5データコーディングを用いるので、1stステージのプログラム時、Lowerページにおけるしきい値境界を1つ、Middleページにおけるしきい値境界を2つとすることにより、1stステージのプログラム、すなわちLowerページ及びMiddleページのプログラムを高速化することができる。なお、1stステージのプログラムの高速化は、書き込み及び書き込みベリファイの繰り返しときに、書き込み電圧を少しずつステップアップさせて書き込むときのステップ電圧を、2ndステージのプログラム時より大きい値にするなどで高速化ができる。 Furthermore, since each program stage is executed while straddling the word line WLi, the amount of interference between adjacent cells with the adjacent word line WLi can be reduced. Furthermore, since 1-4-5-5 data coding is used, the amount of change in the threshold distribution in the 2nd program is small, making it possible to suppress the amount of interference between adjacent cells. In addition, by inputting data in both stages for the first page (specifically the Middle page), the IDL margin before the second stage can be expanded, making it possible to improve the reliability of the write sequence. Become. In addition, since 1-4-5-5 data coding is used, when programming the 1st stage, by setting one threshold boundary on the Lower page and two threshold boundaries on the Middle page, it is possible to program the 1st stage. In other words, it is possible to speed up the programs of the Lower page and Middle page. In addition, the speed of the 1st stage program can be increased by increasing the write voltage little by little when repeating write and write verify, and making the step voltage at the time of writing a larger value than when programming the 2nd stage. Can be done.

(第2の実施形態)
第1の実施形態では、1-4-5-5データコーディングを例にとり説明したが、さまざまなデータコーディングの変形が可能である。第2の実施形態によるメモリシステム1のハードウェア構成は、第1の実施形態によるメモリシステム1と共通する。図17~図25は第2の実施形態によるメモリシステム1のデータコーディングの例を示している。第2の実施形態によるメモリシステム1は、1-4-5-5データコーディング以外のデータコーディングを使用する。
(Second embodiment)
Although the first embodiment has been described using 1-4-5-5 data coding as an example, various data coding modifications are possible. The hardware configuration of the memory system 1 according to the second embodiment is common to the memory system 1 according to the first embodiment. 17 to 25 show examples of data coding in the memory system 1 according to the second embodiment. The memory system 1 according to the second embodiment uses data coding other than 1-4-5-5 data coding.

図17は1-5-4-5データコーディングの一例を示す図である。図17の例では、2ndプログラム終了時におけるしきい値領域の遷移数が最大3個である。ここで、1stステージのプログラム完了時のしきい値領域と、2ndステージのプログラム完了時のしきい値領域とは、電圧分布範囲が完全には一致しないが、本明細書では、便宜上、1stステージのプログラム完了時の各しきい値領域に電圧分布範囲が最も近い2ndステージのプログラム完了時のしきい値領域を対応づけて、2ndプログラムを行ったときに変化したしきい値領域の数を遷移数と呼ぶ。図17の場合、1stステージでは、Lowerページ、Middleページ、Upperページのデータを入力してプログラムを行い、2ndステージでは、TopページとMiddleページのデータを入力してプログラムを行う。Middleページのデータは、1stステージと2ndステージで重複して入力される。1stステージのプログラム完了時点でMiddleページのデータの値で分離可能な2つのしきい値領域の間隔は、他のしきい値領域の間隔よりも狭くしている。 FIG. 17 is a diagram showing an example of 1-5-4-5 data coding. In the example of FIG. 17, the maximum number of transitions in the threshold area at the end of the second program is three. Here, although the voltage distribution ranges of the threshold region at the time of completion of programming of the 1st stage and the threshold region of the threshold region at the time of completion of programming of the 2nd stage do not completely match, in this specification, for convenience, By associating each threshold region at the completion of the program with the threshold region at the completion of the 2nd stage program whose voltage distribution range is closest, the number of threshold regions that changed when the 2nd program was performed is changed. It's called a number. In the case of FIG. 17, in the 1st stage, the data of the Lower page, Middle page, and Upper page are input and the program is performed, and in the 2nd stage, the data of the Top page and the Middle page are input and the program is performed. The data of the Middle page is entered redundantly in the 1st stage and the 2nd stage. The interval between the two threshold areas that can be separated by the data value of the Middle page at the time of completion of the first stage program is narrower than the interval between the other threshold areas.

図18は1-5-4-5データコーディングの一例を示す図である。図18の例では、2ndプログラム終了時におけるしきい値領域の遷移数が最大3個である。図18の場合、1stステージでは、Lowerページ、Middleページ、Upperページのデータを入力してプログラムを行い、2ndステージでは、TopページとUpperページのデータを入力してプログラムを行う。Upperページのデータは、1stステージと2ndステージで重複して入力される。1stステージのプログラム完了時点でUpperページのデータの値で分離可能な2つのしきい値領域の間隔は、他のしきい値領域の間隔よりも狭くしている。 FIG. 18 is a diagram showing an example of 1-5-4-5 data coding. In the example of FIG. 18, the maximum number of transitions in the threshold area at the end of the second program is three. In the case of FIG. 18, in the 1st stage, the data of the Lower page, Middle page, and Upper page are input and the program is performed, and in the 2nd stage, the data of the Top page and the Upper page are input and the program is performed. The data of the Upper page is input redundantly in the 1st stage and the 2nd stage. The interval between the two threshold areas that can be separated by the data value of the Upper page at the time of completion of the 1st stage program is narrower than the interval between the other threshold areas.

図19は3-5-2-5データコーディングの一例を示す図である。図18の例では、2ndプログラム終了時におけるしきい値領域の遷移数が最大3個である。図18の場合、1stステージでは、Lowerページ、Middleページ、Upperページのデータを入力してプログラムを行い、2ndステージでは、TopページとMiddleページのデータを入力してプログラムを行う。Middleページのデータは、1stステージと2ndステージで重複して入力される。1stステージのプログラム完了時点でMiddleページのデータの値で分離可能な2つのしきい値領域の間隔は、他のしきい値領域の間隔よりも狭くしている。 FIG. 19 is a diagram showing an example of 3-5-2-5 data coding. In the example of FIG. 18, the maximum number of transitions in the threshold area at the end of the second program is three. In the case of FIG. 18, in the 1st stage, the data of the Lower page, Middle page, and Upper page are input and the program is performed, and in the 2nd stage, the data of the Top page and the Middle page are input and the program is performed. The data of the Middle page is entered redundantly in the 1st stage and the 2nd stage. The interval between the two threshold areas that can be separated by the data value of the Middle page at the time of completion of the first stage program is narrower than the interval between the other threshold areas.

図20は3-3-4-5データコーディングの一例を示す図である。図20の例では、2ndプログラム終了時におけるしきい値領域の遷移数が最大3個である。図20の場合、1stステージでは、Lowerページ、Middleページ、Upperページのデータを入力してプログラムを行い、2ndステージでは、TopページとUpperページのデータを入力してプログラムを行う。 FIG. 20 is a diagram showing an example of 3-3-4-5 data coding. In the example of FIG. 20, the maximum number of transitions in the threshold area at the end of the second program is three. In the case of FIG. 20, in the 1st stage, the data of the Lower page, Middle page, and Upper page are input and the program is performed, and in the 2nd stage, the data of the Top page and the Upper page are input and the program is performed.

図21は2-3-5-5データコーディングの一例を示す図である。図21の例では、2ndプログラム終了時におけるしきい値領域の遷移数が最大5個である。図21の場合、1stステージでは、Lowerページ、Middleページ、Topページのデータを入力してプログラムを行い、2ndステージでは、TopページとUpperページのデータを入力してプログラムを行う。Topページのデータは、1stステージと2ndステージで重複して入力される。図21の場合、1stステージのプログラムが完了した時点では、Topページのデータが0でも1でも、3個のしきい値領域は同じになり、しきい値領域の総数は5個になる。よって、各しきい値領域の間隔を広げることができ、1stステージのプログラムが完了した時点でのデータ読出を正しく行うことができる。 FIG. 21 is a diagram showing an example of 2-3-5-5 data coding. In the example of FIG. 21, the maximum number of transitions in the threshold area at the end of the second program is five. In the case of FIG. 21, in the 1st stage, the data of the Lower page, Middle page, and Top page are input and the program is performed, and in the 2nd stage, the data of the Top page and the Upper page are input and the program is performed. Top page data is entered redundantly in the 1st stage and the 2nd stage. In the case of FIG. 21, when the 1st stage program is completed, the three threshold areas are the same regardless of whether the data on the top page is 0 or 1, and the total number of threshold areas is five. Therefore, the interval between each threshold area can be widened, and data can be read correctly at the time when the first stage program is completed.

図22は3-2-5-5データコーディングの一例を示す図である。図22の例では、2ndプログラム終了時におけるしきい値領域の遷移数が最大5個である。図22の場合、1stステージでは、Lowerページ、Middleページ、Topページのデータを入力してプログラムを行い、2ndステージでは、TopページとUpperページのデータを入力してプログラムを行う。Topページのデータは、1stステージと2ndステージで重複して入力される。図22の場合、1stステージのプログラムが完了した時点では、Topページのデータが0でも1でも、2個のしきい値領域は同じになり、しきい値領域の総数は6個になる。 FIG. 22 is a diagram showing an example of 3-2-5-5 data coding. In the example of FIG. 22, the maximum number of transitions in the threshold area at the end of the second program is five. In the case of FIG. 22, in the 1st stage, the data of the Lower page, Middle page, and Top page are input and the program is performed, and in the 2nd stage, the data of the Top page and the Upper page are input and the program is performed. Top page data is entered redundantly in the 1st stage and the 2nd stage. In the case of FIG. 22, when the 1st stage program is completed, the two threshold areas are the same whether the data on the top page is 0 or 1, and the total number of threshold areas is six.

図23は3-4-4-4データコーディングの一例を示す図である。図23の例では、2ndプログラム終了時におけるしきい値領域の遷移数が最大7個である。図23の場合、1stステージでは、Lowerページ、Middleページ、Upperページのデータを入力してプログラムを行い、2ndステージでは、TopページとUpperページのデータを入力してプログラムを行う。Upperページのデータは、1stステージと2ndステージで重複して入力される。1stステージのプログラム完了時点でUpperページのデータの値で分離可能な2つのしきい値領域の間隔は、他のしきい値領域の間隔よりも狭くしている。 FIG. 23 is a diagram showing an example of 3-4-4-4 data coding. In the example of FIG. 23, the maximum number of transitions in the threshold area at the end of the second program is seven. In the case of FIG. 23, in the 1st stage, the data of the Lower page, Middle page, and Upper page are input and the program is performed, and in the 2nd stage, the data of the Top page and the Upper page are input and the program is performed. The data of the Upper page is input redundantly in the 1st stage and the 2nd stage. The interval between the two threshold areas that can be separated by the data value of the Upper page at the time of completion of the 1st stage program is narrower than the interval between the other threshold areas.

図24は3-4-4-4データコーディングの一例を示す図である。図24の例では、2ndプログラム終了時におけるしきい値領域の遷移数が最大8個である。図24の場合、1stステージでは、Lowerページ、Middleページ、Topページのデータを入力してプログラムを行い、2ndステージでは、TopページとUpperページのデータを入力してプログラムを行う。Topページのデータは、1stステージと2ndステージで重複して入力される。図24の場合、1stステージのプログラムが完了した時点では、Topページのデータが0でも1でも、2個のしきい値領域は同じになり、しきい値領域の総数は6個になる。 FIG. 24 is a diagram showing an example of 3-4-4-4 data coding. In the example of FIG. 24, the maximum number of transitions in the threshold area at the end of the 2nd program is eight. In the case of FIG. 24, in the 1st stage, the data of the Lower page, Middle page, and Top page are input and the program is performed, and in the 2nd stage, the data of the Top page and the Upper page are input and the program is performed. Top page data is entered redundantly in the 1st stage and the 2nd stage. In the case of FIG. 24, when the 1st stage program is completed, the two threshold areas are the same whether the data on the top page is 0 or 1, and the total number of threshold areas is six.

図17~図24は、データコーディングの例に過ぎず、他のデータコーディングが採用されてもよい。 17-24 are merely examples of data coding, and other data coding may be employed.

例えば、2ndプログラム終了時にしきい値領域の遷移数が最大3個になる例は、図17~図20以外にも、以下の図25~図27が存在する。図25は1-4-5-5データコーディングの一例を示す図である。図25の例では、1stプログラムが完了した時点で6個の異なるしきい値領域が生成される。このうち、Middleページが1でLowerページが1のしきい値領域と、Middleページが0でLowerページが1のしきい値領域は、Topページが0でも1でも、同じしきい値領域になる。このため、本来は8個のしきい値領域が生成されるべきであるが、6個のしきい値領域に集約される。 For example, in addition to FIGS. 17 to 20, the following FIGS. 25 to 27 exist in which the number of transitions in the threshold area becomes three at most at the end of the 2nd program. FIG. 25 is a diagram showing an example of 1-4-5-5 data coding. In the example of FIG. 25, six different threshold areas are generated when the first program is completed. Among these, the threshold area where the Middle page is 1 and the Lower page is 1, and the threshold area where the Middle page is 0 and the Lower page is 1 are the same whether the Top page is 0 or 1. . For this reason, originally eight threshold areas should be generated, but they are aggregated into six threshold areas.

図26は2-5-3-5データコーディングの一例を示す図である。図26の例では、1stプログラムが完了した時点で7個の異なるしきい値領域が生成される。このうち、Middleページが1でLowerページが1のしきい値領域は、Topページが0でも1でも、同じしきい値領域になる。このため、本来は8個のしきい値領域が生成されるべきであるが、7個のしきい値領域に集約される。 FIG. 26 is a diagram showing an example of 2-5-3-5 data coding. In the example of FIG. 26, seven different threshold areas are generated when the first program is completed. Among these, the threshold area where the Middle page is 1 and the Lower page is 1 is the same threshold area whether the Top page is 0 or 1. For this reason, originally eight threshold areas should be generated, but they are aggregated into seven threshold areas.

図27は3-4-5-3データコーディングの一例を示す図である。図27の例では、1stプログラムが完了した時点で7個の異なるしきい値領域が生成される。このうち、MiddleページでLowerページが1のしきい値領域は、Topページが0でも1でも、同じしきい値領域になる。このため、本来は8個のしきい値領域が生成されるべきであるが、7個のしきい値領域に集約される。 FIG. 27 is a diagram showing an example of 3-4-5-3 data coding. In the example of FIG. 27, seven different threshold areas are generated when the first program is completed. Among these, the threshold area where the Middle page is 1 and the Lower page is 1 is the same threshold area whether the Top page is 0 or 1. For this reason, originally eight threshold areas should be generated, but they are aggregated into seven threshold areas.

この他、他のデータコーディングの例も考えられる。以下では、各データコーディングのコード割り付けを示す図を列記する。図28は3-2-5-5データコーディングの一例、図29は3-2-5-5データコーディングの一例、図30は1-5-5-4データコーディングの一例を示している。また、図31は1-5-4-5データコーディングの一例、図32は1-4-5-5データコーディングの一例、図33は1-5-3-6データコーディングの一例を示している。また、図34は1-3-6-5データコーディングの一例、図35は1-2-6-6データコーディングの一例、図36は1-2-6-6データコーディングの一例を示している。 Other examples of data coding are also possible. Below, diagrams showing code allocation for each data coding are listed. FIG. 28 shows an example of 3-2-5-5 data coding, FIG. 29 shows an example of 3-2-5-5 data coding, and FIG. 30 shows an example of 1-5-5-4 data coding. Further, FIG. 31 shows an example of 1-5-4-5 data coding, FIG. 32 shows an example of 1-4-5-5 data coding, and FIG. 33 shows an example of 1-5-3-6 data coding. . Further, FIG. 34 shows an example of 1-3-6-5 data coding, FIG. 35 shows an example of 1-2-6-6 data coding, and FIG. 36 shows an example of 1-2-6-6 data coding. .

また、図37は1-2-6-6データコーディングの一例、図38は1-4-6-4データコーディングの一例、図39は1-4-4-6データコーディングの一例を示している。また、図40は1-4-6-4データコーディングの一例、図41は1-4-4-6データコーディングの一例、図42は2-5-2-6データコーディングの一例を示している。また、図43は2-5-2-6データコーディングの一例、図44は2-5-2-6データコーディングの一例、図45は3-3-3-6データコーディングの一例を示している。また、図46は3-3-6-3データコーディングの一例、図47は2-3-4-6データコーディングの一例、図48は3-4-2-6データコーディングの一例を示している。 Further, FIG. 37 shows an example of 1-2-6-6 data coding, FIG. 38 shows an example of 1-4-6-4 data coding, and FIG. 39 shows an example of 1-4-4-6 data coding. . Also, FIG. 40 shows an example of 1-4-6-4 data coding, FIG. 41 shows an example of 1-4-4-6 data coding, and FIG. 42 shows an example of 2-5-2-6 data coding. . Further, FIG. 43 shows an example of 2-5-2-6 data coding, FIG. 44 shows an example of 2-5-2-6 data coding, and FIG. 45 shows an example of 3-3-3-6 data coding. . Also, FIG. 46 shows an example of 3-3-6-3 data coding, FIG. 47 shows an example of 2-3-4-6 data coding, and FIG. 48 shows an example of 3-4-2-6 data coding. .

また、図49は2-3-4-6データコーディングの一例、図50は3-2-6-4データコーディングの一例、図51は3-2-4-6データコーディングの一例を示している。また、図52は3-2-6-4データコーディングの一例、図53は3-4-2-6データコーディングの一例、図54は3-2-4-6データコーディングの一例を示している。また、図55は5-3-2-5データコーディングの一例、図56は3-5-2-5データコーディングの一例、図57は3-2-5-5データコーディングの一例を示している。また、図58は2-3-5-5データコーディングの一例、図59は2-3-5-5データコーディングの一例、図60は2-3-5-5データコーディングの一例を示している。 Further, FIG. 49 shows an example of 2-3-4-6 data coding, FIG. 50 shows an example of 3-2-6-4 data coding, and FIG. 51 shows an example of 3-2-4-6 data coding. . Further, FIG. 52 shows an example of 3-2-6-4 data coding, FIG. 53 shows an example of 3-4-2-6 data coding, and FIG. 54 shows an example of 3-2-4-6 data coding. . Further, FIG. 55 shows an example of 5-3-2-5 data coding, FIG. 56 shows an example of 3-5-2-5 data coding, and FIG. 57 shows an example of 3-2-5-5 data coding. . Further, FIG. 58 shows an example of 2-3-5-5 data coding, FIG. 59 shows an example of 2-3-5-5 data coding, and FIG. 60 shows an example of 2-3-5-5 data coding. .

また、図61は5-4-2-4データコーディングの一例、図62は4-5-2-4データコーディングの一例、図63は5-4-2-4データコーディングの一例を示している。また、図64は2-4-5-4データコーディングの一例、図65は2-4-5-4データコーディングの一例、図66は2-5-4-4データコーディングの一例を示している。また、図67は2-5-4-4データコーディングの一例、図68は2-5-4-4データコーディングの一例、図69は1-5-4-5データコーディングの一例を示している。また、図70は1-4-5-5データコーディングの一例、図71は1-5-5-4データコーディングの一例、図72は1-4-5-5データコーディングの一例を示している。 Also, FIG. 61 shows an example of 5-4-2-4 data coding, FIG. 62 shows an example of 4-5-2-4 data coding, and FIG. 63 shows an example of 5-4-2-4 data coding. . Also, FIG. 64 shows an example of 2-4-5-4 data coding, FIG. 65 shows an example of 2-4-5-4 data coding, and FIG. 66 shows an example of 2-5-4-4 data coding. . Also, FIG. 67 shows an example of 2-5-4-4 data coding, FIG. 68 shows an example of 2-5-4-4 data coding, and FIG. 69 shows an example of 1-5-4-5 data coding. . Further, FIG. 70 shows an example of 1-4-5-5 data coding, FIG. 71 shows an example of 1-5-5-4 data coding, and FIG. 72 shows an example of 1-4-5-5 data coding. .

また、図73は1-5-5-4データコーディングの一例、図74は1-5-4-5データコーディングの一例、図75は1-5-5-4データコーディングの一例を示している。また、図76は1-5-4-5データコーディングの一例、図77は1-4-5-5データコーディングの一例、図78は1-4-5-5データコーディングの一例を示している。また、図79は1-4-5-5データコーディングの一例、図80は1-4-5-5データコーディングの一例、図81は3-5-4-3データコーディングの一例を示している。また、図82は3-4-5-3データコーディングの一例、図83は3-5-3-4データコーディングの一例、図84は3-4-3-5データコーディングの一例を示している。 Further, FIG. 73 shows an example of 1-5-5-4 data coding, FIG. 74 shows an example of 1-5-4-5 data coding, and FIG. 75 shows an example of 1-5-5-4 data coding. . Also, FIG. 76 shows an example of 1-5-4-5 data coding, FIG. 77 shows an example of 1-4-5-5 data coding, and FIG. 78 shows an example of 1-4-5-5 data coding. . Further, FIG. 79 shows an example of 1-4-5-5 data coding, FIG. 80 shows an example of 1-4-5-5 data coding, and FIG. 81 shows an example of 3-5-4-3 data coding. . Further, FIG. 82 shows an example of 3-4-5-3 data coding, FIG. 83 shows an example of 3-5-3-4 data coding, and FIG. 84 shows an example of 3-4-3-5 data coding. .

また、図85は3-4-5-3データコーディングの一例、図86は3-4-3-5データコーディングの一例、図87は3-3-5-4データコーディングの一例を示している。また、図88は3-3-5-4データコーディングの一例、図89は4-5-3-3データコーディングの一例、図90は3-5-4-3データコーディングの一例を示している。また、図91は3-4-5-3データコーディングの一例、図92は3-3-4-5データコーディングの一例、図93は3-3-4-5データコーディングの一例を示している。 Also, FIG. 85 shows an example of 3-4-5-3 data coding, FIG. 86 shows an example of 3-4-3-5 data coding, and FIG. 87 shows an example of 3-3-5-4 data coding. . Further, FIG. 88 shows an example of 3-3-5-4 data coding, FIG. 89 shows an example of 4-5-3-3 data coding, and FIG. 90 shows an example of 3-5-4-3 data coding. . Further, FIG. 91 shows an example of 3-4-5-3 data coding, FIG. 92 shows an example of 3-3-4-5 data coding, and FIG. 93 shows an example of 3-3-4-5 data coding. .

また、図94は3-3-4-5データコーディングの一例、図95は3-4-5-3データコーディングの一例、図96は3-3-5-4データコーディングの一例を示している。また、図97は3-3-4-5データコーディングの一例、図98は4-3-4-4データコーディングの一例、図99は3-4-4-4データコーディングの一例を示している。また、図100は3-4-4-4データコーディングの一例、図101は4-3-4-4データコーディングの一例、図102は3-4-4-4データコーディングの一例を示している。また、図103は3-4-4-4データコーディングの一例、図104は3-4-4-4データコーディングの一例、図105は3-4-4-4データコーディングの一例を示している。また、図106は4-4-3-4データコーディングの一例、図107は4-4-3-4データコーディングの一例を示している。 Further, FIG. 94 shows an example of 3-3-4-5 data coding, FIG. 95 shows an example of 3-4-5-3 data coding, and FIG. 96 shows an example of 3-3-5-4 data coding. . Also, FIG. 97 shows an example of 3-3-4-5 data coding, FIG. 98 shows an example of 4-3-4-4 data coding, and FIG. 99 shows an example of 3-4-4-4 data coding. . Also, FIG. 100 shows an example of 3-4-4-4 data coding, FIG. 101 shows an example of 4-3-4-4 data coding, and FIG. 102 shows an example of 3-4-4-4 data coding. . Further, Fig. 103 shows an example of 3-4-4-4 data coding, Fig. 104 shows an example of 3-4-4-4 data coding, and Fig. 105 shows an example of 3-4-4-4 data coding. . Further, FIG. 106 shows an example of 4-4-3-4 data coding, and FIG. 107 shows an example of 4-4-3-4 data coding.

このように、1stステージと2ndステージで、一部のページのデータを重複して入力し、その他のページのデータは、1stステージと2ndステージの一方だけに入力してプログラムを行うことで、セル間相互干渉を低減し、かつ書き込みバッファの容量も削減し、かつ各ビットデータを書き込む際のビットエラー率の偏りを抑制できる。特に、1-4-5-5、1-5-4-5、3-3-4-5、又は3-5-2-5データコーディングの場合、各ページデータの境界数が均一であり、かつ2ndステージのプログラム時のしきい値領域の遷移数が3以下であるため、ビットエラー率の偏りを抑制できるとともに、セル間相互干渉を低減できる。 In this way, by inputting the data of some pages redundantly in the 1st stage and the 2nd stage, and inputting the data of other pages only in either the 1st stage or the 2nd stage, you can program the cell. It is possible to reduce mutual interference between data and the write buffer, reduce the capacity of the write buffer, and suppress unevenness in the bit error rate when writing each bit data. In particular, in the case of 1-4-5-5, 1-5-4-5, 3-3-4-5, or 3-5-2-5 data coding, the number of boundaries of each page data is uniform; In addition, since the number of transitions in the threshold region during programming of the 2nd stage is 3 or less, it is possible to suppress bias in the bit error rate and to reduce mutual interference between cells.

(第3の実施形態)
第3の実施形態によるメモリシステム1は、書き込みバッファの容量を第1及び第2の実施形態よりも削減するものである。
(Third embodiment)
The memory system 1 according to the third embodiment reduces the write buffer capacity more than the first and second embodiments.

第3の実施形態によるメモリシステム1のハードウェア構成は、第1及び第2の実施形態によるメモリシステム1と共通する。第3の実施形態では、1stステージのプログラムと重複して2ndステージのプログラムでも入力するページのデータを、1stステージのプログラム開始後に、不揮発メモリ3の内部のページバッファ24に保持し続ける。これにより、2ndステージのプログラムではそのページのデータ入力の手順を省略するとともに、全てのページのデータ入力は1回だけにすることが可能となる。これにより、書き込みバッファの容量を削減できる。 The hardware configuration of the memory system 1 according to the third embodiment is common to the memory system 1 according to the first and second embodiments. In the third embodiment, page data that is input in the 2nd stage program overlappingly with the 1st stage program is continued to be held in the page buffer 24 inside the nonvolatile memory 3 after the 1st stage program is started. As a result, in the 2nd stage program, it is possible to omit the data input procedure for that page and to input data for all pages only once. This allows the capacity of the write buffer to be reduced.

さらに、本実施形態では、ワード線WLn-1の2ndステージのプログラムと、ワード線WLnの1stステージのプログラムとをまとめて行う。このように、ページバッファ24は、第1乃至第4ビット(Lowerページ、Middleページ、Upperページ、Topページ)のうち、1stステージのプログラムと2ndステージのプログラムで重複して入力されるビットのデータを、1stステージのプログラムを開始する前に記憶し、2ndステージのプログラムを開始した以降は破棄可能又は無効化可能とする。以下、本実施形態でも第1の実施形態の図6で説明したものと同じ1-4-5-5データコーディングを用いる例について説明する。 Furthermore, in this embodiment, the 2nd stage programming of the word line WLn-1 and the 1st stage programming of the word line WLn are performed together. In this way, the page buffer 24 stores data of bits that are input redundantly in the 1st stage program and the 2nd stage program among the 1st to 4th bits (Lower page, Middle page, Upper page, Top page). is stored before starting the 1st stage program, and can be discarded or invalidated after starting the 2nd stage program. Hereinafter, an example will be described in which the same 1-4-5-5 data coding as that described in FIG. 6 of the first embodiment is used in this embodiment as well.

図9に示したプログラムのフローチャートでは、1stステージのプログラムと2ndステージのプログラムとは、実行タイミングがずれており、それぞれのプログラムの際にそれぞれのプログラムコマンドとプログラムデータ入力が行なわれている。これに対して、本実施形態では、1stステージと2ndステージのプログラムコマンド及びプログラムデータ入力をなるべくまとめて行う。 In the program flowchart shown in FIG. 9, the execution timings of the 1st stage program and the 2nd stage program are shifted, and respective program commands and program data are input during each program. In contrast, in this embodiment, program commands and program data input for the 1st stage and 2nd stage are performed together as much as possible.

例えば、図8Bに示したように、ブロックの先頭と終わりの端部以外は、ワード線WLnの1stステージとワード線WLn-1の2ndステージのプログラムとが必ず連続する。そこで、本実施形態では、この部分をひとまとめのコマンド入力とする。すなわち、1回のコマンド入力で、ワード線WLnのLowerページ、Middleページ及びTopページと、ワード線WLn-1のUpperページの各プログラムデータがまとめて入力される。これは、Foggy-Fineが採用された場合でも、1回のプログラムコマンドでLower/Middle/Upper/Topページのデータをまとめて(ただし、この場合は同じワード線WLi内のページ)4ページ分入力していたのと同じデータ量の入力である。 For example, as shown in FIG. 8B, the programs of the 1st stage of word line WLn and the 2nd stage of word line WLn-1 are always continuous except at the beginning and end of the block. Therefore, in this embodiment, this part is treated as a single command input. That is, by inputting a command once, each program data of the Lower page, Middle page, and Top page of the word line WLn and the Upper page of the word line WLn-1 are input all at once. Even if Foggy-Fine is adopted, data for Lower/Middle/Upper/Top pages can be input for 4 pages (in this case, pages within the same word line WLi) with one program command. This is the same amount of data input as was previously used.

このように、プログラムコマンド及びプログラムデータの入力がまとめられることにより、メモリコントローラ2が行う制御におけるコマンド入力やポーリング(チップビジーがレディーに戻ったか否かの定期的なチェック)の頻度が減少し、メモリシステム1の高速化と制御の簡素化が可能となる。 By consolidating the input of program commands and program data in this way, the frequency of command input and polling (regular checking whether the chip busy state has returned to ready) in the control performed by the memory controller 2 is reduced. It is possible to speed up the memory system 1 and simplify control.

ここで、図108及び図109を用いて、第3の実施形態に係るプログラム順序に従った書き込み手順の一例について説明する。図108及び図109では、図8Bに示すプログラム順序に従った場合の書き込み手順を示している。 Here, an example of a write procedure according to the program order according to the third embodiment will be explained using FIGS. 108 and 109. FIGS. 108 and 109 show the write procedure when the program order shown in FIG. 8B is followed.

図108は第3の実施形態に係る1ブロック分全体の書き込み手順を示すフローチャートである。ここでの1ブロックは、ワード線WL0~WLn(nは自然数)のn+1本のワード線WLiを有するとする。図108に示すように、書き込みを開始すると(ステップS710)、ストリングSt0~St3のワード線WL0の1stステージのプログラムの処理を行う(ステップS712)。これにより、制御部22は、ストリングSt0~St3のワード線WL0の1stステージのプログラムを実施する(ステップS714)。 FIG. 108 is a flowchart showing the entire writing procedure for one block according to the third embodiment. It is assumed here that one block has n+1 word lines WLi of word lines WL0 to WLn (n is a natural number). As shown in FIG. 108, when writing is started (step S710), the 1st stage program of the word line WL0 of strings St0 to St3 is processed (step S712). Thereby, the control unit 22 executes the 1st stage program of the word line WL0 of the strings St0 to St3 (step S714).

また、制御部22は、ストリングSt0_ワード線WL1の1stステージのプログラムと、ストリングSt0_ワード線WL0の2ndステージのプログラムを実施する(ステップS716)。 Further, the control unit 22 executes a 1st stage program for the string St0_word line WL1 and a 2nd stage program for the string St0_word line WL0 (step S716).

次に、制御部22は、ストリングSt1_ワード線WL1の1stステージのプログラムと、ストリングSt1_ワード線WL0の2ndステージのプログラムを実施する(ステップS718)。次に、制御部22は、ストリングSt2_ワード線WL1の1stステージのプログラムと、ストリングSt2_ワード線WL0の2ndステージのプログラムを実施する(ステップS720)。この後、制御部22は、各ストリングの各ワード線WLiに対して同様な処理を繰り返す。 Next, the control unit 22 executes the 1st stage program of the string St1_word line WL1 and the 2nd stage program of the string St1_word line WL0 (step S718). Next, the control unit 22 executes a 1st stage program for the string St2_word line WL1 and a 2nd stage program for the string St2_word line WL0 (step S720). Thereafter, the control unit 22 repeats the same process for each word line WLi of each string.

次に、ストリングSt0_ワード線WLnの1stステージのプログラムと、ストリングSt0_ワード線WLn-1の2ndステージのプログラムを実施する(ステップS722)。次に、制御部22は、ストリングSt1_ワード線WLnの1stステージのプログラムと、ストリングSt1_ワード線WLn-1の2ndステージのプログラムを実施する(ステップS724)。この後、制御部22は、各ストリングの各ワード線WLiに対して同様な処理を繰り返す。 Next, the 1st stage programming of the string St0_word line WLn and the 2nd stage programming of the string St0_word line WLn-1 are performed (step S722). Next, the control unit 22 executes a 1st stage program for the string St1_word line WLn and a 2nd stage program for the string St1_word line WLn-1 (step S724). Thereafter, the control unit 22 repeats the same process for each word line WLi of each string.

次に、制御部22は、ストリングSt3_ワード線WLnの1stステージのプログラムと、ストリングSt3_ワード線WLn-1の2ndステージのプログラムを実施する(ステップS726)。次に、制御部22は、ストリングSt0~St3のワード線WLnの2ndステージのプログラムを実行する(ステップS728、S730、S732)。 Next, the control unit 22 executes a 1st stage program for the string St3_word line WLn and a 2nd stage program for the string St3_word line WLn-1 (step S726). Next, the control unit 22 executes the 2nd stage program for the word lines WLn of the strings St0 to St3 (steps S728, S730, S732).

このように、ブロックの先頭では第1の実施形態と同様に1stステージのみのプログラムが実施され、ブロックの最後では第1の実施形態と同様に2ndステージのみのプログラムが実施される。この場合において、1stステージのみのプログラムは、図8Bに示した手順に従って実行され、2ndステージのみのプログラムは、図8Cに示した手順に従って実行される。また、図108のフローチャートでは、ブロックの先頭と最後以外では、ワード線WLnの1stステージのプログラムとワード線WLn-1の2ndステージのプログラムとをまとめて行う。これにより、メモリコントローラ2が行うコマンド入力やポーリングの頻度が減少し、メモリシステム1の処理を高速化できる。 In this way, at the beginning of the block, a program for only the 1st stage is executed as in the first embodiment, and at the end of the block, a program for only the 2nd stage is executed as in the first embodiment. In this case, the program for only the 1st stage is executed according to the procedure shown in FIG. 8B, and the program for only the 2nd stage is executed according to the procedure shown in FIG. 8C. In addition, in the flowchart of FIG. 108, the 1st stage program of the word line WLn and the 2nd stage program of the word line WLn-1 are performed together except at the beginning and end of the block. This reduces the frequency of command input and polling performed by the memory controller 2, and speeds up the processing of the memory system 1.

図109は第3の実施形態に係る1stステージ及び2ndステージにおける書き込み手順を示すフローチャートである。図109に示すように、1stステージ及び2ndステージのプログラムでは、1stステージのプログラムが実行された後に、続けて2ndステージのプログラムが実行される。具体的には、まず、メモリコントローラ2から不揮発性メモリ3へ、ワード線WLn-1のUpperページのデータの入力開始コマンドが入力される(ステップS750)。そして、メモリコントローラ2から不揮発性メモリ3へ、ワード線WLn-1のUpperページのデータが入力される(ステップS752)。 FIG. 109 is a flowchart showing the write procedure in the 1st stage and the 2nd stage according to the third embodiment. As shown in FIG. 109, in the 1st stage and 2nd stage programs, after the 1st stage program is executed, the 2nd stage program is executed. Specifically, first, a command to start inputting data of the Upper page of word line WLn-1 is input from the memory controller 2 to the nonvolatile memory 3 (step S750). Then, the data of the Upper page of the word line WLn-1 is input from the memory controller 2 to the nonvolatile memory 3 (step S752).

次に、メモリコントローラ2から不揮発性メモリ3へ、ワード線WLnのLowerページのデータの入力開始コマンドが入力される(ステップS754)。そして、メモリコントローラ2から不揮発性メモリ3へ、ワード線WLnのLowerページのデータが入力される(ステップS756)。 Next, a command to start inputting data of the lower page of word line WLn is input from the memory controller 2 to the nonvolatile memory 3 (step S754). Then, the data of the lower page of the word line WLn is input from the memory controller 2 to the nonvolatile memory 3 (step S756).

次に、メモリコントローラ2から不揮発性メモリ3へ、ワード線WLnのMiddleページのデータの入力開始コマンドが入力される(ステップS758)。そして、メモリコントローラ2から不揮発性メモリ3へ、ワード線WLnのMiddleページのデータが入力される(ステップS760)。Middleページのデータは、不揮発性メモリ3に入力されるだけでなく、ページバッファ24にも記憶される。ページバッファ24に記憶した後は、書き込みバッファ内のMiddleデータを破棄又は無効化することができる。 Next, a command to start inputting data of the Middle page of the word line WLn is input from the memory controller 2 to the nonvolatile memory 3 (step S758). Then, the data of the Middle page of the word line WLn is input from the memory controller 2 to the nonvolatile memory 3 (step S760). The middle page data is not only input to the nonvolatile memory 3 but also stored in the page buffer 24. After being stored in the page buffer 24, the Middle data in the write buffer can be discarded or invalidated.

次に、メモリコントローラ2から不揮発性メモリ3へ、ワード線WLnのTopページのデータの入力開始コマンドが入力される(ステップS762)。そして、メモリコントローラ2から不揮発性メモリ3へ、ワード線WLnのTopページのデータが入力される(ステップS764)。 Next, a command to start inputting data of the top page of word line WLn is input from the memory controller 2 to the nonvolatile memory 3 (step S762). Then, the data of the top page of the word line WLn is input from the memory controller 2 to the nonvolatile memory 3 (step S764).

次に、メモリコントローラ2から不揮発性メモリ3へ、1stステージ及び2ndステージのプログラム実行コマンドが入力され(ステップS766)、これによりチップビジーとなる(ステップS768)。 Next, program execution commands for the 1st stage and 2nd stage are input from the memory controller 2 to the nonvolatile memory 3 (step S766), and the chip becomes busy (step S768).

この後、ワード線WLnのLowerページ、Middleページ及びTopページに対し、1~複数回のプログラム電圧パルスが印加される(ステップS770)。そして、メモリセルがしきい値境界レベルを超えて移動したか否かを確認するために、ワード線WLnのLowerページとTopページのデータ読み出しが行なわれる(ステップS772)。 After this, one to a plurality of program voltage pulses are applied to the Lower page, Middle page, and Top page of the word line WLn (step S770). Then, in order to check whether the memory cell has moved beyond the threshold boundary level, data is read from the Lower page and Top page of the word line WLn (step S772).

さらに、LowerページとTopページにおけるデータのフェイルビット数がクライテリアよりも小さいか否かが確認される(ステップS774)。LowerページとTopページにおけるデータのフェイルビット数がクライテリア以上である場合、ステップS770~S774の処理が繰り返される。そして、データのフェイルビット数がクライテリアよりも小さくなると、ワード線WLn-1のLowerページとTopページデータが読み出される(ステップS776)。 Furthermore, it is checked whether the number of fail bits of the data in the Lower page and the Top page is smaller than the criteria (step S774). If the number of fail bits of data in the Lower page and Top page is equal to or greater than the criterion, the processes of steps S770 to S774 are repeated. Then, when the number of data fail bits becomes smaller than the criterion, the Lower page and Top page data of word line WLn-1 are read out (step S776).

そして、ワード線WLn-1のLowerとTopページデータと、ページバッファ24から読み出されたMiddleページのデータとに基づいて、Upperページのプログラム先のしきい値電圧Vthが決定される(ステップS778)。この後、決定されたしきい値電圧Vthを用いて、ワード線WLn-1のUpperページへのデータ書き込みが行われる(ステップS780)。 Then, the threshold voltage Vth of the Upper page program destination is determined based on the Lower and Top page data of the word line WLn-1 and the Middle page data read from the page buffer 24 (step S778). ). Thereafter, data is written to the Upper page of word line WLn-1 using the determined threshold voltage Vth (step S780).

Upperページへのデータ書き込みの際には、ワード線WLn-1のUpperページに対し、1~複数回のプログラム電圧パルスが印加される。そして、メモリセルがしきい値境界レベルを超えて移動したか否かを確認するために、ワード線WLn-1のUpperページのデータ読み出しが行なわれる(ステップS782)。 When writing data to the Upper page, one to a plurality of program voltage pulses are applied to the Upper page of word line WLn-1. Then, in order to check whether the memory cell has moved beyond the threshold boundary level, data is read from the Upper page of word line WLn-1 (step S782).

さらに、Upperページにおけるデータのフェイルビット数がクライテリアよりも小さいか否かを確認するベリファイが行われる(ステップS784)。Upperページにおけるデータのフェイルビット数がクライテリア以上である場合、プログラム電圧パルス印加とデータ読み出し、ベリファイの処理が繰り返される。そして、データのフェイルビット数がクライテリアよりも小さくなると、チップレディーとなる(ステップS786)。 Furthermore, verification is performed to check whether the number of fail bits of data in the Upper page is smaller than the criteria (step S784). If the number of data fail bits in the Upper page is equal to or greater than the criterion, the program voltage pulse application, data read, and verify processing are repeated. Then, when the number of fail bits of the data becomes smaller than the criterion, the chip becomes ready (step S786).

なお、同一ワード線に対する1stステージのプログラムにおいて、複数のページのデータ入力開始コマンドとデータ入力処理におけるページの順番は任意であり、どのページが先に入力されてもよい。また、同一ワード線に対する2ndステージのプログラムにおいて、複数のページのデータ入力開始コマンドとデータ入力の処理におけるページの順番も任意である。ただし、それぞれのワード線番号と、2つのステージのプログラムの処理の順番は、必ず図109に示す順番にならなければいけない。 Note that in the 1st stage program for the same word line, the order of the pages in the data input start command and data input processing for a plurality of pages is arbitrary, and any page may be input first. Furthermore, in the 2nd stage program for the same word line, the order of pages in data input start command and data input processing for a plurality of pages is also arbitrary. However, the respective word line numbers and the processing order of the two stage programs must be in the order shown in FIG. 109.

このように、図109では、ワード線WLnの1stステージのプログラムがワード線WLn-1の2ndステージのプログラムよりも前に実行される場合について説明した。これは、ワード線WLnの1stステージのプログラムが先に行なわれることで、16値のしきい値電圧Vthが書き込まれるワード線WLn-1のセルが隣接セルの影響を受けないようにするためである。 In this manner, in FIG. 109, a case has been described in which the 1st stage program of the word line WLn is executed before the 2nd stage program of the word line WLn-1. This is because the programming of the 1st stage of word line WLn is performed first, so that the cell of word line WLn-1 to which the 16-value threshold voltage Vth is written is not affected by the adjacent cell. be.

上述したように、本実施形態では、ワード線WLn-1のUpperページのデータと、ワード線WLnのLowerページ、Middleページ及びTopページのデータとの4ページ分のデータが連続して入力される。 As described above, in this embodiment, data for four pages, including the data of the Upper page of word line WLn-1, and the data of the Lower page, Middle page, and Top page of word line WLn, are input continuously. .

また、別の変形例として、プログラムコマンドの入力後、IDLとして、ワード線WLn-1のLowerページ、Middleページ及びTopページのデータの読み出しを先に行なった後に、ワード線WLnのLowerページ、Middleページ及びTopページのプログラムを行い、次に、ワード線WLn-1のUpperページのプログラム先のしきい値電圧Vthが決定され、決定されたしきい値電圧Vthでワード線WLn-1のUpperページのプログラムを行なうこともできる。このようにすると、ワード線WLnの書込みによる隣接セル間干渉を受ける前に、IDLのワード線WLn-1のLowerページ、Middleページ及びTopページのデータを読み出すことができる。 As another modification, after inputting a program command, the data of the Lower page, Middle page, and Top page of word line WLn-1 are first read as IDL, and then the data of the Lower page, Middle page, and Top page of word line WLn-1 are read as IDL. Page and Top page are programmed, and then the threshold voltage Vth of the program destination of the Upper page of the word line WLn-1 is determined, and the determined threshold voltage Vth is used for the Upper page of the word line WLn-1. You can also run the program. In this way, data in the Lower page, Middle page, and Top page of the IDL word line WLn-1 can be read before interference occurs between adjacent cells due to writing on the word line WLn.

なお、本実施形態における、ワード線WLnの1stステージとワード線WLn-1の2ndステージとのひとまとめのコマンドによるプログラムの実際の実行順番は変形が可能である。すなわち、図109に示したワード線WLnのLowerページ、Middleページ及びTopページのプログラムと、IDLとしてのワード線WLn-1のLowerページ、Middleページ及びTopページのデータ読み出しとは、何れが先でもよく、入れ替えが可能である。ワード線WLn-1のLowerページ、Middleページ及びTopページのデータ読み出しがワード線WLnのLowerページ、Middleページ及びTopページのプログラムよりも前に行なわれることで、ワード線WLnのLowerページ、Middleページ及びTopページのプログラムによる影響を受けることなくIDLが可能となる。 Note that in this embodiment, the actual order of execution of the program based on a batch of commands for the 1st stage of the word line WLn and the 2nd stage of the word line WLn-1 can be modified. That is, the programming of the Lower page, Middle page, and Top page of the word line WLn shown in FIG. Often, they can be replaced. By reading the data of the Lower page, Middle page, and Top page of word line WLn-1 before programming the Lower page, Middle page, and Top page of word line WLn, the Lower page, Middle page of word line WLn IDL is possible without being affected by the top page program.

このように、第3の実施形態では、ワード線WLn-1の2ndステージのプログラムと、ワード線WLnの1stステージのプログラムとをまとめて行うので、コマンド入力やポーリングの頻度が減少する。したがって、メモリシステム1の高速化及び制御の簡素化が可能となる。 In this way, in the third embodiment, the 2nd stage programming of the word line WLn-1 and the 1st stage programming of the word line WLn are performed at the same time, so the frequency of command input and polling is reduced. Therefore, the speed of the memory system 1 can be increased and the control can be simplified.

図110は第3の実施形態のプログラムにおける書き込みバッファ量(バッファデータ量)を説明するための図である。本実施形態では、1-4-5-5データコーディングで2ステージのプログラムが用いられる。この本実施形態のプログラムでは、1stステージでは、3ページ分(Lowerページ及びMiddleページ及びTopページ)のデータ入力と、この3ページ分のプログラム(1stプログラム)とが行われる。また、本実施形態のプログラムの場合、2ndステージでは、1ページ分(Upperページ)のデータ入力と、Upperページの1ページ分のプログラム(2ndプログラム)とが行われる。 FIG. 110 is a diagram for explaining the write buffer amount (buffer data amount) in the program of the third embodiment. In this embodiment, a two-stage program with 1-4-5-5 data coding is used. In the program of this embodiment, in the 1st stage, data input for three pages (Lower page, Middle page, and Top page) and a program for these three pages (1st program) are performed. Furthermore, in the case of the program of this embodiment, in the second stage, data input for one page (upper page) and a program for one page of the upper page (second program) are performed.

そして、各ワード線WL0、WL1、WL2、・・・では、各ステージのデータ入力の際にデータを書き込みバッファ内に格納しておけばよく、プログラムが開始されると、書き込みバッファ内からデータが削除されてもよい。例えば、1stステージにおいてデータが入力されると、このデータは書き込みバッファ内に格納される。そして、1stステージにおいてプログラムが開始されると、書き込みバッファ内に格納しておいたLowerページとTopページとMiddleページのデータは削除されてもよい。ただし、Middleページのデータは、2ndステージでも使用するため、2ndステージのプログラムが開始されるまではページバッファ24に記憶しておく必要がある。同様に、2ndステージにおいてデータが入力されると、このデータは書き込みバッファ内に格納される。そして、2ndステージにおいてプログラムが開始されると、書き込みバッファ内に格納しておいたデータはすべて削除されてもよい。このため、本実施形態のプログラムの場合、書き込みバッファ内に保持しておく必要があるデータは、最大でも3ページ分のデータであり、第1の実施形態よりもさらに少なくて済む。 Then, for each word line WL0, WL1, WL2, etc., data can be stored in the write buffer when inputting data at each stage, and when the program is started, the data is stored in the write buffer. May be deleted. For example, when data is input in the 1st stage, this data is stored in the write buffer. Then, when the program is started in the 1st stage, the data of the Lower page, Top page, and Middle page stored in the write buffer may be deleted. However, since the data of the Middle page is also used in the 2nd stage, it is necessary to store it in the page buffer 24 until the 2nd stage program is started. Similarly, when data is input in the 2nd stage, this data is stored in the write buffer. Then, when the program is started in the 2nd stage, all data stored in the write buffer may be deleted. Therefore, in the case of the program of this embodiment, the data that needs to be held in the write buffer is three pages worth of data at most, which is even less than the first embodiment.

本実施形態のプログラムにおいても、隣接メモリセル間干渉を低減するため、Lower/Middle/Upper/Topの4ページ分のデータは連続して書き込まれない。例えば、ワード線WL0への1stステージが実行された後、ワード線WL0への2ndステージが実行される前に、ワード線WL0に隣接するワード線WL1への1stステージが実行される。同様に、ワード線WL1への1stステージが実行された後、ワード線WL1への2ndステージが実行される前に、ワード線WL1に隣接するワード線WL2への1stステージが実行される。 Also in the program of this embodiment, data for four pages of Lower/Middle/Upper/Top are not written consecutively in order to reduce interference between adjacent memory cells. For example, after the 1st stage is performed on the word line WL0, and before the 2nd stage is performed on the word line WL0, the 1st stage is performed on the word line WL1 adjacent to the word line WL0. Similarly, after the 1st stage to the word line WL1 is performed, and before the 2nd stage to the word line WL1 is performed, the 1st stage to the word line WL2 adjacent to the word line WL1 is performed.

このように、本実施形態では、すべてのページデータは、1回のステージのプログラムでのみ必要であるので、そのデータ入力が完了すれば書き込みバッファ内のデータは破棄可能となる。そのため、本実施形態では、書き込みバッファ内に同時に保持しておくことが必要なページ数が、第1の実施形態よりもさらに少なくて済む。 In this manner, in this embodiment, all page data is needed only for one stage of programming, so once the data input is completed, the data in the write buffer can be discarded. Therefore, in this embodiment, the number of pages that need to be simultaneously held in the write buffer is even smaller than in the first embodiment.

不揮発性メモリ3へプログラムされるページデータは、RAM6内の書き込みバッファに一旦保持されてから、プログラム時に不揮発性メモリ3へデータ入力される。本実施形態においては、このRAM6の必要容量を小さくすることが可能となるので、コスト削減となる。 Page data to be programmed into the non-volatile memory 3 is temporarily held in a write buffer in the RAM 6, and then input into the non-volatile memory 3 at the time of programming. In this embodiment, it is possible to reduce the required capacity of the RAM 6, resulting in cost reduction.

また、本実施形態では各ページそれぞれ1回のデータ転送で完了するため、第1の実施形態と比較してページデータの転送時間も少なくて済み、転送時の消費電力削減することが可能となる。 In addition, in this embodiment, each page is completed with one data transfer, so the time required to transfer page data is shorter than in the first embodiment, and it is possible to reduce power consumption during transfer. .

本実施形態におけるページ読み出し処理については、第1の実施形態で説明した処理手順と同じであるため、説明を省略する。 The page read processing in this embodiment is the same as the processing procedure described in the first embodiment, so the explanation will be omitted.

なお、本実施形態では、新たに保持し続けるページのデータのために、NANDフラッシュメモリ内部のページバッファ24を増やす必要がある。図8Aに示したようにブロック内に1個のストリングが存在するNANDフラッシュメモリのプログラムでは、増加が必要なページバッファ24の量は1ページデータ分である。それに対し、図8Bもしくは図8Cに示したようにブロック内に4個のストリングが存在するNANDフラッシュメモリのプログラムでは、増加が必要なページバッファ24の量は4ページデータ分である。これは、ある1つのストリングの1stステージのプログラムを実行してから、同じストリングの2ndステージのプログラムを実行するまでに、他の3つのストリングの1stステージのプログラムを実行せねばならず、結局、4つ全てのストリングについて、それぞれ1ページ分のデータを保持する必要があるからである。 Note that in this embodiment, it is necessary to increase the page buffer 24 inside the NAND flash memory in order to store new page data. When programming a NAND flash memory in which one string exists in a block as shown in FIG. 8A, the amount of page buffer 24 that needs to be increased is one page of data. On the other hand, in a NAND flash memory program where four strings exist in a block as shown in FIG. 8B or FIG. 8C, the amount of page buffer 24 that needs to be increased is four pages of data. This means that after executing the 1st stage program for one string, and before executing the 2nd stage program for the same string, the 1st stage programs for the other three strings must be executed, and in the end, This is because it is necessary to hold one page worth of data for each of all four strings.

本実施形態では、1-4-5-5データコーディングを例に取って説明したが、さまざまなデータコーディングの変形が可能であり、上記に述べた実施形態を実現することが可能であることは明らかである。 Although this embodiment has been explained using 1-4-5-5 data coding as an example, it is possible to make various modifications to the data coding, and it is possible to realize the embodiment described above. it is obvious.

上述した第1~第3の実施形態では、不揮発性メモリ3が、NANDメモリ5を用いて構成されている場合について説明したが、ReRAM(Resistive Random Access Memory)やMRAM6(Magneto-Resistive Random Access Memory)、PRAM(Phase Change Random Access Memory)、FeRAM(Ferroeletric Random Access Memory)など、他のタイプの不揮発性メモリ3が用いられてもよい。 In the first to third embodiments described above, the case where the nonvolatile memory 3 is configured using the NAND memory 5 has been described. ), PRAM (Phase Change Random Access Memory), FeRAM (Ferroeletric Random Access Memory), and other types of nonvolatile memory 3 may be used.

上述した第1から第3の実施形態では、1stステージのプログラムでは3ページ分のデータの書き込み、2ndステージのプログラムでは2ページ分のデータの書き込みを行う場合について説明したが、1stステージのプログラムでのページ数と2ndステージのプログラムでのページ数の配分を変更してもよい。たとえば、1stステージのプログラムでは2ページ分のデータの書き込み、2ndステージのプログラムでは3ページ分のデータの書き込みを行うようにしてもよい。 In the first to third embodiments described above, the case where the 1st stage program writes 3 pages of data and the 2nd stage program writes 2 pages of data is explained. You may change the number of pages and the distribution of the number of pages in the 2nd stage program. For example, the first stage program may write two pages of data, and the second stage program may write three pages of data.

本開示のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 Although several embodiments of the present disclosure have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, substitutions, and changes can be made without departing from the gist of the invention. These embodiments and their modifications are included within the scope and gist of the invention, as well as within the scope of the invention described in the claims and its equivalents.

1 メモリシステム、2 メモリコントローラ、3 不揮発性メモリ、4 ホストプロセッサ、5NANDメモリ、6 RAM、7 ROM、8 プロセッサ、9 ホストインターフェイス、10 ECC回路、11 メモリインターフェイス、12 内部バス、21 NAND I/Oインターフェイス、22 制御部、23 NANDメモリセルアレイ、24 ページバッファ、31 発振器、32 シーケンサ、33 コマンドユーザインターフェイス、34 電圧供給部、35 カラムカウンタ、36 シリアルアクセスコントローラ、37 ローデコーダ、38 センスアンプ、41 p型ウェル領域、42、43、44 配線層、45 メモリホール、46 ブロック絶縁膜、47 電荷蓄積層、48 ゲート絶縁膜、49 導電膜 1 memory system, 2 memory controller, 3 nonvolatile memory, 4 host processor, 5 NAND memory, 6 RAM, 7 ROM, 8 processor, 9 host interface, 10 ECC circuit, 11 memory interface, 12 internal bus, 21 NAND I/O Interface, 22 Control unit, 23 NAND memory cell array, 24 Page buffer, 31 Oscillator, 32 Sequencer, 33 Command user interface, 34 Voltage supply unit, 35 Column counter, 36 Serial access controller, 37 Row decoder, 38 Sense amplifier, 41p type well region, 42, 43, 44 wiring layer, 45 memory hole, 46 block insulating film, 47 charge storage layer, 48 gate insulating film, 49 conductive film

Claims (13)

各々が、データが消去された消去状態を示す第1のしきい値領域と、前記第1のしきい値領域よりも電圧レベルが高くデータが書き込まれた書き込み状態を示す第2乃至第16のしきい値領域とを含む16個のしきい値領域により、第1乃至第4ビットで表わせられる4ビットのデータを記憶可能な複数のメモリセルを有する不揮発性メモリと、
前記第1ビット、前記第2ビット、前記第4ビットのデータを書き込む第1プログラムを前記不揮発性メモリに行わせた後に、前記第3ビットのデータを書き込む第2プログラムを前記不揮発性メモリに行わせるメモリコントローラと、
を備え、
前記第1乃至第16のしきい値領域のうち隣接するしきい値領域間に存在する15個の境界のうち、前記第1ビットのデータの値の判定に用いられる第1の境界の数、前記第2ビットのデータの値の判定に用いられる第2の境界の数、前記第3ビットのデータの値の判定に用いられる第3の境界の数、前記第4ビットのデータの値の判定に用いられる第4の境界の数のうち最大の値は5であり、二番目に大きな値は4であり、
前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第1ビット、前記第2ビット、前記第4ビットのデータに応じて、データが消去された消去状態を示す第17のしきい値領域と、前記第17のしきい値領域よりも電圧レベルが高くデータが書き込まれた書き込み状態を示す第18乃至第24のしきい値領域のいずれかのしきい値領域となるように前記第1プログラムを前記不揮発性メモリに行わせるように構成され、 前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第3ビットのデータに応じて、前記第17乃至第24のしきい値領域のうちいずれかのしきい値領域から前記第1乃至第16のしきい値領域のうちの2個のしきい値領域内のいずれかのしきい値領域となるように前記第2プログラムを前記不揮発性メモリに行わせるように構成され、
前記2個のしきい値領域のうち電圧レベルが最低のしきい値領域と電圧レベルが最高のしきい値領域との間にあるしきい値領域の個数が2個以内であり、
前記メモリコントローラは、前記第2プログラムを前記不揮発性メモリに行わせる場合に、前記第2ビットのデータと前記第3ビットのデータとを前記不揮発性メモリへ入力するように構成される、メモリシステム。
Each has a first threshold area indicating an erased state in which data is erased, and second to sixteenth threshold areas indicating a written state in which data is written at a voltage level higher than the first threshold area. a non-volatile memory having a plurality of memory cells capable of storing 4-bit data represented by first to fourth bits by 16 threshold regions including a threshold region;
After causing the nonvolatile memory to execute a first program for writing the data of the first bit, the second bit, and the fourth bit, a second program for writing the data of the third bit is executed for the nonvolatile memory. memory controller,
Equipped with
The number of first boundaries used to determine the value of the first bit data among the 15 boundaries existing between adjacent threshold areas among the first to 16th threshold areas; the number of second boundaries used to determine the value of the second bit data; the number of third boundaries used to determine the value of the third bit data; and the determination of the value of the fourth bit data. The maximum value of the number of fourth boundaries used for is 5, the second largest value is 4,
The memory controller is configured such that a threshold region in the memory cell has a seventeenth threshold value indicating an erased state in which data is erased according to data of the first bit, the second bit, and the fourth bit. area and the 18th to 24th threshold areas, which indicate a write state in which data is written and whose voltage level is higher than the 17th threshold area. The memory controller is configured to cause the nonvolatile memory to perform one program, and the memory controller is configured to set the threshold area of the memory cell to the seventeenth to twenty-fourth threshold values according to the data of the third bit. The second program is configured to change from one of the threshold areas to one of the two threshold areas among the first to sixteenth threshold areas. configured to cause the non-volatile memory to perform;
The number of threshold regions between the threshold region with the lowest voltage level and the threshold region with the highest voltage level among the two threshold regions is 2 or less,
The memory system is configured such that the memory controller inputs the second bit data and the third bit data to the nonvolatile memory when causing the nonvolatile memory to execute the second program. .
前記メモリコントローラは、前記第1乃至第16のしきい値領域のうち隣接するしきい値領域間に存在する15個の境界のうち、前記第1ビットの値が異なる前記境界の数、前記第2ビットの値が異なる前記境界の数、前記第3ビットの値が異なる前記境界の数、及び前記第4ビットの値が異なる前記境界の数が順に(1、4、5、5)、(1、5、4、5)、又は(3、3、4、5)となるように前記第1プログラム及び前記第2プログラムを前記不揮発性メモリに行わせる、請求項1に記載のメモリシステム。 The memory controller determines the number of boundaries in which the value of the first bit differs among 15 boundaries existing between adjacent threshold areas among the first to sixteenth threshold areas; The number of boundaries where the value of the second bit differs, the number of boundaries where the value of the third bit differs, and the number of boundaries where the value of the fourth bit differs are (1, 4, 5, 5), ( 1, 5, 4, 5) or (3, 3, 4, 5) in the nonvolatile memory. 各々が、データが消去された消去状態を示す第1のしきい値領域と、前記第1のしきい値領域よりも電圧レベルが高くデータが書き込まれた書き込み状態を示す第2乃至第16のしきい値領域とを含む16個のしきい値領域により、第1乃至第4ビットで表わせられる4ビットのデータを記憶可能な複数のメモリセルを有する不揮発性メモリと、
前記第1ビット、前記第2ビット、前記第4ビットのデータを書き込む第1プログラムを前記不揮発性メモリに行わせた後に、前記第3ビットのデータを書き込む第2プログラムを前記不揮発性メモリに行わせるメモリコントローラと、
を備え、
前記第1乃至第16のしきい値領域のうち隣接するしきい値領域間に存在する15個の境界のうち、前記第1ビットのデータの値の判定に用いられる第1の境界の数、前記第2ビットのデータの値の判定に用いられる第2の境界の数、前記第3ビットのデータの値の判定に用いられる第3の境界の数、前記第4ビットのデータの値の判定に用いられる第4の境界の数は順に(3、5、2、5)であり、
前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第1ビット、前記第2ビット、前記第4ビットのデータに応じて、データが消去された消去状態を示す第17のしきい値領域と、前記第17のしきい値領域よりも電圧レベルが高くデータが書き込まれた書き込み状態を示す第18乃至第24のしきい値領域のいずれかのしきい値領域となるように前記第1プログラムを前記不揮発性メモリに行わせるように構成され、 前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第3ビットのデータに応じて、前記第17乃至第24のしきい値領域のうちいずれかのしきい値領域から前記第1乃至第16のしきい値領域のうちの2個のしきい値領域内のいずれかのしきい値領域となるように前記第2プログラムを前記不揮発性メモリに行わせるように構成され、
前記2個のしきい値領域のうち電圧レベルが最低のしきい値領域と電圧レベルが最高のしきい値領域との間にあるしきい値領域の個数が2個以内であり、
前記メモリコントローラは、前記第2プログラムを前記不揮発性メモリに行わせる場合に、前記第2ビットのデータと前記第3ビットのデータとを前記不揮発性メモリへ入力するように構成される、メモリシステム。
Each has a first threshold area indicating an erased state in which data is erased, and second to sixteenth threshold areas indicating a written state in which data is written at a voltage level higher than the first threshold area. a non-volatile memory having a plurality of memory cells capable of storing 4-bit data represented by first to fourth bits by 16 threshold regions including a threshold region;
After causing the nonvolatile memory to execute a first program for writing the data of the first bit, the second bit, and the fourth bit, a second program for writing the data of the third bit is executed for the nonvolatile memory. memory controller,
Equipped with
The number of first boundaries used to determine the value of the first bit data among the 15 boundaries existing between adjacent threshold areas among the first to 16th threshold areas; the number of second boundaries used to determine the value of the second bit data; the number of third boundaries used to determine the value of the third bit data; and the determination of the value of the fourth bit data. The number of fourth boundaries used for is (3, 5, 2, 5) in order,
The memory controller is configured such that a threshold region in the memory cell has a seventeenth threshold value indicating an erased state in which data is erased according to data of the first bit, the second bit, and the fourth bit. area and the 18th to 24th threshold areas, which indicate a write state in which data is written and whose voltage level is higher than the 17th threshold area. The memory controller is configured to cause the nonvolatile memory to perform one program, and the memory controller is configured to set the threshold area of the memory cell to the seventeenth to twenty-fourth threshold values according to the data of the third bit. The second program is configured to change from one of the threshold areas to one of the two threshold areas among the first to sixteenth threshold areas. configured to cause the non-volatile memory to perform;
The number of threshold regions between the threshold region with the lowest voltage level and the threshold region with the highest voltage level among the two threshold regions is 2 or less,
The memory system is configured such that the memory controller inputs the second bit data and the third bit data to the nonvolatile memory when causing the nonvolatile memory to execute the second program. .
前記メモリコントローラは、前記第17乃至第24のしきい値領域のうち前記第2ビットのデータの値が異なる2つのしきい値領域の間の電圧レベルの差が、前記第1ビットのデータの値が異なる2つのしきい値領域の間の電圧レベルの差よりも小さく、かつ前記第4ビットのデータの値が異なる2つのしきい値領域の間の電圧レベルの差よりも小さくなるように前記第1プログラムを前記不揮発性メモリに行わせる請求項1乃至3のいずれか一項に記載のメモリシステム。 The memory controller is configured such that a difference in voltage level between two threshold regions having different values of the data of the second bit among the seventeenth to twenty-fourth threshold regions is determined by smaller than the difference in voltage level between two threshold regions having different values, and smaller than the difference in voltage level between two threshold regions having different values of the fourth bit data. The memory system according to any one of claims 1 to 3, wherein the first program is executed in the nonvolatile memory. 前記メモリコントローラは、前記第2ビットのデータの値が異なる前記第1プログラム時の2つのしきい値領域の間隔よりも、前記2つのしきい値領域に対して前記第3ビットのデータにより前記第2プログラムを行って得られる4つのしきい値領域のうち隣接するしきい値領域の間隔が広くなるように、前記第2プログラムを前記不揮発性メモリに行わせる、請求項4に記載のメモリシステム。 The memory controller is configured to set the data of the third bit to the two threshold areas in a manner that is larger than the interval between the two threshold areas during the first programming in which the values of the data of the second bit are different. 5. The memory according to claim 4, wherein the second program is performed on the non-volatile memory so that intervals between adjacent threshold regions among four threshold regions obtained by performing the second program are widened. system. 前記第1ビットは最下位のLowerビット、前記第2ビットは二番目に小さいMiddleビット、前記第3ビットは二番目に大きいUpperビット、前記第4ビットは最上位のTopビットである、請求項1乃至5のいずれか一項に記載のメモリシステム。 The first bit is the least significant Lower bit, the second bit is the second smallest Middle bit, the third bit is the second largest Upper bit, and the fourth bit is the most significant Top bit. 6. The memory system according to any one of 1 to 5. 前記第1乃至第4ビットのデータを記憶する揮発性の第1記憶部を備え、
前記第1記憶部に記憶される前記第1乃至第4ビットのうち、前記第1プログラム及び前記第2プログラム時に重複して入力されるビットのデータは、前記第2プログラムを開始した以降に破棄又は無効化可能となり、それ以外のビットのデータは、前記第1プログラムを開始した以降に破棄又は無効化可能となる、請求項1乃至6のいずれか一項に記載のメモリシステム。
comprising a volatile first storage section that stores the first to fourth bit data;
Among the first to fourth bits stored in the first storage unit, bit data that is input redundantly during the first program and the second program is discarded after the second program is started. 7. The memory system according to claim 1, wherein data of other bits can be discarded or invalidated after starting the first program.
前記第1乃至第4ビットのデータを記憶する揮発性の第1記憶部と、
前記第1乃至第4ビットのうち、前記第1プログラム及び前記第2プログラムで重複して入力されるビットのデータを記憶する不揮発性の第2記憶部と、を備え、
前記第1記憶部に記憶される前記第1乃至第4ビットのデータは、前記第1プログラムを開始した以降に破棄又は無効化可能となり、
前記第2記憶部に記憶される前記第1乃至第4ビットのうち、前記第1プログラム及び前記第2プログラムで重複して入力されるビットのデータは、前記第1プログラムを開始する前に前記第2記憶部に記憶され、前記第2プログラムを開始した以降に破棄又は無効化可能となる、請求項1乃至6のいずれか一項に記載のメモリシステム。
a volatile first storage unit that stores the first to fourth bit data;
a non-volatile second storage unit that stores data of bits that are input redundantly in the first program and the second program among the first to fourth bits;
The data of the first to fourth bits stored in the first storage unit can be discarded or invalidated after starting the first program,
Among the first to fourth bits stored in the second storage unit, bit data that is input redundantly in the first program and the second program is stored in the first program before starting the first program. The memory system according to any one of claims 1 to 6, wherein the memory system is stored in a second storage unit and can be discarded or invalidated after starting the second program.
前記第2記憶部は、ワード線を単位として設けられる、請求項8に記載のメモリシステム。 9. The memory system according to claim 8, wherein the second storage section is provided in units of word lines. 前記不揮発性メモリ内の前記複数のメモリセルは、第1ワード線に接続された複数の第1メモリセルと、前記第1ワード線に隣接する第2ワード線に接続された複数の第2メモリセルと、を有し、
前記メモリコントローラは、前記複数の第1メモリセルに対して前記第1プログラムを行わせた後、前記複数の第2メモリセルに対して前記第1プログラムを行わせ、その後に前記複数の第1メモリセルに対して前記第2プログラムを行わせる、請求項1乃至9のいずれか一項に記載のメモリシステム。
The plurality of memory cells in the nonvolatile memory include a plurality of first memory cells connected to a first word line and a plurality of second memory cells connected to a second word line adjacent to the first word line. having a cell;
The memory controller causes the plurality of first memory cells to perform the first programming, and then causes the plurality of second memory cells to perform the first programming, and then causes the plurality of first memory cells to perform the first programming. The memory system according to any one of claims 1 to 9, wherein the second programming is performed on memory cells.
前記不揮発性メモリは、2以上の前記メモリセルがそれぞれ接続された第1ワード線及び第2ワード線を少なくとも有し、
前記メモリコントローラは、前記第1ワード線に接続されたメモリセルに対する前記第1プログラムと、前記第2ワード線に接続されたメモリセルに対する前記第2プログラムとの連続した実行を、連続したコマンド及びデータ入力で前記不揮発性メモリに指示する、請求項1乃至9のいずれか一項に記載のメモリシステム。
The nonvolatile memory has at least a first word line and a second word line to which two or more of the memory cells are connected,
The memory controller executes consecutive executions of the first program for memory cells connected to the first word line and the second program for memory cells connected to the second word line, using consecutive commands and commands. 10. A memory system according to any preceding claim, wherein the non-volatile memory is instructed by a data input.
前記不揮発性メモリは、前記第1プログラムによりプログラムされたデータを読み出して得られるデータと、前記第1プログラム及び前記第2プログラムで重複して入力される前記第2ビットのデータと、前記第2プログラムでプログラムされる前記第3ビットの入力データとに基づいて、前記第2プログラムでプログラムされるビットのデータのしきい値電圧を決定する制御部を備える、請求項1乃至11のいずれか一項に記載のメモリシステム。 The non-volatile memory stores data obtained by reading data programmed by the first program, data of the second bit that is input redundantly in the first program and the second program, and the second bit data. 12. Any one of claims 1 to 11, further comprising a control unit that determines a threshold voltage of the data of the bit programmed in the second program based on the input data of the third bit programmed in the program. Memory system as described in Section. 前記第1プログラムによりプログラムされたデータを読み出して誤り訂正を行う誤り訂正部を備え、
前記制御部は、前記誤り訂正部で誤り訂正後のデータと、前記第2ビットのデータと、前記第3ビットの入力データとに基づいて、前記第2プログラムでプログラムされるビットのデータの前記しきい値電圧を決定する、請求項12に記載のメモリシステム。
comprising an error correction unit that reads data programmed by the first program and performs error correction;
The control unit adjusts the bit data programmed by the second program based on the data after error correction by the error correction unit, the second bit data, and the third bit input data. 13. The memory system of claim 12, determining a threshold voltage.
JP2020144847A 2019-11-21 2020-08-28 memory system Active JP7414669B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/016,765 US11238924B2 (en) 2019-11-21 2020-09-10 Nonvolatile memory multilevel cell programming
US17/545,470 US11646076B2 (en) 2019-11-21 2021-12-08 Nonvolatile memory multilevel cell programming
US18/295,504 US11967368B2 (en) 2019-11-21 2023-04-04 Nonvolatile memory multilevel cell programming

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2019210823 2019-11-21
JP2019210823 2019-11-21
JP2020113206 2020-06-30
JP2020113206 2020-06-30

Publications (2)

Publication Number Publication Date
JP2022002160A JP2022002160A (en) 2022-01-06
JP7414669B2 true JP7414669B2 (en) 2024-01-16

Family

ID=75907742

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020144847A Active JP7414669B2 (en) 2019-11-21 2020-08-28 memory system

Country Status (3)

Country Link
JP (1) JP7414669B2 (en)
CN (2) CN112825026B (en)
TW (2) TWI802140B (en)

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4090570B2 (en) * 1998-06-02 2008-05-28 株式会社ルネサステクノロジ Semiconductor device, data processing system, and nonvolatile memory cell threshold value changing method
JP2013089082A (en) * 2011-10-19 2013-05-13 Toshiba Corp Memory controller, semiconductor storage system and memory control method
US8913437B2 (en) * 2011-12-15 2014-12-16 Marvell World Trade Ltd. Inter-cell interference cancellation
JP6262063B2 (en) * 2014-03-18 2018-01-17 東芝メモリ株式会社 Nonvolatile memory and writing method
US9659636B2 (en) * 2014-07-22 2017-05-23 Peter Wung Lee NAND memory array with BL-hierarchical structure for concurrent all-BL, all-threshold-state program, and alternative-WL program, odd/even read and verify operations
KR102128406B1 (en) * 2014-09-26 2020-07-10 삼성전자주식회사 Storage device and operating emthod of storage device
JP6539608B2 (en) * 2016-03-15 2019-07-03 東芝メモリ株式会社 Semiconductor memory device
JP2018005959A (en) * 2016-06-30 2018-01-11 東芝メモリ株式会社 Memory system and writing method
US10593398B2 (en) * 2016-09-13 2020-03-17 Toshiba Memory Corporation Semiconductor storage device including a controller configured to execute a first write and a second write
JP2019057352A (en) * 2017-09-21 2019-04-11 東芝メモリ株式会社 Memory system
JP2019057350A (en) * 2017-09-21 2019-04-11 東芝メモリ株式会社 Semiconductor memory
US20190034105A1 (en) * 2017-12-28 2019-01-31 Intel Corporation Storage device having programmed cell storage density modes that are a function of storage device capacity utilization

Also Published As

Publication number Publication date
TW202331729A (en) 2023-08-01
TWI752569B (en) 2022-01-11
CN112825026B (en) 2023-08-18
TW202213363A (en) 2022-04-01
JP2022002160A (en) 2022-01-06
CN112825026A (en) 2021-05-21
CN116954520A (en) 2023-10-27
TWI802140B (en) 2023-05-11
TW202121426A (en) 2021-06-01

Similar Documents

Publication Publication Date Title
JP2020035504A (en) Memory system
JP7449179B2 (en) memory system
KR102284658B1 (en) Non-volatile memory device, Memory system including the same, and Method of operating the same
US11238924B2 (en) Nonvolatile memory multilevel cell programming
US20210166764A1 (en) Storage device and operating method thereof
KR102688480B1 (en) Semiconductor memory device and operating method thereof
JP2018163712A (en) Memory system and control method for memory system
JP7414669B2 (en) memory system
US11817170B2 (en) Storage controller determining error count, method of operating the same, and method of operating storage device including the same
TWI857549B (en) Memory system
TW202326441A (en) Memory system and semiconductor storage device
KR20230090598A (en) Storage controller using history data, method of operating the same, and method of operating storage device having the same
CN114464221A (en) Semiconductor memory device and method of operating the same
US11694750B2 (en) Memory system, memory device, and control method of memory system for generating information from a threshold voltage
US11934701B2 (en) Storage controller determining distribution type, method of operating the same, and method of operating storage device including the same
EP4152332A1 (en) Storage controller determining distribution type, method of operating the same, and method of operating storage device including the same
US20240078018A1 (en) Storage devices calculating a wordline gap value, and methods of operating the same

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230315

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231201

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231228

R151 Written notification of patent or utility model registration

Ref document number: 7414669

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151