JP7135185B2 - Information processing system - Google Patents

Information processing system Download PDF

Info

Publication number
JP7135185B2
JP7135185B2 JP2021148809A JP2021148809A JP7135185B2 JP 7135185 B2 JP7135185 B2 JP 7135185B2 JP 2021148809 A JP2021148809 A JP 2021148809A JP 2021148809 A JP2021148809 A JP 2021148809A JP 7135185 B2 JP7135185 B2 JP 7135185B2
Authority
JP
Japan
Prior art keywords
threshold
data
regions
region
bit
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
JP2021148809A
Other languages
Japanese (ja)
Other versions
JP2022002163A (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
Priority claimed from JP2020125604A external-priority patent/JP6949178B2/en
Application filed by Kioxia Corp filed Critical Kioxia Corp
Priority to JP2021148809A priority Critical patent/JP7135185B2/en
Publication of JP2022002163A publication Critical patent/JP2022002163A/en
Application granted granted Critical
Publication of JP7135185B2 publication Critical patent/JP7135185B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)
  • Read Only Memory (AREA)
  • Semiconductor Memories (AREA)
  • Non-Volatile Memory (AREA)

Description

本発明の実施形態は、情報処理システムに関する。 Embodiments of the present invention relate to information processing systems.

近年の微細化が進んだ3bit/CellのNANDメモリでは、一般的に、セル間相互干渉を避けるため、第1のメモリセルに記憶する全bitを同時に書き込んだ後、隣接セルに同様に全bitを同時に書き込み、この後、再び第1のメモリセルに全Bitを再書込み(プログラムする)手法が取られる。しかし、この方法を用いると、再書込みのためにコントローラ側でデータを保持する必要がある。 In the recent 3-bit/cell NAND memory, in order to avoid mutual interference between cells, all bits to be stored in a first memory cell are written at the same time, and then all bits are similarly written to adjacent cells. are written at the same time, and then all Bits are rewritten (programmed) again in the first memory cell. However, using this method requires the data to be retained on the controller side for rewriting.

全bitを同時にプログラムする方法として、1-3-3コーディングが知られている。この方法は、3bit/Cellの8個のしきい値電圧の領域間の7個を、3bitにそれぞれ1つ、3つ、3つに分配するコーディングである。 1-3-3 coding is known as a method of programming all bits simultaneously. This method is a coding that distributes 7 threshold voltage regions between 8 threshold voltage regions of 3 bits/cell to 1, 3, and 3, respectively.

しかしながら、近年のNANDメモリは3次元化されており、必要な書き込みバッファ量が増大するので、メモリコントローラのコストが増大している。このため、3次元の不揮発性メモリにおいても、セル間相互干渉と各ページ間のビットエラー率の偏りを抑制しつつ、メモリコントローラの書き込みバッファ量を低減する対策が望まれている。 However, recent NAND memories are three-dimensional, and the amount of write buffer required increases, which increases the cost of memory controllers. For this reason, even in three-dimensional nonvolatile memories, it is desired to reduce the write buffer capacity of the memory controller while suppressing the mutual interference between cells and the uneven bit error rate between pages.

特開2015-195071号公報JP 2015-195071 A 米国特許第9230664号明細書U.S. Pat. No. 9,230,664

本発明が解決しようとする課題は、セル間相互干渉を抑制しつつ、メモリコントローラの書き込みバッファ量を低減することである。 The problem to be solved by the present invention is to reduce the write buffer amount of the memory controller while suppressing mutual interference between cells.

実施形態によれば、情報処理システムが提供される。前記情報処理システムは、ホストと、メモリシステムと、を備える。前記メモリシステムは、不揮発性メモリと、メモリコントローラと、を有する。前記不揮発性メモリは、データが消去された消去状態を示す第1のしきい値領域と、前記第1のしきい値領域よりも電圧レベルが高くデータが書き込まれた書き込み状態を示す第2から第16のしきい値領域とを合わせた16個のしきい値領域により、第1から第4ビットで表わせられる4ビットのデータを記憶可能なメモリセルを複数有する。前記メモリコントローラは、前記ホストから受信したライト要求に応じて、前記第1ビット及び前記第2ビットのデータを書き込む第1プログラムを前記不揮発性メモリに行わせた後に、前記第3ビット及び前記第4ビットのデータを書き込む第2プログラムを前記不揮発性メモリに行わせる。前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第1ビット及び前記第2ビットのデータに応じて、データが消去された消去状態を示す第17のしきい値領域と、前記第17のしきい値領域よりも電圧レベルが高くデータが書き込まれた書き込み状態を示す第18から第20のしきい値領域とのうちのいずれかのしきい値領域になるように前記第1プログラムを前記不揮発性メモリに行わせるように構成される。前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第3ビット及び前記第4ビットのデータに応じて、前記第17から第20のしきい値領域のうちのいずれかのしきい値領域から、前記第1から第16のしきい値領域のうちのいずれかのしきい値領域になるように前記第2プログラムを前記不揮発性メモリに行わせるように構成される。前記第nのしきい値領域は前記第(n-1)のしきい値領域よりも電圧レベルが高い(nは2以上16以下の自然数)。前記第kのしきい値領域は前記第(k-1)のしきい値領域よりも電圧レベルが高い(kは18以上20以下の自然数)。前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第3ビット及び前記第4ビットのデータに応じて、前記第17のしきい値領域から、前記第1から第16のしきい値領域のうちのいずれかのしきい値領域になるように前記第2プログラムを前記不揮発性メモリに行わせる場合に、前記第1から第16のしきい値領域のうちの4個の第21のしきい値領域のうちのいずれかのしきい値領域になるように前記第2プログラムを前記不揮発性メモリに行わせるように構成される。前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第3ビット及び前記第4ビットのデータに応じて、前記第18のしきい値領域から、前記第1から第16のしきい値領域のうちのいずれかのしきい値領域になるように前記第2プログラムを前記不揮発性メモリに行わせる場合に、前記第1から第16のしきい値領域のうちの4個の第22のしきい値領域のうちのいずれかのしきい値領域になるように前記第2プログラムを前記不揮発性メモリに行わせるように構成される。前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第3ビット及び前記第4ビットのデータに応じて、前記第19のしきい値領域から、前記第1から第16のしきい値領域のうちのいずれかのしきい値領域になるように前記第2プログラムを前記不揮発性メモリに行わせる場合に、前記第1から第16のしきい値領域のうちの4個の第23のしきい値領域のうちのいずれかのしきい値領域になるように前記第2プログラムを前記不揮発性メモリに行わせるように構成される。前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第3ビット及び前記第4ビットのデータに応じて、前記第20のしきい値領域から、前記第1から第16のしきい値領域のうちのいずれかのしきい値領域になるように前記第2プログラムを前記不揮発性メモリに行わせる場合に、前記第1から第16のしきい値領域のうちの4個の第24のしきい値領域のうちのいずれかのしきい値領域になるように前記第2プログラムを前記不揮発性メモリに行わせるように構成される。前記4個の第23のしきい値領域のしきい値領域及び前記4個の第24のしきい値領域のしきい値領域はいずれも、前記4個の第21のしきい値領域のうちのいずれのしきい値領域よりも電圧レベルが高い。前記4個の第23のしきい値領域のしきい値領域及び前記4個の第24のしきい値領域のしきい値領域はいずれも、前記4個の第22のしきい値領域のうちのいずれのしきい値領域よりも電圧レベルが高い。前記4個の第22のしきい値領域は、前記第1から第16のしきい値領域のうちの連続する4個のしきい値領域である。前記4個の第24のしきい値領域は、前記第1から第16のしきい値領域のうちの連続する4個のしきい値領域である。前記4個の第21のしきい値領域は、前記第1から第16のしきい値領域のうちの連続する4個のしきい値領域である。前記4個の第23のしきい値領域は、前記第1から第16のしきい値領域のうちの連続する4個のしきい値領域である。前記4個の第22のしきい値領域のしきい値領域はいずれも、前記4個の第21のしきい値領域のうちのいずれのしきい値領域よりも電圧レベルが高い。前記4個の第24のしきい値領域のしきい値領域はいずれも、前記4個の第23のしきい値領域のうちのいずれのしきい値領域よりも電圧レベルが高い。前記第1から第16のしきい値領域のうち隣接するしきい値領域間に存在する15個の境界のうち、前記第1ビットのデータの値の判定に用いられる第1の境界の数、前記第2ビットのデータの値の判定に用いられる第2の境界の数、前記第3ビットのデータの値の判定に用いられる第3の境界の数、前記第4ビットのデータの値の判定に用いられる第4の境界の数が順に1、2、6、6である。 According to an embodiment, an information processing system is provided. The information processing system includes a host and a memory system. The memory system has a non-volatile memory and a memory controller. The nonvolatile memory includes a first threshold region indicating an erased state in which data is erased, and a second threshold region indicating a written state in which data is written with a voltage level higher than that of the first threshold region. 16 threshold regions including the 16th threshold region have a plurality of memory cells capable of storing 4-bit data represented by the first to fourth bits. The memory controller causes the nonvolatile memory to execute a first program to write data of the first bit and the second bit in response to a write request received from the host, and then writes the data of the third bit and the second bit. A second program for writing 4-bit data is caused to the non-volatile memory. The memory controller comprises: a seventeenth threshold region indicating an erased state in which data is erased according to the data of the first bit and the second bit; 18th to 20th threshold regions indicating a write state in which data is written with a voltage level higher than that of the threshold region 17; to the non-volatile memory. The memory controller sets the threshold region of the memory cell to any one of the 17th to 20th threshold regions according to the data of the 3rd bit and the 4th bit. The second programming is configured to cause the non-volatile memory to be in any one of the first to sixteenth threshold regions from the region. The nth threshold region has a higher voltage level than the (n-1)th threshold region (n is a natural number of 2 or more and 16 or less). The kth threshold region has a higher voltage level than the (k-1)th threshold region (k is a natural number between 18 and 20). The memory controller converts the threshold region in the memory cell from the 17th threshold region to the 1st to 16th threshold values according to the data of the 3rd bit and the 4th bit. When the second programming is performed on the non-volatile memory so as to be any threshold value region among the regions, four twenty-first threshold regions among the first to sixteenth threshold regions It is configured to cause the non-volatile memory to perform the second programming to be in any one of the threshold regions. The memory controller converts the threshold region in the memory cell from the 18th threshold region to the 1st to 16th threshold values according to the data of the 3rd bit and the 4th bit. When the second programming is performed on the non-volatile memory so as to be any threshold value region among the regions, four 22nd threshold regions among the first to sixteenth threshold regions It is configured to cause the non-volatile memory to perform the second programming to be in any one of the threshold regions. The memory controller converts the threshold region in the memory cell from the 19th threshold region to the 1st to 16th threshold values according to the data of the 3rd bit and the 4th bit. When the second programming is performed on the non-volatile memory so as to be any threshold value region among the regions, four twenty-third threshold regions among the first to sixteenth threshold regions It is configured to cause the non-volatile memory to perform the second programming to be in any one of the threshold regions. The memory controller converts the threshold region in the memory cell from the twentieth threshold region to the first to sixteenth threshold values according to the data of the third bit and the fourth bit. When the second programming is performed on the non-volatile memory so as to be any threshold value region among the regions, the four twenty-fourth threshold regions among the first to sixteenth threshold regions It is configured to cause the non-volatile memory to perform the second programming to be in any one of the threshold regions. The threshold regions of the four twenty-third threshold regions and the threshold regions of the four twenty-fourth threshold regions are all of the four twenty-first threshold regions , the voltage level is higher than any of the threshold regions of The threshold regions of the four twenty-third threshold regions and the threshold regions of the four twenty-fourth threshold regions are all of the four twenty-second threshold regions , the voltage level is higher than any of the threshold regions of The four twenty-second threshold regions are four consecutive threshold regions among the first to sixteenth threshold regions. The four twenty-fourth threshold regions are four consecutive threshold regions among the first to sixteenth threshold regions. The four twenty-first threshold regions are four consecutive threshold regions among the first to sixteenth threshold regions. The four twenty-third threshold regions are four consecutive threshold regions among the first to sixteenth threshold regions. Any threshold region of the four twenty-second threshold regions has a higher voltage level than any threshold region of the four twenty-first threshold regions. Any of the four twenty-fourth threshold regions has a higher voltage level than any one of the four twenty-third threshold regions. the number of first boundaries used to determine the value of the data of the first bit among 15 boundaries existing between adjacent threshold regions among the first to sixteenth threshold regions; The number of second boundaries used to determine the value of the data of the second bit, the number of third boundaries used to determine the value of the data of the third bit, and the value of the data of the fourth bit are 1, 2, 6, 6 in order.

図1は、第1の実施形態にかかる記憶装置の構成例を示すブロック図である。FIG. 1 is a block diagram illustrating a configuration example of a storage device according to a first embodiment; 図2は、第1の実施形態の不揮発性メモリの構成例を示すブロック図である。FIG. 2 is a block diagram showing a configuration example of a nonvolatile memory according to the first embodiment. 図3は、3次元構造のメモリセルアレイのブロックの構成例を示す図である。FIG. 3 is a diagram showing a block configuration example of a memory cell array having a three-dimensional structure. 図4は、3次元構造のNANDメモリのメモリセルアレイの一部領域の断面図である。FIG. 4 is a cross-sectional view of a partial region of a memory cell array of a NAND memory with a three-dimensional structure. 図5は、第1の実施形態のしきい値領域の一例を示す図である。FIG. 5 is a diagram showing an example of threshold regions according to the first embodiment. 図6は、第1の実施形態のデータコーディングを示す図である。FIG. 6 is a diagram illustrating data coding in the first embodiment. 図7は、第1の実施形態におけるプログラム後のしきい値分布を示す図である。FIG. 7 is a diagram showing a threshold distribution after programming in the first embodiment. 図8Aは、第1の実施形態のプログラム順序の第1の例を示す図である。FIG. 8A is a diagram showing a first example of program order of the first embodiment. 図8Bは、第1の実施形態のプログラム順序の第2の例を示す図である。FIG. 8B is a diagram showing a second example of the program order of the first embodiment. 図8Cは、第1の実施形態のプログラム順序の第3の例を示す図である。FIG. 8C is a diagram showing a third example of program order of the first embodiment. 図9Aは、第1の実施形態に係る1ブロック分全体の書き込み手順の例を示すフローチャートである。FIG. 9A is a flowchart illustrating an example of a procedure for writing an entire block according to the first embodiment; 図9Bは、第1の実施形態に係る1stステージにおける書き込み手順を示すサブフローチャートである。FIG. 9B is a sub-flowchart showing a write procedure in the 1st stage according to the first embodiment. 図9Cは、第1の実施形態に係る2ndステージでの書き込み手順を示すサブフローチャートである。FIG. 9C is a sub-flowchart showing the write procedure in the 2nd stage according to the first embodiment. 図9Dは、第1の実施形態に係る2ndステージでの書き込み手順の変形例を示すサブフローチャートである。FIG. 9D is a sub-flowchart showing a modification of the write procedure in the 2nd stage according to the first embodiment; 図9Eは、複数回数の読み出し結果の多数決処理を説明するための図である。FIG. 9E is a diagram for explaining majority processing of the results of reading a plurality of times. 図10Aは、1-3-3コーディングを採用したLM-Foggy-Fineプログラムにおけるバッファデータ量を説明するための図である。FIG. 10A is a diagram for explaining the amount of buffer data in the LM-Foggy-Fine program that employs 1-3-3 coding. 図10Bは、第1の実施形態のプログラムにおけるバッファデータ量を説明するための図である。FIG. 10B is a diagram for explaining the amount of buffer data in the program of the first embodiment; 図11は、第1の実施形態に係る外部プログラムコマンドのシーケンスの例を示す図である。FIG. 11 is a diagram showing an example of a sequence of external program commands according to the first embodiment. 図12Aは、第1の実施形態に係る記憶装置において1stステージまでプログラムが完了しているワード線でのページ読み出しの処理手順を示すフローチャートである。FIG. 12A is a flow chart showing a processing procedure of page reading in a word line for which programming has been completed up to the 1st stage in the memory device according to the first embodiment. 図12Bは、第1の実施形態に係る記憶装置において2ndステージまでプログラムが完了しているワード線でのページ読み出しの処理手順を示すフローチャートである。FIG. 12B is a flow chart showing a processing procedure of page reading on a word line for which programming has been completed up to the 2nd stage in the memory device according to the first embodiment. 図13は、第1の実施形態に係る外部読み出しコマンドのシーケンスの例を示す図である。FIG. 13 is a diagram showing an example of a sequence of external read commands according to the first embodiment. 図14Aは、第2の実施形態に係る1ブロック分全体の書き込み手順を示すフローチャートである。FIG. 14A is a flow chart showing a procedure for writing an entire block according to the second embodiment. 図14Bは、第2の実施形態に係る1stステージおよび2ndステージにおける書き込み手順を示すサブフローチャートである。FIG. 14B is a sub-flowchart showing write procedures in the 1st stage and the 2nd stage according to the second embodiment. 図15は、第2の実施形態に係る外部プログラムコマンドのシーケンスの例を示す図である。FIG. 15 is a diagram showing an example of a sequence of external program commands according to the second embodiment. 図16は、電源遮断に起因するデータ破壊を説明するための図である。FIG. 16 is a diagram for explaining data destruction caused by power shutdown. 図17は、第3の実施形態に係る2ndステージのプログラムを説明するための図である。FIG. 17 is a diagram for explaining the 2nd stage program according to the third embodiment. 図18は、第3の実施形態に係る2ndステージでの書き込み手順を示すフローチャートである。FIG. 18 is a flow chart showing a write procedure in the 2nd stage according to the third embodiment. 図19は、第3の実施形態に係る2ndステージのプログラム変形例を説明するための図である。FIG. 19 is a diagram for explaining a program modification of the 2nd stage according to the third embodiment. 図20は、1-3-3データコーディングの他の例を示す図である。FIG. 20 is a diagram showing another example of 1-3-3 data coding. 図21は、第4の実施形態におけるプログラム後のしきい値分布を示す図である。FIG. 21 is a diagram showing the threshold distribution after programming in the fourth embodiment. 図22Aは、第4の実施形態に係る1stステージにおける書き込み手順を示すサブフローチャートである。FIG. 22A is a sub-flowchart showing a write procedure in the 1st stage according to the fourth embodiment. 図22Bは、第4の実施形態に係る2ndステージでの書き込み手順を示すサブフローチャートである。FIG. 22B is a sub-flowchart showing the write procedure in the 2nd stage according to the fourth embodiment. 図22Cは、第4の実施形態に係る2ndステージでの書き込み手順の変形例を示すサブフローチャートである。FIG. 22C is a sub-flowchart showing a modification of the write procedure in the 2nd stage according to the fourth embodiment. 図23は、第4の実施形態に係る外部プログラムコマンドのシーケンスの例を示す図である。FIG. 23 is a diagram showing an example of a sequence of external program commands according to the fourth embodiment. 図24Aは、第4の実施形態に係る記憶装置において1stステージまでプログラムが完了しているワード線でのページ読み出しの処理手順を示すフローチャートである。FIG. 24A is a flow chart showing a processing procedure of page reading on a word line for which programming has been completed up to the 1st stage in the memory device according to the fourth embodiment. 図24Bは、第4の実施形態に係る記憶装置において2ndステージまでプログラムが完了しているワード線でのページ読み出しの処理手順を示すフローチャートである。FIG. 24B is a flowchart showing a processing procedure of page reading in a word line for which programming has been completed up to the 2nd stage in the memory device according to the fourth embodiment. 図25は、第4の実施形態に係る外部読み出しコマンドのシーケンスの例を示す図である。FIG. 25 is a diagram showing an example of a sequence of external read commands according to the fourth embodiment. 図26は、フラグセルの構成を説明するための図である。FIG. 26 is a diagram for explaining the configuration of a flag cell. 図27Aは、第5の実施形態に係るフラグセルへのプログラムを説明するための図である。FIG. 27A is a diagram for explaining programming of flag cells according to the fifth embodiment. 図27Bは、第5の実施形態に係るダミーセルへのプログラムを説明するための図である。FIG. 27B is a diagram for explaining programming of dummy cells according to the fifth embodiment. 図28は、第5の実施形態に係る2ndステージでの書き込み手順を示すフローチャートである。FIG. 28 is a flow chart showing a write procedure in the 2nd stage according to the fifth embodiment. 図29は、第5の実施形態に係るページ読み出しの処理手順を示すフローチャートである。FIG. 29 is a flowchart showing a page read processing procedure according to the fifth embodiment. 図30は、第5の実施形態に係る外部読み出しコマンドのシーケンスの例を示す図である。FIG. 30 is a diagram showing an example of a sequence of external read commands according to the fifth embodiment. 図31は、第6の実施形態のしきい値領域の一例を示す図である。FIG. 31 is a diagram showing an example of threshold regions according to the sixth embodiment. 図32は、第6の実施形態におけるプログラム後のしきい値分布を示す第1例の図である。FIG. 32 is a diagram of a first example showing a threshold distribution after programming in the sixth embodiment. 図33は、図32に示すしきい値分布に対応するデータコーディングを示す図である。FIG. 33 shows data coding corresponding to the threshold distribution shown in FIG. 図34は、第6の実施形態におけるプログラム後のしきい値分布を示す第2例の図である。FIG. 34 is a diagram of a second example showing the threshold distribution after programming in the sixth embodiment. 図35は、図34に示すしきい値分布に対応するデータコーディングを示す図である。FIG. 35 shows data coding corresponding to the threshold distribution shown in FIG. 図36は、第6の実施形態におけるプログラム後のしきい値分布を示す第3例の図である。FIG. 36 is a diagram of a third example showing the threshold distribution after programming in the sixth embodiment. 図37は、図36に示すしきい値分布に対応するデータコーディングを示す図である。FIG. 37 shows data coding corresponding to the threshold distribution shown in FIG.

以下に添付図面を参照して、実施形態に係るメモリシステムおよび書き込み方法を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。 A memory system and a writing method according to embodiments will be described in detail below with reference to the accompanying drawings. In addition, the present invention is not limited by these embodiments.

(第1の実施形態)
図1は、第1の実施形態にかかる記憶装置の構成例を示すブロック図である。本実施形態の記憶装置は、メモリコントローラ1と不揮発性メモリ2とを備える。記憶装置は、ホストと接続可能である。ホストは、例えば、パーソナルコンピュータ、携帯端末などの電子機器である。
(First embodiment)
FIG. 1 is a block diagram illustrating a configuration example of a storage device according to a first embodiment; The storage device of this embodiment comprises a memory controller 1 and a nonvolatile memory 2 . The storage device is connectable with the host. A host is, for example, an electronic device such as a personal computer or a mobile terminal.

不揮発性メモリ2は、データを不揮発に記憶するメモリであり、例えば、NANDメモリ(NANDフラッシュメモリ)を備えている。本実施形態では、不揮発性メモリ2は、メモリセルあたり3bitを記憶可能なメモリセルを有するNANDメモリ、すなわち3bit/Cell(TLC:Triple Level Cell)のNANDメモリであるとして説明する。不揮発性メモリ2は、3次元化されている。 The nonvolatile memory 2 is a memory that stores data in a nonvolatile manner, and includes, for example, a NAND memory (NAND flash memory). In the present embodiment, the nonvolatile memory 2 is described as a NAND memory having memory cells each capable of storing 3 bits, that is, a 3-bit/cell (TLC: Triple Level Cell) NAND memory. The nonvolatile memory 2 is three-dimensional.

メモリコントローラ1は、ホストからの書き込みコマンドに従って不揮発性メモリ2へのデータの書き込みを制御する。また、メモリコントローラ1は、ホストからの読み出しコマンドに従って不揮発性メモリ2からのデータの読み出しを制御する。メモリコントローラ1は、RAM(Random Access Memory)11、プロセッサ12、ホストインターフェイス13、ECC(Error Check and Correct)回路14およびメモリインターフェイス15を備える。RAM11、プロセッサ12、ホストインターフェイス13、ECC回路14およびメモリインターフェイス15は、互いに内部バス16で接続される。 The memory controller 1 controls writing of data to the nonvolatile memory 2 according to write commands from the host. Also, the memory controller 1 controls reading of data from the nonvolatile memory 2 in accordance with a read command from the host. The memory controller 1 includes a RAM (Random Access Memory) 11 , a processor 12 , a host interface 13 , an ECC (Error Check and Correct) circuit 14 and a memory interface 15 . RAM 11 , processor 12 , host interface 13 , ECC circuit 14 and memory interface 15 are connected to each other via internal bus 16 .

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

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

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

プロセッサ12は、RAM11に蓄積されるユーザデータに対して、不揮発性メモリ2上の格納領域(メモリ領域)を決定する。ユーザデータは、内部バス16経由でRAM11に格納される。プロセッサ12は、メモリ領域の決定を、書き込み単位であるページ単位のデータ(ページデータ)に対して実施する。本明細書では、不揮発性メモリ2の1ページに格納されるユーザデータをユニットデータと定義する。ユニットデータは、一般的には符号化されて符号語として不揮発性メモリ2に格納される。本実施形態では、符号化は必須ではない。メモリコントローラ1は、符号化せずにユニットデータを不揮発性メモリ2に格納してもよいが、図1では、一構成例として符号化を行う構成を示している。メモリコントローラ1が符号化を行わない場合には、ページデータはユニットデータと一致する。また、1つのユニットデータに基づいて1つの符号語が生成されてもよいし、ユニットデータが分割された分割データに基づいて1つの符号語が生成されてもよい。また、複数のユニットデータを用いて1つの符号語が生成されてもよい。 The processor 12 determines a storage area (memory area) on the nonvolatile memory 2 for user data accumulated in the RAM 11 . User data is stored in RAM 11 via internal bus 16 . The processor 12 determines a memory area for page-based data (page data) that is a writing unit. In this specification, user data stored in one page of the nonvolatile memory 2 is defined as unit data. The unit data is generally encoded and stored in the nonvolatile memory 2 as codewords. Encoding is not essential in this embodiment. The memory controller 1 may store unit data in the non-volatile memory 2 without encoding, but FIG. 1 shows a configuration in which encoding is performed as a configuration example. If the memory controller 1 does not encode, the page data will match the unit data. Also, one codeword may be generated based on one unit data, or one codeword may be generated based on divided data obtained by dividing unit data. Also, one codeword may be generated using a plurality of unit data.

プロセッサ12は、ユニットデータごとに書き込み先の不揮発性メモリ2のメモリ領域を決定する。不揮発性メモリ2のメモリ領域には物理アドレスが割当てられている。プロセッサ12は、ユニットデータの書き込み先のメモリ領域を、物理アドレスを用いて管理する。プロセッサ12は、決定したメモリ領域(物理アドレス)を指定してユーザデータを不揮発性メモリ2へ書き込むようメモリインターフェイス15へ指示する。プロセッサ12は、ユーザデータの論理アドレス(ホストが管理する論理アドレス)と物理アドレスとの対応を管理する。プロセッサ12は、ホストからの論理アドレスを含む読み出しコマンドを受信した場合は、論理アドレスに対応する物理アドレスを特定し、物理アドレスを指定してユーザデータの読み出しをメモリインターフェイス15へ指示する。 The processor 12 determines a memory area of the non-volatile memory 2 to write to for each unit data. Physical addresses are assigned to the memory areas of the nonvolatile memory 2 . The processor 12 manages the memory area to which unit data is written using physical addresses. The processor 12 designates the determined memory area (physical address) and instructs the memory interface 15 to write the user data into the nonvolatile memory 2 . The processor 12 manages correspondence between logical addresses of user data (logical addresses managed by the host) and physical addresses. When the processor 12 receives a read command including a logical address from the host, the processor 12 identifies a physical address corresponding to the logical address, designates the physical address, and instructs the memory interface 15 to read user data.

本明細書では、1つのワード線に共通に接続されたメモリセルをメモリセルグループMGと定義する。本実施形態では、不揮発性メモリ2は、3bit/CellのNANDメモリであり、1つのメモリセルグループMGは3ページに対応する。各メモリセルの3bitは、それぞれこの3ページに対応する。本実施形態では、この3ページをLowerページ(第1のページ)、Middleページ(第2のページ)、Upperページ(第3のページ)と呼ぶ。 In this specification, memory cells commonly connected to one word line are defined as a memory cell group MG. In this embodiment, the nonvolatile memory 2 is a 3-bit/cell NAND memory, and one memory cell group MG corresponds to 3 pages. The 3 bits of each memory cell respectively correspond to these 3 pages. In this embodiment, these three pages are called a Lower page (first page), a Middle page (second page), and an Upper page (third page).

ECC回路14は、RAM11に格納されたユーザデータを符号化して、符号語を生成する。また、ECC回路14は、不揮発性メモリ2から読み出された符号語を復号する。 The ECC circuit 14 encodes the user data stored in the RAM 11 to generate codewords. The ECC circuit 14 also decodes code words read from the nonvolatile memory 2 .

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

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

ホストからライト要求を受信した場合、記憶装置(メモリシステム)は次のように動作する。プロセッサ12は、ライトデータをRAM11に一時記憶させる。プロセッサ12は、RAM11にストアされたデータをリードし、ECC回路14に入力する。ECC回路14は、入力されたデータを符号化し、符号語をメモリインターフェイス15に入力する。メモリインターフェイス15は、入力された符号語を不揮発性メモリ2に書き込む。 When receiving a write request from the host, the storage device (memory system) operates as follows. The processor 12 causes the RAM 11 to temporarily store the write data. The processor 12 reads data stored in the RAM 11 and inputs it to the ECC circuit 14 . ECC circuit 14 encodes the input data and inputs a codeword to memory interface 15 . The memory interface 15 writes the input codeword to the nonvolatile memory 2 .

ホストからリード要求を受信した場合、記憶装置は次のように動作する。メモリインターフェイス15は、不揮発性メモリ2から読み出した符号語をECC回路14に入力する。ECC回路14は、入力された符号語を復号し、復号されたデータをRAM11にストアする。プロセッサ12は、RAM11にストアされたデータを、ホストインターフェイス13を介してホストに送信する。なお、不揮発性メモリ2では、複数のチップが接続される場合もあり、不揮発性メモリ2とメモリインターフェイス15は、貫通ビア(TSV)によって接続することも可能である。 When receiving a read request from the host, the storage device operates as follows. The memory interface 15 inputs the code word read from the nonvolatile memory 2 to the ECC circuit 14 . The ECC circuit 14 decodes the input codeword and stores the decoded data in the RAM 11 . Processor 12 transmits data stored in RAM 11 to the host via host interface 13 . A plurality of chips may be connected to the nonvolatile memory 2, and the nonvolatile memory 2 and the memory interface 15 may be connected by through vias (TSV).

図2は、本実施形態の不揮発性メモリの構成例を示すブロック図である。不揮発性メモリ2は、NAND I/Oインターフェイス21、制御部22、NANDメモリセルアレイ(メモリセル部)23、およびページバッファ24を備える。不揮発性メモリ2は、例えば1チップの半導体基板(例えば、シリコン基板)からなる。 FIG. 2 is a block diagram showing a configuration example of the nonvolatile memory of this embodiment. The nonvolatile memory 2 includes a NAND I/O interface 21 , a control section 22 , a NAND memory cell array (memory cell section) 23 and a page buffer 24 . The nonvolatile memory 2 is composed of, for example, a one-chip semiconductor substrate (for example, a silicon substrate).

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

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

図示するように、ブロックBLKは、例えば4つのフィンガーFNG(FNG0~FNG3)を含む。また各々のフィンガーFNGは、複数のNANDストリングNSを含む。NANDストリングNSの各々は、例えば8個のメモリセルトランジスタMT(MT0~MT7)と、選択トランジスタST1,ST2とを含む。なお、メモリセルトランジスタMTの個数は8個に限られない。メモリセルトランジスタMTは、選択トランジスタST1,ST2間に、その電流経路が直列接続されるようにして配置されている。この直列接続の一端側のメモリセルトランジスタMT7の電流経路は、選択トランジスタST1の電流経路の一端に接続され、他端側のメモリセルトランジスタMT0の電流経路は、選択トランジスタST2の電流経路の一端に接続されている。 As shown, block BLK includes, for example, four finger FNGs (FNG0-FNG3). Each finger FNG also includes multiple NAND strings NS. Each NAND string NS includes, for example, eight memory cell transistors MT (MT0 to MT7) and select transistors ST1 and ST2. Note that the number of memory cell transistors MT is not limited to eight. The memory cell transistor MT is arranged between the selection transistors ST1 and ST2 such 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毎に独立している。 Gates of select transistors ST1 of fingers FNG0 to FNG3 are commonly connected to select gate lines SGD0 to SGD3, respectively. On the other hand, the gates of the select transistors ST2 are commonly connected to the same select gate line SGS among a plurality of fingers FNG. 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 plurality of fingers FNG0 to FNG3 within the same block BLK, whereas the select gate line SGD is connected within the same block BLK. are also independent for each of the fingers FNG0 to FNG3.

NANDストリングNSを構成するメモリセルトランジスタMT0~MT7の制御ゲート電極には、それぞれワード線WL0~WL7が接続されており、また各NANDストリングNS中のメモリセルトランジスタMTi(i=0~n)間は、同一のワード線WLi(i=0~n)によって共通接続されている。すなわち、ブロックBLK内において同一行にあるメモリセルトランジスタMTiの制御ゲート電極は、同一のワード線WLiに接続される。なお、以下の説明では、NANDストリングNSをストリングという場合がある。 Word lines WL0 to WL7 are connected to the control gate electrodes of the memory cell transistors MT0 to MT7 constituting the NAND string NS, respectively. are commonly connected by the same word line WLi (i=0 to n). That is, the control gate electrodes of the memory cell transistors MTi in the same row within the block BLK are connected to the same word line WLi. Note that the NAND string NS may be referred to as a string in the following description.

各メモリセルは、ワード線WLiに接続するとともにビット線にも接続される。各メモリセルは、ワード線WLiおよびセレクトゲート線SGD0~SGD3を識別するアドレスとビット線を識別するアドレスとで識別可能である。上述した通り、同一のブロックBLK内にあるメモリセル(メモリセルトランジスタMT)のデータは、一括して消去される。一方、データの読み出し及び書き込みは、物理セクタMS単位で行われる。1物理セクタMSは、1つのワード線WLiに接続され、かつ1つのフィンガーFNGに属する複数のメモリセルを含む。 Each memory cell is connected to a word line WLi and also connected to a bit line. Each memory cell can be identified by an address that identifies the word line WLi and the select gate lines SGD0 to SGD3 and an address that identifies the bit line. As described above, data in memory cells (memory cell transistors MT) in the same block BLK are collectively erased. 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.

リード動作及びプログラム動作時において、物理アドレスに応じて、1本のワード線WLiおよび1本のセレクトゲート線SGDが選択され、物理セクタMSが選択される。 During read and program operations, one word line WLi and one select gate line SGD are selected according to the physical address, and the physical sector MS is selected.

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

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

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

さらに、p型ウェル領域の表面内には、n+型不純物拡散層およびp+型不純物拡散層が形成されている。n+型不純物拡散層上にはコンタクトプラグ340が形成され、コンタクトプラグ340上には、ソース線SLとして機能する配線層が形成される。またp+型不純物拡散層上にはコンタクトプラグ339が形成され、コンタクトプラグ339上には、ウェル配線CPWELLとして機能する配線層が形成される。 Furthermore, an n + -type impurity diffusion layer and a p + -type impurity diffusion layer are formed in the surface of the p-type well region. A contact plug 340 is formed on the n + -type impurity diffusion layer, and a wiring layer functioning as the source line SL is formed on the contact plug 340 . A contact plug 339 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 339 .

以上の図4に示した構成が、図4の紙面の奥行き方向に複数配列されており、奥行き方向に一列に並ぶ複数のNANDストリングの集合によって、1つのフィンガーFNGが形成される。 A plurality of configurations shown in FIG. 4 are arranged in the depth direction of the page of FIG. 4, and one finger FNG is formed by a set of a plurality of NAND strings arranged in a line in the depth direction.

図5は、第1の実施形態のしきい値領域の一例を示す図である。図5では、3bit/Cellの不揮発性メモリ2のしきい値分布例を示している。不揮発性メモリ2では、メモリセルのフローティングゲートに蓄えられた電荷量により情報を記憶する。各メモリセルは、電荷量に応じたしきい値電圧を有する。そして、メモリセルに記憶する複数のデータ値を、しきい値電圧の複数の領域(しきい値領域)にそれぞれ対応させる。 FIG. 5 is a diagram showing an example of threshold regions according to the first embodiment. FIG. 5 shows a threshold distribution example of the nonvolatile memory 2 of 3 bits/cell. In the nonvolatile memory 2, information is stored by the amount of charge stored in the floating gate of the memory cell. Each memory cell has a threshold voltage corresponding to the amount of charge. A plurality of data values to be stored in the memory cell are associated with a plurality of threshold voltage regions (threshold regions).

図5の、Er、A,B,C,D,E,F,Gと記載した8つの分布(山型)は、8つのしきい値領域内のそれぞれのしきい値分布を示している。このように、各メモリセルは、7つの境界によって仕切られたしきい値分布を有している。図5の横軸はしきい値電圧を示し、縦軸はメモリセル数(セル数)の分布を示している。 Eight distributions (mountain-shaped) indicated by Er, A, B, C, D, E, F, and G in FIG. 5 indicate respective threshold distributions within the eight threshold regions. Thus, each memory cell has a threshold distribution partitioned by seven boundaries. The horizontal axis of FIG. 5 indicates the threshold voltage, and the vertical axis indicates the distribution of the number of memory cells (the number of cells).

本実施形態では、しきい値電圧がVr1以下となる領域を領域Erとよび、しきい値電圧がVr1より大きくVr2以下となる領域を領域Aとよび、しきい値電圧がVr2より大きくVr3以下となる領域を領域Bとよび、しきい値電圧がVr3より大きくVr4以下となる領域を領域Cとよぶ。また、本実施形態では、しきい値電圧がVr4より大きくVr5以下となる領域を領域Dとよび、しきい値電圧がVr5より大きくVr6以下となる領域を領域Eとよび、しきい値電圧がVr6より大きくVr7以下となる領域を領域Fとよび、しきい値電圧がVr7より大きい領域を領域Gとよぶ。 In the present embodiment, the region where the threshold voltage is Vr1 or lower is called region Er, the region where the threshold voltage is higher than Vr1 and lower than or equal to Vr2 is called region A, and the threshold voltage is higher than Vr2 and lower than or equal to Vr3. A region where the threshold voltage is higher than Vr3 and lower than or equal to Vr4 is called a region C. FIG. Further, in the present embodiment, a region where the threshold voltage is greater than Vr4 and less than or equal to Vr5 is called region D, and a region where the threshold voltage is greater than Vr5 and less than or equal to Vr6 is called region E. A region where the threshold voltage is greater than Vr6 and equal to or less than Vr7 is called region F, and a region where the threshold voltage is greater than Vr7 is called region G. FIG.

また、領域Er,A,B,C,D,E,F,Gに対応するしきい値分布をそれぞれ分布Er,A,B,C,D,E,F,G(第1~第8の分布)と呼ぶ。Vr1~Vr7は、各領域の境界となるしきい値電圧である。 Also, the threshold distributions corresponding to the regions Er, A, B, C, D, E, F, and G are the distributions Er, A, B, C, D, E, F, and G (first to eighth distribution). Vr1 to Vr7 are threshold voltages that serve as boundaries between regions.

不揮発性メモリ2では、メモリセルの複数のしきい値領域(すなわちしきい値分布)に複数のデータ値をそれぞれ対応させる。この対応をデータコーディングという。このデータコーディングをあらかじめ定めておき、データの書き込み(プログラム)時には、データコーディングに従って記憶するデータ値に応じたしきい値領域内となるようにメモリセルに電荷を注入する。そして、読み出し時には、メモリセルに読み出し電圧を印加し、読み出し電圧よりメモリセルのしきい値が低いか高いかにより、データが決定される。しきい値電圧が、読み出し電圧より低い場合には、「消去」状態であるデータ値は“1”と定義する。しきい値電圧が読み出し電圧以上である場合には、「プログラムされた」状態であり、データを“0”と定義する。 In the nonvolatile memory 2, a plurality of data values are associated with a plurality of threshold regions (that is, threshold distributions) of memory cells. This correspondence is called data coding. This data coding is determined in advance, and charges are injected into the memory cells so as to fall within a threshold region corresponding to the data value to be stored according to the data coding when writing (programming) data. When reading data, a read voltage is applied to the memory cell, and data is determined depending on whether the threshold value of the memory cell is lower or higher than the read voltage. If the threshold voltage is lower than the read voltage, the data value in the "erased" state is defined as "1". If the threshold voltage is greater than or equal to the read voltage, the state is "programmed" and the data is defined as "0".

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

図6は、第1の実施形態のデータコーディングを示す図である。本実施形態では、図5に示した8つのしきい値分布(しきい値領域)を3bitの8つのデータ値にそれぞれ対応させる。しきい値電圧と、Upper,Middle,Lowerページに対応するビットのデータ値との関係は、以下に示す通りである。
・しきい値電圧がEr領域内にあるメモリセルは“111”を記憶している状態である。
・しきい値電圧がA領域内にあるメモリセルは“101”を記憶している状態である。
・しきい値電圧がB領域内にあるメモリセルは“001”を記憶している状態である。
・しきい値電圧がC領域内にあるメモリセルは“011”を記憶している状態である。
・しきい値電圧がD領域内にあるメモリセルは“010”を記憶している状態である。
・しきい値電圧がE領域内にあるメモリセルは“110”を記憶している状態である。
・しきい値電圧がF領域内にあるメモリセルは“100”を記憶している状態である。
・しきい値電圧がG領域内にあるメモリセルは“000”を記憶している状態である。
FIG. 6 is a diagram illustrating data coding in the first embodiment. In this embodiment, the eight threshold distributions (threshold regions) shown in FIG. 5 are associated with eight 3-bit data values, respectively. The relationships between the threshold voltages and the data values of the bits corresponding to the Upper, Middle, and Lower pages are as follows.
A memory cell whose threshold voltage is within the Er region stores "111".
A memory cell whose threshold voltage is in the A region stores "101".
A memory cell whose threshold voltage is within the B region is in a state of storing "001".
A memory cell whose threshold voltage is in the C region is in a state of storing "011".
A memory cell whose threshold voltage is within the D region is in a state of storing "010".
A memory cell whose threshold voltage is in the E region stores "110".
A memory cell whose threshold voltage is within the F region is in a state of storing "100".
A memory cell whose threshold voltage is in the G region stores "000".

このように、しきい値電圧の領域毎に、各メモリセルの3bitのデータの状態を表すことが出来る。なお、メモリセルが未書き込みの状態(「消去」の状態)では、メモリセルのしきい値電圧はEr領域内にある。また、ここに示した符号では,Er(消去)状態で”111”というデータを記憶し、A状態で”101”というデータを記憶するといったように、任意の2つの隣接する状態間で1bitのみデータが変化する。このように、図6に示したコーディングは、任意の2つの隣接する領域間で1bitのみデータが変化するグレイ符号である。 In this manner, the state of 3-bit data in each memory cell can be represented for each threshold voltage region. When the memory cell is in a non-written state ("erased" state), the threshold voltage of the memory cell is within the Er region. In the code shown here, data "111" is stored in the Er (erase) state, and data "101" is stored in the A state. Data change. Thus, the coding shown in FIG. 6 is a Gray code in which only 1 bit of data changes between any two adjacent regions.

図6に示す本実施形態のコーディングでは、各ページのビット値を判定するための境界となるしきい値電圧は、以下に示す通りである。
・Lowerページのビット値を判定するための境界となるしきい値電圧はVr4である。
・Middleページのビット値を判定するための境界となるしきい値電圧はVr2、Vr5、Vr7である。
・Upperページのビット値を判定するための境界となるしきい値電圧はVr1、Vr3、Vr6である。
In the coding of the present embodiment shown in FIG. 6, threshold voltages serving as boundaries for determining bit values of each page are as follows.
• The threshold voltage that serves as a boundary for determining the bit value of the Lower page is Vr4.
The boundary threshold voltages for judging the bit values of the Middle page are Vr2, Vr5, and Vr7.
The threshold voltages that serve as boundaries for judging the bit values of the Upper page are Vr1, Vr3, and Vr6.

このように、ビット値を判定するための境界となるしきい値電圧の数(以下、境界数とよぶ)が、Lowerページ、Middleページ、Upperページでそれぞれ1,3,3である。以下、このようなコーディングをLowerページ、Middleページ、Upperページのそれぞれの境界数を用いて、1-3-3コーディングという。ここで注目すべき事項は、ページごとの隣接データと変化する境界の最大数が3であることである。境界数の最大数が3であることは、8つの状態を3bitで表現する場合、最大境界数が最小であり、ビットエラーの偏りが少なくなる。 Thus, the number of threshold voltages that serve as boundaries for determining bit values (hereinafter referred to as boundary numbers) is 1, 3, and 3 for the Lower page, Middle page, and Upper page, respectively. Hereinafter, such coding will be referred to as 1-3-3 coding using the respective boundary numbers of the Lower page, Middle page, and Upper page. Note that the maximum number of adjacent data and changing boundaries per page is three. The maximum number of boundaries of 3 means that the maximum number of boundaries is the smallest when eight states are represented by 3 bits, and the bias of bit errors is reduced.

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

3次元メモリセルはメモリセルのサイズが、近年の微細化が進んだ世代の2次元のNANDメモリに対して大きく、セル間相互干渉が小さい。この場合は、一般的に、全bitを同時に(各bitを異なるページに割り付けていれば全ページを同時に)プログラムする手法が取られる。 The three-dimensional memory cell has a larger memory cell size than the two-dimensional NAND memory of the recent miniaturization generation, and the mutual interference between cells is small. In this case, generally, all bits are programmed at the same time (all pages are programmed at the same time if each bit is assigned to a different page).

全bitを同時にプログラムする場合、データコーディングとしては、1-2-4コーディングまたは2-3-2コーディングが用いられている。1-2-4コーディングでは、8個のしきい値分布間の7個の境界を3つのページに分配する際に、Lowerページに1つ、Middleページに2つ、Upperページに4つというように境界を分配している。また、2-3-2コーディングでは、8個のしきい値分布間の7個の境界を3つのページに分配する際に、Upperページに2つ、Middleページに3つ、Lowerページに2つというように境界を分配している。 When programming all bits simultaneously, 1-2-4 coding or 2-3-2 coding is used as data coding. In 1-2-4 coding, when the 7 boundaries between the 8 threshold distributions are distributed over 3 pages, 1 on the Lower page, 2 on the Middle page, 4 on the Upper page, and so on. distributes the boundaries to Also, in 2-3-2 coding, when distributing the seven boundaries between the eight threshold distributions to three pages, there are two on the Upper page, three on the Middle page, and two on the Lower page. The boundaries are distributed like this.

ところが、1-2-4コーディングの場合、境界数が各ページで著しく偏っているために、結果としてページ間のビットエラー率の偏りが大きくなる。これは、ビットエラーの原因のほとんどが隣接分布へのしきい値移動によって引き起こされ、境界数を多く有しているページほどビットエラー数が多くなるためである。このことは、メモリセルとしてのエラー率が同じであったとしても、ページデータのエラーを訂正するのに必要なECCの訂正能力を強化しなくてはいけないことにつながるので、記憶装置の速度、コストおよび消費電力を悪化させてしまう。また、境界数の偏りは、読み出し速度の偏りも引き起こす。 However, in the case of 1-2-4 coding, the number of boundaries is significantly uneven on each page, resulting in a large uneven bit error rate between pages. This is because most of the causes of bit errors are caused by threshold shifts to neighboring distributions, and the number of bit errors increases in pages with more boundaries. This leads to the need to enhance the ECC correction capability required to correct page data errors even if the error rate as a memory cell is the same. It exacerbates cost and power consumption. In addition, bias in the number of boundaries also causes bias in readout speed.

また、3bit/CellのNANDメモリでは、セル間相互干渉が1bit/Cellや2bit/CellのNANDメモリと比較して大きい。このため、近年の微細化が進んだ世代のNANDメモリでは、一般的に、セル間相互干渉を抑えるため、3つ又は2つのステージを用いて、メモリセルのフローティングゲートに少しずつ電荷を注入するプログラム方法(LM-Foggy-Fineプログラム又はFoggy-Fineプログラム)がある。このLM-Foggy-Fineプログラムでは、1つ目のステージ(LMステージ)の書き込み後、隣接セルの書き込みを行い、先ほどのセルに戻り、2つ目のステージ(Foggyステージ)を書き込んだ後、更に再び隣接セルに書き込み、この後再び先ほどのメモリセルに戻り3つ目のステージ(Fineステージ)の3つのプログラムステージによって書き込みが実施される。 Also, in a 3-bit/cell NAND memory, mutual interference between cells is greater than in a 1-bit/cell or 2-bit/cell NAND memory. For this reason, in recent generations of NAND memory with advanced miniaturization, in order to suppress mutual interference between cells, charges are generally injected into the floating gates of memory cells little by little using three or two stages. There is a programming method (LM-Foggy-Fine program or Foggy-Fine program). In this LM-Foggy-Fine program, after writing the first stage (LM stage), write to the adjacent cell, return to the previous cell, write the second stage (Foggy stage), and then The data is written to the adjacent cell again, and then the data is returned to the previous memory cell and written by the three program stages of the third stage (Fine stage).

またFoggy-Fineプログラムでは、1つ目のステージ(Foggyステージ)の書き込み後、隣接セルの書き込みを行い、この後先ほどのメモリセルに戻り2つ目のステージ(Fineステージ)の2つのプログラムステージによって書き込みが実施される。この場合の各プログラムステージは、プログラムの実行単位であり、1ワード線WLiのプログラムは3つのプログラムステージを実行することで完了する。 In addition, in the Foggy-Fine program, after writing in the first stage (Foggy stage), write to adjacent cells, then return to the previous memory cell and perform two program stages in the second stage (Fine stage). Write is performed. Each program stage in this case is a program execution unit, and the program for one word line WLi is completed by executing three program stages.

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

2-3-2コーディングの場合、境界数の偏りは少ないが、LM-Foggy-Fineプログラムのデータ入力において、全てのステージで3ページ分のデータ入力が必要となる。また、Foggy-Fineプログラムのデータ入力において、全てのステージで2ページ分のデータ入力が必要となる。これは、データ入力にかかる時間の増大となり、記憶装置の速度を悪化させてしまう。また、記憶装置内において、NANDメモリへ入力するためにデータを保持しておくための書き込みバッファのバッファ量(書き込みバッファ量)を増大させてしまう。この書き込みバッファは、一般的に、記憶装置が備えるRAM11の一部の領域が割り当てられたものである。 In the case of 2-3-2 coding, there is little bias in the number of boundaries, but in the data input of the LM-Foggy-Fine program, data input for 3 pages is required in all stages. In data input of the Foggy-Fine program, data input for two pages is required in all stages. This increases the time it takes to enter the data and slows down the storage device. Also, in the storage device, the amount of write buffer (write buffer amount) for holding data to be input to the NAND memory is increased. A partial area of the RAM 11 provided in the storage device is generally allocated to this write buffer.

これらに対する対策として、1-3-3コーディングを採用してLM-Foggy-Fineプログラムを行う方法がある。この方法では、LM-Foggy-Fineプログラムが採用されているので、セル間相互干渉を抑制できる。また、LMステージの入力は、1ページ分のデータでよいので、書き込みバッファ量の低減と、各ページ間の境界数の偏りに起因するビットエラー率の偏りの抑制と、を両立させている。 As a countermeasure against these, there is a method of adopting 1-3-3 coding and executing the LM-Foggy-Fine program. Since this method employs the LM-Foggy-Fine program, mutual interference between cells can be suppressed. In addition, since data for one page may be input to the LM stage, it is possible to both reduce the amount of write buffers and suppress the bias in the bit error rate caused by the bias in the number of boundaries between pages.

しかしながら、不揮発性メモリ2のNANDメモリが3次元構造を有している場合、1-3-3コーディングを採用したLM-Foggy-Fineプログラム又はFoggy-Fineプログラムを適用しても、書き込みバッファ量が大きくなるので、メモリコントローラ1のコストが増大する。 However, when the NAND memory of the nonvolatile memory 2 has a three-dimensional structure, the write buffer size is Since it becomes large, the cost of the memory controller 1 increases.

そこで、本実施形態では、記憶装置が、3次元構造を有した不揮発性メモリ2に対して、1-3-3コーディングを採用し、さらに、2ステージでページ単位(page by page)の書き込みを実施する。これにより、本実施形態では、3次元構造を有した不揮発性メモリ2においてもセル間相互干渉と各ページ間のビットエラー率の偏りを抑制しつつ、メモリコントローラ1の書き込みバッファ量を低減する。 Therefore, in this embodiment, the storage device adopts 1-3-3 coding for the non-volatile memory 2 having a three-dimensional structure, and further performs page-by-page writing in two stages. implement. As a result, in this embodiment, even in the nonvolatile memory 2 having a three-dimensional structure, the write buffer capacity of the memory controller 1 is reduced while suppressing the mutual interference between cells and the uneven bit error rate between pages.

ここで、隣接メモリセル間干渉について説明する。ある1つのメモリセルのフローティングゲートに蓄積された電荷は、隣接するメモリセルの電界を乱し、その結果、隣接するメモリセルの読み出しのしきい値を変動させるノイズを与える。ある電界条件下でプログラムとベリファイとが実施され、プログラムが完結した後、隣接するメモリセルが異なる電荷にプログラムされるということは、これに起因して読み出し精度が劣化することとなる。この隣接メモリセル間干渉は、メモリデバイスの製造技術が微細化され、メモリセル間隔が縮小するにつれて顕著となる。そして、この隣接メモリセル間干渉は、大きくは同一ワード線WLi上で異なるビットラインの隣接メモリセルと、同一ビットライン上で異なるワード線WLiの隣接メモリセルと、によってもたらされる。 Interference between adjacent memory cells will now be described. The charge stored on the floating gate of one memory cell disturbs the electric field of adjacent memory cells, resulting in noise that varies the read threshold of adjacent memory cells. Programming and verifying are performed under certain electric field conditions, and after the programming is completed, adjacent memory cells are programmed with different charges, resulting in degradation of read accuracy. This interference between adjacent memory cells becomes more conspicuous as the memory device manufacturing technology is miniaturized and the memory cell spacing is reduced. This interference between adjacent memory cells is largely caused by adjacent memory cells on the same word line WLi and different bit lines and adjacent memory cells on the same bit line and different word lines WLi.

隣接メモリセル間干渉は、プログラムおよびベリファイの時と、隣接するメモリセルがプログラムされた後の読み出しの時と、の間における、メモリセルの電界条件の違いを少なくすることによって緩和することが可能である。同一ワード線WLi上で異なるビットラインの隣接メモリセルとの間の隣接メモリセル間干渉を低減する1つの方法として、プログラムを複数のステージに分割し、各ステージ間での電荷の大きな変化を回避するマルチステージのプログラムを実行する方法がある。 Neighboring memory cell interference can be mitigated by reducing the difference in memory cell electric field conditions between programming and verifying and reading after adjacent memory cells are programmed. is. One method of reducing inter-adjacent memory cell interference between adjacent memory cells on different bit lines on the same word line WLi is to divide the program into multiple stages to avoid large changes in charge between each stage. There is a way to run a multi-stage program that

本実施形態におけるプログラムシーケンスでは、1つのワード線WLi上の3bitは、2つのプログラムステージ、すなわち1stステージと2ndステージとによってプログラムされる。各プログラムステージは、プログラムの実行単位であり、本実施形態の記憶装置は、ワード線WLiのプログラムを、2つのプログラムステージを実行することで完了する。また、本実施形態では、2つのプログラムステージのそれぞれに、3bitの何れかのページが割り付けられる。具体的には、1stステージのプログラムには、Lowerページデータを割り付けられ、2ndステージのプログラムには、MiddleページおよびUpperページのデータが割り付けられる。 In the program sequence of this embodiment, 3 bits on one word line WLi are programmed by two program stages, ie, the 1st stage and the 2nd stage. Each program stage is a program execution unit, and the memory device of this embodiment completes the programming of word lines WLi by executing two program stages. Further, in the present embodiment, one of 3-bit pages is allocated to each of the two program stages. Specifically, Lower page data is allocated to the 1st stage program, and Middle page and Upper page data are allocated to the 2nd stage program.

図7は、第1の実施形態におけるプログラム後のしきい値分布を示す図である。図7では、メモリセルに対する各プログラムステージ後のしきい値分布を示している。図7の(T1)は、プログラム前の初期状態である消去状態のしきい値分布を示している。図7の(T2)は、1stステージのプログラム後のしきい値分布を示している。図7の(T3)は、2ndステージのプログラム後のしきい値分布を示している。 FIG. 7 is a diagram showing a threshold distribution after programming in the first embodiment. FIG. 7 shows the threshold distribution after each programming stage for the memory cells. (T1) in FIG. 7 shows the threshold distribution in the erased state, which is the initial state before programming. (T2) in FIG. 7 shows the threshold distribution after programming of the 1st stage. (T3) in FIG. 7 shows the threshold distribution after the programming of the 2nd stage.

図7の(T1)に示すように、NANDメモリセルアレイ23の全メモリセルは、未書き込みの状態(「消去」の状態)では分布Erの状態である。不揮発性メモリ2の制御部22は、図7の(T2)に示すように、1stステージのプログラムでは、Lowerページに書き込む(記憶する)ビット値に応じて、メモリセルごとに分布Erのままとする、または電荷を注入して分布Erよりも上の分布に移動させる。具体的には、制御部22は、Lowerページに書き込むビット値が“1”の場合は、電荷を注入せず、Lowerページに書き込むビット値が“0”の場合は電荷を注入して、しきい値電圧を高い方に移動させるようプログラムする。 As shown in (T1) of FIG. 7, all memory cells of the NAND memory cell array 23 are in a state of distribution Er in an unwritten state ("erased" state). As shown in (T2) of FIG. 7, the control unit 22 of the nonvolatile memory 2 maintains the distribution Er for each memory cell according to the bit values written (stored) in the Lower page in the 1st stage program. or inject charge to move it to a distribution above the distribution Er. Specifically, the control unit 22 does not inject charge when the bit value to be written to the lower page is "1", and injects charge when the bit value to be written to the lower page is "0". Program the threshold voltage to move higher.

これにより、メモリセルは、Lowerページデータによって、2値のレベルにプログラムされる。ここで注意すべき事項は、1stステージのプログラム(第1のプログラム)におけるファンクションは、Lowerページデータのみのファンクションであることである。この実行に必要なページデータは、Lowerページのみでよい。さらに、この1stステージのプログラム後のしきい値分布は、後の2ndステージのプログラム(第2のプログラム)で最終的にプログラムし直されるため、分布を細く整形する必要が無く、高速なプログラムが可能である。そして、この1stステージのプログラム後のデータは、バイナリのように見えるので、Lowerページデータの読み出しが可能である。よって、1stステージでプログラムする際のしきい値のレベルは、2ndステージのプログラムでD以上に遷移するよう割り付けることに鑑み、Vr1とVr4との間に入るよう制御される。 Thereby, the memory cells are programmed to binary levels by the Lower page data. What should be noted here is that the function in the 1st stage program (first program) is a function of only Lower page data. The page data required for this execution is only the Lower page. Furthermore, since the threshold distribution after programming in the 1st stage is finally reprogrammed in the programming of the 2nd stage (the second program), there is no need to finely shape the distribution, and high-speed programming can be achieved. It is possible. Since the data after programming in the 1st stage looks like binary data, it is possible to read the Lower page data. Therefore, the threshold level for programming in the 1st stage is controlled to be between Vr1 and Vr4 in view of the assignment to transition to D or higher in the programming for the 2nd stage.

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

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

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

図8Aは、第1の実施形態のプログラム順序の第1の例を示す図である。図8Bは、第1の実施形態のプログラム順序の第2の例を示す図である。図8Cは、第1の実施形態のプログラム順序の第3の例を示す図である。図8A~図8Cでは、隣接メモリセル間干渉の影響が小さくなるシーケンス(2ステージのプログラムの方法)を示している。図8Aは、ブロック内のストリングが1つのNANDメモリである場合のプログラム順序の一例を示している。また、図8Bおよび図8Cは、ブロック内のストリングが4つのNANDメモリである場合のプログラム順序の一例を示している。 FIG. 8A is a diagram showing a first example of 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 program order of the first embodiment. 8A to 8C show a sequence (two-stage programming method) in which the influence of interference between adjacent memory cells is reduced. FIG. 8A shows an example of programming order when the string in the block is one NAND memory. Figures 8B and 8C also show an example of the programming order when the strings in the block are four NAND memories.

書き込みを開始すると、制御部22は、所定の非連続的な順序でワード線WLiをまたぎながら、各プログラムステージを進む。すなわち、2つの異なるプログラムステージは、同じワード線WLiで連続的に実行されない。 When writing is started, the control unit 22 proceeds through each program stage while straddling the word lines WLi in a predetermined discontinuous order. That is, two different program stages are not executed consecutively on the same word line WLi.

例えば、ワード線WLiが2ndステージまでプログラム完了した後に、隣接ワード線WLiにおいて、1stステージおよび2ndステージのプログラムが行われると、しきい値の変動量が大きくなる。そして、隣接ワード線WLiのしきい値の変動量が大きいと、ワード線WLi間の隣接メモリセル間干渉が大きくなる。したがって、ワード線WLi間の隣接メモリセル間干渉を小さくするためには、ワード線WLiが2ndステージまでプログラム完了した後に、隣接ワード線WLiのしきい値の変動量を小さくすることが有効である。このようなシーケンスであれば、ワード線WLiが2ndステージまでプログラム完了した後の隣接ワード線WLiのプログラムステージは2ndステージのみとなる。 For example, after the word line WLi is programmed up to the 2nd stage, if the adjacent word line WLi is programmed in the 1st stage and the 2nd stage, the amount of change in the threshold value increases. If the amount of change in the threshold value of the adjacent word line WLi is large, interference between adjacent memory cells between the word lines WLi increases. Therefore, in order to reduce the interference between adjacent memory cells between word lines WLi, it is effective to reduce the fluctuation amount of the threshold value of the adjacent word lines WLi after the word lines WLi have been programmed up to the 2nd stage. . With such a sequence, the programming stage of the adjacent word line WLi becomes only the 2nd stage after the programming of the word line WLi is completed up to the 2nd stage.

図8Aに示すNANDメモリの場合(不揮発性メモリ2のNANDメモリが3次元構造である場合)、書き込みを開始すると、制御部22は、プロセッサ12からの指示に基づいて、以下の(1)~(9)に示す順番でプログラムを実施する。なお、以下の処理においては、制御部22のプログラムの動作はプロセッサ12からの指示に基づくが、説明の簡略化のため、プロセッサ12からの指示に基づくという記載を省略する。 In the case of the NAND memory shown in FIG. 8A (when the NAND memory of the nonvolatile memory 2 has a three-dimensional structure), when writing is started, the control unit 22 performs the following (1) to The program is executed in the order shown in (9). In the following processing, the operation of the program of the control unit 22 is based on the instructions from the processor 12, but for the sake of simplification of explanation, the description that it is based on the instructions from the processor 12 is omitted.

(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を実施する。
以下同様に、制御部22は、図8Aに示す表の右斜め上へ向かう矢印の順に処理を進めていく。
(1) First, the control unit 22 executes the 1st stage program ST 1 1 for the word line WL0.
(2) Next, the control unit 22 executes the 1st stage program ST 1 2 for the word line WL1.
(3) Next, the control unit 22 executes the 2nd stage program ST 1 3 for the word line WL0.
(4) Next, the control unit 22 executes the 1st stage program ST 1 4 for the word line WL2.
(5) Next, the control unit 22 executes the 2nd stage program ST 1 5 for the word line WL1.
(6) Next, the control unit 22 executes the 1st stage program ST 1 6 for the word line WL3.
(7) Next, the control unit 22 executes the 2nd stage program ST 1 7 for the word line WL2.
(8) Next, the control unit 22 executes the 1st stage program ST 1 8 for the word line WL4.
(9) Next, the control unit 22 executes the 2nd stage program ST 1 9 for the word line WL3.
Similarly, the control unit 22 proceeds with the processing in the order of the arrows pointing diagonally upward to the right in the table shown in FIG. 8A.

図8Bに示すNANDメモリの場合(不揮発性メモリ2のNANDメモリが3次元構造である場合)、書き込みを開始すると、制御部22は、以下の(11)~(24)に示す順番でプログラムを実施する。 In the case of the NAND memory shown in FIG. 8B (when the NAND memory of the nonvolatile memory 2 has a three-dimensional structure), when writing is started, the control unit 22 executes the program in the order shown in (11) to (24) below. implement.

(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を実施する。
以下同様に、制御部22は、図8Bに示す表の右斜め上へ向かう矢印の順に処理を進めていく。なお、図8Bでは、ブロック内のストリングが4つである場合について説明したが、ブロック内のストリングは、3つ以下であってもよいし、5つ以上であってもよい。
(11) First, the control unit 22 executes the 1st stage program ST 2 1 for the string St0_word line WL0.
(12) Next, the control unit 22 executes the 1st stage program ST 2 2 for the string St1_word line WL0.
(13) Next, the control unit 22 executes the 1st stage program ST 2 3 for the string St2_word line WL0.
(14) Next, the control unit 22 executes the 1st stage program ST 2 4 for the string St3_word line WL0.
(15) Next, the control unit 22 executes the 1st stage program ST 2 5 for the string St0_word line WL1.
(16) Next, the control unit 22 executes the 2nd stage program ST 2 6 for the string St0_word line WL0.
(17) Next, the control unit 22 executes the 1st stage program ST 2 7 for the string St1_word line WL1.
(18) Next, the control unit 22 executes the 2nd stage program ST 2 8 for the string St1_word line WL0.
(19) Next, the control unit 22 executes the 1st stage program ST 2 9 for the string St2_word line WL1.
(20) Next, the control unit 22 executes the 2nd stage program ST 2 10 for the string St2_word line WL0.
(21) Next, the control unit 22 executes the 1st stage program ST 2 11 for the string St3_word line WL1.
(22) Next, the control unit 22 executes the 2nd stage program ST 2 12 for the string St3_word line WL0.
(23) Next, the control unit 22 executes the 1st stage program ST 2 13 for the string St0_word line WL2.
(24) Next, the control unit 22 executes the 2nd stage program ST 2 14 for the string St0_word line WL1.
Likewise, the control unit 22 advances the processing in the order of the arrows pointing diagonally upward to the right in the table shown in FIG. 8B. Note that FIG. 8B describes the case where there are four strings in the block, but the number of strings in the block may be three or less, or may be five or more.

図8Cに示すNANDメモリの場合(不揮発性メモリ2のNANDメモリが3次元構造である場合)、書き込みを開始すると、制御部22は、以下の(31)~(50)に示す順番でプログラムを実施する。 In the case of the NAND memory shown in FIG. 8C (when the NAND memory of the nonvolatile memory 2 has a three-dimensional structure), when writing is started, the control unit 22 executes the program in the order shown in (31) to (50) below. implement.

(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を実施する。
なお、図8Cでは、ブロック内のストリングが4つである場合について説明したが、ブロック内のストリングは、3つ以下であってもよいし、5つ以上であってもよい。
(31) First, the control unit 22 executes the 1st stage program ST 3 1 for the string St0_word line WL0.
(32) Next, the control unit 22 executes the 1st stage program ST 3 2 for the string St1_word line WL0.
(33) Next, the control unit 22 executes the 1st stage program ST 3 3 for the string St2_word line WL0.
(34) Next, the control unit 22 executes the 1st stage program ST 3 4 for the string St3_word line WL0.
(35) First, the control unit 22 executes the 1st stage program ST 3 5 for the string St0_word line WL1.
(36) Next, the control unit 22 executes the 1st stage program ST 3 6 for the string St1_word line WL1.
(37) Next, the control unit 22 executes the 1st stage program ST 3 7 for the string St2_word line WL1.
(38) Next, the control unit 22 executes the 1st stage program ST 3 8 for the string St3_word line WL1.
(39) Next, the control unit 22 executes the 2nd stage program ST 3 9 for the string St0_word line WL0.
(40) Next, the control unit 22 executes the 2nd stage program ST 3 10 for the string St1_word line WL0.
(41) Next, the control unit 22 executes the 2nd stage program ST 3 11 for the string St2_word line WL0.
(42) Next, the control unit 22 executes the 2nd stage program ST 3 12 for the string St3_word line WL0.
(43) Next, the control unit 22 executes the 1st stage program ST 3 13 for the string St0_word line WL2.
(44) Next, the control unit 22 executes the 1st stage program ST 3 14 for the string St1_word line WL2.
(45) Next, the control unit 22 executes the 1st stage program ST 3 15 for the string St2_word line WL2.
(46) Next, the control unit 22 executes the 1st stage program ST 3 16 for the string St3_word line WL2.
(47) Next, the control unit 22 executes the 2nd stage program ST 3 17 for the string St0_word line WL1.
(48) Next, the control unit 22 executes the 2nd stage program ST 3 18 for the string St1_word line WL1.
(49) Next, the control unit 22 executes the 2nd stage program ST 3 19 for the string St2_word line WL1.
(50) Next, the control section 22 executes the program ST 3 20 of the 2nd stage of the string St3_word line WL1.
Note that FIG. 8C describes the case where there are four strings in the block, but the number of strings in the block may be three or less, or may be five or more.

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

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

図9Aは、第1の実施形態に係る1ブロック分全体の書き込み手順の第1の例を示すフローチャートである。ここでの1ブロックは、ワード線WL0~WLn(nは自然数)のn+1本のワード線WLiを有するとする。図9Bは、第1の実施形態に係る1stステージにおける書き込み手順を示すサブフローチャートであり、図9Cは、第1の実施形態に係る2ndステージでの書き込み手順を示すサブフローチャートである。なお、図9Aの各ステップの右に示した(1st)は、図9Bに示す1stステージに対応し、(2nd)は、図9Cに示す2ndステージに対応する。 FIG. 9A is a flow chart showing a first example of a procedure for writing an entire block according to the first embodiment. Here, one block has n+1 word lines WLi of word lines WL0 to WLn (n is a natural number). FIG. 9B is a sub-flowchart showing the writing procedure in the 1st stage according to the first embodiment, and FIG. 9C is a sub-flowchart showing the writing procedure in the 2nd stage according to the first embodiment. (1st) shown to the right of each step in FIG. 9A corresponds to the 1st stage shown in FIG. 9B, and (2nd) corresponds to the 2nd stage shown in FIG. 9C.

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

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

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

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

図9Bに示すように、1stステージのプログラムでは、まず、メモリコントローラ1から不揮発性メモリ2へLowerページデータの入力開始コマンドが入力される(ステップS210)。そして、メモリコントローラ1から不揮発性メモリ2へLowerページデータが入力される(ステップS220)。さらに、メモリコントローラ1から不揮発性メモリ2へ1stステージのプログラム実行コマンドが入力され(ステップS230)、これによりチップビジーとなる(ステップS240)。 As shown in FIG. 9B, in the 1st stage program, first, a lower page data input start command is input from the memory controller 1 to the nonvolatile memory 2 (step S210). Then, the lower page data is input from the memory controller 1 to the nonvolatile memory 2 (step S220). Further, a program execution command for the 1st stage is input from the memory controller 1 to the nonvolatile memory 2 (step S230), and the chip becomes busy (step S240).

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

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

図9Cに示すように、2ndステージのプログラムでは、まず、メモリコントローラ1から不揮発性メモリ2へMiddleページのデータの入力開始コマンドが入力される(ステップS310)。そして、メモリコントローラ1から不揮発性メモリ2へMiddleページのデータが入力される(ステップS320)。 As shown in FIG. 9C, in the 2nd stage program, first, a middle page data input start command is input from the memory controller 1 to the nonvolatile memory 2 (step S310). Then, data of the Middle page is input from the memory controller 1 to the nonvolatile memory 2 (step S320).

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

この後、制御部22は、IDL(Internal Data Load)であるLowerページデータの読み出しを行う(ステップS370)。そして、Lowerページデータに基づいて、MiddleページおよびUpperページのプログラム先のVth(しきい値電圧)が決定される(ステップS380)。この後、決定されたVthを用いて、MiddleページおよびUpperページへのデータ書き込みが行われる。 Thereafter, the control unit 22 reads Lower page data, which is IDL (Internal Data Load) (step S370). Then, Vth (threshold voltage) of the program destination of the Middle page and Upper page is determined based on the Lower page data (step S380). Thereafter, data is written to the Middle page and Upper page using the determined Vth.

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

図9Eは、複数回数の読み出し結果の多数決処理を説明するための図である。図9Eでは、正しいビットを丸印(○)で示し、誤ったビットをばつ印(×)で示している。また、図9Eでは、3回の読み出しが行われた場合の多数決の結果を示している。 FIG. 9E is a diagram for explaining majority processing of the results of reading a plurality of times. In FIG. 9E, correct bits are indicated by circles (o) and incorrect bits are indicated by crosses (x). Also, FIG. 9E shows the result of the majority decision when three readings are performed.

各ビットにおいて、多数決の結果が誤りと判断されるのは、(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である。したがって、3回の多数決結果が誤りと判断されるのは、(p×p×p)+3×(1-p)×p×p=0.104である。このように、制御部22は、複数回数の読み出し結果の多数決処理をチップ内のページバッファ24で行うことで、読み出しデータの信頼性を上げることが可能となる。 In each bit, the result of the majority decision is determined to be erroneous when (a) it is erroneous three times and (b) it is erroneous twice. If the probability that each bit is erroneous is p, and if p = 0.2, then the probability of (a) being erroneous three times is p x p x p = 0.2 x 0.2 x 0.2, and ( b) The probability of getting it wrong twice is (1−p)×p×p=(1−0.2)×0.2×0.2. Therefore, it is (p.times.p.times.p)+3.times.(1-p).times.p.times.p=0.104 that the three majority results are determined to be erroneous. In this way, the control unit 22 can increase the reliability of the read data by performing the majority decision processing of the results of reading a plurality of times in the page buffer 24 within the chip.

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

さらに、MiddleページおよびUpperページにおけるデータのフェイルビット数がクライテリアよりも小さいか否かが確認される(ステップS410)。MiddleページおよびUpperページにおけるデータのフェイルビット数がクライテリア以上である場合(ステップS410、No)、ステップS390~S410の処理が繰り返される。そして、データのフェイルビット数がクライテリアよりも小さくなると(ステップS410、Yes)、チップレディーとなる(ステップS420)。 Further, it is checked whether the number of fail bits of data in the Middle page and Upper page is smaller than the criteria (step S410). If the number of fail bits of data in the middle page and the upper page is equal to or greater than the criteria (step S410, No), the processing of steps S390 to S410 is repeated. Then, when the number of fail bits of data becomes smaller than the criteria (step S410, Yes), the chip is ready (step S420).

ここで、図9Cに示した書き込み手順の変形例について説明する。図9Dは、第1の実施形態に係る2ndステージでの書き込み手順の変形例を示すサブフローチャートである。なお、図9Dに示す処理手順では、図9Cで説明したステップS370の処理が行われないところを除いて、ステップS310~S420の処理手順は図9Cと同じである。 Here, a modification of the write procedure shown in FIG. 9C will be described. FIG. 9D is a sub-flowchart showing a modification of the write procedure in the 2nd stage according to the first embodiment; In the processing procedure shown in FIG. 9D, the processing procedures of steps S310 to S420 are the same as those of FIG. 9C except that the processing of step S370 described in FIG. 9C is not performed.

図9Dに示す処理手順の場合、ステップS310の前にステップS301~S309の処理が行われる。具体的には、まず、メモリコントローラ1から不揮発性メモリ2へLowerページの読み出しコマンドが入力され(ステップS301)、これによりチップビジーとなる(ステップS302)。 In the case of the processing procedure shown in FIG. 9D, steps S301 to S309 are performed before step S310. Specifically, first, a lower page read command is input from the memory controller 1 to the nonvolatile memory 2 (step S301), and the chip becomes busy (step S302).

この後、制御部22は、IDLであるLowerページデータの読み出しをVr4のしきい値電圧で行う。そして、制御部22は、Vr4のしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS303)。この後、チップレディーとなる(ステップS304)。 After that, the control unit 22 reads the IDL Lower page data at the threshold voltage of Vr4. 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 Vr4 (step S303). After that, the chip becomes ready (step S304).

制御部22が読み出したLowerページデータを出力すると(ステップS305)、このLowerページデータは、ECC回路14に送信される(ステップS306)。これにより、ECC回路14がLowerページデータをECC訂正する(ステップS307)。 When the controller 22 outputs the read lower page data (step S305), this lower page data is sent to the ECC circuit 14 (step S306). As a result, the ECC circuit 14 ECC-corrects the lower page data (step S307).

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

この後、ステップS310~S420の処理が行われる。なお、ステップS380では、ECC回路14からのLowerページデータに基づいて、MiddleページおよびUpperページのプログラム先のVthが決定される。 After that, the processing of steps S310 to S420 is performed. In step S380, based on the Lower page data from the ECC circuit 14, Vth of the program destination of the Middle page and Upper page is determined.

上述した2ndステージのプログラムでは、不揮発性メモリ2へのデータ入力は、MiddleページとUpperページとの2ページだけである。しかし、この2ndステージでは、メモリセルのプログラムの目的地であるVthには、Lowerページ(2ndステージを始める前のVth)も含めた3ページ分のデータが必要である。そのため、このステージのプログラムでは、前処理として、制御部22が、まずLowerページデータを読み出し、そのデータを、入力されたMiddleページとUpperページとで合成してプログラム先のVthを決定するという動作を行う。 In the 2nd stage program described above, the data input to the nonvolatile memory 2 is only two pages, the Middle page and the Upper page. However, in this 2nd stage, Vth, which is the destination of memory cell programming, requires data for 3 pages including the Lower page (Vth before starting the 2nd stage). Therefore, in the program at this stage, as preprocessing, the control unit 22 first reads the Lower page data, synthesizes the data with the input Middle page and Upper page, and determines Vth of the program destination. I do.

Lowerページデータを読み出すことができるのは、Lowerページの境界数が1である1-3-3コーディングを採用しているからである。2ndステージでLowerページデータが読み出されることで、2ndステージでは、Lowerページデータ入力を不要としている。すなわち、1-3-3コーディングを採用し、Lowerページデータに基づいてプログラム先のVthが決定されるので、ワード線WLi間の隣接メモリセル間干渉を小さくできるとともに、1つのページデータは1回のデータ入力で済む。 The lower page data can be read because 1-3-3 coding, in which the number of lower page boundaries is one, is employed. Since the lower page data is read out in the second stage, it is unnecessary to input the lower page data in the second stage. That is, since 1-3-3 coding is adopted and Vth of the program destination is determined based on the lower page data, interference between adjacent memory cells between word lines WLi can be reduced, and one page data can be processed only once. data entry.

これにより、1-3-3コーディングを採用して3ステージでLM-Foggy-Fineプログラムが実行される場合には、メモリコントローラ1の書き込みバッファに必要なメモリ量が複数ワード線分(最大7ページ)であったのに対し、本実施形態では、メモリコントローラ1の書き込みバッファに必要なメモリ量が最大でも2ページ分で済む。 As a result, when the LM-Foggy-Fine program is executed in 3 stages using 1-3-3 coding, the amount of memory required for the write buffer of the memory controller 1 is reduced to multiple word lines (up to 7 pages). ), whereas in the present embodiment, the memory capacity required for the write buffer of the memory controller 1 is at most two pages.

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

図10Aおよび後述する図10Bでは、上段側に、ブロック書き込みのデータ入力とプログラム実行のタイムチャートを示し、下段側に、データを書き込みバッファ内に保持するのに必要な期間のタイムチャートを示している。なお、図10Aおよび後述する図10Bでは、説明を簡単化するために、1ブロック内のストリング数が1の場合を示している。ストリングが複数の場合は、ストリング数倍だけのメモリ量が必要である。 In FIG. 10A and FIG. 10B, which will be described later, 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. there is Note that FIG. 10A and FIG. 10B, which will be described later, show the case where the number of strings in one block is 1 for the sake of simplicity of explanation. If there are multiple strings, a memory amount equal to the number of strings is required.

1-3-3コーディングのLM-Foggy-Fineプログラムの場合、1つ目のステージであるLMステージでは、1ページ分のデータ入力と、この1ページ分のプログラム(LMステージのプログラム)とが行われる。また、1-3-3コーディングのLM-Foggy-Fineプログラムの場合、2つ目のステージであるFoggyステージでは、3ページ分のデータ入力と、この3ページ分のプログラム(Foggyステージのプログラム)とが行われる。また、1-3-3コーディングのLM-Foggy-Fineプログラムの場合、3つ目のステージであるFineステージでは、3ページ分のデータ入力と、この3ページ分のプログラム(Fineステージのプログラム)とが行われる。 In the case of the 1-3-3 coding LM-Foggy-Fine program, the LM stage, which is the first stage, consists of one page of data input and this one page of program (LM stage program). will be In addition, in the case of the 1-3-3 coding LM-Foggy-Fine program, in the second stage, the Foggy stage, 3 pages of data are input, and this 3 pages of program (Foggy stage program) and is done. In the case of the 1-3-3 coding LM-Foggy-Fine program, in the third stage, the Fine stage, 3 pages of data are input, and this 3-page program (Fine stage program) is is done.

そして、各ワード線WL0,WL1,WL2,・・・では、Fineステージにおいてプログラムが開始されるまで、LMステージにおいて書き込まれた1ページ分のデータと、Foggyステージにおいて書き込まれた3ページ分のデータとを、書き込みバッファ内に格納しておく必要がある。 On each word line WL0, WL1, WL2, . must be stored in the write buffer.

LM-Foggy-Fineプログラムにおいても、隣接メモリセル間干渉を低減するため、Lower/Middle/Upperの3ページ分のデータは連続して書き込まれない。例えば、ワード線WL0へのLMステージが実行された後、ワード線WL0へのFoggyステージが実行される前に、ワード線WL0に隣接するワード線WL1へのLMステージが実行される。また、ワード線WL0へのFoggyステージが実行された後、ワード線WL0へのFineステージが実行される前に、ワード線WL0に隣接するワード線WL1へのFoggyステージが実行される。同様に、ワード線WL1へのLMステージが実行された後、ワード線WL1へのFoggyステージが実行される前に、ワード線WL1に隣接するワード線WL2へのLMステージが実行される。また、ワード線WL1へのFoggyステージが実行された後、ワード線WL1へのFineステージが実行される前に、ワード線WL1に隣接するワード線WL2へのFoggyステージが実行される。 In the LM-Foggy-Fine program as well, data for three pages of Lower/Middle/Upper are not written continuously in order to reduce interference between adjacent memory cells. For example, after the LM stage for word line WL0 is executed, the LM stage for word line WL1 adjacent to word line WL0 is executed before the Foggy stage for word line WL0 is executed. After the Foggy stage for word line WL0 is executed, the Foggy stage for word line WL1 adjacent to word line WL0 is executed before the Fine stage for word line WL0 is executed. Similarly, after the LM stage for word line WL1 is performed, the LM stage for word line WL2 adjacent to word line WL1 is performed before the Foggy stage for word line WL1 is performed. After executing the Foggy stage for the word line WL1, before executing the Fine stage for the word line WL1, the Foggy stage for the word line WL2 adjacent to the word line WL1 is executed.

このように、LM-Foggy-Fineプログラムでは、各ワード線WLiにおいて、LMステージからFineステージまでには長時間を要する。例えば、ワード線WL1におけるLMステージからFineステージまでの間には、以下の(P1)~(P5)のステージのプログラムが実行される。
(P1)ワード線WL2に対するLMステージ
(P2)ワード線WL1に対するFoggyステージ
(P3)ワード線WL0に対するFineステージ
(P4)ワード線WL3に対するLMステージ
(P5)ワード線WL2に対するFoggyステージ
Thus, in the LM-Foggy-Fine program, it takes a long time from the LM stage to the Fine stage in each word line WLi. For example, the program of the following stages (P1) to (P5) is executed between the LM stage and the Fine stage on the word line WL1.
(P1) LM stage for word line WL2 (P2) Foggy stage for word line WL1 (P3) Fine stage for word line WL0 (P4) LM stage for word line WL3 (P5) Foggy stage for word line WL2

このように、1-3-3コーディングのLM-Foggy-Fineプログラムの場合、1つ目であるLMステージでは、入力データはLowerページだけである。ところが、この方法の場合、最終の3つ目であるFineステージのデータ入力が完了するまで、Lower/Middle/Upperの3ページ分のデータを、書き込みバッファ内に保持しておく必要がある。また、隣接メモリセル間干渉を低減するためには、複数のワード線WLiにおけるデータを、書き込みバッファ内に保持しておく必要がある。例えば、ワード線WL2に対してFoggyステージが実行される際には、ワード線WL1に対する3ページ分のデータと、ワード線WL2に対する3ページ分のデータと、ワード線WL3に対する1ページ分のデータとが、書き込みバッファ内に保持されている必要がある。このように、1-3-3コーディングのLM-Foggy-Fineプログラムの場合、最大7ページ分のデータが書き込みバッファ内に保持されている必要がある。 Thus, in the case of the 1-3-3 coding LM-Foggy-Fine program, the input data is only the Lower page in the first LM stage. However, in this method, it is necessary to hold the data for three pages of Lower/Middle/Upper in the write buffer until data input for the third and final Fine stage is completed. Also, in order to reduce interference between adjacent memory cells, it is necessary to hold data in a plurality of word lines WLi in a write buffer. For example, when the foggy stage is executed for the word line WL2, 3 pages of data for the word line WL1, 3 pages of data for the word line WL2, and 1 page of data for the word line WL3. must be held in the write buffer. Thus, in the case of the 1-3-3 coding LM-Foggy-Fine program, a maximum of 7 pages of data must be held in the write buffer.

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

そして、各ワード線WL0,WL1,WL2,・・・では、各ステージのデータ入力の際にデータを書き込みバッファ内に格納しておけばよく、プログラムが開始されると、書き込みバッファ内からデータが削除されてもよい。例えば、1stステージにおいてデータが入力されると、このデータは書き込みバッファ内に格納される。そして、1stステージにおいてプログラムが開始されると、書き込みバッファ内に格納しておいたデータは削除されてもよい。同様に、2ndステージにおいてデータが入力されると、このデータは書き込みバッファ内に格納される。そして、2ndステージにおいてプログラムが開始されると、書き込みバッファ内に格納しておいたデータは削除されてもよい。 In each word line WL0, WL1, WL2, . 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 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, the data stored in the write buffer may be deleted.

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

このように、本実施形態のプログラムは、2ステージなので、各ワード線WLiにおいて、1stステージから2ndステージまでの処理は短時間となる。例えば、ワード線WL1における1ステージから2ndステージまでの間には、以下の(P11)のステージのプログラムが実行される。
(P11)ワード線WL2に対する1stステージ
Thus, since the program of the present embodiment has two stages, the processing from the 1st stage to the 2nd stage is short for each word line WLi. For example, the program of the following stage (P11) is executed between the 1st stage and the 2nd stage on the word line WL1.
(P11) 1st stage for word line WL2

また、本実施形態のプログラムの場合、データ入力の開始からデータ入力の終了までの間だけデータを書き込みバッファ内に保持しておけばよく、プログラムが開始されると、書き込みバッファ内からデータが削除されてもよい。このため、本実施形態のプログラムの場合、書き込みバッファ内に保持しておく必要があるデータは、最大でも2ページ分のデータである。 Further, in the case of the program of this embodiment, it is only necessary to hold data in the write buffer from the start of data input until the end of data input, and when the program starts, the data is deleted from the write buffer. may be Therefore, in the case of the program of this embodiment, the data that needs to be held in the write buffer is at most two pages worth of data.

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

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

また、LM-Foggy-Fineプログラム又はFoggy-Fineプログラムが用いられるときは、全てのページデータのデータ転送を2回又は3回行なわなくてはならないので、転送時間が掛かり、また転送時の消費電力も余分に必要となる。本実施形態では、全てのページデータは、各ページそれぞれ1回のデータ転送で完了するため、転送時間及び電力消費を1/2~1/3程度に抑えることが可能になる。 Also, when the LM-Foggy-Fine program or the Foggy-Fine program is used, data transfer of all page data must be performed two or three times. is also required in excess. In this embodiment, all page data is completed by one data transfer for each page, so that the transfer time and power consumption can be reduced to about 1/2 to 1/3.

図11は、第1の実施形態に係る外部プログラムコマンドのシーケンスの例を示す図である。図11の(A)では、第1の実施形態に係る1stステージにおける外部プログラムコマンドのシーケンスを示し、図11の(B)では、第1の実施形態に係る2ndステージにおける外部プログラムコマンドのシーケンスを示している。 FIG. 11 is a diagram showing an example of a sequence of external program commands according to the first embodiment. FIG. 11A shows the sequence of external program commands in the 1st stage according to the first embodiment, and FIG. 11B shows the sequence of external program commands in the 2nd stage according to the first embodiment. showing.

図11の(A)に示すように、1stステージでは、プログラム開始コマンド(80h)が入力された後、プログラム対象ブロック・ページのアドレス(Lowerページのアドレス)が入力され、その後にLowerページのプログラムデータが入力される。そして、最後にプログラム実行コマンド(10h)が入力されると、チップがビジーとなりメモリチップ内部でプログラムの動作が開始される。このようなプログラムコマンドの入力により、Lowerページがプログラムされる。 As shown in FIG. 11A, in the 1st stage, after the program start command (80h) is input, the address of the block/page to be programmed (lower page address) is input, and then the lower page is programmed. Data is entered. Then, when the program execution command (10h) is finally input, the chip becomes busy and the program starts operating inside the memory chip. Inputting such a program command programs the Lower page.

図11の(B)に示すように、2ndステージでは、プログラム開始コマンド(80h)が入力された後、プログラム対象ブロック・ページのアドレス(Middleページのアドレス)が入力され、その後にMiddleページのプログラムデータが入力される。この後、プログラムコマンドの連結コマンド(1Ah)が入力され、同様のシーケンスで今度はUpperページのプログラムデータが入力される。そして、最後にプログラム実行コマンド(10h)が入力されると、チップがビジーとなりメモリチップ内部でプログラムの動作が開始される。このようなプログラムコマンドの入力により、Lowerページの読み出しが行われ、さらにMiddleページおよびUpperページがプログラムされる。なお、MiddleページのプログラムデータとUpperページのプログラムデータとは、何れが先に入力されてもよい。 As shown in FIG. 11B, in the 2nd stage, after the program start command (80h) is input, the address of the block/page to be programmed (middle page address) is input, and then the middle page program Data is entered. After that, a concatenation command (1Ah) of program commands is input, and program data for the Upper page is input in the same sequence. Then, when the program execution command (10h) is finally input, the chip becomes busy and the program starts operating inside the memory chip. By inputting such a program command, the Lower page is read, and the Middle page and Upper page are programmed. Either the program data for the Middle page or the program data for the Upper page may be input first.

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

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

一方、2ndステージまで完了したワード線WLiの場合、制御部22は、読み出しページが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 cells regardless of whether the read page is the Upper/Middle/Lower page. In this case, since the necessary read voltage differs depending on which page is read, the control unit 22 performs only necessary read according to the selected page.

図6に示したコーディングによれば、Lowerページデータが変化するしきい値状態間の境界は1つだけであるので、制御部22は、その境界で分離された2つの範囲の何れにしきい値が位置するかでデータを決定する。例えば、しきい値電圧がVr4よりも小さい場合には、制御部22は、メモリセルのデータとして“1”を出力する制御を行う。一方、しきい値電圧がVr4よりも大きい場合には、制御部22は、メモリセルのデータとして“0”を出力する制御を行う。 According to the coding shown in FIG. 6, there is only one boundary between the threshold states where the Lower page data changes, so the control unit 22 determines which of the two ranges separated by the boundary has a threshold value. The data is determined by whether the is located. For example, when the threshold voltage is lower than Vr4, 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 Vr4, the control unit 22 performs control to output "0" as data of the memory cell.

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

以下、ページ読み出しの具体的な処理手順について説明する。図12Aは、第1の実施形態に係る記憶装置において2ndステージ書き込み前の場合のワード線でのページ読み出しの処理手順を示すフローチャートである。図12Bは、第1の実施形態に係る記憶装置において2ndステージまでプログラムが完了しているワード線でのページ読み出しの処理手順を示すフローチャートである。 A specific processing procedure for page reading will be described below. FIG. 12A is a flow chart showing a processing procedure of page reading on word lines before 2nd stage writing in the storage device according to the first embodiment. FIG. 12B is a flow chart showing a processing procedure of page reading on a word line for which programming has been completed up to the 2nd stage in the memory device according to the first embodiment.

図12Aに示すように、2ndステージ書き込み前のワード線WLiの場合、制御部22は、読み出しページを選択する(ステップS510)。読み出しページがLowerページの場合(ステップS510、Lower)、制御部22は、Vr4のしきい値電圧で読み出しを行う(ステップS520)。そして、制御部22は、Vr4のしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS530)。 As shown in FIG. 12A, in the case of the word line WLi before the 2nd stage write, the control unit 22 selects the read page (step S510). If the page to be read is the Lower page (Step S510, Lower), the control unit 22 reads with the threshold voltage of Vr4 (Step S520). 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 Vr4 (step S530).

また、読み出しページがMiddleページの場合(ステップS510、Middle)、制御部22は、メモリセルの出力データとして全て強制的に“1”を出力する制御を行う(ステップS540)。 If the page to be read is the Middle page (step S510, Middle), the control unit 22 forcibly outputs "1" as the output data of the memory cells (step S540).

また、読み出しページがUpperページの場合(ステップS510、Upper)、制御部22は、メモリセルの出力データとして全て強制的に“1”を出力する制御を行う(ステップS550)。 If the read page is the Upper page (step S510, Upper), the control unit 22 forcibly outputs "1" as the output data of all the memory cells (step S550).

また、図12Bに示すように、2ndステージまでプログラムが完了したワード線WLiの場合、制御部22は、読み出しページを選択する(ステップS610)。読み出しページがLowerページの場合(ステップS610、Lower)、制御部22は、Vr4のしきい値電圧で読み出しを行う(ステップS620)。そして、制御部22は、Vr4のしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS630)。 Further, as shown in FIG. 12B, in the case of the word line WLi that has been programmed up to the 2nd stage, the control unit 22 selects the read page (step S610). If the page to be read is the Lower page (step S610, Lower), the control unit 22 reads at the threshold voltage of Vr4 (step S620). 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 Vr4 (step S630).

また、読み出しページがMiddleページの場合(ステップS610、Middle)、制御部22は、Vr1、Vr3およびVr6のしきい値電圧で読み出しを行う(ステップS640,S650,S660)。そして、制御部22は、Vr1、Vr3およびVr6のしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS670)。 If the page to be read is the Middle page (step S610, Middle), the control unit 22 reads at the threshold voltages of Vr1, Vr3 and Vr6 (steps S640, S650, S660). 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 Vr1, Vr3 and Vr6 (step S670).

また、読み出しページがUpperページの場合(ステップS610、Upper)、制御部22は、Vr2、Vr5およびVr7のしきい値電圧で読み出しを行う(ステップS680,S690,S700)。そして、制御部22は、Vr2、Vr5およびVr7のしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS710)。 If the page to be read is the Upper page (step S610, Upper), the control unit 22 performs the reading with threshold voltages Vr2, Vr5 and Vr7 (steps S680, S690, S700). 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 Vr2, Vr5 and Vr7 (step S710).

なお、ワード線WLiに対するプログラムが、2ndステージ書き込み完了前か後かは、メモリコントローラ1が管理・識別することが可能である。メモリコントローラ1が、プログラム制御を行っているので、メモリコントローラ1がその進捗状況を記録しておけば、メモリコントローラ1は、不揮発性メモリ2のどのアドレスがどのようなプログラム状態であるか容易に参照できる。この場合、メモリコントローラ1は、不揮発性メモリ2から読み出しを行う際、対象ページアドレスを含むワード線WLiがどのようなプログラム状態であるかを識別し、識別した状態に応じた読み出しコマンドを発行する。 The memory controller 1 can manage and identify whether the program for the word line WLi is before or after the completion of the 2nd stage write. Since the memory controller 1 performs program control, if the memory controller 1 records the progress, the memory controller 1 can easily determine which address in the nonvolatile memory 2 is in which program state. can refer to. In this case, when reading from the nonvolatile memory 2, the memory controller 1 identifies what program state the word line WLi including the target page address is in, and issues a read command according to the identified state. .

図13は、第1の実施形態に係る外部読み出しコマンドのシーケンスの例を示す図である。図13の(A)では、第1の実施形態に係る記憶装置において1stステージまでプログラムが完了しているワード線WLiでの外部読み出しコマンドのシーケンスを示し、図13の(B)では、第1の実施形態に係る記憶装置において2ndステージまでプログラムが完了しているワード線WLiでの外部読み出しコマンドのシーケンスを示している。 FIG. 13 is a diagram showing an example of a sequence of external read commands according to the first embodiment. FIG. 13A shows the sequence of external read commands on the word line WLi for which programming has been completed up to the 1st stage in the storage device according to the first embodiment, and FIG. 2 shows a sequence of external read commands on the word line WLi for which programming has been completed up to the 2nd stage in the storage device according to the embodiment of FIG.

図13の(A)に示すように、2ndステージ書き込み前のワード線WLiの場合、読み出し動作を実行するコマンドとして、最初に2ndステージ書き込み前の状態を示すコマンド(2Dh)が入力される。この後、読み出し開始コマンド(00h)が入力され、その後に読み出し対象ブロック・ページのアドレス(LowerページまたはMiddleページまたはUpperページのアドレス)が入力される。そして、最後に読出し実行コマンド(30h)が入力されると、チップがビジーとなり、メモリチップ内部で読み出しの動作が開始される。このようなプログラムコマンドの入力により、LowerページまたはMiddleページまたはUpperページからデータが読み出される。その後、チップがレディー状態となり、読み出されたデータが出力される。 As shown in FIG. 13A, in the case of the word line WLi before the 2nd stage write, a command (2Dh) indicating the state before the 2nd stage write is first input as a command for executing the read operation. After that, a read start command (00h) is input, and then the address of the block/page to be read (lower page, middle page, or upper page address) is input. Finally, when the read execution command (30h) is input, the chip becomes busy and the read operation starts inside the memory chip. Data is read from the Lower page, Middle page, or Upper page by inputting such a program command. The chip is then ready to output the read data.

一方、図13の(B)に示すように、2ndステージまでプログラムが完了したワード線WLiの場合、読み出し動作を実行するコマンドとして、最初に2ndステージまでの完了状態を示すコマンド(25h)が入力される。この後、読み出し開始コマンド(00h)が入力され、その後に読み出し対象ブロック・ページのアドレス(LowerページまたはMiddleページまたはUpperページのアドレス)が入力される。そして、最後に読出し実行コマンド(30h)が入力されると、チップがビジーとなり、メモリチップ内部で読み出しの動作が開始される。このようなプログラムコマンドの入力により、LowerページまたはMiddleページまたはUpperページのアドレスからデータが読み出される。その後、チップがレディー状態となり、読み出されたデータが出力される。 On the other hand, as shown in FIG. 13B, in the case of the word line WLi for which programming has been completed up to the 2nd stage, a command (25h) indicating the completion state up to the 2nd stage is first input as a command for executing the read operation. be done. After that, a read start command (00h) is input, and then the address of the block/page to be read (lower page, middle page, or upper page address) is input. Finally, when the read execution command (30h) is input, the chip becomes busy and the read operation starts inside the memory chip. By inputting such a program command, data is read from the address of the Lower page, Middle page or Upper page. The chip is then ready to output the read data.

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

また、ワード線WLiをまたぎながら、各プログラムステージを実行するので、隣接ワード線WLiとの隣接セル間干渉の量を低減することができる。また、1-3-3データコーディングを用いるので、2ndステージの前のIDLマージンを拡大することができ、書き込みシーケンスの信頼性を向上することが可能となる。また、1-3-3データコーディングを用いるので、Lowerページにおけるしきい値境界を1つとすることにより、1stステージのプログラム、すなわちLowerページのプログラムを高速化することができる。なお、1stステージのプログラムの高速化は、書き込み及び書き込みベリファイの繰り返しときに、書き込み電圧を少しずつステップアップさせて書き込むときのステップ電圧を、2ndステージのプログラム時より大きい値にするなどで高速化ができる。 Moreover, since each program stage is executed while straddling word lines WLi, the amount of interference between adjacent cells with adjacent word lines WLi can be reduced. Also, since 1-3-3 data coding is used, the IDL margin before the 2nd stage can be expanded, and the reliability of the write sequence can be improved. Also, since 1-3-3 data coding is used, the 1st stage program, that is, the Lower page program can be speeded up by setting the threshold boundary to one in the Lower page. The programming speed of the 1st stage is increased by stepping up the write voltage little by little when writing and writing verify are repeated, and setting the step voltage to a value higher than that of the 2nd stage programming. can be done.

(第2の実施形態)
つぎに、図14A,14Bおよび図15を用いて第2の実施形態について説明する。第2の実施形態では、ワード線WLn-1の2ndステージのプログラムと、ワード線WLnの1stステージのプログラムとをまとめて行う。なお、本実施形態でも第1の実施形態の図6で説明したものと同じデータコーディングを用いる場合について説明する。
(Second embodiment)
Next, a second embodiment will be described with reference to FIGS. 14A, 14B and 15. FIG. In the second embodiment, the 2nd stage programming of the word line WLn−1 and the 1st stage programming of the word line WLn are collectively performed. In this embodiment, the case where the same data coding as that explained in FIG. 6 of the first embodiment is used will be explained.

図9Aに示したプログラムのフローチャートでは、1stステージのプログラムと2ndステージのプログラムとは、全て1つずつ分離しており、それぞれのプログラムの際にそれぞれのプログラムコマンドとプログラムデータ入力が行なわれている。本実施形態では、このプログラムコマンドおよびプログラムデータ入力をなるべくまとめる。 In the flowchart of the program shown in FIG. 9A, the 1st stage program and the 2nd stage program are all separated one by one, and each program command and program data are input during each program. . In this embodiment, this program command and program data input are collected as much as possible.

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

このように、プログラムコマンドおよびプログラムデータの入力がまとめられることにより、メモリコントローラ1が行う制御におけるコマンド入力やポーリング(チップビジーがレディーに戻ったか否かの定期的なチェック)の頻度が減少し、記憶装置としての高速化・簡易化が可能となる。 By combining the input of program commands and program data in this way, the frequency of command input and polling (regular checking of whether the chip busy has returned to ready) in the control performed by the memory controller 1 is reduced. Higher speed and simplification as a storage device are possible.

ここで図14Aおよび図14Bを用いて、第2の実施形態に係るプログラム順序に従った書き込み手順の一例について説明する。図14Aおよび図14Bでは、図8Bに示すプログラム順序に従った場合の書き込み手順を示している。なお、図14Aまたは図14Bに示す処理のうち、図9A~図9Cで説明した処理と同様の処理については、その説明を省略する。 An example of the write procedure according to the program order according to the second embodiment will now be described with reference to FIGS. 14A and 14B. 14A and 14B show the write procedure when following the program order shown in FIG. 8B. 14A or 14B, descriptions of the same processes as those described with reference to FIGS. 9A to 9C will be omitted.

図14Aは、第2の実施形態に係る1ブロック分全体の書き込み手順を示すフローチャートである。ここでの1ブロックは、ワード線WL0~WLn(nは自然数)のn+1本のワード線WLiを有するとする。また、図14Bは、第2の実施形態に係る1stステージおよび2ndステージにおける書き込み手順を示すサブフローチャートである。なお、図14Aの各ステップの右に示した(1st)は、図9Bに示す1stステージに対応し、(2nd)は、図9Cに示す2ndステージに対応し、(1,2)は、図14Bに示す1stステージおよび2ndステージに対応している。 FIG. 14A is a flow chart showing a procedure for writing an entire block according to the second embodiment. Here, one block has n+1 word lines WLi of word lines WL0 to WLn (n is a natural number). FIG. 14B is a sub-flowchart showing write procedures in the 1st stage and the 2nd stage according to the second embodiment. Note that (1st) shown to the right of each step in FIG. 14A corresponds to the 1st stage shown in FIG. 9B, (2nd) corresponds to the 2nd stage shown in FIG. It corresponds to the 1st stage and the 2nd stage shown in 14B.

図14Aに示すように、書き込みを開始すると、制御部22は、ステップS10~S30と同様の処理であるステップS810~S830の処理を実行する。これにより、ストリングSt0~St3のワード線WL0の1stステージのプログラムが実施される。 As shown in FIG. 14A, when writing is started, the control unit 22 executes steps S810 to S830, which are similar to steps S10 to S30. As a result, the 1st stage programming of the word line WL0 of the strings St0 to St3 is performed.

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

そして、制御部22は、ストリングSt0_ワード線WLnの1stステージのプログラムと、ストリングSt0_ワード線WLn-1の2ndステージのプログラムを実施する(ステップS870)。次に、制御部22は、ストリングSt1_ワード線WLnの1stステージのプログラムと、ストリングSt1_ワード線WLn-1の2ndステージのプログラムを実施する(ステップS880)。この後、制御部22は、各ストリングの各ワード線WLiに対してステップS870,S880のような処理を繰り返す。 Then, the control unit 22 executes the 1st stage programming of the string St0_word line WLn and the 2nd stage programming of the string St0_word line WLn-1 (step S870). Next, the control unit 22 executes the 1st stage programming of the string St1_word line WLn and the 2nd stage programming of the string St1_word line WLn−1 (step S880). Thereafter, the control unit 22 repeats the processing like steps S870 and S880 for each word line WLi of each string.

そして、制御部22は、ストリングSt3_ワード線WLnの1stステージのプログラムと、ストリングSt3_ワード線WLn-1の2ndステージのプログラムを実施する(ステップS890)。次に、制御部22は、ステップS100~S120と同様の処理であるステップS900~S920の処理を実行する。これにより、ストリングSt0~St3のワード線WLnの2ndステージのプログラムが実施される。 Then, the control unit 22 executes the 1st stage programming of the string St3_word line WLn and the 2nd stage programming of the string St3_word line WLn−1 (step S890). Next, the control unit 22 executes the processes of steps S900 to S920, which are the same processes as steps S100 to S120. As a result, the word lines WLn of the strings St0 to St3 are programmed in the 2nd stage.

このように、ブロックの先頭では第1の実施形態と同様に1stステージのみのプログラムが実施され、ブロックの最後では第1の実施形態と同様に2ndステージのみのプログラムが実施される。この場合において、1stステージのみのプログラムは、図9Bに示した手順に従って実行され、2ndステージのみのプログラムは、図9Cに示した手順に従って実行される。 Thus, at the beginning of the block, only the 1st stage is programmed as in the first embodiment, and at the end of the block, as in the first embodiment, only the 2nd stage is programmed. In this case, the program for only the 1st stage is executed according to the procedure shown in FIG. 9B, and the program for only the 2nd stage is executed according to the procedure shown in FIG. 9C.

図14Bに示すように、1stステージおよび2ndステージのプログラムでは、2ndステージのプログラムが実行された後に、続けて1stステージのプログラムが実行される。具体的には、まず、メモリコントローラ1から不揮発性メモリ2へ、ワード線WLn-1のMiddleページのデータの入力開始コマンドが入力される(ステップS1010)。そして、メモリコントローラ1から不揮発性メモリ2へ、ワード線WLn-1のMiddleページのデータが入力される(ステップS1020)。 As shown in FIG. 14B, in the 1st stage and 2nd stage programs, the 1st stage program is executed continuously after the 2nd stage program is executed. Specifically, first, a command to start inputting middle page data of the word line WLn-1 is input from the memory controller 1 to the nonvolatile memory 2 (step S1010). Then, data of the Middle page of the word line WLn−1 is input from the memory controller 1 to the nonvolatile memory 2 (step S1020).

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

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

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

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

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

そして、ワード線WLn-1のLowerページデータに基づいて、MiddleページおよびUpperページのプログラム先のVth(しきい値電圧)が決定される(ステップS1130)。この後、決定されたVthを用いて、ワード線WLn-1のMiddleページおよびUpperページへのデータ書き込みが行われる。 Then, based on the lower page data of the word line WLn-1, Vth (threshold voltage) of the program destination of the middle page and upper page is determined (step S1130). Thereafter, using the determined Vth, data is written to the Middle page and Upper page of word line WLn-1.

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

さらに、MiddleページおよびUpperページにおけるデータのフェイルビット数がクライテリアよりも小さいか否かが確認される(ステップS1160)。MiddleページおよびUpperページにおけるデータのフェイルビット数がクライテリア以上である場合(ステップS1160、No)、ステップS1140~S1160の処理が繰り返される。そして、データのフェイルビット数がクライテリアよりも小さくなると(ステップS1160、Yes)、チップレディーとなる(ステップS1170)。 Furthermore, it is checked whether the number of fail bits of data in the Middle page and Upper page is smaller than the criteria (step S1160). If the number of fail bits of data in the middle page and the upper page is equal to or greater than the criteria (step S1160, No), the processes of steps S1140 to S1160 are repeated. Then, when the number of fail bits of data becomes smaller than the criteria (step S1160, Yes), the chip is ready (step S1170).

なお、ステップS1010,S1030,S1050の処理は、何れが先に行われてもよい。また、ステップS1020,S1040,S1060の処理は、何れが先に行われてもよい。ただし、ステップS1020の処理は、ステップS1010の処理の後に行われ、ステップS1040の処理は、ステップS1030の処理の後に行われ、ステップS1060の処理は、ステップS1050の処理の後に行われる。 Note that any of the processes of steps S1010, S1030, and S1050 may be performed first. Moreover, any of the processes of steps S1020, S1040, and S1060 may be performed first. However, the process of step S1020 is performed after the process of step S1010, the process of step S1040 is performed after the process of step S1030, and the process of step S1060 is performed after the process of step S1050.

なお、図14Bに示したステップS1120~S1160までの処理が、ワード線WLn-1の2ndステージのプログラムに対応し、ステップS1090~S1110までの処理が、ワード線WLnの1stステージのプログラムに対応している。 The processing from steps S1120 to S1160 shown in FIG. 14B corresponds to the 2nd stage programming of the word line WLn-1, and the processing from steps S1090 to S1110 corresponds to the 1st stage programming of the word line WLn. ing.

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

このように、本実施形態では、ワード線WLn-1のMiddleページおよびUpperページのデータと、ワード線WLnのLowerページのデータとの3ページ分のデータが連続して入力される。 As described above, in this embodiment, three pages of data, that is, data of the Middle page and Upper page of the word line WLn−1 and data of the Lower page of the word line WLn are continuously input.

図15は、第2の実施形態に係る外部プログラムコマンドのシーケンスの例を示す図である。なお、1stステージにおける外部プログラムコマンドのシーケンスは、図11の(A)に示したものと同じである。また、2ndステージにおける外部プログラムコマンドのシーケンスは図11の(B)に示したものと同じである。したがって、ここでは、2ndステージと1stステージとが連続してプログラムされる際の外部プログラムコマンドのシーケンスについて説明する。1stステージと2ndステージとが連続してプログラムされる場合には、2ndステージのコマンドと1stステージのコマンドとが連続して入力される。 FIG. 15 is a diagram showing an example of a sequence of external program commands according to the second embodiment. The sequence of external program commands in the 1st stage is the same as that shown in FIG. 11(A). The sequence of external program commands in the 2nd stage is the same as that shown in FIG. 11(B). Therefore, here, the sequence of external program commands when the 2nd stage and the 1st stage are programmed continuously will be described. When the 1st stage and the 2nd stage are programmed continuously, the command for the 2nd stage and the command for the 1st stage are input continuously.

具体的には、図15に示すように、プログラム開始コマンド(80h)が入力された後、プログラム対象ブロック・ページのアドレス(ワード線WLn-1のMiddleページのアドレス)が入力され、その後にワード線WLn-1のMiddleページのプログラムデータが入力される。この後、プログラムコマンドの連結コマンド(1Ah)が入力され、同様のシーケンスで今度はワード線WLn-1のUpperページのプログラムデータが入力される。そして、プログラムコマンドの連結コマンド(1Ah)が入力され、同様のシーケンスで今度はワード線WLnのLowerページのプログラムデータが入力される。そして、最後にプログラム実行コマンド(10h)が入力されると、チップがビジーとなりメモリチップ内部でプログラムの動作が開始される。 Specifically, as shown in FIG. 15, after the program start command (80h) is input, the address of the block/page to be programmed (the address of the middle page of the word line WLn-1) is input, and then the word Middle page program data on line WLn-1 is input. After that, a concatenation command (1Ah) of program commands is input, and program data of the Upper page of the word line WLn-1 is input in the same sequence. Then, a concatenation command (1Ah) of program commands is input, and program data of the Lower page of the word line WLn is input in the same sequence. Then, when the program execution command (10h) is finally input, the chip becomes busy and the program starts operating inside the memory chip.

このようなプログラムコマンドの入力により、ワード線WLnのLowerページがプログラムされる。また、IDLとして、ワード線WLn-1のLowerページデータの読み出しが行われる。そして、Lowerページデータに基づいて、MiddleページおよびUpperページのプログラム先のVthが決定され、決定されたVthでワード線WLn-1のMiddleページおよびUpperページがプログラムされる。 Inputting such a program command programs the lower page of the word line WLn. Also, as IDL, the lower page data of word line WLn−1 is read. Then, based on the lower page data, the Vth of the program destination of the Middle page and the Upper page is determined, and the Middle page and the Upper page of the word line WLn-1 are programmed with the determined Vth.

また、別の変形例として、プログラムコマンドの入力後、IDLとして、ワード線WLn-1のLowerページデータの読み出しを先に行なった後に、ワード線WLnのLowerページがプログラムを行い、次に、MiddleページおよびUpperページのプログラム先のVthが決定され、決定されたVthでワード線WLnのMiddleページおよびUpperページのプログラムを行なうこともできる。このようにすると、ワード線WLnの書込みによる隣接セル間干渉を受ける前に、IDLのワード線WLn-1のLowerページデータの読み出しができる。 As another modification, after the program command is input, the IDL first reads the lower page data of the word line WLn-1, then programs the lower page of the word line WLn, and then performs the middle page data reading. The Vth of the program destination of the page and the upper page is determined, and the programming of the Middle page and the Upper page of the word line WLn can be performed with the determined Vth. By doing so, the lower page data of the word line WLn-1 of the IDL can be read before interference between adjacent cells due to the writing of the word line WLn.

なお、本実施形態における、ワード線WLnの1stステージとワード線WLn-1の2ndステージとのひとまとめのコマンドによるプログラムの実際の実行順番は変形が可能である。すなわち、図15に示したワード線WLnのLowerページのプログラムと、IDLとしてのワード線WLn-1のLowerページデータの読み出しとは、何れが先でもよく、入れ替えが可能である。IDL(ワード線WLn-1のLowerページデータの読み出し)がワード線WLnのLowerページのプログラムよりも前に行なわれることで、ワード線WLnのLowerページのプログラムによる影響を受けることなくIDLが可能となる。 In the present embodiment, the actual execution order of the program by collective 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 of the word line WLn and the reading of the lower page data of the word line WLn-1 as the IDL shown in FIG. By performing IDL (reading lower page data of word line WLn−1) before programming the lower page of word line WLn, IDL can be performed without being affected by the programming of the lower page of word line WLn. Become.

このように第2の実施形態では、ワード線WLn-1の2ndステージのプログラムと、ワード線WLnの1stステージのプログラムとをまとめて行うので、コマンド入力やポーリングの頻度が減少する。したがって、記憶装置の高速化および簡易化が可能となる。 As described above, in the second embodiment, the 2nd stage programming of the word line WLn-1 and the 1st stage programming of the word line WLn are collectively performed, so that the frequency of command input and polling is reduced. Therefore, it is possible to speed up and simplify the storage device.

(第3の実施形態)
つぎに、図16~図19を用いて第3の実施形態について説明する。第3の実施形態では、2ndステージのプログラムを実行する際に、Vth分布状態を領域D以上とする予定のメモリセルに対して最初にプログラムを実行し、その後、Vth分布状態を領域C以下とする予定のメモリセルに対してプログラムを実行する。なお、本実施形態でも第1の実施形態の図6で説明したものと同じデータコーディングを用いる場合について説明する。
(Third Embodiment)
Next, a third embodiment will be described with reference to FIGS. 16 to 19. FIG. In the third embodiment, when executing the programming of the second stage, the memory cells whose Vth distribution is expected to be in the region D or higher are first programmed, and then the Vth distribution is set to be in the region C or lower. Execute the program for the memory cells to be programmed. In this embodiment, the case where the same data coding as that explained in FIG. 6 of the first embodiment is used will be explained.

多ビット/cellのプログラムにおいて、プログラム実行中に突然の電源遮断が発生すると、データが破壊される。このような場合、電源遮断が発生した際に実行していたプログラムの対象のプログラムデータの情報がメモリセルから失われる。このような場合、既にプログラムが完了して、メモリコントローラ1の書き込みバッファからデータが破棄されたような過去のプログラムデータも失われてしまう場合がある。この結果、データ復旧が不可能となってしまう。 In a multi-bit/cell program, data will be destroyed if a sudden power cutoff occurs during execution of the program. In such a case, the information of the program data that was being executed when the power was interrupted is lost from the memory cells. In such a case, past program data that has already been programmed and has been discarded from the write buffer of the memory controller 1 may also be lost. As a result, data recovery becomes impossible.

このような事象は、2ndステージのMiddle/Upperページのプログラムの途中で電源遮断が起きると発生する。この状況について説明する。図16は、電源遮断に起因するデータ破壊を説明するための図である。図16の(T11)は、1stステージのプログラムが完了した後のVth分布状態(データ状態)を示している。また、図16の(T12)は、2ndステージのプログラム途中のVth分布状態を示している。また、図16の(T13)は、電源遮断後のVth分布状態を示している。 Such an event occurs when power is cut off during the middle/upper page program of the 2nd stage. I will explain this situation. FIG. 16 is a diagram for explaining data destruction caused by power shutdown. (T11) in FIG. 16 shows the Vth distribution state (data state) after the 1st stage programming is completed. (T12) in FIG. 16 shows the Vth distribution state during programming of the 2nd stage. Also, (T13) in FIG. 16 shows the Vth distribution state after the power is cut off.

図16の(T11)に示したような1stステージのプログラムが完了した後に、2ndステージのプログラムが開始され、図16の(T12)に示すようなVth分布状態となる。そして、図16の(T12)に示すような書き込み途中のVth分布状態の時に、電源遮断が発生すると、図16の(T13)に示すようなVth分布状態となる。 After the 1st stage program as shown at (T11) in FIG. 16 is completed, the 2nd stage program is started, and the Vth distribution state is as shown in FIG. 16 (T12). When the power supply is cut off while the Vth distribution is in the middle of writing as shown in FIG. 16(T12), the Vth distribution becomes as shown in FIG. 16(T13).

ここで、1stステージ完了後の状態から2ndステージのプログラムを開始することを考える。一般的にNANDメモリの内部では、低いVthから高いVthへと順番にプログラムが実行される。そのため、図16の(T12)に示すように、途中まで2ndステージのプログラムが進行したところで、電源遮断が発生すると、図16の(T13)に示したようなVth分布状態となる。 Here, consider starting the program of the 2nd stage from the state after the completion of the 1st stage. Generally, inside the NAND memory, programs are executed in order from low Vth to high Vth. Therefore, as shown in (T12) of FIG. 16, when the program of the 2nd stage has progressed halfway, if the power supply is interrupted, the Vth distribution becomes as shown in (T13) of FIG.

ここで正の分布に含まれるメモリセルは、Lowerページデータが“1”であったメモリセルと“0”であったメモリセルとが混在した状態である。このため、この状態において既にプログラムが完了しているLowerページデータを読み出しても、正しい読み出しデータは得られない。なお、2ndステージのプログラム完了後の読み出し電圧を用いても、正しいLowerページデータは得られない。 Here, the memory cells included in the positive distribution are in a state where the memory cells whose lower page data are "1" and the memory cells whose lower page data are "0" are mixed. Therefore, even if the lower page data whose programming has already been completed is read in this state, correct read data cannot be obtained. It should be noted that correct lower page data cannot be obtained even if the read voltage after the completion of programming in the 2nd stage is used.

そこで、本実施形態では、2ndステージのMiddle/UpperページのプログラムのVth順序を変更する。図17は、第3の実施形態に係る2ndステージのプログラムを説明するための図である。図17では、2ndステージにおけるVth状態の遷移方法を示している。図17の(T21)は、1stステージのプログラムが完了した後のVth分布状態を示している。また、図17の(T22)は、2ndステージの前半のプログラムが完了した時点でのVth分布状態を示している。また、図17の(T23)は、2ndステージの後半のプログラムが完了した時点でのVth分布状態を示している。 Therefore, in this embodiment, the Vth order of the programs in the Middle/Upper pages of the 2nd stage is changed. FIG. 17 is a diagram for explaining the 2nd stage program according to the third embodiment. FIG. 17 shows a Vth state transition method in the 2nd stage. (T21) in FIG. 17 shows the Vth distribution state after the 1st stage programming is completed. (T22) in FIG. 17 shows the Vth distribution state at the time when the programming of the first half of the 2nd stage is completed. Also, (T23) in FIG. 17 shows the Vth distribution state at the time when the programming of the latter half of the 2nd stage is completed.

本実施形態の制御部22は、図17の(T21)に示す1stステージが完了すると、図17の(T22)に示すように、書き込み目的地のVth分布状態が領域D以上となるメモリセルを最初にプログラム(D-Firstプログラム)する。そして、制御部22は、領域D~GまでのVth分布状態のプログラムを完了させた後、図17の(T23)に示すように、領域A~CのVth分布状態のプログラムを実行する。 When the 1st stage shown in (T21) in FIG. 17 is completed, the control unit 22 of the present embodiment selects memory cells in which the Vth distribution state of the write destination is greater than or equal to region D, as shown in (T22) in FIG. Program first (D-First program). Then, after completing the programming of the Vth distribution state for the regions D to G, the control unit 22 executes the programming for the Vth distribution state of the regions A to C as shown in (T23) of FIG.

このように、本実施形態の制御部22は、書き込み目的地のVth分布状態を領域D以上にさせるメモリセルへのプログラムを領域C以下にさせるメモリセルへのプログラムよりも先に開始する。そして、書き込み目的地のVth分布状態を領域D以上にさせるメモリセルへのプログラムを完了させた後、領域C以下にさせるメモリセルへのプログラムを完了させる。 In this manner, the control unit 22 of the present embodiment starts programming the memory cells that cause the Vth distribution state of the write destination to be in the region D or higher before programming the memory cells that cause the Vth distribution state in the region C or lower. Then, after completing the programming of the memory cells that cause the Vth distribution state of the write destination to be the region D or more, the programming of the memory cells that is the region C or less is completed.

これにより、Lowerページデータが“1”であったメモリセルと“0”であったメモリセルとが混在した状態となるタイミングが発生しなくなる。したがって、たとえ2ndステージで電源遮断が発生したとしても、Vr1またはVr4の何れかの読み出し電圧を用いることによって、制御部22は、Lowerページデータを読み出すことが可能となる。 As a result, the timing in which memory cells whose lower page data is "1" and memory cells whose lower page data is "0" do not occur. Therefore, even if a power cutoff occurs in the 2nd stage, the control unit 22 can read the Lower page data by using either the read voltage Vr1 or Vr4.

図18は、第3の実施形態に係る2ndステージでの書き込み手順を示すフローチャートである。なお、図9Cで説明した処理と同様の処理については、その説明を省略する。第3の実施形態に係る2ndステージのステップS1210~S1280は、図9Cに示した第1の実施形態に係る2ndステージのステップS310~S380と同じである。 FIG. 18 is a flow chart showing a write procedure in the 2nd stage according to the third embodiment. It should be noted that descriptions of the same processes as those described with reference to FIG. 9C will be omitted. Steps S1210 to S1280 of the second stage according to the third embodiment are the same as steps S310 to S380 of the second stage according to the first embodiment shown in FIG. 9C.

MiddleページおよびUpperページのプログラム先のVthが決定された後(ステップS1280)、決定されたVthを用いて、MiddleページおよびUpperページへのデータ書き込みが行われる。 After the Vth of the program destination of the Middle page and Upper page is determined (step S1280), data is written to the Middle page and Upper page using the determined Vth.

第3の実施形態に係る2ndステージでは、MiddleページおよびUpperページへのデータ書き込みの際に、領域D~Gとさせるメモリセルに対し、1~複数回のプログラム電圧パルスが印加される(ステップS1290)。そして、メモリセルがしきい値境界レベルを超えて移動したか否かを確認するために、MiddleページおよびUpperページの領域D~Gに対してデータ読み出しが行なわれる(ステップS1300)。 In the 2nd stage according to the third embodiment, when data is written to the Middle page and Upper page, a program voltage pulse is applied one to a plurality of times to the memory cells that are to be regions D to G (step S1290 ). Then, in order to confirm whether or not the memory cell has moved beyond the threshold boundary level, data is read from regions D to G of the Middle and Upper pages (step S1300).

さらに、MiddleページおよびUpperページにおける領域D~Gでのデータのフェイルビット数がクライテリアよりも小さいか否かが確認される(ステップS1310)。MiddleページおよびUpperページにおける領域D~Gでのデータのフェイルビット数がクライテリア以上である場合(ステップS1310、No)、ステップS1290~S1310の処理が繰り返される。 Further, it is checked whether the number of fail bits of data in areas D to G in the Middle page and Upper page is smaller than the criteria (step S1310). If the number of fail bits of data in areas D to G of the middle page and upper page is equal to or greater than the criteria (step S1310, No), the processes of steps S1290 to S1310 are repeated.

そして、MiddleページおよびUpperページにおける領域D~Gでのデータのフェイルビット数がクライテリアよりも小さくなると(ステップS1310、Yes)、MiddleページおよびUpperページにおける領域A~Cへの書き込みを行う。具体的には、MiddleページおよびUpperページへのデータ書き込みの際に、領域A~Cとさせるメモリセルに対し、1~複数回のプログラム電圧パルスが印加される(ステップS1320)。そして、メモリセルがしきい値境界レベルを超えて移動したか否かを確認するために、MiddleページおよびUpperページの領域A~Cに対してデータ読み出しが行なわれる(ステップS1330)。 Then, when the number of fail bits of data in areas D to G of the Middle page and Upper page becomes smaller than the criteria (step S1310, Yes), writing is performed to areas A to C of the Middle page and Upper page. Specifically, when data is written to the Middle page and Upper page, one to a plurality of program voltage pulses are applied to the memory cells to be assigned to areas A to C (step S1320). Then, in order to confirm whether or not the memory cell has moved beyond the threshold boundary level, data is read from areas A to C of the Middle page and Upper page (step S1330).

さらに、MiddleページおよびUpperページにおける領域A~Cでのデータのフェイルビット数がクライテリアよりも小さいか否かが確認される(ステップS1340)。MiddleページおよびUpperページにおける領域A~Cでのデータのフェイルビット数がクライテリア以上である場合(ステップS1340、No)、ステップS1320~S1340が繰り返される。 Further, it is checked whether the number of fail bits of data in areas A to C in the Middle page and Upper page is smaller than the criteria (step S1340). If the number of fail bits of data in areas A to C of the middle page and upper page is equal to or greater than the criteria (step S1340, No), steps S1320 to S1340 are repeated.

そして、MiddleページおよびUpperページにおける領域A~Cでのデータのフェイルビット数がクライテリアよりも小さくなると(ステップS1350、Yes)、チップレディーとなる(ステップS1350)。 Then, when the number of fail bits of data in areas A to C of the Middle page and Upper page becomes smaller than the criteria (step S1350, Yes), the chip is ready (step S1350).

なお、本実施形態では、2ndステージのプログラムの前半で、領域D~GまでのVth分布状態のプログラムを完了させたが、目的地が領域D~GまでのVth分布状態のメモリセルを、完全に終わらせる必要は無い。この場合、制御部22は、一旦領域D程度のVth分布状態までのプログラムにとどめておく。その後、制御部22は、領域A~Cのプログラムと、プログラム途中であった領域D~Gのプログラムとを順番に実行する。 In this embodiment, programming of the Vth distribution states of the regions D to G is completed in the first half of the programming of the 2nd stage. It doesn't have to end in In this case, the control unit 22 temporarily leaves the program up to the Vth distribution state of the region D or so. After that, the control unit 22 sequentially executes the programs of the areas A to C and the programs of the areas D to G which were in the middle of the programming.

図19は、第3の実施形態に係る2ndステージのプログラム変形例を説明するための図である。図19では、2ndステージにおけるVth状態の遷移方法(変形例)を示している。図19の(T31)は、1stステージのプログラムが完了した後のVth分布状態を示している。また、図19の(T32)は、2ndステージの前半のプログラムが完了した時点でのVth分布状態を示している。また、図19の(T33)は、2ndステージの後半のプログラムが完了した時点でのVth分布状態を示している。 FIG. 19 is a diagram for explaining a program modification of the 2nd stage according to the third embodiment. FIG. 19 shows a Vth state transition method (modification) in the 2nd stage. (T31) in FIG. 19 shows the Vth distribution state after the 1st stage programming is completed. Also, (T32) in FIG. 19 shows the Vth distribution state at the time when the programming of the first half of the 2nd stage is completed. Also, (T33) in FIG. 19 shows the Vth distribution state at the time when the programming of the latter half of the 2nd stage is completed.

本実施形態の制御部22は、図19の(T31)に示す1stステージが完了すると、制御部22は、図19の(T32)に示すように、領域D程度のVth分布状態までプログラムを実行する。その後、制御部22は、領域ErのVth分布状態を用いて、領域A~Cのプログラムを実行する。さらに、制御部22は、領域D程度のVth分布状態(プログラム途中のVth分布状態)を用いて、領域D~Gのプログラムを実行する。 When the 1st stage shown in (T31) of FIG. 19 is completed, the control unit 22 of the present embodiment executes the program up to the Vth distribution state of about region D as shown in (T32) of FIG. do. After that, the control unit 22 executes the programs of the regions A to C using the Vth distribution state of the region Er. Further, the control unit 22 uses the Vth distribution state of about the region D (the Vth distribution state in the middle of the program) to execute the program of the regions D to G. FIG.

この図19に示す方法の場合も、図17に示す方法の場合と同様に、Lowerページデータが“1”であったメモリセルと“0”であったメモリセルとが混在した状態となるタイミングが発生しなくなる。したがって、たとえ2ndステージで電源遮断が発生したとしても、Vr1またはVr4の何れかの読み出し電圧を用いることによって、制御部22は、Lowerページデータを読み出すことが可能となる。 In the case of the method shown in FIG. 19, as in the case of the method shown in FIG. will no longer occur. Therefore, even if a power cutoff occurs in the 2nd stage, the control unit 22 can read the Lower page data by using either the read voltage Vr1 or Vr4.

このように、制御部22は、書き込み目的地のVth分布状態を領域D以上にさせるメモリセルへのしきい値分布を、領域Er~Cまでのしきい値領域に重ならない位置まで移動させた後、領域Er~Gにさせるメモリセルへのプログラムを完了させる。 In this way, the control unit 22 moves the threshold distribution for the memory cells that cause the Vth distribution state of the write destination to be greater than or equal to the region D to a position that does not overlap the threshold regions of the regions Er to C. After that, programming to the memory cells in the regions Er to G is completed.

このように第3の実施形態では、2ndステージのプログラムの際に、上位のVth分布を先にプログラムするので、不正電源遮断に起因する書き込み済みデータの巻き添え破壊を防止することができ、この結果、記憶装置の信頼性を向上させることが可能となる。 As described above, in the third embodiment, when programming the second stage, the upper Vth distribution is programmed first, so collateral destruction of written data due to illegal power shutdown can be prevented. , it is possible to improve the reliability of the storage device.

なお、第1~第3の実施形態では、図6で説明したものと同じ1-3-3データコーディングを用いる場合について説明したが、他の1-3-3データコーディングが用いられてもよい。ただし、1-3-3データコーディングにおいて、Lowerページデータの境界が1箇所であるという条件がある。 In the first to third embodiments, the case of using the same 1-3-3 data coding as that described with reference to FIG. 6 has been described, but other 1-3-3 data coding may be used. . However, in 1-3-3 data coding, there is a condition that the lower page data has one boundary.

図20は、1-3-3データコーディングの他の例を示す図である。図20の(A)に示す1-3-3データコーディングの変形例1では、しきい値電圧とデータ値との関係は、以下に示す通りである。
・しきい値電圧がEr領域内にあるメモリセルは“111”を記憶している状態である。
・しきい値電圧がA領域内にあるメモリセルは“011”を記憶している状態である。
・しきい値電圧がB領域内にあるメモリセルは“001”を記憶している状態である。
・しきい値電圧がC領域内にあるメモリセルは“101”を記憶している状態である。
・しきい値電圧がD領域内にあるメモリセルは“100”を記憶している状態である。
・しきい値電圧がE領域内にあるメモリセルは“110”を記憶している状態である。
・しきい値電圧がF領域内にあるメモリセルは“010”を記憶している状態である。
・しきい値電圧がG領域内にあるメモリセルは“000”を記憶している状態である。
FIG. 20 is a diagram showing another example of 1-3-3 data coding. In modification 1 of 1-3-3 data coding shown in FIG. 20A, the relationship between the threshold voltage and the data value is as follows.
A memory cell whose threshold voltage is within the Er region stores "111".
A memory cell whose threshold voltage is within the A region is in a state of storing "011".
A memory cell whose threshold voltage is within the B region is in a state of storing "001".
A memory cell whose threshold voltage is within the C region is in a state of storing "101".
A memory cell whose threshold voltage is in the D region stores "100".
A memory cell whose threshold voltage is in the E region stores "110".
A memory cell whose threshold voltage is within the F region is in a state of storing "010".
A memory cell whose threshold voltage is in the G region stores "000".

図20の(B)に示す1-3-3データコーディングの変形例2では、しきい値電圧とデータ値との関係は、以下に示す通りである。
・しきい値電圧がEr領域内にあるメモリセルは“110”を記憶している状態である。
・しきい値電圧がA領域内にあるメモリセルは“100”を記憶している状態である。
・しきい値電圧がB領域内にあるメモリセルは“000”を記憶している状態である。
・しきい値電圧がC領域内にあるメモリセルは“010”を記憶している状態である。
・しきい値電圧がD領域内にあるメモリセルは“011”を記憶している状態である。
・しきい値電圧がE領域内にあるメモリセルは“111”を記憶している状態である。
・しきい値電圧がF領域内にあるメモリセルは“101”を記憶している状態である。
・しきい値電圧がG領域内にあるメモリセルは“001”を記憶している状態である。
In modification 2 of 1-3-3 data coding shown in FIG. 20B, the relationship between the threshold voltage and the data value is as follows.
A memory cell whose threshold voltage is within the Er region stores "110".
A memory cell whose threshold voltage is within the A region stores "100".
A memory cell whose threshold voltage is within the B region is in a state of storing "000".
A memory cell whose threshold voltage is within the C region is in a state of storing "010".
A memory cell whose threshold voltage is within the D region is in a state of storing "011".
A memory cell whose threshold voltage is in the E region stores "111".
A memory cell whose threshold voltage is within the F region is in a state of storing "101".
A memory cell whose threshold voltage is in the G region stores "001".

図20の(C)に示す1-3-3データコーディングの変形例3では、しきい値電圧とデータ値との関係は、以下に示す通りである。
・しきい値電圧がEr領域内にあるメモリセルは“110”を記憶している状態である。
・しきい値電圧がA領域内にあるメモリセルは“010”を記憶している状態である。
・しきい値電圧がB領域内にあるメモリセルは“000”を記憶している状態である。
・しきい値電圧がC領域内にあるメモリセルは“100”を記憶している状態である。
・しきい値電圧がD領域内にあるメモリセルは“101”を記憶している状態である。
・しきい値電圧がE領域内にあるメモリセルは“111”を記憶している状態である。
・しきい値電圧がF領域内にあるメモリセルは“011”を記憶している状態である。
・しきい値電圧がG領域内にあるメモリセルは“001”を記憶している状態である。
In modification 3 of 1-3-3 data coding shown in FIG. 20C, the relationship between the threshold voltage and the data value is as follows.
A memory cell whose threshold voltage is within the Er region stores "110".
A memory cell whose threshold voltage is within the A region is in a state of storing "010".
A memory cell whose threshold voltage is within the B region is in a state of storing "000".
A memory cell whose threshold voltage is within the C region is in a state of storing "100".
A memory cell whose threshold voltage is within the D region is in a state of storing "101".
A memory cell whose threshold voltage is in the E region stores "111".
A memory cell whose threshold voltage is within the F region is in a state of storing "011".
A memory cell whose threshold voltage is in the G region stores "001".

(第4の実施形態)
つぎに、図21を用いて第4の実施形態について説明する。第4の実施形態では、1stステージをLower/Middleページのプログラムとし、2ndステージをUpperページのプログラムとする。
(Fourth embodiment)
A fourth embodiment will now be described with reference to FIG. In the fourth embodiment, the 1st stage is the Lower/Middle page program, and the 2nd stage is the Upper page program.

図21は、第4の実施形態におけるプログラム後のしきい値分布を示す図である。図21では、メモリセルに対する各プログラムステージ後のしきい値分布を示している。図21の(T41)は、プログラム前の初期状態である消去状態のしきい値分布を示している。図21の(T42)は、1stステージのプログラム後のしきい値分布を示している。図21の(T43)は、2ndステージのプログラム後のしきい値分布を示している。 FIG. 21 is a diagram showing the threshold distribution after programming in the fourth embodiment. FIG. 21 shows the threshold distribution after each programming stage for the memory cells. (T41) in FIG. 21 shows the threshold distribution in the erased state, which is the initial state before programming. (T42) in FIG. 21 shows the threshold distribution after the programming of the 1st stage. (T43) in FIG. 21 shows the threshold distribution after the programming of the 2nd stage.

図21の(T41)に示すように、NANDメモリセルアレイ23の全メモリセルは、未書き込みの状態では分布Erの状態である。不揮発性メモリ2の制御部22は、図21の(T42)に示すように、1stステージのプログラムでは、Lower/Middleページに書き込むビット値に応じて、メモリセルごとに分布Erのままとする、または電荷を注入して分布Erよりも上の分布に移動させる。これにより、メモリセルは、Lower/Middleページデータによって、4値のレベルにプログラムされる。 As shown in (T41) of FIG. 21, all memory cells of the NAND memory cell array 23 are in a state of distribution Er in an unwritten state. As shown in (T42) of FIG. 21, the control unit 22 of the nonvolatile memory 2 keeps the distribution Er for each memory cell according to the bit values written in the Lower/Middle pages in the 1st stage program. Alternatively, charge is injected to move to a distribution above the distribution Er. Thereby, the memory cells are programmed to four levels by the Lower/Middle page data.

また、図21の(T43)に示すように、2ndステージのプログラムでは、データの書き込みにはUpperページの1ページが必要である。不揮発性メモリ2の制御部22は、1stステージのデータに対し、2ndステージとしてUpperページのデータを加える。このように、制御部22は、2ndステージのプログラム後のしきい値分布を、各隣接する分布が分離された最終状態で8値のレベルとなるようにプログラムする。 In addition, as shown in (T43) of FIG. 21, in the program of the 2nd stage, one page of the upper pages is required for data writing. The control unit 22 of the nonvolatile memory 2 adds data of the Upper page as the 2nd stage to the data of the 1st stage. In this way, the control unit 22 programs the threshold distribution after programming in the 2nd stage so that the final state in which each adjacent distribution is separated has eight levels.

1stステージの4値のレベルにプログラムする際のしきい値のレベルとしては、例えば以下のようにする。制御部22は、下から2番目のしきい値レベルは、2ndステージのプログラムで領域Aと領域Bに遷移するよう割り付けることに鑑み、領域Aと同じ分布に制御する。また、制御部22は、下から3番目のしきい値レベルは、2ndステージのプログラムで領域Dと領域Eに遷移するよう割り付けることに鑑み、Vr3とVr5の間に入るよう制御する。また、制御部22は、最上位のしきい値レベルは、2ndステージのプログラムで領域Eと領域Fに遷移するよう割り付けることに鑑み、Vr5とVr7の間に入るよう制御する。この後、制御部22は、1stステージの4値を用いて、2ndステージの8値のレベルにプログラムする。 For example, the threshold levels for programming to the four levels of the 1st stage are as follows. The control unit 22 controls the second lowest threshold level to have the same distribution as the area A, considering that the second stage program allocates the area A and the area B so as to transition. In addition, the control unit 22 controls the third lowest threshold level to be between Vr3 and Vr5, considering that the second stage program allocates the transition to the areas D and E. FIG. In addition, the control unit 22 controls the highest threshold level to be between Vr5 and Vr7, considering that the second stage program allocates transitions to regions E and F. After that, the control unit 22 uses the 4 values of the 1st stage to program the 8 values of the 2nd stage.

なお、隣接メモリセル間干渉の影響を小さくするために、図8Bで示した順番と同じ順番でプログラムが実行される。すなわち、2つの異なるプログラムステージは、同じワード線WLiに連続的に実行されない。ワード線WLi間の隣接メモリセル間干渉を小さくするためには、ワード線WLiの2ndステージまでのプログラムが完了した後に、隣接ワード線WLiのしきい値の変動量を小さくすることが有効である。図8Bに示したシーケンスであれば、ワード線WLiの2ndステージまでのプログラムが完了した後の隣接ワード線WLiのプログラムステージは2ndステージのみとなるので、隣接メモリセル間干渉の影響を小さくできる。 In order to reduce the influence of interference between adjacent memory cells, programs are executed in the same order as shown in FIG. 8B. That is, two different program stages are not executed consecutively on the same word line WLi. In order to reduce the interference between adjacent memory cells between word lines WLi, it is effective to reduce the fluctuation amount of the threshold value of the adjacent word lines WLi after the word lines WLi have been programmed up to the 2nd stage. . With the sequence shown in FIG. 8B, the adjacent word line WLi is programmed only in the 2nd stage after the word line WLi has been programmed up to the 2nd stage, so the influence of interference between adjacent memory cells can be reduced.

ここで、第4の実施形態に係る書き込み手順について説明する。なお、第4の実施形態に係る1ブロック分全体の書き込み手順は、第1の実施形態に係る1ブロック分全体の書き込み手順(図9A)と同じであるので、その説明を省略する。本実施形態でも、第1の実施形態と同様に、非連続的な順序でワード線WLiをまたぎながらプログラムステージが進められていくので、あるワード線WLiのまとまり(ここではブロック)をプログラムシーケンスのまとまりとしてプログラムが実行される。 Here, a write procedure according to the fourth embodiment will be described. Note that the procedure for writing an entire block according to the fourth embodiment is the same as the procedure for writing an entire block (FIG. 9A) according to the first embodiment, so description thereof will be omitted. In the present embodiment, as in the first embodiment, the program stage proceeds in a discontinuous order while straddling the word lines WLi. A program is executed as a unit.

図22Aは、第4の実施形態に係る1stステージにおける書き込み手順を示すサブフローチャートであり、図22Bは、第4の実施形態に係る2ndステージでの書き込み手順を示すサブフローチャートである。なお、図22Aに示した処理のうち、図9Bに示した処理と同様の処理については、その説明を省略する。また、図22Bに示した処理のうち、図9Cに示した処理と同様の処理については、その説明を省略する。 FIG. 22A is a sub-flowchart showing the writing procedure in the 1st stage according to the fourth embodiment, and FIG. 22B is a sub-flowchart showing the writing procedure in the 2nd stage according to the fourth embodiment. It should be noted that, among the processes shown in FIG. 22A, descriptions of the same processes as those shown in FIG. 9B will be omitted. Further, among the processes shown in FIG. 22B, descriptions of the same processes as those shown in FIG. 9C are omitted.

図22Aに示すように、1stステージのプログラムでは、まず、メモリコントローラ1から不揮発性メモリ2へLowerページデータの入力開始コマンドが入力される(ステップS1410)。そして、メモリコントローラ1から不揮発性メモリ2へLowerページデータが入力される(ステップS1420)。 As shown in FIG. 22A, in the 1st stage program, first, a lower page data input start command is input from the memory controller 1 to the nonvolatile memory 2 (step S1410). Lower page data is then input from the memory controller 1 to the nonvolatile memory 2 (step S1420).

さらに、メモリコントローラ1から不揮発性メモリ2へMiddleページのデータの入力開始コマンドが入力される(ステップS1430)。そして、メモリコントローラ1から不揮発性メモリ2へMiddleページのデータが入力される(ステップS1440)。 Further, a middle page data input start command is input from the memory controller 1 to the nonvolatile memory 2 (step S1430). The middle page data is then input from the memory controller 1 to the nonvolatile memory 2 (step S1440).

そして、メモリコントローラ1から不揮発性メモリ2へ1stステージのプログラム実行コマンドが入力され(ステップS1450)、これによりチップビジーとなる(ステップS1460)。 A 1st stage program execution command is input from the memory controller 1 to the nonvolatile memory 2 (step S1450), and the chip becomes busy (step S1460).

この後、LowerページデータとMiddleページデータに基づいて、2ndステージのプログラム先のVthが決定される(ステップS1470)。この後、決定されたVthを用いて、LowerページおよびMiddleページへのデータ書き込みが行われる。 After that, Vth of the program destination of the 2nd stage is determined based on the Lower page data and the Middle page data (step S1470). Thereafter, data is written to the Lower page and Middle page using the determined Vth.

LowerページおよびMiddleページへのデータ書き込みの際には、1~複数回のプログラム電圧パルスが印加される(ステップS1480)。そして、メモリセルがしきい値境界レベルを超えて移動したか否かを確認するために読み出しが行なわれる(ステップS1490)。さらに、LowerページおよびMiddleページにおけるデータのフェイルビット数がクライテリア(判定基準)よりも小さいか否かが確認される(ステップS1500)。データのフェイルビット数がクライテリア以上である場合(ステップS1500、No)、ステップS1480~S1500の処理が繰り返される。そして、データのフェイルビット数がクライテリアよりも小さくなると(ステップS1500、Yes)、チップレディーとなる(ステップS1510)。 When writing data to the Lower page and Middle page, one to a plurality of program voltage pulses are applied (step S1480). A read is then performed to determine if the memory cell has moved beyond the threshold boundary level (step S1490). Furthermore, it is checked whether the number of fail bits of data in the Lower page and the Middle page is smaller than the criteria (determination standard) (step S1500). If the number of fail bits in the data is greater than or equal to the criteria (step S1500, No), the processing of steps S1480 to S1500 is repeated. Then, when the number of fail bits of data becomes smaller than the criteria (step S1500, Yes), the chip is ready (step S1510).

図22Bに示すように、2ndステージのプログラムでは、まず、メモリコントローラ1から不揮発性メモリ2へUpperページのデータの入力開始コマンドが入力される(ステップS1610)。そして、メモリコントローラ1から不揮発性メモリ2へUpperページのデータが入力される(ステップS1620)。次に、メモリコントローラ1から不揮発性メモリ2へ2ndステージのプログラム実行コマンドが入力され(ステップS1630)、これによりチップビジーとなる(ステップS1640)。 As shown in FIG. 22B, in the 2nd stage program, first, a command to start inputting upper page data is input from the memory controller 1 to the nonvolatile memory 2 (step S1610). Then, data of the Upper page is input from the memory controller 1 to the nonvolatile memory 2 (step S1620). Next, a second stage program execution command is input from the memory controller 1 to the nonvolatile memory 2 (step S1630), and the chip becomes busy (step S1640).

この後、IDLであるLowerページデータの読み出しが行われる(ステップS1650)。さらに、IDLであるMiddleページデータの読み出しが行われる(ステップS1660)。そして、LowerページデータおよびMiddleページデータに基づいて、Upperページのプログラム先のVthが決定される(ステップS1670)。この後、決定されたVthを用いて、Upperページへのデータ書き込みが行われる。 Thereafter, lower page data, which is IDL, is read (step S1650). Furthermore, reading of Middle page data, which is IDL, is performed (step S1660). Then, based on the Lower page data and the Middle page data, the Vth of the program destination of the Upper page is determined (step S1670). Thereafter, data is written to the Upper page using the determined Vth.

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

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

さらに、Upperページにおけるデータのフェイルビット数がクライテリアよりも小さいか否かが確認される(ステップS1700)。Upperページにおけるデータのフェイルビット数がクライテリア以上である場合(ステップS1700、No)、ステップS1680~S1700の処理が繰り返される。そして、データのフェイルビット数がクライテリアよりも小さくなると(ステップS1700、Yes)、チップレディーとなる(ステップS1710)。 Further, it is checked whether the number of fail bits of data in the Upper page is smaller than the criteria (step S1700). If the number of fail bits of data in the Upper page is equal to or greater than the criteria (step S1700, No), the processing of steps S1680 to S1700 is repeated. Then, when the number of fail bits of data becomes smaller than the criteria (step S1700, Yes), the chip is ready (step S1710).

ここで、図22Bに示した書き込み手順の変形例について説明する。図22Cは、第4の実施形態に係る2ndステージでの書き込み手順の変形例を示すサブフローチャートである。なお、図22Cに示す処理手順では、図22Bで説明したステップS1650,S1670の処理が行われないところを除いて、ステップS1610~S1710の処理手順は図22Bと同じである。 Here, a modification of the write procedure shown in FIG. 22B will be described. FIG. 22C is a sub-flowchart showing a modification of the write procedure in the 2nd stage according to the fourth embodiment. In the processing procedure shown in FIG. 22C, the processing procedure of steps S1610 to S1710 is the same as that of FIG. 22B except that the processing of steps S1650 and S1670 described in FIG. 22B is not performed.

図22Cに示す処理手順の場合、ステップS1610の前にステップS1601~S1609の処理が行われる。具体的には、まず、メモリコントローラ1から不揮発性メモリ2へLowerページおよびMiddleページの読み出しコマンドが入力され(ステップS1601)、これによりチップビジーとなる(ステップS1602)。 In the case of the processing procedure shown in FIG. 22C, steps S1601 to S1609 are performed before step S1610. Specifically, first, a lower page and middle page read command is input from the memory controller 1 to the nonvolatile memory 2 (step S1601), and the chip becomes busy (step S1602).

この後、制御部22は、IDLであるLowerページデータおよびMiddleページデータの読み出しをVr1、Vr3、Vr5、Vr7のしきい値電圧で行う。そして、制御部22は、Vr1、Vr3、Vr5、Vr7のしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS1603)。この後、チップレディーとなる(ステップS1604)。 Thereafter, the control unit 22 reads the IDL Lower page data and Middle page data at threshold voltages Vr1, Vr3, Vr5, and Vr7. 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 Vr1, Vr3, Vr5, and Vr7 (step S1603). After that, the chip becomes ready (step S1604).

制御部22が読み出したLowerページデータおよびMiddleページデータを出力すると(ステップS1605)、このLowerページデータおよびMiddleページデータは、ECC回路14に送信される(ステップS1606)。これにより、ECC回路14がLowerページデータおよびMiddleページデータをECC訂正する(ステップS1607)。 When the control unit 22 outputs the read lower page data and middle page data (step S1605), the lower page data and middle page data are sent to the ECC circuit 14 (step S1606). As a result, the ECC circuit 14 ECC-corrects the Lower page data and the Middle page data (step S1607).

そして、メモリコントローラ1から不揮発性メモリ2へLowerページのデータおよびMiddleページデータの入力開始コマンドが入力される(ステップS1608)。これにより、ECC回路14が、不揮発性メモリ2へLowerページおよびMiddleページデータのデータを入力する(ステップS1609)。 Then, a command to start inputting lower page data and middle page data is input from the memory controller 1 to the nonvolatile memory 2 (step S1608). As a result, the ECC circuit 14 inputs data of the Lower page and Middle page data to the nonvolatile memory 2 (step S1609).

この後、ステップS1610~S1710の処理が行われる。なお、ステップS1670では、ECC回路14からのLowerページデータおよびMiddleページデータに基づいて、MiddleページおよびUpperページのプログラム先のVthが決定される。 After that, the processing of steps S1610 to S1710 is performed. In step S1670, based on the Lower page data and Middle page data from the ECC circuit 14, Vth of the program destination of the Middle page and Upper page is determined.

このように、本実施形態では、2ndステージのプログラムにおけるデータ入力は、Upperページの1ページだけである。しかし、この2ndステージではメモリセルのプログラムの目的地であるVthは、Lower/Middleページも含めた3ページ分のデータが必要である。そのため、この2ndステージのプログラムでは、前処理として、まずLowerページデータとMiddleページデータが読み出される。そして、読み出されたデータと、入力されたUpperページデータとが合成されることによって、Upperページのプログラム先のVthが決定される。 Thus, in this embodiment, the data input in the 2nd stage program is only one page of the Upper page. However, in this 2nd stage, Vth, which is the destination of memory cell programming, requires data for three pages including Lower/Middle pages. Therefore, in this 2nd stage program, the Lower page data and the Middle page data are first read out as preprocessing. By synthesizing the read data and the input Upper page data, Vth of the program destination of the Upper page is determined.

図23は、第4の実施形態に係る外部プログラムコマンドのシーケンスの例を示す図である。図23の(A)では、第4の実施形態に係る1stステージにおける外部プログラムコマンドのシーケンスを示し、図24の(B)では、第4の実施形態に係る2ndステージにおける外部プログラムコマンドのシーケンスを示している。 FIG. 23 is a diagram showing an example of a sequence of external program commands according to the fourth embodiment. FIG. 23A shows the sequence of external program commands in the 1st stage according to the fourth embodiment, and FIG. 24B shows the sequence of external program commands in the 2nd stage according to the fourth embodiment. showing.

図23の(A)に示すように、1stステージでは、プログラム開始コマンド(80h)が入力された後、プログラム対象ブロック・ページのアドレス(Lowerページのアドレス)が入力され、その後にLowerページのプログラムデータが入力される。この後、プログラムコマンドの連結コマンド(1Ah)が入力され、同様のシーケンスで今度はMiddleページのプログラムデータが入力される。そして、最後にプログラム実行コマンド(10h)が入力されると、チップがビジーとなりメモリチップ内部でプログラムの動作が開始される。このようなプログラムコマンドの入力により、LowerページおよびMiddleページがプログラムされる。なお、LowerページのプログラムデータとMiddleページのプログラムデータの入力順序は何れが先であってもよい。 As shown in FIG. 23A, in the 1st stage, after the program start command (80h) is input, the address of the block/page to be programmed (lower page address) is input, and then the lower page is programmed. Data is entered. After that, a concatenation command (1Ah) of program commands is input, and in the same sequence, the middle page program data is input. Then, when the program execution command (10h) is finally input, the chip becomes busy and the program starts operating inside the memory chip. Inputting such a program command programs the Lower page and the Middle page. It does not matter which of the lower page program data and the middle page program data is input first.

図23の(B)に示すように、2ndステージでは、プログラム開始コマンド(80h)が入力された後、プログラム対象ブロック・ページのアドレス(Upperページのアドレス)が入力され、その後にUpperページのプログラムデータが入力される。そして、最後にプログラム実行コマンド(10h)が入力されると、チップがビジーとなりメモリチップ内部でプログラムの動作が開始される。このようなプログラムコマンドの入力により、IDLとしてのLowerページおよびMiddleページの読み出しが行われ、Upperページがプログラムされる。 As shown in FIG. 23B, in the 2nd stage, after the program start command (80h) is input, the address of the block/page to be programmed (upper page address) is input, and then the upper page is programmed. Data is entered. Then, when the program execution command (10h) is finally input, the chip becomes busy and the program starts operating inside the memory chip. By inputting such a program command, the Lower page and Middle page as IDL are read, and the Upper page is programmed.

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

2ndステージ書き込み前のワード線WLiの場合、記録されているデータはLowerページおよびMiddleページが有効である。このため、制御部22は、読み出しページがLowerページまたはMiddleページのときにはメモリセルからデータを読み出す。そして、制御部22は、そのUpperページの場合には、メモリセル読み出し動作は行わず、読み出しデータとして強制的に全て“1”を出力する制御を行う。 In the case of the word line WLi before the 2nd stage writing, the recorded data are effective in the Lower page and the Middle page. Therefore, the control unit 22 reads data from the memory cells when the read page is the Lower page or the Middle page. Then, in the case of the Upper page, the control unit 22 does not perform the memory cell read operation, but performs control to forcibly output all "1" as read data.

一方、2ndステージまで完了したワード線WLiの場合、制御部22は、読み出しページが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 cells regardless of whether the read page is the Upper/Middle/Lower page. In this case, since the necessary read voltage differs depending on which page is read, the control unit 22 performs only necessary read according to the selected page.

図6に示したコーディングによれば、Lowerページデータが変化するしきい値状態間の境界は1つだけであるので、制御部22は、その境界で分離された2つの範囲の何れにしきい値が位置するかでデータを決定する。 According to the coding shown in FIG. 6, there is only one boundary between the threshold states where the Lower page data changes, so the control unit 22 determines which of the two ranges separated by the boundary has a threshold value. The data is determined by whether the is located.

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

以下、ページ読み出しの具体的な処理手順について説明する。図24Aは、第4の実施形態に係る記憶装置において2ndステージ書き込み前の場合のワード線でのページ読み出しの処理手順を示すフローチャートである。図24Bは、第4の実施形態に係る記憶装置において2ndステージまでプログラムが完了しているワード線でのページ読み出しの処理手順を示すフローチャートである。なお、図24Aに示した処理のうち、図12Aに示した処理と同様の処理については、その説明を省略する。また、図24Bに示した処理のうち、図12Bに示した処理と同様の処理については、その説明を省略する。 A specific processing procedure for page reading will be described below. FIG. 24A is a flow chart showing a processing procedure of page reading on word lines before 2nd stage writing in the memory device according to the fourth embodiment. FIG. 24B is a flowchart showing a processing procedure of page reading in a word line for which programming has been completed up to the 2nd stage in the memory device according to the fourth embodiment. It should be noted that, among the processes shown in FIG. 24A, descriptions of the same processes as those shown in FIG. 12A will be omitted. Further, among the processes shown in FIG. 24B, descriptions of the same processes as those shown in FIG. 12B are omitted.

図24Aに示すように、2ndステージ書き込み前のワード線WLiの場合、制御部22は、読み出しページを選択する(ステップS1810)。読み出しページがLowerページの場合(ステップS1810、Lower)、制御部22は、Vr3のしきい値電圧で読み出しを行う(ステップS1820)。そして、制御部22は、Vr3のしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS1830)。 As shown in FIG. 24A, in the case of the word line WLi before the 2nd stage write, the control unit 22 selects the read page (step S1810). If the page to be read is the Lower page (Step S1810, Lower), the control unit 22 reads at the threshold voltage of Vr3 (Step S1820). 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 Vr3 (step S1830).

また、読み出しページがMiddleページの場合(ステップS1810、Middle)、制御部22は、Vr1、Vr3およびVr5のしきい値電圧で読み出しを行う(ステップS1840,S1850,S1860)。そして、制御部22は、Vr1、Vr3およびVr5のしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS1870)。 If the page to be read is the Middle page (step S1810, Middle), the control section 22 performs the reading with the threshold voltages of Vr1, Vr3 and Vr5 (steps S1840, S1850, S1860). 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 Vr1, Vr3 and Vr5 (step S1870).

また、読み出しページがUpperページの場合(ステップS1810、Upper)、制御部22は、メモリセルの出力データとして全て強制的に“1”を出力する制御を行う(ステップS1880)。 If the page to be read is the Upper page (step S1810, Upper), the control unit 22 forcibly outputs "1" as the output data of the memory cells (step S1880).

また、図24Bに示すように、2ndステージまでプログラムが完了したワード線WLiの場合、制御部22は、読み出しページを選択する(ステップS1910)。読み出しページがLowerページの場合(ステップS1910、Lower)、制御部22は、Vr4のしきい値電圧で読み出しを行う(ステップS1920)。そして、制御部22は、Vr4のしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS1930)。 Further, as shown in FIG. 24B, in the case of the word line WLi that has been programmed up to the 2nd stage, the control unit 22 selects a read page (step S1910). If the page to be read is the Lower page (Step S1910, Lower), the control unit 22 reads at the threshold voltage of Vr4 (Step S1920). 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 Vr4 (step S1930).

また、読み出しページがMiddleページの場合(ステップS1910、Middle)、制御部22は、Vr1、Vr3およびVr6のしきい値電圧で読み出しを行う(ステップS1940,S1950,S1960)。そして、制御部22は、Vr1、Vr3およびVr6のしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS1970)。 If the page to be read is the Middle page (step S1910, Middle), the control unit 22 performs reading with threshold voltages Vr1, Vr3 and Vr6 (steps S1940, S1950, S1960). 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 Vr1, Vr3 and Vr6 (step S1970).

また、読み出しページがUpperページの場合(ステップS1910、Upper)、制御部22は、Vr2、Vr5およびVr7のしきい値電圧で読み出しを行う(ステップS1980,S1990,S2000)。そして、制御部22は、Vr2、Vr5およびVr7のしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS2010)。 If the page to be read is the Upper page (step S1910, Upper), the control unit 22 performs the reading with threshold voltages Vr2, Vr5 and Vr7 (steps S1980, S1990, S2000). 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 Vr2, Vr5 and Vr7 (step S2010).

このように、図21に示したようなしきい値のプログラム制御では、Lowerページデータの読み出しの場合、4レベルを上下で2レベルずつ分離できる読み出しレベルとして、Vr3が用いられる。また、Middleページデータの読み出しの場合、4レベルのどこか1つを特定しないとデータを決定できないデータ割付となっているので、読み出しレベルとして、Vr1、Vr3およびVr5の3レベルの読み出しが必要となる。 In this way, in the program control of the threshold value as shown in FIG. 21, Vr3 is used as the read level that can separate the four levels by two levels above and below when reading the lower page data. In the case of reading the middle page data, since the data allocation is such that the data cannot be determined unless one of the four levels is specified, it is necessary to read three levels of Vr1, Vr3 and Vr5 as read levels. Become.

一方、2ndステージまで完了したワード線WLiの場合、読み出しページはUpper/Middle/Lowerのうちの何れであってもメモリセルを読み出すが、どのページを読み出すかによって必要な読み出し電圧が異なるので、選択されたページに従った必要な読み出しだけが実行される。 On the other hand, in the case of the word line WLi that has completed up to the 2nd stage, memory cells are read regardless of whether the read page is Upper/Middle/Lower. Only the necessary reads according to the page specified are performed.

なお、ワード線WLiに対するプログラムが、1stステージと2ndステージとの何れまで完了したかは、メモリコントローラ1が管理・識別することが可能である。メモリコントローラ1が、プログラム制御を行っているので、メモリコントローラ1がその進捗状況を記録しておけば、メモリコントローラ1は、不揮発性メモリ2のどのアドレスがどのようなプログラム状態であるか容易に参照できる。この場合、メモリコントローラ1は、不揮発性メモリ2から読み出しを行う際、対象ページアドレスを含むワード線WLiがどのようなプログラム状態であるかを識別し、識別した状態に応じた読み出しコマンドを発行する。 It should be noted that the memory controller 1 can manage and identify to which of the 1st stage and the 2nd stage the programming for the word line WLi has been completed. Since the memory controller 1 performs program control, if the memory controller 1 records the progress, the memory controller 1 can easily determine which address in the nonvolatile memory 2 is in which program state. can refer to. In this case, when reading from the nonvolatile memory 2, the memory controller 1 identifies what program state the word line WLi including the target page address is in, and issues a read command according to the identified state. .

図25は、第4の実施形態に係る外部読み出しコマンドのシーケンスの例を示す図である。図25の(A)では、第4の実施形態に係る記憶装置において1stステージまでプログラムが完了しているワード線WLiでの外部読み出しコマンドのシーケンスを示し、図25の(B)では、第4の実施形態に係る記憶装置において2ndステージまでプログラムが完了しているワード線WLiでの外部読み出しコマンドのシーケンスを示している。 FIG. 25 is a diagram showing an example of a sequence of external read commands according to the fourth embodiment. FIG. 25A shows the sequence of external read commands on the word line WLi for which programming has been completed up to the 1st stage in the storage device according to the fourth embodiment, and FIG. 2 shows a sequence of external read commands on the word line WLi for which programming has been completed up to the 2nd stage in the storage device according to the embodiment of FIG.

図25の(A)に示すように、2ndステージ書き込み前のワード線WLiの場合、読み出し動作を実行するコマンドとして、最初に2ndステージ書き込み前の状態を示すコマンド(2Dh)が入力される。この後、読み出し開始コマンド(00h)が入力され、その後に読み出し対象ブロック・ページのアドレス(LowerページまたはMiddleページまたはUpperページのアドレス)が入力される。そして、最後に読出し実行コマンド(30h)が入力されると、チップがビジーとなり、メモリチップ内部で読み出しの動作が開始される。このようなプログラムコマンドの入力により、LowerページまたはMiddleページまたはUpperページからデータが読み出される。その後、チップがレディー状態となり、読み出されたデータが出力される。 As shown in FIG. 25A, in the case of the word line WLi before the 2nd stage write, a command (2Dh) indicating the state before the 2nd stage write is first input as a command for executing the read operation. After that, a read start command (00h) is input, and then the address of the block/page to be read (lower page, middle page, or upper page address) is input. Finally, when the read execution command (30h) is input, the chip becomes busy and the read operation starts inside the memory chip. Data is read from the Lower page, Middle page, or Upper page by inputting such a program command. The chip is then ready to output the read data.

一方、図25の(B)に示すように、2ndステージまでプログラムが完了したワード線WLiの場合、読み出し動作を実行するコマンドとして、最初に2ndステージまでの完了状態を示すコマンド(25h)が入力される。この後、読み出し開始コマンド(00h)が入力され、その後に読み出し対象ブロック・ページのアドレス(LowerページまたはMiddleページまたはUpperページのアドレス)が入力される。そして、最後に読出し実行コマンド(30h)が入力されると、チップがビジーとなり、メモリチップ内部で読み出しの動作が開始される。このようなプログラムコマンドの入力により、LowerページまたはMiddleページまたはUpperページからデータが読み出される。その後、チップがレディー状態となり、読み出されたデータが出力される。 On the other hand, as shown in FIG. 25B, in the case of the word line WLi for which programming has been completed up to the 2nd stage, a command (25h) indicating the completion state up to the 2nd stage is first input as a command for executing the read operation. be done. After that, a read start command (00h) is input, and then the address of the block/page to be read (lower page, middle page, or upper page address) is input. Finally, when the read execution command (30h) is input, the chip becomes busy and the read operation starts inside the memory chip. Data is read from the Lower page, Middle page, or Upper page by inputting such a program command. The chip is then ready to output the read data.

なお、第1の実施形態に対する第2の実施形態の変形と同様の変形を、本実施形態に適用してもよい。すなわち、本実施形態においても、ワード線WLn-1の2ndステージのプログラムと、ワード線WLnの1stステージのプログラムとがまとめて行なわれてもよい。 Note that the same modification as the modification of the second embodiment with respect to the first embodiment may be applied to the present embodiment. That is, also in the present embodiment, the 2nd stage programming of word line WLn−1 and the 1st stage programming of word line WLn may be performed together.

また、本実施形態では、1-3-3データコーディングの種類は、Lowerでの境界数が1であるという制約が不要となる。このため、第1~第3の実施形態で用いた1-3-3データコーディング以外の1-3-3データコーディングが適用されてもよい。本実施形態の1-3-3データコーディングの具体的な状態は、特開2015-195071号公報の図5~8,12~15,18,20,22,24,28~30などに示されたものである。 Also, in the present embodiment, the restriction that the number of boundaries in the Lower is 1 is not required for the type of 1-3-3 data coding. Therefore, 1-3-3 data coding other than the 1-3-3 data coding used in the first to third embodiments may be applied. Specific states of the 1-3-3 data coding of this embodiment are shown in FIGS. It is a thing.

このように第4の実施形態では、第1の実施形態と同様に、不揮発性メモリ2(3次元構造または2次元構造を有した3bit/CellのNANDメモリ)をプログラムする際に、1-3-3データコーディングを採用し、プログラムを2ステージ制とした。このように2ステージ制でプログラムされるので、データプログラムの際に入力するデータ量が減り、メモリコントローラ1に必要とされる書き込みバッファ量を抑制することが可能となる。また、不揮発性メモリ2のページ間のビットエラー率の偏りを低減できるとともに、ECCにかかるコストを下げることができる。 Thus, in the fourth embodiment, as in the first embodiment, when programming the nonvolatile memory 2 (3-bit/cell NAND memory having a three-dimensional structure or a two-dimensional structure), 1-3 -3 data coding was adopted, and the program was made into a 2-stage system. Since programming is performed in a two-stage system in this manner, the amount of data input during data programming is reduced, and the amount of write buffer required for the memory controller 1 can be suppressed. In addition, the bias of the bit error rate between pages of the nonvolatile memory 2 can be reduced, and the cost of ECC can be reduced.

(第5の実施形態)
つぎに、図26~図30を用いて第5の実施形態について説明する。第5の実施形態では、ワード線WLiに対するプログラムが、1stステージと2ndステージとの何れまで完了したかをメモリセル(フラグセル)に記録しておき、データ読み出しの際は、フラグセルに記録された情報に基づいて読み出しシーケンスを適切に制御する。
(Fifth embodiment)
Next, a fifth embodiment will be described with reference to FIGS. 26 to 30. FIG. In the fifth embodiment, it is recorded in a memory cell (flag cell) to which of the 1st stage and the 2nd stage the programming for the word line WLi has been completed. appropriately control the read sequence based on

なお、本実施形態でも第1の実施形態の図6で説明したものと同じデータコーディングを用いる場合について説明する。また、以下の説明では、データを記憶するメモリセルアレイをデータ記憶セルという場合がある。また、1stステージと2ndステージとの何れまで完了したかを示す情報を完了情報という場合がある。本実施形態では、2ndステージまで完了している場合には、フラグセルにデータが書き込まれるので、このデータが2ndステージまで完了したことを示す完了情報となる。一方、2ndステージまで完了していない場合には、フラグセルにデータが書き込まれないので、この未書き込みのデータが2ndステージまで完了していないことを示す完了情報となる。 In this embodiment, the case where the same data coding as that explained in FIG. 6 of the first embodiment is used will be explained. Also, in the following description, a memory cell array that stores data may be referred to as a data storage cell. Further, information indicating whether the 1st stage or the 2nd stage has been completed may be referred to as completion information. In this embodiment, data is written in the flag cell when the process is completed up to the 2nd stage, so this data becomes the completion information indicating that the process is completed up to the 2nd stage. On the other hand, if the 2nd stage has not been completed yet, no data is written in the flag cell, so this unwritten data becomes completion information indicating that the 2nd stage has not been completed.

図26は、フラグセルの構成を説明するための図である。本実施形態でも第1の実施形態の図3で説明したメモリセルアレイと同様の構成を有したメモリセルアレイが用いられる。なお、図26では、セレクトゲート線SGD0に接続されたメモリセルトランジスタMTなどを図示しており、セレクトゲート線SGD1~3に接続されたメモリセルトランジスタMTなどの図示を省略している。 FIG. 26 is a diagram for explaining the configuration of a flag cell. This embodiment also uses a memory cell array having a configuration similar to that of the memory cell array described in FIG. 3 of the first embodiment. Note that FIG. 26 shows the memory cell transistors MT and the like connected to the select gate line SGD0, and omits the illustration of the memory cell transistors MT and the like connected to the select gate lines SGD1 to SGD3.

ビット線BL0~BLm-1に接続されたメモリセルトランジスタ(データ記憶セル)MTの横には、ダミーセルDCとフラグセルFCが配置されている。ダミーセルDCおよびフラグセルFCは、メモリセルトランジスタMTと同様の構成を有している。具体的には、ダミーセルDCは、セレクトゲート線SGD0、ワード線WL0~WL7、セレクトゲート線SGS、ソース線SL、ダミーセル用ビット線DBLなどに接続されている。また、フラグセルFCは、セレクトゲート線SGD0、ワード線WL0~WL7、セレクトゲート線SGS、ソース線SL、フラグセル用ビット線FBL0~FBLk-1などに接続されている。換言すると、ブロックBLK内のメモリセルのうちの一部がデータ記憶として用いられ、残りの一部がダミーセルDCおよびフラグセルFCとして用いられる。 Dummy cells DC and flag cells FC are arranged beside the memory cell transistors (data storage cells) MT connected to the bit lines BL0 to BLm-1. Dummy cell DC and flag cell FC have the same configuration as memory cell transistor MT. Specifically, the dummy cells DC are connected to a select gate line SGD0, word lines WL0 to WL7, a select gate line SGS, a source line SL, a dummy cell bit line DBL, and the like. The flag cells FC are connected to a select gate line SGD0, word lines WL0 to WL7, a select gate line SGS, a source line SL, flag cell bit lines FBL0 to FBLk-1, and the like. In other words, some of the memory cells in the block BLK are used for data storage, and the remaining part are used as dummy cells DC and flag cells FC.

第1~第5の実施形態では、メモリコントローラ1が、ワード線WLiに対するプログラムが1stステージと2ndステージとの何れまで完了したかを管理・識別している。そして、データ読み出しの際には、メモリコントローラ1が、プログラムの完了状態に応じた読み出しコマンドを発行する。 In the first to fifth embodiments, the memory controller 1 manages and identifies to which of the 1st stage and the 2nd stage the programming for the word lines WLi has been completed. When reading data, the memory controller 1 issues a read command according to the completion state of the program.

これに対し、本実施形態では、制御部22が、1stステージと2ndステージとの何れまで完了したかを示す完了情報を不揮発性メモリ2のフラグセルFCに記録する。そして、データ読み出しの際には、制御部22が、フラグセルFCに記録された完了情報に基づいて、読み出しシーケンスを制御する。 On the other hand, in the present embodiment, the control unit 22 records in the flag cell FC of the nonvolatile memory 2 completion information indicating which of the 1st stage and the 2nd stage has been completed. When reading data, the control unit 22 controls the read sequence based on the completion information recorded in the flag cell FC.

フラグセルFCは、ワード線単位で設けられている。すなわち、ワード線WLi内の複数のメモリセルのうちの一部がフラグセルFCとして使用される。フラグセルFCは、ワード線WLi毎に1つでもよいが、多重化によってデータの信頼性を上げるために、複数個とするのが好ましい。また、隣接セル間干渉による信頼性悪化の影響を抑えるために、データを記憶するデータ記憶セルと、フラグセルFCとを物理的に隣接させない方が好ましい。たとえば、データ記憶セルと、フラグセルFCとの間にはデータ記録領域としては使用しないダミーセルDCなどを配置するのが好ましい。 A flag cell FC is provided for each word line. That is, some of the plurality of memory cells in word line WLi are used as flag cells FC. Although one flag cell FC may be provided for each word line WLi, a plurality of flag cells FC is preferably provided in order to increase the reliability of data through multiplexing. Also, in order to suppress the influence of deterioration in reliability due to interference between adjacent cells, it is preferable not to physically adjoin the data storage cell storing data and the flag cell FC. For example, it is preferable to arrange dummy cells DC, which are not used as data recording areas, between the data storage cells and the flag cells FC.

フラグセルFCに記録される完了情報は、2ndステージのプログラムが行われたか否かの2値情報である。制御部22は、2ndステージのプログラム時に同一ワード線WLi内のフラグセルFCに、2ndステージのプログラムが完了したことを示す完了情報を書き込む。制御部22は、完了情報を、例えばDレベル以上でフラグセルFCに書き込む。このときのしきい値分布の変化の様子について説明する。 The completion information recorded in the flag cell FC is binary information indicating whether or not the programming of the 2nd stage has been performed. The control unit 22 writes completion information indicating that the programming of the 2nd stage is completed in the flag cell FC in the same word line WLi during the programming of the 2nd stage. The control unit 22 writes the completion information in the flag cell FC at D level or higher, for example. How the threshold distribution changes at this time will be described.

図27Aは、第5の実施形態に係るフラグセルへのプログラムを説明するための図である。図27Aでは、2ndステージのプログラムの際に行われるフラグセルFCでのVth状態の遷移方法を示している。 FIG. 27A is a diagram for explaining programming of flag cells according to the fifth embodiment. FIG. 27A shows a transition method of the Vth state in the flag cell FC performed during programming of the 2nd stage.

図27Aの(T51)は、プログラム前の初期状態である消去状態のフラグセルFCでのVth分布状態を示している。また、図27Aの(T52)は、1stステージのプログラムが完了した時点でのVth分布状態を示している。また、図27Aの(T53)は、2ndステージのプログラムが完了した時点でのVth分布状態を示している。本実施形態の制御部22は、2ndステージが完了する際に、図27Aの(T53)に示すように、書き込み目的地のVth分布状態が領域D以上(Vr4以上)となるよう、フラグセルFCにプログラムする。 (T51) in FIG. 27A shows the Vth distribution state in the flag cell FC in the erased state, which is the initial state before programming. (T52) in FIG. 27A shows the Vth distribution state at the time when the programming of the 1st stage is completed. (T53) in FIG. 27A shows the Vth distribution state at the time when the programming of the 2nd stage is completed. When the 2nd stage is completed, the control unit 22 of the present embodiment sets the flag cells FC so that the Vth distribution state of the write destination is greater than or equal to the region D (Vr4 or greater), as shown in (T53) in FIG. 27A. program.

フラグセルFCは、データセルと同時に2ndステージ時に書き込みが行なわれるが、フラグセルFC込みの閾値の遷移は、データセルよりも大きい。このため、フラグセルFCに隣接するデータセルの信頼性が悪化する場合は、フラグセルFCとデータセルとの間にダミーセルDCが設けられる。また、ダミーセルDCは、図27Bに示すように2ndステージ時にErからA又はB又はCへ書き込まれてもよい。 The flag cell FC is written at the same time as the data cell in the second stage, but the transition of the threshold including the flag cell FC is larger than that of the data cell. Therefore, when the reliability of the data cells adjacent to the flag cell FC deteriorates, a dummy cell DC is provided between the flag cell FC and the data cell. Also, the dummy cell DC may be written from Er to A or B or C at the 2nd stage as shown in FIG. 27B.

図27Bは、第5の実施形態に係るダミーセルへのプログラムを説明するための図である。図27Bでは、2ndステージのプログラムの際に行われるダミーセルDCでのVth状態の遷移方法を示している。 FIG. 27B is a diagram for explaining programming of dummy cells according to the fifth embodiment. FIG. 27B shows a transition method of the Vth state in the dummy cell DC which is performed during programming of the 2nd stage.

図27Bの(T61)は、プログラム前の初期状態である消去状態のダミーセルDCでのVth分布状態を示している。また、図27Bの(T62)は、1stステージのプログラムが完了した時点でのVth分布状態を示している。また、図27Aの(T53)は、2ndステージのプログラムが完了した時点でのVth分布状態を示している。本実施形態の制御部22は、2ndステージが完了する際に、図27Bの(T63)に示すように、書き込み目的地のVth分布状態が領域C以下(Vr4以下)となるよう、ダミーセルDCにプログラムする。 (T61) in FIG. 27B shows the Vth distribution state in the dummy cell DC in the erased state, which is the initial state before programming. (T62) in FIG. 27B shows the Vth distribution state at the time when the programming of the 1st stage is completed. (T53) in FIG. 27A shows the Vth distribution state at the time when the programming of the 2nd stage is completed. When the 2nd stage is completed, the control unit 22 of the present embodiment controls the dummy cells DC so that the Vth distribution state of the write destination is below the region C (below Vr4), as shown in (T63) in FIG. 27B. program.

図28は、第5の実施形態に係る2ndステージでの書き込み手順を示すフローチャートである。なお、図9Cで説明した処理と同様の処理については、その説明を省略する。第5の実施形態に係る2ndステージのステップS2110~S2180は、図9Cに示した第1の実施形態に係る2ndステージのステップS310~S380と同じである。 FIG. 28 is a flow chart showing a write procedure in the 2nd stage according to the fifth embodiment. It should be noted that descriptions of the same processes as those described with reference to FIG. 9C will be omitted. Steps S2110 to S2180 of the 2nd stage according to the fifth embodiment are the same as steps S310 to S380 of the 2nd stage according to the first embodiment shown in FIG. 9C.

本実施形態では、Middleページ、UpperページおよびフラグセルFCへのプログラム先のVthが決定された後(ステップS2180)、決定されたVthを用いて、データ記憶セル(Middleページ、Upperページ)およびフラグセルFCへのデータ書き込みが行われる。 In this embodiment, after the Vth of the programming destination for the Middle page, Upper page, and flag cell FC is determined (step S2180), the determined Vth is used to program data storage cells (Middle page, Upper page) and flag cell FC. data is written to

第5の実施形態に係る2ndステージでは、Middleページ、UpperページおよびフラグセルFCへのデータ書き込みの際に、1~複数回のプログラム電圧パルスが印加される。(ステップS2190)。そして、メモリセルがしきい値境界レベルを超えて移動したか否かを確認するために、Middleページ、UpperページおよびフラグセルFCに対してデータ読み出しが行なわれる(ステップS2200)。 In the 2nd stage according to the fifth embodiment, one to a plurality of program voltage pulses are applied when writing data to the Middle page, Upper page, and flag cells FC. (Step S2190). Data is then read from the Middle page, Upper page, and flag cell FC to determine whether the memory cell has moved beyond the threshold boundary level (step S2200).

さらに、MiddleページおよびUpperページにおけるデータのフェイルビット数がクライテリアよりも小さいか否かが確認される(ステップS2210)。MiddleページおよびUpperページにおけるデータのフェイルビット数がクライテリア以上である場合(ステップS2210、No)、ステップS2190~S2210の処理が繰り返される。この場合において、フラグセルFCに対するステップS2190,S2210の処理は省略される。 Further, it is checked whether the number of fail bits of data in the Middle page and Upper page is smaller than the criteria (step S2210). If the number of fail bits of data in the middle page and the upper page is equal to or greater than the criteria (step S2210, No), the processing of steps S2190 to S2210 is repeated. In this case, the processing of steps S2190 and S2210 for the flag cell FC is omitted.

そして、MiddleページおよびUpperページにおけるデータのフェイルビット数がクライテリアよりも小さくなると(ステップS2210、Yes)、フラグセルFCにおけるデータのフェイルビット数がクライテリアよりも小さいか否かが確認される(ステップS2220)。 Then, when the number of fail bits of the data in the Middle page and the Upper page becomes smaller than the criteria (step S2210, Yes), it is checked whether the number of fail bits of the data in the flag cell FC is smaller than the criteria (step S2220). .

フラグセルFCにおけるデータのフェイルビット数がクライテリア以上である場合(ステップS2220、No)、ステップS2190~S2220の処理が繰り返される。この場合において、MiddleページおよびUpperページに対するステップS2190~S2210の処理は省略される。 If the number of fail bits of the data in the flag cell FC is equal to or greater than the criteria (step S2220, No), the processing of steps S2190 to S2220 is repeated. In this case, the processes of steps S2190 to S2210 for the Middle page and Upper page are omitted.

そして、フラグセルFCにおけるデータのフェイルビット数がクライテリアよりも小さくなると(ステップS2220、Yes)、チップレディーとなる(ステップS2230)。 Then, when the number of fail bits of the data in the flag cell FC becomes smaller than the criteria (step S2220, Yes), the chip is ready (step S2230).

このように、本実施形態のステップS2190(プログラム電圧パルスを印加するステップ)では、データを書き込むデータ記憶セルに加え、フラグセルFCに対してもプログラム電圧パルスが同時に印加される。そして、この後のデータ読み出しにおいても、データ記憶セルとフラグセルFCとがプログラムされたか否かを確認するために、データ記憶セル内のデータとフラグセルFC内のデータ(完了情報)とが読み出される。 Thus, in step S2190 (the step of applying the program voltage pulse) of this embodiment, the program voltage pulse is simultaneously applied to the flag cells FC in addition to the data storage cells in which data is to be written. In subsequent data reading, the data in the data storage cells and the data in the flag cells FC (completion information) are read to confirm whether the data storage cells and the flag cells FC have been programmed.

その後、データ記憶セルおよびフラグセルFCから読み出されたデータと、期待値に対応するクライテリアとが比較される。このとき、フェイルしたビットの数がカウントされるが、データ記憶セル内でフェイルしたデータとフラグセルFC内でフェイルしたデータとは、別々にカウントされ、それぞれのクライテリアと比較される。何れか一方でもクライテリアを満たさない場合には、再びプログラム電圧パルスの印加手順に戻る。何れの比較においてもクライテリアを満たした場合には、チップをレディーとして終了となる。 After that, the data read out from the data storage cells and flag cells FC are compared with the criteria corresponding to the expected values. At this time, the number of failed bits is counted, but the failed data in the data storage cells and the failed data in the flag cells FC are separately counted and compared with respective criteria. If either one of the criteria is not satisfied, the process returns to the program voltage pulse application procedure. If any comparison satisfies the criteria, the chip is made ready and the process ends.

第1の実施形態におけるページ読み出しでは、読み出し対象ページを含むワード線WLiに対するプログラムが、1stステージと2ndステージとの何れまで完了したかによって、別々の処理順が用いられた。そして、何れの処理手順を実施するかは外部読み出しコマンドに基づいて決定されていた。しかし、本実施形態では、1stステージと2ndステージとの何れまで完了したかは、メモリコントローラ1からのコマンドで指示されるのではなく、フラグセルFC内の完了情報に従って判断される。すなわち、制御部22は、読み出しコマンドをメモリコントローラ1から受信すると、まずフラグセルFC内のデータである完了情報を読み出す。そして、制御部22は、フラグセルFCが書き込み済みであるか否かに応じて、1stステージと2ndステージとの何れまで完了しているかを判定する。 In the page read in the first embodiment, different processing orders are used depending on whether the programming for the word line WLi including the page to be read has been completed up to the 1st stage or the 2nd stage. Which processing procedure is to be executed is determined based on the external read command. However, in the present embodiment, which of the 1st stage and the 2nd stage has been completed is not indicated by a command from the memory controller 1, but is determined according to the completion information in the flag cell FC. That is, upon receiving a read command from the memory controller 1, the control unit 22 first reads the completion information, which is the data in the flag cell FC. Then, the control unit 22 determines to which of the 1st stage and the 2nd stage the writing has been completed, depending on whether or not the flag cell FC has been written.

上述したとおり、本実施形態では、フラグセルFCへの書き込みレベルをDレベル以上としている。このため、フラグセルFCの読み出しは、Vr1,Vr2,Vr3またはVr4のうちの任意の1つの読み出し電圧で可能である。したがって、制御部22は、読み出し対象ページがLowerページ、MiddleページまたはUpperページの何れであっても、2ndステージのプログラムまで完了している場合に必要な複数の読み出しレベルの最も低い読み出しレベルを使用して読み出せば、フラグセルFCの読み出しが可能である。そして、もしフラグセルFCが書き込み済みであると判定されたならば、制御部22は、2ndステージのプログラムまで完了していると判断し、フラグセルFC以外のメモリセルから、残りの読み出しレベルで読み出しを実行する。 As described above, in this embodiment, the write level to the flag cell FC is D level or higher. Therefore, reading the flag cells FC is possible with any one of the read voltages Vr1, Vr2, Vr3 or Vr4. Therefore, the control unit 22 uses the lowest read level of the plurality of read levels required when the program up to the 2nd stage is completed, regardless of whether the page to be read is the Lower page, the Middle page, or the Upper page. , the flag cell FC can be read. Then, if it is determined that the flag cell FC has been written, the control unit 22 determines that programming up to the 2nd stage has been completed, and reads from the memory cells other than the flag cell FC at the remaining read level. Run.

一方、フラグセルFCが未書き込みと判定された場合、Lowerページが読み出し対象であるなら、制御部22は、Vr1でデータを読み直す。また、Middle/Upperページが読み出し対象であるなら、制御部22は、これ以降の読み出しは不要と判断し、出力データを強制的に“1”とする。 On the other hand, if it is determined that the flag cell FC has not been written, and the Lower page is to be read, the control unit 22 rereads the data at Vr1. If the Middle/Upper page is to be read, the control unit 22 determines that further reading is unnecessary, and forcibly sets the output data to "1".

フラグセルFCの読み出し結果(完了情報)からフラグセルFCが書き込み済みか否かを判定する際に、制御部22は、フラグセルFCが1個であるならば、そのセル自身が書き込み済みであるか否かを判定すればよい。また、フラグセルFCのデータの信頼度を上げるためにフラグセルFCが複数個設けられている場合がある。この場合、制御部22は、たとえば、複数個のフラグセルFCのうちのあるフラグセルFCから、クライテリアの数以上のセルが書き込みされたことを示す完了情報が読み出された場合、フラグセルFCは書き込み済みであると判断する。 When determining whether or not the flag cell FC has been written from the read result (completion information) of the flag cell FC, if there is one flag cell FC, the control unit 22 determines whether the cell itself has been written. should be determined. In some cases, a plurality of flag cells FC are provided in order to increase the reliability of the data in the flag cells FC. In this case, for example, when completion information indicating that cells equal to or greater than the number of criteria have been written is read from a flag cell FC among a plurality of flag cells FC, the control unit 22 determines that the flag cell FC has been written. We judge that it is.

ここで、ページ読み出しの具体的な処理手順について説明する。図29は、第5の実施形態に係るページ読み出しの処理手順を示すフローチャートである。なお、図29に示した処理のうち、図12Aまたは図24Aに示した処理と同様の処理については、その説明を省略する。 Here, a specific processing procedure for page reading will be described. FIG. 29 is a flowchart showing a page read processing procedure according to the fifth embodiment. 29, the description of the same processing as the processing shown in FIG. 12A or FIG. 24A will be omitted.

図29に示すように、制御部22は、読み出しページを選択する(ステップS2310)。読み出しページがLowerページの場合(ステップS2310、Lower)、制御部22は、Vr4のしきい値電圧で読み出しを行う(ステップS2320)。 As shown in FIG. 29, the control unit 22 selects a read page (step S2310). If the page to be read is the Lower page (Step S2310, Lower), the control unit 22 reads at the threshold voltage of Vr4 (Step S2320).

そして、制御部22は、フラグセルFCに完了情報が書き込まれているか否かを判定する(ステップS2330)。フラグセルFCに完了情報が書き込み済みでない場合(ステップS2330、No)、制御部22は、Vr1のしきい値電圧で読み出しを行う(ステップS2340)。そして、制御部22は、Vr1のしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS2350)。 Then, the control unit 22 determines whether completion information is written in the flag cell FC (step S2330). If the completion information has not been written in the flag cell FC (step S2330, No), the control unit 22 performs reading at the threshold voltage of Vr1 (step S2340). 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 Vr1 (step S2350).

一方、フラグセルFCに完了情報が書き込み済みである場合(ステップS2330、Yes)、制御部22は、Vr4のしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS2360)。 On the other hand, if the completion information has already been written in the flag cell FC (step S2330, Yes), the control unit 22 sets the value of the read data to "0" or "" based on the read result at the threshold voltage of Vr4. 1″ (step S2360).

また、読み出しページがMiddleページの場合(ステップS2310、Middle)、制御部22は、Vr1のしきい値電圧で読み出しを行う(ステップS2370)。そして、制御部22は、フラグセルFCに完了情報が書き込まれているか否かを判定する(ステップS2380)。フラグセルFCに完了情報が書き込み済みでない場合(ステップS2380、No)、制御部22は、データ記憶セル(Middleページ)の出力データとして全て強制的に“1”を出力する制御を行う(ステップS2390)。 If the page to be read is the Middle page (step S2310, Middle), the control unit 22 reads at the threshold voltage of Vr1 (step S2370). Then, the control unit 22 determines whether completion information is written in the flag cell FC (step S2380). If the completion information has not been written in the flag cell FC (step S2380, No), the control unit 22 forcibly outputs "1" as the output data of the data storage cells (middle page) (step S2390). .

一方、フラグセルFCに完了情報が書き込み済みである場合(ステップS2380、Yes)、制御部22は、Vr3およびVr6のしきい値電圧で読み出しを行う(ステップS2400,S2410)。そして、制御部22は、Vr1、Vr3およびVr6のしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS2420)。 On the other hand, if the completion information has already been written in the flag cell FC (step S2380, Yes), the control unit 22 reads with the threshold voltages of Vr3 and Vr6 (steps S2400, S2410). 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 Vr1, Vr3 and Vr6 (step S2420).

また、読み出しページがUpperページの場合(ステップS2430、Upper)、制御部22は、Vr2のしきい値電圧で読み出しを行う(ステップS2370)。そして、制御部22は、フラグセルFCに完了情報が書き込まれているか否かを判定する(ステップS2440)。フラグセルFCに完了情報が書き込み済みでない場合(ステップS2440、No)、制御部22は、データ記憶セル(Upperページ)の出力データとして全て強制的に“1”を出力する制御を行う(ステップS2450)。 If the page to be read is the Upper page (step S2430, Upper), the control unit 22 reads at the threshold voltage of Vr2 (step S2370). Then, the control unit 22 determines whether completion information is written in the flag cell FC (step S2440). If the completion information has not been written in the flag cell FC (step S2440, No), the control unit 22 forcibly outputs "1" as the output data of the data storage cells (upper page) (step S2450). .

一方、フラグセルFCに完了情報が書き込み済みである場合(ステップS2440、Yes)、制御部22は、Vr5およびVr7のしきい値電圧で読み出しを行う(ステップS2460,S2470)。そして、制御部22は、Vr2、Vr5およびVr7のしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS2780)。 On the other hand, if the completion information has already been written in the flag cell FC (step S2440, Yes), the control unit 22 performs reading at the threshold voltages of Vr5 and Vr7 (steps S2460, S2470). 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, Vr5 and Vr7 (step S2780).

図30は、第5の実施形態に係る外部読み出しコマンドのシーケンスの例を示す図である。本実施形態は、読み出しコマンドは1種類だけである。図30に示すように、読み出し動作を実行するコマンドとして、読み出し開始コマンド(00h)が入力され、その後に読み出し対象ブロック・ページのアドレス(LowerページまたはMiddleページまたはUpperページのアドレス)が入力される。そして、最後に読出し実行コマンド(30h)が入力されると、チップがビジーとなり、メモリチップ内部で読み出しの動作が開始される。このようなプログラムコマンドの入力により、LowerページまたはMiddleページまたはUpperページからデータが読み出される。その後、チップがレディー状態となり、読み出されたデータが出力される。 FIG. 30 is a diagram showing an example of a sequence of external read commands according to the fifth embodiment. In this embodiment, there is only one type of read command. As shown in FIG. 30, a read start command (00h) is input as a command for executing a read operation, and then the address of the block/page to be read (lower page, middle page, or upper page address) is input. . Finally, when the read execution command (30h) is input, the chip becomes busy and the read operation starts inside the memory chip. Data is read from the Lower page, Middle page, or Upper page by inputting such a program command. The chip is then ready to output the read data.

このように第5の実施形態では、フラグセルFCに完了情報を記憶させておくので、1stステージと2ndステージとの何れまで完了したかに依らず、同じ処理順でページデータを読み出すことが可能となる。 As described above, in the fifth embodiment, since the completion information is stored in the flag cell FC, it is possible to read the page data in the same processing order regardless of whether the 1st stage or the 2nd stage has been completed. Become.

(第6の実施形態)
つぎに、図31~図36を用いて第6の実施形態について説明する。第6の実施形態では、3次元構造または2次元構造を有した4bit/Cell(QLC:Quadruple Level Cell)の不揮発性メモリ2に対して2ステージでページ単位の書き込みを実施する。
(Sixth embodiment)
Next, a sixth embodiment will be described with reference to FIGS. 31 to 36. FIG. In the sixth embodiment, page unit writing is performed in two stages to the nonvolatile memory 2 of 4 bits/cell (QLC: Quadruple Level Cell) having a three-dimensional structure or a two-dimensional structure.

図31は、第6の実施形態のしきい値領域の一例を示す図である。図31では、4bit/Cellの不揮発性メモリ2のしきい値分布例を示している。図31の、Er1、A1,B1,C1,D1,E1,F1,G1,H1,I1,J1,K1,L1,M1,N1,O1と記載した16個の分布は、16個のしきい値領域内のそれぞれのしきい値分布を示している。このように、本実施形態の各メモリセルは、15個の境界によって仕切られたしきい値分布を有している。図31の横軸はしきい値電圧を示し、縦軸はメモリセル数(セル数)の分布を示している。 FIG. 31 is a diagram showing an example of threshold regions according to the sixth embodiment. FIG. 31 shows a threshold distribution example of the nonvolatile memory 2 of 4 bits/cell. The 16 distributions labeled Er1, A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, L1, M1, N1, and O1 in FIG. Each threshold distribution within the region is shown. Thus, each memory cell of this embodiment has a threshold distribution partitioned by 15 boundaries. The horizontal axis of FIG. 31 indicates the threshold voltage, and the vertical axis indicates the distribution of the number of memory cells (the number of cells).

本実施形態では、しきい値電圧がVr11以下となる領域を領域Er1とよび、しきい値電圧がVr11より大きくVr12以下となる領域を領域A1とよび、しきい値電圧がVr12より大きくVr13以下となる領域を領域B1とよび、しきい値電圧がVr13より大きくVr14以下となる領域を領域C1とよぶ。また、本実施形態では、しきい値電圧がVr14より大きくVr15以下となる領域を領域D1とよび、しきい値電圧がVr15より大きくVr16以下となる領域を領域E1とよび、しきい値電圧がVr16より大きくVr17以下となる領域を領域F1とよび、しきい値電圧がVr17より大きくVr18以下となる領域を領域G1とよぶ。 In the present embodiment, the region where the threshold voltage is Vr11 or lower is called region Er1, the region where the threshold voltage is higher than Vr11 and lower than or equal to Vr12 is called region A1, and the threshold voltage is higher than Vr12 and lower than or equal to Vr13. A region where the threshold voltage is higher than Vr13 and lower than or equal to Vr14 is referred to as a region C1. In the present embodiment, a region where the threshold voltage is greater than Vr14 and less than or equal to Vr15 is called region D1, and a region where the threshold voltage is greater than Vr15 and less than or equal to Vr16 is called region E1. A region where the threshold voltage is greater than Vr16 and less than or equal to Vr17 is called region F1, and a region where the threshold voltage is greater than Vr17 and less than or equal to Vr18 is called region G1.

また、本実施形態では、しきい値電圧がVr18より大きくVr19以下となる領域を領域H1とよび、しきい値電圧がVr19より大きくVr20以下となる領域を領域I1とよび、しきい値電圧がVr20より大きくVr21以下となる領域を領域J1とよび、しきい値電圧がVr21より大きくVr22以下となる領域を領域K1とよぶ。また、本実施形態では、しきい値電圧がVr22より大きくVr23以下となる領域を領域L1とよび、しきい値電圧がVr23より大きくVr24以下となる領域を領域M1とよび、しきい値電圧がVr24より大きくVr25以下となる領域を領域N1とよび、しきい値電圧がVr25より大きい領域を領域O1とよぶ。 In the present embodiment, a region where the threshold voltage is greater than Vr18 and less than or equal to Vr19 is called region H1, and a region where the threshold voltage is greater than Vr19 and less than or equal to Vr20 is called region I1. A region where the threshold voltage is greater than Vr20 and less than or equal to Vr21 is called region J1, and a region where the threshold voltage is greater than Vr21 and less than or equal to Vr22 is called region K1. In the present embodiment, a region where the threshold voltage is greater than Vr22 and less than or equal to Vr23 is called region L1, and a region where the threshold voltage is greater than Vr23 and less than or equal to Vr24 is called region M1. A region where the threshold voltage is greater than Vr24 and less than or equal to Vr25 is called region N1, and a region where the threshold voltage is greater than Vr25 is called region O1.

また、領域Er1,A1,B1,C1,D1,E1,F1,G1,H1,I1,J1,K1,L1,M1,N1,O1に対応するしきい値分布をそれぞれ分布Er1,A1,B1,C1,D1,E1,F1,G1,H1,I1,J1,K1,L1,M1,N1,O1(第1~第16の分布)と呼ぶ。Vr11~Vr25は、各領域の境界となるしきい値電圧である。 Also, the threshold distributions corresponding to the regions Er1, A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, L1, M1, N1, O1 are represented by distributions Er1, A1, B1, They are called C1, D1, E1, F1, G1, H1, I1, J1, K1, L1, M1, N1, O1 (first to sixteenth distributions). Vr11 to Vr25 are threshold voltages that serve as boundaries between regions.

以下の図32,34,36は、4bit/Cellのメモリセルに対する各プログラムステージ後のしきい値分布を示している。また、図32に示すしきい値分布と図33に示すデータコーディングは、1-4-5-5コーディングに対応している。1-4-5-5コーディングは、ビット値を判定するための境界数が、Lowerページ、Middleページ、Upperページ、Higherページでそれぞれ1,4,5,5である。 The following FIGS. 32, 34 and 36 show threshold distributions after each programming stage for a 4-bit/cell memory cell. Also, the threshold distribution shown in FIG. 32 and the data coding shown in FIG. 33 correspond to 1-4-5-5 coding. In 1-4-5-5 coding, the number of boundaries for determining bit values is 1, 4, 5, and 5 for the Lower page, Middle page, Upper page, and Higher page, respectively.

図32は、第6の実施形態におけるプログラム後のしきい値分布を示す第1例の図である。図32の(T71)は、プログラム前の初期状態である消去状態のしきい値分布を示している。図32の(T72)は、1stステージのプログラム後のしきい値分布を示している。図32の(T73)は、2ndステージのプログラム後のしきい値分布を示している。 FIG. 32 is a diagram of a first example showing a threshold distribution after programming in the sixth embodiment. (T71) in FIG. 32 shows the threshold distribution in the erased state, which is the initial state before programming. (T72) in FIG. 32 shows the threshold distribution after programming of the 1st stage. (T73) in FIG. 32 shows the threshold distribution after programming of the 2nd stage.

図32の(T71)に示すように、NANDメモリセルアレイ23の全メモリセルは、未書き込みの状態では分布Erである。不揮発性メモリ2の制御部22は、図32の(T72)に示すように、1stステージのプログラムでは、LowerページおよびMiddleページに書き込むビット値に応じて、メモリセルごとに分布Erのままとする、または電荷を注入して分布Erよりも上の分布に移動させる。これにより、メモリセルは、LowerページデータおよびMiddleページデータによって、4値のレベルにプログラムされる。 As shown in (T71) of FIG. 32, all memory cells of the NAND memory cell array 23 have distribution Er in the unwritten state. As shown in (T72) of FIG. 32, the control unit 22 of the nonvolatile memory 2 keeps the distribution Er for each memory cell according to the bit values written to the Lower page and Middle page in the 1st stage program. , or inject charge to move it to a distribution above the distribution Er. Thereby, the memory cells are programmed to four levels by the Lower page data and the Middle page data.

また、図32の(T73)に示すように、2ndステージのプログラムでは、データの書き込みにはUpperページとHigherページの2ページが必要である。そして、不揮発性メモリ2の制御部22は、2ndステージのプログラム後のしきい値分布を、各隣接する分布が分離された最終状態で16値のレベルとなるようにプログラムする。この場合、全てのページデータの読み出しが可能である。 Also, as shown in (T73) in FIG. 32, in the 2nd stage program, two pages, an Upper page and a Higher page, are required for writing data. Then, the control unit 22 of the nonvolatile memory 2 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. In this case, all page data can be read.

図33は、図32に示すしきい値分布に対応するデータコーディングを示す図である。図33に示すデータコーディングでは、例えば、しきい値電圧がEr1領域内にあるメモリセルは、Upper,Middle,Lower,Higherページに対応するビットのデータ値として“1111”を記憶している状態である。また、しきい値電圧がA1領域内にあるメモリセルは“1011”を記憶している状態である。 FIG. 33 shows data coding corresponding to the threshold distribution shown in FIG. In the data coding shown in FIG. 33, for example, a memory cell whose threshold voltage is in the Er1 area stores "1111" as the data value of bits corresponding to the Upper, Middle, Lower, and Higher pages. be. A memory cell whose threshold voltage is within the A1 area stores "1011".

また、以下の図34に示すしきい値分布と図35に示すデータコーディングは、1-6-4-4コーディングに対応している。1-6-4-4コーディングは、ビット値を判定するための境界数が、Lowerページ、Middleページ、Upperページ、Higherページでそれぞれ1,6,4,4である。 Also, the threshold distribution shown in FIG. 34 and the data coding shown in FIG. 35 correspond to 1-6-4-4 coding. In 1-6-4-4 coding, the number of boundaries for determining bit values is 1, 6, 4, and 4 for the Lower page, Middle page, Upper page, and Higher page, respectively.

図34は、第6の実施形態におけるプログラム後のしきい値分布を示す第2例の図である。図34の(T81)は、プログラム前の初期状態である消去状態のしきい値分布を示している。図34の(T82)は、1stステージのプログラム後のしきい値分布を示している。図34の(T83)は、2ndステージのプログラム後のしきい値分布を示している。 FIG. 34 is a diagram of a second example showing the threshold distribution after programming in the sixth embodiment. (T81) in FIG. 34 shows the threshold distribution in the erased state, which is the initial state before programming. (T82) in FIG. 34 shows the threshold distribution after programming of the 1st stage. (T83) in FIG. 34 shows the threshold distribution after the programming of the 2nd stage.

図34の(T81)に示すように、NANDメモリセルアレイ23の全メモリセルは、未書き込みの状態では分布Erである。不揮発性メモリ2の制御部22は、図34の(T82)に示すように、1stステージのプログラムでは、LowerページおよびMiddleページに書き込むビット値に応じて、メモリセルごとに分布Erのままとする、または電荷を注入して分布Erよりも上の分布に移動させる。これにより、メモリセルは、LowerページデータおよびMiddleページデータによって、4値のレベルにプログラムされる。 As shown in (T81) of FIG. 34, all memory cells of the NAND memory cell array 23 have distribution Er in an unwritten state. As shown in (T82) of FIG. 34, the control unit 22 of the nonvolatile memory 2 maintains the distribution Er for each memory cell according to the bit values written to the Lower page and Middle page in the 1st stage program. , or inject charge to move it to a distribution above the distribution Er. Thereby, the memory cells are programmed to four levels by the Lower page data and the Middle page data.

また、図34の(T83)に示すように、2ndステージのプログラムでは、データの書き込みにはUpperページとHigherページの2ページが必要である。そして、不揮発性メモリ2の制御部22は、2ndステージのプログラム後のしきい値分布を、各隣接する分布が分離された最終状態で16値のレベルとなるようにプログラムする。この場合、全てのページデータの読み出しが可能である。 Also, as shown in (T83) in FIG. 34, in the 2nd stage program, two pages, an Upper page and a Higher page, are required for writing data. Then, the control unit 22 of the nonvolatile memory 2 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. In this case, all page data can be read.

図35は、図34に示すしきい値分布に対応するデータコーディングを示す図である。図35に示すデータコーディングでは、例えば、しきい値電圧がEr1領域内にあるメモリセルは、Upper,Middle,Lower,Higherページに対応するビットのデータ値として“1111”を記憶している状態である。また、しきい値電圧がA1領域内にあるメモリセルは“0111”を記憶している状態である。 FIG. 35 shows data coding corresponding to the threshold distribution shown in FIG. In the data coding shown in FIG. 35, for example, a memory cell whose threshold voltage is in the Er1 area stores "1111" as the data value of bits corresponding to the Upper, Middle, Lower, and Higher pages. be. A memory cell whose threshold voltage is within the A1 area stores "0111".

また、以下の図36に示すしきい値分布と図37に示すデータコーディングは、1-2-6-6コーディングに対応している。1-2-6-6コーディングは、ビット値を判定するための境界数が、Lowerページ、Middleページ、Upperページ、Higherページでそれぞれ1,2,6,6である。 Also, the threshold distribution shown in FIG. 36 and the data coding shown in FIG. 37 correspond to 1-2-6-6 coding. In 1-2-6-6 coding, the number of boundaries for determining bit values is 1, 2, 6, 6 for the Lower page, Middle page, Upper page, and Higher page, respectively.

図36は、第6の実施形態におけるプログラム後のしきい値分布を示す第3例の図である。図36の(T91)は、プログラム前の初期状態である消去状態のしきい値分布を示している。図36の(T92)は、1stステージのプログラム後のしきい値分布を示している。図36の(T93)は、2ndステージのプログラム後のしきい値分布を示している。 FIG. 36 is a diagram of a third example showing the threshold distribution after programming in the sixth embodiment. (T91) in FIG. 36 shows the threshold distribution in the erased state, which is the initial state before programming. (T92) in FIG. 36 shows the threshold distribution after programming of the 1st stage. (T93) in FIG. 36 shows the threshold distribution after the programming of the 2nd stage.

図36の(T91)に示すように、NANDメモリセルアレイ23の全メモリセルは、未書き込みの状態では分布Erである。不揮発性メモリ2の制御部22は、図36の(T92)に示すように、1stステージのプログラムでは、LowerページおよびMiddleページに書き込むビット値に応じて、メモリセルごとに分布Erのままとする、または電荷を注入して分布Erよりも上の分布に移動させる。これにより、メモリセルは、LowerページデータおよびMiddleページデータによって、4値のレベルにプログラムされる。 As shown in (T91) of FIG. 36, all memory cells of the NAND memory cell array 23 have distribution Er in the unwritten state. As shown in (T92) of FIG. 36, the control unit 22 of the nonvolatile memory 2 maintains the distribution Er for each memory cell according to the bit values written to the Lower page and Middle page in the 1st stage program. , or inject charge to move it to a distribution above the distribution Er. Thereby, the memory cells are programmed to four levels by the Lower page data and the Middle page data.

また、図36の(T93)に示すように、2ndステージのプログラムでは、データの書き込みにはUpperページとHigherページの2ページが必要である。そして、不揮発性メモリ2の制御部22は、2ndステージのプログラム後のしきい値分布を、各隣接する分布が分離された最終状態で16値のレベルとなるようにプログラムする。この場合、全てのページデータの読み出しが可能である。 In addition, as shown in (T93) of FIG. 36, in the program of the 2nd stage, two pages, an Upper page and a Higher page, are required for writing data. Then, the control unit 22 of the nonvolatile memory 2 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. In this case, all page data can be read.

図37は、図36に示すしきい値分布に対応するデータコーディングを示す図である。図37に示すデータコーディングでは、例えば、しきい値電圧がEr1領域内にあるメモリセルは、Upper,Middle,Lower,Higherページに対応するビットのデータ値として“1111”を記憶している状態である。また、しきい値電圧がB1領域内にあるメモリセルは“0011”を記憶している状態である。 FIG. 37 shows data coding corresponding to the threshold distribution shown in FIG. In the data coding shown in FIG. 37, for example, a memory cell whose threshold voltage is in the Er1 area stores "1111" as the data value of bits corresponding to the Upper, Middle, Lower, and Higher pages. be. A memory cell whose threshold voltage is within the B1 region stores "0011".

本実施形態においても、第1~第5の実施形態と同様の処理によって、プログラムが実行され、各ページデータの読み出しが行われる。 Also in this embodiment, the program is executed and each page data is read by the same processing as in the first to fifth embodiments.

このように第6の実施形態では、3次元構造または2次元構造を有した4bit/Cellの不揮発性メモリ2に対して2ステージでページ単位の書き込みを実施するので、第1~第5の実施形態と同様の効果を得ることが可能となる。 As described above, in the sixth embodiment, page-based writing is performed in two stages on the 4-bit/cell nonvolatile memory 2 having a three-dimensional structure or a two-dimensional structure. It is possible to obtain the same effect as the form.

なお、第1~第6の実施形態が組み合されてもよい。例えば、第4の実施形態や第5の実施形態に、第2~第4の実施形態の少なくとも1つが組み合されてもよい。 Note that the first to sixth embodiments may be combined. For example, at least one of the second to fourth embodiments may be combined with the fourth or fifth embodiment.

また、第1~第6の実施形態では、不揮発性メモリ2が、NANDメモリを用いて構成されている場合について説明したが、他のタイプのメモリが用いられてもよい。また、第1~第5の実施形態では、不揮発性メモリ2が1-3-3コーディングを適用する場合について説明したが、不揮発性メモリ2が適用するコーディングは、1-3-3コーディングに限らない。例えば、不揮発性メモリ2は、1-2-4コーディングまたは2-3-2コーディングを適用してもよい。 Also, in the first to sixth embodiments, the case where the nonvolatile memory 2 is configured using a NAND memory has been described, but other types of memory may be used. Further, in the first to fifth embodiments, the nonvolatile memory 2 applies 1-3-3 coding, but the coding applied by the nonvolatile memory 2 is limited to 1-3-3 coding. do not have. For example, the non-volatile memory 2 may apply 1-2-4 coding or 2-3-2 coding.

また、図7、図12、図17、図19、図29で説明した、2ndステージ書き込み前と2ndステージ書き込み後の読み出しレベル(Vr1、Vr4)は、2ndステージ書き込み後(T3)の読出しレベル(Vr1,Vr4)と若干異なっていてもよい。また、図21、図24で説明した、2ndステージ書き込み前と2ndステージ書き込み後の読み出しレベル(Vr1、Vr3、Vr5、Vr7)は、2ndステージ書き込み後(T3)の読出しレベル(Vr1、Vr3、Vr5、Vr7)と若干異なっていてもよい。 7, 12, 17, 19, and 29, the read levels (Vr1, Vr4) before the 2nd stage write and after the 2nd stage write are the read levels (T3) after the 2nd stage write (T3). Vr1, Vr4) may be slightly different. Also, the read levels (Vr1, Vr3, Vr5, Vr7) before the 2nd stage write and after the 2nd stage write described with reference to FIGS. , Vr7).

本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 While several embodiments of the invention have been described, these embodiments have been 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, replacements, and modifications can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the scope of the invention described in the claims and equivalents thereof.

1…メモリコントローラ、2…不揮発性メモリ、11…RAM、12…プロセッサ、22…制御部、23…NANDメモリセルアレイ、FC…フラグセル、MT…メモリセルトランジスタ。 DESCRIPTION OF SYMBOLS 1... Memory controller, 2... Non-volatile memory, 11... RAM, 12... Processor, 22... Control part, 23... NAND memory cell array, FC... Flag cell, MT... Memory cell transistor.

Claims (5)

ホストと、
データが消去された消去状態を示す第1のしきい値領域と、前記第1のしきい値領域よりも電圧レベルが高くデータが書き込まれた書き込み状態を示す第2から第16のしきい値領域とを合わせた16個のしきい値領域により、第1から第4ビットで表わせられる4ビットのデータを記憶可能なメモリセルを複数有する不揮発性メモリと、前記ホストから受信したライト要求に応じて、前記第1ビット及び前記第2ビットのデータを書き込む第1プログラムを前記不揮発性メモリに行わせた後に、前記第3ビット及び前記第4ビットのデータを書き込む第2プログラムを前記不揮発性メモリに行わせるメモリコントローラと、を有するメモリシステムと、
を備え、
前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第1ビット及び前記第2ビットのデータに応じて、データが消去された消去状態を示す第17のしきい値領域と、前記第17のしきい値領域よりも電圧レベルが高くデータが書き込まれた書き込み状態を示す第18から第20のしきい値領域とのうちのいずれかのしきい値領域になるように前記第1プログラムを前記不揮発性メモリに行わせるように構成され、
前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第3ビット及び前記第4ビットのデータに応じて、前記第17から第20のしきい値領域のうちのいずれかのしきい値領域から、前記第1から第16のしきい値領域のうちのいずれかのしきい値領域になるように前記第2プログラムを前記不揮発性メモリに行わせるように構成され、
前記第nのしきい値領域は前記第(n-1)のしきい値領域よりも電圧レベルが高く(nは2以上16以下の自然数)、
前記第kのしきい値領域は前記第(k-1)のしきい値領域よりも電圧レベルが高く(kは18以上20以下の自然数)、
前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第3ビット及び前記第4ビットのデータに応じて、前記第17のしきい値領域から、前記第1から第16のしきい値領域のうちのいずれかのしきい値領域になるように前記第2プログラムを前記不揮発性メモリに行わせる場合に、前記第1から第16のしきい値領域のうちの4個の第21のしきい値領域のうちのいずれかのしきい値領域になるように前記第2プログラムを前記不揮発性メモリに行わせるように構成され、
前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第3ビット及び前記第4ビットのデータに応じて、前記第18のしきい値領域から、前記第1から第16のしきい値領域のうちのいずれかのしきい値領域になるように前記第2プログラムを前記不揮発性メモリに行わせる場合に、前記第1から第16のしきい値領域のうちの4個の第22のしきい値領域のうちのいずれかのしきい値領域になるように前記第2プログラムを前記不揮発性メモリに行わせるように構成され、
前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第3ビット及び前記第4ビットのデータに応じて、前記第19のしきい値領域から、前記第1から第16のしきい値領域のうちのいずれかのしきい値領域になるように前記第2プログラムを前記不揮発性メモリに行わせる場合に、前記第1から第16のしきい値領域のうちの4個の第23のしきい値領域のうちのいずれかのしきい値領域になるように前記第2プログラムを前記不揮発性メモリに行わせるように構成され、
前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第3ビット及び前記第4ビットのデータに応じて、前記第20のしきい値領域から、前記第1から第16のしきい値領域のうちのいずれかのしきい値領域になるように前記第2プログラムを前記不揮発性メモリに行わせる場合に、前記第1から第16のしきい値領域のうちの4個の第24のしきい値領域のうちのいずれかのしきい値領域になるように前記第2プログラムを前記不揮発性メモリに行わせるように構成され、
前記4個の第23のしきい値領域のしきい値領域及び前記4個の第24のしきい値領域のしきい値領域はいずれも、前記4個の第21のしきい値領域のうちのいずれのしきい値領域よりも電圧レベルが高く、
前記4個の第23のしきい値領域のしきい値領域及び前記4個の第24のしきい値領域のしきい値領域はいずれも、前記4個の第22のしきい値領域のうちのいずれのしきい値領域よりも電圧レベルが高く、
前記4個の第22のしきい値領域は、前記第1から第16のしきい値領域のうちの連続する4個のしきい値領域であり、
前記4個の第24のしきい値領域は、前記第1から第16のしきい値領域のうちの連続する4個のしきい値領域であり、
前記4個の第21のしきい値領域は、前記第1から第16のしきい値領域のうちの連続する4個のしきい値領域であり、
前記4個の第23のしきい値領域は、前記第1から第16のしきい値領域のうちの連続する4個のしきい値領域であり、
前記4個の第22のしきい値領域のしきい値領域はいずれも、前記4個の第21のしきい値領域のうちのいずれのしきい値領域よりも電圧レベルが高く、
前記4個の第24のしきい値領域のしきい値領域はいずれも、前記4個の第23のしきい値領域のうちのいずれのしきい値領域よりも電圧レベルが高く、
前記第1から第16のしきい値領域のうち隣接するしきい値領域間に存在する15個の境界のうち、前記第1ビットのデータの値の判定に用いられる第1の境界の数、前記第2ビットのデータの値の判定に用いられる第2の境界の数、前記第3ビットのデータの値の判定に用いられる第3の境界の数、前記第4ビットのデータの値の判定に用いられる第4の境界の数が順に1、2、6、6である、
情報処理システム。
host and
A first threshold region indicating an erased state in which data is erased, and second to sixteenth threshold values indicating a written state in which data is written with a voltage level higher than that of the first threshold region. A non-volatile memory having a plurality of memory cells capable of storing 4-bit data represented by the first to fourth bits by means of 16 threshold regions in total, and a write request received from the host. a second program for writing the data of the third bit and the fourth bit after causing the nonvolatile memory to execute the first program for writing the data of the first bit and the second bit; a memory system having a memory controller that causes the
with
The memory controller comprises: a seventeenth threshold region indicating an erased state in which data is erased according to the data of the first bit and the second bit; 18th to 20th threshold regions indicating a write state in which data is written with a voltage level higher than that of the threshold region 17; is configured to cause the non-volatile memory to perform
The memory controller sets the threshold region of the memory cell to any one of the 17th to 20th threshold regions according to the data of the 3rd bit and the 4th bit. configured to cause the non-volatile memory to perform the second program to be in any one of the first to sixteenth threshold regions from the region;
the n-th threshold region has a higher voltage level than the (n-1)th threshold region (n is a natural number of 2 or more and 16 or less);
the kth threshold region has a higher voltage level than the (k-1)th threshold region (k is a natural number between 18 and 20);
The memory controller converts the threshold region in the memory cell from the 17th threshold region to the 1st to 16th threshold values according to the data of the 3rd bit and the 4th bit. When the second programming is performed on the non-volatile memory so as to be any threshold value region among the regions, four twenty-first threshold regions among the first to sixteenth threshold regions configured to cause the non-volatile memory to perform the second program so as to be in any one of the threshold regions;
The memory controller converts the threshold region in the memory cell from the 18th threshold region to the 1st to 16th threshold values according to the data of the 3rd bit and the 4th bit. When the second programming is performed on the non-volatile memory so as to be any threshold value region among the regions, four 22nd threshold regions among the first to sixteenth threshold regions configured to cause the non-volatile memory to perform the second program so as to be in any one of the threshold regions;
The memory controller converts the threshold region in the memory cell from the 19th threshold region to the 1st to 16th threshold values according to the data of the 3rd bit and the 4th bit. When the second programming is performed on the non-volatile memory so as to be any threshold value region among the regions, four twenty-third threshold regions among the first to sixteenth threshold regions configured to cause the non-volatile memory to perform the second program so as to be in any one of the threshold regions;
The memory controller converts the threshold region in the memory cell from the twentieth threshold region to the first to sixteenth threshold values according to the data of the third bit and the fourth bit. When the second programming is performed on the non-volatile memory so as to be any threshold value region among the regions, the four twenty-fourth threshold regions among the first to sixteenth threshold regions configured to cause the non-volatile memory to perform the second program so as to be in any one of the threshold regions;
The threshold regions of the four twenty-third threshold regions and the threshold regions of the four twenty-fourth threshold regions are all of the four twenty-first threshold regions voltage level higher than any of the threshold regions of
The threshold regions of the four twenty-third threshold regions and the threshold regions of the four twenty-fourth threshold regions are all of the four twenty-second threshold regions voltage level higher than any of the threshold regions of
the four twenty-second threshold regions are four consecutive threshold regions among the first to sixteenth threshold regions;
the four twenty-fourth threshold regions are four consecutive threshold regions among the first to sixteenth threshold regions;
the four twenty-first threshold regions are four consecutive threshold regions among the first to sixteenth threshold regions;
the four twenty-third threshold regions are four consecutive threshold regions among the first to sixteenth threshold regions;
any threshold region of the four twenty-second threshold regions has a higher voltage level than any threshold region of the four twenty-first threshold regions;
any of the four twenty-fourth threshold regions has a higher voltage level than any of the four twenty-third threshold regions;
the number of first boundaries used to determine the value of the data of the first bit among 15 boundaries existing between adjacent threshold regions among the first to sixteenth threshold regions; The number of second boundaries used to determine the value of the data of the second bit, the number of third boundaries used to determine the value of the data of the third bit, and the value of the data of the fourth bit the number of fourth boundaries used in is 1, 2, 6, 6 in order,
Information processing system.
ホストと、
データが消去された消去状態を示す第1のしきい値領域と、前記第1のしきい値領域よりも電圧レベルが高くデータが書き込まれた書き込み状態を示す第2から第16のしきい値領域とを合わせた16個のしきい値領域により、第1から第4ビットで表わせられる4ビットのデータを記憶可能なメモリセルを複数有する不揮発性メモリと、前記ホストから受信したライト要求に応じて、前記第1ビット及び前記第2ビットのデータを書き込む第1プログラムを前記不揮発性メモリに行わせた後に、前記第3ビット及び前記第4ビットのデータを書き込む第2プログラムを前記不揮発性メモリに行わせるメモリコントローラと、を有するメモリシステムと、
を備え、
前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第1ビット及び前記第2ビットのデータに応じて、データが消去された消去状態を示す第17のしきい値領域と、前記第17のしきい値領域よりも電圧レベルが高くデータが書き込まれた書き込み状態を示す第18から第20のしきい値領域とのうちのいずれかのしきい値領域になるように前記第1プログラムを前記不揮発性メモリに行わせるように構成され、
前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第3ビット及び前記第4ビットのデータに応じて、前記第17から第20のしきい値領域のうちのいずれかのしきい値領域から、前記第1から第16のしきい値領域のうちのいずれかのしきい値領域になるように前記第2プログラムを前記不揮発性メモリに行わせるように構成され、
前記第nのしきい値領域は前記第(n-1)のしきい値領域よりも電圧レベルが高く(nは2以上16以下の自然数)、
前記第kのしきい値領域は前記第(k-1)のしきい値領域よりも電圧レベルが高く(kは18以上20以下の自然数)、
前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第3ビット及び前記第4ビットのデータに応じて、前記第17のしきい値領域から、前記第1から第16のしきい値領域のうちのいずれかのしきい値領域になるように前記第2プログラムを前記不揮発性メモリに行わせる場合に、前記第1から第16のしきい値領域のうちの4個の第21のしきい値領域のうちのいずれかのしきい値領域になるように前記第2プログラムを前記不揮発性メモリに行わせるように構成され、
前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第3ビット及び前記第4ビットのデータに応じて、前記第18のしきい値領域から、前記第1から第16のしきい値領域のうちのいずれかのしきい値領域になるように前記第2プログラムを前記不揮発性メモリに行わせる場合に、前記第1から第16のしきい値領域のうちの4個の第22のしきい値領域のうちのいずれかのしきい値領域になるように前記第2プログラムを前記不揮発性メモリに行わせるように構成され、
前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第3ビット及び前記第4ビットのデータに応じて、前記第19のしきい値領域から、前記第1から第16のしきい値領域のうちのいずれかのしきい値領域になるように前記第2プログラムを前記不揮発性メモリに行わせる場合に、前記第1から第16のしきい値領域のうちの4個の第23のしきい値領域のうちのいずれかのしきい値領域になるように前記第2プログラムを前記不揮発性メモリに行わせるように構成され、
前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第3ビット及び前記第4ビットのデータに応じて、前記第20のしきい値領域から、前記第1から第16のしきい値領域のうちのいずれかのしきい値領域になるように前記第2プログラムを前記不揮発性メモリに行わせる場合に、前記第1から第16のしきい値領域のうちの4個の第24のしきい値領域のうちのいずれかのしきい値領域になるように前記第2プログラムを前記不揮発性メモリに行わせるように構成され、
前記4個の第23のしきい値領域のしきい値領域及び前記4個の第24のしきい値領域のしきい値領域はいずれも、前記4個の第21のしきい値領域のうちのいずれのしきい値領域よりも電圧レベルが高く、
前記4個の第23のしきい値領域のしきい値領域及び前記4個の第24のしきい値領域のしきい値領域はいずれも、前記4個の第22のしきい値領域のうちのいずれのしきい値領域よりも電圧レベルが高く、
前記4個の第22のしきい値領域は、前記第1から第16のしきい値領域のうちの連続する4個のしきい値領域であり、
前記4個の第24のしきい値領域は、前記第1から第16のしきい値領域のうちの連続する4個のしきい値領域であり、
前記連続する4個の第22のしきい値領域は、前記4個の第21のしきい値領域のうちの1個のしきい値領域よりも電圧レベルが低く、前記4個の第21のしきい値領域のうちの残りの3個のしきい値領域よりも電圧レベルが高い、
情報処理システム。
host and
A first threshold region indicating an erased state in which data is erased, and second to sixteenth threshold values indicating a written state in which data is written with a voltage level higher than that of the first threshold region. A non-volatile memory having a plurality of memory cells capable of storing 4-bit data represented by the first to fourth bits by means of 16 threshold regions in total, and a write request received from the host. a second program for writing the data of the third bit and the fourth bit after causing the nonvolatile memory to execute the first program for writing the data of the first bit and the second bit; a memory system having a memory controller that causes the
with
The memory controller comprises: a seventeenth threshold region indicating an erased state in which data is erased according to the data of the first bit and the second bit; 18th to 20th threshold regions indicating a write state in which data is written with a voltage level higher than that of the threshold region 17; is configured to cause the non-volatile memory to perform
The memory controller sets the threshold region of the memory cell to any one of the 17th to 20th threshold regions according to the data of the 3rd bit and the 4th bit. configured to cause the non-volatile memory to perform the second program to be in any one of the first to sixteenth threshold regions from the region;
the n-th threshold region has a higher voltage level than the (n-1)th threshold region (n is a natural number of 2 or more and 16 or less);
the kth threshold region has a higher voltage level than the (k-1)th threshold region (k is a natural number between 18 and 20);
The memory controller converts the threshold region in the memory cell from the 17th threshold region to the 1st to 16th threshold values according to the data of the 3rd bit and the 4th bit. When the second programming is performed on the non-volatile memory so as to be any threshold value region among the regions, four twenty-first threshold regions among the first to sixteenth threshold regions configured to cause the non-volatile memory to perform the second program so as to be in any one of the threshold regions;
The memory controller converts the threshold region in the memory cell from the 18th threshold region to the 1st to 16th threshold values according to the data of the 3rd bit and the 4th bit. When the second programming is performed on the non-volatile memory so as to be any threshold value region among the regions, four 22nd threshold regions among the first to sixteenth threshold regions configured to cause the non-volatile memory to perform the second program so as to be in any one of the threshold regions;
The memory controller converts the threshold region in the memory cell from the 19th threshold region to the 1st to 16th threshold values according to the data of the 3rd bit and the 4th bit. When the second programming is performed on the non-volatile memory so as to be any threshold value region among the regions, four twenty-third threshold regions among the first to sixteenth threshold regions configured to cause the non-volatile memory to perform the second program so as to be in any one of the threshold regions;
The memory controller converts the threshold region in the memory cell from the twentieth threshold region to the first to sixteenth threshold values according to the data of the third bit and the fourth bit. When the second programming is performed on the non-volatile memory so as to be any threshold value region among the regions, the four twenty-fourth threshold regions among the first to sixteenth threshold regions configured to cause the non-volatile memory to perform the second program so as to be in any one of the threshold regions;
The threshold regions of the four twenty-third threshold regions and the threshold regions of the four twenty-fourth threshold regions are all of the four twenty-first threshold regions voltage level higher than any of the threshold regions of
The threshold regions of the four twenty-third threshold regions and the threshold regions of the four twenty-fourth threshold regions are all of the four twenty-second threshold regions voltage level higher than any of the threshold regions of
the four twenty-second threshold regions are four consecutive threshold regions among the first to sixteenth threshold regions;
the four twenty-fourth threshold regions are four consecutive threshold regions among the first to sixteenth threshold regions;
The continuous four twenty-second threshold regions have a lower voltage level than one threshold region of the four twenty-first threshold regions, and the four twenty-first threshold regions a higher voltage level than the remaining three of the threshold regions;
Information processing system.
前記連続する4個の第24のしきい値領域は、前記4個の第23のしきい値領域のうちの1個のしきい値領域よりも電圧レベルが低く、前記4個の第23のしきい値領域のうちの残りの3個のしきい値領域よりも電圧レベルが高い、請求項2に記載の情報処理システム。 The continuous four twenty-fourth threshold regions have a lower voltage level than one threshold region of the four twenty-third threshold regions, and the four twenty-third threshold regions 3. The information handling system of claim 2, wherein the voltage level is higher than the remaining three of the threshold regions. 前記第1から第16のしきい値領域のうち隣接するしきい値領域間に存在する15個の境界のうち、前記第1ビットのデータの値の判定に用いられる第1の境界の数、前記第2ビットのデータの値の判定に用いられる第2の境界の数、前記第3ビットのデータの値の判定に用いられる第3の境界の数、前記第4ビットのデータの値の判定に用いられる第4の境界の数が順に1、4、5、5である、請求項2又は請求項3に記載の情報処理システム。 the number of first boundaries used to determine the value of the data of the first bit among 15 boundaries existing between adjacent threshold regions among the first to sixteenth threshold regions; The number of second boundaries used to determine the value of the data of the second bit, the number of third boundaries used to determine the value of the data of the third bit, and the value of the data of the fourth bit 4. An information processing system according to claim 2 or 3, wherein the number of fourth boundaries used for is 1, 4, 5, 5 in order. 前記メモリコントローラは、前記第1プログラムを前記不揮発性メモリに行わせた後に前記不揮発性メモリから前記第1プログラムにより書き込まれたデータを読み出し、前記読み出したデータをエラー訂正し、前記エラー訂正されたデータと、前記第3ビット及び前記第4ビットのデータと、を使用して前記第2プログラムを前記不揮発性メモリに行わせるように構成されることを特徴とする、請求項1から請求項4のうちのいずれか一項に記載の情報処理システム。 The memory controller reads the data written by the first program from the nonvolatile memory after causing the first program to be executed in the nonvolatile memory, corrects the error in the read data, and corrects the error. 4. The non-volatile memory is configured to execute the second program using the data and the data of the third bit and the fourth bit. The information processing system according to any one of the items.
JP2021148809A 2020-07-22 2021-09-13 Information processing system Active JP7135185B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021148809A JP7135185B2 (en) 2020-07-22 2021-09-13 Information processing system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020125604A JP6949178B2 (en) 2016-06-30 2020-07-22 Memory system
JP2021148809A JP7135185B2 (en) 2020-07-22 2021-09-13 Information processing system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2020125604A Division JP6949178B2 (en) 2016-06-30 2020-07-22 Memory system

Publications (2)

Publication Number Publication Date
JP2022002163A JP2022002163A (en) 2022-01-06
JP7135185B2 true JP7135185B2 (en) 2022-09-12

Family

ID=79244268

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021148809A Active JP7135185B2 (en) 2020-07-22 2021-09-13 Information processing system

Country Status (1)

Country Link
JP (1) JP7135185B2 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007157315A (en) 2005-11-11 2007-06-21 Toshiba Corp Semiconductor memory device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007157315A (en) 2005-11-11 2007-06-21 Toshiba Corp Semiconductor memory device

Also Published As

Publication number Publication date
JP2022002163A (en) 2022-01-06

Similar Documents

Publication Publication Date Title
CN112837734B (en) Storage system
US10684914B2 (en) Memory device and method of controlling ECC operation in the same
US9991007B2 (en) Nonvolatile memory device and a method of operating the same
US8446766B2 (en) Nonvolatile memory device and related programming method
US9478304B2 (en) Semiconductor memory device and operating method thereof
TWI760795B (en) memory system
JP2018045387A (en) Memory system
TWI655636B (en) Semiconductor memory device
JP2020047330A (en) Semiconductor storage device
JP2020047329A (en) Semiconductor storage device
US11562804B2 (en) Storage devices and methods of operating storage devices
JP7135185B2 (en) Information processing system
JP6759440B2 (en) Memory system
JP6949178B2 (en) Memory system
CN112825026B (en) Memory system
JP2022051369A (en) Semiconductor storage device
CN118152173A (en) Error correction code decoder, memory controller and memory device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210913

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220831

R151 Written notification of patent or utility model registration

Ref document number: 7135185

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151