JP7414669B2 - memory system - Google Patents
memory system Download PDFInfo
- Publication number
- JP7414669B2 JP7414669B2 JP2020144847A JP2020144847A JP7414669B2 JP 7414669 B2 JP7414669 B2 JP 7414669B2 JP 2020144847 A JP2020144847 A JP 2020144847A JP 2020144847 A JP2020144847 A JP 2020144847A JP 7414669 B2 JP7414669 B2 JP 7414669B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- program
- threshold
- bit
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims description 501
- 238000003860 storage Methods 0.000 claims description 18
- 230000008859 change Effects 0.000 claims description 14
- 238000012937 correction Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 96
- 238000000034 method Methods 0.000 description 57
- 238000009826 distribution Methods 0.000 description 51
- 238000012545 processing Methods 0.000 description 29
- 230000008569 process Effects 0.000 description 14
- 230000007704 transition Effects 0.000 description 11
- 238000012546 transfer Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 8
- 238000009792 diffusion process Methods 0.000 description 4
- 239000012535 impurity Substances 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000005684 electric field Effects 0.000 description 3
- 239000000758 substrate Substances 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 102100036848 C-C motif chemokine 20 Human genes 0.000 description 1
- 102100035353 Cyclin-dependent kinase 2-associated protein 1 Human genes 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
- Semiconductor Memories (AREA)
- Non-Volatile Memory (AREA)
- Vehicle Body Suspensions (AREA)
- Iron Core Of Rotating Electric Machines (AREA)
- Soundproofing, Sound Blocking, And Sound Damping (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本開示の実施形態は、メモリシステムに関する。 Embodiments of the present disclosure relate to memory systems.
NAND型フラッシュメモリでは、メモリセルに複数ビットからなる多値データを書き込むのが一般的であり、メモリセルに3ビットからなる多値データを書き込むTLC(Triple Level Cell)技術が実用化されている。今後は、4ビットからなる多値データを書き込むQLC(Quadruple Level Cell)技術が主流になると考えられている。 In NAND flash memory, it is common to write multi-value data consisting of multiple bits into memory cells, and TLC (Triple Level Cell) technology, which writes multi-value data consisting of 3 bits into memory cells, has been put into practical use. . In the future, it is thought that QLC (Quadruple Level Cell) technology, which writes multivalued data consisting of 4 bits, will become mainstream.
QLCでは、セル間相互干渉を避けるため、第1のメモリセルに4ビットデータを同時に書き込んだ後、隣接セルにも同様に4ビットデータを同時に書き込み、その後に、再び第1のメモリセルに4ビットデータを同時に再書き込みする手法が検討されている。しかしながら、この手法では、再書き込みが完了するまで4ビットデータをメモリコントローラ内の書込みバッファに保持しておく必要がある。 In QLC, in order to avoid mutual interference between cells, 4-bit data is simultaneously written into the first memory cell, 4-bit data is written simultaneously into the adjacent cell, and then 4-bit data is written into the first memory cell again. A method of simultaneously rewriting bit data is being considered. However, this technique requires that 4-bit data be held in a write buffer within the memory controller until rewriting is complete.
近年のNANDメモリは3次元化されており、必要とされる書き込みバッファのメモリ容量が増大し、書込みバッファを内蔵したメモリコントローラのコストが高くなるという問題がある。このため、3次元の不揮発性メモリにおいても、メモリコントローラの書き込みバッファ量を低減する対策が必要である。 In recent years, NAND memories have become three-dimensional, which increases the memory capacity of the write buffer required, resulting in an increase in the cost of a memory controller with a built-in write buffer. Therefore, even in three-dimensional nonvolatile memory, measures are required to reduce the write buffer amount of the memory controller.
セル間相互干渉を避けつつ、メモリコントローラの書き込みバッファ量を削減する対策として、メモリセルに各ビットのデータを書き込む際に、2つのステージに分けて書き込むことで、全ビットデータの再書き込みを不要とする手法が知られている。 As a measure to reduce the write buffer size of the memory controller while avoiding mutual interference between cells, when writing each bit of data to a memory cell, it is written in two stages, eliminating the need to rewrite all bits of data. There are known methods to do this.
しかしながら、この手法では、メモリセルに各ビットデータを書き込む際のビットエラー率の偏りが大きいという問題がある。 However, this method has a problem in that the bit error rate when writing each bit data to the memory cell is highly biased.
QLC技術の信頼性を向上するには、セル間相互干渉を避け、かつメモリコントローラ内の書き込みバッファの容量を削減し、かつ各ビットデータを書き込む際のビットエラー率の偏りを抑制する必要がある。 To improve the reliability of QLC technology, it is necessary to avoid mutual interference between cells, reduce the capacity of the write buffer in the memory controller, and suppress the bias in the bit error rate when writing each bit of data. .
本開示の一態様では、セル間相互干渉を避け、かつメモリコントローラ内の書き込みバッファの容量を削減し、かつ各ビットデータを書き込む際のビットエラー率の偏りを抑制できるメモリシステムを提供するものである。 One aspect of the present disclosure provides a memory system that can avoid mutual interference between cells, reduce the capacity of a write buffer in a memory controller, and suppress bias in bit error rate when writing each bit data. be.
本実施形態によれば、各々が、データが消去された消去状態を示す第1のしきい値領域と、前記第1のしきい値領域よりも電圧レベルが高くデータが書き込まれた書き込み状態を示す第2乃至第16のしきい値領域とを含む16個のしきい値領域により、第1乃至第4ビットで表わせられる4ビットのデータを記憶可能な複数のメモリセルを有する不揮発性メモリと、
前記第1ビット、前記第2ビット、前記第4ビットのデータを書き込む第1プログラムを前記不揮発性メモリに行わせた後に、前記第3ビットのデータを書き込む第2プログラムを前記不揮発性メモリに行わせるメモリコントローラと、
を備え、
前記第1乃至第16のしきい値領域のうち隣接するしきい値領域間に存在する15個の境界のうち、前記第1ビットのデータの値の判定に用いられる第1の境界の数、前記第2ビットのデータの値の判定に用いられる第2の境界の数、前記第3ビットのデータの値の判定に用いられる第3の境界の数、前記第4ビットのデータの値の判定に用いられる第4の境界の数のうち最大の値は5であり、二番目に大きな値は4であり、
前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第1ビット、前記第2ビット、前記第4ビットのデータに応じて、データが消去された消去状態を示す第17のしきい値領域と、前記第17のしきい値領域よりも電圧レベルが高くデータが書き込まれた書き込み状態を示す第18乃至第24のしきい値領域のいずれかのしきい値領域となるように前記第1プログラムを前記不揮発性メモリに行わせるように構成され、 前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第3ビットのデータに応じて、前記第17乃至第24のしきい値領域のうちいずれかのしきい値領域から前記第1乃至第16のしきい値領域のうちの2個のしきい値領域内のいずれかのしきい値領域となるように前記第2プログラムを前記不揮発性メモリに行わせるように構成され、
前記2個のしきい値領域のうち電圧レベルが最低のしきい値領域と電圧レベルが最高のしきい値領域との間にあるしきい値領域の個数が2個以内であり、
前記メモリコントローラは、前記第2プログラムを前記不揮発性メモリに行わせる場合に、前記第2ビットのデータと前記第3ビットのデータとを前記不揮発性メモリへ入力するように構成される、メモリシステムが提供される。
According to the present embodiment, each has a first threshold area indicating an erased state in which data is erased, and a written state in which data is written at a voltage level higher than the first threshold area. A non-volatile memory having a plurality of memory cells capable of storing 4-bit data represented by the 1st to 4th bits by 16 threshold areas including the second to 16th threshold areas shown in FIG. ,
After causing the nonvolatile memory to execute a first program for writing the data of the first bit, the second bit, and the fourth bit, a second program for writing the data of the third bit is executed for the nonvolatile memory. memory controller,
Equipped with
The number of first boundaries used to determine the value of the first bit data among the 15 boundaries existing between adjacent threshold areas among the first to 16th threshold areas; the number of second boundaries used to determine the value of the second bit data; the number of third boundaries used to determine the value of the third bit data; and the determination of the value of the fourth bit data. The maximum value of the number of fourth boundaries used for is 5, the second largest value is 4,
The memory controller is configured such that a threshold region in the memory cell has a seventeenth threshold value indicating an erased state in which data is erased according to data of the first bit, the second bit, and the fourth bit. area and the 18th to 24th threshold areas, which indicate a write state in which data is written and whose voltage level is higher than the 17th threshold area. The memory controller is configured to cause the nonvolatile memory to perform one program, and the memory controller is configured to set the threshold area of the memory cell to the seventeenth to twenty-fourth threshold values according to the data of the third bit. The second program is configured to change from one of the threshold areas to one of the two threshold areas among the first to sixteenth threshold areas. configured to cause the non-volatile memory to perform;
The number of threshold regions between the threshold region with the lowest voltage level and the threshold region with the highest voltage level among the two threshold regions is 2 or less,
The memory system is configured such that the memory controller inputs the second bit data and the third bit data to the nonvolatile memory when causing the nonvolatile memory to execute the second program. is provided.
図1は第1の実施形態によるメモリシステム1の概略構成を示すブロック図である。図1のメモリシステム1は、メモリコントローラ2と不揮発性メモリ3とを備える。図1のメモリシステム1は、ホストプロセッサ(以下、単にホストと呼ぶ)4と接続可能である。ホスト4は、例えば、パーソナルコンピュータ、携帯端末などの電子機器である。
FIG. 1 is a block diagram showing a schematic configuration of a
不揮発性メモリ3は、データを不揮発に記憶するメモリであり、例えば、NANDフラッシュメモリ(以下、NANDメモリと呼ぶこともある)5を備えている。本実施形態では、不揮発性メモリ3が、メモリセルあたり4ビットのデータを記憶可能なメモリセルを有する4ビット/Cell(QLC:Quad Level Cell)のNANDメモリ5である例を説明する。本実施形態による不揮発性メモリ3は、メモリセルが立体的に積層された3次元構造を有する。不揮発性メモリ3は、各々が、データが消去された消去状態を示す第1のしきい値領域と、第1のしきい値領域よりも電圧レベルが高くデータが書き込まれた書き込み状態を示す第2乃至第16のしきい値領域とを含む16個のしきい値領域により、第1乃至第4ビットで表わせられる4ビットのデータを記憶可能な複数のメモリセルを有する。例えば、第1ビットは最下位のLowerビット、前記第2ビットは二番目に小さいMiddleビット、前記第3ビットは二番目に大きいUpperビット、前記第4ビットは最上位のTopビットである。
The
メモリコントローラ2は、ホスト4からの書き込みコマンドに従って不揮発性メモリ3へのデータの書き込みを制御する。また、メモリコントローラ2は、ホスト4からの読み出しコマンドに従って不揮発性メモリ3からのデータの読み出しを制御する。メモリコントローラ2は、RAM(Random Access Memory)6、ROM(Read Only Memory)7、プロセッサ8、ホストインターフェイス9、ECC(Error Check and Correct)回路10及びメモリインターフェイス11を備える。RAM6、プロセッサ8、ホストインターフェイス9、ECC回路10及びメモリインターフェイス11は、共通の内部バス12で接続される。
The
後述するように、本実施形態のメモリコントローラ2は、第1ビット、第2ビット、第4ビットのデータを書き込む第1プログラムを不揮発性メモリ3に行わせた後に、第3ビットのデータを書き込む第2プログラムを不揮発性メモリ3に行わせる。第1乃至第16のしきい値領域のうち隣接するしきい値領域間に存在する15個の境界のうち、第1ビットのデータの値の判定に用いられる第1の境界の数、第2ビットのデータの値の判定に用いられる第2の境界の数、第3ビットのデータの値の判定に用いられる第3の境界の数、第4ビットのデータの値の判定に用いられる第4の境界の数のうち最大の値は5であり、二番目に大きな値は4である。メモリコントローラ2は、メモリセルにおけるしきい値領域が、第1ビット、第2ビット、第4ビットのデータに応じて、データが消去された消去状態を示す第17のしきい値領域と、第17のしきい値領域よりも電圧レベルが高くデータが書き込まれた書き込み状態を示す第18乃至第24のしきい値領域のいずれかのしきい値領域となるように第1プログラムを不揮発性メモリ3に行わせるように構成される。メモリコントローラ2は、メモリセルにおけるしきい値領域が、第3ビットのデータに応じて、第17乃至第24のしきい値領域のうちいずれかのしきい値領域から第1乃至第16のしきい値領域のうちの2個のしきい値領域内のいずれかのしきい値領域となるように第2プログラムを不揮発性メモリ3に行わせるように構成される。2個のしきい値領域のうち電圧レベルが最低のしきい値領域と電圧レベルが最高のしきい値領域との間にあるしきい値領域の個数が2個以内である。メモリコントローラ2は、第2プログラムを不揮発性メモリ3に行わせる場合に、第2ビットのデータと第3ビットのデータとを不揮発性メモリ3へ入力するように構成される。
As described later, the
より詳細には、メモリコントローラ2は、16個のしきい値領域(第1乃至第16のしきい値領域)間の15個の境界のうち、隣接するしきい値領域間で、第1ビットの値が異なる境界の数、第2ビットの値が異なる境界の数、第3ビットの値が異なる境界の数、及び第4ビットの値が異なる境界の数が順に(1、4、5、5)、(1、5、4、5)、又は(3、3、4、5)となるように第1プログラム及び第2プログラムを不揮発性メモリに行わせる。
More specifically, the
あるいは、本実施形態のメモリコントローラ2は、第1ビット、第2ビット、第4ビットのデータを書き込む第1プログラムを不揮発性メモリ3に行わせた後に、第3ビットのデータを書き込む第2プログラムを不揮発性メモリ3に行わせる。第1乃至第16のしきい値領域のうち隣接するしきい値領域間に存在する15個の境界のうち、第1ビットのデータの値の判定に用いられる第1の境界の数、第2ビットのデータの値の判定に用いられる第2の境界の数、第3ビットのデータの値の判定に用いられる第3の境界の数、第4ビットのデータの値の判定に用いられる第4の境界の数は順に(3、5、2、5)である。メモリコントローラ2は、メモリセルにおけるしきい値領域が、第1ビット、第2ビット、第4ビットのデータに応じて、データが消去された消去状態を示す第17のしきい値領域と、第17のしきい値領域よりも電圧レベルが高くデータが書き込まれた書き込み状態を示す第18乃至第24のしきい値領域のいずれかのしきい値領域となるように第1プログラムを不揮発性メモリ3に行わせるように構成される。メモリコントローラ2は、メモリセルにおけるしきい値領域が、第3ビットのデータに応じて、第17乃至第24のしきい値領域のうちいずれかのしきい値領域から第1乃至第16のしきい値領域のうちの2個のしきい値領域内のいずれかのしきい値領域となるように第2プログラムを不揮発性メモリ3に行わせるように構成される。2個のしきい値領域のうち電圧レベルが最低のしきい値領域と電圧レベルが最高のしきい値領域との間にあるしきい値領域の個数が2個以内である。メモリコントローラ2は、第2プログラムを不揮発性メモリ3に行わせる場合に、第2ビットのデータと第3ビットのデータとを不揮発性メモリ3へ入力するように構成される。
Alternatively, the
メモリコントローラ2は、第17乃至第24のしきい値領域のうち第2ビットのデータの値が異なる2つのしきい値領域の間の電圧レベルの差が、第1ビットのデータの値が異なる2つのしきい値領域の間の電圧レベルの差よりも小さく、かつ第4ビットのデータの値が異なる2つのしきい値領域の間の電圧レベルの差よりも小さくなるように第1プログラムを不揮発性メモリに行わせてもよい。
The
あるいは、メモリコントローラ2は、第2ビットのデータの値が異なる第1プログラム時の2つのしきい値領域の間隔よりも、2つのしきい値領域に対して第3ビットのデータにより第2プログラムを行って得られる4つのしきい値領域のうち隣接するしきい値領域の間隔が広くなるように、第2プログラムを不揮発性メモリに行わせてもよい。
Alternatively, the
ホストインターフェイス9は、ホスト4から受信したコマンド、ユーザデータ(書き込みデータ)などを内部バス12に出力する。また、ホストインターフェイス9は、不揮発性メモリ3から読み出されたユーザデータやプロセッサ8からの応答などをホスト4へ送信する。
The
メモリインターフェイス11は、プロセッサ8の指示に基づいて、ユーザデータ等を不揮発性メモリ3へ書き込む処理と不揮発性メモリ3から読み出す処理を制御する。
The
プロセッサ8は、メモリコントローラ2を統括的に制御する。プロセッサ8は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等である。プロセッサ8は、ホスト4からホストインターフェイス9経由でコマンドを受けた場合に、そのコマンドに従った制御を行う。例えば、プロセッサ8は、ホスト4からのコマンドに従って、不揮発性メモリ3へのユーザデータ及びパリティの書き込みをメモリインターフェイス11へ指示する。また、プロセッサ8は、ホスト4からのコマンドに従って、不揮発性メモリ3からのユーザデータ及びパリティの読み出しを、メモリインターフェイス11へ指示する。
The
ユーザデータは、内部バス12経由でRAM6に格納される。プロセッサ8は、RAM6に格納されるユーザデータに対して、不揮発性メモリ3上の格納領域(メモリ領域)を決定する。プロセッサ8は、書き込み単位であるページ単位のデータ(ページデータ)に対して、不揮発性メモリ3上のメモリ領域を決定する。本明細書では、不揮発性メモリ3の1ページに格納されるユーザデータをユニットデータと定義する。ユニットデータは、一般には符号化されて符号語として不揮発性メモリ3に格納されるが、符号化は必須ではない。メモリコントローラ2は、符号化せずにユニットデータを不揮発性メモリ3に格納してもよいが、図1では、一構成例として符号化を行う構成を示している。メモリコントローラ2が符号化を行わない場合には、ページデータはユニットデータと一致する。また、1つのユニットデータに基づいて1つの符号語が生成されてもよいし、ユニットデータが分割された分割データに基づいて1つの符号語が生成されてもよい。また、複数のユニットデータを用いて1つの符号語が生成されてもよい。
User data is stored in
プロセッサ8は、ユニットデータごとに書き込み先の不揮発性メモリ3のメモリ領域を決定する。不揮発性メモリ3のメモリ領域には物理アドレスが割当てられている。プロセッサ8は、ユニットデータの書き込み先のメモリ領域を、物理アドレスを用いて管理する。プロセッサ8は、決定したメモリ領域(物理アドレス)を指定してユーザデータを不揮発性メモリ3へ書き込むようメモリインターフェイス11へ指示する。一方、ホスト4は論理アドレスでデータを管理する。このため、プロセッサ8は、ユーザデータの論理アドレスと物理アドレスとの対応関係を管理する。プロセッサ8は、ホスト4からの論理アドレスを含む読み出しコマンドを受信した場合は、論理アドレスに対応する物理アドレスを特定し、物理アドレスを指定してユーザデータの読み出しをメモリインターフェイス11へ指示する。
The
本明細書では、1つのワード線に共通に接続された複数のメモリセルをメモリセルグループMGと定義する。1つのメモリセルグループMGが書込み(プログラム)の単位になる。本実施形態では、不揮発性メモリ3は、4ビット/CellのNANDメモリ5であり、1つのメモリセルグループMGは4ビット×ビット数分のデータ量を有する。各メモリセルに書き込まれる各ビットは、それぞれ異なるページに対応する。本実施形態では、1つのメモリセルグループMGの4ページを、Lowerページ(第1のページ)、Middleページ(第2のページ)、Upperページ(第3のページ)、Topページ(第4のページ)と呼ぶ。
In this specification, a plurality of memory cells commonly connected to one word line are defined as a memory cell group MG. One memory cell group MG becomes a write (program) unit. In this embodiment, the
ECC回路10は、RAM6に格納されたユーザデータを符号化して、符号語を生成する。また、ECC回路10は、不揮発性メモリ3から読み出された符号語を復号する。ECC回路10は、不揮発性メモリ3から読み出した符号語に含まれるビットエラーを訂正した上で、ユーザデータに復号する。
The
RAM6は、ホスト4から受信したユーザデータを不揮発性メモリ3へ記憶するまでに一時的に格納したり、不揮発性メモリ3から読み出したデータをホスト4へ送信するまでに一時的に格納する。RAM6は、例えば、SRAM(Static Random Access Memory)やDRAM(Dynamic Random Access Memory)などの汎用メモリである。
The
図1では、メモリコントローラ2が、ECC回路10とメモリインターフェイス11をそれぞれ備える構成例を示した。しかしながら、ECC回路10がメモリインターフェイス11に内蔵されていてもよい。また、ECC回路10が、不揮発性メモリ3に内蔵されていてもよい。
FIG. 1 shows a configuration example in which the
ホスト4からライト要求を受信した場合、メモリシステム1は次のように動作する。プロセッサ8は、ライトデータをRAM6に一時的に格納する。プロセッサ8は、RAM6に格納されたデータをリードし、ECC回路10に入力する。ECC回路10は、入力されたデータを符号化し、符号語をメモリインターフェイス11に入力する。メモリインターフェイス11は、入力された符号語を不揮発性メモリ3に書き込む。
When receiving a write request from the
ホスト4からリード要求を受信した場合、メモリシステム1は次のように動作する。メモリインターフェイス11は、不揮発性メモリ3から読み出した符号語をECC回路10に入力する。ECC回路10は、入力された符号語を復号し、復号されたデータをRAM6に一時的に格納する。プロセッサ8は、RAM6に格納されたデータを、ホストインターフェイス9を介してホスト4に送信する。なお、不揮発性メモリ3は、複数のチップで構成される場合もあり、不揮発性メモリ3とメモリインターフェイス11は、貫通ビア(TSV:Through Silicon Via)によって接続することも可能である。
When receiving a read request from the
なお、図1に示すメモリコントローラ2の構成は一例であり、内部バス12が分割構造や階層構造になったり、あるいは付加的な機能ブロックが接続されるなど、他にも様々な派生的な形態をとりうる。
Note that the configuration of the
図2は、本実施形態の不揮発性メモリ3の内部構成の一例を示すブロック図である。不揮発性メモリ3は、NAND I/Oインターフェイス21、制御部22、NANDメモリセルアレイ(メモリセル部)23、及びページバッファ(第2記憶部)24を備える。不揮発性メモリ3は、例えば半導体基板(例えば、シリコン基板)上に形成されてチップ化される。
FIG. 2 is a block diagram showing an example of the internal configuration of the
制御部22は、NAND I/Oインターフェイス21経由でメモリコントローラ2からのコマンド等に基づいて、不揮発性メモリ3の動作を制御する。具体的には、制御部22は、書き込み要求が入力された場合、書き込みが要求されたデータをNANDメモリセルアレイ23上の指定されたアドレスへ書き込むよう制御する。また、制御部22は、読み出し要求が入力された場合、読み出しが要求されたデータをNANDメモリセルアレイ23から読み出して、NAND I/Oインターフェイス21経由でメモリコントローラ2へ出力するよう制御する。ページバッファ24は、NANDメモリセルアレイ23の書き込み時にメモリコントローラ2から入力されたデータを一時的に格納したり、NANDメモリセルアレイ23から読み出したデータを一時的に格納したりするバッファである。
The
後述するように、制御部22は、1stステージのプログラムによりプログラムされたデータを読み出して得られるデータと、1stステージ及び2ndステージのプログラムで重複して入力されるビットのデータと、2ndステージのプログラムでプログラムされるビットの入力データとに基づいて、2ndステージのプログラムでプログラムされるビットのデータのしきい値電圧を決定する。
As will be described later, the
制御部22は、発振器31と、シーケンサ32と、コマンドユーザインターフェイス33と、電圧供給部34と、カラムカウンタ35と、シリアルアクセスコントローラ36とを有する。また、NANDメモリセルアレイ23は、ローデコーダ37とセンスアンプ38を有する。
The
NAND I/Oインターフェイス21は、メモリコントローラ2との間でIO信号及び制御信号を送受信するための回路である。コマンドユーザインターフェイス33は、メモリコントローラ2からIO信号線を介して受信したコマンド、アドレス、及びデータのうちの、コマンド及びアドレスを、制御信号に基づいて取得する。コマンドユーザインターフェイス33は、取得したコマンド及びアドレスをシーケンサ32に渡す。
The NAND I/
発振器31は、クロックを生成する回路である。発振器31によって生成されたクロックは、シーケンサ32を含む各構成要素に供給される。シーケンサ32は、発振器31から供給されるクロックによって駆動されるステートマシンである。シーケンサ32は、NANDメモリセルアレイ23へのアクセスなどの制御を実行する。例えば、シーケンサ32は、コマンドユーザインターフェイス33から受信したコマンドに応じて、各種の内部電圧や動作タイミング等を制御するための指令を出す。また、シーケンサ32は、コマンドユーザインターフェイス33から受信したアドレスに含まれるブロックアドレス及びページアドレスをローデコーダ37に供給する。さらに、シーケンサ32は、コマンドユーザインターフェイス33から受信したアドレスに含まれるカラムアドレスをカラムカウンタ35に供給する。
The
電圧供給部34は、ワード線に供給される各種の内部電圧やビット線に供給される各種の内部電圧を生成して、ローデコーダ37やセンスアンプ38へ供給する。カラムカウンタ35は、プログラム動作あるいはリード動作の際には、シーケンサ32から供給されたカラムアドレスを先頭として、シリアルアクセスコントローラ36から供給される制御信号に従ってカラムアドレスを順次進める。
The
ページバッファ24は、プログラム動作の際には、シリアルアクセスコントローラ36から受信したデータを、上記カラムカウンタ35が指定するカラムアドレス領域に順次格納する。また、ページバッファ24は、リード動作の際には、格納されているデータのうち、上記カラムアドレスで指定されたカラムアドレスのデータを順次、シリアルアクセスコントローラ36に送る。
During a program operation, the
シリアルアクセスコントローラ36は、プログラム動作の際には、NAND I/Oインターフェイス21からIO信号線のビット幅毎にシリアルに受信したデータを、ページバッファ24に格納する。また、シリアルアクセスコントローラ36は、リード動作の際にはページバッファ24からIO信号線のビット幅毎にシリアルに受信したデータをNAND I/Oインターフェイス21に送る。
During a program operation, the
ローデコーダ37は、プログラム動作及びリード動作の際、ブロックアドレス及びページアドレスをデコードして、アクセス先のブロックBLKに含まれるアクセス対象となるページに対応するワード線を選択する。そして各ローデコーダ37は、選択ワード線及び非選択ワード線に適切な電圧を印加する。
During a program operation and a read operation, the
センスアンプ38は、プログラム動作の際には、ページバッファ24に格納された対応するデータをメモリセルトランジスタに転送する。また、センスアンプ38は、リード動作の際には、選択ワード線からビット線に読み出されたデータをセンスして、得られたデータを、ページバッファ24に格納する。ページバッファ24に格納されたデータは、シリアルアクセスコントローラ36及びNAND I/Oインターフェイス21を介してメモリコントローラ2に送られる。
During a program operation, the
図3は3次元構造のNANDメモリセルアレイ23の一例を示す回路図である。図3は、3次元構造のNANDメモリセルアレイ23内の複数のブロックのうちの1つのブロックBLKの回路構成を示している。NANDメモリセルアレイ23の他のブロックも図3と同様の回路構成を有する。なお、本実施形態は、2次元構造のメモリセルにも適用可能である。
FIG. 3 is a circuit diagram showing an example of a NAND
図3に示すように、ブロックBLKは、例えば4つのフィンガーFNG(FNG0~FNG3)を有する。また各々のフィンガーFNGは、複数のNANDストリングNSを含む。NANDストリングNSの各々は、例えば縦続接続された8個のメモリセルトランジスタMT(MT0~MT7)と、選択トランジスタST1、ST2とを有する。本明細書では、各々のフィンガーFNGをストリングStと呼ぶ場合がある。 As shown in FIG. 3, the block BLK has, for example, four fingers FNG (FNG0 to FNG3). Each finger FNG also includes multiple NAND strings NS. Each NAND string NS includes, for example, eight cascade-connected memory cell transistors MT (MT0 to MT7) and selection transistors ST1 and ST2. In this specification, each finger FNG may be referred to as a string St.
なお、NANDストリングNS内のメモリセルトランジスタMTの個数は8個に限られない。メモリセルトランジスタMTは、選択トランジスタST1、ST2の間に、その電流経路が直列接続されるようにして配置されている。この直列接続の一端側のメモリセルトランジスタMT7の電流経路は、選択トランジスタST1の電流経路の一端に接続され、他端側のメモリセルトランジスタMT0の電流経路は、選択トランジスタST2の電流経路の一端に接続されている。 Note that the number of memory cell transistors MT in the NAND string NS is not limited to eight. Memory cell transistor MT is arranged between selection transistors ST1 and ST2 so that its current path is connected in series. The current path of the memory cell transistor MT7 at one end of this series connection is connected to one end of the current path of the selection transistor ST1, and the current path of the memory cell transistor MT0 at the other end is connected to one end of the current path of the selection transistor ST2. It is connected.
フィンガーFNG0~FNG3の各々の選択トランジスタST1のゲートは、それぞれセレクトゲート線SGD0~SGD3に共通接続される。他方で、選択トランジスタST2のゲートは、複数のフィンガーFNG間で同一のセレクトゲート線SGSに共通接続される。また、同一のブロックBLK内にあるメモリセルトランジスタMT0~MT7の制御ゲートは、それぞれワード線WL0~WL7に共通接続される。すなわち、ワード線WL0~WL7及びセレクトゲート線SGSは、同一ブロックBLK内の複数のフィンガーFNG0~FNG3間で共通に接続されているのに対し、セレクトゲート線SGDは、同一ブロックBLK内であってもフィンガーFNG0~FNG3のそれぞれ毎に独立している。 The gates of the selection transistors ST1 of the fingers FNG0 to FNG3 are commonly connected to select gate lines SGD0 to SGD3, respectively. On the other hand, the gates of the selection transistors ST2 are commonly connected to the same selection gate line SGS among the plurality of fingers FNG. Further, the control gates of memory cell transistors MT0 to MT7 in the same block BLK are commonly connected to word lines WL0 to WL7, respectively. That is, the word lines WL0 to WL7 and the select gate line SGS are commonly connected among the fingers FNG0 to FNG3 in the same block BLK, whereas the select gate line SGD is connected in common among the fingers FNG0 to FNG3 in the same block BLK. is also independent for each of the fingers FNG0 to FNG3.
NANDストリングNSを構成するメモリセルトランジスタMT0~MT7の制御ゲート電極には、それぞれワード線WL0~WL7が接続されており、また、同一のフィンガーFNG内の各NANDストリングNS中のi番目のメモリセルトランジスタMTi(i=0~n)は、同一のワード線WLi(i=0~n)によって共通接続されている。すなわち、ブロックBLK内の同一行のメモリセルトランジスタMTiの制御ゲート電極は、同一のワード線WLiに接続される。 Word lines WL0 to WL7 are connected to the control gate electrodes of memory cell transistors MT0 to MT7 constituting the NAND string NS, respectively, and the i-th memory cell in each NAND string NS in the same finger FNG is The transistors MTi (i=0-n) are commonly connected by the same word line WLi (i=0-n). That is, the control gate electrodes of memory cell transistors MTi in the same row in block BLK are connected to the same word line WLi.
各NANDストリングNSは、ワード線WLiに接続するとともにビット線にも接続される。各NANDストリングNS内の各メモリセルは、ワード線WLi及びセレクトゲート線SGD0~SGD3を識別するアドレスとビット線を識別するアドレスとで識別可能である。上述した通り、同一のブロックBLK内にあるメモリセル(メモリセルトランジスタMT)のデータは、一括して消去される。一方、データの読み出し及び書き込みは、物理セクタMS単位で行われる。1物理セクタMSは、1つのワード線WLiに接続され、かつ1つのフィンガーFNGに属する複数のメモリセルを含む。 Each NAND string NS is connected to a word line WLi and also to a bit line. Each memory cell in each NAND string NS can be identified by an address identifying the word line WLi and select gate lines SGD0 to SGD3 and an address identifying the bit line. As described above, the data of memory cells (memory cell transistors MT) in the same block BLK are erased all at once. On the other hand, data reading and writing are performed in units of physical sectors MS. One physical sector MS includes a plurality of memory cells connected to one word line WLi and belonging to one finger FNG.
メモリコントローラ2は、一つのフィンガー内の1本のワード線に接続されている全NANDストリングNSを単位として、書込み(プログラム)を行う。このため、メモリコントローラ2がプログラムを行うデータ量の単位は、4ビット×ビット線数になる。
The
リード動作及びプログラム動作時において、物理アドレスに応じて、1本のワード線WLi及び1本のセレクトゲート線SGDが選択され、物理セクタMSが選択される。なお、本明細書では、メモリセルにデータを書き込むことを、必要に応じてプログラムと呼ぶ。 During a read operation and a program operation, one word line WLi and one select gate line SGD are selected according to a physical address, and a physical sector MS is selected. Note that in this specification, writing data to a memory cell is referred to as a program as necessary.
図4は3次元構造のNANDメモリ5のNANDメモリセルアレイ23の一部領域の断面図である。図4に示すように、半導体基板のp型ウェル領域(P-well)41上に複数のNANDストリングNSが上下方向に形成されている。すなわち、p型ウェル領域41上には、セレクトゲート線SGSとして機能する複数の配線層42、ワード線WLiとして機能する複数の配線層43、及びセレクトゲート線SGDとして機能する複数の配線層44が上下方向に形成されている。
FIG. 4 is a cross-sectional view of a partial region of the NAND
そして、これらの配線層42、43、44を貫通してp型ウェル領域41に達するメモリホール45が形成されている。メモリホール45の側面には、ブロック絶縁膜46、電荷蓄積層47、及びゲート絶縁膜48が順次形成され、更にメモリホール45内に導電膜49が埋め込まれている。導電膜49は、NANDストリングNSの電流経路として機能し、メモリセルトランジスタMT並びに選択トランジスタST1及びST2の動作時にチャネルが形成される領域である。
A
各NANDストリングNSにおいて、p型ウェル領域41上に選択トランジスタST2、複数のメモリセルトランジスタMT、及び選択トランジスタST1が順次積層されている。導電膜49の上端には、ビット線BLとして機能する配線層が形成される。
In each NAND string NS, a selection transistor ST2, a plurality of memory cell transistors MT, and a selection transistor ST1 are sequentially stacked on the p-
さらに、p型ウェル領域41の表面内には、n+型不純物拡散層及びp+型不純物拡散層が形成されている。n+型不純物拡散層上にはコンタクトプラグ50が形成され、コンタクトプラグ50上には、ソース線SLとして機能する配線層が形成される。またp+型不純物拡散層上にはコンタクトプラグ51が形成され、コンタクトプラグ51上には、ウェル配線CPWELLとして機能する配線層が形成される。ウェル配線CPWELLは消去電圧を印加するために用いられる。
Furthermore, an n+ type impurity diffusion layer and a p+ type impurity diffusion layer are formed within the surface of the p
図4に示したNANDメモリセルアレイ23は、図4の紙面の奥行き方向に複数配列されており、奥行き方向に一列に並ぶ複数のNANDストリングNSの集合によって、1つのフィンガーFNGが形成される。他のフィンガーFNGは例えば図4の左右方向に形成されている。図3には4つのフィンガーFNG0~3が図示されているが、図4にはコンタクトプラグ50,51の間に3つのフィンガーを配置した例を示している。
A plurality of NAND
図5は第1の実施形態のしきい値領域の一例を示す図である。図5は、4ビット/Cellの不揮発性メモリ3のしきい値領域の分布の一例を示している。不揮発性メモリ3では、メモリセルの電荷蓄積層47に蓄えられた電子の電荷量により情報を記憶する。各メモリセルは、電子の電荷量に応じたしきい値電圧を有する。そして、メモリセルに記憶する複数のデータ値を、しきい値電圧が異なる複数の領域(しきい値領域)にそれぞれ対応させる。
FIG. 5 is a diagram illustrating an example of a threshold region according to the first embodiment. FIG. 5 shows an example of the distribution of the threshold area of the
図5の、S0~S15は、16個のしきい値領域内のしきい値分布を示している。図5の横軸はしきい値電圧を示し、縦軸はメモリセル数(セル数)である。しきい値分布とは、しきい値が変動する範囲である。このように、各メモリセルは、15個の境界によって仕切られた16個のしきい値領域を有し、各しきい値領域は、固有のしきい値分布を有する。 In FIG. 5, S0 to S15 indicate threshold distributions within the 16 threshold regions. The horizontal axis in FIG. 5 indicates the threshold voltage, and the vertical axis indicates the number of memory cells (cell number). The threshold distribution is the range in which the threshold varies. Thus, each memory cell has 16 threshold regions separated by 15 boundaries, and each threshold region has a unique threshold distribution.
本実施形態では、しきい値電圧がVr1以下となる領域を領域S0と呼び、しきい値電圧がVr1より大きくVr2以下となる領域を領域S1と呼び、しきい値電圧がVr2より大きくVr3以下となる領域を領域S2と呼び、しきい値電圧がVr3より大きくVr4以下となる領域を領域S3と呼ぶ。また、本実施形態では、しきい値電圧がVr4より大きくVr5以下となる領域を領域S4と呼び、しきい値電圧がVr5より大きくVr6以下となる領域を領域S5と呼び、しきい値電圧がVr6より大きくVr7以下となる領域を領域S6と呼び、しきい値電圧がVr7より大きくVr8以下となる領域を領域S7と呼ぶ。また、本実施形態では、しきい値電圧がVr8より大きくVr9以下となる領域を領域S8と呼び、しきい値電圧がVr9より大きくVr10以下となる領域を領域S9と呼び、しきい値電圧がVr10より大きくVr11以下となる領域を領域S10と呼び、しきい値電圧がVr11より大きくVr12以下となる領域を領域S11と呼ぶ。また、本実施形態では、しきい値電圧がVr12より大きくVr13以下となる領域を領域S12と呼び、しきい値電圧がVr13より大きくVr14以下となる領域を領域S13と呼び、しきい値電圧がVr14より大きくVr15以下となる領域を領域S14と呼び、しきい値電圧がVr15より大きくなる領域を領域S15と呼ぶ。 In this embodiment, a region where the threshold voltage is Vr1 or less is called region S0, a region where the threshold voltage is greater than Vr1 and less than Vr2 is called region S1, and a region where the threshold voltage is greater than Vr2 and less than Vr3. The region where the threshold voltage is greater than Vr3 and equal to or less than Vr4 is called the region S3. In addition, in this embodiment, a region where the threshold voltage is greater than Vr4 and less than or equal to Vr5 is referred to as region S4, and a region where the threshold voltage is greater than Vr5 and less than or equal to Vr6 is referred to as region S5, and the region where the threshold voltage is greater than Vr5 and less than or equal to Vr6 is referred to as region S5. The region where the threshold voltage is greater than Vr6 and equal to or less than Vr7 is referred to as region S6, and the region where the threshold voltage is greater than Vr7 and equal to or less than Vr8 is referred to as region S7. Furthermore, in this embodiment, a region where the threshold voltage is greater than Vr8 and less than or equal to Vr9 is referred to as region S8, and a region where the threshold voltage is greater than Vr9 and less than or equal to Vr10 is referred to as region S9, and the region where the threshold voltage is greater than Vr9 and less than or equal to Vr10 is referred to as region S9. A region where the threshold voltage is greater than Vr10 and less than or equal to Vr11 is referred to as region S10, and a region where the threshold voltage is greater than Vr11 and less than or equal to Vr12 is referred to as region S11. Furthermore, in this embodiment, a region where the threshold voltage is greater than Vr12 and less than or equal to Vr13 is referred to as region S12, and a region where the threshold voltage is greater than Vr13 and less than or equal to Vr14 is referred to as region S13, and the region where the threshold voltage is greater than Vr13 and less than or equal to Vr13 is referred to as region S13. The region in which the threshold voltage is greater than Vr14 and less than or equal to Vr15 is referred to as region S14, and the region in which the threshold voltage is greater than Vr15 is referred to as region S15.
また、領域S0~S15に対応するしきい値分布を第1~第16の分布と呼ぶ。Vr1~Vr15は、各しきい値領域の境界となるしきい値電圧である。 Further, the threshold distributions corresponding to the regions S0 to S15 are referred to as first to sixteenth distributions. Vr1 to Vr15 are threshold voltages serving as boundaries of each threshold region.
不揮発性メモリ3では、メモリセルの複数のしきい値領域に複数のデータ値をそれぞれ対応させる。この対応をデータコーディングという。このデータコーディングをあらかじめ定めておき、データの書き込み(プログラム)時には、データコーディングに従って記憶するデータ値に応じたしきい値領域内となるようにメモリセル内の電荷蓄積層47に電荷を注入する。そして、読み出し時には、メモリセルに読み出し電圧を印加し、読み出し電圧よりメモリセルのしきい値が低いか高いかにより、データ論理が決定される。
In the
データの読み出し時には、読み出し対象の境界の読み出しレベルよりも、しきい値が低いか高いかでデータの論理が決定される。しきい値が最も低い場合は、「消去」状態であり、全てのビットのデータが”1”と定義される。しきい値が、「消去」状態よりも高い場合は、「プログラムされた」状態であり、コーディングに従ってデータが”1”または”0”と定義される。 When reading data, the logic of the data is determined depending on whether the threshold value is lower or higher than the read level at the boundary of the read target. When the threshold value is the lowest, it is an "erased" state, and all bits of data are defined as "1". If the threshold is higher than the "erased" state, it is a "programmed" state, and the data is defined as "1" or "0" according to the coding.
図6Aは第1の実施形態のデータコーディングの一例を示す図であり、1-4-5-5データコーディングの一例を示している。本実施形態では、図5に示した16個のしきい値領域を4ビットの16個のデータ値にそれぞれ対応させる。図6Aにおけるしきい値電圧と、Top、Upper、Middle、Lowerページに対応するビットのデータ値との関係は、以下に示す通りである。 FIG. 6A is a diagram showing an example of data coding according to the first embodiment, and shows an example of 1-4-5-5 data coding. In this embodiment, the 16 threshold areas shown in FIG. 5 correspond to 16 4-bit data values, respectively. The relationship between the threshold voltage in FIG. 6A and the data values of the bits corresponding to the Top, Upper, Middle, and Lower pages is as shown below.
・しきい値電圧がS0領域内にあるメモリセルは“1111”を記憶している状態である。
・しきい値電圧がS1領域内にあるメモリセルは“0111”を記憶している状態である。
・しきい値電圧がS2領域内にあるメモリセルは“0011”を記憶している状態である。
・しきい値電圧がS3領域内にあるメモリセルは“1011”を記憶している状態である。
・しきい値電圧がS4領域内にあるメモリセルは“1001”を記憶している状態である。
・しきい値電圧がS5領域内にあるメモリセルは“0001”を記憶している状態である。
・しきい値電圧がS6領域内にあるメモリセルは“0101”を記憶している状態である。
・しきい値電圧がS7領域内にあるメモリセルは“1101”を記憶している状態である。
・しきい値電圧がS8領域内にあるメモリセルは“1100”を記憶している状態である。
・しきい値電圧がS9領域内にあるメモリセルは“1110”を記憶している状態である。
・しきい値電圧がS10領域内にあるメモリセルは“1010”を記憶している状態である。
・しきい値電圧がS11領域内にあるメモリセルは“1000”を記憶している状態である。
・しきい値電圧がS12領域内にあるメモリセルは“0000”を記憶している状態である。
・しきい値電圧がS13領域内にあるメモリセルは“0100”を記憶している状態である。
・しきい値電圧がS14領域内にあるメモリセルは“0110”を記憶している状態である。
・しきい値電圧がS15領域内にあるメモリセルは“0010”を記憶している状態である。
-A memory cell whose threshold voltage is within the S0 region is in a state where "1111" is stored.
-A memory cell whose threshold voltage is within the S1 region is in a state where "0111" is stored.
-A memory cell whose threshold voltage is within the S2 region is in a state where "0011" is stored.
-A memory cell whose threshold voltage is within the S3 region is in a state where "1011" is stored.
-A memory cell whose threshold voltage is within the S4 region is in a state where "1001" is stored.
-A memory cell whose threshold voltage is within the S5 region is in a state where "0001" is stored.
-A memory cell whose threshold voltage is within the S6 region is in a state where "0101" is stored.
-A memory cell whose threshold voltage is within the S7 region is in a state where "1101" is stored.
-A memory cell whose threshold voltage is within the S8 region is in a state where "1100" is stored.
-A memory cell whose threshold voltage is within the S9 region is in a state where "1110" is stored.
-A memory cell whose threshold voltage is within the S10 region is in a state where "1010" is stored.
-A memory cell whose threshold voltage is within the S11 region is in a state where "1000" is stored.
-A memory cell whose threshold voltage is within the S12 region is in a state where "0000" is stored.
-A memory cell whose threshold voltage is within the S13 region is in a state where "0100" is stored.
-A memory cell whose threshold voltage is within the S14 region is in a state where "0110" is stored.
-A memory cell whose threshold voltage is within the S15 region is in a state where "0010" is stored.
図6Bは第1の実施形態のデータコーディングの他の一例を示す図であり、4-3-4-4データコーディングの一例を示している。図6Bにおけるしきい値電圧と、Top、Upper、Middle、Lowerページに対応するビットのデータ値との関係は、以下に示す通りである。 FIG. 6B is a diagram showing another example of data coding in the first embodiment, and shows an example of 4-3-4-4 data coding. The relationship between the threshold voltage in FIG. 6B and the data values of the bits corresponding to the Top, Upper, Middle, and Lower pages is as shown below.
・しきい値電圧がS0領域内にあるメモリセルは“1111”を記憶している状態である。
・しきい値電圧がS1領域内にあるメモリセルは“0111”を記憶している状態である。
・しきい値電圧がS2領域内にあるメモリセルは“0011”を記憶している状態である。
・しきい値電圧がS3領域内にあるメモリセルは“1011”を記憶している状態である。
・しきい値電圧がS4領域内にあるメモリセルは“1010”を記憶している状態である。
・しきい値電圧がS5領域内にあるメモリセルは“1110”を記憶している状態である。
・しきい値電圧がS6領域内にあるメモリセルは“1100”を記憶している状態である。
・しきい値電圧がS7領域内にあるメモリセルは“1000”を記憶している状態である。
・しきい値電圧がS8領域内にあるメモリセルは“1001”を記憶している状態である。
・しきい値電圧がS9領域内にあるメモリセルは“0001”を記憶している状態である。
・しきい値電圧がS10領域内にあるメモリセルは“0000”を記憶している状態である。
・しきい値電圧がS11領域内にあるメモリセルは“0010”を記憶している状態である。
・しきい値電圧がS12領域内にあるメモリセルは“0110”を記憶している状態である。
・しきい値電圧がS13領域内にあるメモリセルは“0100”を記憶している状態である。
・しきい値電圧がS14領域内にあるメモリセルは“0101”を記憶している状態である。
・しきい値電圧がS15領域内にあるメモリセルは“1101”を記憶している状態である。
-A memory cell whose threshold voltage is within the S0 region is in a state where "1111" is stored.
-A memory cell whose threshold voltage is within the S1 region is in a state where "0111" is stored.
-A memory cell whose threshold voltage is within the S2 region is in a state where "0011" is stored.
-A memory cell whose threshold voltage is within the S3 region is in a state where "1011" is stored.
-A memory cell whose threshold voltage is within the S4 region is in a state where "1010" is stored.
- A memory cell whose threshold voltage is within the S5 region is in a state where "1110" is stored.
- A memory cell whose threshold voltage is within the S6 region is in a state where "1100" is stored.
-A memory cell whose threshold voltage is within the S7 region is in a state where "1000" is stored.
-A memory cell whose threshold voltage is within the S8 region is in a state where "1001" is stored.
- A memory cell whose threshold voltage is within the S9 region is in a state where "0001" is stored.
- A memory cell whose threshold voltage is within the S10 region is in a state where "0000" is stored.
-A memory cell whose threshold voltage is within the S11 region is in a state where "0010" is stored.
-A memory cell whose threshold voltage is within the S12 region is in a state where "0110" is stored.
-A memory cell whose threshold voltage is within the S13 region is in a state where "0100" is stored.
-A memory cell whose threshold voltage is within the S14 region is in a state where "0101" is stored.
-A memory cell whose threshold voltage is within the S15 region is in a state where "1101" is stored.
図6A及び図6Bに示すように、しきい値電圧の各領域に、各メモリセルの4ビットのデータの論理を割り振ることが出来る。なお、メモリセルが未書き込みの状態(「消去」の状態)では、メモリセルのしきい値電圧はS0領域内にある。また、ここに示した符号では、S0(消去)状態で”1111”というデータを記憶し、S1状態で”0111”というデータを記憶するといったように、任意の2つの隣接する領域間で1ビットのみデータが変化する。このように、図6A及び図6Bに示したデータコーディングは、任意の2つの隣接する領域間で1ビットのみデータが変化するグレイ符号である。 As shown in FIGS. 6A and 6B, the logic of 4-bit data of each memory cell can be assigned to each region of threshold voltage. Note that when the memory cell is in an unwritten state (“erased” state), the threshold voltage of the memory cell is within the S0 region. In addition, in the code shown here, one bit is stored between any two adjacent areas, such as storing data "1111" in the S0 (erased) state and storing data "0111" in the S1 state. Only the data changes. In this way, the data coding shown in FIGS. 6A and 6B is a Gray code in which only one bit of data changes between any two adjacent regions.
図6Aに示す本実施形態のコーディングでは、各ページのビット値を判定するための境界となるしきい値電圧は、以下に示す通りである。 In the coding of this embodiment shown in FIG. 6A, the threshold voltages serving as boundaries for determining the bit values of each page are as shown below.
・Topページのビット値を判定するための境界となるしきい値電圧はVr1、Vr3、Vr5、Vr7、Vr12である。
・Upperページのビット値を判定するための境界となるしきい値電圧はVr2、Vr6、Vr10、Vr13、Vr15である。
・Middleページのビット値を判定するための境界となるしきい値電圧はVr4、Vr9、Vr11、Vr14である。
・Lowerページのビット値を判定するための境界となるしきい値電圧はVr8である。
- Threshold voltages serving as boundaries for determining the top page bit value are Vr1, Vr3, Vr5, Vr7, and Vr12.
- Threshold voltages serving as boundaries for determining the bit value of the Upper page are Vr2, Vr6, Vr10, Vr13, and Vr15.
- Threshold voltages serving as boundaries for determining the bit value of the Middle page are Vr4, Vr9, Vr11, and Vr14.
- The threshold voltage that is the boundary for determining the bit value of the Lower page is Vr8.
このように、ビット値を判定するための境界となるしきい値電圧の数(以下、境界数とよぶ)が、Lowerページ、Middleページ、Upperページ、Topページでそれぞれ1,4,5,5である。以下、このようなコーディングをLowerページ、Middleページ、Upperページ、Topページのそれぞれの境界数を用いて、1-4-5-5コーディングという。 In this way, the number of threshold voltages that serve as boundaries for determining bit values (hereinafter referred to as the number of boundaries) is 1, 4, 5, and 5 for the Lower page, Middle page, Upper page, and Top page, respectively. It is. Hereinafter, such coding will be referred to as 1-4-5-5 coding using the number of boundaries for each of the Lower page, Middle page, Upper page, and Top page.
本実施形態の第1の特徴は、ページごとのビット値が変化する境界数が最大5であることである。16個の状態を4ビットで表現する場合、最大境界数の最小値は4であり、図6のコーディングは、これよりも1つ多いだけであり、ビットエラーの偏りが少なくなる。このように、本実施形態によるメモリシステム1は、第1の特徴を備えることで、ビットエラー率を抑制でき、またページごとにビットエラーの偏りも抑制できる。
The first feature of this embodiment is that the number of boundaries at which the bit value changes for each page is five at maximum. When 16 states are represented by 4 bits, the minimum value of the maximum number of boundaries is 4, and the coding of FIG. 6 has only one more than this, which reduces the bias of bit errors. In this way, the
本実施形態の第2の特徴は、Lowerページの境界数が1つ、Middleページの境界数が4つであり、LowerページとMiddleページをひとまとめとした第1ステージのプログラムと、UpperページとTopページをひとまとめとした第2ステージのプログラムとの2つのステージでプログラムが可能になることである。 The second feature of this embodiment is that the number of boundaries for the Lower page is one, and the number of boundaries for the Middle page is four. It is possible to program in two stages, including a second stage program in which pages are grouped together.
本実施形態の第3の特徴は、第1ステージのプログラムで生成されたしきい値領域から、第2ステージのプログラムで生成されたしきい値領域への変化幅が少ないことである。すなわち、しきい値領域の変化幅が小さいことである。しきい値領域の変化幅が小さいほど、隣接セル間干渉を受けにくくなる。上述した第1~第3の特徴については、後に詳述する。 The third feature of this embodiment is that the range of change from the threshold area generated by the first stage program to the threshold area generated by the second stage program is small. That is, the width of change in the threshold area is small. The smaller the width of change in the threshold area, the less susceptible to interference between adjacent cells. The first to third features described above will be explained in detail later.
不揮発性メモリ3の制御部22は、図6A又は図6Bに示したコーディングに基づいて、NANDメモリセルアレイ23へのプログラム及びNANDメモリセルアレイ23からの読み出しを制御する。
The
3次元メモリセルは、メモリセルの微細化が2次元メモリセルほどは進行していない。このため、3次元メモリセルにおいて、隣接するメモリセル同士の間隔が広い世代であれば、セル間相互干渉が小さい。この場合は、一般に、各メモリセルの全ビットを同時に、例えば各ビットを異なるページに割り付けていれば全ページを同時に、プログラムする手法が取られる。 In three-dimensional memory cells, miniaturization of memory cells has not progressed as much as in two-dimensional memory cells. Therefore, in three-dimensional memory cells, if the generation has a wide interval between adjacent memory cells, mutual interference between cells is small. In this case, a technique is generally used in which all bits of each memory cell are programmed at the same time, for example, if each bit is assigned to a different page, all pages are programmed at the same time.
各メモリセルの全ビットを同時にプログラムする場合、データコーディングとしては、特に組み合わせを問わない。全ビットのデータに基づき、16個のしきい値領域のどれに位置するかが決定され、消去状態であるS0の領域から、決定されたしきい値領域になるようにプログラムすればよい。この場合、一般に、4-4-3-4データコーディングといった、最大境界数が最小値をとるようなデータコーディングが採用される。4-4-3-4データコーディングでは、16個のしきい値領域間の15個の境界を4つのページに分配する際に、Lowerページに4つ、Middleページに4つ、Upperページに3つ、Topページに4つの境界を分配する。このデータコーディングの場合、ページ間の境界数の偏りが小さいために、結果としてページ間のビットエラー率の偏りが小さくなる。これは、ビットエラーの原因のほとんどが、隣接するしきい値領域にしきい値がシフトすることによって引き起こされ、境界数を多く有するページほどビットエラー数が多くなるためである。このことは、メモリセルとしてのエラー率が同じであったとしても、ページデータのエラーを訂正するのに必要なECC回路10の訂正能力を強化しなくてはいけないことにつながるので、ホスト4からの書込み要求に対するメモリシステム1の応答性能、コスト及び消費電力の悪化を抑制するためにも有効である。また、境界数の偏りによって引き起こされる読み出し速度の偏りも小さくなる。
When programming all bits of each memory cell at the same time, any particular combination of data coding does not matter. Based on the data of all the bits, it is determined in which of the 16 threshold areas it is located, and programming can be performed from the area of S0, which is in the erased state, to the determined threshold area. In this case, data coding such as 4-4-3-4 data coding in which the maximum number of boundaries takes a minimum value is generally employed. In 4-4-3-4 data coding, when distributing 15 boundaries between 16 threshold areas into 4 pages, 4 boundaries are assigned to the Lower page, 4 boundaries are assigned to the Middle page, and 3 boundaries are assigned to the Upper page. 4 borders are distributed on the top page. In the case of this data coding, since the deviation in the number of boundaries between pages is small, as a result, the deviation in the bit error rate between pages is small. This is because most of the causes of bit errors are caused by shifting of the threshold value to adjacent threshold areas, and the more boundaries the page has, the greater the number of bit errors. This means that even if the error rate as a memory cell is the same, the correction ability of the
また、4ビット/CellのNANDメモリ5では、隣接するしきい値領域の間隔が狭まるため、セル間相互干渉による影響が1ビット/Cellや2ビット/CellのNANDメモリ5と比較して大きくなる。このため、近年の微細化が進んだ世代のNANDメモリ5では、一般に、セル間相互干渉を抑えるため、複数のプログラムステージ、例えば2つのプログラムステージ(以下、単にステージと呼ぶ場合もある)を用いて、メモリセルの電荷蓄積層47に少しずつ電荷を注入するプログラム方法(Foggy-Fineプログラム)が採用される。このFoggy-Fineプログラムでは、1つ目のステージ(Foggyステージ)でメモリセルへの書き込みを行った後に隣接セルの書き込みを行い、この後最初のメモリセルに戻り2つ目のステージ(Fineステージ)の書込みを行う。この場合の各ステージは、プログラムの実行単位であり、1ワード線WLiに対応するメモリセルのプログラムは2つのプログラムステージを実行することで完了する。
In addition, in the 4-bit/
1つ目のステージのプログラムでも2つ目のステージのプログラムでも、16個のしきい値領域を用いてプログラムが実行される。1つ目のステージのプログラム終了時のしきい値領域のしきい値分布は、最終的なデータコーディングにおけるしきい値領域のしきい値分布より広い幅を有する。すなわち、Foggyステージでは、Foggy(ラフ)書き込みが行われる。このFoggyステージのプログラムでは、入力データは4ページ全てが必要である。Foggyステージのプログラム後のしきい値分布は、隣接する分布が互いに重なり合っている中間状態であるので、データの読み出しは出来ない。2つ目のステージであるFineステージのプログラムでは、Foggyステージのプログラム後のしきい値領域を最終的なデータコーディングにおけるしきい値領域に移動させる。すなわち、Fineステージでは、Fine書き込みが行われる。このFineステージのプログラムも、入力データは4ページ全てが必要である。Fineステージのプログラム後のしきい値分布は、隣接する分布が分離された最終状態であるので、Fineステージのプログラム後にはデータの読み出しが可能である。 Both the first stage program and the second stage program are executed using 16 threshold areas. The threshold distribution of the threshold region at the end of the program of the first stage has a wider width than the threshold distribution of the threshold region in the final data coding. That is, in the Foggy stage, Foggy (rough) writing is performed. This Foggy stage program requires all four pages of input data. The threshold distribution after programming in the Foggy stage is in an intermediate state where adjacent distributions overlap each other, so data cannot be read. In the program of the second stage, Fine stage, the threshold area after programming of the Foggy stage is moved to the threshold area in the final data coding. That is, in the Fine stage, Fine writing is performed. This Fine stage program also requires all four pages of input data. Since the threshold distribution after programming in the Fine stage is the final state in which adjacent distributions are separated, data can be read out after programming in the Fine stage.
4-4-3-4データコーディングの場合、境界数の偏りは少ないが、Foggy-Fineプログラムのデータ入力において、各ステージで4ページ分のデータ入力が必要となる。これは、データ入力にかかる時間の増大となり、ホスト4からの書込み要求に対するメモリシステム1の応答性能を悪化させてしまう。また、メモリシステム1内において、NANDメモリ5へ入力するためにデータを保持しておくための書き込みバッファ(第1記憶部)のバッファ量(書き込みバッファ量)を増大させてしまう。この書き込みバッファは、一般に、メモリシステム1内のRAM6の一部の領域が割り当てられたものである。
In the case of 4-4-3-4 data coding, the deviation in the number of boundaries is small, but in the data input of the Foggy-Fine program, data input for four pages is required at each stage. This increases the time required for data input and deteriorates the response performance of the
これらに対する対策として、本実施形態では、メモリシステム1が、3次元構造を有した不揮発性メモリ3に対して、1-4-5-5データコーディングを採用し、さらに、2ステージでページ単位(page by page)の書き込みを実施する。これにより、本実施形態では、3次元構造を有する不揮発性メモリ3においてもセル間相互干渉と各ページ間のビットエラー率の偏りを抑制しつつ、メモリコントローラ2の書き込みバッファ量を低減する。本実施形態の書き込みバッファは、第1乃至第4ビット(Lowerページ、Middleページ、Upperページ及びTopページの各データ)のうち、第1プログラム及び第2プログラム時に重複して入力されるビットのデータを、第2プログラムを開始した以降は破棄又は無効化可能とし、それ以外のビットのデータを、第1プログラムを開始した以降は破棄又は無効化可能とする。
As a countermeasure against these problems, in the present embodiment, the
ここで、隣接メモリセル間干渉について説明する。ある1つのメモリセルの電荷蓄積層47に蓄積された電荷は、隣接するメモリセルの電界を乱し、その結果、隣接するメモリセルを読み出す際のしきい値電圧を変動させるノイズを与える。ある電界条件下でプログラムとベリファイとが実施され、プログラムが完結した後、隣接するメモリセルが異なる電荷にプログラムされるということは、これに起因して読み出し精度が劣化することになる。この隣接メモリセル間干渉は、メモリデバイスの製造技術が微細化され、メモリセル間隔が縮小するにつれて顕著となる。そして、この隣接メモリセル間干渉は、大きくは同一ワード線WLi上の異なるビット線に接続された隣接メモリセル同士で生じる。
Here, interference between adjacent memory cells will be explained. Charges accumulated in the
隣接メモリセル間干渉は、プログラム及びベリファイの時と、隣接するメモリセルがプログラムされた後の読み出しの時とで、メモリセルの電界条件の違いを小さくすることによって緩和することができる。同一ワード線WLi上の異なるビット線に接続された隣接メモリセル同士の隣接メモリセル間干渉を低減する1つの方法として、プログラムを複数のステージに分割し、各ステージ間で電荷蓄積層47内の電荷量に大きな変化が起きないようにプログラムを実行する方法がある。
Interference between adjacent memory cells can be alleviated by reducing the difference in the electric field conditions of the memory cells between programming and verifying and reading after adjacent memory cells have been programmed. One way to reduce interference between adjacent memory cells connected to different bit lines on the same word line WLi is to divide the program into multiple stages, and between each stage, the
本実施形態におけるプログラムシーケンスでは、1つのワード線WLi上の4ビットは、2つのプログラムステージ、すなわち1stステージと2ndステージとによってプログラムされる。各プログラムステージは、プログラムの実行単位であり、本実施形態のメモリシステム1は、メモリセルへの4ビットデータの書込みを、2つのプログラムステージを実行することで完了する。また、本実施形態では、2つのプログラムステージのそれぞれに、4ビットの何れかのページのデータが用いられる。具体的には、1stステージのプログラムには、Lowerページデータ、Middleページ及びTopページのデータが用いられ、2ndステージのプログラムには、Middleページ及びUpperページ及びTopページのデータが用いられる。
In the program sequence in this embodiment, 4 bits on one word line WLi are programmed by two program stages, ie, a 1st stage and a 2nd stage. Each program stage is a program execution unit, and the
図7は第1の実施形態におけるプログラム後のしきい値領域を示す図である。図7では、メモリセルに対して1stステージと2ndステージのプログラムを行った後のしきい値領域を示している。図7の(T1)は、プログラム前の初期状態である消去状態のしきい値領域を示している。図7の(T2)は、1stステージのプログラム(第1プログラム)後のしきい値領域を示している。図7の(T3)は、2ndステージのプログラム(第2プログラム)後のしきい値領域を示している。 FIG. 7 is a diagram showing the threshold area after programming in the first embodiment. FIG. 7 shows the threshold region after programming the memory cell in the 1st stage and the 2nd stage. (T1) in FIG. 7 shows the threshold area in the erased state, which is the initial state before programming. (T2) in FIG. 7 shows the threshold area after the 1st stage program (first program). (T3) in FIG. 7 shows the threshold area after the 2nd stage program (second program).
図7の(T1)に示すように、NANDメモリセルアレイ23の全メモリセルは、未書き込みの状態(「消去」の状態)では分布S0の状態である。不揮発性メモリ3の制御部22は、図7の(T2)に示すように、1stステージのプログラムでは、LowerページおよびMiddleページおよびTopページに書き込む(記憶する)ビット値に応じて、メモリセルごとに分布S0のままとする、または電荷を注入して分布S0よりも上の分布に移動させる。
As shown at (T1) in FIG. 7, all memory cells of the NAND
具体的には、制御部22は、LowerページおよびMiddleページおよびTopページに書き込むビット値がともに“1”の場合は、電荷を注入せず、LowerページおよびMiddleページおよびTopページに書き込むビット値のどれが1つでも“0”の場合は電荷を注入して、しきい値電圧を高い方に移動させるようプログラムする。
Specifically, if the bit values to be written to the Lower page, Middle page, and Top page are all “1”, the
すなわち、LowerページとMiddleページとTopページに書き込むビット値が “011”の場合は分布S1へ、またLowerページとMiddleページとTopページに書き込むビット値が “101”の場合は分布S4へ、またLowerページとMiddleページとTopページに書き込むビット値が “001”の場合は分布S5へ、またLowerページとMiddleページとTopページに書き込むビット値が “100”の場合は分布S8へ、またLowerページとMiddleページとTopページに書き込むビット値が “110”の場合は分布S9へ、またLowerページとMiddleページとTopページに書き込むビット値が “000”の場合は分布S12へ、またLowerページとMiddleページとTopページに書き込むビット値が “010”の場合は分布S14へ移動させる。 In other words, if the bit value written to the Lower page, Middle page, and Top page is "011", the bit value written to the Lower page, Middle page, and Top page is "101", to the distribution S4, and If the bit value written to the Lower page, Middle page, and Top page is "001", go to distribution S5, and if the bit value written to the Lower page, Middle page, and Top page is "100", go to distribution S8, and to the Lower page. If the bit value written to the Middle page and Top page is "110", the flow goes to distribution S9, and if the bit value written to the Lower page, Middle page, and Top page is "000", the flow goes to distribution S12; If the bit value written to the page and top page is "010", it is moved to distribution S14.
ここで好ましくは、分布S1、分布S4、分布S5、分布S8、分布S9、分布S12、分布S14は、しきい値電圧が多少低くなるようにしきい値領域の幅を広げて粗くプログラムする。すなわち、後述する、プログラム電圧パルスの上昇幅を大きくする。それにより書き込みにかかる時間を短縮することができる。そしてしきい値電圧が多少低くなるようにプログラムすることで、2ndステージのプログラムで最終的に所定の幅になるようにしきい値分布領域の幅を書き込みすることができる。 Preferably, distribution S1, distribution S4, distribution S5, distribution S8, distribution S9, distribution S12, and distribution S14 are roughly programmed by widening the width of the threshold region so that the threshold voltage becomes somewhat lower. That is, the rise width of the program voltage pulse, which will be described later, is increased. Thereby, the time required for writing can be shortened. By programming so that the threshold voltage is somewhat lower, it is possible to write the width of the threshold distribution region so that it finally becomes a predetermined width in the 2nd stage programming.
そして好ましくは、隣接する分布S8と分布S9、および隣接するしきい値分布S12と分布S14のそれぞれの間隔は、他の隣接する分布との間隔よりも狭くする。これらの間隔を狭くした隣接しきい値分布同士の書き込みビット値は、Middleページのデータが異なっている。すなわち、1stステージのプログラム後のデータは、バイナリのように見えるので、LowerページとMiddleページデータとTopページの読み出しが可能であるが、Middleページのデータが異なるしきい値分布の間隔は狭くすることで、LowerページとTopページのデータが異なるしきい値分布の間隔は広く確保し、LowerページとTopページの読み出しの際のマージンを増加させる。図7の(T2)に示すしきい値分布S0~S14は、第17乃至第24のしきい値領域に対応する。 Preferably, the intervals between the adjacent distributions S8 and S9 and between the adjacent threshold distributions S12 and S14 are narrower than the intervals between the adjacent distributions. The write bit values of adjacent threshold distributions with narrower intervals have different middle page data. In other words, since the data after programming in the 1st stage looks like binary, it is possible to read the Lower page, Middle page data, and Top page, but the interval between the threshold distributions where the Middle page data differs is narrowed. By doing so, the interval between the threshold distributions where the data of the Lower page and the Top page are different is ensured wide, and the margin when reading the Lower page and the Top page is increased. The threshold distributions S0 to S14 shown in (T2) of FIG. 7 correspond to the 17th to 24th threshold regions.
次に、図7の(T3)に示すように、2ndステージのプログラムでは、データの書き込みにはMiddleページとUpperページとの2ページが必要である。そして、不揮発性メモリ3の制御部22は、2ndステージのプログラム後のしきい値分布を、各隣接する分布が分離された最終状態で16値のレベルとなるようにプログラムする。2ndステージのプログラム後は、全てのページデータの読み出しが可能である。
Next, as shown at (T3) in FIG. 7, in the 2nd stage program, two pages, a Middle page and an Upper page, are required for data writing. Then, the
2ndステージのプログラムにおいて、メモリセルのしきい値の1stステージのプログラム終了時からの変化幅が大きいほど、隣接セル間干渉が大きくなる。したがって、メモリセルのしきい値分布の変化量が最も大きいしきい値分布の変化量が最小になることが好ましい。本実施例によれば、この最大のしきい値分布の変化量はしきい値分布3つ分で、S0がS3に変化する場合と、S4がS7に変化する場合と、S8がS11に変化する場合である。図7の(T3)に示すしきい値分布S0~S15は、第1乃至第16のしきい値領域に対応する。 In the 2nd stage programming, the larger the change in the threshold value of the memory cell from the end of the 1st stage programming, the greater the interference between adjacent cells. Therefore, it is preferable that the amount of change in the threshold distribution of the memory cell is the largest and the amount of change in the threshold distribution is the smallest. According to this embodiment, the maximum amount of change in the threshold distribution is for three threshold distributions: when S0 changes to S3, when S4 changes to S7, and when S8 changes to S11. This is the case. The threshold distributions S0 to S15 shown in (T3) of FIG. 7 correspond to the first to sixteenth threshold regions.
なお、典型的には、プログラムは、1回または複数回のプログラム電圧パルスが印加されることによって行われる。複数回のプログラム印加パルスにおいては、電圧値は段階的に上昇させる。各プログラム電圧パルスの後には、メモリセルがしきい値境界レベルを超えて移動したか否かを確認するために、ベリファイと呼ばれる読み出しが行なわれる。この印加と読み出しとが繰り返されることで、所定のしきい値分布の範囲の中にメモリセルのしきい値を移動させることが可能となる。 Note that programming is typically performed by applying a programming voltage pulse one or more times. In multiple program application pulses, the voltage value is increased stepwise. After each program voltage pulse, a read, called a verify, is performed to determine whether the memory cell has moved beyond the threshold boundary level. By repeating this application and reading, it becomes possible to move the threshold value of the memory cell within the range of a predetermined threshold distribution.
なお、制御部22は、1つのワード線WLiについて、1stステージのプログラムと、2ndステージのプログラムとを連続して実施してもよいが、隣接メモリセル間干渉の影響を低減するために、複数のワード線WLiをまたいで、非連続的な順序でプログラムを実施することも可能である。
Note that the
図8Aは第1の実施形態のプログラム順序の第1例を示す図である。図8Bは第1の実施形態のプログラム順序の第2例を示す図である。図8Cは第1の実施形態のプログラム順序の第3例を示す図である。図8A~図8Cでは、隣接メモリセル間干渉の影響を小さくするために、2つのプログラムステージでプログラムを行う。図8Aは、各ブロック内の各ワード線に1個のストリングStが接続されているNANDメモリ5におけるプログラム順序の一例を示している。また、図8B及び図8Cは、各ブロック内の各ワード線に4つのストリングStが接続されているNANDメモリ5におけるプログラム順序の一例を示している。なお、図8B及び図8Cでは、各ワード線に接続された4つのストリングStをString0~3と表記している。
FIG. 8A is a diagram showing a first example of the program order of the first embodiment. FIG. 8B is a diagram showing a second example of the program order of the first embodiment. FIG. 8C is a diagram showing a third example of the program order of the first embodiment. In FIGS. 8A to 8C, programming is performed in two program stages in order to reduce the influence of interference between adjacent memory cells. FIG. 8A shows an example of a program order in the
書き込みを開始すると、制御部22は、所定の非連続的な順序でワード線WLiをまたぎながら、各プログラムステージを進む。すなわち、同一ワード線についての1stステージと2ndステージは、連続的には実行されず、あるワード線について1stステージのプログラムを行った後に、異なるワード線について2ndステージのプログラムを行う。
When writing starts, the
あるワード線について2ndステージまでプログラムを完了した後に、隣接するワード線について1stステージ及び2ndステージのプログラムを連続して行うと、しきい値電圧の変動量が大きくなる。そして、隣接ワード線のしきい値電圧の変動量が大きいと、ワード線間の隣接メモリセル間干渉が大きくなる。したがって、ワード線間の隣接メモリセル間干渉を小さくするためには、ワード線が2ndステージまでプログラムを完了した後に、隣接ワード線のしきい値電圧の変動量を小さくすることが有効である。図8Aのシーケンスであれば、あるワード線が2ndステージまでプログラムを完了した後の隣接ワード線のプログラムステージは2ndステージのみとなる。 After completing programming up to the 2nd stage for a certain word line, if programming for the 1st stage and 2nd stage is successively performed for adjacent word lines, the amount of variation in threshold voltage increases. When the amount of variation in the threshold voltage of adjacent word lines is large, interference between adjacent memory cells between word lines becomes large. Therefore, in order to reduce the interference between adjacent memory cells between word lines, it is effective to reduce the amount of variation in the threshold voltage of the adjacent word lines after the word lines complete programming up to the 2nd stage. In the sequence of FIG. 8A, after a certain word line completes programming up to the 2nd stage, the programming stage of the adjacent word line is only the 2nd stage.
図8Aのプログラム順序で3次元構造のNANDメモリ5にプログラムを行う場合、書き込みを開始すると、制御部22は、プロセッサ8からの指示に基づいて、以下の(1)~(9)に示す順番でプログラムを実行する。制御部22は、プロセッサ8からの指示に基づいてNANDメモリ5へのプログラムを行うが、以下では、プロセッサ8からの指示に基づく旨の記述を省略する。
When programming the three-dimensionally structured
(1)まず、制御部22は、ワード線WL0の1stステージのプログラムST11を実施する。
(2)次に、制御部22は、ワード線WL1の1stステージのプログラムST12を実施する。
(3)次に、制御部22は、ワード線WL0の2ndステージのプログラムST13を実施する。
(4)次に、制御部22は、ワード線WL2の1stステージのプログラムST14を実施する。
(5)次に、制御部22は、ワード線WL1の2ndステージのプログラムST15を実施する。
(6)次に、制御部22は、ワード線WL3の1stステージのプログラムST16を実施する。
(7)次に、制御部22は、ワード線WL2の2ndステージのプログラムST17を実施する。
(8)次に、制御部22は、ワード線WL4の1stステージのプログラムST18を実施する。
(9)次に、制御部22は、ワード線WL3の2ndステージのプログラムST19を実施する。
(1) First, the
(2) Next, the
(3) Next, the
(4) Next, the
(5) Next, the
(6) Next, the
(7) Next, the
(8) Next, the
(9) Next, the
以下同様に、制御部22は、図8Aの左下から右上に向けて斜め上方に処理を進めていく。このように、図8Aでは、不揮発性メモリ3内の複数のメモリセルは、第1ワード線に接続された複数の第1メモリセルと、第1ワード線に隣接する第2ワード線に接続された複数の第2メモリセルと、を有し、メモリコントローラ2は、複数の第1メモリセルに対して第1プログラムを行わせた後、複数の第2メモリセルに対して第1プログラムを行わせ、次に複数の第2メモリセルに対して第1プログラムを行わせた後、複数の第1メモリセルに対して第2プログラムを行わせる。
Similarly, the
図8Bのプログラム順序で3次元構造のNANDメモリ5にプログラムを行う場合、書き込みを開始すると、制御部22は、以下の(11)~(24)に示す順番でプログラムを実行する。
When programming the three-
(11)まず、制御部22は、ストリングSt0_ワード線WL0の1stステージのプログラムST21を実施する。
(12)次に、制御部22は、ストリングSt1_ワード線WL0の1stステージのプログラムST22を実施する。
(13)次に、制御部22は、ストリングSt2_ワード線WL0の1stステージのプログラムST23を実施する。
(14)次に、制御部22は、ストリングSt3_ワード線WL0の1stステージのプログラムST24を実施する。
(15)次に、制御部22は、ストリングSt0_ワード線WL1の1stステージのプログラムST25を実施する。
(16)次に、制御部22は、ストリングSt0_ワード線WL0の2ndステージのプログラムST26を実施する。
(17)次に、制御部22は、ストリングSt1_ワード線WL1の1stステージのプログラムST27を実施する。
(18)次に、制御部22は、ストリングSt1_ワード線WL0の2ndステージのプログラムST28を実施する。
(19)次に、制御部22は、ストリングSt2_ワード線WL1の1stステージのプログラムST29を実施する。
(20)次に、制御部22は、ストリングSt2_ワード線WL0の2ndステージのプログラムST210を実施する。
(21)次に、制御部22は、ストリングSt3_ワード線WL1の1stステージのプログラムST211を実施する。
(22)次に、制御部22は、ストリングSt3_ワード線WL0の2ndステージのプログラムST212を実施する。
(23)次に、制御部22は、ストリングSt0_ワード線WL2の1stステージのプログラムST213を実施する。
(24)次に、制御部22は、ストリングSt0_ワード線WL1の2ndステージのプログラムST214を実施する。
(11) First, the
(12) Next, the
(13) Next, the
(14) Next, the
(15) Next, the
(16) Next, the
(17) Next, the
(18) Next, the
(19) Next, the
(20) Next, the
(21) Next, the
(22) Next, the
(23) Next, the
(24) Next, the
以下同様に、制御部22は、図8Bの左下から右上に向けて斜め上方に処理を進めていく。なお、図8Bでは、ブロック内のストリングStが4つである場合について説明したが、ブロック内のストリングStは、3つ以下であってもよいし、5つ以上であってもよい。
Similarly, the
図8Cのプログラム順序で3次元構造のNANDメモリ5にプログラムを行う場合、書き込みを開始すると、制御部22は、以下の(31)~(50)に示す順番でプログラムを実行する。
When programming the three-
(31)まず、制御部22は、ストリングSt0_ワード線WL0の1stステージのプログラムST31を実施する。
(32)次に、制御部22は、ストリングSt1_ワード線WL0の1stステージのプログラムST32を実施する。
(33)次に、制御部22は、ストリングSt2_ワード線WL0の1stステージのプログラムST33を実施する。
(34)次に、制御部22は、ストリングSt3_ワード線WL0の1stステージのプログラムST34を実施する。
(35)まず、制御部22は、ストリングSt0_ワード線WL1の1stステージのプログラムST35を実施する。
(36)次に、制御部22は、ストリングSt1_ワード線WL1の1stステージのプログラムST36を実施する。
(37)次に、制御部22は、ストリングSt2_ワード線WL1の1stステージのプログラムST37を実施する。
(38)次に、制御部22は、ストリングSt3_ワード線WL1の1stステージのプログラムST38を実施する。
(39)次に、制御部22は、ストリングSt0_ワード線WL0の2ndステージのプログラムST39を実施する。
(40)次に、制御部22は、ストリングSt1_ワード線WL0の2ndステージのプログラムST310を実施する。
(41)次に、制御部22は、ストリングSt2_ワード線WL0の2ndステージのプログラムST311を実施する。
(42)次に、制御部22は、ストリングSt3_ワード線WL0の2ndステージのプログラムST312を実施する。
(43)次に、制御部22は、ストリングSt0_ワード線WL2の1stステージのプログラムST313を実施する。
(44)次に、制御部22は、ストリングSt1_ワード線WL2の1stステージのプログラムST314を実施する。
(45)次に、制御部22は、ストリングSt2_ワード線WL2の1stステージのプログラムST315を実施する。
(46)次に、制御部22は、ストリングSt3_ワード線WL2の1stステージのプログラムST316を実施する。
(47)次に、制御部22は、ストリングSt0_ワード線WL1の2ndステージのプログラムST317を実施する。
(48)次に、制御部22は、ストリングSt1_ワード線WL1の2ndステージのプログラムST318を実施する。
(49)次に、制御部22は、ストリングSt2_ワード線WL1の2ndステージのプログラムST319を実施する。
(50)次に、制御部22は、ストリングSt3_ワード線WL1の2ndステージのプログラムST320を実施する。
(31) First, the
(32) Next, the
(33) Next, the
(34) Next, the
(35) First, the
(36) Next, the
(37) Next, the
(38) Next, the
(39) Next, the
(40) Next, the
(41) Next, the
(42) Next, the
(43) Next, the
(44) Next, the
(45) Next, the
(46) Next, the
(47) Next, the
(48) Next, the
(49) Next, the
(50) Next, the
なお、図8Cでは、ブロック内のストリングStが4つである場合について説明したが、ブロック内のストリングStは、3つ以下であってもよいし、5つ以上であってもよい。 Note that in FIG. 8C, a case has been described in which the number of strings St in a block is four, but the number of strings St in a block may be three or less, or may be five or more.
このように、ストリングStが複数となっても、1つのストリングSt内におけるワード線WLiの各プログラムステージのプログラムの順番は、ストリングStが1つの場合と同じである。ブロック内に複数のストリングStが存在する3次元構造の不揮発性メモリ3の場合、ワード線WLiとストリングStとの組み合わせ位置のプログラムは、一般には、異なるストリングSt内の同一ワード線番号をまずプログラムしてから、次のワード線番号に進められる。このような順番に従った場合、図8AをストリングSt数分だけ結合すると、例えば、図8Bまたは図8Cのような順番となる。
In this way, even if there are a plurality of strings St, the order of programming of each program stage of the word line WLi within one string St is the same as when there is only one string St. In the case of a
ここで、図9~図11を用いて、第1の実施形態によるプログラム順序に従った書き込み手順の例について説明する。図9~図11では、図8Bまたは図8Cに示すプログラム順序に従った場合の書き込み手順を示している。前述のように、メモリコントローラ2は、非連続的な順序でワード線WLiをまたぎながらプログラムステージを進めていくので、あるワード線WLiのまとまり(ここではブロック)をプログラムシーケンスのまとまりとしてプログラムを実行する。
Here, an example of a write procedure according to the program order according to the first embodiment will be explained using FIGS. 9 to 11. 9 to 11 show the write procedure in the case of following the program order shown in FIG. 8B or 8C. As described above, the
図9は第1の実施形態による1ブロック分全体の書き込み手順の第1例を示すフローチャートである。ここでの1ブロックは、ワード線WL0~WLn(nは自然数)のn+1本のワード線WLiを有するとする。図10は第1の実施形態による1stステージにおける書き込み手順を示すフローチャートであり、図11は、第1の実施形態による2ndステージでの書き込み手順を示すフローチャートである。 FIG. 9 is a flowchart showing a first example of a procedure for writing an entire block according to the first embodiment. It is assumed here that one block has n+1 word lines WLi of word lines WL0 to WLn (n is a natural number). FIG. 10 is a flowchart showing the write procedure in the 1st stage according to the first embodiment, and FIG. 11 is a flowchart showing the write procedure in the 2nd stage according to the first embodiment.
図9に示すように、書き込みを開始すると、制御部22は、ストリングSt0_ワード線WL0の1stステージのプログラムを実行する(ステップS10)。次に、制御部22は、ストリングSt1_ワード線WL0の1stステージのプログラムを実行する(ステップS20)。この後、制御部22は、各ストリングStに対してステップS10、S20と同様の処理を実行する。そして、制御部22は、ストリングSt3_ワード線WL0の1stステージのプログラムを実行する(ステップS30)。
As shown in FIG. 9, when writing starts, the
さらに、制御部22は、ストリングSt0_ワード線WL1の1stステージのプログラムを実行する(ステップS40)。次に、制御部22は、ストリングSt0_ワード線WL0の2ndステージのプログラムを実行する(ステップS50)。次に、制御部22は、ストリングSt1_ワード線WL1の1stステージのプログラムを実行する(ステップS60)。この後、制御部22は、各ストリングStの各ワード線WLiに対してステップS40、S50、S60のような処理を繰り返す。
Further, the
そして、制御部22は、ストリングSt0_ワード線WLnの1stステージのプログラムを実行する(ステップS70)。次に、制御部22は、ストリングSt0_ワード線WLn-1の2ndステージのプログラムを実行する(ステップS80)。この後、制御部22は、各ストリングStの各ワード線WLiに対してステップS70、S80のような処理を繰り返す。
Then, the
そして、制御部22は、ストリングSt3_ワード線WLn-1の2ndステージのプログラムを実行する(ステップS90)。次に、制御部22は、ストリングSt0_ワード線WLnの2ndステージのプログラムを実行する(ステップS100)。次に、制御部22は、ストリングSt1_ワード線WLnの2ndステージのプログラムを実行する(ステップS110)。この後、制御部22は、各ストリングStに対してステップS100、S110と同様の処理を実施する。そして、制御部22は、ストリングSt3_ワード線WLnの2ndステージのプログラムを実行する(ステップS120)。
Then, the
図10は1stステージの書込み手順の第1例を示すフローチャートである。1stステージのプログラムでは、まず、メモリコントローラ2から不揮発性メモリ3へLowerページデータの入力開始コマンドが入力される(ステップS210)。そして、メモリコントローラ2から不揮発性メモリ3へLowerページデータが入力される(ステップS215)。次に、メモリコントローラ2から不揮発性メモリ3へMiddleページデータの入力開始コマンドが入力される(ステップS220)。そして、メモリコントローラ2から不揮発性メモリ3へMiddleページデータが入力される(ステップS225)。次に、メモリコントローラ2から不揮発性メモリ3へTopページデータの入力開始コマンドが入力される(ステップS230)。そして、メモリコントローラ2から不揮発性メモリ3へTopページデータが入力される(ステップS235)。さらに、メモリコントローラ2から不揮発性メモリ3へ1stステージのプログラム実行コマンドが入力され(ステップS240)、これによりチップビジーとなる(ステップS245)。
FIG. 10 is a flowchart showing a first example of the write procedure of the 1st stage. In the first stage program, first, a lower page data input start command is input from the
データ書き込みの際には、しきい値電圧Vthを決定し(ステップS250)、1~複数回のプログラム電圧パルスが印加される(ステップS255)。そして、メモリセルがしきい値境界レベルを超えて移動したか否かを確認するためのデータ読み出し(ベリファイ)が行なわれる(ステップS260)。 When writing data, a threshold voltage Vth is determined (step S250), and one to a plurality of program voltage pulses are applied (step S255). Then, data reading (verification) is performed to check whether the memory cell has moved beyond the threshold boundary level (step S260).
さらに、LowerページおよびMiddleページおよびTopページにおけるデータのフェイルビット数がクライテリア(判定基準)よりも小さいか否かが確認される(ステップS265)。データのフェイルビット数がクライテリア以上である場合、プログラムパルス印加からクライテリア判定までの処理(ステップS255~S265)が繰り返される。そして、データのフェイルビット数がクライテリアよりも小さくなると、チップレディーとなる(ステップS270)。このように、印加と、読み出しと、確認とが繰り返されることで、所定のしきい値分布の範囲の中にメモリセルのしきい値を移動させることが可能となる。 Furthermore, it is checked whether the number of fail bits of data in the Lower page, Middle page, and Top page is smaller than a criterion (step S265). If the number of fail bits of the data is equal to or greater than the criterion, the processing from application of the program pulse to criterion determination (steps S255 to S265) is repeated. Then, when the number of fail bits of the data becomes smaller than the criterion, the chip becomes ready (step S270). By repeating the application, reading, and confirmation in this way, it is possible to move the threshold value of the memory cell within the range of a predetermined threshold distribution.
なお、上述したように、1stステージ書き込み時のプログラム電圧パルス印加後の読み出しレベルは、2ndステージ書き込み後の読出しレベルと若干異なっていてもよく、好ましくは、2ndステージ書き込み後の読出しレベルよりも低いレベルである。すなわち、Vr1’≦Vr1、Vr4’≦Vr4、Vr5’≦Vr5、Vr8’≦Vr8、Vr9’≦Vr9、Vr12’≦Vr12、Vr14’≦Vr14である。 Note that, as described above, the read level after application of the program voltage pulse during 1st stage writing may be slightly different from the read level after 2nd stage writing, and is preferably lower than the read level after 2nd stage writing. level. That is, Vr1'≦Vr1, Vr4'≦Vr4, Vr5'≦Vr5, Vr8'≦Vr8, Vr9'≦Vr9, Vr12'≦Vr12, and Vr14'≦Vr14.
また、1stステージ書き込みにおけるプログラム電圧パルス印加後の読み出しにおいて、Vr9’による読み出しとVr14’による読み出しを省略し、Vr9’はVr8’の読み出しをパスした後、ある規定回数のプログラム電圧パルスを印加後に書き込み完了とし、Vr14’はVr13’の読み出しをパスした後、ある規定回数のプログラム電圧パルスを印加後に書き込み完了としてもよい。 In addition, in the read after application of the program voltage pulse in the 1st stage write, the read by Vr9' and the read by Vr14' are omitted, and Vr9' passes the read of Vr8' and after applying a certain specified number of program voltage pulses. The writing may be completed, and after Vr14' passes the reading of Vr13', the writing may be completed after applying a certain prescribed number of program voltage pulses.
これは、上述したように、1stステージのプログラム後のデータにおいてMiddleページのデータが異なるしきい値領域の間隔を狭くすることで、2ndステージ書き込み時に読み出しを行うLowerページとTopページのデータが異なるしきい値領域の間隔が、ある規定回数のプログラム電圧パルスを印加するだけという簡単な制御でも、十分広く確保できるためである。 As mentioned above, by narrowing the interval between the threshold areas where the data of the Middle page differs in the data after programming in the 1st stage, the data of the Lower page and the Top page that are read during writing in the 2nd stage are different. This is because the interval between the threshold regions can be ensured to be sufficiently wide even with simple control of applying a certain number of program voltage pulses.
さらに、Vr8’とVr9’とVr12’とVr14’のプログラム電圧パルス印加後の読み出しを省略し、Vr5’の読み出しをパスした後、それぞれのある規定回数のプログラム電圧パルスを印加後に書き込み完了としてもよい。この他、更にVr4’、Vr5’、Vr8’、Vr9’Vr12’、Vr14’のプログラム電圧パルス印加後の読み出しを省略し、Vr1’の読み出しをパスした後、それぞれのある規定回数のプログラム電圧パルスを印加後に書き込み完了としてもよい。 Furthermore, even if reading after applying program voltage pulses of Vr8', Vr9', Vr12' and Vr14' is omitted, and after passing the reading of Vr5', writing is completed after applying a certain number of program voltage pulses for each. good. In addition, the readout after applying the program voltage pulses of Vr4', Vr5', Vr8', Vr9', Vr12', and Vr14' is omitted, and after passing the readout of Vr1', the program voltage pulses are applied a certain number of times. Writing may be completed after applying .
図11は2ndステージの書込み手順の第1例を示すフローチャートである。2ndステージのプログラムでは、まず、メモリコントローラ2から不揮発性メモリ3へMiddleページのデータの入力開始コマンドが入力される(ステップS310)。そして、メモリコントローラ2から不揮発性メモリ3へMiddleページのデータが入力される(ステップS320)。
FIG. 11 is a flowchart showing a first example of the write procedure of the 2nd stage. In the second stage program, first, a command to start inputting Middle page data is input from the
次に、メモリコントローラ2から不揮発性メモリ3へUpperページのデータの入力開始コマンドが入力される(ステップS330)。そして、メモリコントローラ2から不揮発性メモリ3へUpperページのデータが入力される(ステップS340)。次に、メモリコントローラ2から不揮発性メモリ3へ2ndステージのプログラム実行コマンドが入力され(ステップS350)、これによりチップビジーとなる(ステップS360)。
Next, a command to start inputting Upper page data is input from the
この後、制御部22は、IDL(Internal Data Load)であるLowerページおよびTopページデータの読み出しを行う(ステップS370)。そして、さきに入力されたMiddleページデータと、IDLによるLowerページおよびTopページのデータに基づいて、Upperページのプログラム先のVth(しきい値電圧)が決定される(ステップS380)。この後、決定されたVthを用いて、Upperページへのデータ書き込みが行われる。より具体的には、決定されたしきい値電圧になるように、複数のプログラムパルスの電圧値を少しずつ上げて書き込む(ステップS390)。目的とするしきい値電圧に達したメモリセルは書込み対象から除外される。
After that, the
その後、書き込んだデータを読み出して(ステップS400)、フェイルビット数がクライテリア(判定基準)よりも小さいか否かが確認される(ステップS410)。データのフェイルビット数がクライテリア以上である場合、プログラムパルス印加からクライテリア判定までの処理(ステップS390~S410)が繰り返される。そして、データのフェイルビット数がクライテリアよりも小さくなると、チップレディーとなる(ステップS420)。 Thereafter, the written data is read (step S400), and it is determined whether the number of fail bits is smaller than a criterion (step S410). If the number of fail bits of the data is equal to or greater than the criterion, the processing from application of the program pulse to criterion determination (steps S390 to S410) is repeated. Then, when the number of fail bits of the data becomes smaller than the criterion, the chip becomes ready (step S420).
ここで、本実施形態には、2つの特徴がある。第1の特徴は、Middleページのデータは1stステージのプログラムでもすでに入力されており、1stプログラム後のしきい値領域はMiddleページのデータも含まれた書き込み状態であるが、2ndステージのプログラムでも再びMiddleページのデータを入力していることである。第2の特徴は、1stステージのプログラムではそのMiddleページのデータが切り替わる隣接しきい値領域同士は間隔が狭くなっており、LowerページのデータとTopページのデータが切り替わる隣接しきい値分布同士は反対に間隔が広くなっていることである。これにより、IDLで読み出す LowerページおよびTopページデータの信頼性を上げることができる。一方、Middleページのデータは、もしIDLでデータを読み出したとしたら信頼性が低下するおそれがあるが、本実施形態では1stステージプログラムで使用したMiddleページのデータを再び入力するため、信頼性が低下するおそれはない。 Here, this embodiment has two features. The first feature is that the Middle page data has already been input in the 1st stage program, and the threshold area after the 1st program is in a written state that also includes the Middle page data, but even in the 2nd stage program. This is again entering the data for the Middle page. The second feature is that in the 1st stage program, the distance between adjacent threshold areas where the data of the Middle page is switched is narrow, and the interval between adjacent threshold areas where the data of the Lower page and the data of the Top page are switched is narrow. On the contrary, the intervals are getting wider. This makes it possible to improve the reliability of the Lower page and Top page data read by IDL. On the other hand, if the data on the Middle page is read using IDL, there is a risk that the reliability will decrease, but in this embodiment, the data on the Middle page used in the 1st stage program is input again, so the reliability decreases. There is no risk of it happening.
さらに、制御部22は、IDLの読み出しデータの信頼性を上げるために、複数回数読み出しを行い、チップ内のページバッファでこの読み出し結果の多数決をとり、次の書き込みデータとして使用することも可能である。無論、制御部22は、通常の読み出し動作時に於いて、複数回数読み出しを行いチップ内でこの読み出し結果の多数決をとり、外部への読み出しデータとして使用することも可能である。
Furthermore, in order to improve the reliability of the IDL read data, the
図12は複数回数の読み出し結果の多数決処理を説明するための図である。図12では、所定のページのデータを読み出した結果として、正しいビットを丸印(○)で示し、誤ったビットをばつ印(×)で示している。また、図12では、3回の読み出しが行われた場合の多数決の結果を示している。 FIG. 12 is a diagram for explaining majority decision processing of the results of reading a plurality of times. In FIG. 12, as a result of reading data of a predetermined page, correct bits are indicated by circles (◯), and incorrect bits are indicated by cross marks (×). Further, FIG. 12 shows the result of majority voting when reading is performed three times.
各ビットにおいて、多数決の結果が誤りと判断されるのは、(a)3回とも誤った場合と、(b)2回とも誤った場合である。各ビットが誤っている確率をpとすると、p=0.2の場合、(a)3回誤る確率は、p×p×p=0.2×0.2×0.2であり、(b)2回誤る確率は、(1-p)×p×p=(1-0.2)×0.2×0.2である。 For each bit, the result of the majority vote is determined to be incorrect if (a) it is incorrect three times, or (b) if it is incorrect twice. Let p be the probability that each bit is incorrect. When p = 0.2, (a) the probability of making an error three times is p x p x p = 0.2 x 0.2 x 0.2, and ( b) The probability of making a mistake twice is (1-p)×p×p=(1-0.2)×0.2×0.2.
したがって、3回の多数決結果が誤りと判断されるのは、(p×p×p)+3×(1-p)×p×p=0.104である。このように、制御部22は、複数回数の読み出し結果の多数決処理をチップ内のページバッファ24で行うことで、読み出しデータの信頼性を上げることが可能となる。
Therefore, the number of times when the three majority voting results are determined to be incorrect is (p×p×p)+3×(1−p)×p×p=0.104. In this way, the
さらに、制御部22は、ワード線WLnの2ndステージ書き込みにおけるIDLの読み出しデータの信頼性を上げるために、WLn+1の1stステージ書き込みで書き込みを行ったデータもしくはしきい値電圧に応じて、IDLにおけるワード線WLnの読み出し電圧を変えて読み出しを行っても良い。
Furthermore, in order to improve the reliability of the IDL read data in the 2nd stage writing of the word line WLn, the
そしてさらに、制御部22は、ワード線WLnの2ndステージ書き込みにおけるIDLの読み出しデータの信頼性を上げるために、ワード線WLn+1の1stステージ書き込みで書き込みを行ったデータもしくはしきい値電圧に応じて、IDLにおけるワード線WLn+1の非選択電圧を変えて読み出しを行っても良い。このとき同時にワード線WLnの読み出し電圧を変えて読み出しを行っても良い。
Furthermore, in order to improve the reliability of the IDL read data in the 2nd stage writing of the word line WLn, the
Upperページへのデータ書き込みの際には、1~複数回のプログラム電圧パルスが印加される。そして、メモリセルがしきい値境界レベルを超えて移動したか否かを確認するために、Upperページのデータ読み出し(ベリファイ)が行なわれる。このときの読み出しレベルは所定のレベルである。 When writing data to the Upper page, one to a plurality of program voltage pulses are applied. Then, in order to confirm whether the memory cell has moved beyond the threshold boundary level, data reading (verification) of the Upper page is performed. The read level at this time is a predetermined level.
さらに、Upperページにおけるデータのフェイルビット数がクライテリアよりも小さいか否かが確認される。Upperページにおけるデータのフェイルビット数がクライテリア以上である場合、プログラム電圧パルス印加からベリファイの処理が繰り返される。そして、データのフェイルビット数がクライテリアよりも小さくなると、チップレディーとなる。 Furthermore, it is checked whether the number of fail bits of data in the Upper page is smaller than the criteria. If the number of failed bits of data in the Upper page is equal to or greater than the criterion, the verification process from application of the program voltage pulse is repeated. Then, when the number of data fail bits becomes smaller than the criterion, the chip becomes ready.
ここで、図11に示した書き込み手順の変形例について説明する。図13は第1の実施形態に係る2ndステージでの書き込み手順の変形例を示すフローチャートである。なお、図13のフローチャートでは、1stステージでプログラムしたデータを読み出したIDLデータに対してエラー訂正を行った上で不揮発性メモリ3に戻すという手順が追加している。具体的には、まず、メモリコントローラ2から不揮発性メモリ3へLowerページの読み出しコマンドが入力される(ステップS510)。これにより、チップビジーとなる(ステップS512)。次に、制御部22は、Lowerページデータの読み出しをVr8’のしきい値電圧で行う。そして、制御部22は、Vr8’のしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS514)。この後、チップレディーとなる(ステップS516)。
Here, a modification of the writing procedure shown in FIG. 11 will be described. FIG. 13 is a flowchart showing a modification of the writing procedure in the 2nd stage according to the first embodiment. Note that in the flowchart of FIG. 13, a procedure is added in which error correction is performed on the IDL data read from the data programmed in the 1st stage and then returned to the
制御部22が読み出したLowerページデータを出力すると(ステップS518)、このLowerページデータは、ECC回路10に送信される(ステップS520)。これにより、ECC回路10がLowerページデータをECC訂正する(ステップS522)。
When the
次に、メモリコントローラ2から不揮発性メモリ3へLowerページのデータの入力開始コマンドが入力される(ステップS524)。これにより、ECC回路10が、不揮発性メモリ3へLowerページのデータを入力する(ステップS526)。
Next, a lower page data input start command is input from the
次に、メモリコントローラ2から不揮発性メモリ3へTopページの読み出しコマンドが入力され(ステップS528)、これによりチップビジーとなる(ステップS530)。この後、制御部22は、Topページデータの読み出しをVr2’とVr10’のしきい値電圧で行う。そして、制御部22は、Vr1’とVr4’とVr8’とVr12’のしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS532)。この後、チップレディーとなる(ステップS534)。
Next, a top page read command is input from the
制御部22が読み出したTopページデータを出力すると(ステップS536)、このTopページデータは、ECC回路10に送信される(ステップS538)。これにより、ECC回路10がTopページデータをECC訂正する(ステップS540)。次に、メモリコントローラ2から不揮発性メモリ3へTopページのデータの入力開始コマンドが入力される(ステップS542)。これにより、ECC回路10が、不揮発性メモリ3へTopページのデータを入力する(ステップS544)。
When the
この後、メモリコントローラ2から不揮発性メモリ3へMiddleページのデータの入力開始コマンドが入力される。(ステップS546)。これ以降のステップは図11の手順と同様である。プログラム先のしきい値電圧Vthは、ECC回路10からのLowerページデータ及びTopページデータと、再び入力されたMiddleページのデータ、及び新しく入力されたUpperページのデータに基づいてプログラム先のしきい値電圧Vthが決定される。
Thereafter, a command to start inputting Middle page data is input from the
上述した2ndステージのプログラムでは、不揮発性メモリ3へのデータ入力は、MiddleページとUpperページとの2ページだけである。しかし、この2ndステージでは、メモリセルのプログラムの目的地であるしきい値電圧Vthには、Lowerページ、Topページ(2ndステージを始める前のしきい値電圧Vth)も含めた4ページ分のデータが必要である。そのため、このステージのプログラムでは、前処理として、制御部22が、まずLowerページデータとTopページデータを読み出し、そのデータを、さらに入力されたMiddleページとUpperページとで合成してプログラム先のしきい値電圧Vthを決定するという動作を行う。なお、2ndステージのベリファイ時の読み出しレベルは、2ndステージ書き込み後の読出しレベルと若干異なっていてもよい。
In the above-described 2nd stage program, data is input to the
ここで、4-3-4-4データコーディングを採用したFoggy-Fineプログラムの処理手順と、本実施形態のプログラム処理手順との比較について説明する。図14Aは4-3-4-4データコーディングを採用したFoggy-Fineプログラムにおける書き込みバッファのデータ量を説明する図である。図14Bは本実施形態における書き込みバッファのデータ量を説明する図である。図14Bは1-4-5-5データコーディングを採用した例を示している。 Here, a comparison between the processing procedure of the Foggy-Fine program that employs 4-3-4-4 data coding and the program processing procedure of this embodiment will be explained. FIG. 14A is a diagram illustrating the amount of data in the write buffer in a Foggy-Fine program that employs 4-3-4-4 data coding. FIG. 14B is a diagram illustrating the amount of data in the write buffer in this embodiment. FIG. 14B shows an example using 1-4-5-5 data coding.
図14A及び図14Bでは、上段側に、ブロック書き込みのデータ入力とプログラム実行のタイムチャートを示し、下段側に、書き込みバッファ内にデータを保持するのに必要な期間のタイムチャートを示している。なお、図14A及び図14Bでは、説明を簡単化するために、1ブロック内のストリングStの個数が1の場合を示している。ストリングStが複数の場合は、書き込みバッファのデータ量がストリングStの個数倍だけ必要となる。 In FIGS. 14A and 14B, the upper side shows a time chart of data input and program execution for block writing, and the lower side shows a time chart of the period required to hold data in the write buffer. Note that, in order to simplify the explanation, FIGS. 14A and 14B show a case where the number of strings St in one block is one. When there are multiple strings St, the amount of data in the write buffer is required to be equal to the number of strings St.
4-3-4-4データコーディングのFoggy-Fineプログラムの場合、1つ目のステージであるFoggyステージでは、4ページ分のデータ入力と、この4ページ分のプログラム(Foggyステージのプログラム)とが行われる。また、4-3-4-4データコーディングのFoggy-Fineプログラムの場合、2つ目のステージであるFineステージでも、4ページ分のデータ入力と、この4ページ分のプログラム(Fineステージのプログラム)とが行われる。 In the case of a Foggy-Fine program with 4-3-4-4 data coding, the first stage, Foggy stage, involves inputting data for 4 pages and creating a program for these 4 pages (Foggy stage program). It will be done. In addition, in the case of a Foggy-Fine program with 4-3-4-4 data coding, even in the second stage, Fine stage, there is data input for 4 pages, and a program for these 4 pages (Fine stage program). will be carried out.
そして、各ワード線WL0、WL1、WL2、・・・では、Fineステージにおいてプログラムが開始されるまで、Foggyステージにおいて書き込まれた4ページ分のデータを書き込みバッファ内に格納しておく必要がある。 For each word line WL0, WL1, WL2, . . ., it is necessary to store four pages worth of data written in the Foggy stage in the write buffer until programming is started in the Fine stage.
Foggy-Fineプログラムにおいても、隣接メモリセル間干渉を低減するため、Lower/Middle/Upper/Topの4ページ分のデータは連続して書き込まれない。例えば、ワード線WL0へのFoggyステージが実行された後、ワード線WL0へのFineステージが実行される前に、ワード線WL0に隣接するワード線WL1へのFoggyステージが実行される。また、ワード線WL0へのFoggyステージが実行された後、ワード線WL1へのFineステージが実行される前に、ワード線WL1に隣接するワード線WL2へのFoggyステージが実行される。この方法の場合、最終の2つ目であるFineステージのデータ入力が完了するまで、Lower/Middle/Upper/Topの4ページ分のデータを、書き込みバッファ内に保持しておく必要がある。また、隣接メモリセル間干渉を低減するためには、複数のワード線WLiにおけるデータを、書き込みバッファ内に保持しておく必要がある。例えば、ワード線WL2に対してFoggyステージが実行される際には、ワード線WL1に対する3ページ分のデータと、ワード線WL2に対する3ページ分のデータとが、書き込みバッファ内に保持されている必要がある。このように、4-3-4-4データコーディングのFoggy-Fineプログラムの場合、最大8ページ分のデータが書き込みバッファ内に保持されている必要がある。 In the Foggy-Fine program as well, data for four pages of Lower/Middle/Upper/Top are not written consecutively in order to reduce interference between adjacent memory cells. For example, after the Foggy stage is performed on the word line WL0, and before the Fine stage is performed on the word line WL0, the Foggy stage is performed on the word line WL1 adjacent to the word line WL0. Furthermore, after the Foggy stage is executed on the word line WL0 and before the Fine stage is executed on the word line WL1, the Foggy stage is executed on the word line WL2 adjacent to the word line WL1. In this method, it is necessary to hold data for four pages of Lower/Middle/Upper/Top in the write buffer until data input for the second and final Fine stage is completed. Furthermore, in order to reduce interference between adjacent memory cells, it is necessary to hold data on a plurality of word lines WLi in a write buffer. For example, when the Foggy stage is executed for word line WL2, three pages of data for word line WL1 and three pages of data for word line WL2 must be held in the write buffer. There is. Thus, in the case of a Foggy-Fine program with 4-3-4-4 data coding, a maximum of eight pages of data must be held in the write buffer.
図14Bに示すように、本実施形態のプログラムでは、例えば1-4-5-5データコーディングで2ステージのプログラムが用いられる。この本実施形態のプログラムでは、1stステージでは、3ページ分(Lowerページ及びMiddleページ及びTopページ)のデータ入力と、この3ページ分のプログラム(1stプログラム)とが行われる。また、本実施形態のプログラムの場合、2ndステージでは、2ページ分(Middleページ及びUpperページ)のデータ入力と、Upperページの1ページ分のプログラム(2ndプログラム)とが行われる。 As shown in FIG. 14B, the program of this embodiment uses, for example, a two-stage program with 1-4-5-5 data coding. In the program of this embodiment, in the 1st stage, data input for three pages (Lower page, Middle page, and Top page) and a program for these three pages (1st program) are performed. Further, in the case of the program of this embodiment, in the second stage, data input for two pages (Middle page and Upper page) and a program for one page of the Upper page (second program) are performed.
そして、各ワード線WL0、WL1、WL2、・・・では、両方のステージで入力されるMiddleページを除き、各ステージのデータ入力の際にデータを書き込みバッファ内に格納しておけばよく、プログラムが開始されると、書き込みバッファ内からデータが削除されてもよい。例えば、1stステージにおいてデータが入力されると、このデータは書き込みバッファ内に格納される。そして、1stステージにおいてプログラムが開始されると、書き込みバッファ内に格納しておいたLowerページとTopページのデータは削除されてもよい。同様に、2ndステージにおいてデータが入力されると、このデータは書き込みバッファ内に格納される。そして、2ndステージにおいてプログラムが開始されると、書き込みバッファ内に格納しておいたデータはすべて削除されてもよい。このため、本実施形態のプログラムの場合、書き込みバッファ内に保持しておく必要があるデータは、最大でも4ページ分のデータである。 Then, for each word line WL0, WL1, WL2, etc., except for the middle page that is input in both stages, it is only necessary to store data in the write buffer when inputting data in each stage, and the program Once the write buffer is started, data may be deleted from within the write buffer. For example, when data is input in the 1st stage, this data is stored in the write buffer. Then, when the program is started in the 1st stage, the data of the Lower page and Top page stored in the write buffer may be deleted. Similarly, when data is input in the 2nd stage, this data is stored in the write buffer. Then, when the program is started in the 2nd stage, all data stored in the write buffer may be deleted. Therefore, in the case of the program of this embodiment, the data that needs to be held in the write buffer is at most 4 pages worth of data.
本実施形態のプログラムにおいても、隣接メモリセル間干渉を低減するため、Lower/Middle/Upper/Topの4ページ分のデータは連続して書き込まれない。例えば、ワード線WL0への1stステージが実行された後、ワード線WL0への2ndステージが実行される前に、ワード線WL0に隣接するワード線WL1への1stステージが実行される。同様に、ワード線WL1への1stステージが実行された後、ワード線WL1への2ndステージが実行される前に、ワード線WL1に隣接するワード線WL2への1stステージが実行される。 Also in the program of this embodiment, data for four pages of Lower/Middle/Upper/Top are not written consecutively in order to reduce interference between adjacent memory cells. For example, after the 1st stage is performed on the word line WL0, and before the 2nd stage is performed on the word line WL0, the 1st stage is performed on the word line WL1 adjacent to the word line WL0. Similarly, after the 1st stage to the word line WL1 is performed, and before the 2nd stage to the word line WL1 is performed, the 1st stage to the word line WL2 adjacent to the word line WL1 is performed.
このように、本実施形態では、Middleページ以外のページデータは、1回のステージのプログラムでのみ必要であるので、そのデータ入力が完了すれば書き込みバッファ内のデータは破棄可能となる。そのため、本実施形態では、書き込みバッファ内に同時に保持しておくことが必要なページ数が少なくて済む。 In this manner, in this embodiment, the page data other than the Middle page is required only for one stage of the program, and therefore, once the data input is completed, the data in the write buffer can be discarded. Therefore, in this embodiment, the number of pages that need to be held simultaneously in the write buffer can be reduced.
不揮発性メモリ3へプログラムされるページデータは、RAM6内の書き込みバッファに一旦保持されてから、プログラム時に不揮発性メモリ3へデータ入力される。本実施形態においては、このRAM6の必要容量を小さくすることが可能となるので、コスト削減が図れる。
Page data to be programmed into the
また、Foggy-Fineプログラムが用いられるときは、全てのページデータのデータ転送を2回行なわなくてはならないので、転送時間が掛かり、また転送時の消費電力も余分に必要となる。本実施形態では、Middleページ以外のページデータは、各ページそれぞれ1回のデータ転送で完了するため、転送時間及び電力消費をおよそ1/2程度に抑えることが可能になる。 Furthermore, when the Foggy-Fine program is used, all page data must be transferred twice, which increases the transfer time and requires additional power consumption during transfer. In this embodiment, page data other than the Middle page is completed by one data transfer for each page, so it is possible to reduce the transfer time and power consumption to approximately 1/2.
ここで、ページ読み出し処理について説明する。ページ読み出しの方法は、読み出し対象ページを含むワード線WLiに対するプログラムが、2ndステージの書き込み前か、後かで異なる。 Here, page read processing will be explained. The method of reading a page differs depending on whether the word line WLi including the page to be read is programmed before or after writing in the 2nd stage.
2ndステージ書き込み前の場合、記録されているデータはLowerページとMiddleページとTopページだけが有効である。このため、制御部22は、読み出しページがLowerページとMiddleページとTopページのときはメモリセルからデータを読み出すが、その他のページ(具体的にはUpperページ)の場合には、メモリセル読み出し動作は行わず、読み出しデータとして強制的に全て“1”を出力する制御を行う。
Before 2nd stage writing, only the Lower page, Middle page, and Top page are valid recorded data. Therefore, the
一方、2ndステージまで完了したワード線WLiの場合、制御部22は、読み出しページがTop/Upper/Middle/Lowerページの何れであってもメモリセルを読み出す。この場合、読み出すページが何れのページかによって必要な読み出し電圧が異なるので、制御部22は、選択されたページに従って必要な読み出しだけを実行する。
On the other hand, in the case of the word line WLi that has completed up to the 2nd stage, the
以下、ページ読み出しの具体的な処理手順について説明する。図15は、第1の実施形態に係るメモリシステム1において1stステージまでプログラムが完了している(2ndステージのプログラムが完了していない)ワード線でのページ読み出しの処理手順を示すフローチャートである。図6に示した1-4-5-5データコーディングによれば、Lowerページデータが変化するしきい値状態間の境界は1つなので、制御部22は、その境界で分離された2つの範囲の何れにしきい値が位置するかでデータを決定する。例えば、しきい値電圧がVr8’よりも小さい場合には、制御部22は、メモリセルのデータとして“1”を出力する制御を行う。一方、しきい値電圧がVr8’よりも大きい場合には、制御部22は、メモリセルのデータとして“0”を出力する制御を行う。
The specific processing procedure for page reading will be described below. FIG. 15 is a flowchart showing a page read processing procedure for a word line for which programming has been completed up to the 1st stage (programming for the 2nd stage has not been completed) in the
また、Middleページのデータが変化するしきい値状態間の境界は3つであるので、制御部22は、それらの境界で分離された4つの範囲の何れの中にしきい値が位置するかでデータを決定する。また、Topページのデータが変化するしきい値状態間の境界は4つであるので、制御部22は、それらの境界で分離された5つの範囲の何れの中にしきい値が位置するかでデータを決定する。
Furthermore, since there are three boundaries between the threshold states where the data of the Middle page changes, the
図15に示すように、2ndステージ書き込み前のワード線WLiの場合、制御部22は、読み出しページを選択する(ステップS610)。読み出しページがLowerページの場合、制御部22は、1つの読み出し電圧で読み出しを行う(ステップS612)。この電圧は、Vr8であるが、前述したように、2ndステージ書き込み前のワード線である場合、図8(T2)に示すように、読み出し電圧としきい値電圧の余裕をもって、例えばVr8’でもよい。そして、制御部22は、Vr8のしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS614)。
As shown in FIG. 15, in the case of the word line WLi before 2nd stage writing, the
また、読み出しページがMiddleページの場合、制御部22は、3つの読み出し電圧で読み出しを行う(ステップS616、S618、S620)。この電圧は、前述したようにVr4とVr9とVr14であるが、2ndステージ書き込み前のワード線である場合、図8(T2)に示すように、読み出し電圧としきい値電圧の余裕をもって、例えばそれらの代わりにそれぞれVr4’とVr9’とVr14’でもよい。そして、制御部22は、Vr4のしきい値「電圧での読み出し結果とVr9のしきい値電圧での読み出し結果とVr14のしきい値電圧での読み出し結果とに基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS622)。ここで、前述したように、Middleページのデータが異なるしきい値分布の間隔が狭く、Middleページの読み出しマージンが狭くなっているため、読み出しデータの値は信頼性が著しく悪い可能性があり、2ndステージ書き込み前のMiddleページデータは無効であると定義しても良い。その場合、読み出しページがMiddleページの場合、制御部22は、メモリセルの出力データとして全て強制的に“1”を出力する制御を行ってもよい。
Further, when the read page is the Middle page, the
また、読み出しページがUpperページの場合、1stプログラムではUpperページのプログラムを行っていないことから、制御部22は、出力データとして全て強制的に”1”を出力する(ステップS624)。
Furthermore, when the read page is the Upper page, since the 1st program does not program the Upper page, the
また、読み出しページがTopページの場合、制御部22は、4つの読み出し電圧で読み出しを行う(ステップS626、S628、S630、S632)。この電圧は、前述したようにVr1とVr4とVr8とVr12であるが、2ndステージ書き込み前のワード線である場合、図8(T2)に示すように、読み出し電圧としきい値電圧の余裕をもって、例えばそれらの代わりにそれぞれVr1’とVr4’とVr8’とVr12’でもよい。そして、制御部22は、Vr1のしきい値電圧での読み出し結果とVr4のしきい値電圧での読み出し結果とVr8のしきい値電圧での読み出し結果とVr12のしきい値電圧での読み出し結果とに基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS634)。
Further, when the read page is the top page, the
図16Aは第1の実施形態に係るメモリシステム1において2ndステージまでプログラムが完了しているワード線でのページ読み出しの処理手順を示すフローチャートである。2ndステージまでプログラムが完了したワード線WLiの場合、制御部22は、読み出しページを選択する(ステップS650)。読み出しページがLowerページの場合、制御部22は、Vr8の1つのしきい値電圧で読み出しを行う(ステップS652)。そして、制御部22は、Vr8の1つのしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS654)。
FIG. 16A is a flowchart illustrating a page read processing procedure for a word line for which programming has been completed up to the 2nd stage in the
また、読み出しページがMiddleページの場合、制御部22は、Vr4、Vr9、Vr11及びVr14のしきい値電圧で読み出しを行う(ステップS656、S658、S660、S662)。そして、制御部22は、Vr4、Vr9、Vr11及びVr14のしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS664)。
Furthermore, when the read page is the Middle page, the
また、読み出しページがUpperページの場合、制御部22は、Vr2、Vr6、Vr10、Vr13及びVr15のしきい値電圧で読み出しを行う(ステップS666、S668、S670、S672、S674)。そして、制御部22は、Vr2、Vr6、Vr10、Vr13及びVr15のしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS676)。
Further, when the read page is the Upper page, the
また、読み出しページがTopページの場合、制御部22は、Vr1、Vr3、Vr5、Vr7及びVr12のしきい値電圧で読み出しを行う(ステップS678、S680、S682、S684、S686)。そして、制御部22は、Vr1、Vr3、Vr5、Vr7及びVr12のしきい値電圧での読み出し結果に基づいて、読み出したデータの値を“0”または“1”に決定する(ステップS688)。
Further, when the read page is the top page, the
なお、ワード線WLiに対するプログラムが、2ndステージ書き込み完了前か後かは、メモリコントローラ2が管理及び識別することが可能である。メモリシステム1においてはメモリコントローラ2がプログラム制御を行っているので、メモリコントローラ2がその進捗状況を記録しておけば、メモリコントローラ2は、不揮発性メモリ3のどのアドレスがどのようなプログラム状態であるか容易に参照できる。この場合、メモリコントローラ2は、不揮発性メモリ3から読み出しを行う際、対象ページアドレスを含むワード線WLiがどのようなプログラム状態であるかを識別し、識別した状態に応じた読み出しコマンドを発行する。また、別の方法として、ワード線WLi毎にフラグセルを設け、2ndステージ書き込み時にフラグセルを書き込み、フラグセルのデータに応じて、2ndステージ書き込み完了前か後か、不揮発性メモリ3で管理・識別することも可能である。
Note that the
以下に、ページ読み出し処理の一変形例を説明する。一変形例によるページ読出し処理は、読み出し対象ページを含むワード線WLiに対するプログラムが2ndステージの書き込みを行った後のみ実行可能である。一変形例によるページ読み出し処理は、読出し対象のワード線のすべてのデータを読み出す場合に、読み出し速度が速くなる点で有効である。 A modified example of page read processing will be described below. The page read process according to the first modified example can be executed only after the second stage of the program to the word line WLi including the page to be read has been written. The page read process according to the first modified example is effective in that the read speed becomes faster when all data of the word line to be read is read.
一変形例によるページ読み出し処理に適したデータコーディングは、例えば図16Bのようなものである。以下、このデータコーディングの場合における一変形例による読出し処理について説明する。一変形例によるページ読み出し処理では、Top/Upper/Middle/Lowerページのすべてのページを読み出す。 Data coding suitable for page read processing according to a modified example is as shown in FIG. 16B, for example. A reading process according to a modified example in this data coding case will be described below. In the page read processing according to a modified example, all pages of Top/Upper/Middle/Lower pages are read.
図16Cは一変形例による読出し処理手順を示すフローチャートである。また、図16Dは、選択ワード線、ReadyBusy信号線、出力データ線の電圧波形図である。制御部22は、15個のすべての読出し電圧Vr15~Vr1で順番に読出しを行う。まず、図16Dに示すように最も高い電圧であるVr15で読出しを行い(ステップS690)、続けて1段階ずつ下がりながら低い読出し電圧で順番に読出しを続けていく(ステップS691~S707)。各ページの読出しデータを決定するために必要な読み出しが完了したところで、そのページの読出しデータが出力可能になる。
FIG. 16C is a flowchart showing a read processing procedure according to a modified example. Further, FIG. 16D is a voltage waveform diagram of the selected word line, ReadyBusy signal line, and output data line. The
一変形例によるページ読み出し処理では、Vr15から順に読み出してVr8の読出しまで終わったところで(ステップS699)、Lowerページのデータが決定され、このデータを出力することが可能になる(ステップS700)。このステップS700では、読み出し電圧Vr8での読み出しデータに基づいてLowerページのデータが決定される。 In the page read process according to the first modification, when the data is sequentially read from Vr15 to Vr8 (step S699), the data of the lower page is determined, and this data can be output (step S700). In step S700, lower page data is determined based on the read data at read voltage Vr8.
続いてVr4まで読出しが終わったところで(ステップS702)、Middleページのデータが決定される(ステップS703)。このステップS703では、読み出し電圧Vr4、Vr9、Vr11及びVr14での読み出しデータに基づいてMiddleページのデータが決定される。 Subsequently, when reading up to Vr4 is completed (step S702), the data of the Middle page is determined (step S703). In this step S703, the data of the Middle page is determined based on the read data at the read voltages Vr4, Vr9, Vr11, and Vr14.
続いてVr2まで読出しが終わったところで(ステップS705)、Upperページのデータが決定される(ステップS706)。このステップS706では、読み出し電圧Vr2、Vr6、Vr10、Vr13及びVr15での読み出しデータに基づいてUpperページのデータが決定される。 Subsequently, when reading up to Vr2 is completed (step S705), the data of the Upper page is determined (step S706). In step S706, Upper page data is determined based on the read data at read voltages Vr2, Vr6, Vr10, Vr13, and Vr15.
続いてVr1まで読出しが終わったところで(ステップS707)、最終のTopページのデータが決定される(ステップS708)。このステップS708では、読み出し電圧Vr1、Vr3、Vr5、Vr7及びVr12での読み出しデータに基づいてTopページのデータが決定される。 Subsequently, when the reading up to Vr1 is completed (step S707), the data of the final top page is determined (step S708). In step S708, top page data is determined based on the read data at read voltages Vr1, Vr3, Vr5, Vr7, and Vr12.
一変形例によるページ読み出し処理では、任意の1ページのデータを出力可能になるまでのレイテンシは長くなるが、全4ページを読み出す合計時間は、前に説明した1ページずつ読み出した場合の合計時間よりも短くできる。図16Dに示すように、読出し準備としてワード線をゼロから高電圧であるVr15まで充電する時間が1回で済み、また読出しレベルを次の電圧に変化させる際の電圧変化の振幅が小さく短時間で電圧が安定するため、読み出し電圧が安定するまでの待機時間を短縮できる。このため、すべての読出し電圧Vr15~Vr1で読み出す場合は、選択ワード線の遷移時間の合計が短くなり、結果として合計の読出し時間を高速化できる。 In the page read processing according to the first variation, the latency until it becomes possible to output the data of any one page is longer, but the total time to read all four pages is the total time when reading one page at a time as explained earlier. It can be made shorter than As shown in FIG. 16D, it only takes one time to charge the word line from zero to the high voltage Vr15 in preparation for reading, and the amplitude of the voltage change when changing the read level to the next voltage is small and takes a short time. Since the voltage is stabilized at , the waiting time until the read voltage becomes stable can be shortened. Therefore, when reading with all the read voltages Vr15 to Vr1, the total transition time of the selected word lines becomes shorter, and as a result, the total read time can be increased.
なお、以上では、図16Bのデータコーディングを例に取って説明したが、基本的にはどのようなデータコーディングでも適用可能である。ただし、読出し電圧を最大電圧から最小電圧まで順に変化させて読出しを行うため、データを確定するのに必要な電圧の読出しが完了したページの順番にデータ出力が可能になる。このため、データコーディングの形態によっては、Lower、Middle、Upper、Topのページ順番に読み出せないことに留意が必要である。 Note that although the explanation has been given above using the data coding in FIG. 16B as an example, basically any data coding can be applied. However, since reading is performed by sequentially changing the read voltage from the maximum voltage to the minimum voltage, data can be output in the order of the pages for which reading of the voltage necessary to determine the data is completed. Therefore, it must be noted that depending on the data coding format, pages cannot be read in the order of Lower, Middle, Upper, and Top.
このように、第1の実施形態では、不揮発性メモリ3(3次元構造または2次元構造を有した4bit/CellのNANDメモリ)をプログラムする際に、1-4-5-5データコーディングを採用し、プログラムのステージを2ステージ制とした。このように2ステージ制でプログラムされるので、各ステージでのデータプログラムの際に入力するデータ量が減り、メモリコントローラ2に必要とされる書き込みバッファ量を抑制することが可能となる。また、各ページでのしきい値境界の数が均一であるため、不揮発性メモリ3のページ間のビットエラー率の偏りを低減できるとともに、ECCにかかるコストを下げることができる。また、データ転送は1ページを除き各ページ1回のみとなるため、転送時間及び消費電力を抑えることができる。
In this way, in the first embodiment, 1-4-5-5 data coding is adopted when programming the non-volatile memory 3 (a 4-bit/cell NAND memory with a three-dimensional structure or a two-dimensional structure). The program was divided into two stages. Since programming is performed in a two-stage system in this manner, the amount of data input during data programming in each stage is reduced, making it possible to suppress the amount of write buffer required for the
また、ワード線WLiをまたぎながら、各プログラムステージを実行するので、隣接ワード線WLiとの隣接セル間干渉の量を低減することができる。また、1-4-5-5データコーディングを用いるので、2ndプログラムにおけるしきい値分布の変化量が小さくなるために、隣接セル間干渉量を抑制することが可能となる。また、1ページ(具体的にはMiddleページ)は両方のステージでデータを入力することにより、2ndステージの前のIDLマージンを拡大することができ、書き込みシーケンスの信頼性を向上することが可能となる。また、1-4-5-5データコーディングを用いるので、1stステージのプログラム時、Lowerページにおけるしきい値境界を1つ、Middleページにおけるしきい値境界を2つとすることにより、1stステージのプログラム、すなわちLowerページ及びMiddleページのプログラムを高速化することができる。なお、1stステージのプログラムの高速化は、書き込み及び書き込みベリファイの繰り返しときに、書き込み電圧を少しずつステップアップさせて書き込むときのステップ電圧を、2ndステージのプログラム時より大きい値にするなどで高速化ができる。 Furthermore, since each program stage is executed while straddling the word line WLi, the amount of interference between adjacent cells with the adjacent word line WLi can be reduced. Furthermore, since 1-4-5-5 data coding is used, the amount of change in the threshold distribution in the 2nd program is small, making it possible to suppress the amount of interference between adjacent cells. In addition, by inputting data in both stages for the first page (specifically the Middle page), the IDL margin before the second stage can be expanded, making it possible to improve the reliability of the write sequence. Become. In addition, since 1-4-5-5 data coding is used, when programming the 1st stage, by setting one threshold boundary on the Lower page and two threshold boundaries on the Middle page, it is possible to program the 1st stage. In other words, it is possible to speed up the programs of the Lower page and Middle page. In addition, the speed of the 1st stage program can be increased by increasing the write voltage little by little when repeating write and write verify, and making the step voltage at the time of writing a larger value than when programming the 2nd stage. Can be done.
(第2の実施形態)
第1の実施形態では、1-4-5-5データコーディングを例にとり説明したが、さまざまなデータコーディングの変形が可能である。第2の実施形態によるメモリシステム1のハードウェア構成は、第1の実施形態によるメモリシステム1と共通する。図17~図25は第2の実施形態によるメモリシステム1のデータコーディングの例を示している。第2の実施形態によるメモリシステム1は、1-4-5-5データコーディング以外のデータコーディングを使用する。
(Second embodiment)
Although the first embodiment has been described using 1-4-5-5 data coding as an example, various data coding modifications are possible. The hardware configuration of the
図17は1-5-4-5データコーディングの一例を示す図である。図17の例では、2ndプログラム終了時におけるしきい値領域の遷移数が最大3個である。ここで、1stステージのプログラム完了時のしきい値領域と、2ndステージのプログラム完了時のしきい値領域とは、電圧分布範囲が完全には一致しないが、本明細書では、便宜上、1stステージのプログラム完了時の各しきい値領域に電圧分布範囲が最も近い2ndステージのプログラム完了時のしきい値領域を対応づけて、2ndプログラムを行ったときに変化したしきい値領域の数を遷移数と呼ぶ。図17の場合、1stステージでは、Lowerページ、Middleページ、Upperページのデータを入力してプログラムを行い、2ndステージでは、TopページとMiddleページのデータを入力してプログラムを行う。Middleページのデータは、1stステージと2ndステージで重複して入力される。1stステージのプログラム完了時点でMiddleページのデータの値で分離可能な2つのしきい値領域の間隔は、他のしきい値領域の間隔よりも狭くしている。 FIG. 17 is a diagram showing an example of 1-5-4-5 data coding. In the example of FIG. 17, the maximum number of transitions in the threshold area at the end of the second program is three. Here, although the voltage distribution ranges of the threshold region at the time of completion of programming of the 1st stage and the threshold region of the threshold region at the time of completion of programming of the 2nd stage do not completely match, in this specification, for convenience, By associating each threshold region at the completion of the program with the threshold region at the completion of the 2nd stage program whose voltage distribution range is closest, the number of threshold regions that changed when the 2nd program was performed is changed. It's called a number. In the case of FIG. 17, in the 1st stage, the data of the Lower page, Middle page, and Upper page are input and the program is performed, and in the 2nd stage, the data of the Top page and the Middle page are input and the program is performed. The data of the Middle page is entered redundantly in the 1st stage and the 2nd stage. The interval between the two threshold areas that can be separated by the data value of the Middle page at the time of completion of the first stage program is narrower than the interval between the other threshold areas.
図18は1-5-4-5データコーディングの一例を示す図である。図18の例では、2ndプログラム終了時におけるしきい値領域の遷移数が最大3個である。図18の場合、1stステージでは、Lowerページ、Middleページ、Upperページのデータを入力してプログラムを行い、2ndステージでは、TopページとUpperページのデータを入力してプログラムを行う。Upperページのデータは、1stステージと2ndステージで重複して入力される。1stステージのプログラム完了時点でUpperページのデータの値で分離可能な2つのしきい値領域の間隔は、他のしきい値領域の間隔よりも狭くしている。 FIG. 18 is a diagram showing an example of 1-5-4-5 data coding. In the example of FIG. 18, the maximum number of transitions in the threshold area at the end of the second program is three. In the case of FIG. 18, in the 1st stage, the data of the Lower page, Middle page, and Upper page are input and the program is performed, and in the 2nd stage, the data of the Top page and the Upper page are input and the program is performed. The data of the Upper page is input redundantly in the 1st stage and the 2nd stage. The interval between the two threshold areas that can be separated by the data value of the Upper page at the time of completion of the 1st stage program is narrower than the interval between the other threshold areas.
図19は3-5-2-5データコーディングの一例を示す図である。図18の例では、2ndプログラム終了時におけるしきい値領域の遷移数が最大3個である。図18の場合、1stステージでは、Lowerページ、Middleページ、Upperページのデータを入力してプログラムを行い、2ndステージでは、TopページとMiddleページのデータを入力してプログラムを行う。Middleページのデータは、1stステージと2ndステージで重複して入力される。1stステージのプログラム完了時点でMiddleページのデータの値で分離可能な2つのしきい値領域の間隔は、他のしきい値領域の間隔よりも狭くしている。 FIG. 19 is a diagram showing an example of 3-5-2-5 data coding. In the example of FIG. 18, the maximum number of transitions in the threshold area at the end of the second program is three. In the case of FIG. 18, in the 1st stage, the data of the Lower page, Middle page, and Upper page are input and the program is performed, and in the 2nd stage, the data of the Top page and the Middle page are input and the program is performed. The data of the Middle page is entered redundantly in the 1st stage and the 2nd stage. The interval between the two threshold areas that can be separated by the data value of the Middle page at the time of completion of the first stage program is narrower than the interval between the other threshold areas.
図20は3-3-4-5データコーディングの一例を示す図である。図20の例では、2ndプログラム終了時におけるしきい値領域の遷移数が最大3個である。図20の場合、1stステージでは、Lowerページ、Middleページ、Upperページのデータを入力してプログラムを行い、2ndステージでは、TopページとUpperページのデータを入力してプログラムを行う。 FIG. 20 is a diagram showing an example of 3-3-4-5 data coding. In the example of FIG. 20, the maximum number of transitions in the threshold area at the end of the second program is three. In the case of FIG. 20, in the 1st stage, the data of the Lower page, Middle page, and Upper page are input and the program is performed, and in the 2nd stage, the data of the Top page and the Upper page are input and the program is performed.
図21は2-3-5-5データコーディングの一例を示す図である。図21の例では、2ndプログラム終了時におけるしきい値領域の遷移数が最大5個である。図21の場合、1stステージでは、Lowerページ、Middleページ、Topページのデータを入力してプログラムを行い、2ndステージでは、TopページとUpperページのデータを入力してプログラムを行う。Topページのデータは、1stステージと2ndステージで重複して入力される。図21の場合、1stステージのプログラムが完了した時点では、Topページのデータが0でも1でも、3個のしきい値領域は同じになり、しきい値領域の総数は5個になる。よって、各しきい値領域の間隔を広げることができ、1stステージのプログラムが完了した時点でのデータ読出を正しく行うことができる。 FIG. 21 is a diagram showing an example of 2-3-5-5 data coding. In the example of FIG. 21, the maximum number of transitions in the threshold area at the end of the second program is five. In the case of FIG. 21, in the 1st stage, the data of the Lower page, Middle page, and Top page are input and the program is performed, and in the 2nd stage, the data of the Top page and the Upper page are input and the program is performed. Top page data is entered redundantly in the 1st stage and the 2nd stage. In the case of FIG. 21, when the 1st stage program is completed, the three threshold areas are the same regardless of whether the data on the top page is 0 or 1, and the total number of threshold areas is five. Therefore, the interval between each threshold area can be widened, and data can be read correctly at the time when the first stage program is completed.
図22は3-2-5-5データコーディングの一例を示す図である。図22の例では、2ndプログラム終了時におけるしきい値領域の遷移数が最大5個である。図22の場合、1stステージでは、Lowerページ、Middleページ、Topページのデータを入力してプログラムを行い、2ndステージでは、TopページとUpperページのデータを入力してプログラムを行う。Topページのデータは、1stステージと2ndステージで重複して入力される。図22の場合、1stステージのプログラムが完了した時点では、Topページのデータが0でも1でも、2個のしきい値領域は同じになり、しきい値領域の総数は6個になる。 FIG. 22 is a diagram showing an example of 3-2-5-5 data coding. In the example of FIG. 22, the maximum number of transitions in the threshold area at the end of the second program is five. In the case of FIG. 22, in the 1st stage, the data of the Lower page, Middle page, and Top page are input and the program is performed, and in the 2nd stage, the data of the Top page and the Upper page are input and the program is performed. Top page data is entered redundantly in the 1st stage and the 2nd stage. In the case of FIG. 22, when the 1st stage program is completed, the two threshold areas are the same whether the data on the top page is 0 or 1, and the total number of threshold areas is six.
図23は3-4-4-4データコーディングの一例を示す図である。図23の例では、2ndプログラム終了時におけるしきい値領域の遷移数が最大7個である。図23の場合、1stステージでは、Lowerページ、Middleページ、Upperページのデータを入力してプログラムを行い、2ndステージでは、TopページとUpperページのデータを入力してプログラムを行う。Upperページのデータは、1stステージと2ndステージで重複して入力される。1stステージのプログラム完了時点でUpperページのデータの値で分離可能な2つのしきい値領域の間隔は、他のしきい値領域の間隔よりも狭くしている。 FIG. 23 is a diagram showing an example of 3-4-4-4 data coding. In the example of FIG. 23, the maximum number of transitions in the threshold area at the end of the second program is seven. In the case of FIG. 23, in the 1st stage, the data of the Lower page, Middle page, and Upper page are input and the program is performed, and in the 2nd stage, the data of the Top page and the Upper page are input and the program is performed. The data of the Upper page is input redundantly in the 1st stage and the 2nd stage. The interval between the two threshold areas that can be separated by the data value of the Upper page at the time of completion of the 1st stage program is narrower than the interval between the other threshold areas.
図24は3-4-4-4データコーディングの一例を示す図である。図24の例では、2ndプログラム終了時におけるしきい値領域の遷移数が最大8個である。図24の場合、1stステージでは、Lowerページ、Middleページ、Topページのデータを入力してプログラムを行い、2ndステージでは、TopページとUpperページのデータを入力してプログラムを行う。Topページのデータは、1stステージと2ndステージで重複して入力される。図24の場合、1stステージのプログラムが完了した時点では、Topページのデータが0でも1でも、2個のしきい値領域は同じになり、しきい値領域の総数は6個になる。 FIG. 24 is a diagram showing an example of 3-4-4-4 data coding. In the example of FIG. 24, the maximum number of transitions in the threshold area at the end of the 2nd program is eight. In the case of FIG. 24, in the 1st stage, the data of the Lower page, Middle page, and Top page are input and the program is performed, and in the 2nd stage, the data of the Top page and the Upper page are input and the program is performed. Top page data is entered redundantly in the 1st stage and the 2nd stage. In the case of FIG. 24, when the 1st stage program is completed, the two threshold areas are the same whether the data on the top page is 0 or 1, and the total number of threshold areas is six.
図17~図24は、データコーディングの例に過ぎず、他のデータコーディングが採用されてもよい。 17-24 are merely examples of data coding, and other data coding may be employed.
例えば、2ndプログラム終了時にしきい値領域の遷移数が最大3個になる例は、図17~図20以外にも、以下の図25~図27が存在する。図25は1-4-5-5データコーディングの一例を示す図である。図25の例では、1stプログラムが完了した時点で6個の異なるしきい値領域が生成される。このうち、Middleページが1でLowerページが1のしきい値領域と、Middleページが0でLowerページが1のしきい値領域は、Topページが0でも1でも、同じしきい値領域になる。このため、本来は8個のしきい値領域が生成されるべきであるが、6個のしきい値領域に集約される。 For example, in addition to FIGS. 17 to 20, the following FIGS. 25 to 27 exist in which the number of transitions in the threshold area becomes three at most at the end of the 2nd program. FIG. 25 is a diagram showing an example of 1-4-5-5 data coding. In the example of FIG. 25, six different threshold areas are generated when the first program is completed. Among these, the threshold area where the Middle page is 1 and the Lower page is 1, and the threshold area where the Middle page is 0 and the Lower page is 1 are the same whether the Top page is 0 or 1. . For this reason, originally eight threshold areas should be generated, but they are aggregated into six threshold areas.
図26は2-5-3-5データコーディングの一例を示す図である。図26の例では、1stプログラムが完了した時点で7個の異なるしきい値領域が生成される。このうち、Middleページが1でLowerページが1のしきい値領域は、Topページが0でも1でも、同じしきい値領域になる。このため、本来は8個のしきい値領域が生成されるべきであるが、7個のしきい値領域に集約される。 FIG. 26 is a diagram showing an example of 2-5-3-5 data coding. In the example of FIG. 26, seven different threshold areas are generated when the first program is completed. Among these, the threshold area where the Middle page is 1 and the Lower page is 1 is the same threshold area whether the Top page is 0 or 1. For this reason, originally eight threshold areas should be generated, but they are aggregated into seven threshold areas.
図27は3-4-5-3データコーディングの一例を示す図である。図27の例では、1stプログラムが完了した時点で7個の異なるしきい値領域が生成される。このうち、MiddleページでLowerページが1のしきい値領域は、Topページが0でも1でも、同じしきい値領域になる。このため、本来は8個のしきい値領域が生成されるべきであるが、7個のしきい値領域に集約される。 FIG. 27 is a diagram showing an example of 3-4-5-3 data coding. In the example of FIG. 27, seven different threshold areas are generated when the first program is completed. Among these, the threshold area where the Middle page is 1 and the Lower page is 1 is the same threshold area whether the Top page is 0 or 1. For this reason, originally eight threshold areas should be generated, but they are aggregated into seven threshold areas.
この他、他のデータコーディングの例も考えられる。以下では、各データコーディングのコード割り付けを示す図を列記する。図28は3-2-5-5データコーディングの一例、図29は3-2-5-5データコーディングの一例、図30は1-5-5-4データコーディングの一例を示している。また、図31は1-5-4-5データコーディングの一例、図32は1-4-5-5データコーディングの一例、図33は1-5-3-6データコーディングの一例を示している。また、図34は1-3-6-5データコーディングの一例、図35は1-2-6-6データコーディングの一例、図36は1-2-6-6データコーディングの一例を示している。 Other examples of data coding are also possible. Below, diagrams showing code allocation for each data coding are listed. FIG. 28 shows an example of 3-2-5-5 data coding, FIG. 29 shows an example of 3-2-5-5 data coding, and FIG. 30 shows an example of 1-5-5-4 data coding. Further, FIG. 31 shows an example of 1-5-4-5 data coding, FIG. 32 shows an example of 1-4-5-5 data coding, and FIG. 33 shows an example of 1-5-3-6 data coding. . Further, FIG. 34 shows an example of 1-3-6-5 data coding, FIG. 35 shows an example of 1-2-6-6 data coding, and FIG. 36 shows an example of 1-2-6-6 data coding. .
また、図37は1-2-6-6データコーディングの一例、図38は1-4-6-4データコーディングの一例、図39は1-4-4-6データコーディングの一例を示している。また、図40は1-4-6-4データコーディングの一例、図41は1-4-4-6データコーディングの一例、図42は2-5-2-6データコーディングの一例を示している。また、図43は2-5-2-6データコーディングの一例、図44は2-5-2-6データコーディングの一例、図45は3-3-3-6データコーディングの一例を示している。また、図46は3-3-6-3データコーディングの一例、図47は2-3-4-6データコーディングの一例、図48は3-4-2-6データコーディングの一例を示している。 Further, FIG. 37 shows an example of 1-2-6-6 data coding, FIG. 38 shows an example of 1-4-6-4 data coding, and FIG. 39 shows an example of 1-4-4-6 data coding. . Also, FIG. 40 shows an example of 1-4-6-4 data coding, FIG. 41 shows an example of 1-4-4-6 data coding, and FIG. 42 shows an example of 2-5-2-6 data coding. . Further, FIG. 43 shows an example of 2-5-2-6 data coding, FIG. 44 shows an example of 2-5-2-6 data coding, and FIG. 45 shows an example of 3-3-3-6 data coding. . Also, FIG. 46 shows an example of 3-3-6-3 data coding, FIG. 47 shows an example of 2-3-4-6 data coding, and FIG. 48 shows an example of 3-4-2-6 data coding. .
また、図49は2-3-4-6データコーディングの一例、図50は3-2-6-4データコーディングの一例、図51は3-2-4-6データコーディングの一例を示している。また、図52は3-2-6-4データコーディングの一例、図53は3-4-2-6データコーディングの一例、図54は3-2-4-6データコーディングの一例を示している。また、図55は5-3-2-5データコーディングの一例、図56は3-5-2-5データコーディングの一例、図57は3-2-5-5データコーディングの一例を示している。また、図58は2-3-5-5データコーディングの一例、図59は2-3-5-5データコーディングの一例、図60は2-3-5-5データコーディングの一例を示している。 Further, FIG. 49 shows an example of 2-3-4-6 data coding, FIG. 50 shows an example of 3-2-6-4 data coding, and FIG. 51 shows an example of 3-2-4-6 data coding. . Further, FIG. 52 shows an example of 3-2-6-4 data coding, FIG. 53 shows an example of 3-4-2-6 data coding, and FIG. 54 shows an example of 3-2-4-6 data coding. . Further, FIG. 55 shows an example of 5-3-2-5 data coding, FIG. 56 shows an example of 3-5-2-5 data coding, and FIG. 57 shows an example of 3-2-5-5 data coding. . Further, FIG. 58 shows an example of 2-3-5-5 data coding, FIG. 59 shows an example of 2-3-5-5 data coding, and FIG. 60 shows an example of 2-3-5-5 data coding. .
また、図61は5-4-2-4データコーディングの一例、図62は4-5-2-4データコーディングの一例、図63は5-4-2-4データコーディングの一例を示している。また、図64は2-4-5-4データコーディングの一例、図65は2-4-5-4データコーディングの一例、図66は2-5-4-4データコーディングの一例を示している。また、図67は2-5-4-4データコーディングの一例、図68は2-5-4-4データコーディングの一例、図69は1-5-4-5データコーディングの一例を示している。また、図70は1-4-5-5データコーディングの一例、図71は1-5-5-4データコーディングの一例、図72は1-4-5-5データコーディングの一例を示している。 Also, FIG. 61 shows an example of 5-4-2-4 data coding, FIG. 62 shows an example of 4-5-2-4 data coding, and FIG. 63 shows an example of 5-4-2-4 data coding. . Also, FIG. 64 shows an example of 2-4-5-4 data coding, FIG. 65 shows an example of 2-4-5-4 data coding, and FIG. 66 shows an example of 2-5-4-4 data coding. . Also, FIG. 67 shows an example of 2-5-4-4 data coding, FIG. 68 shows an example of 2-5-4-4 data coding, and FIG. 69 shows an example of 1-5-4-5 data coding. . Further, FIG. 70 shows an example of 1-4-5-5 data coding, FIG. 71 shows an example of 1-5-5-4 data coding, and FIG. 72 shows an example of 1-4-5-5 data coding. .
また、図73は1-5-5-4データコーディングの一例、図74は1-5-4-5データコーディングの一例、図75は1-5-5-4データコーディングの一例を示している。また、図76は1-5-4-5データコーディングの一例、図77は1-4-5-5データコーディングの一例、図78は1-4-5-5データコーディングの一例を示している。また、図79は1-4-5-5データコーディングの一例、図80は1-4-5-5データコーディングの一例、図81は3-5-4-3データコーディングの一例を示している。また、図82は3-4-5-3データコーディングの一例、図83は3-5-3-4データコーディングの一例、図84は3-4-3-5データコーディングの一例を示している。 Further, FIG. 73 shows an example of 1-5-5-4 data coding, FIG. 74 shows an example of 1-5-4-5 data coding, and FIG. 75 shows an example of 1-5-5-4 data coding. . Also, FIG. 76 shows an example of 1-5-4-5 data coding, FIG. 77 shows an example of 1-4-5-5 data coding, and FIG. 78 shows an example of 1-4-5-5 data coding. . Further, FIG. 79 shows an example of 1-4-5-5 data coding, FIG. 80 shows an example of 1-4-5-5 data coding, and FIG. 81 shows an example of 3-5-4-3 data coding. . Further, FIG. 82 shows an example of 3-4-5-3 data coding, FIG. 83 shows an example of 3-5-3-4 data coding, and FIG. 84 shows an example of 3-4-3-5 data coding. .
また、図85は3-4-5-3データコーディングの一例、図86は3-4-3-5データコーディングの一例、図87は3-3-5-4データコーディングの一例を示している。また、図88は3-3-5-4データコーディングの一例、図89は4-5-3-3データコーディングの一例、図90は3-5-4-3データコーディングの一例を示している。また、図91は3-4-5-3データコーディングの一例、図92は3-3-4-5データコーディングの一例、図93は3-3-4-5データコーディングの一例を示している。 Also, FIG. 85 shows an example of 3-4-5-3 data coding, FIG. 86 shows an example of 3-4-3-5 data coding, and FIG. 87 shows an example of 3-3-5-4 data coding. . Further, FIG. 88 shows an example of 3-3-5-4 data coding, FIG. 89 shows an example of 4-5-3-3 data coding, and FIG. 90 shows an example of 3-5-4-3 data coding. . Further, FIG. 91 shows an example of 3-4-5-3 data coding, FIG. 92 shows an example of 3-3-4-5 data coding, and FIG. 93 shows an example of 3-3-4-5 data coding. .
また、図94は3-3-4-5データコーディングの一例、図95は3-4-5-3データコーディングの一例、図96は3-3-5-4データコーディングの一例を示している。また、図97は3-3-4-5データコーディングの一例、図98は4-3-4-4データコーディングの一例、図99は3-4-4-4データコーディングの一例を示している。また、図100は3-4-4-4データコーディングの一例、図101は4-3-4-4データコーディングの一例、図102は3-4-4-4データコーディングの一例を示している。また、図103は3-4-4-4データコーディングの一例、図104は3-4-4-4データコーディングの一例、図105は3-4-4-4データコーディングの一例を示している。また、図106は4-4-3-4データコーディングの一例、図107は4-4-3-4データコーディングの一例を示している。 Further, FIG. 94 shows an example of 3-3-4-5 data coding, FIG. 95 shows an example of 3-4-5-3 data coding, and FIG. 96 shows an example of 3-3-5-4 data coding. . Also, FIG. 97 shows an example of 3-3-4-5 data coding, FIG. 98 shows an example of 4-3-4-4 data coding, and FIG. 99 shows an example of 3-4-4-4 data coding. . Also, FIG. 100 shows an example of 3-4-4-4 data coding, FIG. 101 shows an example of 4-3-4-4 data coding, and FIG. 102 shows an example of 3-4-4-4 data coding. . Further, Fig. 103 shows an example of 3-4-4-4 data coding, Fig. 104 shows an example of 3-4-4-4 data coding, and Fig. 105 shows an example of 3-4-4-4 data coding. . Further, FIG. 106 shows an example of 4-4-3-4 data coding, and FIG. 107 shows an example of 4-4-3-4 data coding.
このように、1stステージと2ndステージで、一部のページのデータを重複して入力し、その他のページのデータは、1stステージと2ndステージの一方だけに入力してプログラムを行うことで、セル間相互干渉を低減し、かつ書き込みバッファの容量も削減し、かつ各ビットデータを書き込む際のビットエラー率の偏りを抑制できる。特に、1-4-5-5、1-5-4-5、3-3-4-5、又は3-5-2-5データコーディングの場合、各ページデータの境界数が均一であり、かつ2ndステージのプログラム時のしきい値領域の遷移数が3以下であるため、ビットエラー率の偏りを抑制できるとともに、セル間相互干渉を低減できる。 In this way, by inputting the data of some pages redundantly in the 1st stage and the 2nd stage, and inputting the data of other pages only in either the 1st stage or the 2nd stage, you can program the cell. It is possible to reduce mutual interference between data and the write buffer, reduce the capacity of the write buffer, and suppress unevenness in the bit error rate when writing each bit data. In particular, in the case of 1-4-5-5, 1-5-4-5, 3-3-4-5, or 3-5-2-5 data coding, the number of boundaries of each page data is uniform; In addition, since the number of transitions in the threshold region during programming of the 2nd stage is 3 or less, it is possible to suppress bias in the bit error rate and to reduce mutual interference between cells.
(第3の実施形態)
第3の実施形態によるメモリシステム1は、書き込みバッファの容量を第1及び第2の実施形態よりも削減するものである。
(Third embodiment)
The
第3の実施形態によるメモリシステム1のハードウェア構成は、第1及び第2の実施形態によるメモリシステム1と共通する。第3の実施形態では、1stステージのプログラムと重複して2ndステージのプログラムでも入力するページのデータを、1stステージのプログラム開始後に、不揮発メモリ3の内部のページバッファ24に保持し続ける。これにより、2ndステージのプログラムではそのページのデータ入力の手順を省略するとともに、全てのページのデータ入力は1回だけにすることが可能となる。これにより、書き込みバッファの容量を削減できる。
The hardware configuration of the
さらに、本実施形態では、ワード線WLn-1の2ndステージのプログラムと、ワード線WLnの1stステージのプログラムとをまとめて行う。このように、ページバッファ24は、第1乃至第4ビット(Lowerページ、Middleページ、Upperページ、Topページ)のうち、1stステージのプログラムと2ndステージのプログラムで重複して入力されるビットのデータを、1stステージのプログラムを開始する前に記憶し、2ndステージのプログラムを開始した以降は破棄可能又は無効化可能とする。以下、本実施形態でも第1の実施形態の図6で説明したものと同じ1-4-5-5データコーディングを用いる例について説明する。
Furthermore, in this embodiment, the 2nd stage programming of the word line WLn-1 and the 1st stage programming of the word line WLn are performed together. In this way, the
図9に示したプログラムのフローチャートでは、1stステージのプログラムと2ndステージのプログラムとは、実行タイミングがずれており、それぞれのプログラムの際にそれぞれのプログラムコマンドとプログラムデータ入力が行なわれている。これに対して、本実施形態では、1stステージと2ndステージのプログラムコマンド及びプログラムデータ入力をなるべくまとめて行う。 In the program flowchart shown in FIG. 9, the execution timings of the 1st stage program and the 2nd stage program are shifted, and respective program commands and program data are input during each program. In contrast, in this embodiment, program commands and program data input for the 1st stage and 2nd stage are performed together as much as possible.
例えば、図8Bに示したように、ブロックの先頭と終わりの端部以外は、ワード線WLnの1stステージとワード線WLn-1の2ndステージのプログラムとが必ず連続する。そこで、本実施形態では、この部分をひとまとめのコマンド入力とする。すなわち、1回のコマンド入力で、ワード線WLnのLowerページ、Middleページ及びTopページと、ワード線WLn-1のUpperページの各プログラムデータがまとめて入力される。これは、Foggy-Fineが採用された場合でも、1回のプログラムコマンドでLower/Middle/Upper/Topページのデータをまとめて(ただし、この場合は同じワード線WLi内のページ)4ページ分入力していたのと同じデータ量の入力である。 For example, as shown in FIG. 8B, the programs of the 1st stage of word line WLn and the 2nd stage of word line WLn-1 are always continuous except at the beginning and end of the block. Therefore, in this embodiment, this part is treated as a single command input. That is, by inputting a command once, each program data of the Lower page, Middle page, and Top page of the word line WLn and the Upper page of the word line WLn-1 are input all at once. Even if Foggy-Fine is adopted, data for Lower/Middle/Upper/Top pages can be input for 4 pages (in this case, pages within the same word line WLi) with one program command. This is the same amount of data input as was previously used.
このように、プログラムコマンド及びプログラムデータの入力がまとめられることにより、メモリコントローラ2が行う制御におけるコマンド入力やポーリング(チップビジーがレディーに戻ったか否かの定期的なチェック)の頻度が減少し、メモリシステム1の高速化と制御の簡素化が可能となる。
By consolidating the input of program commands and program data in this way, the frequency of command input and polling (regular checking whether the chip busy state has returned to ready) in the control performed by the
ここで、図108及び図109を用いて、第3の実施形態に係るプログラム順序に従った書き込み手順の一例について説明する。図108及び図109では、図8Bに示すプログラム順序に従った場合の書き込み手順を示している。 Here, an example of a write procedure according to the program order according to the third embodiment will be explained using FIGS. 108 and 109. FIGS. 108 and 109 show the write procedure when the program order shown in FIG. 8B is followed.
図108は第3の実施形態に係る1ブロック分全体の書き込み手順を示すフローチャートである。ここでの1ブロックは、ワード線WL0~WLn(nは自然数)のn+1本のワード線WLiを有するとする。図108に示すように、書き込みを開始すると(ステップS710)、ストリングSt0~St3のワード線WL0の1stステージのプログラムの処理を行う(ステップS712)。これにより、制御部22は、ストリングSt0~St3のワード線WL0の1stステージのプログラムを実施する(ステップS714)。
FIG. 108 is a flowchart showing the entire writing procedure for one block according to the third embodiment. It is assumed here that one block has n+1 word lines WLi of word lines WL0 to WLn (n is a natural number). As shown in FIG. 108, when writing is started (step S710), the 1st stage program of the word line WL0 of strings St0 to St3 is processed (step S712). Thereby, the
また、制御部22は、ストリングSt0_ワード線WL1の1stステージのプログラムと、ストリングSt0_ワード線WL0の2ndステージのプログラムを実施する(ステップS716)。
Further, the
次に、制御部22は、ストリングSt1_ワード線WL1の1stステージのプログラムと、ストリングSt1_ワード線WL0の2ndステージのプログラムを実施する(ステップS718)。次に、制御部22は、ストリングSt2_ワード線WL1の1stステージのプログラムと、ストリングSt2_ワード線WL0の2ndステージのプログラムを実施する(ステップS720)。この後、制御部22は、各ストリングの各ワード線WLiに対して同様な処理を繰り返す。
Next, the
次に、ストリングSt0_ワード線WLnの1stステージのプログラムと、ストリングSt0_ワード線WLn-1の2ndステージのプログラムを実施する(ステップS722)。次に、制御部22は、ストリングSt1_ワード線WLnの1stステージのプログラムと、ストリングSt1_ワード線WLn-1の2ndステージのプログラムを実施する(ステップS724)。この後、制御部22は、各ストリングの各ワード線WLiに対して同様な処理を繰り返す。
Next, the 1st stage programming of the string St0_word line WLn and the 2nd stage programming of the string St0_word line WLn-1 are performed (step S722). Next, the
次に、制御部22は、ストリングSt3_ワード線WLnの1stステージのプログラムと、ストリングSt3_ワード線WLn-1の2ndステージのプログラムを実施する(ステップS726)。次に、制御部22は、ストリングSt0~St3のワード線WLnの2ndステージのプログラムを実行する(ステップS728、S730、S732)。
Next, the
このように、ブロックの先頭では第1の実施形態と同様に1stステージのみのプログラムが実施され、ブロックの最後では第1の実施形態と同様に2ndステージのみのプログラムが実施される。この場合において、1stステージのみのプログラムは、図8Bに示した手順に従って実行され、2ndステージのみのプログラムは、図8Cに示した手順に従って実行される。また、図108のフローチャートでは、ブロックの先頭と最後以外では、ワード線WLnの1stステージのプログラムとワード線WLn-1の2ndステージのプログラムとをまとめて行う。これにより、メモリコントローラ2が行うコマンド入力やポーリングの頻度が減少し、メモリシステム1の処理を高速化できる。
In this way, at the beginning of the block, a program for only the 1st stage is executed as in the first embodiment, and at the end of the block, a program for only the 2nd stage is executed as in the first embodiment. In this case, the program for only the 1st stage is executed according to the procedure shown in FIG. 8B, and the program for only the 2nd stage is executed according to the procedure shown in FIG. 8C. In addition, in the flowchart of FIG. 108, the 1st stage program of the word line WLn and the 2nd stage program of the word line WLn-1 are performed together except at the beginning and end of the block. This reduces the frequency of command input and polling performed by the
図109は第3の実施形態に係る1stステージ及び2ndステージにおける書き込み手順を示すフローチャートである。図109に示すように、1stステージ及び2ndステージのプログラムでは、1stステージのプログラムが実行された後に、続けて2ndステージのプログラムが実行される。具体的には、まず、メモリコントローラ2から不揮発性メモリ3へ、ワード線WLn-1のUpperページのデータの入力開始コマンドが入力される(ステップS750)。そして、メモリコントローラ2から不揮発性メモリ3へ、ワード線WLn-1のUpperページのデータが入力される(ステップS752)。
FIG. 109 is a flowchart showing the write procedure in the 1st stage and the 2nd stage according to the third embodiment. As shown in FIG. 109, in the 1st stage and 2nd stage programs, after the 1st stage program is executed, the 2nd stage program is executed. Specifically, first, a command to start inputting data of the Upper page of word line WLn-1 is input from the
次に、メモリコントローラ2から不揮発性メモリ3へ、ワード線WLnのLowerページのデータの入力開始コマンドが入力される(ステップS754)。そして、メモリコントローラ2から不揮発性メモリ3へ、ワード線WLnのLowerページのデータが入力される(ステップS756)。
Next, a command to start inputting data of the lower page of word line WLn is input from the
次に、メモリコントローラ2から不揮発性メモリ3へ、ワード線WLnのMiddleページのデータの入力開始コマンドが入力される(ステップS758)。そして、メモリコントローラ2から不揮発性メモリ3へ、ワード線WLnのMiddleページのデータが入力される(ステップS760)。Middleページのデータは、不揮発性メモリ3に入力されるだけでなく、ページバッファ24にも記憶される。ページバッファ24に記憶した後は、書き込みバッファ内のMiddleデータを破棄又は無効化することができる。
Next, a command to start inputting data of the Middle page of the word line WLn is input from the
次に、メモリコントローラ2から不揮発性メモリ3へ、ワード線WLnのTopページのデータの入力開始コマンドが入力される(ステップS762)。そして、メモリコントローラ2から不揮発性メモリ3へ、ワード線WLnのTopページのデータが入力される(ステップS764)。
Next, a command to start inputting data of the top page of word line WLn is input from the
次に、メモリコントローラ2から不揮発性メモリ3へ、1stステージ及び2ndステージのプログラム実行コマンドが入力され(ステップS766)、これによりチップビジーとなる(ステップS768)。
Next, program execution commands for the 1st stage and 2nd stage are input from the
この後、ワード線WLnのLowerページ、Middleページ及びTopページに対し、1~複数回のプログラム電圧パルスが印加される(ステップS770)。そして、メモリセルがしきい値境界レベルを超えて移動したか否かを確認するために、ワード線WLnのLowerページとTopページのデータ読み出しが行なわれる(ステップS772)。 After this, one to a plurality of program voltage pulses are applied to the Lower page, Middle page, and Top page of the word line WLn (step S770). Then, in order to check whether the memory cell has moved beyond the threshold boundary level, data is read from the Lower page and Top page of the word line WLn (step S772).
さらに、LowerページとTopページにおけるデータのフェイルビット数がクライテリアよりも小さいか否かが確認される(ステップS774)。LowerページとTopページにおけるデータのフェイルビット数がクライテリア以上である場合、ステップS770~S774の処理が繰り返される。そして、データのフェイルビット数がクライテリアよりも小さくなると、ワード線WLn-1のLowerページとTopページデータが読み出される(ステップS776)。 Furthermore, it is checked whether the number of fail bits of the data in the Lower page and the Top page is smaller than the criteria (step S774). If the number of fail bits of data in the Lower page and Top page is equal to or greater than the criterion, the processes of steps S770 to S774 are repeated. Then, when the number of data fail bits becomes smaller than the criterion, the Lower page and Top page data of word line WLn-1 are read out (step S776).
そして、ワード線WLn-1のLowerとTopページデータと、ページバッファ24から読み出されたMiddleページのデータとに基づいて、Upperページのプログラム先のしきい値電圧Vthが決定される(ステップS778)。この後、決定されたしきい値電圧Vthを用いて、ワード線WLn-1のUpperページへのデータ書き込みが行われる(ステップS780)。 Then, the threshold voltage Vth of the Upper page program destination is determined based on the Lower and Top page data of the word line WLn-1 and the Middle page data read from the page buffer 24 (step S778). ). Thereafter, data is written to the Upper page of word line WLn-1 using the determined threshold voltage Vth (step S780).
Upperページへのデータ書き込みの際には、ワード線WLn-1のUpperページに対し、1~複数回のプログラム電圧パルスが印加される。そして、メモリセルがしきい値境界レベルを超えて移動したか否かを確認するために、ワード線WLn-1のUpperページのデータ読み出しが行なわれる(ステップS782)。 When writing data to the Upper page, one to a plurality of program voltage pulses are applied to the Upper page of word line WLn-1. Then, in order to check whether the memory cell has moved beyond the threshold boundary level, data is read from the Upper page of word line WLn-1 (step S782).
さらに、Upperページにおけるデータのフェイルビット数がクライテリアよりも小さいか否かを確認するベリファイが行われる(ステップS784)。Upperページにおけるデータのフェイルビット数がクライテリア以上である場合、プログラム電圧パルス印加とデータ読み出し、ベリファイの処理が繰り返される。そして、データのフェイルビット数がクライテリアよりも小さくなると、チップレディーとなる(ステップS786)。 Furthermore, verification is performed to check whether the number of fail bits of data in the Upper page is smaller than the criteria (step S784). If the number of data fail bits in the Upper page is equal to or greater than the criterion, the program voltage pulse application, data read, and verify processing are repeated. Then, when the number of fail bits of the data becomes smaller than the criterion, the chip becomes ready (step S786).
なお、同一ワード線に対する1stステージのプログラムにおいて、複数のページのデータ入力開始コマンドとデータ入力処理におけるページの順番は任意であり、どのページが先に入力されてもよい。また、同一ワード線に対する2ndステージのプログラムにおいて、複数のページのデータ入力開始コマンドとデータ入力の処理におけるページの順番も任意である。ただし、それぞれのワード線番号と、2つのステージのプログラムの処理の順番は、必ず図109に示す順番にならなければいけない。 Note that in the 1st stage program for the same word line, the order of the pages in the data input start command and data input processing for a plurality of pages is arbitrary, and any page may be input first. Furthermore, in the 2nd stage program for the same word line, the order of pages in data input start command and data input processing for a plurality of pages is also arbitrary. However, the respective word line numbers and the processing order of the two stage programs must be in the order shown in FIG. 109.
このように、図109では、ワード線WLnの1stステージのプログラムがワード線WLn-1の2ndステージのプログラムよりも前に実行される場合について説明した。これは、ワード線WLnの1stステージのプログラムが先に行なわれることで、16値のしきい値電圧Vthが書き込まれるワード線WLn-1のセルが隣接セルの影響を受けないようにするためである。 In this manner, in FIG. 109, a case has been described in which the 1st stage program of the word line WLn is executed before the 2nd stage program of the word line WLn-1. This is because the programming of the 1st stage of word line WLn is performed first, so that the cell of word line WLn-1 to which the 16-value threshold voltage Vth is written is not affected by the adjacent cell. be.
上述したように、本実施形態では、ワード線WLn-1のUpperページのデータと、ワード線WLnのLowerページ、Middleページ及びTopページのデータとの4ページ分のデータが連続して入力される。 As described above, in this embodiment, data for four pages, including the data of the Upper page of word line WLn-1, and the data of the Lower page, Middle page, and Top page of word line WLn, are input continuously. .
また、別の変形例として、プログラムコマンドの入力後、IDLとして、ワード線WLn-1のLowerページ、Middleページ及びTopページのデータの読み出しを先に行なった後に、ワード線WLnのLowerページ、Middleページ及びTopページのプログラムを行い、次に、ワード線WLn-1のUpperページのプログラム先のしきい値電圧Vthが決定され、決定されたしきい値電圧Vthでワード線WLn-1のUpperページのプログラムを行なうこともできる。このようにすると、ワード線WLnの書込みによる隣接セル間干渉を受ける前に、IDLのワード線WLn-1のLowerページ、Middleページ及びTopページのデータを読み出すことができる。 As another modification, after inputting a program command, the data of the Lower page, Middle page, and Top page of word line WLn-1 are first read as IDL, and then the data of the Lower page, Middle page, and Top page of word line WLn-1 are read as IDL. Page and Top page are programmed, and then the threshold voltage Vth of the program destination of the Upper page of the word line WLn-1 is determined, and the determined threshold voltage Vth is used for the Upper page of the word line WLn-1. You can also run the program. In this way, data in the Lower page, Middle page, and Top page of the IDL word line WLn-1 can be read before interference occurs between adjacent cells due to writing on the word line WLn.
なお、本実施形態における、ワード線WLnの1stステージとワード線WLn-1の2ndステージとのひとまとめのコマンドによるプログラムの実際の実行順番は変形が可能である。すなわち、図109に示したワード線WLnのLowerページ、Middleページ及びTopページのプログラムと、IDLとしてのワード線WLn-1のLowerページ、Middleページ及びTopページのデータ読み出しとは、何れが先でもよく、入れ替えが可能である。ワード線WLn-1のLowerページ、Middleページ及びTopページのデータ読み出しがワード線WLnのLowerページ、Middleページ及びTopページのプログラムよりも前に行なわれることで、ワード線WLnのLowerページ、Middleページ及びTopページのプログラムによる影響を受けることなくIDLが可能となる。 Note that in this embodiment, the actual order of execution of the program based on a batch of commands for the 1st stage of the word line WLn and the 2nd stage of the word line WLn-1 can be modified. That is, the programming of the Lower page, Middle page, and Top page of the word line WLn shown in FIG. Often, they can be replaced. By reading the data of the Lower page, Middle page, and Top page of word line WLn-1 before programming the Lower page, Middle page, and Top page of word line WLn, the Lower page, Middle page of word line WLn IDL is possible without being affected by the top page program.
このように、第3の実施形態では、ワード線WLn-1の2ndステージのプログラムと、ワード線WLnの1stステージのプログラムとをまとめて行うので、コマンド入力やポーリングの頻度が減少する。したがって、メモリシステム1の高速化及び制御の簡素化が可能となる。
In this way, in the third embodiment, the 2nd stage programming of the word line WLn-1 and the 1st stage programming of the word line WLn are performed at the same time, so the frequency of command input and polling is reduced. Therefore, the speed of the
図110は第3の実施形態のプログラムにおける書き込みバッファ量(バッファデータ量)を説明するための図である。本実施形態では、1-4-5-5データコーディングで2ステージのプログラムが用いられる。この本実施形態のプログラムでは、1stステージでは、3ページ分(Lowerページ及びMiddleページ及びTopページ)のデータ入力と、この3ページ分のプログラム(1stプログラム)とが行われる。また、本実施形態のプログラムの場合、2ndステージでは、1ページ分(Upperページ)のデータ入力と、Upperページの1ページ分のプログラム(2ndプログラム)とが行われる。 FIG. 110 is a diagram for explaining the write buffer amount (buffer data amount) in the program of the third embodiment. In this embodiment, a two-stage program with 1-4-5-5 data coding is used. In the program of this embodiment, in the 1st stage, data input for three pages (Lower page, Middle page, and Top page) and a program for these three pages (1st program) are performed. Furthermore, in the case of the program of this embodiment, in the second stage, data input for one page (upper page) and a program for one page of the upper page (second program) are performed.
そして、各ワード線WL0、WL1、WL2、・・・では、各ステージのデータ入力の際にデータを書き込みバッファ内に格納しておけばよく、プログラムが開始されると、書き込みバッファ内からデータが削除されてもよい。例えば、1stステージにおいてデータが入力されると、このデータは書き込みバッファ内に格納される。そして、1stステージにおいてプログラムが開始されると、書き込みバッファ内に格納しておいたLowerページとTopページとMiddleページのデータは削除されてもよい。ただし、Middleページのデータは、2ndステージでも使用するため、2ndステージのプログラムが開始されるまではページバッファ24に記憶しておく必要がある。同様に、2ndステージにおいてデータが入力されると、このデータは書き込みバッファ内に格納される。そして、2ndステージにおいてプログラムが開始されると、書き込みバッファ内に格納しておいたデータはすべて削除されてもよい。このため、本実施形態のプログラムの場合、書き込みバッファ内に保持しておく必要があるデータは、最大でも3ページ分のデータであり、第1の実施形態よりもさらに少なくて済む。
Then, for each word line WL0, WL1, WL2, etc., data can be stored in the write buffer when inputting data at each stage, and when the program is started, the data is stored in the write buffer. May be deleted. For example, when data is input in the 1st stage, this data is stored in the write buffer. Then, when the program is started in the 1st stage, the data of the Lower page, Top page, and Middle page stored in the write buffer may be deleted. However, since the data of the Middle page is also used in the 2nd stage, it is necessary to store it in the
本実施形態のプログラムにおいても、隣接メモリセル間干渉を低減するため、Lower/Middle/Upper/Topの4ページ分のデータは連続して書き込まれない。例えば、ワード線WL0への1stステージが実行された後、ワード線WL0への2ndステージが実行される前に、ワード線WL0に隣接するワード線WL1への1stステージが実行される。同様に、ワード線WL1への1stステージが実行された後、ワード線WL1への2ndステージが実行される前に、ワード線WL1に隣接するワード線WL2への1stステージが実行される。 Also in the program of this embodiment, data for four pages of Lower/Middle/Upper/Top are not written consecutively in order to reduce interference between adjacent memory cells. For example, after the 1st stage is performed on the word line WL0, and before the 2nd stage is performed on the word line WL0, the 1st stage is performed on the word line WL1 adjacent to the word line WL0. Similarly, after the 1st stage to the word line WL1 is performed, and before the 2nd stage to the word line WL1 is performed, the 1st stage to the word line WL2 adjacent to the word line WL1 is performed.
このように、本実施形態では、すべてのページデータは、1回のステージのプログラムでのみ必要であるので、そのデータ入力が完了すれば書き込みバッファ内のデータは破棄可能となる。そのため、本実施形態では、書き込みバッファ内に同時に保持しておくことが必要なページ数が、第1の実施形態よりもさらに少なくて済む。 In this manner, in this embodiment, all page data is needed only for one stage of programming, so once the data input is completed, the data in the write buffer can be discarded. Therefore, in this embodiment, the number of pages that need to be simultaneously held in the write buffer is even smaller than in the first embodiment.
不揮発性メモリ3へプログラムされるページデータは、RAM6内の書き込みバッファに一旦保持されてから、プログラム時に不揮発性メモリ3へデータ入力される。本実施形態においては、このRAM6の必要容量を小さくすることが可能となるので、コスト削減となる。
Page data to be programmed into the
また、本実施形態では各ページそれぞれ1回のデータ転送で完了するため、第1の実施形態と比較してページデータの転送時間も少なくて済み、転送時の消費電力削減することが可能となる。 In addition, in this embodiment, each page is completed with one data transfer, so the time required to transfer page data is shorter than in the first embodiment, and it is possible to reduce power consumption during transfer. .
本実施形態におけるページ読み出し処理については、第1の実施形態で説明した処理手順と同じであるため、説明を省略する。 The page read processing in this embodiment is the same as the processing procedure described in the first embodiment, so the explanation will be omitted.
なお、本実施形態では、新たに保持し続けるページのデータのために、NANDフラッシュメモリ内部のページバッファ24を増やす必要がある。図8Aに示したようにブロック内に1個のストリングが存在するNANDフラッシュメモリのプログラムでは、増加が必要なページバッファ24の量は1ページデータ分である。それに対し、図8Bもしくは図8Cに示したようにブロック内に4個のストリングが存在するNANDフラッシュメモリのプログラムでは、増加が必要なページバッファ24の量は4ページデータ分である。これは、ある1つのストリングの1stステージのプログラムを実行してから、同じストリングの2ndステージのプログラムを実行するまでに、他の3つのストリングの1stステージのプログラムを実行せねばならず、結局、4つ全てのストリングについて、それぞれ1ページ分のデータを保持する必要があるからである。
Note that in this embodiment, it is necessary to increase the
本実施形態では、1-4-5-5データコーディングを例に取って説明したが、さまざまなデータコーディングの変形が可能であり、上記に述べた実施形態を実現することが可能であることは明らかである。 Although this embodiment has been explained using 1-4-5-5 data coding as an example, it is possible to make various modifications to the data coding, and it is possible to realize the embodiment described above. it is obvious.
上述した第1~第3の実施形態では、不揮発性メモリ3が、NANDメモリ5を用いて構成されている場合について説明したが、ReRAM(Resistive Random Access Memory)やMRAM6(Magneto-Resistive Random Access Memory)、PRAM(Phase Change Random Access Memory)、FeRAM(Ferroeletric Random Access Memory)など、他のタイプの不揮発性メモリ3が用いられてもよい。
In the first to third embodiments described above, the case where the
上述した第1から第3の実施形態では、1stステージのプログラムでは3ページ分のデータの書き込み、2ndステージのプログラムでは2ページ分のデータの書き込みを行う場合について説明したが、1stステージのプログラムでのページ数と2ndステージのプログラムでのページ数の配分を変更してもよい。たとえば、1stステージのプログラムでは2ページ分のデータの書き込み、2ndステージのプログラムでは3ページ分のデータの書き込みを行うようにしてもよい。 In the first to third embodiments described above, the case where the 1st stage program writes 3 pages of data and the 2nd stage program writes 2 pages of data is explained. You may change the number of pages and the distribution of the number of pages in the 2nd stage program. For example, the first stage program may write two pages of data, and the second stage program may write three pages of data.
本開示のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 Although several embodiments of the present disclosure have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, substitutions, and changes can be made without departing from the gist of the invention. These embodiments and their modifications are included within the scope and gist of the invention, as well as within the scope of the invention described in the claims and its equivalents.
1 メモリシステム、2 メモリコントローラ、3 不揮発性メモリ、4 ホストプロセッサ、5NANDメモリ、6 RAM、7 ROM、8 プロセッサ、9 ホストインターフェイス、10 ECC回路、11 メモリインターフェイス、12 内部バス、21 NAND I/Oインターフェイス、22 制御部、23 NANDメモリセルアレイ、24 ページバッファ、31 発振器、32 シーケンサ、33 コマンドユーザインターフェイス、34 電圧供給部、35 カラムカウンタ、36 シリアルアクセスコントローラ、37 ローデコーダ、38 センスアンプ、41 p型ウェル領域、42、43、44 配線層、45 メモリホール、46 ブロック絶縁膜、47 電荷蓄積層、48 ゲート絶縁膜、49 導電膜 1 memory system, 2 memory controller, 3 nonvolatile memory, 4 host processor, 5 NAND memory, 6 RAM, 7 ROM, 8 processor, 9 host interface, 10 ECC circuit, 11 memory interface, 12 internal bus, 21 NAND I/O Interface, 22 Control unit, 23 NAND memory cell array, 24 Page buffer, 31 Oscillator, 32 Sequencer, 33 Command user interface, 34 Voltage supply unit, 35 Column counter, 36 Serial access controller, 37 Row decoder, 38 Sense amplifier, 41p type well region, 42, 43, 44 wiring layer, 45 memory hole, 46 block insulating film, 47 charge storage layer, 48 gate insulating film, 49 conductive film
Claims (13)
前記第1ビット、前記第2ビット、前記第4ビットのデータを書き込む第1プログラムを前記不揮発性メモリに行わせた後に、前記第3ビットのデータを書き込む第2プログラムを前記不揮発性メモリに行わせるメモリコントローラと、
を備え、
前記第1乃至第16のしきい値領域のうち隣接するしきい値領域間に存在する15個の境界のうち、前記第1ビットのデータの値の判定に用いられる第1の境界の数、前記第2ビットのデータの値の判定に用いられる第2の境界の数、前記第3ビットのデータの値の判定に用いられる第3の境界の数、前記第4ビットのデータの値の判定に用いられる第4の境界の数のうち最大の値は5であり、二番目に大きな値は4であり、
前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第1ビット、前記第2ビット、前記第4ビットのデータに応じて、データが消去された消去状態を示す第17のしきい値領域と、前記第17のしきい値領域よりも電圧レベルが高くデータが書き込まれた書き込み状態を示す第18乃至第24のしきい値領域のいずれかのしきい値領域となるように前記第1プログラムを前記不揮発性メモリに行わせるように構成され、 前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第3ビットのデータに応じて、前記第17乃至第24のしきい値領域のうちいずれかのしきい値領域から前記第1乃至第16のしきい値領域のうちの2個のしきい値領域内のいずれかのしきい値領域となるように前記第2プログラムを前記不揮発性メモリに行わせるように構成され、
前記2個のしきい値領域のうち電圧レベルが最低のしきい値領域と電圧レベルが最高のしきい値領域との間にあるしきい値領域の個数が2個以内であり、
前記メモリコントローラは、前記第2プログラムを前記不揮発性メモリに行わせる場合に、前記第2ビットのデータと前記第3ビットのデータとを前記不揮発性メモリへ入力するように構成される、メモリシステム。 Each has a first threshold area indicating an erased state in which data is erased, and second to sixteenth threshold areas indicating a written state in which data is written at a voltage level higher than the first threshold area. a non-volatile memory having a plurality of memory cells capable of storing 4-bit data represented by first to fourth bits by 16 threshold regions including a threshold region;
After causing the nonvolatile memory to execute a first program for writing the data of the first bit, the second bit, and the fourth bit, a second program for writing the data of the third bit is executed for the nonvolatile memory. memory controller,
Equipped with
The number of first boundaries used to determine the value of the first bit data among the 15 boundaries existing between adjacent threshold areas among the first to 16th threshold areas; the number of second boundaries used to determine the value of the second bit data; the number of third boundaries used to determine the value of the third bit data; and the determination of the value of the fourth bit data. The maximum value of the number of fourth boundaries used for is 5, the second largest value is 4,
The memory controller is configured such that a threshold region in the memory cell has a seventeenth threshold value indicating an erased state in which data is erased according to data of the first bit, the second bit, and the fourth bit. area and the 18th to 24th threshold areas, which indicate a write state in which data is written and whose voltage level is higher than the 17th threshold area. The memory controller is configured to cause the nonvolatile memory to perform one program, and the memory controller is configured to set the threshold area of the memory cell to the seventeenth to twenty-fourth threshold values according to the data of the third bit. The second program is configured to change from one of the threshold areas to one of the two threshold areas among the first to sixteenth threshold areas. configured to cause the non-volatile memory to perform;
The number of threshold regions between the threshold region with the lowest voltage level and the threshold region with the highest voltage level among the two threshold regions is 2 or less,
The memory system is configured such that the memory controller inputs the second bit data and the third bit data to the nonvolatile memory when causing the nonvolatile memory to execute the second program. .
前記第1ビット、前記第2ビット、前記第4ビットのデータを書き込む第1プログラムを前記不揮発性メモリに行わせた後に、前記第3ビットのデータを書き込む第2プログラムを前記不揮発性メモリに行わせるメモリコントローラと、
を備え、
前記第1乃至第16のしきい値領域のうち隣接するしきい値領域間に存在する15個の境界のうち、前記第1ビットのデータの値の判定に用いられる第1の境界の数、前記第2ビットのデータの値の判定に用いられる第2の境界の数、前記第3ビットのデータの値の判定に用いられる第3の境界の数、前記第4ビットのデータの値の判定に用いられる第4の境界の数は順に(3、5、2、5)であり、
前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第1ビット、前記第2ビット、前記第4ビットのデータに応じて、データが消去された消去状態を示す第17のしきい値領域と、前記第17のしきい値領域よりも電圧レベルが高くデータが書き込まれた書き込み状態を示す第18乃至第24のしきい値領域のいずれかのしきい値領域となるように前記第1プログラムを前記不揮発性メモリに行わせるように構成され、 前記メモリコントローラは、前記メモリセルにおけるしきい値領域が、前記第3ビットのデータに応じて、前記第17乃至第24のしきい値領域のうちいずれかのしきい値領域から前記第1乃至第16のしきい値領域のうちの2個のしきい値領域内のいずれかのしきい値領域となるように前記第2プログラムを前記不揮発性メモリに行わせるように構成され、
前記2個のしきい値領域のうち電圧レベルが最低のしきい値領域と電圧レベルが最高のしきい値領域との間にあるしきい値領域の個数が2個以内であり、
前記メモリコントローラは、前記第2プログラムを前記不揮発性メモリに行わせる場合に、前記第2ビットのデータと前記第3ビットのデータとを前記不揮発性メモリへ入力するように構成される、メモリシステム。 Each has a first threshold area indicating an erased state in which data is erased, and second to sixteenth threshold areas indicating a written state in which data is written at a voltage level higher than the first threshold area. a non-volatile memory having a plurality of memory cells capable of storing 4-bit data represented by first to fourth bits by 16 threshold regions including a threshold region;
After causing the nonvolatile memory to execute a first program for writing the data of the first bit, the second bit, and the fourth bit, a second program for writing the data of the third bit is executed for the nonvolatile memory. memory controller,
Equipped with
The number of first boundaries used to determine the value of the first bit data among the 15 boundaries existing between adjacent threshold areas among the first to 16th threshold areas; the number of second boundaries used to determine the value of the second bit data; the number of third boundaries used to determine the value of the third bit data; and the determination of the value of the fourth bit data. The number of fourth boundaries used for is (3, 5, 2, 5) in order,
The memory controller is configured such that a threshold region in the memory cell has a seventeenth threshold value indicating an erased state in which data is erased according to data of the first bit, the second bit, and the fourth bit. area and the 18th to 24th threshold areas, which indicate a write state in which data is written and whose voltage level is higher than the 17th threshold area. The memory controller is configured to cause the nonvolatile memory to perform one program, and the memory controller is configured to set the threshold area of the memory cell to the seventeenth to twenty-fourth threshold values according to the data of the third bit. The second program is configured to change from one of the threshold areas to one of the two threshold areas among the first to sixteenth threshold areas. configured to cause the non-volatile memory to perform;
The number of threshold regions between the threshold region with the lowest voltage level and the threshold region with the highest voltage level among the two threshold regions is 2 or less,
The memory system is configured such that the memory controller inputs the second bit data and the third bit data to the nonvolatile memory when causing the nonvolatile memory to execute the second program. .
前記第1記憶部に記憶される前記第1乃至第4ビットのうち、前記第1プログラム及び前記第2プログラム時に重複して入力されるビットのデータは、前記第2プログラムを開始した以降に破棄又は無効化可能となり、それ以外のビットのデータは、前記第1プログラムを開始した以降に破棄又は無効化可能となる、請求項1乃至6のいずれか一項に記載のメモリシステム。 comprising a volatile first storage section that stores the first to fourth bit data;
Among the first to fourth bits stored in the first storage unit, bit data that is input redundantly during the first program and the second program is discarded after the second program is started. 7. The memory system according to claim 1, wherein data of other bits can be discarded or invalidated after starting the first program.
前記第1乃至第4ビットのうち、前記第1プログラム及び前記第2プログラムで重複して入力されるビットのデータを記憶する不揮発性の第2記憶部と、を備え、
前記第1記憶部に記憶される前記第1乃至第4ビットのデータは、前記第1プログラムを開始した以降に破棄又は無効化可能となり、
前記第2記憶部に記憶される前記第1乃至第4ビットのうち、前記第1プログラム及び前記第2プログラムで重複して入力されるビットのデータは、前記第1プログラムを開始する前に前記第2記憶部に記憶され、前記第2プログラムを開始した以降に破棄又は無効化可能となる、請求項1乃至6のいずれか一項に記載のメモリシステム。 a volatile first storage unit that stores the first to fourth bit data;
a non-volatile second storage unit that stores data of bits that are input redundantly in the first program and the second program among the first to fourth bits;
The data of the first to fourth bits stored in the first storage unit can be discarded or invalidated after starting the first program,
Among the first to fourth bits stored in the second storage unit, bit data that is input redundantly in the first program and the second program is stored in the first program before starting the first program. The memory system according to any one of claims 1 to 6, wherein the memory system is stored in a second storage unit and can be discarded or invalidated after starting the second program.
前記メモリコントローラは、前記複数の第1メモリセルに対して前記第1プログラムを行わせた後、前記複数の第2メモリセルに対して前記第1プログラムを行わせ、その後に前記複数の第1メモリセルに対して前記第2プログラムを行わせる、請求項1乃至9のいずれか一項に記載のメモリシステム。 The plurality of memory cells in the nonvolatile memory include a plurality of first memory cells connected to a first word line and a plurality of second memory cells connected to a second word line adjacent to the first word line. having a cell;
The memory controller causes the plurality of first memory cells to perform the first programming, and then causes the plurality of second memory cells to perform the first programming, and then causes the plurality of first memory cells to perform the first programming. The memory system according to any one of claims 1 to 9, wherein the second programming is performed on memory cells.
前記メモリコントローラは、前記第1ワード線に接続されたメモリセルに対する前記第1プログラムと、前記第2ワード線に接続されたメモリセルに対する前記第2プログラムとの連続した実行を、連続したコマンド及びデータ入力で前記不揮発性メモリに指示する、請求項1乃至9のいずれか一項に記載のメモリシステム。 The nonvolatile memory has at least a first word line and a second word line to which two or more of the memory cells are connected,
The memory controller executes consecutive executions of the first program for memory cells connected to the first word line and the second program for memory cells connected to the second word line, using consecutive commands and commands. 10. A memory system according to any preceding claim, wherein the non-volatile memory is instructed by a data input.
前記制御部は、前記誤り訂正部で誤り訂正後のデータと、前記第2ビットのデータと、前記第3ビットの入力データとに基づいて、前記第2プログラムでプログラムされるビットのデータの前記しきい値電圧を決定する、請求項12に記載のメモリシステム。 comprising an error correction unit that reads data programmed by the first program and performs error correction;
The control unit adjusts the bit data programmed by the second program based on the data after error correction by the error correction unit, the second bit data, and the third bit input data. 13. The memory system of claim 12, determining a threshold voltage.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/016,765 US11238924B2 (en) | 2019-11-21 | 2020-09-10 | Nonvolatile memory multilevel cell programming |
US17/545,470 US11646076B2 (en) | 2019-11-21 | 2021-12-08 | Nonvolatile memory multilevel cell programming |
US18/295,504 US11967368B2 (en) | 2019-11-21 | 2023-04-04 | Nonvolatile memory multilevel cell programming |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019210823 | 2019-11-21 | ||
JP2019210823 | 2019-11-21 | ||
JP2020113206 | 2020-06-30 | ||
JP2020113206 | 2020-06-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022002160A JP2022002160A (en) | 2022-01-06 |
JP7414669B2 true JP7414669B2 (en) | 2024-01-16 |
Family
ID=75907742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020144847A Active JP7414669B2 (en) | 2019-11-21 | 2020-08-28 | memory system |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP7414669B2 (en) |
CN (2) | CN112825026B (en) |
TW (2) | TWI802140B (en) |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4090570B2 (en) * | 1998-06-02 | 2008-05-28 | 株式会社ルネサステクノロジ | Semiconductor device, data processing system, and nonvolatile memory cell threshold value changing method |
JP2013089082A (en) * | 2011-10-19 | 2013-05-13 | Toshiba Corp | Memory controller, semiconductor storage system and memory control method |
US8913437B2 (en) * | 2011-12-15 | 2014-12-16 | Marvell World Trade Ltd. | Inter-cell interference cancellation |
JP6262063B2 (en) * | 2014-03-18 | 2018-01-17 | 東芝メモリ株式会社 | Nonvolatile memory and writing method |
US9659636B2 (en) * | 2014-07-22 | 2017-05-23 | Peter Wung Lee | NAND memory array with BL-hierarchical structure for concurrent all-BL, all-threshold-state program, and alternative-WL program, odd/even read and verify operations |
KR102128406B1 (en) * | 2014-09-26 | 2020-07-10 | 삼성전자주식회사 | Storage device and operating emthod of storage device |
JP6539608B2 (en) * | 2016-03-15 | 2019-07-03 | 東芝メモリ株式会社 | Semiconductor memory device |
JP2018005959A (en) * | 2016-06-30 | 2018-01-11 | 東芝メモリ株式会社 | Memory system and writing method |
US10593398B2 (en) * | 2016-09-13 | 2020-03-17 | Toshiba Memory Corporation | Semiconductor storage device including a controller configured to execute a first write and a second write |
JP2019057352A (en) * | 2017-09-21 | 2019-04-11 | 東芝メモリ株式会社 | Memory system |
JP2019057350A (en) * | 2017-09-21 | 2019-04-11 | 東芝メモリ株式会社 | Semiconductor memory |
US20190034105A1 (en) * | 2017-12-28 | 2019-01-31 | Intel Corporation | Storage device having programmed cell storage density modes that are a function of storage device capacity utilization |
-
2020
- 2020-07-29 TW TW110146228A patent/TWI802140B/en active
- 2020-07-29 TW TW109125506A patent/TWI752569B/en active
- 2020-08-21 CN CN202010848525.6A patent/CN112825026B/en active Active
- 2020-08-21 CN CN202311024606.4A patent/CN116954520A/en active Pending
- 2020-08-28 JP JP2020144847A patent/JP7414669B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
TW202331729A (en) | 2023-08-01 |
TWI752569B (en) | 2022-01-11 |
CN112825026B (en) | 2023-08-18 |
TW202213363A (en) | 2022-04-01 |
JP2022002160A (en) | 2022-01-06 |
CN112825026A (en) | 2021-05-21 |
CN116954520A (en) | 2023-10-27 |
TWI802140B (en) | 2023-05-11 |
TW202121426A (en) | 2021-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2020035504A (en) | Memory system | |
JP7449179B2 (en) | memory system | |
KR102284658B1 (en) | Non-volatile memory device, Memory system including the same, and Method of operating the same | |
US11238924B2 (en) | Nonvolatile memory multilevel cell programming | |
US20210166764A1 (en) | Storage device and operating method thereof | |
KR102688480B1 (en) | Semiconductor memory device and operating method thereof | |
JP2018163712A (en) | Memory system and control method for memory system | |
JP7414669B2 (en) | memory system | |
US11817170B2 (en) | Storage controller determining error count, method of operating the same, and method of operating storage device including the same | |
TWI857549B (en) | Memory system | |
TW202326441A (en) | Memory system and semiconductor storage device | |
KR20230090598A (en) | Storage controller using history data, method of operating the same, and method of operating storage device having the same | |
CN114464221A (en) | Semiconductor memory device and method of operating the same | |
US11694750B2 (en) | Memory system, memory device, and control method of memory system for generating information from a threshold voltage | |
US11934701B2 (en) | Storage controller determining distribution type, method of operating the same, and method of operating storage device including the same | |
EP4152332A1 (en) | Storage controller determining distribution type, method of operating the same, and method of operating storage device including the same | |
US20240078018A1 (en) | Storage devices calculating a wordline gap value, and methods of operating the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230315 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20231201 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20231205 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231228 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7414669 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |