JP2009054246A - Semiconductor storage device - Google Patents

Semiconductor storage device Download PDF

Info

Publication number
JP2009054246A
JP2009054246A JP2007221464A JP2007221464A JP2009054246A JP 2009054246 A JP2009054246 A JP 2009054246A JP 2007221464 A JP2007221464 A JP 2007221464A JP 2007221464 A JP2007221464 A JP 2007221464A JP 2009054246 A JP2009054246 A JP 2009054246A
Authority
JP
Japan
Prior art keywords
data
memory cell
verify
latch circuits
threshold voltage
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.)
Pending
Application number
JP2007221464A
Other languages
Japanese (ja)
Inventor
Yoshikazu Takeyama
嘉和 竹山
Noboru Shibata
昇 柴田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007221464A priority Critical patent/JP2009054246A/en
Publication of JP2009054246A publication Critical patent/JP2009054246A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Read Only Memory (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a semiconductor storage device for increasing speed in a verify operation. <P>SOLUTION: The semiconductor storage device comprises a memory cell transistor for retaining n bits (n>2) according to a threshold voltage, a sense amplifier for amplifying readout data, first to n-th latch circuits for retaining a value of a first to n-th bit of program data, and a computing unit for performing logical operations of the value transferred from the first to n-th latch circuits and the readout data. When "i" data is verified, the value is transferred from the latch circuit among the first to n-th latch circuits, in which the value retained when the "i" data is programmed is effective data. Among the first to n-th latch circuits, the combination that retains the effective data when "j" data (j is one of "0" to "2<SP>n</SP>-2") is programmed is different from the combination when data of which threshold voltage is higher than that of the "j" data is programmed. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

この発明は、半導体記憶装置に関する。例えば、多値NAND型フラッシュメモリのベリファイ動作に関する。   The present invention relates to a semiconductor memory device. For example, it relates to a verify operation of a multi-level NAND flash memory.

従来、不揮発性の半導体メモリとしてNAND型フラッシュメモリが知られている。NAND型フラッシュメモリでは、データの書き込み動作において、メモリセルの閾値電圧が所定のレベルまで達しているかを確認するためのベリファイ動作が行われる。この際、ベリファイすべきデータの各ビットをラッチ回路に保持させ、このラッチ回路から読み出したデータと、メモリセルから読み出したデータとを比較することによって、ベリファイ動作を行う手法が提案されている(例えば特許文献1参照)。   Conventionally, a NAND flash memory is known as a nonvolatile semiconductor memory. In the NAND flash memory, a verify operation for confirming whether the threshold voltage of the memory cell has reached a predetermined level is performed in the data write operation. At this time, a method has been proposed in which each bit of data to be verified is held in a latch circuit, and the verify operation is performed by comparing the data read from the latch circuit with the data read from the memory cell ( For example, see Patent Document 1).

この手法では、ベリファイすべきデータがグレイコード(Gray code)で記述される。これは、NAND型フラッシュメモリと外部との間で行われるデータの授受が、グレイコードを用いて行われるためである。   In this method, data to be verified is described in a Gray code. This is because the data exchange between the NAND flash memory and the outside is performed using the Gray code.

しかし、上記手法であると、ベリファイすべきデータの全ビットをラッチ回路から読み出す必要がある。従って、ベリファイ動作に長時間を要し、更にはベリファイすべきデータ毎に、ベリファイに要する時間が異なるという問題があった。
米国特許出願公開第2005/0195653号明細書
However, with the above method, it is necessary to read all bits of data to be verified from the latch circuit. Therefore, it takes a long time for the verify operation, and there is a problem that the time required for the verify differs for each data to be verified.
US Patent Application Publication No. 2005/0195653

この発明は、ベリファイ動作を高速化出来る半導体記憶装置を提供する。   The present invention provides a semiconductor memory device capable of speeding up a verify operation.

この発明の一態様に係る半導体記憶装置は、電荷蓄積層と制御ゲートとを含む積層ゲートを備え、閾値電圧に応じて“0”データ〜“2−1”データのnビット(nは2以上の自然数)データを保持可能なメモリセルトランジスタと、ベリファイ動作時において、前記メモリセルトランジスタから読み出された前記データを増幅するセンスアンプと、プログラム動作時及び前記ベリファイ動作時において、前記メモリセルトランジスタにプログラムすべきプログラムデータにおける1〜nビット目の値をそれぞれ保持する第1乃至第nラッチ回路と、前記ベリファイ動作時において、前記第1乃至第nラッチ回路のうちの少なくともいずれかから転送された前記値と、前記メモリセルトランジスタで増幅された前記データとの論理演算を行う演算器とを具備し、“i”データ(iは“1”〜“2−1”のいずれか)をベリファイする際には、前記第1乃至第nラッチ回路のうちで、前記“i”データをプログラムする際に保持する前記値が有効データとなるものから、前記演算器に対して前記値が転送され、前記第1乃至第nラッチ回路のうち、“j”データ(jは“0”〜“2−2”のいずれか)がプログラムされる際に前記有効データを保持するものの組み合わせは、前記“j”データよりも前記閾値電圧の高いデータがプログラムされる全ての場合における前記組み合わせと異なる。 A semiconductor memory device according to one embodiment of the present invention includes a stacked gate including a charge storage layer and a control gate, and n bits of “0” data to “2 n −1” data (n is 2) depending on a threshold voltage. The above natural number) memory cell transistor capable of holding data, a sense amplifier that amplifies the data read from the memory cell transistor during a verify operation, and the memory cell during a program operation and the verify operation Transfer from at least one of the first to nth latch circuits that respectively hold the values of the 1st to nth bits in the program data to be programmed in the transistors, and the first to nth latch circuits during the verify operation. A logical operation of the obtained value and the data amplified by the memory cell transistor ; And a Cormorant calculator, "i" data when verifying the (i is "1" ~ either "2 n -1") are among the first to n latch circuits, said " Since the value held when i ”data is programmed becomes effective data, the value is transferred to the arithmetic unit, and among the first to nth latch circuits,“ j ”data (j is “0” to “2 n −2”) are all programmed when data having a threshold voltage higher than that of “j” data is programmed. Different from the above combination.

本発明によれば、ベリファイ動作を高速化出来る半導体記憶装置を提供出来る。   According to the present invention, it is possible to provide a semiconductor memory device capable of speeding up a verify operation.

以下、この発明の実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。   Embodiments of the present invention will be described below with reference to the drawings. In the description, common parts are denoted by common reference symbols throughout the drawings.

[第1の実施形態]
この発明の第1の実施形態に係る半導体記憶装置について図1を用いて説明する。図1は、本実施形態に係る8値(8-levels)NAND型フラッシュメモリのブロック図である。図示するようにNAND型フラッシュメモリ1は、メモリセルアレイ2、ロウデコーダ3、ソース線ドライバ4、ページバッファ5、ベリファイ回路6、制御回路7、電圧発生回路8、及び入出力バッファ9を備えている。
[First Embodiment]
A semiconductor memory device according to a first embodiment of the present invention will be described with reference to FIG. FIG. 1 is a block diagram of an 8-level NAND flash memory according to this embodiment. As shown in the figure, the NAND flash memory 1 includes a memory cell array 2, a row decoder 3, a source line driver 4, a page buffer 5, a verify circuit 6, a control circuit 7, a voltage generation circuit 8, and an input / output buffer 9. .

メモリセルアレイ2は、複数のメモリセルトランジスタを備えている。各メモリセルトランジスタのゲートはワード線に接続され、ドレインはビット線に電気的に接続され、ソースはソース線に電気的に接続されている。ロウデコーダ3は、メモリセルアレイ2のロウ方向を選択する。すなわち、ワード線を選択する。ソース線ドライバ4は、ソース線に電圧を印加する。ページバッファ5は、データの読み出し時においてはメモリセルトランジスタから読み出したデータをセンス・増幅し、書き込み時においては書き込みデータを保持する。ベリファイ回路6は、データの書き込み時においてベリファイを行う。メモリセルアレイ2、ロウデコーダ3、ページバッファ5、及びベリファイ回路6の詳細については後述する。   The memory cell array 2 includes a plurality of memory cell transistors. Each memory cell transistor has a gate connected to the word line, a drain electrically connected to the bit line, and a source electrically connected to the source line. The row decoder 3 selects the row direction of the memory cell array 2. That is, the word line is selected. The source line driver 4 applies a voltage to the source line. The page buffer 5 senses and amplifies data read from the memory cell transistor when reading data, and holds write data when writing. The verify circuit 6 performs verification at the time of data writing. Details of the memory cell array 2, row decoder 3, page buffer 5, and verify circuit 6 will be described later.

入出力バッファ9は、外部からコマンド、アドレス、及び書き込みデータを受け取り、またメモリセルアレイから読み出した読み出しデータを外部へ出力する。   The input / output buffer 9 receives commands, addresses, and write data from the outside, and outputs read data read from the memory cell array to the outside.

制御回路7は、ベリファイ回路6及び電圧発生回路8の動作を制御する。制御回路7は、書き込み時には書き込みシーケンスを実行し、電圧発生回路8に電圧の発生を命令すると共に、ベリファイ回路6の動作を制御する。また、入出力バッファ9で受信した書き込みデータをベリファイ回路6へ転送する。   The control circuit 7 controls the operations of the verify circuit 6 and the voltage generation circuit 8. The control circuit 7 executes a write sequence at the time of writing, instructs the voltage generation circuit 8 to generate a voltage, and controls the operation of the verify circuit 6. The write data received by the input / output buffer 9 is transferred to the verify circuit 6.

電圧発生回路8は、制御回路7の命令に従って電圧を発生する。電圧発生回路8で発生された電圧は、ロウデコーダ3、ソース線ドライバ4、及びページバッファ5等に与えられる。   The voltage generation circuit 8 generates a voltage in accordance with an instruction from the control circuit 7. The voltage generated by the voltage generation circuit 8 is supplied to the row decoder 3, the source line driver 4, the page buffer 5, and the like.

次に図2を用いてメモリセルアレイ2、ロウデコーダ3、ページバッファ5、及びベリファイ回路6の詳細について説明する。図2は、メモリセルアレイ2、ロウデコーダ3、ページバッファ5、及びベリファイ回路6の詳細を示すブロック図である。   Next, details of the memory cell array 2, the row decoder 3, the page buffer 5, and the verify circuit 6 will be described with reference to FIG. FIG. 2 is a block diagram showing details of the memory cell array 2, row decoder 3, page buffer 5, and verify circuit 6.

まずメモリセルアレイ2について説明する。図示するようにメモリセルアレイ2は、複数のNANDセルを有している。図2では1行のNANDセルのみを示している。以下、説明の簡単化のため、NANDセルが1行の場合を例に説明を行う。NANDセルの各々は、32個のメモリセルトランジスタMT0〜MT31と、選択トランジスタST1、ST2とを含んでいる。以下では、説明の簡潔化のために、メモリセルトランジスタMT0〜MT31を区別しない場合には、単にメモリセルトランジスタMTと呼ぶことがある。メモリセルトランジスタMTは、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層(例えば浮遊ゲート)と、電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲートとを有する積層ゲート構造を備えている。なお、メモリセルトランジスタMTの個数は32個に限られず、8個や16個であってもよく、その数は限定されるものではない。メモリセルトランジスタMTは、隣接するもの同士でソース、ドレインを共有している。そして、選択トランジスタST1、ST2間に、その電流経路が直列接続されるようにして配置されている。直列接続されたメモリセルトランジスタMTの一端側のドレインは選択トランジスタST1のソースに接続され、他端側のソースは選択トランジスタST2のドレインに接続されている。   First, the memory cell array 2 will be described. As shown, the memory cell array 2 has a plurality of NAND cells. FIG. 2 shows only one row of NAND cells. Hereinafter, for the sake of simplification of description, a case where the NAND cell is one row will be described as an example. Each of the NAND cells includes 32 memory cell transistors MT0 to MT31 and select transistors ST1 and ST2. Hereinafter, for simplification of description, when the memory cell transistors MT0 to MT31 are not distinguished, they may be simply referred to as memory cell transistors MT. The memory cell transistor MT includes a charge storage layer (for example, a floating gate) formed on a semiconductor substrate with a gate insulating film interposed therebetween, and a control gate formed on the charge storage layer with an inter-gate insulating film interposed therebetween. A stacked gate structure is provided. The number of memory cell transistors MT is not limited to 32, but may be 8 or 16, and the number is not limited. Adjacent ones of the memory cell transistors MT share a source and a drain. And it arrange | positions so that the current path may be connected in series between selection transistor ST1, ST2. The drain on one end side of the memory cell transistors MT connected in series is connected to the source of the select transistor ST1, and the source on the other end side is connected to the drain of the select transistor ST2.

同一行にあるメモリセルトランジスタMTの制御ゲートはワード線WL0〜WL31のいずれかに共通接続され、同一行にあるメモリセルの選択トランジスタST1、ST2のゲートは、それぞれセレクトゲート線SGD、SGSに共通接続されている。また、メモリセルアレイにおいて同一列にある選択トランジスタST1のドレインはビット線BL0〜BLm(mは自然数)のいずれかに共通接続される。選択トランジスタST2のソースはソース線SLに共通接続される。なお、選択トランジスタST1、ST2は必ずしも両方必要ではなく、NANDセルを選択出来るのであればいずれか一方のみが設けられていても良い。   The control gates of the memory cell transistors MT in the same row are commonly connected to one of the word lines WL0 to WL31, and the gates of the selection transistors ST1 and ST2 of the memory cells in the same row are common to the select gate lines SGD and SGS, respectively. It is connected. Further, the drains of the select transistors ST1 in the same column in the memory cell array are commonly connected to any one of bit lines BL0 to BLm (m is a natural number). The sources of the selection transistors ST2 are commonly connected to the source line SL. Note that both the selection transistors ST1 and ST2 are not necessarily required, and only one of them may be provided as long as a NAND cell can be selected.

上記構成のメモリセルアレイ2において、同一のワード線WLに接続された複数のメモリセルトランジスタMTには、一括してデータが書き込まれる。このデータが書き込まれる単位を「ページ」と呼ぶ。本実施形態では、同一のワード線に接続された(m+1)個のメモリセルトランジスタMTに対して、一括してデータが書き込まれるものと仮定する。また、データの読み出しも書き込みと同じ単位により行われるものとする。   In the memory cell array 2 configured as described above, data is collectively written into the plurality of memory cell transistors MT connected to the same word line WL. A unit in which this data is written is called a “page”. In the present embodiment, it is assumed that data is collectively written to (m + 1) memory cell transistors MT connected to the same word line. Also, data reading is performed in the same unit as writing.

上記メモリセルアレイ2内におけるメモリセルトランジスタMTの閾値分布について図3を用いて説明する。図3は、横軸に閾値電圧Vthをとり、縦軸にメモリセルトランジスタMTの存在確率を示したグラフである。   The threshold distribution of the memory cell transistors MT in the memory cell array 2 will be described with reference to FIG. FIG. 3 is a graph in which the horizontal axis represents the threshold voltage Vth and the vertical axis represents the existence probability of the memory cell transistor MT.

図示するように、各々のメモリセルトランジスタMTは8種のデータ(3ビットデータ)を保持出来る。すなわちメモリセルトランジスタMTは、閾値電圧Vthの低い順に“0”、“1”、“2”、“3”、…“7”の8種のデータを保持出来る。   As shown in the figure, each memory cell transistor MT can hold 8 types of data (3-bit data). That is, the memory cell transistor MT can hold eight types of data of “0”, “1”, “2”, “3”,... “7” in order from the lowest threshold voltage Vth.

メモリセルトランジスタMTにおける“0”データの閾値電圧Vth0は、Vth0<V01である。“1”データの閾値電圧Vth1は、V01<Vth1<V12である。“2”データの閾値電圧Vth2は、V12<Vth2<V23である。“3”データの閾値電圧Vth3は、V23<Vth3<V34である。“4”データの閾値電圧Vth4は、V34<Vth4<V45である。“5”データの閾値電圧Vth5は、V45<Vth5<V56である。“6”データの閾値電圧Vth6は、V56<Vth6<V67である。“7”データの閾値電圧Vth7は、V67<Vth7である。このようにメモリセルトランジスタMTは、閾値電圧に応じて“0”データ〜“7”データの3ビットデータを保持可能とされている。   The threshold voltage Vth0 of “0” data in the memory cell transistor MT is Vth0 <V01. The threshold voltage Vth1 of “1” data is V01 <Vth1 <V12. The threshold voltage Vth2 of “2” data is V12 <Vth2 <V23. The threshold voltage Vth3 of “3” data is V23 <Vth3 <V34. The threshold voltage Vth4 of the “4” data is V34 <Vth4 <V45. The threshold voltage Vth5 of “5” data is V45 <Vth5 <V56. The threshold voltage Vth6 of “6” data is V56 <Vth6 <V67. The threshold voltage Vth7 of the “7” data is V67 <Vth7. As described above, the memory cell transistor MT can hold 3-bit data of “0” data to “7” data according to the threshold voltage.

図2に戻って説明を続ける。ロウデコーダ3は、入出力バッファ9から与えられるロウアドレス信号RAに基づいてワード線WL0〜WL31のいずれか、及びセレクトゲート線SGD、SGSを選択する。そして、選択したワード線WL及びセレクトゲート線SGD、SGSに電圧を供給する。更にロウデコーダ3は、メモリセルが形成されている半導体基板に電圧を与える。これらの電圧は、電圧発生回路8によって与えられる。   Returning to FIG. 2, the description will be continued. The row decoder 3 selects one of the word lines WL0 to WL31 and the select gate lines SGD and SGS based on the row address signal RA supplied from the input / output buffer 9. Then, a voltage is supplied to the selected word line WL and select gate lines SGD and SGS. Further, the row decoder 3 applies a voltage to the semiconductor substrate on which the memory cells are formed. These voltages are given by the voltage generation circuit 8.

次にページバッファ5について説明する。ページバッファ5は、ビット線BL0〜BLm毎に設けられたセンスアンプ10−0〜10−mを備えている。メモリセルアレイ2からデータを読み出す際には、センスアンプ10−0〜10−mはそれぞれ、ビット線BL0〜BL−mに読み出されたデータをセンスして増幅する。またデータを書き込む際には、センスアンプ10−0〜10−mは、各ビット線BL0〜BLmに接続されたメモリセルトランジスタMTへの書き込みデータをそれぞれ保持する。以下、センスアンプ10−0〜10−mを区別しない場合には、単にセンスアンプ10と呼ぶ。   Next, the page buffer 5 will be described. The page buffer 5 includes sense amplifiers 10-0 to 10-m provided for the bit lines BL0 to BLm. When reading data from the memory cell array 2, the sense amplifiers 10-0 to 10-m sense and amplify the data read to the bit lines BL0 to BL-m, respectively. When data is written, the sense amplifiers 10-0 to 10-m hold write data to the memory cell transistors MT connected to the bit lines BL0 to BLm, respectively. Hereinafter, when the sense amplifiers 10-0 to 10-m are not distinguished, they are simply referred to as the sense amplifiers 10.

ベリファイ回路6は、ビット線BL0〜BLm毎、すなわちセンスアンプ10−0〜10−m毎に設けられた演算回路20−0〜20−mを備えている。演算回路20−0〜20−mの各々は、演算器21−0〜21−m、第1ラッチ回路22−0〜22−m、第2ラッチ回路23−0〜23−m、第3ラッチ回路24−0〜24−m、及びMOSトランジスタ25−0〜25−mをそれぞれ備えている。以下、演算回路20−0〜20−mを単に演算回路20、演算器21−0〜21−mを単に演算器21、第1ラッチ回路22−0〜22−mを単に第1ラッチ回路22、第2ラッチ回路23−0〜23−mを単に第2ラッチ回路23、第3ラッチ回路24−0〜24−mを単に第3ラッチ回路24、及びMOSトランジスタ25−0〜25−mを単にMOSトランジスタ25と呼ぶことがある。   The verify circuit 6 includes arithmetic circuits 20-0 to 20-m provided for the bit lines BL0 to BLm, that is, for the sense amplifiers 10-0 to 10-m. Each of the arithmetic circuits 20-0 to 20-m includes arithmetic units 21-0 to 21-m, first latch circuits 22-0 to 22-m, second latch circuits 23-0 to 23-m, and third latches. Circuits 24-0 to 24-m and MOS transistors 25-0 to 25-m are provided. Hereinafter, the arithmetic circuits 20-0 to 20-m are simply the arithmetic circuit 20, the arithmetic units 21-0 to 21-m are simply the arithmetic unit 21, and the first latch circuits 22-0 to 22-m are simply the first latch circuit 22. The second latch circuits 23-0 to 23-m are simply the second latch circuit 23, the third latch circuits 24-0 to 24-m are simply the third latch circuit 24, and the MOS transistors 25-0 to 25-m are Sometimes simply referred to as MOS transistor 25.

第1〜第3ラッチ回路22〜24の各々は、データの書き込みの際に、対応するビット線BLに接続されたメモリセルトランジスタMTに書き込むべき3ビットデータの各ビットを保持する。すなわち、第1〜第3ラッチ回路22−0、23−0、24−0には、ビット線BL0に接続されたメモリセルトランジスタMTに書き込むべき3ビットデータの各ビットが保持される。また第1〜第3ラッチ回路22−m、23−m、24−mには、ビット線BLmに接続されたメモリセルトランジスタMTに書き込むべき3ビットデータの各ビットが保持される。   Each of the first to third latch circuits 22 to 24 holds each bit of 3-bit data to be written to the memory cell transistor MT connected to the corresponding bit line BL when data is written. That is, each bit of 3-bit data to be written to the memory cell transistor MT connected to the bit line BL0 is held in the first to third latch circuits 22-0, 23-0, and 24-0. The first to third latch circuits 22-m, 23-m, and 24-m hold each bit of 3-bit data to be written to the memory cell transistor MT connected to the bit line BLm.

演算器20は、初期値として“1”データを保持し、この初期値と、対応するセンスアンプ10内のデータと、対応する第1〜第3ラッチ回路22〜24内のデータとのAND演算を行う。すなわち、演算器20−0は、初期値と、センスアンプ10−0内のデータと、第1〜第3ラッチ回路22−0、23−0、24−0内のデータとのAND演算を行う。また演算器20−mは、初期値と、センスアンプ10−m内のデータと、第1〜第3ラッチ回路22−m、23−m、24−m内のデータとのAND演算を行う。   The arithmetic unit 20 holds “1” data as an initial value, and performs an AND operation on the initial value, the data in the corresponding sense amplifier 10, and the data in the corresponding first to third latch circuits 22 to 24. I do. That is, the arithmetic unit 20-0 performs an AND operation on the initial value, the data in the sense amplifier 10-0, and the data in the first to third latch circuits 22-0, 23-0, and 24-0. . The computing unit 20-m performs an AND operation on the initial value, the data in the sense amplifier 10-m, and the data in the first to third latch circuits 22-m, 23-m, and 24-m.

MOSトランジスタ25は、ゲートに信号TDが入力され、第2ラッチ回路23に与えられたデータを、第1ラッチ回路22及び第3ラッチ回路24へと転送する。ベリファイ回路6の動作の詳細については後述する。   In the MOS transistor 25, the signal TD is input to the gate, and the data supplied to the second latch circuit 23 is transferred to the first latch circuit 22 and the third latch circuit 24. Details of the operation of the verify circuit 6 will be described later.

次に、上記構成のNAND型フラッシュメモリの動作について説明する。
[データの書き込み動作]
図4を用いて、本実施形態に係るNAND型フラッシュメモリにおけるデータの書き込み動作について説明する。データの書き込み動作は、大まかにはプログラム動作とベリファイ動作との繰り返しである。プログラム動作とは、書き込みデータに応じてメモリセルトランジスタMTへの電荷の注入/非注入を行って、メモリセルトランジスタMTの閾値電圧を所望の値に設定する動作である。また、ベリファイ動作はプログラム動作の後に行われ、メモリセルトランジスタMTからデータを読み出して当該メモリセルトランジスタMTの閾値電圧が所望の範囲内にあるか否かを確かめる動作である。図4は、本実施形態に係るNAND型フラッシュメモリにおける書き込み動作のフローチャートである。
Next, the operation of the NAND flash memory having the above configuration will be described.
[Data write operation]
A data write operation in the NAND flash memory according to the present embodiment will be described with reference to FIG. The data write operation is roughly a repetition of a program operation and a verify operation. The program operation is an operation of setting the threshold voltage of the memory cell transistor MT to a desired value by injecting / non-injecting charge into the memory cell transistor MT according to the write data. The verify operation is performed after the program operation, and is an operation for reading data from the memory cell transistor MT and confirming whether or not the threshold voltage of the memory cell transistor MT is within a desired range. FIG. 4 is a flowchart of the write operation in the NAND flash memory according to the present embodiment.

図示するように、まずNANDフラッシュメモリ1に、書き込みコマンド、アドレス、及び書き込みデータ(3ビットデータ)が入力される(ステップS10)。NAND型フラッシュメモリ1では、これらの信号を入出力バッファ9で受け取る。そして入出力バッファ9は、ロウアドレスRAをロウデコーダ3へ転送し、書き込みコマンド及び書き込みデータを制御回路7へ転送する。なお、外部から与えられる書き込みデータは、グレイコード(Gray code)として与えられる。   As shown in the figure, first, a write command, an address, and write data (3-bit data) are input to the NAND flash memory 1 (step S10). In the NAND flash memory 1, these signals are received by the input / output buffer 9. The input / output buffer 9 transfers the row address RA to the row decoder 3 and transfers a write command and write data to the control circuit 7. Note that write data given from the outside is given as a Gray code.

次に制御回路7は、書き込みデータをベリファイ回路6へ転送し、3ビットデータ(グレイコード)の各ビットを第1〜第3ラッチ回路22−0〜24−0へセットする(ステップS11)。なお、書き込みデータは入出力バッファ9からベリファイ回路6へ直接転送されても良い。書き込みデータの転送方法について、以下説明する。なお、ビット線BL0〜BLmの各々に接続されたメモリセルトランジスタMTへの書き込みデータ(グレイコード)の下位ビットをそれぞれBlow−0〜Blow−m、中位ビットをそれぞれBmid−0〜Bmid−m、上位ビットをそれぞれBup−0〜Bup−mとする。   Next, the control circuit 7 transfers the write data to the verify circuit 6, and sets each bit of the 3-bit data (gray code) in the first to third latch circuits 22-0 to 24-0 (step S11). The write data may be directly transferred from the input / output buffer 9 to the verify circuit 6. A method for transferring write data will be described below. The lower bits of the write data (gray code) to the memory cell transistors MT connected to the bit lines BL0 to BLm are Blow-0 to Blow-m, respectively, and the middle bits are Bmid-0 to Bmid-m, respectively. The upper bits are Bup-0 to Bup-m, respectively.

制御回路7はまず、例えば下位ビットBlow−0〜Blow−mからなる(m+1)ビットデータをベリファイ回路6へ転送し、これらのデータをそれぞれ第2ラッチ回路23−0〜23−mへ格納する。この際、制御回路7は信号TD=“H”レベルとして、MOSトランジスタ25−0〜25−mをオン状態とする。これにより、第2ラッチ回路23−0〜23−m内のBlow−0〜Blow−mは、第1ラッチ回路22−0〜22−mへそれぞれ転送される。   First, the control circuit 7 transfers (m + 1) -bit data composed of, for example, the lower bits Blow-0 to Blow-m to the verify circuit 6, and stores these data in the second latch circuits 23-0 to 23-m, respectively. . At this time, the control circuit 7 sets the signal TD = “H” level to turn on the MOS transistors 25-0 to 25-m. Thereby, Blow-0 to Blow-m in the second latch circuits 23-0 to 23-m are transferred to the first latch circuits 22-0 to 22-m, respectively.

次に制御回路7は、中位ビットBmid−0〜Bmid−mをそれぞれ第2ラッチ回路23−0〜23−mへ格納する。そして第2ラッチ回路23−0〜23−m内のBmid−0〜Bmid−mは、第3ラッチ回路24−0〜24−mへそれぞれ転送される。最後に制御回路7は、上位ビットBup−0〜Bup−mを第2ラッチ回路23−0〜23−mへそれぞれ転送する。以上により、グレイコードである書き込みデータがベリファイ回路6にセットされる。   Next, the control circuit 7 stores the middle bits Bmid-0 to Bmid-m in the second latch circuits 23-0 to 23-m, respectively. Then, Bmid-0 to Bmid-m in the second latch circuits 23-0 to 23-m are transferred to the third latch circuits 24-0 to 24-m, respectively. Finally, the control circuit 7 transfers the upper bits Bup-0 to Bup-m to the second latch circuits 23-0 to 23-m, respectively. Thus, the write data that is a Gray code is set in the verify circuit 6.

ステップS11の後、制御回路7はベリファイ回路6の演算回路20−1〜20−mの各々に保持される書き込みデータを、グレイコードからバイナリコードへと変換する(ステップS12)。すなわち、第1〜第3ラッチ回路の各々に保持されるデータを組み合わせて得られる3ビットのコードが、書き込みデータ“0”〜“7”の順に昇順または降順の値となるように変換する。本実施形態では、第1ラッチ回路22に保持されるビットを下位ビット、第2ラッチ回路23に保持されるビットを中位ビット、第3ラッチ回路に保持されるビットを上位ビットとした場合に、これらによって得られる3ビットのコードが書き込みデータ“0”〜“7”の順に降順となるように変換される。   After step S11, the control circuit 7 converts the write data held in each of the arithmetic circuits 20-1 to 20-m of the verify circuit 6 from gray code to binary code (step S12). That is, the 3-bit code obtained by combining the data held in each of the first to third latch circuits is converted so as to be in the ascending or descending order of the write data “0” to “7”. In the present embodiment, the bit held in the first latch circuit 22 is the lower bit, the bit held in the second latch circuit 23 is the middle bit, and the bit held in the third latch circuit is the upper bit. The 3-bit code obtained by these is converted so as to be in descending order of the write data “0” to “7”.

制御回路7によって得られるバイナリコードを図5に示す。図5は、書き込みデータと、第1〜第3ラッチ回路22〜24に保持されるデータとの関係を示す表である。第1ラッチ回路22に保持されるビットを“b1”、第2ラッチ回路23に保持されるビットを“b2”、第3ラッチ回路24に保持されるビットを“b3”とすると、得られるコードは(b3、b2、b1)である。書き込みデータが“0”であった場合には、b1=“1”、b2=“1”、b3=“1”とされ、得られるコードは(111)である。また書き込みデータが“1”であった場合には、得られるコードは(110)である。以下、書き込みデータが“2”〜“7”の場合には、得られるコードは(101)〜(000)となる。このように、制御回路7はラッチ回路22〜24の保持するデータの組み合わせを、グレイコードから図5に示すようなバイナリコードに変換する。   A binary code obtained by the control circuit 7 is shown in FIG. FIG. 5 is a table showing a relationship between write data and data held in the first to third latch circuits 22 to 24. If the bit held in the first latch circuit 22 is “b1”, the bit held in the second latch circuit 23 is “b2”, and the bit held in the third latch circuit 24 is “b3”, the obtained code Is (b3, b2, b1). When the write data is “0”, b1 = “1”, b2 = “1”, b3 = “1”, and the obtained code is (111). When the write data is “1”, the obtained code is (110). Hereinafter, when the write data is “2” to “7”, the obtained codes are (101) to (000). In this way, the control circuit 7 converts the combination of data held by the latch circuits 22 to 24 from a gray code to a binary code as shown in FIG.

また、制御回路7はプログラム回数iをカウントする。最初はi=1とされる(ステップS13)。そして制御回路7の命令に応答して、電圧発生回路8がプログラム電圧Vpgm−iを生成して、ロウデコーダ3へ供給する(ステップS14)。   In addition, the control circuit 7 counts the program count i. Initially, i = 1 is set (step S13). In response to the command from the control circuit 7, the voltage generation circuit 8 generates the program voltage Vpgm-i and supplies it to the row decoder 3 (step S14).

そしてプログラム動作が行われる(ステップS15)。すなわち、ロウデコーダ3がロウアドレスRAに対応するワード線WLを選択して、選択したワード線WLに対してプログラム電圧Vpgm−iを印加する。また、各演算回路20−0〜20−mは、それぞれの第1〜第3ラッチ回路22〜24にセットされた値に応じて、プログラムデータをページバッファ5(センスアンプ10−0〜10−m)にセットする。プログラムデータは、演算器21におけるAND演算結果である。つまり、第1〜第3ラッチ回路22〜23の少なくともいずれかが保持するデータが“0”であると、演算器21におけるAND演算結果は“0”となる。他方、第1〜第3ラッチ回路22〜23の全ての保持するデータが“1”であれば、AND演算結果は“1”となる。この演算結果が、ページバッファ5のセンスアンプ10にプログラムデータとして転送される。   Then, a program operation is performed (step S15). That is, the row decoder 3 selects the word line WL corresponding to the row address RA, and applies the program voltage Vpgm-i to the selected word line WL. The arithmetic circuits 20-0 to 20-m store program data in the page buffer 5 (sense amplifiers 10-0 to 10-) according to the values set in the first to third latch circuits 22 to 24, respectively. Set to m). The program data is an AND calculation result in the calculator 21. That is, if the data held by at least one of the first to third latch circuits 22 to 23 is “0”, the AND operation result in the calculator 21 is “0”. On the other hand, if all the data held by the first to third latch circuits 22 to 23 is “1”, the AND operation result is “1”. The calculation result is transferred as program data to the sense amplifier 10 of the page buffer 5.

プログラムデータが“0”である場合には、センスアンプ10は対応するビット線BLに0Vを与える。すると、メモリセルトランジスタMTの電荷蓄積層に電荷が注入され、当該メモリセルトランジスタMTの閾値電圧は上昇する。他方、プログラムデータが“1”である場合には、センスアンプ10は対応するビット線BLに正電圧(例えば3V)を与える。すると、メモリセルトランジスタMTの電荷蓄積層に電荷は注入されず、当該メモリセルトランジスタMTの閾値電圧は変化しない。   When the program data is “0”, the sense amplifier 10 applies 0V to the corresponding bit line BL. Then, charges are injected into the charge storage layer of the memory cell transistor MT, and the threshold voltage of the memory cell transistor MT increases. On the other hand, when the program data is “1”, the sense amplifier 10 applies a positive voltage (for example, 3 V) to the corresponding bit line BL. Then, no charge is injected into the charge storage layer of the memory cell transistor MT, and the threshold voltage of the memory cell transistor MT does not change.

プログラム動作が終了すると、制御回路7はベリファイ回路6に対してベリファイ動作を命令する。この命令に応答してベリファイ回路6は、“1”〜“7”データの各々についてベリファイを行う(ステップS16)。ベリファイ動作の詳細は後述する。   When the program operation is completed, the control circuit 7 instructs the verify circuit 6 to perform the verify operation. In response to this command, the verify circuit 6 performs verify for each of the “1” to “7” data (step S16). Details of the verify operation will be described later.

ベリファイ動作が終了すると、制御回路7はプログラム動作が所定の回数だけ行われたか否か(または、全てのデータについてのベリファイにパスしたか否か)を確認し、所定の回数に達した(またはパスした)場合には(ステップS17、YES)、書き込み動作を終了する。達していない(またはパスしていない)場合には(ステップS17、NO)、プログラム回数iを(i+1)とする。そしてページバッファ5に改めてプログラムデータがセットされ(ステップS19)、ステップS14に戻る。   When the verify operation is completed, the control circuit 7 confirms whether or not the program operation has been performed a predetermined number of times (or whether or not all data has been verified), and has reached the predetermined number of times (or If (passed) (step S17, YES), the writing operation is terminated. If not reached (or not passed) (step S17, NO), the program count i is set to (i + 1). Then, the program data is set again in the page buffer 5 (step S19), and the process returns to step S14.

以上の書き込み動作の流れを、図6のタイミングチャートを用いて説明する。図6は、図4に示す書き込み動作における、NAND型フラッシュメモリの状態(ステート)、レディ/ビジー信号(R/B信号)、及びロウデコーダ3によって選択されたワード線の電圧を示すタイミングチャートである。なおR/B信号とは、NAND型フラッシュメモリが外部に向けて出力する信号であり、外部からの信号を受け付け可能なレディ(ready)状態には“H”レベルとされ、受け付け不能なビジー状態には“L”レベルとされる。   The flow of the above write operation will be described with reference to the timing chart of FIG. FIG. 6 is a timing chart showing the state of the NAND flash memory, the ready / busy signal (R / B signal), and the voltage of the word line selected by the row decoder 3 in the write operation shown in FIG. is there. The R / B signal is a signal output to the outside by the NAND flash memory. The ready state in which the signal from the outside can be received is set to “H” level, and the busy state in which the signal cannot be received. Is set to the “L” level.

まず外部から書き込みコマンド、アドレス、及び書き込みデータを受け付けることによって(ステップS10)、NAND型フラッシュメモリはビジー(busy)状態となる(時刻t1)。そして時刻t1〜t2の期間で、制御回路7は書き込みデータをグレイコードからバイナリコードに変換する(ステップS12)。この変換が終了すると(時刻t2)、プログラム電圧(Program pulse)Vpgm1が選択ワード線WLに印加され、時刻t2〜t3の期間にプログラムが行われる(ステップS14、S15)。   First, by receiving a write command, an address, and write data from the outside (step S10), the NAND flash memory is in a busy state (time t1). In the period from time t1 to time t2, the control circuit 7 converts the write data from gray code to binary code (step S12). When this conversion is completed (time t2), a program voltage (Program pulse) Vpgm1 is applied to the selected word line WL, and programming is performed during the period of time t2 to t3 (steps S14 and S15).

次に、時刻t3〜t4の期間にベリファイ動作が行われる(ステップS16)。ベリファイは、“1”〜“7”データのそれぞれについて行われる。ベリファイとは、前述の通りメモリセルトランジスタMTの閾値電圧が所望の値となっているかを確かめる動作である。従って、例えば“1”データが書き込まれるべきメモリセルトランジスタMTをベリファイする際には、ワード線WLにはベリファイ電圧として電圧V01(図3参照)が印加される。そして、メモリセルトランジスタMTがオンしなければ、閾値電圧Vth1はV01より大きいことになるから、ベリファイはパス(pass)する。他方、オンした場合には、閾値電圧Vth1はV01より小さいことになるから、ベリファイはミス(miss)する。ミスした場合には、再度プログラムを行って、閾値電圧Vth1をV01より高くする必要がある。“2”〜“7”データが書き込まれるべきメモリセルトランジスタMTの場合も同様であり、それぞれをベリファイする際には、ワード線には電圧V12〜V67がそれぞれ印加される。以下、“1”〜“7”データが書き込まれるべきメモリセルトランジスタMTのベリファイを、単に“1”〜“7”ベリファイと呼ぶことがある。また、ベリファイ対象となる書き込みデータをベリファイデータと呼ぶことがある。   Next, a verify operation is performed during a period from time t3 to time t4 (step S16). The verify is performed for each of “1” to “7” data. The verify is an operation for confirming whether the threshold voltage of the memory cell transistor MT is a desired value as described above. Therefore, for example, when verifying the memory cell transistor MT in which “1” data is to be written, the voltage V01 (see FIG. 3) is applied as the verify voltage to the word line WL. If the memory cell transistor MT is not turned on, the threshold voltage Vth1 is higher than V01, and therefore verification is passed. On the other hand, when the transistor is turned on, the threshold voltage Vth1 is smaller than V01, so that the verification misses. If a mistake is made, it is necessary to perform programming again to make the threshold voltage Vth1 higher than V01. The same applies to the memory cell transistors MT to which the “2” to “7” data is to be written. When verifying each, the voltages V12 to V67 are applied to the word lines. Hereinafter, verification of the memory cell transistor MT in which “1” to “7” data is to be written may be simply referred to as “1” to “7” verification. Also, write data to be verified may be referred to as verify data.

時刻t4で最初のベリファイが完了すると、次に2回目のプログラムが行われる。2回目以降のプログラムで使用されるプログラム電圧は、前回のプログラム電圧よりもΔVpgmだけ高く設定される。つまり、2回目のプログラムで使用されるプログラム電圧Vpgm2は、(Vpgm1+ΔVpgm)とされる。また、2回目以降のプログラムは、それ以前に行われたベリファイでミスしたメモリセルトランジスタMTに対してのみ行われる。2回目のプログラムが終了すると(時刻t5)、再び時刻t3〜t4と同じ要領でベリファイが行われる。   When the first verify is completed at time t4, the second program is performed next. The program voltage used in the second and subsequent programs is set higher by ΔVpgm than the previous program voltage. That is, the program voltage Vpgm2 used in the second program is (Vpgm1 + ΔVpgm). The second and subsequent programming is performed only for the memory cell transistor MT that has been missed by the verification performed before that time. When the second program ends (time t5), verification is performed again in the same manner as at times t3 to t4.

そして、所定の回数のプログラムが完了すると(または全てのメモリセルトランジスタMTが、所望の閾値電圧に到達すると)、書き込み動作は完了する(時刻t8)。従って、NAND型フラッシュメモリはレディ状態に復帰し、R/B信号は“H”レベルとなる。   When the predetermined number of times of programming is completed (or when all the memory cell transistors MT reach a desired threshold voltage), the write operation is completed (time t8). Therefore, the NAND flash memory returns to the ready state, and the R / B signal becomes “H” level.

[ベリファイ動作]
次に、図4におけるベリファイ動作の詳細について、特にベリファイ回路6の動作に着目して、図7を用いて説明する。図7は、本実施形態に係るベリファイ動作のフローチャートである。
[Verify operation]
Next, details of the verify operation in FIG. 4 will be described with reference to FIG. 7, focusing on the operation of the verify circuit 6 in particular. FIG. 7 is a flowchart of the verify operation according to the present embodiment.

まずベリファイ回路6は、ベリファイデータj=“1”として(ステップS20)、ベリファイを開始する(ステップS21)。初めに、ベリファイ対象となるメモリセルトランジスタMTからデータがビット線BLに読み出される。データはページ単位で読み出される。するとセンスアンプ10−0〜10−mが、ビット線BL0〜BLmに読み出されたデータをそれぞれセンスして増幅する(ステップS22)。   First, the verify circuit 6 sets the verify data j = “1” (step S20) and starts the verify (step S21). First, data is read from the memory cell transistor MT to be verified to the bit line BL. Data is read in page units. Then, the sense amplifiers 10-0 to 10-m sense and amplify the data read to the bit lines BL0 to BLm, respectively (step S22).

センスアンプ10におけるセンスの様子について、図8を用いて説明する。図8は、一例としてベリファイデータが“4”(j=“4”)である場合について示している。この場合、ワード線WLには電圧V34(ベリファイ電圧)が印加される。メモリセルトランジスタMTの閾値電圧がV34より高ければ、すなわち、“4”データのプログラムが完了していれば、メモリセルトランジスタMTはオフ状態となる。従って、ビット線BLの電位はプリチャージ電位のままとなり、センスアンプ10は読み出しデータとして“1”を保持する。他方、V34以下であると、メモリセルトランジスタMTはオン状態となる。従って、ビット線BLの電位はプリチャージ電位から下降し、センスアンプ10は読み出しデータとして“0”を保持する。   A state of sensing in the sense amplifier 10 will be described with reference to FIG. FIG. 8 shows a case where the verify data is “4” (j = “4”) as an example. In this case, the voltage V34 (verify voltage) is applied to the word line WL. If the threshold voltage of the memory cell transistor MT is higher than V34, that is, if the programming of “4” data is completed, the memory cell transistor MT is turned off. Accordingly, the potential of the bit line BL remains the precharge potential, and the sense amplifier 10 holds “1” as read data. On the other hand, when V34 or less, the memory cell transistor MT is turned on. Therefore, the potential of the bit line BL falls from the precharge potential, and the sense amplifier 10 holds “0” as read data.

次にセンスアンプ10は、自身が保持する読み出しデータを、対応する演算回路20の演算器21に転送する(ステップS23)。すなわち、センスアンプ10−0〜10−mの保持する読み出しデータが、演算器20−0〜20−mにそれぞれ転送される。   Next, the sense amplifier 10 transfers the read data held by itself to the arithmetic unit 21 of the corresponding arithmetic circuit 20 (step S23). That is, the read data held by the sense amplifiers 10-0 to 10-m are transferred to the computing units 20-0 to 20-m, respectively.

また演算回路20内では、ベリファイデータを保持した場合にその値が“1”となるラッチ回路内のデータが、演算器21に転送される(ステップS24)。つまり、例えばベリファイデータj=“1”である場合、図5で説明したようにb2=“1”、b3=“1”である。つまり、第2ラッチ回路23と第3ラッチ回路24とが“1”を保持する。従って、全ての演算回路20において、第2ラッチ回路23−0〜23−m内のデータと、第3ラッチ回路24−0〜24−m内のデータとが、演算器21−0〜21−mにそれぞれ転送される。   In the arithmetic circuit 20, the data in the latch circuit whose value becomes “1” when the verification data is held is transferred to the arithmetic unit 21 (step S 24). That is, for example, when the verify data j = “1”, as described with reference to FIG. 5, b2 = “1” and b3 = “1”. That is, the second latch circuit 23 and the third latch circuit 24 hold “1”. Accordingly, in all the arithmetic circuits 20, the data in the second latch circuits 23-0 to 23-m and the data in the third latch circuits 24-0 to 24-m are converted into arithmetic units 21-0 to 21-. forwarded to m respectively.

すると、演算器21は、初期値と、転送されたデータとのAND演算を行う。ステップS25で転送されたデータと、ステップS23で転送された読み出しデータとの全てが“1”であれば、演算結果は“1”となる(ステップS26、YES)。この場合、演算器21は、当該演算器21に対応する第1〜第3ラッチ回路22〜24のうち、“0”データを保持するものに対して演算結果“1”を転送し、データを書き換える(ステップS27)。つまり、この結果、対応する第1〜第3ラッチ回路22〜24の保持するデータは、全て“1”となる。演算結果が“0”であれば(ステップS26、NO)、演算結果の転送は行わない。   Then, the arithmetic unit 21 performs an AND operation on the initial value and the transferred data. If all of the data transferred in step S25 and the read data transferred in step S23 are “1”, the calculation result is “1” (YES in step S26). In this case, the computing unit 21 transfers the computation result “1” to the one holding the “0” data among the first to third latch circuits 22 to 24 corresponding to the computing unit 21, and the data is transferred. Rewriting is performed (step S27). That is, as a result, the data held by the corresponding first to third latch circuits 22 to 24 are all “1”. If the calculation result is “0” (step S26, NO), the calculation result is not transferred.

そして制御回路7は、ベリファイデータjが“7”であれば(ステップS28、YES)、ベリファイ動作を終了する。“7”でなければ、制御回路7はj=j+1として、ステップS21に戻る(ステップS29)。   If the verify data j is “7” (YES in step S28), the control circuit 7 ends the verify operation. If not "7", the control circuit 7 sets j = j + 1 and returns to step S21 (step S29).

以上のベリファイ動作は、制御回路7内の例えばシーケンサによって実行される。すると、演算器21におけるデータの転送処理は図9に示すようなシーケンスステップによって構成される。図9は、シーケンサによるシーケンス処理を示す表である。   The above verify operation is executed by, for example, a sequencer in the control circuit 7. Then, the data transfer process in the computing unit 21 is configured by sequence steps as shown in FIG. FIG. 9 is a table showing sequence processing by the sequencer.

図示するように、シーケンスステップはステップST1〜ST7の7つのステップを有する。ステップST1は、センスアンプ10から演算器21へのデータ(読み出しデータ)転送である。ステップST2は、第2ラッチ回路23から演算器へのデータ転送である。ステップST3は、第1ラッチ回路22から演算器へのデータ転送である。ステップST4は、第3ラッチ回路24から演算器へのデータ転送である。ステップST5は、演算器21から第1ラッチ回路22へのデータ転送である。ステップST6は、演算器21から第2ラッチ回路23へのデータ転送である。ステップST7は、演算器21から第3ラッチ回路24へのデータ転送である。   As shown in the figure, the sequence step has seven steps ST1 to ST7. Step ST1 is data (read data) transfer from the sense amplifier 10 to the computing unit 21. Step ST2 is data transfer from the second latch circuit 23 to the computing unit. Step ST3 is data transfer from the first latch circuit 22 to the computing unit. Step ST4 is data transfer from the third latch circuit 24 to the arithmetic unit. Step ST <b> 5 is data transfer from the arithmetic unit 21 to the first latch circuit 22. Step ST 6 is data transfer from the computing unit 21 to the second latch circuit 23. Step ST 7 is data transfer from the computing unit 21 to the third latch circuit 24.

すると、ベリファイにパスした場合の“1”〜“7”ベリファイ時におけるシーケンスは図10のようになる。図10は、“1”〜“7”ベリファイ時に実行されるシーケンスを示す表である。   Then, the sequence at the time of “1” to “7” verification when verification is passed is as shown in FIG. FIG. 10 is a table showing a sequence executed at the time of “1” to “7” verification.

まず“1”ベリファイ時について説明する。まずステップST1が実行され、センスアンプ10から読み出しデータが演算器21へ転送される。次に、“1”ベリファイ時には、第2ラッチ回路23及び第3ラッチ回路24からデータを演算器21へ転送すべく(b2=“1”、b3=“1”なので)、ステップST2、ST4が実行される。そして、最後に演算器21の演算結果を第1ラッチ回路22へ転送すべく、ステップST5が実行される。   First, “1” verification will be described. First, step ST <b> 1 is executed, and read data is transferred from the sense amplifier 10 to the computing unit 21. Next, at the time of “1” verification, in order to transfer data from the second latch circuit 23 and the third latch circuit 24 to the arithmetic unit 21 (because b2 = “1” and b3 = “1”), steps ST2 and ST4 are performed. Executed. Finally, step ST5 is executed to transfer the calculation result of the calculator 21 to the first latch circuit 22.

次に“2”ベリファイ時について説明する。まずステップST1が実行され、センスアンプ10から読み出しデータが演算器21へ転送される。次に、“2”ベリファイ時には、第1ラッチ回路22及び第3ラッチ回路24からデータを演算器21へ転送すべく(b1=“1”、b3=“1”なので)、ステップST3、ST4が実行される。そして、最後に演算器21の演算結果を第2ラッチ回路23へ転送すべく、ステップST6が実行される。   Next, “2” verification will be described. First, step ST <b> 1 is executed, and read data is transferred from the sense amplifier 10 to the computing unit 21. Next, at the time of “2” verification, in order to transfer data from the first latch circuit 22 and the third latch circuit 24 to the computing unit 21 (because b1 = “1” and b3 = “1”), steps ST3 and ST4 are performed. Executed. Finally, step ST6 is executed to transfer the calculation result of the calculator 21 to the second latch circuit 23.

次に“3”ベリファイ時について説明する。まずステップST1が実行され、センスアンプ10から読み出しデータが演算器21へ転送される。次に、“3”ベリファイ時には、第3ラッチ回路24からデータを演算器21へ転送すべく(b3=“1”なので)、ステップST4が実行される。そして、最後に演算器21の演算結果を第1ラッチ回路22及び第2ラッチ回路23へ転送すべく、ステップST5、ST6が実行される。   Next, “3” verification will be described. First, step ST <b> 1 is executed, and read data is transferred from the sense amplifier 10 to the computing unit 21. Next, at the time of “3” verification, step ST4 is executed in order to transfer data from the third latch circuit 24 to the computing unit 21 (because b3 = “1”). Finally, steps ST5 and ST6 are executed in order to transfer the calculation result of the calculator 21 to the first latch circuit 22 and the second latch circuit 23.

次に“4”ベリファイ時について説明する。まずステップST1が実行され、センスアンプ10から読み出しデータが演算器21へ転送される。次に、“4”ベリファイ時には、第1ラッチ回路22及び第2ラッチ回路23からデータを演算器21へ転送すべく(b1=“1”、b2=“1”なので)、ステップST2、ST3が実行される。そして、最後に演算器21の演算結果を第3ラッチ回路24へ転送すべく、ステップST7が実行される。   Next, “4” verification will be described. First, step ST <b> 1 is executed, and read data is transferred from the sense amplifier 10 to the computing unit 21. Next, at the time of “4” verify, in order to transfer data from the first latch circuit 22 and the second latch circuit 23 to the computing unit 21 (because b1 = “1” and b2 = “1”), steps ST2 and ST3 are performed. Executed. Finally, step ST7 is executed to transfer the calculation result of the calculator 21 to the third latch circuit 24.

次に“5”ベリファイ時について説明する。まずステップST1が実行され、センスアンプ10から読み出しデータが演算器21へ転送される。次に、“5”ベリファイ時には、第2ラッチ回路23からデータを演算器21へ転送すべく(b2=“1”なので)、ステップST2が実行される。そして、最後に演算器21の演算結果を第1ラッチ回路22及び第3ラッチ回路24へ転送すべく、ステップST5、ST7が実行される。   Next, “5” verification will be described. First, step ST <b> 1 is executed, and read data is transferred from the sense amplifier 10 to the computing unit 21. Next, at the time of “5” verification, step ST2 is executed in order to transfer data from the second latch circuit 23 to the computing unit 21 (because b2 = “1”). Finally, steps ST5 and ST7 are executed to transfer the calculation result of the calculator 21 to the first latch circuit 22 and the third latch circuit 24.

次に“6”ベリファイ時について説明する。まずステップST1が実行され、センスアンプ10から読み出しデータが演算器21へ転送される。次に、“6”ベリファイ時には、第1ラッチ回路22からデータを演算器21へ転送すべく(b1=“1”なので)、ステップST3が実行される。そして、最後に演算器21の演算結果を第2ラッチ回路23及び第3ラッチ回路24へ転送すべく、ステップST6、ST7が実行される。   Next, “6” verification will be described. First, step ST <b> 1 is executed, and read data is transferred from the sense amplifier 10 to the computing unit 21. Next, at the time of “6” verification, step ST3 is executed in order to transfer data from the first latch circuit 22 to the computing unit 21 (because b1 = “1”). Finally, steps ST6 and ST7 are executed to transfer the calculation result of the calculator 21 to the second latch circuit 23 and the third latch circuit 24.

次に“7”ベリファイ時について説明する。まずステップST1が実行され、センスアンプ10から読み出しデータが演算器21へ転送される。次に、“7”ベリファイ時には、b1=b2=b3=“0”なので、第1〜第3ラッチ回路22〜24から演算器21へのデータ転送は行われない。そして、演算器21の演算結果を第1〜第3ラッチ回路22〜24へ転送すべく、ステップST5、ST6、ST7が実行される。   Next, “7” verification will be described. First, step ST <b> 1 is executed, and read data is transferred from the sense amplifier 10 to the computing unit 21. Next, at the time of “7” verification, since b1 = b2 = b3 = “0”, data transfer from the first to third latch circuits 22 to 24 to the calculator 21 is not performed. Then, steps ST5, ST6, and ST7 are executed in order to transfer the calculation result of the calculator 21 to the first to third latch circuits 22 to 24.

以上のように、“1”〜“7”ベリファイのいずれの場合においても、演算器21を介したデータ転送処理は4ステップとなる。   As described above, in any case of “1” to “7” verification, the data transfer process via the arithmetic unit 21 is four steps.

[ベリファイ動作の具体例]
次に、上記のベリファイ動作の具体例を、図11乃至図15を参照しつつ説明する。図11乃至図15は、演算回路20、センスアンプ10、及びメモリセルトランジスタMTの回路図である。以下では、説明の簡単化のために、ビット線がBL1〜BL3の3本である場合を例に説明する。また、ワード線WL1と、ビット線BL1〜BL3とに接続されたメモリセルトランジスタMTに対して、それぞれ“1”、“3”、“7”データを書き込む場合について説明する。また、以下のベリファイ動作の具体例の説明に限り、ワード線WL1とビット線BL1〜BL3とに接続されたメモリセルトランジスタMTを説明の便宜上、それぞれメモリセルトランジスタMT11、MT12、MT13と呼ぶことにする。
[Specific example of verify operation]
Next, a specific example of the verify operation will be described with reference to FIGS. 11 to 15 are circuit diagrams of the arithmetic circuit 20, the sense amplifier 10, and the memory cell transistor MT. In the following, a case where there are three bit lines BL1 to BL3 will be described as an example for simplification of description. A case will be described in which “1”, “3”, and “7” data are written to the memory cell transistors MT connected to the word line WL1 and the bit lines BL1 to BL3, respectively. For the sake of convenience of description, the memory cell transistors MT connected to the word line WL1 and the bit lines BL1 to BL3 will be referred to as memory cell transistors MT11, MT12, and MT13, respectively, only in the following description of the specific example of the verify operation. To do.

図11は、“1”、“3”、“7”のプログラムを行った後に、“1”ベリファイを行う際の様子を示している。   FIG. 11 shows a state in which “1” verification is performed after “1”, “3”, and “7” programs are performed.

図示するように、まず“1”ベリファイを行うにあたって、ワード線WL0に電圧V01が印加される。この際、全てのメモリセルトランジスタMT11、MT12、MT13の閾値電圧がV01より高かったとする。すると、センスアンプ10−1〜10−3の保持するデータは“1”となる。   As shown in the figure, when performing “1” verification, the voltage V01 is applied to the word line WL0. At this time, it is assumed that the threshold voltages of all the memory cell transistors MT11, MT12, and MT13 are higher than V01. Then, the data held by the sense amplifiers 10-1 to 10-3 is “1”.

また、“1”ベリファイ時、すなわち“1”プログラム時には、第1ラッチ回路22の保持すべきデータは“0”であり、第2、第3ラッチ回路23、24の保持すべきデータは“1”である。従って、演算器21−1〜21−3には、第2ラッチ回路23−1〜23−3内のデータと、第3ラッチ回路24−1〜24−4内のデータとが転送される(ステップST2、ST4)。   At the time of “1” verification, that is, at the time of “1” programming, the data to be held by the first latch circuit 22 is “0”, and the data to be held by the second and third latch circuits 23 and 24 is “1”. ". Therefore, the data in the second latch circuits 23-1 to 23-3 and the data in the third latch circuits 24-1 to 24-4 are transferred to the computing units 21-1 to 21-3 ( Steps ST2 and ST4).

すると、演算器21−1のAND演算結果は“1”となる。しかし演算器21−2のAND演算結果は、第2ラッチ回路23−2が“0”を保持するので“0”となる。同様に演算器21−3のAND演算結果も“0”となる。   Then, the AND operation result of the calculator 21-1 is “1”. However, the AND operation result of the arithmetic unit 21-2 becomes “0” because the second latch circuit 23-2 holds “0”. Similarly, the AND operation result of the calculator 21-3 is also “0”.

従って演算器21−1は、演算結果“1”を第1ラッチ回路22−1へ転送し(ステップST5)、第1ラッチ回路22−1の保持するデータは“0”から“1”へと書き換えられる。他方、演算器21−2、21−3は、演算結果の転送を行わない。よって、第1ラッチ回路22−2、22−3の保持するデータは“0”のままである。   Accordingly, the arithmetic unit 21-1 transfers the operation result “1” to the first latch circuit 22-1 (step ST5), and the data held by the first latch circuit 22-1 changes from “0” to “1”. Rewritten. On the other hand, the computing units 21-2 and 21-3 do not transfer the computation results. Therefore, the data held by the first latch circuits 22-2 and 22-3 remains “0”.

次に“3”ベリファイを行う。“3”ベリファイについて図12を用いて説明する。図12は、“3”ベリファイ時の様子を示している。   Next, “3” verification is performed. “3” verification will be described with reference to FIG. FIG. 12 shows a state at the time of “3” verification.

図示するように、まず“3”ベリファイを行うにあたって、ワード線WL0に電圧V23が印加される。この際、メモリセルトランジスタMT12、MT13の閾値電圧がV23より高かったとする。他方、メモリセルトランジスタMT11には“1”データがプログラムされているので、閾値電圧はV23よりも低い。すると、メモリセルトランジスタMT11のみがオン状態となり、センスアンプ10−1〜10−3の保持するデータは、それぞれ“0”、“1”、“1”となる。   As shown in the figure, when performing “3” verification, the voltage V23 is applied to the word line WL0. At this time, it is assumed that the threshold voltages of the memory cell transistors MT12 and MT13 are higher than V23. On the other hand, since “1” data is programmed in the memory cell transistor MT11, the threshold voltage is lower than V23. Then, only the memory cell transistor MT11 is turned on, and the data held by the sense amplifiers 10-1 to 10-3 are “0”, “1”, and “1”, respectively.

また、“3”ベリファイ時、すなわち“3”プログラム時には、第1、第2ラッチ回路22、23の保持すべきデータは“0”であり、第3ラッチ回路24の保持すべきデータは“1”である。従って、演算器21−1〜21−3には、第3ラッチ回路24−1〜24−3内のデータが転送される(ステップST4)。   At the time of “3” verification, that is, at the time of “3” programming, the data to be held by the first and second latch circuits 22 and 23 is “0”, and the data to be held by the third latch circuit 24 is “1”. ". Accordingly, the data in the third latch circuits 24-1 to 24-3 is transferred to the computing units 21-1 to 21-3 (step ST4).

すると、演算器21−1のAND演算結果は、センスアンプ10−1内のデータが“0”であるので“0”となる。また演算器21−3のAND演算結果は、第3ラッチ回路24−3内のデータが“0”であるので“0”となる。他方、演算器21−2のAND演算結果は、センスアンプ10−2内のデータと第3ラッチ回路24−2内のデータとが“1”であるので“1”となる。   Then, the AND operation result of the arithmetic unit 21-1 becomes “0” because the data in the sense amplifier 10-1 is “0”. The AND operation result of the arithmetic unit 21-3 is “0” because the data in the third latch circuit 24-3 is “0”. On the other hand, the AND operation result of the arithmetic unit 21-2 is “1” because the data in the sense amplifier 10-2 and the data in the third latch circuit 24-2 are “1”.

従って演算器21−2は、演算結果“1”を第1、第2ラッチ回路22−2、23−2へ転送し(ステップST5、ST6)、第1、第2ラッチ回路22−2、23−2の保持するデータは“0”から“1”へと書き換えられる。他方、演算器21−1、21−3は、演算結果の転送を行わない。   Accordingly, the arithmetic unit 21-2 transfers the operation result “1” to the first and second latch circuits 22-2 and 23-2 (steps ST5 and ST6), and the first and second latch circuits 22-2 and 23 are transferred. The data held in -2 is rewritten from “0” to “1”. On the other hand, the computing units 21-1 and 21-3 do not transfer the computation results.

次に“7”ベリファイを行う。“7”ベリファイについて図13を用いて説明する。図13は、“7”ベリファイ時の様子を示している。   Next, “7” verification is performed. The “7” verify will be described with reference to FIG. FIG. 13 shows a state during “7” verification.

図示するように、まず“7”ベリファイを行うにあたって、ワード線WL0に電圧V67が印加される。この際、メモリセルトランジスタMT13はプログラムが十分では無く、その閾値電圧がV67より低かったとする。メモリセルトランジスタMT11、MT12の閾値電圧は、当然、V67よりも低い。すると、全てのメモリセルトランジスタMT11〜MT13がオン状態となり、センスアンプ10−1〜10−3の保持するデータは、全て“0”となる。すなわち、ベリファイはミスとなる。   As shown in the figure, first, when performing “7” verification, the voltage V67 is applied to the word line WL0. At this time, it is assumed that the memory cell transistor MT13 is not sufficiently programmed and its threshold voltage is lower than V67. The threshold voltage of the memory cell transistors MT11 and MT12 is naturally lower than V67. Then, all the memory cell transistors MT11 to MT13 are turned on, and the data held by the sense amplifiers 10-1 to 10-3 are all “0”. That is, the verify is a mistake.

また、“7”ベリファイ時、すなわち“7”プログラム時には、第1〜第3ラッチ回路22〜24の保持すべきデータは全て“0”である。従って、第1〜第3ラッチ回路22〜24から演算器21へのデータ転送は行われない。   At the time of “7” verification, that is, at the time of “7” programming, all the data to be held by the first to third latch circuits 22 to 24 is “0”. Therefore, data transfer from the first to third latch circuits 22 to 24 to the computing unit 21 is not performed.

すると、演算器21−1〜21−3のAND演算結果は、全て“0”となる。従って、演算器21から第1〜第3ラッチ回路22〜24へのデータ転送も行われない。   Then, the AND operation results of the computing units 21-1 to 21-3 are all “0”. Accordingly, data transfer from the arithmetic unit 21 to the first to third latch circuits 22 to 24 is not performed.

以上によって、最初のベリファイ動作が完了する。上記動作が、例えば図6における時刻t3〜t4の期間に相当する。この時点では、“7”プログラムが完了していないので、再度、プログラムを行う。この再度のプログラムは、図6における時刻t4〜t5の期間に相当する。   Thus, the first verify operation is completed. The above operation corresponds to, for example, the period from time t3 to t4 in FIG. At this point, since the “7” program has not been completed, the program is executed again. This second program corresponds to the period from time t4 to time t5 in FIG.

図14は、2回目のプログラム時の様子を示している。本プログラムでは、プログラムが完了していない“7”データについてのみプログラムが行われる。プログラムデータは、第1〜第3ラッチ回路22〜24の保持するデータのAND演算結果により与えられ、そのAND演算は演算器21によって行われる。そして演算器21における演算結果がセンスアンプ10に与えられる。センスアンプ10は、プログラムデータが“1”であればプログラムは不要と判断して、対応するビット線BLに書き込み禁止電圧VDDを印加する。他方、プログラムデータが“0”であればプログラムが必要と判断して、例えば0Vを対応するビット線BLに印加する。   FIG. 14 shows a state during the second programming. In this program, the program is performed only for “7” data that has not been completed. Program data is given by an AND operation result of data held by the first to third latch circuits 22 to 24, and the AND operation is performed by the arithmetic unit 21. Then, the calculation result in the calculator 21 is given to the sense amplifier 10. If the program data is “1”, the sense amplifier 10 determines that the program is unnecessary, and applies the write inhibit voltage VDD to the corresponding bit line BL. On the other hand, if the program data is “0”, it is determined that the program is necessary and, for example, 0 V is applied to the corresponding bit line BL.

図14の場合、演算器21−1、21−2のAND演算結果は“1”である。これは、対応する第1〜第3ラッチ回路22〜24内のデータが全て“1”だからである。従って、センスアンプ10−1、10−2はそれぞれ、対応するビット線BL1、BL2に書き込み禁止電圧VDDを印加する。他方、演算器21−3のAND演算結果は“0”である。従って、センスアンプ10−3は、対応するビット線BL3に0Vを印加する。また、ロウデコーダ3はワード線WL1にプログラム電圧Vpgm2を印加する。その結果、メモリセルトランジスタMT11、MT12に対してプログラムは行われず、メモリセルトランジスタMT13に対してのみプログラムが行われる。つまり、“7”データのプログラムが行われる。   In the case of FIG. 14, the AND operation result of the calculators 21-1 and 21-2 is “1”. This is because all the data in the corresponding first to third latch circuits 22 to 24 are “1”. Accordingly, the sense amplifiers 10-1 and 10-2 apply the write inhibit voltage VDD to the corresponding bit lines BL1 and BL2, respectively. On the other hand, the AND operation result of the calculator 21-3 is “0”. Accordingly, the sense amplifier 10-3 applies 0 V to the corresponding bit line BL3. The row decoder 3 applies a program voltage Vpgm2 to the word line WL1. As a result, the memory cell transistors MT11 and MT12 are not programmed, and only the memory cell transistor MT13 is programmed. That is, “7” data is programmed.

次に、図14で行ったプログラムに対するベリファイが行われる。本ベリファイは、図6における時刻t5〜t6に相当する。“1”ベリファイと“3”ベリファイについては、演算器21−1〜21−3の演算結果が全て“0”となるので、説明を省略する。従って、“7”ベリファイについてのみ図15を用いて説明する。また、図14に示すプログラムにより、メモリセルトランジスタMT13の閾値電圧はV67よりも高くなったとする。   Next, verification for the program performed in FIG. 14 is performed. This verification corresponds to times t5 to t6 in FIG. Regarding “1” verification and “3” verification, the calculation results of the calculators 21-1 to 21-3 are all “0”, and thus description thereof is omitted. Therefore, only “7” verify will be described with reference to FIG. Further, it is assumed that the threshold voltage of the memory cell transistor MT13 is higher than V67 by the program shown in FIG.

図示するように、まず“7”ベリファイを行うにあたって、ワード線WL0に電圧V01が印加される。すると、メモリセルトランジスタMT13はオフ状態となる。従って、センスアンプ10−1〜10−3の保持するデータは、それぞれ“0”、“0”、“1”となる。   As shown in the figure, when performing “7” verification, the voltage V01 is applied to the word line WL0. Then, the memory cell transistor MT13 is turned off. Therefore, the data held by the sense amplifiers 10-1 to 10-3 are “0”, “0”, and “1”, respectively.

すると、演算器21−3のAND演算結果は“1”となる。よって演算器21−3は、演算結果“1”を第1〜第3ラッチ回路22−3〜24−3へ転送し(ステップST5〜ST7)、第1〜第3ラッチ回路22−3〜24−3の保持するデータは“0”から“1”へと書き換えられる。   Then, the AND operation result of the calculator 21-3 is “1”. Therefore, the computing unit 21-3 transfers the computation result “1” to the first to third latch circuits 22-3 to 24-3 (steps ST5 to ST7), and the first to third latch circuits 22-3 to 24-24. The data held in -3 is rewritten from “0” to “1”.

以上の結果、第1ラッチ回路22−1〜22−3、第2ラッチ回路23−1〜23−3、及び第3ラッチ回路24−1〜24−3内のデータが全て“1”となる。すなわち、メモリセルトランジスタMT11〜MT13の全てが、所望の閾値電圧に達したこととなり、以降のプログラムは不要となる。よって、書き込み動作が完了する。   As a result, the data in the first latch circuits 22-1 to 22-3, the second latch circuits 23-1 to 23-3, and the third latch circuits 24-1 to 24-3 are all “1”. . That is, all of the memory cell transistors MT11 to MT13 have reached a desired threshold voltage, and subsequent programming is unnecessary. Thus, the write operation is completed.

上記のように、この発明の第1の実施形態に係る半導体記憶装置であると、下記(1)の効果が得られる。
(1)ベリファイ動作を高速化出来る。
前述の通り、外部からNAND型フラッシュメモリへ入力される書き込みデータは、グレイコードに記述される。グレイコードの例を図16に示す。図16は、書き込みデータ“0”〜“7”に対応するグレイコードを示す表であり、書き込みデータの各々について、第1〜第3ラッチ回路22〜24に保持されるデータを示している。
As described above, the semiconductor memory device according to the first embodiment of the present invention has the following effect (1).
(1) The verify operation can be speeded up.
As described above, the write data input from the outside to the NAND flash memory is described in the Gray code. An example of a gray code is shown in FIG. FIG. 16 is a table showing gray codes corresponding to write data “0” to “7”, and shows data held in the first to third latch circuits 22 to 24 for each of the write data.

図示するようにグレイコードは、隣接するデータの関係では最大で1ビットしか異ならない。このようなグレイコードを用いてベリファイを行おうとすると、第1〜第3ラッチ回路22〜24全てのデータを演算器21に転送する必要があった。なぜなら、グレイコードの3ビット全てのビットを転送しなければ、他の書き込みデータとの区別が出来ないからである。例えば“4”ベリファイ時に、第1ラッチ回路22内の“1”データのみを読み出したと仮定すると、“0”〜“3”データ、“5”データ、及び“6”データとは区別がつく。なぜなら、“4”ベリファイ時には、“0”〜“3”データを保持するメモリセルトランジスタMTはオン状態となるはずであるし、また“5”データと“6”データにおいて第1ラッチ回路22に保持されるデータは“0”だからである。しかし、“7”データにおいて第1ラッチ回路22に保持されるデータは“1”である。従って、“7”データとの区別がつかない。   As shown in the figure, the gray code differs only by 1 bit at maximum in relation to adjacent data. When verifying using such a gray code, it is necessary to transfer all the data of the first to third latch circuits 22 to 24 to the arithmetic unit 21. This is because it cannot be distinguished from other write data unless all three bits of the Gray code are transferred. For example, assuming that only “1” data in the first latch circuit 22 is read at the time of “4” verification, it can be distinguished from “0” to “3” data, “5” data, and “6” data. This is because at the time of “4” verification, the memory cell transistor MT holding “0” to “3” data should be turned on, and the “5” data and “6” data are supplied to the first latch circuit 22. This is because the retained data is “0”. However, the data held in the first latch circuit 22 in the “7” data is “1”. Therefore, it cannot be distinguished from “7” data.

そこで、グレイコードを用いる場合には3ビット全てのデータを使用する必要があるが、この場合にはベリファイ動作に非常に時間がかかるという問題があった。つまり、“0”〜“7”データのいずれのデータをベリファイするにしても、図9に示したステップST2〜ST4の処理が必ず必要となるからである。例えば、図16に示すグレイコードを用いた場合に“5”データをベリファイしようとすると、ステップST1〜ST7の全てのステップが必要となり、非常に長時間かかる。   Therefore, when using the Gray code, it is necessary to use all three bits of data. In this case, however, there is a problem that it takes a very long time for the verify operation. That is, even if any of the data “0” to “7” is verified, the processing of steps ST2 to ST4 shown in FIG. 9 is necessarily required. For example, when the “5” data is to be verified when the gray code shown in FIG. 16 is used, all the steps ST1 to ST7 are required, which takes a very long time.

また、“1”ベリファイ時には、演算器21からのデータ転送は第1ラッチ回路22に対してのみ行えばよいので、必要なステップはステップST1〜ST5の5ステップである。つまり、演算器を介したデータ転送の回数が、ベリファイデータ毎に異なる。このようにデータに対する依存性は、ベリファイ動作のシーケンス設計を行う上で、動作時間短縮に不都合を生じさせる原因となる。またシーケンスが複雑となるため、回路設計や回路検証を行う上で、困難を生じさせる。   Further, at the time of “1” verification, data transfer from the arithmetic unit 21 need only be performed with respect to the first latch circuit 22, and therefore, the necessary steps are five steps ST1 to ST5. That is, the number of times of data transfer via the arithmetic unit differs for each verify data. As described above, the dependency on the data causes inconvenience in shortening the operation time in the sequence design of the verify operation. In addition, the sequence becomes complicated, which causes difficulties in circuit design and circuit verification.

しかし本実施形態に係る構成であると、制御回路7がグレイコードをバイナリコードに変換している。従って、第1〜第3ラッチ回路22〜24から演算器21へのデータ転送は、データ“1”であるもので良く、これによって書き込みデータを判別が可能となる。この点について、図17を用いて説明する。図17は、書き込みデータが“0”〜“7”である場合において、第1〜第3ラッチ回路22〜24に保持されるデータを示す表であり、併せて各書き込みデータの閾値分布を示している。   However, in the configuration according to the present embodiment, the control circuit 7 converts the gray code into a binary code. Therefore, the data transfer from the first to third latch circuits 22 to 24 to the computing unit 21 may be data “1”, and thus the write data can be discriminated. This point will be described with reference to FIG. FIG. 17 is a table showing data held in the first to third latch circuits 22 to 24 when the write data is “0” to “7”, and also shows the threshold distribution of each write data. ing.

図示するように、例えば“5”ベリファイを行う場合、“0”〜“4”データを保持するメモリセルトランジスタMTはオン状態となるので、これらの書き込みデータとの区別はつく。これはグレイコードを用いた場合と同じである。他方、“6”、“7”データとは、“5”データのバイナリコードが“1”であるビットb2により区別をすることが出来る。なぜなら、“5”ベリファイ時に“1”を保持するラッチ回路は第2ラッチ回路23であるが、“6”、“7”データを保持する第2ラッチ回路23内のデータは“0”だからである。すなわち、“j”データベリファイ(jは“1”〜“6”)時において、“j”データと“j−1”以下のデータとは、センスアンプ10内のデータにより区別可能である。また、“j”データと“j+1”以上のデータとは、“j”データプログラム時に“1”を保持する第1〜第3ラッチ回路22〜24のいずれかから転送されるデータにより区別可能である。   As shown in the figure, for example, when “5” verification is performed, the memory cell transistor MT holding “0” to “4” data is turned on, so that it can be distinguished from these write data. This is the same as when the Gray code is used. On the other hand, “6” and “7” data can be distinguished by the bit b2 in which the binary code of “5” data is “1”. This is because the latch circuit that holds “1” at the time of “5” verification is the second latch circuit 23, but the data in the second latch circuit 23 that holds “6” and “7” data is “0”. is there. That is, in the “j” data verification (j is “1” to “6”), the “j” data and the data below “j−1” can be distinguished by the data in the sense amplifier 10. Further, “j” data and data of “j + 1” or more can be distinguished by data transferred from any of the first to third latch circuits 22 to 24 holding “1” at the time of “j” data programming. is there.

従って、8値NAND型フラッシュメモリの場合には、図10を用いて説明したように、全てのベリファイデータにつき演算器21を介したデータ転送は4回となり、データ転送回数を短く出来るだけでなく、データ転送回数をデータ間で均一に出来る。特に、多値NAND型フラッシュメモリにおいて、メモリセルトランジスタMTの記憶するビット数が多いほど、演算器21を介したデータ転送回数が増加するため、本効果が顕著となる。   Therefore, in the case of an 8-level NAND flash memory, as described with reference to FIG. 10, the data transfer through the arithmetic unit 21 is performed four times for all the verify data, and not only the number of data transfers can be shortened. The number of data transfers can be made uniform between data. In particular, in a multi-level NAND flash memory, the larger the number of bits stored in the memory cell transistor MT, the more the number of data transfers through the arithmetic unit 21 increases.

[第2の実施形態]
次に、この発明の第2の実施形態に係る半導体記憶装置について説明する。本実施形態は、上記第1の実施形態を16値(16-levels)NAND型フラッシュメモリに適用したものである。本実施形態に係るNAND型フラッシュメモリの基本的な構成と動作は、上記第1の実施形態と同様であるので、以下では第1の実施形態と異なる点についてのみ説明する。
[Second Embodiment]
Next explained is a semiconductor memory device according to the second embodiment of the invention. In this embodiment, the first embodiment is applied to a 16-level NAND flash memory. Since the basic configuration and operation of the NAND flash memory according to this embodiment are the same as those of the first embodiment, only differences from the first embodiment will be described below.

本実施形態に係るNAND型フラッシュメモリ1のブロック構成は図1と同様である。図18は、メモリセルトランジスタMTの閾値分布を示すグラフであり、横軸に閾値電圧Vthをとり、縦軸にメモリセルトランジスタMTの存在確率を示したものである。   The block configuration of the NAND flash memory 1 according to this embodiment is the same as that shown in FIG. FIG. 18 is a graph showing the threshold distribution of the memory cell transistor MT. The horizontal axis indicates the threshold voltage Vth, and the vertical axis indicates the existence probability of the memory cell transistor MT.

図示するように、各々のメモリセルトランジスタMTは16種のデータ(4ビットデータ)を保持出来る。すなわちメモリセルトランジスタMTは、閾値電圧Vthの低い順に“0”、“1”、“2”、“3”、…“9”、“A”、“B”、…“F”の16種のデータを保持出来る。すなわち、メモリセルトランジスタMTにおける“0”データの閾値電圧Vth0は、Vth0<V01である。“1”データの閾値電圧Vth1は、V01<Vth1<V12である。“2”データの閾値電圧Vth2は、V12<Vth2<V23である。“3”データの閾値電圧Vth3は、V23<Vth3<V34である。“4”データの閾値電圧Vth4は、V34<Vth4<V45である。“5”データの閾値電圧Vth5は、V45<Vth5<V56である。“6”データの閾値電圧Vth6は、V56<Vth6<V67である。“7”データの閾値電圧Vth7は、V67<Vth7<V78である。“8”データの閾値電圧Vth8は、V78<Vth8<V89である。“9”データの閾値電圧Vth9は、V89<Vth9<V9Aである。“A”データの閾値電圧VthAは、V9A<VthA<VABである。“B”データの閾値電圧VthBは、VAB<VthB<VBCである。“C”データの閾値電圧VthCは、VBC<VthC<VCDである。“D”データの閾値電圧VthDは、VCD<VthD<VDEである。“E”データの閾値電圧VthEは、VDE<VthE<VEFである。“F”データの閾値電圧VthFは、VEF<VthFである。   As shown in the figure, each memory cell transistor MT can hold 16 types of data (4-bit data). That is, the memory cell transistor MT has 16 types of “0”, “1”, “2”, “3”,... “9”, “A”, “B”,. Data can be retained. That is, the threshold voltage Vth0 of “0” data in the memory cell transistor MT is Vth0 <V01. The threshold voltage Vth1 of “1” data is V01 <Vth1 <V12. The threshold voltage Vth2 of “2” data is V12 <Vth2 <V23. The threshold voltage Vth3 of “3” data is V23 <Vth3 <V34. The threshold voltage Vth4 of the “4” data is V34 <Vth4 <V45. The threshold voltage Vth5 of “5” data is V45 <Vth5 <V56. The threshold voltage Vth6 of “6” data is V56 <Vth6 <V67. The threshold voltage Vth7 of the “7” data is V67 <Vth7 <V78. The threshold voltage Vth8 of the “8” data is V78 <Vth8 <V89. The threshold voltage Vth9 of the “9” data is V89 <Vth9 <V9A. The threshold voltage VthA of the “A” data is V9A <VthA <VAB. The threshold voltage VthB of “B” data is VAB <VthB <VBC. The threshold voltage VthC of “C” data is VBC <VthC <VCD. The threshold voltage VthD of “D” data is VCD <VthD <VDE. The threshold voltage VthE of “E” data is VDE <VthE <VEF. The threshold voltage VthF of “F” data is VEF <VthF.

次に図19を用いてベリファイ回路6内の演算回路20−0〜20−mの構成について説明する。図19は、メモリセルアレイ2、ロウデコーダ3、ページバッファ5、及びベリファイ回路6の詳細を示すブロック図である。なお、メモリセルアレイ2、ロウデコーダ3、及びページバッファ5の構成及び動作は第1の実施形態と同様であるので説明は省略する。   Next, the configuration of the arithmetic circuits 20-0 to 20-m in the verify circuit 6 will be described with reference to FIG. FIG. 19 is a block diagram showing details of the memory cell array 2, row decoder 3, page buffer 5, and verify circuit 6. Note that the configurations and operations of the memory cell array 2, the row decoder 3, and the page buffer 5 are the same as those in the first embodiment, and a description thereof will be omitted.

図示するように演算回路20−0〜20−mの各々は、演算器21−0〜21−m、第1ラッチ回路22−0〜22−m、第2ラッチ回路23−0〜23−m、第3ラッチ回路24−0〜24−m、第4ラッチ回路26−0〜26−m、及びMOSトランジスタ25−0〜25−mをそれぞれ備えている。以下、演算回路20−0〜20−mを単に演算回路20、演算器21−0〜21−mを単に演算器21、第1ラッチ回路22−0〜22−mを単に第1ラッチ回路22、第2ラッチ回路23−0〜23−mを単に第2ラッチ回路23、第3ラッチ回路24−0〜24−mを単に第3ラッチ回路24、第4ラッチ回路26−0〜26−mを単に第4ラッチ回路26、及びMOSトランジスタ25−0〜25−mを単にMOSトランジスタ25と呼ぶことがある。   As shown in the figure, each of the arithmetic circuits 20-0 to 20-m includes arithmetic units 21-0 to 21-m, first latch circuits 22-0 to 22-m, and second latch circuits 23-0 to 23-m. , Third latch circuits 24-0 to 24-m, fourth latch circuits 26-0 to 26-m, and MOS transistors 25-0 to 25-m, respectively. Hereinafter, the arithmetic circuits 20-0 to 20-m are simply the arithmetic circuit 20, the arithmetic units 21-0 to 21-m are simply the arithmetic unit 21, and the first latch circuits 22-0 to 22-m are simply the first latch circuit 22. The second latch circuits 23-0 to 23-m are simply the second latch circuit 23, the third latch circuits 24-0 to 24-m are simply the third latch circuit 24, and the fourth latch circuits 26-0 to 26-m. Is simply referred to as the fourth latch circuit 26, and the MOS transistors 25-0 to 25-m may be simply referred to as the MOS transistor 25.

第1〜第4ラッチ回路22〜24、26の各々は、データの書き込みの際に、対応するビット線BLに接続されたメモリセルトランジスタMTに書き込むべき4ビットデータの各ビットを保持する。すなわち、第1の実施形態と異なる点は、本実施形態ではメモリセルトランジスタMTが4ビットデータを保持するので、ラッチ回路はビット線あたり4個必要となる。そこで、第1の実施形態で説明した図2の構成において、更に第4ラッチ回路26を新たに追加している。そして、制御回路7または入出力バッファ9から転送されるデータはまず第4ラッチ回路26に保持され、第4ラッチ回路26から第1〜第3ラッチ回路22〜24に転送される。   Each of the first to fourth latch circuits 22 to 24 and 26 holds each bit of 4-bit data to be written to the memory cell transistor MT connected to the corresponding bit line BL when data is written. That is, the difference from the first embodiment is that the memory cell transistor MT holds 4-bit data in this embodiment, so that four latch circuits are required per bit line. Therefore, a fourth latch circuit 26 is newly added to the configuration of FIG. 2 described in the first embodiment. The data transferred from the control circuit 7 or the input / output buffer 9 is first held in the fourth latch circuit 26 and transferred from the fourth latch circuit 26 to the first to third latch circuits 22-24.

次に、上記構成のNAND型フラッシュメモリの動作について説明する。本実施形態に係るフラッシュメモリの動作は、上記第1の実施形態で説明した図4、図6、及び図7と基本的には同じであり、異なる点は、ベリファイを“1”〜“F”データにつき行う点と、第4ラッチ回路26と演算器21との間でのデータ転送がある点のみである。   Next, the operation of the NAND flash memory having the above configuration will be described. The operation of the flash memory according to the present embodiment is basically the same as that shown in FIGS. 4, 6, and 7 described in the first embodiment, except that the verify is performed from “1” to “F”. “Only the point that is performed for data and the point that there is data transfer between the fourth latch circuit 26 and the arithmetic unit 21.

ステップS12においては、第1の実施形態と同様に、制御回路7は演算回路20−1〜20−mの各々に保持される書き込みデータを、グレイコードからバイナリコードへと変換する。すなわち、第1〜第4ラッチ回路の各々に保持されるデータを組み合わせて得られる4ビットのコードが、書き込みデータ“0”〜“F”の順に昇順または降順の値となるように変換する。本実施形態では、第1ラッチ回路22に保持されるビットを第1(最下位)ビット、第2ラッチ回路23に保持されるビットを第2ビット、第3ラッチ回路23に保持されるビットを第3ビット、第4ラッチ回路26に保持されるビットを第4(最上位)ビットとした場合に、これらによって得られる4ビットのコードが書き込みデータ“0”〜“7”の順に降順となるように変換される。   In step S12, as in the first embodiment, the control circuit 7 converts the write data held in each of the arithmetic circuits 20-1 to 20-m from gray code to binary code. That is, the 4-bit code obtained by combining the data held in each of the first to fourth latch circuits is converted so as to be in the ascending or descending order of the write data “0” to “F”. In this embodiment, the bit held in the first latch circuit 22 is the first (least significant) bit, the bit held in the second latch circuit 23 is the second bit, and the bit held in the third latch circuit 23 is When the third bit and the bit held in the fourth latch circuit 26 are the fourth (most significant) bit, the 4-bit code obtained by these is in descending order of the write data “0” to “7”. Is converted as follows.

制御回路7によって得られるバイナリコードを図20に示す。図20は、書き込みデータと、第1〜第4ラッチ回路22〜24、26に保持されるデータとの関係を示す表である。第1ラッチ回路22に保持されるビットを“b1”、第2ラッチ回路23に保持されるビットを“b2”、第3ラッチ回路24に保持されるビットを“b3”、第4ラッチ回路26に保持されるビットを“b4”とすると、得られるコードは(b4、b3、b2、b1)である。書き込みデータが“0”であった場合には、b1=“1”、b2=“1”、b3=“1”、b4=“1”とされ、得られるコードは(1111)である。また書き込みデータが“1”であった場合には、得られるコードは(1110)である。以下、書き込みデータが“2”〜“F”の場合には、得られるコードは(1101)〜(0000)となる。このように、制御回路7はラッチ回路22〜24、26の保持するデータの組み合わせを、グレイコードから図20に示すようなバイナリコードに変換する。   A binary code obtained by the control circuit 7 is shown in FIG. FIG. 20 is a table showing a relationship between write data and data held in the first to fourth latch circuits 22 to 24 and 26. The bit held in the first latch circuit 22 is “b1”, the bit held in the second latch circuit 23 is “b2”, the bit held in the third latch circuit 24 is “b3”, and the fourth latch circuit 26 If the bit held in “b4” is “b4”, the obtained code is (b4, b3, b2, b1). When the write data is “0”, b1 = “1”, b2 = “1”, b3 = “1”, b4 = “1”, and the obtained code is (1111). When the write data is “1”, the obtained code is (1110). Hereinafter, when the write data is “2” to “F”, the obtained codes are (1101) to (0000). In this way, the control circuit 7 converts the combination of data held by the latch circuits 22 to 24 and 26 from a gray code to a binary code as shown in FIG.

次に、ベリファイ動作時において制御回路7で実行されるシーケンスステップについて図21を用いて説明する。図21は、シーケンサによるシーケンス処理を示す表である。   Next, sequence steps executed by the control circuit 7 during the verify operation will be described with reference to FIG. FIG. 21 is a table showing sequence processing by the sequencer.

図示するように、シーケンスステップはステップST1〜ST9の9つのステップを有する。ステップST1は、センスアンプ10から演算器21へのデータ(読み出しデータ)転送である。ステップST2は、第1ラッチ回路22から演算器21へのデータ転送である。ステップST3は、第2ラッチ回路23から演算器21へのデータ転送である。ステップST4は、第3ラッチ回路24から演算器21へのデータ転送である。ステップST5は、第4ラッチ回路26から演算器21へのデータ転送である。ステップST6は、演算器21から第1ラッチ回路22へのデータ転送である。ステップST7は、演算器21から第2ラッチ回路23へのデータ転送である。ステップST8は、演算器21から第3ラッチ回路24へのデータ転送である。ステップST9は、演算器21から第4ラッチ回路26へのデータ転送である。すなわち、第1の実施形態で説明した図9において、第4ラッチ回路26と演算器21との間のデータ転送(ステップST5、ST9)が新たに追加される。   As shown in the figure, the sequence step has nine steps ST1 to ST9. Step ST1 is data (read data) transfer from the sense amplifier 10 to the computing unit 21. Step ST <b> 2 is data transfer from the first latch circuit 22 to the computing unit 21. Step ST3 is data transfer from the second latch circuit 23 to the computing unit 21. Step ST4 is data transfer from the third latch circuit 24 to the computing unit 21. Step ST5 is data transfer from the fourth latch circuit 26 to the computing unit 21. Step ST 6 is data transfer from the computing unit 21 to the first latch circuit 22. Step ST7 is data transfer from the arithmetic unit 21 to the second latch circuit 23. Step ST8 is data transfer from the arithmetic unit 21 to the third latch circuit 24. Step ST9 is data transfer from the arithmetic unit 21 to the fourth latch circuit 26. That is, in FIG. 9 described in the first embodiment, data transfer (steps ST5 and ST9) between the fourth latch circuit 26 and the arithmetic unit 21 is newly added.

すると、ベリファイにパスした場合の“1”〜“F”ベリファイ時におけるシーケンスは図22のようになる。図22は、“1”〜“F”ベリファイ時に実行されるシーケンスを示す表である。   Then, the sequence at the time of “1” to “F” verification when the verification is passed is as shown in FIG. FIG. 22 is a table showing a sequence executed at the time of “1” to “F” verification.

例えば“1”ベリファイ時には、まずステップST1が実行され、センスアンプ10から読み出しデータが演算器21へ転送される。次に、“1”ベリファイ時には、第2〜第4ラッチ回路23、24、26に“1”が保持されるので、ステップST3〜ST5が実行される。その後、ベリファイにパスすると、第1ラッチ回路22のデータを“0”から“1”にセットすべく、ステップST6が実行される。以下、“2”〜“F”ベリファイ時も同様である。   For example, at the time of “1” verification, step ST1 is executed first, and read data is transferred from the sense amplifier 10 to the computing unit 21. Next, at the time of “1” verification, since “1” is held in the second to fourth latch circuits 23, 24, and 26, steps ST3 to ST5 are executed. Thereafter, if the verification is passed, step ST6 is executed to set the data of the first latch circuit 22 from “0” to “1”. Hereinafter, the same applies to “2” to “F” verification.

以上のように、上記第1の実施形態は16値NAND型フラッシュメモリにも適用出来、第1の実施形態で説明した(1)の効果が得られる。   As described above, the first embodiment can be applied to a 16-value NAND flash memory, and the effect (1) described in the first embodiment can be obtained.

[第3の実施形態]
次に、この発明の第3の実施形態に係る半導体記憶装置について説明する。本実施形態は、上記第1の実施形態において、プログラム動作を第1プログラムと第2プログラムの二段階に分けて行うものである。従って、ベリファイ動作も第1ベリファイと第2ベリファイに分けて行われる。以下では、上記第1の実施形態と異なる点についてのみ説明する。
[Third Embodiment]
Next explained is a semiconductor memory device according to the third embodiment of the invention. In the present embodiment, the program operation is performed in two stages of the first program and the second program in the first embodiment. Therefore, the verify operation is also performed separately for the first verify and the second verify. Hereinafter, only differences from the first embodiment will be described.

まず図23を用いて、本実施形態に係る8値NAND型フラッシュメモリにおける書き込み動作の大まかな概念について説明する。図23は、第1プログラム及び第2プログラムを行った際における、メモリセルトランジスタMTの閾値電圧の変化を示すグラフであり、一例として“4”データを書き込む場合について説明する。   First, a rough concept of the write operation in the 8-level NAND flash memory according to the present embodiment will be described with reference to FIG. FIG. 23 is a graph showing changes in the threshold voltage of the memory cell transistor MT when the first program and the second program are performed. As an example, a case where “4” data is written will be described.

まず、第1プログラムを繰り返すことにより、閾値電圧が消去レベルから一定レベルまで上昇される。第1プログラムは、“4”データのベリファイレベルであるV34よりも低い第1ベリファイレベルV34’を超えるまで行われる。また、1回の第1プログラムによる閾値電圧の変動量ΔVth1は比較的大きな値である。第1プログラムを行う際には、第1、第2の実施形態と同様に、ワード線には書き込み電圧Vpgmが印加され、ビット線BLには電圧V1(例えば0V)が印加される。   First, by repeating the first program, the threshold voltage is raised from the erase level to a certain level. The first program is executed until the first verify level V34 'that is lower than V34, which is the verify level of the "4" data, is exceeded. Further, the threshold voltage fluctuation amount ΔVth1 by one first program is a relatively large value. When performing the first program, as in the first and second embodiments, the write voltage Vpgm is applied to the word line, and the voltage V1 (for example, 0 V) is applied to the bit line BL.

メモリセルトランジスタMTが第1ベリファイにパスすると、次に第2プログラムが行われる。そして、第2プログラムを繰り返すことにより、閾値電圧が“4”データのベリファイレベルV34(以下、本実施形態では第2ベリファイレベルと呼ぶ)を超えるまで上昇される。また1回の第2プログラムによる閾値電圧の変動量ΔVth2は、ΔVth1よりも小さい値とされる。小さい値とするために、第2プログラムを行う際には、ビット線BLには0Vより高い電圧V2(>V1、例えば0.4V程度)が印加される。   When the memory cell transistor MT passes the first verify, the second program is performed next. By repeating the second program, the threshold voltage is raised until it exceeds the verify level V34 of the “4” data (hereinafter referred to as the second verify level in the present embodiment). Further, the threshold voltage fluctuation amount ΔVth2 by one second program is set to a value smaller than ΔVth1. In order to reduce the value, a voltage V2 (> V1, for example, about 0.4V) higher than 0V is applied to the bit line BL when the second program is performed.

つまり、本実施形態に係る書き込み動作は、まず粗くプログラムを行い、閾値電圧が所定の電圧に近づいた時点で、細かくプログラムを行うものである。上記のプログラムの流れをフローチャートとして示した図が図24である。図示するように、第1ベリファイにミスした場合には(ステップS30、NO)、第1プログラムを行う(ステップS31)。第1プログラムでは、ビット線BLの電圧はV1とされる(ステップS32)。   That is, in the write operation according to the present embodiment, the program is first roughly performed, and the program is finely programmed when the threshold voltage approaches a predetermined voltage. FIG. 24 is a flowchart showing the flow of the above program. As shown in the drawing, when the first verify is missed (step S30, NO), the first program is executed (step S31). In the first program, the voltage of the bit line BL is set to V1 (step S32).

第1ベリファイにパスして(ステップS30、YES)、第2ベリファイにミスした場合には(ステップS33、NO)、第2プログラムを行う(ステップS34)。第2プログラムでは、ビット線BLの電圧はV2(>V1)とされる(ステップS35)。   If the first verification is passed (step S30, YES) and the second verification is missed (step S33, NO), the second program is executed (step S34). In the second program, the voltage of the bit line BL is set to V2 (> V1) (step S35).

第2ベリファイにパスした場合には(ステップS33、YES)、第2プログラムは禁止される(ステップS36)。従って、ビット線BLには書き込み禁止電圧(VDD>V2)が印加される(ステップS37)。そして、全てのメモリセルトランジスタMTについて第2ベリファイにパスすると、書き込み動作が完了する。   If the second verification is passed (step S33, YES), the second program is prohibited (step S36). Therefore, the write inhibit voltage (VDD> V2) is applied to the bit line BL (step S37). When all the memory cell transistors MT pass the second verify, the write operation is completed.

次に、図25を用いてベリファイ回路6内の演算回路20−0〜20−mの構成について説明する。図25は、メモリセルアレイ2、ロウデコーダ3、ページバッファ5、及びベリファイ回路6の詳細を示すブロック図である。なお、メモリセルアレイ2、ロウデコーダ3、及びページバッファ5の構成及び動作は第1の実施形態と同様であるので説明は省略する。   Next, the configuration of the arithmetic circuits 20-0 to 20-m in the verify circuit 6 will be described with reference to FIG. FIG. 25 is a block diagram showing details of the memory cell array 2, row decoder 3, page buffer 5, and verify circuit 6. Note that the configurations and operations of the memory cell array 2, the row decoder 3, and the page buffer 5 are the same as those in the first embodiment, and a description thereof will be omitted.

図示するように演算回路20−0〜20−mの各々は、第1の実施形態において説明した図2の構成において、更に第5ラッチ回路27−0〜27−mを備えている。以下、第5ラッチ回路27−0〜27−mを単に第5ラッチ回路27と呼ぶことがある。第5ラッチ回路は初期値として“0”データを保持し、第1ベリファイにパスした際に、演算器21によって“1”が書き込まれる。すなわち、第5ラッチ回路は第2プログラムを行うか否かを示す情報を保持する。   As shown in the drawing, each of the arithmetic circuits 20-0 to 20-m is further provided with fifth latch circuits 27-0 to 27-m in the configuration of FIG. 2 described in the first embodiment. Hereinafter, the fifth latch circuits 27-0 to 27-m may be simply referred to as the fifth latch circuit 27. The fifth latch circuit holds “0” data as an initial value, and “1” is written by the arithmetic unit 21 when the first verification is passed. That is, the fifth latch circuit holds information indicating whether or not to execute the second program.

次に、上記構成のNAND型フラッシュメモリの動作について説明する。
[データの書き込み動作]
図26を用いて、本実施形態に係るNAND型フラッシュメモリにおけるデータの書き込み動作について説明する。データの書き込み動作は、第1の実施形態と同様に、大まかにはプログラム動作とベリファイ動作との繰り返しである。但し本実施形態では、前述の通り、プログラム動作として第1プログラムと第2プログラムが行われ、またベリファイ動作として第1ベリファイと第2ベリファイとが行われる。図26は、本実施形態に係るNAND型フラッシュメモリにおける書き込み動作のフローチャートである。
Next, the operation of the NAND flash memory having the above configuration will be described.
[Data write operation]
A data write operation in the NAND flash memory according to the present embodiment will be described with reference to FIG. The data write operation is roughly a repetition of the program operation and the verify operation, as in the first embodiment. However, in the present embodiment, as described above, the first program and the second program are performed as the program operation, and the first verify and the second verify are performed as the verify operation. FIG. 26 is a flowchart of the write operation in the NAND flash memory according to the present embodiment.

まず、第1の実施形態と同様にステップS10〜S14の動作が行われる。そしてプログラムが行われる(ステップS40)。ステップS40において第1、第2プログラムのいずれが行われるかは、第5ラッチ回路27内のデータによって決定される。すなわち、第1〜第3ラッチ回路22〜24におけるデータと初期値とのAND演算結果が“0”である場合にプログラムを行われ、この際、第5ラッチ回路27が“0”を保持していれば第1プログラムを行い、“1”を保持していれば第2プログラムを行う。   First, similarly to the first embodiment, the operations in steps S10 to S14 are performed. Then, a program is performed (step S40). Whether the first program or the second program is executed in step S40 is determined by the data in the fifth latch circuit 27. That is, the program is executed when the AND operation result of the data and the initial value in the first to third latch circuits 22 to 24 is “0”, and at this time, the fifth latch circuit 27 holds “0”. If so, the first program is executed, and if "1" is held, the second program is executed.

次に、“0”データにつき第1ベリファイが行われ(ステップS41)、次に“1”〜“7”データの各々につき、第1ベリファイ及び第2ベリファイが行われる(ステップS42)。第2ベリファイは、第1の実施形態で説明したベリファイ動作と同じである。第1ベリファイの詳細は後述する。ベリファイ動作が終了すると、ステップS17の処理に進む。   Next, a first verify is performed for “0” data (step S41), and then a first verify and a second verify are performed for each of “1” to “7” data (step S42). The second verify is the same as the verify operation described in the first embodiment. Details of the first verify will be described later. When the verify operation ends, the process proceeds to step S17.

以上の書き込み動作の流れを、図27のタイミングチャートを用いて説明する。図27は、図4に示す書き込み動作におけるプログラム及びベリファイ時の、ロウデコーダ3によって選択されたワード線の電圧を示すタイミングチャートであり、第1の実施形態で説明した図6における時刻t2〜t6に相当する。   The flow of the above write operation will be described with reference to the timing chart of FIG. FIG. 27 is a timing chart showing the voltage of the word line selected by the row decoder 3 at the time of programming and verifying in the write operation shown in FIG. 4, and the times t2 to t6 in FIG. 6 described in the first embodiment. It corresponds to.

制御回路7によるグレイコードからバイナリコードへの変換が完了すると、時刻t2〜t3においてプログラムが行われる。次に、時刻t3〜t4の期間にベリファイ動作が行われる(ステップS41、S42)。前述の通り、ベリファイ動作は第1ベリファイと第2ベリファイとを含む。“1”〜“7”データについての第2ベリファイ時には、ワード線WLには電圧V01〜V67がそれぞれ印加される。これに対して“1”〜“7”データについての第1ベリファイ時には、ワード線WLにはそれぞれ電圧V01〜V67よりも低い電圧V01’〜V67’が印加される。また第1ベリファイは“0”データについても行われる。   When the conversion from the gray code to the binary code by the control circuit 7 is completed, the program is executed at times t2 to t3. Next, a verify operation is performed during a period from time t3 to t4 (steps S41 and S42). As described above, the verify operation includes the first verify and the second verify. During the second verification for the “1” to “7” data, voltages V01 to V67 are applied to the word lines WL, respectively. On the other hand, during the first verification for the “1” to “7” data, the voltages V01 ′ to V67 ′ lower than the voltages V01 to V67 are applied to the word lines WL, respectively. The first verify is also performed on “0” data.

図示するように、まず“0”データについての第1ベリファイが行われる(ステップS41)。次に“1”データについて、第1ベリファイ及び第2ベリファイが順次行われる。次に、“2”データについて、第1ベリファイ及び第2ベリファイが順次行われる。その後、同様にして“3”〜“7”データの各々について、第1ベリファイ及び第2ベリファイが順次行われる(ステップS42)。   As shown in the figure, first verification for “0” data is performed (step S41). Next, the first verify and the second verify are sequentially performed on the “1” data. Next, the first verification and the second verification are sequentially performed on the “2” data. Thereafter, similarly, the first verify and the second verify are sequentially performed for each of the “3” to “7” data (step S42).

[ベリファイ動作]
次に、図26における第1ベリファイの詳細について、特にベリファイ回路6の動作に着目しつつ、図28を用いて説明する。図28は、本実施形態に係る第1ベリファイ動作のフローチャートである。第2ベリファイの詳細は、上記第1の実施形態で説明した図7と同様であるので、説明は省略する。
[Verify operation]
Next, details of the first verify in FIG. 26 will be described using FIG. 28 while paying attention to the operation of the verify circuit 6 in particular. FIG. 28 is a flowchart of the first verify operation according to the present embodiment. Details of the second verify are the same as those in FIG. 7 described in the first embodiment, and a description thereof will be omitted.

まずベリファイ回路6は、ベリファイデータj=“0”として(ステップS50)、第1ベリファイを開始する(ステップS51)。そして、第2ベリファイと同様にして、ステップS22〜S25の処理が行われる。   First, the verify circuit 6 sets the verify data j = “0” (step S50) and starts the first verify (step S51). Then, similarly to the second verification, the processes of steps S22 to S25 are performed.

そして、ステップS25における演算結果が“1”であれば(ステップS26、YES)、演算器21は、当該演算器21に対応する第5ラッチ回路27に演算結果“1”を転送し、データを書き換える(ステップS52)。但し、第1〜第3ラッチ回路22〜24へのデータ転送は行われない。   If the calculation result in step S25 is “1” (step S26, YES), the calculator 21 transfers the calculation result “1” to the fifth latch circuit 27 corresponding to the calculator 21 and stores the data. Rewriting is performed (step S52). However, data transfer to the first to third latch circuits 22 to 24 is not performed.

その後、ステップS28、S29の処理が行われる。つまり、第1ベリファイが第2ベリファイと異なる点は、演算器21における演算結果が“1”であった場合に、第1〜第3ラッチ回路22〜24では無く第5ラッチ回路27に演算結果“1”を転送する点にある。   Thereafter, the processes of steps S28 and S29 are performed. That is, the first verify is different from the second verify in that when the calculation result in the calculator 21 is “1”, the calculation result is not sent to the fifth latch circuit 27 but to the first to third latch circuits 22 to 24. The point is to transfer “1”.

第1ベリファイ及び第2ベリファイは、制御回路7内の例えばシーケンサによって実行される。第2ベリファイのシーケンスステップと、各データをベリファイする際のシーケンスは、第1の実施形態で説明した図9及び図10と同様である。   The first verification and the second verification are executed by, for example, a sequencer in the control circuit 7. The second verification sequence step and the sequence for verifying each data are the same as those in FIGS. 9 and 10 described in the first embodiment.

図29は、第2ベリファイにおけるシーケンサによるシーケンス処理を示す表である。図示するように、シーケンスステップは、第1ベリファイ時のシーケンスステップST1〜ST7に加えて、シーケンスステップST8を有している。シーケンスステップST8は、演算器21から第5ラッチ回路27へのデータ転送である。   FIG. 29 is a table showing the sequence processing by the sequencer in the second verification. As shown in the figure, the sequence step has a sequence step ST8 in addition to the sequence steps ST1 to ST7 in the first verification. The sequence step ST8 is data transfer from the arithmetic unit 21 to the fifth latch circuit 27.

すると、第1ベリファイにパスした場合の“0”〜“7”ベリファイ時におけるシーケンスは図30のようになる。図30は、“0”〜“7”データについての第1ベリファイ時に実行されるシーケンスを示す表である。   Then, the sequence at the time of “0” to “7” verification when the first verification is passed is as shown in FIG. FIG. 30 is a table showing a sequence executed at the time of the first verification for “0” to “7” data.

まず“0”ベリファイ時について説明する。初めにステップST1が実行され、センスアンプ10から読み出しデータが演算器21へ転送される。次に“0”ベリファイ時には、第1〜第3ラッチ回路22〜24からデータを演算器21へ転送すべく(b1=“1”、b2=“1”、b3=“1”なので)、ステップST2、ST3、ST4が実行される。そして、最後に演算器21の演算結果を第5ラッチ回路27へ転送すべく、ステップST8が実行される。   First, “0” verification will be described. First, step ST <b> 1 is executed, and read data is transferred from the sense amplifier 10 to the computing unit 21. Next, at the time of “0” verify, step 1 is to transfer data from the first to third latch circuits 22 to 24 to the arithmetic unit 21 (because b1 = “1”, b2 = “1”, and b3 = “1”). ST2, ST3 and ST4 are executed. Finally, step ST8 is executed to transfer the calculation result of the calculator 21 to the fifth latch circuit 27.

次に“1”〜“7”ベリファイ時について説明する。“1”〜“7”データについての第1ベリファイが第2ベリファイと異なる点は、第1〜第3ラッチ回路22〜24へのデータ転送の代わりに、第5ラッチ回路27へのデータ転送が行われる点である。従って、“1”ベリファイ時にはまずステップST1が行われ、次にステップST2、ST4が行われ、最後にステップST8が行われる。“2”ベリファイ時にはまずステップST1が行われ、次にステップST3、ST4が行われ、最後にステップST8が行われる。“3”ベリファイ時にはまずステップST1が行われ、次にステップST4が行われ、最後にステップST8が行われる。“4”ベリファイ時にはまずステップST1が行われ、次にステップST2、ST3が行われ、最後にステップST8が行われる。“5”ベリファイ時にはまずステップST1が行われ、次にステップST2が行われ、最後にステップST8が行われる。“6”ベリファイ時にはまずステップST1が行われ、次にステップST3が行われ、最後にステップST8が行われる。“7”ベリファイ時にはまずステップST1が行われ、次にステップST8が行われる。   Next, “1” to “7” verification will be described. The first verify for “1” to “7” data is different from the second verify in that the data transfer to the fifth latch circuit 27 is performed instead of the data transfer to the first to third latch circuits 22 to 24. This is the point to be done. Accordingly, at the time of “1” verification, step ST1 is first performed, then steps ST2 and ST4 are performed, and finally step ST8 is performed. At the time of “2” verification, step ST1 is first performed, then steps ST3 and ST4 are performed, and finally step ST8 is performed. At the time of “3” verification, step ST1 is first performed, then step ST4 is performed, and finally step ST8 is performed. At the time of “4” verification, step ST1 is performed first, then steps ST2 and ST3 are performed, and finally step ST8 is performed. At the time of “5” verification, first, step ST1 is performed, then step ST2 is performed, and finally step ST8 is performed. At the time of “6” verification, step ST1 is first performed, then step ST3 is performed, and finally step ST8 is performed. At the time of “7” verification, step ST1 is first performed, and then step ST8 is performed.

[ベリファイ動作の具体例]
次に、上記のベリファイ動作の具体例を、図31乃至図41を参照しつつ説明する。図31及び図37はメモリセルトランジスタMTの閾値電圧を示すグラフであり、図32乃至図36及び図38乃至図41は、演算回路20、センスアンプ10、及びメモリセルトランジスタMTの回路図である。以下では説明の簡単化のために、ビット線がBL1、BL2の2本である場合を例に説明する。また、ワード線WL1と、ビット線BL1、BL2とに接続されたメモリセルトランジスタMTに対して、それぞれ“1”及び“3”データをそれぞれ書き込む場合について説明する。また、以下のベリファイ動作の具体例の説明に限り、ワード線WL1とビット線BL1及びBL2とに接続されたメモリセルトランジスタMTを説明の便宜上、それぞれメモリセルトランジスタMT11、MT12と呼ぶことにする。
[Specific example of verify operation]
Next, a specific example of the above verify operation will be described with reference to FIGS. FIGS. 31 and 37 are graphs showing the threshold voltage of the memory cell transistor MT. FIGS. 32 to 36 and FIGS. 38 to 41 are circuit diagrams of the arithmetic circuit 20, the sense amplifier 10, and the memory cell transistor MT. . In the following, for simplification of description, a case where there are two bit lines BL1 and BL2 will be described as an example. A case will be described in which “1” and “3” data are respectively written to the memory cell transistors MT connected to the word line WL1 and the bit lines BL1 and BL2. Further, only in the following description of the specific example of the verify operation, the memory cell transistors MT connected to the word line WL1 and the bit lines BL1 and BL2 are referred to as memory cell transistors MT11 and MT12, respectively, for convenience of explanation.

まず、初めに第1プログラムが行われた結果、メモリセルトランジスタMT11、MT12の閾値分布が図31のようであったとする。すなわち、“1”が書き込まれるべきメモリセルトランジスタMT11の閾値電圧は、第1ベリファイレベルであるV01’より高く、第2ベリファイレベルであるV01よりも低い。また、“3”が書き込まれるべきメモリセルトランジスタMT12の閾値電圧は、第1ベリファイレベルであるV23’より低く、第2ベリファイレベルであるV23よりも低い。つまり、メモリセルトランジスタMT11は第1ベリファイにはパスするが、第2ベリファイにはミスする状態である。またメモリセルトランジスタMT12は、第1、第2ベリファイの両方にミスする状態である。   First, it is assumed that the threshold distribution of the memory cell transistors MT11 and MT12 is as shown in FIG. 31 as a result of the first program being performed first. That is, the threshold voltage of the memory cell transistor MT11 to which “1” is to be written is higher than V01 ′ that is the first verify level and lower than V01 that is the second verify level. Further, the threshold voltage of the memory cell transistor MT12 to which “3” is to be written is lower than V23 ′ that is the first verify level and lower than V23 that is the second verify level. That is, the memory cell transistor MT11 is in a state where it passes the first verify but misses the second verify. The memory cell transistor MT12 is in a state where it misses both the first and second verify operations.

プログラムの後、まず“1”データにつき第1ベリファイが行われる。この様子を示しているのが図32である。図示するように、まず“1”ベリファイを行うにあたって、ワード線WL0に電圧V01’が印加される。すると、メモリセルトランジスタMT11、MT12は共にオフ状態となるので、センスアンプ10−1、10−2の保持するデータは“1”となる。また、“1”ベリファイ時には、第2ラッチ回路23−1、23−2及び第3ラッチ回路24−1、24−2内のデータが、演算器21−1、21−2へそれぞれ転送される(ステップST2、ST4)。   After the program, first verification is performed on “1” data. FIG. 32 shows this state. As shown in the figure, when performing “1” verification, the voltage V01 ′ is applied to the word line WL0. Then, since the memory cell transistors MT11 and MT12 are both turned off, the data held by the sense amplifiers 10-1 and 10-2 is “1”. At the time of “1” verification, the data in the second latch circuits 23-1 and 23-2 and the third latch circuits 24-1 and 24-2 are transferred to the computing units 21-1 and 21-2, respectively. (Steps ST2 and ST4).

すると、演算器21−1のAND演算結果は“1”となり、演算器21−2のAND演算結果は“0”となる。つまり、メモリセルトランジスタMT11は第1ベリファイにパスする。従って、演算器21−1は演算結果“1”を第5ラッチ回路27−1へ転送し(ステップST8)、第5ラッチ回路27−1の保持するデータは“0”から“1”へと書き換えられる。なお、前述の通り、第1ベリファイ時には第1〜第3ラッチ回路22〜24へのデータ転送は行われないので、第1ラッチ回路22−1は“0”を保持し続ける。また演算器21−2は、AND演算結果が“0”であるので演算結果の転送を行わない。よって、第5ラッチ回路27−2の保持するデータは“0”のままである。   Then, the AND operation result of the arithmetic unit 21-1 is “1”, and the AND operation result of the arithmetic unit 21-2 is “0”. That is, the memory cell transistor MT11 passes the first verify. Accordingly, the arithmetic unit 21-1 transfers the operation result “1” to the fifth latch circuit 27-1 (step ST8), and the data held in the fifth latch circuit 27-1 changes from “0” to “1”. Rewritten. As described above, since data transfer to the first to third latch circuits 22 to 24 is not performed at the time of the first verify, the first latch circuit 22-1 continues to hold “0”. The computing unit 21-2 does not transfer the computation result because the AND computation result is “0”. Therefore, the data held by the fifth latch circuit 27-2 remains “0”.

次に“1”データにつき第2ベリファイが行われる。この様子を示しているのが図33である。図示するように、まず“1”ベリファイを行うにあたって、ワード線WL0に電圧V01(>V01’)が印加される。すると、メモリセルトランジスタMT11、MT12はそれぞれオン状態及びオフ状態となるので、センスアンプ10−1、10−2の保持するデータはそれぞれ“0”、“1”となる。また、第2ラッチ回路23−1、23−2及び第3ラッチ回路24−1、24−2内のデータが、演算器21−1、21−2へそれぞれ転送される(ステップST2、ST4)。   Next, the second verify is performed for “1” data. FIG. 33 shows this state. As shown in the figure, when performing “1” verification, a voltage V01 (> V01 ′) is applied to the word line WL0. Then, since the memory cell transistors MT11 and MT12 are turned on and off, respectively, the data held by the sense amplifiers 10-1 and 10-2 are “0” and “1”, respectively. The data in the second latch circuits 23-1, 23-2 and the third latch circuits 24-1, 24-2 are transferred to the computing units 21-1, 21-2, respectively (steps ST2, ST4). .

すると、演算器21−1、21−2のAND演算結果は“0”となる。つまり、メモリセルトランジスタMT11は第2ベリファイにミスする。そして、演算器21−1、21−2は演算結果の転送を行わない。   Then, the AND operation result of the arithmetic units 21-1 and 21-2 is “0”. That is, the memory cell transistor MT11 misses the second verify. Then, the computing units 21-1 and 21-2 do not transfer the computation results.

次に、“3”データにつき第1ベリファイが行われる。この様子を示しているのが図34である。図示するように、まず“3”ベリファイを行うにあたって、ワード線WL0に電圧V23’が印加される。すると、メモリセルトランジスタMT11、MT12は共にオン状態となるので、センスアンプ10−1、10−2の保持するデータは“0”となる。また、“3”ベリファイ時には、第3ラッチ回路24−1、24−2内のデータが、演算器21−1、21−2へそれぞれ転送される(ステップST4)。   Next, the first verify is performed for “3” data. This is shown in FIG. As shown in the figure, first, when performing “3” verification, the voltage V23 ′ is applied to the word line WL0. Then, since the memory cell transistors MT11 and MT12 are both turned on, the data held by the sense amplifiers 10-1 and 10-2 is “0”. At the time of “3” verification, the data in the third latch circuits 24-1 and 24-2 are transferred to the computing units 21-1 and 21-2, respectively (step ST4).

すると、演算器21−1、21−2のAND演算結果は共に“0”となる。つまり、メモリセルトランジスタMT12は第1ベリファイにミスする。そして、演算器21−1、21−2は演算結果の転送を行わない。   Then, the AND operation results of the calculators 21-1 and 21-2 are both “0”. That is, the memory cell transistor MT12 misses the first verify. Then, the computing units 21-1 and 21-2 do not transfer the computation results.

次に“3”データにつき第2ベリファイが行われる。この様子を示しているのが図35である。図示するように、まず“3”ベリファイを行うにあたって、ワード線WL0に電圧V23(>V23’)が印加される。すると、メモリセルトランジスタMT11、MT12は共にオン状態となるので、センスアンプ10−1、10−2の保持するデータは“0”となる。また、“3”ベリファイ時には、第3ラッチ回路24−1、24−2内のデータが、演算器21−1、21−2へそれぞれ転送される(ステップST4)。   Next, the second verification is performed on “3” data. This is shown in FIG. As shown in the figure, when performing “3” verification, a voltage V23 (> V23 ′) is applied to the word line WL0. Then, since the memory cell transistors MT11 and MT12 are both turned on, the data held by the sense amplifiers 10-1 and 10-2 is “0”. At the time of “3” verification, the data in the third latch circuits 24-1 and 24-2 are transferred to the computing units 21-1 and 21-2, respectively (step ST4).

すると、演算器21−1、21−2のAND演算結果は共に“0”となる。つまり、メモリセルトランジスタMT12は第2ベリファイにミスする。そして、演算器21−1、21−2は演算結果の転送を行わない。   Then, the AND operation results of the calculators 21-1 and 21-2 are both “0”. That is, the memory cell transistor MT12 misses the second verify. Then, the computing units 21-1 and 21-2 do not transfer the computation results.

以上によって、最初のプログラムと、それに対応した第1、第2ベリファイが完了する。すなわち、図27における時刻t2〜t4の処理が完了する。この時点では、メモリセルトランジスタMT11、MT12は共に所望の閾値電圧に到達していないので、再度、プログラムを行う。   Thus, the first program and the first and second verify operations corresponding thereto are completed. That is, the processing at times t2 to t4 in FIG. 27 is completed. At this point, since the memory cell transistors MT11 and MT12 have not reached the desired threshold voltage, programming is performed again.

2回目のプログラムの様子を図36に示す。前述の通り、プログラムデータは第1〜第3ラッチ回路22〜24が保持するデータの、演算器21におけるAND演算結果によって決まる。すなわち、演算結果が“0”であればプログラムが行われ、“1”であれば行われない。またプログラムを行う際には、演算器21は第5ラッチ回路27内のデータを参照する。そして、第5ラッチ回路27が“0”を保持していれば第1プログラムが行われ、“1”を保持していれば第2プログラムが行われる。   The state of the second program is shown in FIG. As described above, the program data is determined by the AND operation result in the arithmetic unit 21 of the data held by the first to third latch circuits 22 to 24. That is, if the calculation result is “0”, the program is performed, and if “1”, the program is not performed. Further, when performing the program, the arithmetic unit 21 refers to the data in the fifth latch circuit 27. If the fifth latch circuit 27 holds “0”, the first program is executed, and if it holds “1”, the second program is executed.

図36の例であると、演算器21−1、21−2の演算結果は共に“0”である。従って、メモリセルトランジスタMT11、MT12の両方に対してプログラムが行われる。また、第5ラッチ回路27−1、27−2はそれぞれ“1”、“0”を保持しているので、メモリセルトランジスタMT11には第2プログラムが行われ、メモリセルトランジスタMT12には第1プログラムが行われる。そして演算器21−1、21−2の命令に基づき、センスアンプ10−1、10−2は、ビット線BL1、BL2にそれぞれ電圧V2(例えば0.4V)、V1(例えば0V、<V2)を印加する。そして、ロウデコーダ3がワード線WL1にプログラム電圧Vpgm2を印加することで、プログラムが行われる。   In the example of FIG. 36, the calculation results of the calculators 21-1 and 21-2 are both “0”. Therefore, programming is performed on both the memory cell transistors MT11 and MT12. Further, since the fifth latch circuits 27-1 and 27-2 hold “1” and “0”, respectively, the second program is performed on the memory cell transistor MT11, and the first latch is performed on the memory cell transistor MT12. The program is performed. Based on the instructions of the arithmetic units 21-1 and 21-2, the sense amplifiers 10-1 and 10-2 have voltages V2 (for example, 0.4V) and V1 (for example, 0V and <V2) applied to the bit lines BL1 and BL2, respectively. Apply. Then, the row decoder 3 applies the program voltage Vpgm2 to the word line WL1 to perform programming.

この2回目のプログラムの結果、メモリセルトランジスタMT11、MT12の閾値電圧が図37のように変化したとする。すなわち、メモリセルトランジスタMT11に対して第1プログラムが行われた結果、その閾値電圧は第2ベリファイレベルであるV01より高くなる。すなわち、“1”データの書き込みが完了する。他方、メモリセルトランジスタMT12に対して第2プログラムが行われた結果、その閾値電圧は第1ベリファイレベルV23’より高く、第2ベリファイレベルであるV23よりも低い。つまり、メモリセルトランジスタMT12は第1ベリファイにはパスするが、第2ベリファイにはミスする状態である。   As a result of the second program, it is assumed that the threshold voltages of the memory cell transistors MT11 and MT12 change as shown in FIG. That is, as a result of the first program being performed on the memory cell transistor MT11, the threshold voltage becomes higher than V01 which is the second verify level. That is, the writing of “1” data is completed. On the other hand, as a result of the second program being performed on the memory cell transistor MT12, the threshold voltage is higher than the first verify level V23 'and lower than V23 which is the second verify level. That is, the memory cell transistor MT12 is in a state where it passes the first verification but misses the second verification.

プログラムの後、まず“1”データにつき第1ベリファイが行われる。当然ながら、メモリセルトランジスタMT11は第1ベリファイにパスする。   After the program, first verification is performed on “1” data. Of course, the memory cell transistor MT11 passes the first verify.

引き続き“1”データにつき第2ベリファイが行われる。この様子を示しているのが図38である。メモリセルトランジスタMT12の閾値電圧は、第2ベリファイレベルV01を超えているので、メモリセルトランジスタMT11はオフ状態となる。従って、センスアンプ10−1の保持するデータはそれぞれ“1”となる。その結果、演算器21−1におけるAND演算結果は“1”となる。従って、演算器21−1は演算結果“1”を第1ラッチ回路22−1へ転送し(ステップST5)、第1ラッチ回路22−1内のデータは“0”から“1”へ書き換えられる。これにより、第1〜第3、第5ラッチ回路22−1〜24−1、27−1内のデータは全て“1”となる。   Subsequently, the second verify is performed for “1” data. FIG. 38 shows this state. Since the threshold voltage of the memory cell transistor MT12 exceeds the second verify level V01, the memory cell transistor MT11 is turned off. Therefore, the data held by the sense amplifier 10-1 is “1”. As a result, the AND operation result in the calculator 21-1 is “1”. Accordingly, the arithmetic unit 21-1 transfers the operation result “1” to the first latch circuit 22-1 (step ST5), and the data in the first latch circuit 22-1 is rewritten from “0” to “1”. . As a result, the data in the first to third and fifth latch circuits 22-1 to 24-1 and 27-1 are all "1".

次に、“3”データにつき第1ベリファイが行われる。この様子を示しているのが図39である。メモリセルトランジスタMT12の閾値電圧は、第1ベリファイレベルV23’を超えているので、メモリセルトランジスタMT12はオフ状態となる。従って、センスアンプ10−2の保持するデータは“1”となる。その結果、演算器21−2のAND演算結果は“1”となる。従って、演算器21−2の演算結果“1”は第5ラッチ回路27−2へ転送され(ステップST8)、第5ラッチ回路27−2内のデータは“0”から“1”へ書き換えられる。   Next, the first verify is performed for “3” data. This is shown in FIG. Since the threshold voltage of the memory cell transistor MT12 exceeds the first verify level V23 ', the memory cell transistor MT12 is turned off. Therefore, the data held by the sense amplifier 10-2 is “1”. As a result, the AND operation result of the arithmetic unit 21-2 is “1”. Accordingly, the calculation result “1” of the calculator 21-2 is transferred to the fifth latch circuit 27-2 (step ST8), and the data in the fifth latch circuit 27-2 is rewritten from “0” to “1”. .

次に“3”データにつき第2ベリファイが行われる。この様子を示しているのが図40である。メモリセルトランジスタMT12の閾値電圧は、第2ベリファイレベルV23を超えていないので、メモリセルトランジスタMT12はオン状態となる。従って、センスアンプ10−12の保持するデータは“0”となり、演算器21−2から第1、第2ラッチ回路22−2、23−2への演算結果の転送は行われない。   Next, the second verification is performed on “3” data. This is shown in FIG. Since the threshold voltage of the memory cell transistor MT12 does not exceed the second verify level V23, the memory cell transistor MT12 is turned on. Therefore, the data held by the sense amplifier 10-12 is “0”, and the calculation result is not transferred from the calculator 21-2 to the first and second latch circuits 22-2 and 23-2.

以上によって、2回目のプログラムと、それに対応した第1、第2ベリファイが完了する。この時点では、メモリセルトランジスタMT12は所望の閾値電圧に到達していないので、再度、プログラムを行う。   Thus, the second program and the first and second verify operations corresponding thereto are completed. At this time, the memory cell transistor MT12 has not reached the desired threshold voltage, and therefore programming is performed again.

3回目のプログラムの様子を図41に示す。3回目のプログラムにあたっては、演算器21−1の演算結果は“1”となる。従って、センスアンプ10−1にはプログラムデータとして“1”が保持され、ビット線BL1には書き込み禁止電圧VDDが印加される。従って、既に“1”プログラムが完了しているメモリセルトランジスタMT11に対してプログラムは行われない。他方、演算器21−1の演算結果は“0”である。従って、センスアンプ10−2にはプログラムデータとして“0”が保持される。また、第5ラッチ回路27−2には“1”が保持されているので、ビット線BL2には電圧V2が印加される。すなわち、メモリセルトランジスタMT12に対して第2プログラムが行われる。   The state of the third program is shown in FIG. In the third program, the calculation result of the calculator 21-1 is “1”. Therefore, “1” is held as program data in the sense amplifier 10-1, and the write inhibit voltage VDD is applied to the bit line BL1. Therefore, no programming is performed on the memory cell transistor MT11 for which the “1” program has already been completed. On the other hand, the calculation result of the calculator 21-1 is “0”. Therefore, “0” is held as program data in the sense amplifier 10-2. Further, since “1” is held in the fifth latch circuit 27-2, the voltage V2 is applied to the bit line BL2. That is, the second program is performed on the memory cell transistor MT12.

以上のようにして、第1ラッチ回路22−1〜22−2、及び第2ラッチ回路23−1〜23−3内のデータが全て“1”となるまで、プログラムとベリファイとが繰り返される。   As described above, the program and the verify are repeated until the data in the first latch circuits 22-1 to 22-2 and the second latch circuits 23-1 to 23-3 are all "1".

上記のように、この発明の第3の実施形態に係る半導体記憶装置であると、第1の実施形態で説明した(1)の効果に加えて、下記(2)の効果が得られる。
(2)データの書き込みを高速化しつつ、書き込み精度を向上出来る。
本実施形態に係るNAND型フラッシュメモリであると、図23を用いて説明したようにプログラム動作は、閾値電圧の変動幅がΔVth1の第1プログラムと、変動幅がΔVth2(<ΔVth1)の第2プログラムとを含んでいる。
As described above, the semiconductor memory device according to the third embodiment of the present invention has the following effect (2) in addition to the effect (1) described in the first embodiment.
(2) The writing accuracy can be improved while speeding up the data writing.
In the NAND flash memory according to the present embodiment, as described with reference to FIG. 23, the program operation includes the first program with a threshold voltage fluctuation range of ΔVth1 and the second program with a fluctuation range of ΔVth2 (<ΔVth1). Includes programs.

メモリセルトランジスタMTの閾値電圧は第1プログラムによって、所望の閾値電圧よりも僅かに低いレベルまで設定される。この際、第1プログラムによる閾値電圧の変動幅が大きいため、プログラム回数を少なく出来、書き込み速度を向上出来る。   The threshold voltage of the memory cell transistor MT is set to a level slightly lower than the desired threshold voltage by the first program. At this time, since the fluctuation range of the threshold voltage by the first program is large, the number of programs can be reduced and the writing speed can be improved.

またメモリセルトランジスタMTの閾値電圧は、第1プログラムの後に第2プログラムによって、所望の閾値電圧となるよう設定される。この際、第2プログラムによれば閾値電圧の細かい設定が可能であるため、書き込み精度を向上出来る。   The threshold voltage of the memory cell transistor MT is set to a desired threshold voltage by the second program after the first program. At this time, according to the second program, the threshold voltage can be finely set, so that the writing accuracy can be improved.

そして、第2プログラムについてのベリファイ(第2ベリファイ)には、上記第1の実施形態で説明した方法を用いることが出来るため、第1の実施形態で説明した(1)の効果が得られる。   Since the method described in the first embodiment can be used for verifying the second program (second verify), the effect (1) described in the first embodiment can be obtained.

[第4の実施形態]
次に、この発明の第4の実施形態に係る半導体記憶装置について説明する。本実施形態は、上記第2の実施形態を16値NAND型フラッシュメモリに適用したものである。つまり本実施形態は、上記第2の実施形態と第3の実施形態とを組み合わせたものである。従って、以下では第2、第3の実施形態と異なる点についてのみ説明する。
[Fourth Embodiment]
Next explained is a semiconductor memory device according to the fourth embodiment of the invention. In the present embodiment, the second embodiment is applied to a 16-value NAND flash memory. That is, this embodiment is a combination of the second embodiment and the third embodiment. Therefore, only differences from the second and third embodiments will be described below.

図42は、メモリセルアレイ2、ロウデコーダ3、ページバッファ5、及びベリファイ回路6の詳細を示すブロック図である。メモリセルアレイ2、ロウデコーダ3、及びページバッファ5の構成及び動作は第1の実施形態と同様であるので説明は省略する。   FIG. 42 is a block diagram showing details of the memory cell array 2, row decoder 3, page buffer 5, and verify circuit 6. The configurations and operations of the memory cell array 2, the row decoder 3, and the page buffer 5 are the same as those in the first embodiment, and thus description thereof is omitted.

図示するように演算回路20−0〜20−mの各々は、第2の実施形態で説明した図19の構成において、第3の実施形態で説明した第5ラッチ回路27−0〜27−mを更に備えている。前述の通り第5ラッチ回路27は、第1ベリファイにパスした際に“1”を保持し、第5ラッチ回路27が“1”を保持する際に第2プログラムが実行される。   As shown in the drawing, each of the arithmetic circuits 20-0 to 20-m has the fifth latch circuit 27-0 to 27-m described in the third embodiment in the configuration of FIG. 19 described in the second embodiment. Is further provided. As described above, the fifth latch circuit 27 holds “1” when the first verification is passed, and the second program is executed when the fifth latch circuit 27 holds “1”.

次に、ベリファイ動作時において制御回路7で実行されるシーケンスステップについて図43を用いて説明する。図43は、シーケンサによるシーケンス処理を示す表である。   Next, sequence steps executed by the control circuit 7 during the verify operation will be described with reference to FIG. FIG. 43 is a table showing sequence processing by the sequencer.

図示するようにシーケンスステップは、第2の実施形態において説明した図21のシーケンスステップに加えて、演算器21から第5ラッチ回路27へデータ転送を行うステップST10を更に備えている。   As shown in the drawing, the sequence step further includes a step ST10 for transferring data from the computing unit 21 to the fifth latch circuit 27 in addition to the sequence step of FIG. 21 described in the second embodiment.

すると、第1ベリファイにパスした場合における、“0”〜“F”についての第1ベリファイのシーケンスは図43のようになる。図43は、“0”〜“F”データについての第1ベリファイ時に実行されるシーケンスを示す表である。   Then, the first verification sequence for “0” to “F” when the first verification is passed is as shown in FIG. FIG. 43 is a table showing a sequence executed at the time of the first verification for “0” to “F” data.

図示するように、上記第3の実施形態において説明した図30と同様に、センスアンプ10から演算器21へのデータ転送と、第1〜第4ラッチ回路から演算器21へのデータ転送と、演算器21から第5ラッチ回路27へのデータ転送とが行われる。例えば“0”ベリファイ時には、まずステップST1が実行され、センスアンプ10から読み出しデータが演算器21へ転送される。次に、“0”ベリファイ時には第1〜第4ラッチ回路22〜24、26に“1”が保持されるので、ステップST2〜ST5が実行される。その後、第1ベリファイにパスすると、演算器21における演算結果“1”が第5ラッチ回路27へ転送される。以下、“1”〜“F”ベリファイ時も同様である。
なお、第2ベリファイ時に実行されるシーケンスは、第2の実施形態で説明した図22と同様である。
As shown in the figure, similarly to FIG. 30 described in the third embodiment, data transfer from the sense amplifier 10 to the arithmetic unit 21, data transfer from the first to fourth latch circuits to the arithmetic unit 21, Data transfer from the arithmetic unit 21 to the fifth latch circuit 27 is performed. For example, at the time of “0” verification, step ST1 is first executed, and read data is transferred from the sense amplifier 10 to the computing unit 21. Next, since “1” is held in the first to fourth latch circuits 22 to 24 and 26 at the time of “0” verification, steps ST2 to ST5 are executed. Thereafter, when the first verification is passed, the calculation result “1” in the calculator 21 is transferred to the fifth latch circuit 27. Hereinafter, the same applies to “1” to “F” verification.
Note that the sequence executed during the second verification is the same as that in FIG. 22 described in the second embodiment.

以上のように、上記第3の実施形態は16値NAND型フラッシュメモリにも適用出来、第3の実施形態で説明した(2)の効果が得られる。   As described above, the third embodiment can be applied to a 16-value NAND flash memory, and the effect (2) described in the third embodiment can be obtained.

[第5の実施形態]
次に、この発明の第5の実施形態に係る半導体記憶装置について説明する。本実施形態は、上記第1乃至第4の実施形態において、グレイコードをバイナリコードに変換する方法に関するものである。図45は、書き込みデータ“0”〜“F”に対応するグレイコードとバイナリコードの各ビットを示す表である。図中において、1DL、2DL、3DL、XDLがグレイコードを構成する各ビットを示し、1DL’、2DL’、3DL’、及びXDL’がバイナリコードを構成する各ビットを示す。そして、1DL’、2DL’、3DL’、及びXDL’が第1〜第4ラッチ回路に保持される。
[Fifth Embodiment]
Next explained is a semiconductor memory device according to the fifth embodiment of the invention. This embodiment relates to a method for converting a Gray code into a binary code in the first to fourth embodiments. FIG. 45 is a table showing gray code and binary code bits corresponding to write data “0” to “F”. In the figure, 1DL, 2DL, 3DL, and XDL indicate each bit constituting a gray code, and 1DL ', 2DL', 3DL ', and XDL' indicate each bit constituting a binary code. 1DL ', 2DL', 3DL ', and XDL' are held in the first to fourth latch circuits.

図示するように、1DL’、2DL’、3DL’、及びXDL’は、例えば下記の式によって計算される。
1DL’ = ~xor(1DL, xor(2DL, xor(XDL, 3DL)))
2DL’ = ~xor(2DL, xor(XDL, 3DL))
3DL’ = ~xor (XDL, 3DL)
XDL’ = XDL
但し、“~”は論理否定演算を示し、“xor”は排他的論理和演算を示す。上記計算をシーケンサが行うことで、外部から入力されたグレイコードはバイナリコードに変換される。なお、図45では書き込みデータが4ビットの場合について説明したが、3ビットの場合であっても同様の方法を用いることが出来る。
As illustrated, 1DL ′, 2DL ′, 3DL ′, and XDL ′ are calculated by, for example, the following equations.
1DL '= ~ xor (1DL, xor (2DL, xor (XDL, 3DL)))
2DL '= ~ xor (2DL, xor (XDL, 3DL))
3DL '= ~ xor (XDL, 3DL)
XDL '= XDL
However, “˜” indicates a logical NOT operation, and “xor” indicates an exclusive OR operation. As the sequencer performs the above calculation, the gray code input from the outside is converted into a binary code. In FIG. 45, the case where the write data is 4 bits has been described, but the same method can be used even when the write data is 3 bits.

[第6の実施形態]
次に、この発明の第6の実施形態に係る半導体記憶装置について説明する。本実施形態は、上記第1乃至第4の実施形態において、外部から入力される書き込みデータがバイナリコードである場合に関する。図46は、本実施形態に係るNAND型フラッシュメモリにおける書き込み動作を示すフローチャートである。
[Sixth Embodiment]
Next explained is a semiconductor memory device according to the sixth embodiment of the invention. The present embodiment relates to a case where write data input from the outside is a binary code in the first to fourth embodiments. FIG. 46 is a flowchart showing a write operation in the NAND flash memory according to the present embodiment.

図示するように、外部からNAND型フラッシュメモリに対して、書き込みコマンド、アドレス、及びバイナリコードで記述された書き込みデータが入力される(ステップS60)。すると制御回路7は、入力された書き込みデータにつき、変換処理を行うことなく演算回路20−0〜20−m内のラッチ回路へセットする(ステップS61)。その後、ステップS13の処理に進む。   As shown in the figure, a write command, an address, and write data described in binary code are input from the outside to the NAND flash memory (step S60). Then, the control circuit 7 sets the input write data to the latch circuit in the arithmetic circuits 20-0 to 20-m without performing the conversion process (step S61). Thereafter, the process proceeds to step S13.

本実施形態であると、制御回路7におけるグレイコードからバイナリコードへの変換が不要となる。   In the present embodiment, the conversion from the gray code to the binary code in the control circuit 7 becomes unnecessary.

[第7の実施形態]
次に、この発明の第7の実施形態に係る半導体記憶装置について説明する。本実施形態は、上記第1乃至第6の実施形態におけるバイナリコードの例に関するものである。以下では、書き込みデータが3ビットの場合について説明するが、4ビットの場合も同様である。図47乃至図49は、書き込みデータと、各書き込みデータに対応づけられるバイナリコードとの関係を示す表である。
[Seventh Embodiment]
Next explained is a semiconductor memory device according to the seventh embodiment of the invention. The present embodiment relates to binary code examples in the first to sixth embodiments. In the following, the case where the write data is 3 bits will be described. 47 to 49 are tables showing the relationship between the write data and the binary code associated with each write data.

上記第1の実施形態では、図5を用いて説明したように、第1乃至第3ラッチ回路に保持される各ビットをb1、b2、b3としたときに構成されるコード(b3、b2、b1)が、“0”データから降順となるようにバイナリコードが生成される。   In the first embodiment, as described with reference to FIG. 5, the codes (b3, b2,...) Configured when the bits held in the first to third latch circuits are b1, b2, and b3. The binary code is generated so that b1) is in descending order from “0” data.

しかし図47に示すように、コード(b1、b2、b3)が“0”データから降順となるように、バイナリコードが生成されても良い。また図48に示すように、コード(b3、b1、b2)が“0”データから降順とされても良い。更に図49に示すように、コード(b1、b3、b2)が“0”データから降順とされても良い。   However, as shown in FIG. 47, the binary code may be generated so that the codes (b1, b2, b3) are in descending order from “0” data. Further, as shown in FIG. 48, the codes (b3, b1, b2) may be arranged in descending order from “0” data. Further, as shown in FIG. 49, the codes (b1, b3, b2) may be arranged in descending order from “0” data.

すなわち、3つのラッチ回路に保持されるデータをいずれかのビットとする3桁のコードが、書き込みデータ=“0”から順に降順とされれば良い。そしてこの場合には、第1〜第3ラッチ回路のうち、“j”データ(jは“0”〜“6”のいずれか)をプログラムする際に保持する値が“1”となるものの組み合わせは、“j”データよりも閾値電圧の高い全てのデータをそれぞれプログラムする際における組み合わせと異なることになる。   That is, a three-digit code in which the data held in the three latch circuits is any bit may be in descending order from the write data = “0”. In this case, among the first to third latch circuits, a combination of “j” data (j is any one of “0” to “6”) whose value is “1” is stored. Is different from the combination in programming all data having a threshold voltage higher than that of “j” data.

一例として、“4”データをプログラムする場合を考える。すると図47の場合、“4”データプログラム時にバイナリコードが“1”となるのはビットb2、b3である。つまり、“1”を保持するラッチ回路の組み合わせは、第2ラッチ回路と第3ラッチ回路である。これに対して、“5”データをプログラムする際には、ビットb2のみが“1”となる。すなわち“1”を保持するラッチ回路は第2ラッチ回路のみである。また“6”データをプログラムする際には、ビットb3のみが“1”となる。すなわち、“1”を保持するラッチ回路は第3ラッチ回路のみである。更に“7”データをプログラムする際には、全ビットが“0”となる。すなわち、“5”〜“7”データをプログラムする際には、第2ラッチ回路と第3ラッチ回路とが共に“1”を保持することが無い。
このことは、図48乃至図49の場合でも同様である。
As an example, consider the case of programming “4” data. Then, in the case of FIG. 47, it is bits b2 and b3 that the binary code becomes “1” in the “4” data program. That is, the combination of latch circuits that hold “1” is the second latch circuit and the third latch circuit. On the other hand, when “5” data is programmed, only bit b2 becomes “1”. That is, the only latch circuit that holds “1” is the second latch circuit. When programming the “6” data, only the bit b3 becomes “1”. That is, the third latch circuit is the only latch circuit that holds “1”. Further, when “7” data is programmed, all bits become “0”. That is, when “5” to “7” data is programmed, neither the second latch circuit nor the third latch circuit holds “1”.
The same applies to the cases of FIGS. 48 to 49.

また、図5、図47乃至図49では、各ビットが保持する“0”と“1”のうち、“1”が有効データである。しかし、“0”が有効データであっても良い。すなわち、第1〜第3ラッチ回路から演算器21へ転送されるデータが、“1”では無く“0”であっても良い。この場合のバイナリコードの例を図50に示す。   In FIGS. 5 and 47 to 49, “1” is valid data among “0” and “1” held by each bit. However, “0” may be valid data. That is, the data transferred from the first to third latch circuits to the computing unit 21 may be “0” instead of “1”. An example of the binary code in this case is shown in FIG.

図示するように、図50のバイナリコードは、図5に示すバイナリコードにおいて“0”と“1”とを入れ替えたものである。すると、第1乃至第3ラッチ回路に保持される各ビットをb1、b2、b3としたときに構成されるコード(/b3、/b2、/b1)は、“0”データから降順となる。なお“/”は、データの反転を意味する。勿論、図47乃至図49のバイナリコードにおいて、“0”と“1”とを反転させても良い。またこの場合には、“0”データそのものが演算器21へ転送されずに、“0”データを反転させて“1”としたデータが演算器21へ転送されても良い・
上記のように、この発明の第1乃至第7の実施形態に係る半導体記憶装置であると、書き込みデータをグレイコードでは無くバイナリコードとして取り扱っている。従って、ベリファイ時におけるデータ転送回数を少なく出来ると共に、書き込みデータ間におけるデータ転送回数を均一化出来る。従って、半導体記憶装置の書き込み速度を向上出来る。
As shown in FIG. 50, the binary code in FIG. 50 is obtained by replacing “0” and “1” in the binary code shown in FIG. Then, the codes (/ b3, / b2, / b1) configured when the bits held in the first to third latch circuits are b1, b2, and b3 are in descending order from the “0” data. “/” Means data inversion. Of course, “0” and “1” may be inverted in the binary codes of FIGS. In this case, the data “0” may be transferred to the computing unit 21 by inverting the “0” data without transferring the “0” data itself to the computing unit 21.
As described above, in the semiconductor memory device according to the first to seventh embodiments of the present invention, write data is handled as binary code instead of gray code. Accordingly, the number of data transfers during verification can be reduced, and the number of data transfers between write data can be made uniform. Therefore, the writing speed of the semiconductor memory device can be improved.

なお、上記実施形態では1つのメモリセルトランジスタMTが8値または16値を取り得る場合について説明したが、これは一例に過ぎず、例えば4値(2ビット)や、または32値(5ビット)などであっても良い。メモリセルトランジスタがnビットのデータを保持する場合には、次のような構成とすれば良い。   Although the case where one memory cell transistor MT can take 8 values or 16 values has been described in the above embodiment, this is only an example, and for example, 4 values (2 bits) or 32 values (5 bits). It may be. When the memory cell transistor holds n-bit data, the following configuration may be used.

すなわち、メモリセルトランジスタは、閾値電圧に応じて“0”データ〜“2−1”データのnビット(nは3以上の自然数)データを保持する。そして、プログラム動作時及びベリファイ動作時において、プログラムデータにおける1〜nビット目の値をそれぞれ保持する第1乃至第nラッチ回路を設ける。更に、ベリファイ動作時において、第1乃至第nラッチ回路のうちの少なくともいずれかから転送された前記値と、センスアンプで増幅された読み出しデータとの論理演算を行う演算器を設ける。“i”データ(iは“1”〜“2−1”のいずれか)についてベリファイを行う際には、第1乃至第nラッチ回路のうちで、“i”データをプログラムする際に保持する前記値が有効データとなるものから、演算器に対して前記値が転送される。そして、第1乃至第nラッチ回路のうち、“j”データ(jは“0”〜“2−2”のいずれか)がプログラムされる際に有効データを保持するものの組み合わせが、“j”データよりも閾値電圧の高いデータがプログラムされる全ての場合における前記組み合わせと異なるようにすれば良い。 That is, the memory cell transistor holds n bits (n is a natural number of 3 or more) of “0” data to “2 n −1” data according to the threshold voltage. Then, first to nth latch circuits are provided for respectively holding the values of the 1st to nth bits in the program data during the program operation and the verify operation. Further, an arithmetic unit is provided for performing a logical operation between the value transferred from at least one of the first to nth latch circuits and the read data amplified by the sense amplifier during the verify operation. When verifying “i” data (i is any one of “1” to “2 n −1”), the first to nth latch circuits are held when programming “i” data. The value is transferred to the arithmetic unit from the value that becomes the valid data. Of the first to n-th latch circuits, the combination of those that hold valid data when “j” data (j is any one of “0” to “2 n -2”) is “j” It may be different from the combination in all cases where data having a higher threshold voltage than data is programmed.

更に演算器は、転送された前記値が全て有効データであり、且つ、センスアンプで増幅されたデータが、メモリセルトランジスタの閾値電圧がベリファイにパスすることを示す値であった場合、第1乃至第nラッチ回路のいずれかに保持される無効データを有効データに書き換える。   Further, the arithmetic unit determines that the first value when the transferred values are all valid data and the data amplified by the sense amplifier is a value indicating that the threshold voltage of the memory cell transistor passes verification. Or invalid data held in any of the nth latch circuits is rewritten to valid data.

また演算器で行われる演算内容はAND演算に限らない。例えば、プログラムデータについての有効データが図50に示すように“0”であり、またセンスアンプ内における有効データも“0”(ベリファイにパスした際には“0”を保持)するような場合には、OR演算を行えば良い。すなわち、演算器21は、ラッチ回路から読み出した値が全て有効データであり、且つ、センスアンプから転送されたデータが、メモリセルトランジスタの閾値電圧がベリファイレベルよりも高いことを示す値であった場合に有効データを発生する構成であれば良い。   In addition, the calculation content performed by the calculator is not limited to the AND calculation. For example, the valid data for the program data is “0” as shown in FIG. 50, and the valid data in the sense amplifier is also “0” (“0” is held when the verification is passed). For this, an OR operation may be performed. That is, the arithmetic unit 21 has all the values read from the latch circuit as valid data, and the data transferred from the sense amplifier is a value indicating that the threshold voltage of the memory cell transistor is higher than the verify level. In this case, any configuration that generates valid data may be used.

また、上記実施形態においては、バイナリコードを構成するnビットデータの最上位ビットは、MOSトランジスタ25によって演算器21と分離可能なラッチ回路に格納されることが好ましい。この点について、8値NAND型フラッシュメモリの場合を例に挙げて説明する。   In the above embodiment, the most significant bit of the n-bit data constituting the binary code is preferably stored in a latch circuit that can be separated from the arithmetic unit 21 by the MOS transistor 25. This point will be described by taking the case of an 8-level NAND flash memory as an example.

図51は、“0”〜“7”データに対応するバイナリコードの各ビットb1、b2、b3を示す表である。図示するように、(b3、b2、b1)の3桁で構成されるバイナリコードは、“0”データから降順となるよう、“0”〜“7”データに対応づけられていると仮定する。この場合には、3桁のバイナリコードのうち、最上位ビットとなるb3が、図2の構成における第2ラッチ回路23に格納されることが好ましい。この理由について図52を用いて説明する。   FIG. 51 is a table showing each bit b1, b2, b3 of the binary code corresponding to “0” to “7” data. As shown in the figure, it is assumed that the binary code composed of three digits (b3, b2, b1) is associated with “0” to “7” data so that the data is in descending order from “0” data. . In this case, it is preferable that b3 which is the most significant bit in the three-digit binary code is stored in the second latch circuit 23 in the configuration of FIG. The reason for this will be described with reference to FIG.

図52は、“1”〜“3”データについてのベリファイが完了した際の、第1〜第3ラッチ回路22〜23の各々に保持されるバイナリコードの各ビットを示す表である。図示するように、“1”〜“3”データベリファイ完了時には、“0”〜“3”データを保持する演算回路20においては、各第1〜第3ラッチ回路22〜23内の値は“1”になっているはずである。つまり、“0”〜“3”データについてのベリファイが完了した以降は、“4”〜“7”データは(b2、b1)だけで区別がつく。従って、データの識別という意味では、ビットb3は必要が無い。   FIG. 52 is a table showing each bit of the binary code held in each of the first to third latch circuits 22 to 23 when the verification for the “1” to “3” data is completed. As shown in the figure, when the data verification of “1” to “3” is completed, the value in each of the first to third latch circuits 22 to 23 in the arithmetic circuit 20 holding “0” to “3” data is “ It should be 1 ”. That is, after the verification for the “0” to “3” data is completed, the “4” to “7” data can be distinguished only by (b2, b1). Therefore, the bit b3 is not necessary in terms of data identification.

しかし、“4”データの書き込みを行うためには、いずれかのラッチ回路に“0”が保持されていなければならない。つまり、“4”データの書き込みを行うにはビットb3が必要である。しかしながら、“5”〜“7”データの書き込みのためには、ビットb3は不要である。なぜなら、“5”〜“7”データの書き込み時には、ビットb1、b2の少なくとも一方が“0”になるからである。   However, in order to write “4” data, “0” must be held in any latch circuit. That is, the bit b3 is necessary to write “4” data. However, the bit b3 is not necessary for writing the data “5” to “7”. This is because at the time of writing data “5” to “7”, at least one of the bits b1 and b2 is “0”.

上記を鑑みると、ビットb3を図2における第2ラッチ回路23に保持させ、“0”〜“4”データベリファイ完了後はMOSトランジスタ25をオフ状態とさせておくことで、第2ラッチ回路23を他の用途に使用することが可能となる。すなわち、NAND型フラッシュメモリにおいて図4に示す書き込みシーケンス実行中(“5”〜“7”データ書き込み中)であっても、演算回路20は外部からデータを取り込むことが出来る。従って、NAND型フラッシュメモリにおける処理を効率化させ、処理速度を向上出来る。   In view of the above, the second latch circuit 23 holds the bit b3 in the second latch circuit 23 in FIG. 2 and keeps the MOS transistor 25 in the OFF state after the data verification of “0” to “4” is completed. Can be used for other purposes. That is, even when the write sequence shown in FIG. 4 is being executed in the NAND flash memory (during “5” to “7” data writing), the arithmetic circuit 20 can take in data from the outside. Therefore, the processing in the NAND flash memory can be made efficient and the processing speed can be improved.

このことは16値NAND型フラッシュメモリの場合でも同様である。この場合、“0”〜“F”データに対応するバイナリコードの各ビットb1、b2、b3、b4があった時に、例えば(b4、b3、b2、b1)の4桁で構成されるバイナリコードが、“0”データから降順であったと仮定する。この場合には、4桁のバイナリコードのうち、最上位ビットとなるb4が、図19の構成における第4ラッチ回路26に格納されることが好ましい。16値NAND型フラッシュメモリの場合には、“0”〜“8”データベリファイが完了した時点で、ビットb4はデータの区別に不要となるからである。勿論、“0”〜“C”データの書き込みが終了すれば、ビットb3を保持するラッチ回路を開放させることが出来る。更に“D”及び“E”データの書き込みが終了すればビットb2を保持するラッチ回路を開放させることが出来、更に“F”データの書き込みが終了すれば、ビットb1を保持するラッチ回路を開放させることが出来る。
また、上記は、バイナリコードが図47〜図50のようである場合も同様である。
The same applies to a 16-value NAND flash memory. In this case, when there are each bit b1, b2, b3, b4 of the binary code corresponding to “0” to “F” data, for example, a binary code composed of four digits (b4, b3, b2, b1). Are in descending order from the “0” data. In this case, it is preferable that b4 which is the most significant bit of the 4-digit binary code is stored in the fourth latch circuit 26 in the configuration of FIG. This is because, in the case of a 16-value NAND flash memory, the bit b4 becomes unnecessary for data distinction when “0” to “8” data verification is completed. Of course, when the writing of “0” to “C” data is completed, the latch circuit holding the bit b3 can be opened. Further, when the writing of “D” and “E” data is completed, the latch circuit holding the bit b2 can be released, and when the writing of “F” data is completed, the latch circuit holding the bit b1 is opened. It can be made.
The above also applies to the case where the binary code is as shown in FIGS.

更に、上記実施形態では図23において、データが消去レベルから所望のレベルに直接書き込まれる場合を例に挙げて説明したが、書き込み方法はこのような方法に限られない。例えば、図18に示す16値NAND型フラッシュメモリの場合、まず初めに4値レベルの書き込みを行う。つまり、書き込みデータが“0”〜“3”であればプログラムを行わず、書き込みデータが“4”〜“7”であれば“4”レベルにプログラムを行い、書き込みデータが“8”〜“B”であれば“8”レベルにプログラムを行い、書き込みデータが“C”〜“F”であれば“C”レベルにプログラムを行う。次に、2値レベルの書き込みを行う。つまり、書き込みデータが“0”〜“1”であればプログラムを行わず、書き込みデータが“2”〜“3”であれば“2”レベルにプログラムを行う。また、書き込みデータが“4”〜“5”であれば“4”レベルにプログラムを行い、書き込みデータが“6”〜“7”であれば“6”レベルにプログラムを行う。以下、同様である。そして、再度2値レベルの書き込みを行って、最終的に16値の値を得る。   Furthermore, in the above-described embodiment, the case where data is directly written from the erase level to a desired level is described as an example in FIG. 23, but the writing method is not limited to such a method. For example, in the case of the 16-level NAND flash memory shown in FIG. 18, first, a 4-level level write is performed. That is, if the write data is “0” to “3”, the program is not performed. If the write data is “4” to “7”, the program is performed to the “4” level, and the write data is “8” to “7”. If “B”, the program is performed at the “8” level, and if the write data is “C” to “F”, the program is performed at the “C” level. Next, binary level writing is performed. That is, if the write data is “0” to “1”, the program is not performed, and if the write data is “2” to “3”, the program is performed to the “2” level. If the write data is “4” to “5”, the program is performed at the “4” level, and if the write data is “6” to “7”, the program is performed at the “6” level. The same applies hereinafter. Then, the binary level is written again to finally obtain 16 values.

このような場合であると、図23に示すプログラムは、必ずしも消去レベルを開始時点として行われるわけでは無いが、勿論、このような場合も適用可能である。   In such a case, the program shown in FIG. 23 is not necessarily performed with the erasure level as the start point, but of course, such a case is also applicable.

また、上記実施形態ではNAND型フラッシュメモリの場合を例に挙げたが、例えばNOR型、DINOR型、AND型フラッシュメモリであっても良い。また、NAND型フラッシュメモリにおいてメモリセルトランジスタの数を1つにした3Tr−NAND型フラッシュメモリや、3Tr−NAND型フラッシュメモリにおいて選択トランジスタST1を廃した2Tr型フラッシュメモリ等、他のフラッシュメモリにも適用可能である。   In the above embodiment, the NAND flash memory is used as an example. However, for example, a NOR flash memory, a DINOR flash memory, and an AND flash memory may be used. Also, other flash memories such as a 3Tr-NAND flash memory in which the number of memory cell transistors is one in a NAND flash memory and a 2Tr flash memory in which the selection transistor ST1 is eliminated in the 3Tr-NAND flash memory are also included. Applicable.

なお、本願発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。   Note that the present invention is not limited to the above-described embodiment, and various modifications can be made without departing from the scope of the invention in the implementation stage. Furthermore, the above embodiments include inventions at various stages, and various inventions can be extracted by appropriately combining a plurality of disclosed constituent elements. For example, even if some constituent requirements are deleted from all the constituent requirements shown in the embodiment, the problem described in the column of the problem to be solved by the invention can be solved, and the effect described in the column of the effect of the invention Can be extracted as an invention.

この発明の第1の実施形態に係るフラッシュメモリのブロック図。1 is a block diagram of a flash memory according to a first embodiment of the present invention. この発明の第1の実施形態に係るフラッシュメモリの備えるメモリセルアレイ、ロウデコーダ、ページバッファ、及びベリファイ回路の回路図。1 is a circuit diagram of a memory cell array, row decoder, page buffer, and verify circuit included in a flash memory according to a first embodiment of the present invention. この発明の第1の実施形態に係るフラッシュメモリの備えるメモリセルの閾値分布を示すグラフ。3 is a graph showing a threshold distribution of memory cells included in the flash memory according to the first embodiment of the present invention. この発明の第1の実施形態に係るフラッシュメモリにおける書き込み動作のフローチャート。4 is a flowchart of a write operation in the flash memory according to the first embodiment of the present invention. この発明の第1の実施形態に係るフラッシュメモリによって生成されるバイナリコードを示すダイアグラム。1 is a diagram showing a binary code generated by a flash memory according to a first embodiment of the present invention. この発明の第1の実施形態に係るフラッシュメモリにおける書き込み動作のタイミングチャート。4 is a timing chart of a write operation in the flash memory according to the first embodiment of the present invention. この発明の第1の実施形態に係るフラッシュメモリにおけるベリファイ動作のフローチャート。4 is a flowchart of a verify operation in the flash memory according to the first embodiment of the present invention. この発明の第1の実施形態に係るフラッシュメモリにおける、メモリセルトランジスタの閾値分布を示すグラフ。3 is a graph showing a threshold distribution of memory cell transistors in the flash memory according to the first embodiment of the present invention. この発明の第1の実施形態に係るフラッシュメモリにおける、ベリファイ動作のシーケンスステップを示すダイアグラム。2 is a diagram showing a sequence step of a verify operation in the flash memory according to the first embodiment of the present invention. この発明の第1の実施形態に係るフラッシュメモリにおける、ベリファイ動作のシーケンスを示すダイアグラム。2 is a diagram showing a sequence of a verify operation in the flash memory according to the first embodiment of the present invention. この発明の第1の実施形態に係るフラッシュメモリの備えるメモリセルアレイ、センスアンプ、及びベリファイ回路のブロック図。1 is a block diagram of a memory cell array, a sense amplifier, and a verify circuit included in a flash memory according to a first embodiment of the present invention. この発明の第1の実施形態に係るフラッシュメモリの備えるメモリセルアレイ、センスアンプ、及びベリファイ回路のブロック図。1 is a block diagram of a memory cell array, a sense amplifier, and a verify circuit included in a flash memory according to a first embodiment of the present invention. この発明の第1の実施形態に係るフラッシュメモリの備えるメモリセルアレイ、センスアンプ、及びベリファイ回路のブロック図。1 is a block diagram of a memory cell array, a sense amplifier, and a verify circuit included in a flash memory according to a first embodiment of the present invention. この発明の第1の実施形態に係るフラッシュメモリの備えるメモリセルアレイ、センスアンプ、及びベリファイ回路のブロック図。1 is a block diagram of a memory cell array, a sense amplifier, and a verify circuit included in a flash memory according to a first embodiment of the present invention. この発明の第1の実施形態に係るフラッシュメモリの備えるメモリセルアレイ、センスアンプ、及びベリファイ回路のブロック図。1 is a block diagram of a memory cell array, a sense amplifier, and a verify circuit included in a flash memory according to a first embodiment of the present invention. グレイコードを示すダイアグラム。Diagram showing gray code. この発明の第1の実施形態に係るフラッシュメモリによって生成されるバイナリコードと閾値分布との関係を示すダイアグラム。2 is a diagram showing a relationship between a binary code generated by the flash memory according to the first embodiment of the present invention and a threshold distribution. この発明の第2の実施形態に係るフラッシュメモリの備えるメモリセルトランジスタの閾値分布を示すグラフ。6 is a graph showing a threshold distribution of memory cell transistors included in a flash memory according to a second embodiment of the present invention. この発明の第2の実施形態に係るフラッシュメモリの備えるメモリセルアレイ、ロウデコーダ、ページバッファ、及びベリファイ回路の回路図。FIG. 6 is a circuit diagram of a memory cell array, row decoder, page buffer, and verify circuit included in a flash memory according to a second embodiment of the present invention. この発明の第2の実施形態に係るフラッシュメモリによって生成されるバイナリコードを示すダイアグラム。The diagram which shows the binary code produced | generated by the flash memory based on 2nd Embodiment of this invention. この発明の第2の実施形態に係るフラッシュメモリにおける、ベリファイ動作のシーケンスステップを示すダイアグラム。10 is a diagram showing a sequence step of a verify operation in the flash memory according to the second embodiment of the present invention. この発明の第2の実施形態に係るフラッシュメモリにおける、ベリファイ動作のシーケンスを示すダイアグラム。6 is a diagram showing a verify operation sequence in a flash memory according to a second embodiment of the present invention; この発明の第3の実施形態に係るフラッシュメモリの備えるメモリセルトランジスタの閾値分布を示すグラフであり、書き込み方法を示す図。It is a graph which shows the threshold value distribution of the memory cell transistor with which the flash memory which concerns on 3rd Embodiment of this invention is provided, and is a figure which shows the write-in method. この発明の第3の実施形態に係るフラッシュメモリにおける書き込み動作のフローチャート。9 is a flowchart of a write operation in a flash memory according to a third embodiment of the present invention. この発明の第3の実施形態に係るフラッシュメモリの備えるメモリセルアレイ、ロウデコーダ、ページバッファ、及びベリファイ回路の回路図。FIG. 6 is a circuit diagram of a memory cell array, row decoder, page buffer, and verify circuit included in a flash memory according to a third embodiment of the present invention. この発明の第3の実施形態に係るフラッシュメモリにおける書き込み動作のフローチャート。9 is a flowchart of a write operation in a flash memory according to a third embodiment of the present invention. この発明の第3の実施形態に係るフラッシュメモリにおける書き込み動作のタイミングチャート。9 is a timing chart of a write operation in a flash memory according to a third embodiment of the present invention. この発明の第3の実施形態に係るフラッシュメモリにおけるベリファイ動作のフローチャート。9 is a flowchart of a verify operation in a flash memory according to a third embodiment of the present invention. この発明の第3の実施形態に係るフラッシュメモリにおける、ベリファイ動作のシーケンスステップを示すダイアグラム。9 is a diagram showing a sequence step of a verify operation in a flash memory according to a third embodiment of the present invention. この発明の第3の実施形態に係るフラッシュメモリにおける、ベリファイ動作のシーケンスを示すダイアグラム。9 is a diagram showing a verify operation sequence in a flash memory according to a third embodiment of the present invention; この発明の第3の実施形態に係るフラッシュメモリの備えるメモリセルトランジスタの閾値分布を示すグラフ。10 is a graph showing a threshold distribution of memory cell transistors included in a flash memory according to a third embodiment of the present invention. この発明の第3の実施形態に係るフラッシュメモリの備えるメモリセルアレイ、センスアンプ、及びベリファイ回路のブロック図。FIG. 9 is a block diagram of a memory cell array, sense amplifier, and verify circuit included in a flash memory according to a third embodiment of the present invention. この発明の第3の実施形態に係るフラッシュメモリの備えるメモリセルアレイ、センスアンプ、及びベリファイ回路のブロック図。FIG. 9 is a block diagram of a memory cell array, sense amplifier, and verify circuit included in a flash memory according to a third embodiment of the present invention. この発明の第3の実施形態に係るフラッシュメモリの備えるメモリセルアレイ、センスアンプ、及びベリファイ回路のブロック図。FIG. 9 is a block diagram of a memory cell array, sense amplifier, and verify circuit included in a flash memory according to a third embodiment of the present invention. この発明の第3の実施形態に係るフラッシュメモリの備えるメモリセルアレイ、センスアンプ、及びベリファイ回路のブロック図。FIG. 9 is a block diagram of a memory cell array, sense amplifier, and verify circuit included in a flash memory according to a third embodiment of the present invention. この発明の第3の実施形態に係るフラッシュメモリの備えるメモリセルアレイ、センスアンプ、及びベリファイ回路のブロック図。FIG. 9 is a block diagram of a memory cell array, sense amplifier, and verify circuit included in a flash memory according to a third embodiment of the present invention. この発明の第3の実施形態に係るフラッシュメモリの備えるメモリセルトランジスタの閾値分布を示すグラフ。10 is a graph showing a threshold distribution of memory cell transistors included in a flash memory according to a third embodiment of the present invention. この発明の第3の実施形態に係るフラッシュメモリの備えるメモリセルアレイ、センスアンプ、及びベリファイ回路のブロック図。FIG. 9 is a block diagram of a memory cell array, sense amplifier, and verify circuit included in a flash memory according to a third embodiment of the present invention. この発明の第3の実施形態に係るフラッシュメモリの備えるメモリセルアレイ、センスアンプ、及びベリファイ回路のブロック図。FIG. 9 is a block diagram of a memory cell array, sense amplifier, and verify circuit included in a flash memory according to a third embodiment of the present invention. この発明の第3の実施形態に係るフラッシュメモリの備えるメモリセルアレイ、センスアンプ、及びベリファイ回路のブロック図。FIG. 9 is a block diagram of a memory cell array, sense amplifier, and verify circuit included in a flash memory according to a third embodiment of the present invention. この発明の第3の実施形態に係るフラッシュメモリの備えるメモリセルアレイ、センスアンプ、及びベリファイ回路のブロック図。FIG. 9 is a block diagram of a memory cell array, sense amplifier, and verify circuit included in a flash memory according to a third embodiment of the present invention. この発明の第4の実施形態に係るフラッシュメモリの備えるメモリセルアレイ、ロウデコーダ、ページバッファ、及びベリファイ回路の回路図。FIG. 10 is a circuit diagram of a memory cell array, row decoder, page buffer, and verify circuit included in a flash memory according to a fourth embodiment of the present invention. この発明の第4の実施形態に係るフラッシュメモリにおける、ベリファイ動作のシーケンスステップを示すダイアグラム。The diagram which shows the sequence step of the verify operation | movement in the flash memory which concerns on 4th Embodiment of this invention. この発明の第4の実施形態に係るフラッシュメモリにおける、ベリファイ動作のシーケンスを示すダイアグラム。The diagram which shows the sequence of the verify operation | movement in the flash memory which concerns on 4th Embodiment of this invention. この発明の第5の実施形態に係るフラッシュメモリにおける、グレイコードをバイナリコードへ変換する方法を示すダイアグラム。The diagram which shows the method of converting the Gray code into a binary code in the flash memory which concerns on 5th Embodiment of this invention. この発明の第6の実施形態に係るフラッシュメモリにおける書き込み動作のフローチャート。18 is a flowchart of a write operation in a flash memory according to the sixth embodiment of the present invention. この発明の第7の実施形態に係るフラッシュメモリにおける書き込みデータとバイナリコードとの関係を示すダイアグラム。The diagram which shows the relationship between the write data and the binary code in the flash memory based on 7th Embodiment of this invention. この発明の第7の実施形態に係るフラッシュメモリにおける書き込みデータとバイナリコードとの関係を示すダイアグラム。The diagram which shows the relationship between the write data and the binary code in the flash memory based on 7th Embodiment of this invention. この発明の第7の実施形態に係るフラッシュメモリにおける書き込みデータとバイナリコードとの関係を示すダイアグラム。The diagram which shows the relationship between the write data and the binary code in the flash memory based on 7th Embodiment of this invention. この発明の第7の実施形態に係るフラッシュメモリにおける書き込みデータとバイナリコードとの関係を示すダイアグラム。The diagram which shows the relationship between the write data and the binary code in the flash memory based on 7th Embodiment of this invention. この発明の第1乃至第7の実施形態の変形例に係るフラッシュメモリにおける書き込みデータとバイナリコードとの関係を示すダイアグラム。The diagram which shows the relationship between the write data and the binary code in the flash memory which concerns on the modification of the 1st thru | or 7th embodiment of this invention. この発明の第7の実施形態の変形例に係るフラッシュメモリにおける書き込みデータとバイナリコードとの関係を示すダイアグラム。The diagram which shows the relationship between the write data and the binary code in the flash memory which concerns on the modification of the 7th Embodiment of this invention.

符号の説明Explanation of symbols

1…フラッシュメモリ、2…メモリセルアレイ、3…ロウデコーダ、4…ソース線ドライバ、5…ページバッファ、6…ベリファイ回路、7…制御回路、8…電圧発生回路、9…入出力バッファ、10−0〜10−m…センスアンプ、20−0〜20−m…演算回路、21−1〜21−m…演算器、22−0〜22−m…第1ラッチ回路、23−0〜23−m…第2ラッチ回路、24−0〜24−m…第3ラッチ回路、25−0〜25−m…MOSトランジスタ、26−0〜26−m…第4ラッチ回路、27−0〜27−m…第5ラッチ回路   DESCRIPTION OF SYMBOLS 1 ... Flash memory, 2 ... Memory cell array, 3 ... Row decoder, 4 ... Source line driver, 5 ... Page buffer, 6 ... Verify circuit, 7 ... Control circuit, 8 ... Voltage generation circuit, 9 ... Input / output buffer, 10- 0-10-m sense amplifier, 20-0-20-m arithmetic circuit, 211-1 to 21-m arithmetic unit, 22-0 to 22-m first latch circuit, 23-0 to 23- m: second latch circuit, 24-0 to 24-m ... third latch circuit, 25-0 to 25-m ... MOS transistor, 26-0 to 26-m ... fourth latch circuit, 27-0 to 27- m ... Fifth latch circuit

Claims (5)

電荷蓄積層と制御ゲートとを含む積層ゲートを備え、閾値電圧に応じて“0”データ〜“2−1”データのnビット(nは2以上の自然数)データを保持可能なメモリセルトランジスタと、
ベリファイ動作時において、前記メモリセルトランジスタから読み出された前記データを増幅するセンスアンプと、
プログラム動作時及び前記ベリファイ動作時において、前記メモリセルトランジスタにプログラムすべきプログラムデータにおける1〜nビット目の値をそれぞれ保持する第1乃至第nラッチ回路と、
前記ベリファイ動作時において、前記第1乃至第nラッチ回路のうちの少なくともいずれかから転送された前記値と、前記センスアンプで増幅された前記データとの論理演算を行う演算器と
を具備し、“i”データ(iは“1”〜“2−1”のいずれか)をベリファイする際には、前記第1乃至第nラッチ回路のうちで、前記“i”データをプログラムする際に保持する前記値が有効データとなるものから、前記演算器に対して前記値が転送され、
前記第1乃至第nラッチ回路のうち、“j”データ(jは“0”〜“2−2”のいずれか)がプログラムされる際に前記有効データを保持するものの組み合わせは、前記“j”データよりも前記閾値電圧の高いデータがプログラムされる全ての場合における前記組み合わせと異なる
ことを特徴とする半導体記憶装置。
A memory cell transistor having a stacked gate including a charge storage layer and a control gate and capable of holding n bits (n is a natural number of 2 or more) of “0” data to “2 n −1” data according to a threshold voltage When,
A sense amplifier that amplifies the data read from the memory cell transistor during a verify operation;
First to n-th latch circuits for holding values of 1st to nth bits in program data to be programmed in the memory cell transistors during a program operation and a verify operation,
An arithmetic unit that performs a logical operation of the value transferred from at least one of the first to n-th latch circuits and the data amplified by the sense amplifier during the verify operation; When verifying “i” data (i is any one of “1” to “2 n −1”), when programming the “i” data in the first to nth latch circuits. Since the value to be held is valid data, the value is transferred to the computing unit,
Among the first to n-th latch circuits, a combination of those holding the valid data when “j” data (j is any one of “0” to “2 n -2”) is programmed as “ The semiconductor memory device, wherein the combination is different in all cases where data having a threshold voltage higher than j ″ data is programmed.
前記演算器は、前記転送された前記値が全て有効データであり、且つ、前記センスアンプで増幅された前記データが、前記メモリセルトランジスタの閾値電圧がベリファイレベルよりも高いことを示す値であった場合、前記第1乃至第nラッチ回路のいずれかに保持される無効データを前記有効データに書き換える
ことを特徴とする請求項1記載の半導体記憶装置。
In the arithmetic unit, the transferred values are all valid data, and the data amplified by the sense amplifier is a value indicating that a threshold voltage of the memory cell transistor is higher than a verify level. 2. The semiconductor memory device according to claim 1, wherein invalid data held in any of the first to nth latch circuits is rewritten to the valid data.
前記第1乃至第nラッチ回路の各々に保持される前記値を組み合わせて得られるnビットのコードは、前記“0”〜“2−1”の順に昇順または降順の値である
ことを特徴とする請求項1記載の半導体記憶装置。
An n-bit code obtained by combining the values held in each of the first to nth latch circuits is an ascending or descending value in the order of “0” to “2 n −1”. The semiconductor memory device according to claim 1.
グレイコードで記述されたnビットの前記プログラムデータの各ビットを、前記第1乃至第nラッチ回路のそれぞれに転送する制御回路を更に備え、
前記制御回路は、前記第1乃至第nラッチ回路内の前記値を、前記第1乃至第nラッチ回路の各々に保持される前記値を組み合わせて得られるnビットのコードが、前記“0”〜“2−1”の順に昇順または降順の値となるよう変換する
ことを特徴とする請求項3記載の半導体記憶装置。
A control circuit for transferring each bit of the n-bit program data described in Gray code to each of the first to n-th latch circuits;
The control circuit is configured such that an n-bit code obtained by combining the values in the first to n-th latch circuits with the values held in the first to n-th latch circuits is “0”. 4. The semiconductor memory device according to claim 3, wherein conversion is performed so that values are in ascending order or descending order in order of “2 n −1”.
第(n+1)ラッチ回路を更に備え、
前記ベリファイ動作は、前記メモリセルトランジスタの閾値電圧が、第1ベリファイレベルよりも高いか否かを判定する第1ベリファイ動作と、前記第1ベリファイレベルよりも高い第2ベリファイレベルよりも高いか否かを判定する第2ベリファイ動作を含み、
前記演算器は、前記第1ベリファイ動作時において、前記読み出した前記値が全て有効データであり、且つ、前記センスアンプで増幅された前記データが、前記メモリセルトランジスタの閾値電圧が前記第1ベリファイレベルよりも高いことを示す値であった場合、前記第(n+1)ラッチ回路に前記有効データをセットし、且つ
前記第2ベリファイ動作時において、前記転送された前記値が全て有効データであり、且つ、前記センスアンプで増幅された前記データが、前記メモリセルトランジスタの閾値電圧が前記第2ベリファイレベルよりも高いことを示す値であった場合、前記第1乃至第nラッチ回路のいずれかに保持される無効データを前記有効データに書き換え、
前記第1ベリファイ動作において前記センスアンプで増幅された前記データが、前記メモリセルトランジスタの閾値電圧が前記第1ベリファイレベルよりも低いことを示す値であった場合には、前記メモリセルトランジスタのドレインに対して第1電圧が印加されることにより前記プログラム動作が行われ、
前記第1ベリファイ動作において前記センスアンプで増幅された前記データが、前記メモリセルトランジスタの閾値電圧が前記第1ベリファイレベルよりも高いことを示す値であり、且つ前記第2ベリファイ動作において前記センスアンプで増幅された前記データが、前記メモリセルトランジスタの閾値電圧が前記第2ベリファイレベルよりも低いことを示す値であった場合には、前記メモリセルトランジスタのドレインに対して前記第1電圧よりも高い第2電圧が印加されることにより前記プログラム動作が行われる
ことを特徴とする請求項1記載の半導体記憶装置。
A (n + 1) th latch circuit;
The verify operation includes a first verify operation for determining whether a threshold voltage of the memory cell transistor is higher than a first verify level, and whether the threshold voltage is higher than a second verify level higher than the first verify level. Including a second verify operation for determining whether
In the first verify operation, the arithmetic unit is configured such that the read values are all valid data, and the data amplified by the sense amplifier is the threshold voltage of the memory cell transistor. If the value is higher than the level, the valid data is set in the (n + 1) th latch circuit, and the transferred value is all valid data in the second verify operation, When the data amplified by the sense amplifier is a value indicating that the threshold voltage of the memory cell transistor is higher than the second verify level, the data is supplied to any one of the first to nth latch circuits. Rewrite the invalid data held by the valid data,
When the data amplified by the sense amplifier in the first verify operation is a value indicating that the threshold voltage of the memory cell transistor is lower than the first verify level, the drain of the memory cell transistor The program operation is performed by applying a first voltage to
The data amplified by the sense amplifier in the first verify operation is a value indicating that the threshold voltage of the memory cell transistor is higher than the first verify level, and the sense amplifier in the second verify operation. When the data amplified in step (b) is a value indicating that the threshold voltage of the memory cell transistor is lower than the second verify level, the drain voltage of the memory cell transistor is lower than the first voltage. The semiconductor memory device according to claim 1, wherein the program operation is performed by applying a high second voltage.
JP2007221464A 2007-08-28 2007-08-28 Semiconductor storage device Pending JP2009054246A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007221464A JP2009054246A (en) 2007-08-28 2007-08-28 Semiconductor storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007221464A JP2009054246A (en) 2007-08-28 2007-08-28 Semiconductor storage device

Publications (1)

Publication Number Publication Date
JP2009054246A true JP2009054246A (en) 2009-03-12

Family

ID=40505190

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007221464A Pending JP2009054246A (en) 2007-08-28 2007-08-28 Semiconductor storage device

Country Status (1)

Country Link
JP (1) JP2009054246A (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010282697A (en) * 2009-06-05 2010-12-16 Toshiba Corp Non-volatile semiconductor storage device
JP2011008838A (en) * 2009-06-23 2011-01-13 Toshiba Corp Nonvolatile semiconductor memory device and writing method of the same
JP2011014195A (en) * 2009-07-02 2011-01-20 Toshiba Corp Flash memory
JP2011181131A (en) * 2010-02-26 2011-09-15 Toshiba Corp Semiconductor memory device
JP2011187141A (en) * 2010-03-10 2011-09-22 Toshiba Corp Transfer circuit and nonvolatile semiconductor memory device using the same
JP2011198414A (en) * 2010-03-19 2011-10-06 Toshiba Corp Semiconductor memory device
JP2012133833A (en) * 2010-12-20 2012-07-12 Samsung Yokohama Research Institute Co Ltd Nonvolatile semiconductor memory device
JP2012212479A (en) * 2011-03-30 2012-11-01 Toshiba Corp Semiconductor memory
CN103383861A (en) * 2012-05-04 2013-11-06 三星电子株式会社 System with three-dimensional nonvolatile memory and programming method therefor

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010282697A (en) * 2009-06-05 2010-12-16 Toshiba Corp Non-volatile semiconductor storage device
JP2011008838A (en) * 2009-06-23 2011-01-13 Toshiba Corp Nonvolatile semiconductor memory device and writing method of the same
JP2011014195A (en) * 2009-07-02 2011-01-20 Toshiba Corp Flash memory
JP2011181131A (en) * 2010-02-26 2011-09-15 Toshiba Corp Semiconductor memory device
US8514640B2 (en) 2010-02-26 2013-08-20 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device
US8374041B2 (en) 2010-03-10 2013-02-12 Kabushiki Kaisha Toshiba Transfer circuit, nonvolatile semiconductor device using the same, and transfer method of the same
JP2011187141A (en) * 2010-03-10 2011-09-22 Toshiba Corp Transfer circuit and nonvolatile semiconductor memory device using the same
JP2011198414A (en) * 2010-03-19 2011-10-06 Toshiba Corp Semiconductor memory device
JP2012133833A (en) * 2010-12-20 2012-07-12 Samsung Yokohama Research Institute Co Ltd Nonvolatile semiconductor memory device
JP2012212479A (en) * 2011-03-30 2012-11-01 Toshiba Corp Semiconductor memory
US8797807B2 (en) 2011-03-30 2014-08-05 Kabushiki Kaisha Toshiba Semiconductor memory and semiconductor memory control method
CN103383861A (en) * 2012-05-04 2013-11-06 三星电子株式会社 System with three-dimensional nonvolatile memory and programming method therefor
JP2013235645A (en) * 2012-05-04 2013-11-21 Samsung Electronics Co Ltd Programming method for memory system including three-dimensional nonvolatile memory
US9606731B2 (en) 2012-05-04 2017-03-28 Samsung Electronics Co., Ltd. System and method including three dimensional nonvolatile memory device and random access memory
US9606730B2 (en) 2012-05-04 2017-03-28 Samsung Electronics Co., Ltd. System and method including three dimensional nonvolatile memory device and random access memory
CN107093448A (en) * 2012-05-04 2017-08-25 三星电子株式会社 Storage system and its operating method
CN107093448B (en) * 2012-05-04 2020-09-29 三星电子株式会社 Storage system and operation method thereof

Similar Documents

Publication Publication Date Title
KR101572830B1 (en) Method of programming a nonvolatile memory device nonvolatile memory device and nonvolatile memory system
US8537612B2 (en) Nonvolatile memory device, system, and programming method
US8897066B2 (en) Method of programming nonvolatile memory device
JP2009054246A (en) Semiconductor storage device
US8817535B1 (en) Programming method for multi-level cell flash for minimizing inter-cell interference
JP4744819B2 (en) FLASH MEMORY DEVICE HAVING MULTI-LEVEL CELL AND ITS READING METHOD AND PROGRAM METHOD
US8539138B2 (en) Flash memory device and method of programming flash memory device
CN101194323B (en) Selective application method and system of program inhibit schemes in non-volatile memory
US9123423B2 (en) Programming operations in a memory device
KR101517597B1 (en) Nonvolatile memory devie and generating program voltage thereof
KR101636248B1 (en) Flash memory device, flash memory system, and method of programming the flash memory device
KR101829208B1 (en) Method of operating a semiconductor memory device
US20140376310A1 (en) Method of writing data in non-volatile memory device
TWI508084B (en) Determining and transferring data from a memory array
JP2009151865A (en) Nonvolatile semiconductor storage device and its writing method
TWI537723B (en) Semiconductor memory apparatus and data processing method
JP2019207743A (en) Semiconductor device
JP2008091011A (en) Flash memory element and program method thereof
JP4560073B2 (en) Nonvolatile semiconductor memory device
CN110675908A (en) Semiconductor memory device with a plurality of memory cells
JP2010135023A (en) Semiconductor memory device
US7684240B2 (en) Flash memory device having bit lines decoded in irregular sequence
US8711620B2 (en) Memory device having collaborative filtering to reduce noise
TWI523036B (en) Semiconductor memory device
KR20200042067A (en) Semiconductor device