JP2017111849A - Semiconductor storage - Google Patents

Semiconductor storage Download PDF

Info

Publication number
JP2017111849A
JP2017111849A JP2016214999A JP2016214999A JP2017111849A JP 2017111849 A JP2017111849 A JP 2017111849A JP 2016214999 A JP2016214999 A JP 2016214999A JP 2016214999 A JP2016214999 A JP 2016214999A JP 2017111849 A JP2017111849 A JP 2017111849A
Authority
JP
Japan
Prior art keywords
program
programmed
data
bits
selected page
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.)
Granted
Application number
JP2016214999A
Other languages
Japanese (ja)
Other versions
JP6293846B2 (en
Inventor
一貴 山内
Kazutaka Yamauchi
一貴 山内
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.)
Winbond Electronics Corp
Original Assignee
Winbond Electronics 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 Winbond Electronics Corp filed Critical Winbond Electronics Corp
Priority to JP2016214999A priority Critical patent/JP6293846B2/en
Publication of JP2017111849A publication Critical patent/JP2017111849A/en
Application granted granted Critical
Publication of JP6293846B2 publication Critical patent/JP6293846B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Read Only Memory (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a semiconductor storage capable of saving unqualified memory cells while ameliorating a yield deteriorated by program failure.SOLUTION: A method of programming a NAND type flash memory comprises: a step of applying a program pulse to a selected page; a step of determining whether a program in the selected page is qualified; and a step of further applying the program pulse to the selected page if the number of applied program pulses has not reached an optimal number when determined to be unqualified, and determining that the page is quasi-qualified if the selected page has a predetermined number of unqualified bits when the number of applied program pulses has reached the optimal number.SELECTED DRAWING: Figure 6

Description

本発明は、半導体記憶装置、特にNAND型フラッシュメモリのプログラム方法に関する。   The present invention relates to a method for programming a semiconductor memory device, particularly a NAND flash memory.

NAND型フラッシュメモリでは、データのプログラムや消去が繰り返されることで、トンネル絶縁膜の劣化により電荷保持特性が悪化したり、トンネル絶縁膜にトラップされた電荷によりしきい値変動が生じ、ビットエラーを引き起こす。特許文献1は、このようなビットエラー対策として、誤り検出訂正回路(ECC:Error Checking Correction)を搭載している。また、特許文献2は、1つのメモリセルにマルチビットのデータを格納するNAND型フラッシュメモリにおいて、マルチビットのデータのエラー訂正スキームを開示している。さらに特許文献3は、訂正したエラー数がしきい値以上の物理ブロックを警告ブロックとしてテーブルに登録し、データ書込み時に警告ブロックの選択の優先順位を下げるフラッシュメモリを開示している。   In NAND flash memory, repeated programming and erasing of data deteriorates the charge retention characteristics due to deterioration of the tunnel insulating film, or threshold fluctuations occur due to charges trapped in the tunnel insulating film, resulting in bit errors. cause. Patent Document 1 is equipped with an error checking and correcting circuit (ECC) as a countermeasure against such a bit error. Patent Document 2 discloses an error correction scheme for multi-bit data in a NAND flash memory that stores multi-bit data in one memory cell. Further, Patent Document 3 discloses a flash memory in which physical blocks having a corrected number of errors equal to or greater than a threshold value are registered in the table as warning blocks, and the priority of selection of warning blocks is lowered when data is written.

特開2010−152989号公報JP 2010-152989 A 特開2008−165805号公報JP 2008-165805 A 特開2010−79486号公報JP 2010-79486 A

図1に、ECC回路をオンチップで搭載するNAND型フラッシュメモリの要部を示す。外部入出力端子から入力されたプログラムデータは、ページバッファ/センス回路10へロードされ、ロードされたプログラムデータが転送回路20を介してECC回路30へ転送される。転送回路20は、双方向のデータ転送が可能な複数のトランジスタを含み、各トランジスタは、ゲートに共通接続された制御信号TGによって駆動される。ECC回路30は、転送されたプログラムデータの演算を行い、誤り検出・訂正のための誤り訂正符号を生成し、誤り訂正符号をページバッファ/センス回路10の所定領域に書き戻す。次に、ページバッファ/センス回路10に保持されたプログラムデータおよび誤り訂正符号がメモリアレイの選択ページにプログラムされる。   FIG. 1 shows a main part of a NAND flash memory on which an ECC circuit is mounted on-chip. Program data input from the external input / output terminal is loaded into the page buffer / sense circuit 10, and the loaded program data is transferred to the ECC circuit 30 via the transfer circuit 20. The transfer circuit 20 includes a plurality of transistors capable of bidirectional data transfer, and each transistor is driven by a control signal TG commonly connected to the gates. The ECC circuit 30 calculates the transferred program data, generates an error correction code for error detection / correction, and writes the error correction code back to a predetermined area of the page buffer / sense circuit 10. Next, the program data and error correction code held in the page buffer / sense circuit 10 are programmed into the selected page of the memory array.

図2は、従来のプログラム動作のフローである。選択ページのワード線にはプログラムパルスが印加され、ビット線にはプログラムデータに応じた電圧が設定され、選択ページにプログラムパルスが印加される(S10)。次に、選択ページのプログラムベリファイが行われ(S20)、選択ページの全てのメモリセルのプログラムが合格したか否かが判定される(S30)。全てのメモリセルのプログラムが合格と判定された場合には、プログラムが終了される。プログラムが不合格のメモリセルがある場合には、プログラムパルスの印加回数がNMAXに到達したか否かが判定される(S40)。ここで、NMAXとは、プログラムに許容される最大時間またはプログラムに許容される最大のプログラムパルスの印加回数を意味する。NMAXに到達した場合には、プログラム失敗のステータスが外部のコントローラに通知されるとともに、当該ブロックがバッドブロックとして管理される。一方、NMAXに到達していなければ、ISPP(Incremental Step Program Pulse)に従い、前回のプログラムパルスよりもΔVだけ大きなステップ電圧を有するプログラムパルスが生成されS50)、このプログラムパルスが選択ページに印加される。   FIG. 2 is a flowchart of a conventional program operation. A program pulse is applied to the word line of the selected page, a voltage corresponding to the program data is set to the bit line, and a program pulse is applied to the selected page (S10). Next, program verification of the selected page is performed (S20), and it is determined whether the program of all the memory cells of the selected page has passed (S30). If it is determined that all the memory cells have been successfully programmed, the program is terminated. If there is a memory cell in which the program has failed, it is determined whether the number of application times of the program pulse has reached NMAX (S40). Here, NMAX means the maximum time allowed for programming or the maximum number of program pulses allowed for programming. When NMAX is reached, the program failure status is notified to the external controller, and the block is managed as a bad block. On the other hand, if NMAX has not been reached, a program pulse having a step voltage larger by ΔV than the previous program pulse is generated according to ISPP (Incremental Step Program Pulse) (S50), and this program pulse is applied to the selected page. .

外部のコントローラ等に搭載されたECC機能を利用しないか、あるいはECCを搭載していないフラッシュメモリでは、プログラムベリファイの合格は、全ビットの合格が前提である。これに対し、外部のコントローラ等に搭載されたECC機能を利用するか、あるいはECCがオンチップ搭載されたフラッシュメモリでは、ベリファイにおいて一部の不合格ビット(「0」プログラムが不合格のメモリセル)があったとしても、これをECCで救済することで疑似合格とすることが可能である。例えば、ECCによってmビットの誤り検出・訂正が可能であれば、理論上、最大でmビットの不合格ビットを救済することができる。ECCによって救済できる最大のビット数をNcc、ベリファイにおいて疑似合格とすることができる最大の不合格ビット数をNp、実際の不合格のビット数をNfとするとき、Npは、Ncc≧Npとなるように設定され、好ましくはNcc>Npに設定される。Np≧Nfのとき、選択ページは、不合格ビットを含んでいるけれども、不合格ビットがECCにより救済可能であるため、ベリファイは疑似合格と判定される。そして、選択ページの読出しが行われるとき、選択ページに含まれる不合格ビットが誤りとして検出され、このデータが訂正される。   In a flash memory that does not use the ECC function installed in an external controller or the like, or does not have an ECC installed, it is premised that the program verify passes all bits. On the other hand, in a flash memory that uses an ECC function mounted on an external controller or the like or that has an ECC mounted on-chip, some of the fail bits (“0” program is rejected in the memory cell in verify). ), It is possible to make a pseudo-pass by relieving this with ECC. For example, if m-bit error detection / correction is possible by ECC, it is theoretically possible to rescue up to m failed bits. When Ncc is the maximum number of bits that can be relieved by ECC, Np is the maximum number of failed bits that can be pseudo-passed in verification, and Nf is the actual number of failed bits, Np is Ncc ≧ Np Preferably, Ncc> Np is set. When Np ≧ Nf, the selected page includes a fail bit. However, since the fail bit can be relieved by ECC, the verification is determined to be a false pass. Then, when the selected page is read, a fail bit included in the selected page is detected as an error, and this data is corrected.

疑似合格の判定をすることで、プログラム失敗やバッドブロックを減らし、歩留まりを向上させ、さらにプログラムパルスの印加回数を抑制することで、プログラムディスターブを減らすことができる。   By determining the pseudo-pass, program failures and bad blocks can be reduced, yield can be improved, and program disturb can be reduced by suppressing the number of program pulses applied.

しかしながら、疑似合格を用いた従来のプログラム方法には次のような課題がある。例えば、kビットまでの不合格ビットが疑似合格とされるとき(Np=k)、プログラムパルスの印加回数がNMAXに到達する前であれば、ベリファイ時に、実際の不合格ビット数Nfが疑似合格とすることができる最大の不合格ビット数Npよりも小さくなった時点で自動的にプログラムが終了される。言い換えれば、プログラムパルスの印加回数がNMAXよりも十分に小さく、印加できる回数にまだ余裕があったとしても、Nf≦Npになれば疑似合格と判定され、プログラムが終了してしまう。しかし、プログラムが不合格とされたメモリセルの中には、次のプログラムパルスの印加によって合格し得るものも存在し、本来であれば、このようなメモリセルは、不合格ビットと判定されるのではなく、合格ビットと判定されることが望ましい。疑似合格で不合格ビット数が多くなれば、ECCの他での機能が大きく制限されてしまう。   However, the conventional programming method using pseudo-pass has the following problems. For example, when fail bits up to k bits are regarded as pseudo-pass (Np = k), if the number of program pulse applications is before reaching NMAX, the actual number of fail bits Nf is pseudo-pass during verification. The program is automatically terminated when it becomes smaller than the maximum number of failed bits Np. In other words, even if the number of application times of the program pulse is sufficiently smaller than NMAX and there is still a margin for the number of application times, if Nf ≦ Np, it is determined as a pseudo-pass and the program ends. However, some memory cells that have failed to be programmed can be passed by the application of the next program pulse, and such a memory cell is determined to be a failed bit. It is desirable to determine that the bit is not a pass bit. If the number of rejected bits increases due to pseudo-pass, functions other than ECC are greatly limited.

本発明は、このような従来の課題を解決するものであり、プログラム不良の歩留まりを改善しつつ不合格メモリセルの救済を行うことができる半導体記憶装置を提供することを目的とする。   An object of the present invention is to solve such a conventional problem and to provide a semiconductor memory device capable of repairing a failed memory cell while improving the yield of a program failure.

本発明に係るNAND型フラッシュメモリのプログラム方法は、選択ページにプログラムパルスを印加するステップと、選択ページのプログラムの合否を判定するステップと、不合格であると判定されたとき、プログラムパルスの印加回数がプログラムの許容最大値よりも小さい最適値に到達していない場合には、選択ページにさらにプログラムパルスを印加し、プログラムパルスの印加回数が前記最適値に到達している場合には、選択ページが予め決められた不合格ビット数であれば疑似合格と判定するステップとを有する。   The NAND flash memory programming method according to the present invention includes a step of applying a program pulse to a selected page, a step of determining pass / fail of the program of the selected page, and application of a program pulse when it is determined to be unacceptable. If the number of times has not reached the optimum value smaller than the maximum allowable value of the program, further program pulses are applied to the selection page, and if the number of application times of the program pulses has reached the optimum value, the selection is made. And determining that the page is a pseudo-pass if the page has a predetermined number of failed bits.

好ましくはプログラム方法はさらに、選択ページが予め決められた不合格ビット数よりも多い場合には、プログラムパルスの印加回数が前記許容最大値に到達しているか否かを判定し、前記許容最大値に到達していない場合には、選択ページにさらにプログラムパルスを印加し、前記許容最大値に到達している場合には、プログラム失敗としてプログラムを終了するステップを含む。好ましくは前記許容最大値は、選択ページのプログラムに許容されるプログラムパルスの最大印加回数である。好ましくは前記予め決められた不合格ビット数は、誤り検出・訂正によって救済可能なビット数以下である。好ましくは前記最適値は、外部のコントローラによって設定可能である。好ましくはプログラム方法はさらに、プログラムすべきデータの誤り訂正符号を生成するステップと、前記選択ページには、プログラムデータと前記誤り訂正符号とがプログラムされる。   Preferably, the programming method further determines whether or not the number of application times of the program pulse has reached the allowable maximum value when the selected page is larger than a predetermined number of failed bits, and the allowable maximum value If not reached, a program pulse is further applied to the selected page, and if the allowable maximum value is reached, the program is terminated as a program failure. Preferably, the allowable maximum value is the maximum number of application times of the program pulse allowed for the program of the selected page. Preferably, the predetermined number of failed bits is less than or equal to the number of bits that can be relieved by error detection / correction. Preferably, the optimum value can be set by an external controller. Preferably, the program method further includes generating an error correction code of data to be programmed, and the selected page is programmed with program data and the error correction code.

本発明に係るNAND型フラッシュメモリのプログラム方法は、プログラムすべきデータを受け取るステップと、当該プログラムすべきデータによりプログラムされるビット数が、誤り検出・訂正手段により救済可能な救済ビット数以下であるか否を判定するステップと、前記誤り検出・訂正手段により前記プログラムすべきデータの誤り訂正符号を生成するステップと、前記プログラムすべきデータによりプログラムされるビット数が前記救済ビット数以下であると判定されたとき、選択ページのレギュラー領域にプログラムをすることなく、スペア領域に前記誤り訂正符号をプログラムすることで選択ページへのプログラムを終了するステップとを有する。   In the NAND flash memory programming method according to the present invention, the step of receiving data to be programmed and the number of bits programmed by the data to be programmed are equal to or less than the number of rescue bits that can be relieved by the error detection / correction means. Determining whether or not, a step of generating an error correction code of the data to be programmed by the error detection / correction means, and a number of bits programmed by the data to be programmed is less than or equal to the number of relief bits When the determination is made, there is a step of ending the program to the selected page by programming the error correction code in the spare area without programming in the regular area of the selected page.

好ましくはプログラム方法はさらに、前記プログラムすべきデータによりプログラムされるビット数が救済ビット数よりも多いと判定されたとき、選択ページのレギュラー領域にプログラムすべきデータをプログラムするステップを有する。   Preferably, the programming method further includes a step of programming the data to be programmed in the regular area of the selected page when it is determined that the number of bits programmed by the data to be programmed is larger than the number of relief bits.

本発明に係る半導体記憶装置は、メモリアレイと、プログラムすべきデータの誤り訂正符号を生成する誤り検出・訂正手段と、前記プログラムすべきデータおよび前記誤り訂正符号を前記メモリアレイの選択ページにプログラムするプログラム手段とを含み、前記プログラム手段は、選択ページにプログラムパルスを印加し、選択ページのプログラムが不合格であると判定したとき、プログラムパルスの印加回数がプログラムの許容最大値よりも小さい最適値に到達していない場合には、選択ページにさらにプログラムパルスを印加し、プログラムパルスの印加回数が前記最適値に到達している場合には、選択ページが予め決められた不合格ビット数であれば疑似合格と判定する処理を実行する。   A semiconductor memory device according to the present invention includes a memory array, error detection / correction means for generating an error correction code for data to be programmed, and the data to be programmed and the error correction code in a selected page of the memory array. The program means applies a program pulse to the selected page, and when it is determined that the program of the selected page is unsuccessful, the number of times the program pulse is applied is less than the maximum allowable value of the program. If the value has not reached the value, a program pulse is further applied to the selected page, and if the number of application times of the program pulse has reached the optimum value, the selected page has a predetermined number of failed bits. If there is, a process for determining that it is a pseudo-pass is executed.

本発明に係る半導体装置は、メモリアレイと、プログラムすべきデータの誤り訂正符号を生成する誤り検出・訂正手段と、プログラムすべきデータおよび前記誤り訂正符号を前記メモリアレイの選択ページにプログラムするプログラム手段とを含み、前記プログラム手段は、プログラムすべきデータによりプログラムされるビット数が前記誤り検出・訂正手段により救済可能な救済ビット数以下であるとき、選択ページのレギュラー領域にプログラムをすることなくスペア領域に前記誤り訂正符号をプログラムすることで選択ページのプログラムを終了する。好ましくは半導体記憶装置は、前記メモリアレイの選択ページのデータを読み出す手段を含み、前記誤り検出・訂正手段は、読み出された誤り訂正符号に基づき読み出されたデータの誤り検出・訂正を行う。   A semiconductor device according to the present invention includes a memory array, error detection / correction means for generating an error correction code for data to be programmed, and a program for programming data to be programmed and the error correction code to a selected page of the memory array. The program means does not program the regular area of the selected page when the number of bits programmed by the data to be programmed is less than or equal to the number of relief bits that can be relieved by the error detection / correction means. The program for the selected page is completed by programming the error correction code in the spare area. Preferably, the semiconductor memory device includes means for reading data of a selected page of the memory array, and the error detection / correction means performs error detection / correction of the read data based on the read error correction code. .

本発明によれば、プログラムのベリファイにおいて不合格と判定されたとき、プログラムパルスの印加回数が許容最大値よりも小さい最適値に到達していない場合にはさらにプログラムパルスを印加し、プログラムパルスの印加回数が最適値に到達している場合には、選択ページが予め決められた不合格ビット数であれば疑似合格と判定する処理を実行するようにしたので、少なくともプログラムパルスが最適値に到達するまでは、全ビットの合否判定が保証される。これにより、本来であれば合格できるメモリセルを不合格判定から救済することができる。   According to the present invention, when it is determined that the program verification is unsuccessful, the program pulse is further applied when the number of application times of the program pulse has not reached the optimum value smaller than the allowable maximum value. When the number of times of application has reached the optimal value, if the selected page has a predetermined number of rejected bits, the process of determining pseudo pass is executed, so at least the program pulse reaches the optimal value. Until this is done, pass / fail judgment of all bits is guaranteed. Thereby, a memory cell that can pass normally can be relieved from the failure determination.

従来のフラッシュメモリのECC動作を説明する図である。It is a figure explaining ECC operation | movement of the conventional flash memory. 従来のフラッシュメモリのプログラム動作を説明するフローチャートである。It is a flowchart explaining the program operation | movement of the conventional flash memory. 本発明の実施例に係るNAND型フラッシュメモリの全体の概略構成を示す図である。1 is a diagram showing an overall schematic configuration of a NAND flash memory according to an embodiment of the present invention. 本発明の実施例に係るメモリセルアレイのNANDストリングの構成を示す回路図である。3 is a circuit diagram showing a configuration of a NAND string of a memory cell array according to an embodiment of the present invention. FIG. 本発明の実施例に係るフラッシュメモリのプログラム時に各部に印加される電圧の一例を示す図である。It is a figure which shows an example of the voltage applied to each part at the time of the program of the flash memory based on the Example of this invention. 本発明の第1の実施例に係るフラッシュメモリのプログラム動作を説明するフローチャートである。3 is a flowchart illustrating a program operation of the flash memory according to the first example of the present invention. 本発明の第1の実施例によるプログラム動作時のレギュラー領域のECC処理を説明する図である。It is a figure explaining the ECC process of the regular area at the time of program operation by the 1st example of the present invention. 本発明の第1の実施例によるプログラム動作時のスペア領域のECC処理を説明する図である。It is a figure explaining the ECC process of the spare area at the time of the program operation | movement by 1st Example of this invention. 本発明の第1の実施例による読出し動作時を説明するフローチャートである。3 is a flowchart illustrating a read operation according to the first exemplary embodiment of the present invention. 本発明の第2の実施例に係るフラッシュメモリのプログラム動作を説明するフローチャートである。7 is a flowchart illustrating a program operation of a flash memory according to a second example of the present invention. 本発明の第3の実施例に係るフラッシュメモリのプログラム動作を説明するフローチャートである。It is a flowchart explaining the program operation | movement of the flash memory based on 3rd Example of this invention.

次に、本発明の実施の形態について図面を参照して詳細に説明する。ここでは、好ましい形態としてNAND型のフラッシュメモリを例示する。なお、図面は、分かり易くするために各部を強調して示してあり、実際のデバイスのスケールとは異なることに留意すべきである。   Next, embodiments of the present invention will be described in detail with reference to the drawings. Here, a NAND flash memory is illustrated as a preferred form. It should be noted that in the drawings, each part is highlighted for easy understanding, and is different from an actual device scale.

本発明の実施例に係るフラッシュメモリの典型的な構成を図3に示す。但し、ここに示すフラッシュメモリの構成は例示であり、本発明は、必ずしもこのような構成に限定されるものではない。本実施例のフラッシュメモリ100は、複数のメモリセルが行列状に配列されたメモリアレイ110と、外部入出力端子I/Oに接続され入出力データを保持する入出力バッファ120と、メモリアレイ110にプログラムするデータやそこから読み出されたデータの誤り検出・訂正を行うECC回路130と、入出力バッファ120からのアドレスデータを受け取るアドレスレジスタ140と、入出力バッファ120からのコマンドデータや外部からの制御信号を受け取り、各部を制御する制御部150と、アドレスレジスタ140から行アドレス情報Axを受け取り、行アドレス情報Axをデコードし、デコード結果に基づきブロックの選択およびワード線の選択等を行うワード線選択回路160と、ワード線選択回路160によって選択されたページから読み出されたデータを保持したり、選択されたページへの書込みデータを保持するページバッファ/センス回路170と、アドレスレジスタ140から列アドレス情報Ayを受け取り、列アドレス情報Ayをデコードし、当該デコード結果に基づきページバッファ/センス回路170内のデータの選択等を行う列選択回路180と、データの読出し、プログラムおよび消去等のために必要な種々の電圧(書込み電圧Vpgm、パス電圧Vpass、読出しパス電圧Vread、消去電圧Versなど)を生成する内部電圧発生回路190とを含んで構成される。   A typical configuration of a flash memory according to an embodiment of the present invention is shown in FIG. However, the configuration of the flash memory shown here is an exemplification, and the present invention is not necessarily limited to such a configuration. The flash memory 100 of this embodiment includes a memory array 110 in which a plurality of memory cells are arranged in a matrix, an input / output buffer 120 connected to an external input / output terminal I / O and holding input / output data, and the memory array 110. ECC circuit 130 for error detection / correction of data to be programmed into the data and data read therefrom, address register 140 for receiving address data from the input / output buffer 120, command data from the input / output buffer 120 and externally A control unit 150 for controlling each unit, a row address information Ax from the address register 140, a word for decoding the row address information Ax, and selecting a block and a word line based on the decoding result Selection by the line selection circuit 160 and the word line selection circuit 160 The column address information Ay is received from the page buffer / sense circuit 170 that holds the data read from the read page and the write data to the selected page and the address register 140, and the column address information Ay is decoded. The column selection circuit 180 for selecting data in the page buffer / sense circuit 170 based on the decoding result, and various voltages (write voltage Vpgm, pass voltage, etc.) necessary for data reading, programming, erasing, etc. Vpass, read pass voltage Vread, erase voltage Vers, and the like).

メモリアレイ110は、列方向に配置されたm個のメモリブロックBLK(0)、BLK(1)、・・・、BLK(m-1)を有する。ブロックBLK(0)に近接して、ページバッファ/センス回路170が配置される。このような構成以外にも、ページバッファ/センス回路170は、ブロックの他方の端部、あるいは両側の端部に配置されるものであってもよい。   The memory array 110 has m memory blocks BLK (0), BLK (1),..., BLK (m−1) arranged in the column direction. A page buffer / sense circuit 170 is disposed adjacent to the block BLK (0). In addition to this configuration, the page buffer / sense circuit 170 may be disposed at the other end of the block or at both ends.

1つのメモリブロックには、図4に示すように、複数のメモリセルを直列に接続したNANDストリングユニットNUが複数形成され、1つのメモリブロック内にn+1個のストリングユニットNUが行方向に配列されている。セルユニットNUは、直列に接続された複数のメモリセルMCi(i=0、1、・・・、31)と、一方の端部であるメモリセルMC31のドレイン側に接続された選択トランジスタTDと、他方の端部であるメモリセルMC0のソース側に接続された選択トランジスタTSとを含み、選択トランジスタTDのドレインは、対応する1つのビット線GBLに接続され、選択トランジスタTSのソースは、共通のソース線SLに接続される。   As shown in FIG. 4, a plurality of NAND string units NU in which a plurality of memory cells are connected in series are formed in one memory block, and n + 1 string units NU are arranged in the row direction in one memory block. ing. The cell unit NU includes a plurality of memory cells MCi (i = 0, 1,..., 31) connected in series, and a selection transistor TD connected to the drain side of the memory cell MC31 which is one end. , The selection transistor TS connected to the source side of the memory cell MC0 which is the other end, the drain of the selection transistor TD is connected to the corresponding one bit line GBL, and the source of the selection transistor TS is common Connected to the source line SL.

メモリセルMCiのコントロールゲートは、ワード線WLiに接続され、選択トランジスタTD、TSのゲートは、ワード線WLと並行する選択ゲート線SGD、SGSに接続される。ワード線選択回路160は、行アドレスAxまたは変換されたアドレスに基づきブロックを選択するとき、ブロックの選択ゲート信号SGS、SGDを介して選択トランジスタTD、TSを選択的に駆動する。図4は、典型的なセルユニットの構成を示しているが、セルユニットは、NANDストリング内に1つまたは複数のダミーセルを包含するものであってもよい。   The control gate of the memory cell MCi is connected to the word line WLi, and the gates of the selection transistors TD and TS are connected to selection gate lines SGD and SGS parallel to the word line WL. When the word line selection circuit 160 selects a block based on the row address Ax or the converted address, the word line selection circuit 160 selectively drives the selection transistors TD and TS via the block selection gate signals SGS and SGD. Although FIG. 4 shows a typical cell unit configuration, the cell unit may include one or more dummy cells in the NAND string.

メモリセルは、典型的に、Pウエル内に形成されたN型の拡散領域であるソース/ドレインと、ソース/ドレイン間のチャンネル上に形成されたトンネル酸化膜と、トンネル酸化膜上に形成されたフローティングゲート(電荷蓄積層)と、フローティングゲート上に誘電体膜を介して形成されたコントロールゲートとを含むMOS構造を有する。フローティングゲートに電荷が蓄積されていないとき、つまりデータ「1」が書込まれているとき、しきい値は負状態にあり、メモリセルは、ノーマリオンである。フローティングゲートに電子が蓄積されたとき、つまりデータ「0」が書込まれているとき、しきい値は正にシフトし、メモリセルは、ノーマリオフである。但し、メモリセルは、1ビット(2値データ)を記憶するSLCタイプでもよいし、多ビットを記憶するMLCタイプであってもよい。   A memory cell is typically formed on a source / drain which is an N type diffusion region formed in a P-well, a tunnel oxide film formed on a channel between the source / drain, and a tunnel oxide film. The MOS structure includes a floating gate (charge storage layer) and a control gate formed on the floating gate via a dielectric film. When charge is not accumulated in the floating gate, that is, when data “1” is written, the threshold value is in a negative state, and the memory cell is normally on. When electrons are accumulated in the floating gate, that is, when data “0” is written, the threshold value is shifted to positive, and the memory cell is normally off. However, the memory cell may be an SLC type that stores 1 bit (binary data) or an MLC type that stores multiple bits.

図5は、フラッシュメモリの各動作時に印加されるバイアス電圧の一例を示したテーブルである。読出し動作では、ビット線に或る正の電圧を印加し、選択されたワード線に或る電圧(例えば0V)を印加し、非選択ワード線にパス電圧Vpass(例えば4.5V)を印加し、選択ゲート線SGD、SGSに正の電圧(例えば4.5V)を印加し、ビット線選択トランジスタTD、ソース線選択トランジスタTSをオンし、共通ソース線に0Vを印加する。プログラム(書込み)動作では、選択されたワード線に高電圧のプログラム電圧Vprog(15〜20V)を印加し、非選択のワード線に中間電位(例えば10V)を印加し、ビット線選択トランジスタTDをオンさせ、ソース線選択トランジスタTSをオフさせ、「0」または「1」のデータに応じた電位をビット線GBLに供給する。消去動作では、ブロック内の選択されたワード線に0Vを印加し、Pウエルに高電圧(例えば20V)を印加し、フローティングゲートの電子を基板に引き抜くことで、ブロック単位でデータを消去する。   FIG. 5 is a table showing an example of the bias voltage applied during each operation of the flash memory. In a read operation, a certain positive voltage is applied to the bit line, a certain voltage (for example, 0 V) is applied to the selected word line, and a pass voltage Vpass (for example, 4.5 V) is applied to the unselected word line. A positive voltage (for example, 4.5 V) is applied to the selection gate lines SGD and SGS, the bit line selection transistor TD and the source line selection transistor TS are turned on, and 0 V is applied to the common source line. In the program (write) operation, a high voltage program voltage Vprog (15 to 20 V) is applied to the selected word line, an intermediate potential (for example, 10 V) is applied to the non-selected word line, and the bit line selection transistor TD is turned on. The source line selection transistor TS is turned off, and a potential corresponding to data “0” or “1” is supplied to the bit line GBL. In the erasing operation, 0 V is applied to the selected word line in the block, a high voltage (for example, 20 V) is applied to the P well, and electrons in the floating gate are extracted to the substrate, thereby erasing data in units of blocks.

プログラム動作時に入出力バッファ120を介して入力データDiがページバッファ/センス回路170にロードされると、ECC回路130は、ページバッファ/センス回路170から転送された入力データDiを演算し、入力データDiの誤り検出訂正に必要な誤り訂正符号またはパリティビットを生成する。ECCの演算は、例えば、ハミングコードやリード・ソロモンなどの公知の手法によって行われ、入力されたkビットまたはkバイトの入力データDiをp=k+qに変換する。本明細書では、「q」を、入力データDiの誤り検出訂正に必要な誤り訂正符号またはパリティビットと称する。1つの好ましい例では、ECC回路130は、誤り訂正符号をページバッファ/センス回路170のスペア領域にセットする。こうして、ページバッファ/センス回路170にセットされた入力データDiと誤り訂正符号がメモリアレイ110の選択ページにプログラムされる。   When the input data Di is loaded into the page buffer / sense circuit 170 via the input / output buffer 120 during the program operation, the ECC circuit 130 calculates the input data Di transferred from the page buffer / sense circuit 170, and the input data An error correction code or a parity bit necessary for error detection and correction of Di is generated. The ECC calculation is performed by a known method such as a Hamming code or Reed-Solomon, and converts the input k-bit or k-byte input data Di into p = k + q. In this specification, “q” is referred to as an error correction code or parity bit necessary for error detection and correction of the input data Di. In one preferred example, the ECC circuit 130 sets the error correction code in the spare area of the page buffer / sense circuit 170. Thus, the input data Di and the error correction code set in the page buffer / sense circuit 170 are programmed into the selected page of the memory array 110.

読出し動作時にメモリアレイ110の選択ページから読み出されたデータがページバッファ/センス回路170に保持されると、ECC回路130は、ページバッファ/センス回路170から転送された誤り訂正符号に基づき読出しデータの誤りの検出、訂正を行い、誤りが検出された場合には訂正したデータをページバッファ/センス回路170にセットする。そして、ページバッファ/センス回路170の保持されたデータが入出力バッファ120を介して出力される。   When the data read from the selected page of the memory array 110 during the read operation is held in the page buffer / sense circuit 170, the ECC circuit 130 reads the read data based on the error correction code transferred from the page buffer / sense circuit 170. The error is detected and corrected. If an error is detected, the corrected data is set in the page buffer / sense circuit 170. Then, the data held in the page buffer / sense circuit 170 is output via the input / output buffer 120.

次に、本発明の第1の実施例に係るプログラム動作を図6のフローを参照して説明する。制御部150は、入出力バッファ120を介してプログラムコマンドを受け取ると、プログラムのためのシーケンスを開始する。入出力バッファ120を介して入力データDiがページバッファ/センス回路170にロードされ、次いで、ECC回路130により入力データDiのECC処理が行われる(S100)。   Next, the program operation according to the first embodiment of the present invention will be described with reference to the flowchart of FIG. When the control unit 150 receives a program command via the input / output buffer 120, the control unit 150 starts a sequence for the program. The input data Di is loaded into the page buffer / sense circuit 170 via the input / output buffer 120, and then ECC processing of the input data Di is performed by the ECC circuit 130 (S100).

図7に、ECC処理の一例を示す。フラッシュメモリ100が×8の外部入出力端子を有するとき、外部入出力端子P0〜P7から各I/Oバッファ120−1〜120−7を介してページバッファ/センス回路170にデータがロードされる。ページバッファ/センス回路170は、例えば、セクタ0〜セクタ7の8つのセクタに分割されたレギュラー領域300と、スペア0、スペア1、スペア2、スペア3の4つのセクタに分割されたスペア領域310とを有する。   FIG. 7 shows an example of ECC processing. When the flash memory 100 has × 8 external input / output terminals, data is loaded from the external input / output terminals P0 to P7 to the page buffer / sense circuit 170 via the I / O buffers 120-1 to 120-7. . For example, the page buffer / sense circuit 170 includes a regular area 300 divided into eight sectors, sector 0 to sector 7, and a spare area 310 divided into four sectors, spare 0, spare 1, spare 2, and spare 3. And have.

レギュラー領域300の1つのセクタは、例えば、256バイトから構成され、この場合、レギュラー領域300の8つのセクタは、全体で約2Kバイトのプログラムデータを保持することができる。スペア領域310の1つのセクタは、例えば16バイトから構成され、この場合、4つのセクタ(スペア0〜スペア3)は全体で64バイトのデータを保持することができる。スペア領域310の1つのセクタは、例えば、不良メモリセルを含むバッドブロックを識別する情報を記憶する領域311、ユーザーデータに関する情報を記憶する領域312、レギュラー領域300の2つセクタについての誤り訂正符号(パリティビット)を記憶する領域313、314、スペア領域310がECC演算されたときの誤り訂正符号(パリティビット)を記憶する領域315を有する。スペア領域310のスペア0の領域313、314は、レギュラー領域300のセクタ0、セクタ1の誤り訂正符号(パリティビット)をそれぞれ記憶し、スペア領域310のスペア1の領域313、314は、レギュラー領域300のセクタ2、セクタ3の誤り訂正符号(パリティビット)を記憶する。同様に、スペア領域310のスペア2は、レギュラー領域300のセクタ4、セクタ5のパリティビットを記憶し、スペア領域310のスペア3は、レギュラー領域300のセクタ6、セクタ7のパリティビットを記憶する。   One sector of the regular area 300 is composed of, for example, 256 bytes. In this case, the eight sectors of the regular area 300 can hold about 2 Kbytes of program data as a whole. One sector of the spare area 310 is composed of, for example, 16 bytes. In this case, four sectors (spare 0 to spare 3) can hold data of 64 bytes in total. One sector of the spare area 310 includes, for example, an area 311 for storing information for identifying a bad block including a defective memory cell, an area 312 for storing information on user data, and an error correction code for two sectors of the regular area 300. Areas 313 and 314 for storing (parity bits) and an area 315 for storing error correction codes (parity bits) when the spare area 310 is subjected to ECC calculation. Spare 0 areas 313 and 314 of the spare area 310 store error correction codes (parity bits) of the sector 0 and sector 1 of the regular area 300, respectively. Spare 1 areas 313 and 314 of the spare area 310 are regular areas. 300 error correction codes (parity bits) of sector 2 and sector 3 are stored. Similarly, the spare 2 of the spare area 310 stores the parity bits of the sectors 4 and 5 of the regular area 300, and the spare 3 of the spare area 310 stores the parity bits of the sectors 6 and 7 of the regular area 300. .

レギュラー領域300の1つのセクタには、入出力バッファ120−0〜120−7が割り当てられ、つまり、1つの外部入出力端子には256ビットが割り当てられる(256bit×8=1セクタ)。列選択回路180は、プログラム動作時に受け取った列アドレス情報Ayをデコードし、当該デコード結果に基づき、外部入出力端子P−0〜P7に入力されたデータがロードされるセクタを選択する。図7は、外部入出力端子P−0〜P−7で受け取られたデータが列アドレス情報Ayに従いセクタ0にロードされる例を示している。   Input / output buffers 120-0 to 120-7 are allocated to one sector of the regular area 300, that is, 256 bits are allocated to one external input / output terminal (256 bits × 8 = 1 sector). The column selection circuit 180 decodes the column address information Ay received during the program operation, and selects a sector to which data input to the external input / output terminals P-0 to P7 is loaded based on the decoding result. FIG. 7 shows an example in which data received at the external input / output terminals P-0 to P-7 is loaded into the sector 0 according to the column address information Ay.

ここに示す例では、ECC回路130が誤り訂正符号を書込むための書込み回路を含む。好ましくは、ECC回路130は、レギュラー領域300の1つのセクタと等しいバイト数のデータについてECC演算を行うことができる。レギュラー領域300の1つのセクタが256バイトであれば、ECC回路は、256バイトのデータについてECC演算を行い、4ビットの誤りを訂正する誤り訂正符号を生成する。   In the example shown here, the ECC circuit 130 includes a writing circuit for writing an error correction code. Preferably, the ECC circuit 130 can perform an ECC operation on data having a number of bytes equal to one sector in the regular area 300. If one sector of the regular area 300 is 256 bytes, the ECC circuit performs an ECC operation on 256-byte data and generates an error correction code for correcting a 4-bit error.

ECC回路130は、生成された誤り訂正符号をスペア領域310の対応するセクタの領域313または314に書込む。図7に示す例では、プログラムデータがレギュラー領域300のセクタ0にロードされるので、誤り訂正符号は、スペア0のセクタ0のパリティを記憶する領域313に書込まれる。   The ECC circuit 130 writes the generated error correction code in the corresponding sector area 313 or 314 of the spare area 310. In the example shown in FIG. 7, since the program data is loaded into sector 0 of regular area 300, the error correction code is written into area 313 storing the parity of sector 0 of spare 0.

図8に、スペア領域310のデータのECC処理を例示する。レギュラー領域300の各セクタについてECC処理が終了すると、次に、スペア領域310の各セクタについてECC処理が行われる。スペア領域310の1つセクタ内に含まれるどのデータのECC処理を行うかは任意であるが、本例では、領域312ないし領域314のデータについてECC処理を行うものとする。それ故、スペア0の領域312ないし領域314のデータがECC回路130に転送され、ECC処理によって生成された誤り訂正符号が、ECC回路130によってスペア0の領域315に書込まれる。同様の処理が、他のスペア1ないしスペア3についても行われる。   FIG. 8 illustrates an ECC process for data in the spare area 310. When the ECC process is completed for each sector in the regular area 300, the ECC process is performed for each sector in the spare area 310. Although it is arbitrary which ECC processing is performed in one sector of the spare area 310, in this example, the ECC processing is performed on data in the areas 312 to 314. Therefore, the data in the spare 3 areas 312 to 314 is transferred to the ECC circuit 130, and the error correction code generated by the ECC processing is written into the spare 0 area 315 by the ECC circuit 130. The same processing is performed for the other spares 1 to 3.

再び図6を参照し、ECC処理が終了すると(S100)、メモリアレイ110へのプログラムが開始される。ワード線選択回路160によりメモリアレイ110のワード線が選択され、ビット線には、ページバッファ/センス回路170によって保持されたデータに応じた電圧が供給され、選択ページにプログラムパルスが印加される(S110)。次に、プルグラムベリファイが行われ(S120)、データ「0」がプログラムされたメモリセルのしきい値が一定値以上になっているか否かがチェックされる。ベリファイの結果、選択ページの全ビットが合格であれば、プログラムが終了される。一方、全ビットが合格していない場合には、制御部150は、プログラムパルスの印加回数が最適回数Nopに到達したか否かを判定する(S130)。   Referring to FIG. 6 again, when the ECC process ends (S100), the program to the memory array 110 is started. A word line in the memory array 110 is selected by the word line selection circuit 160, a voltage corresponding to the data held by the page buffer / sense circuit 170 is supplied to the bit line, and a program pulse is applied to the selected page ( S110). Next, program verification is performed (S120), and it is checked whether or not the threshold value of the memory cell in which data “0” is programmed is equal to or greater than a certain value. If all bits of the selected page pass as a result of the verification, the program is terminated. On the other hand, when all the bits have not passed, the control unit 150 determines whether or not the number of application times of the program pulse has reached the optimum number Nop (S130).

ここで、最適回数Nopとは、プログラムにおいて許容されるプログラムパルスの最大の印加回数または最大のプログラム時間であるNMAXよりも小さい値であり、好ましくは、メモリセルをプログラム不合格と判定する場合に最小限印加されるべきプログラムパルスの回数である。例えば、プログラムに許容される最大時間が700μsであり、1回のプログラムパルスの印加に要する時間が50μsとした場合、NMAX=700μs、またはNMAX=14回である。最適回数Nopは、典型的なメモリセルがプログラム合格されるときのプログラムパルスの印加回数に基づき決定することができる。例えば、統計的な手法によりプログラム合格されるメモリセルに印加されたプログラムパルスの平均回数Navが算出されたとき、最適回数Nopは、Nop=Navに設定することができる。この最適回数Nopは、例えば、外部のコントローラから受信したコマンド等によってよって設定することが可能であり、設定された値は、制御部150のレジスタ等に保持される。   Here, the optimum number of times Nop is a value smaller than NMAX, which is the maximum number of application times or the maximum program time of the program pulse allowed in the program, and preferably, when determining that the memory cell is a program failure. The number of program pulses to be applied to the minimum. For example, when the maximum time allowed for programming is 700 μs and the time required to apply one program pulse is 50 μs, NMAX = 700 μs or NMAX = 14 times. The optimum number Nop can be determined based on the number of program pulses applied when a typical memory cell is successfully passed. For example, when the average number Nav of program pulses applied to a memory cell that passes the program is calculated by a statistical method, the optimum number Nop can be set to Nop = Nav. The optimum number Nop can be set by, for example, a command received from an external controller, and the set value is held in a register of the control unit 150 or the like.

制御部150は、プログラムパルスの印加回数が最適回数Nopに到達していない場合には(S140)、ISPPに従い、前回よりもΔVだけ大きなプログラムパルスを選択ページに印加させる(S150)。一方、プログラムパルスの印加回数が最適回数Nopに到達した場合には(S140)、制御部150は、選択ページが疑似合格であるか否かを判定するステップを行う(S160)。疑似合格とされる最大の不合格ビット数Npは、上記したように、ECCによって救済できる最大のビット数Ncc以下であり、ベリファイ時の不合格ビット数、すなわち選択ページに実際に生じている不合格ビット数Nfが疑似合格の最大の不合格ビット数Np以下であれば(Nf≦Np)、疑似合格と判定される(S160)。疑似合格と判定されるとプログラム動作が終了し、選択ページには、「0」不良の不合格ビットがそのまま記憶されたことになる。   When the number of application times of the program pulse has not reached the optimum number Nop (S140), the control unit 150 applies a program pulse larger by ΔV than the previous time to the selected page according to ISPP (S150). On the other hand, when the number of application times of the program pulse has reached the optimum number Nop (S140), the control unit 150 performs a step of determining whether or not the selected page is pseudo-passed (S160). As described above, the maximum number of failed bits Np that is regarded as pseudo-pass is equal to or less than the maximum number of bits Ncc that can be remedied by ECC, and the number of failed bits at the time of verification, that is, the number of bits actually generated in the selected page. If the number of accepted bits Nf is equal to or less than the maximum number of failed bits Np for pseudo-pass (Nf ≦ Np), it is determined as pseudo-pass (S160). If it is determined to be pseudo-pass, the program operation is terminated, and the reject bit of “0” failure is stored as it is in the selected page.

一方、疑似合格していないと判定されたとき(S160)、制御部150は、プログラムパルスの印加回数がNMAXに到達したか否かを判定し(S170)、到達していなければ、ISPPに従いさらにプログラムパルスが選択ページに印加される(S150、S110)。プログラムパルスの印加回数がNMAXに到達した場合には、プログラム失敗のステータスを外部のコントローラに通知し、当該選択ページを含むブロックがバッドブロックとして管理される。この場合、スペア領域の領域311にバッドブロックである識別情報が記憶される。   On the other hand, when it is determined that the pseudo-pass has not been achieved (S160), the control unit 150 determines whether or not the number of application times of the program pulse has reached NMAX (S170). A program pulse is applied to the selected page (S150, S110). When the number of application times of the program pulse reaches NMAX, the program failure status is notified to the external controller, and the block including the selected page is managed as a bad block. In this case, identification information that is a bad block is stored in the area 311 of the spare area.

次に、疑似合格によりプログラムされたページからデータを読出すときの動作を図9のフローを参照して説明する。先ず、メモリアレイ110のページが選択され、当該選択ページのデータがページバッファ/センス回路170に読み出される(S200)。次に、ページバッファ/センス回路170のスペア領域に保持されたデータがECC回路130に転送される(S210)。例えば、セクタ0の誤り検出・訂正が行われるとき、図7に示すスペア0のデータがECC回路130に転送される。ECC回路130は、始めに領域315に保持されている誤り訂正符号(パリティ)に基づき領域313、314に保持されているデータの誤り検出・訂正を行う。   Next, an operation for reading data from a page programmed by pseudo-pass will be described with reference to the flow of FIG. First, a page of the memory array 110 is selected, and data of the selected page is read to the page buffer / sense circuit 170 (S200). Next, the data held in the spare area of the page buffer / sense circuit 170 is transferred to the ECC circuit 130 (S210). For example, when error detection / correction of sector 0 is performed, the data of spare 0 shown in FIG. 7 is transferred to the ECC circuit 130. The ECC circuit 130 first performs error detection / correction of data held in the areas 313 and 314 based on the error correction code (parity) held in the area 315.

次に、ページバッファセンス回路170のレギュラー領域のデータがECC回路130に転送される(S220)。例えば、図7に示すセクタ0のデータがECC回路130に転送される。ECC回路130は、スペア0の領域313に格納されている誤り訂正符号に基づきセクタ0のデータの誤り検出を行う(S230)。もし、セクタ0に疑似合格のときの不合格ビットが含まれているならば、当該不合格ビットは誤りとして検出されることになる。ECC回路130は、誤りが検出された場合には、これを正しいデータに訂正し、訂正したデータをページバッファ/センス回路170にセットする(S240)。このような処理がセクタ単位で行われる(S250)。   Next, the data in the regular area of the page buffer sense circuit 170 is transferred to the ECC circuit 130 (S220). For example, the data of sector 0 shown in FIG. 7 is transferred to the ECC circuit 130. The ECC circuit 130 detects an error in the data of sector 0 based on the error correction code stored in the spare 0 area 313 (S230). If sector 0 contains a failure bit when it is falsely passed, the failure bit is detected as an error. If an error is detected, the ECC circuit 130 corrects the error to correct data, and sets the corrected data in the page buffer / sense circuit 170 (S240). Such processing is performed in units of sectors (S250).

このように本実施例によれば、プログラムパルスの印加回数が最適回数Nopに到達したときに疑似合格するか否かを判定するようにしたので、最適回数Nopまで疑似合格が行われず、その間、選択ページの全ビット合格の判定が保証される。これにより、従来では不合格と判定されたメモリセルが合格として救済される可能性が高くなり、ECC処理により他の処理で救済されるビット数のマージンを確保することができ、同時にプログラム成功の歩留まりを向上させることができる。   As described above, according to the present embodiment, since it is determined whether or not the pseudo pulse is passed when the number of application times of the program pulse reaches the optimum number Nop, the pseudo pass is not performed until the optimum number Nop. Judgment of passing all bits of the selected page is guaranteed. As a result, a memory cell that has been determined to be rejected in the past is more likely to be repaired as a pass, and a margin for the number of bits that can be relieved by other processing by the ECC processing can be secured, and at the same time, the program succeeds. Yield can be improved.

次に、本発明の第2の実施例のプログラム動作を図10のフローを参照して説明する。第2の実施例は、図2のフローに新たにステップS300、S310、S320を追加したものである。制御部150は、プログラム動作時に、入力されたプログラムデータに基づき疑似合格か否かを判定する(S300)。ここで、選択ページのプログラムは、すべて消去された状態のメモリセル(データがすべて「1」)に行われるものとする。制御部150は、1つのセクタのプログラムデータに含まれるデータ「0」のビット数が、疑似合格が可能な最大の不合格ビット数Np以下である場合には、疑似合格と判定し、そうでない場合には、図2のフローと同様の処理が実行される。   Next, the program operation of the second embodiment of the present invention will be described with reference to the flow of FIG. In the second embodiment, steps S300, S310, and S320 are newly added to the flow of FIG. The controller 150 determines whether or not the pseudo-pass is based on the input program data during the program operation (S300). Here, it is assumed that programming of the selected page is performed on memory cells (all data is “1”) in an erased state. When the number of bits of the data “0” included in the program data of one sector is equal to or less than the maximum number of failed bits Np that can be pseudo-passed, the control unit 150 determines that it is pseudo-passed, otherwise In that case, the same processing as the flow of FIG. 2 is executed.

疑似合格と判定された場合には、ページバッファ/センス回路170に保持されたプログラムデータがECC回路130に転送され、そこでECC処理が実施される(S310)。ECC回路130は、演算により生成した誤り訂正符号をページバッファ/センス回路のスペア領域に書込む。次に、ページバッファ/センス回路170に保持された誤り訂正符号が選択ページのスペア領域にプログラムされる。このとき、選択ページのレギュラー領域のメモリセルは全てデータ「1」を保持しており、選択ページのレギュラー領域のビット線にはプログラム禁止の電圧が供給される。誤り訂正符号がスペア領域にプログラムされると、プログラム動作が終了される。レギュラー領域がすべてプログラム禁止のため、隣接するビット線間のカップリングの影響等がなくなり、プログラムされるビット線が存在するような通常のプログラムと比較して、プログラムディスターブ特性が改善される。   If it is determined to be pseudo-pass, the program data held in the page buffer / sense circuit 170 is transferred to the ECC circuit 130, where ECC processing is performed (S310). The ECC circuit 130 writes the error correction code generated by the operation in the spare area of the page buffer / sense circuit. Next, the error correction code held in the page buffer / sense circuit 170 is programmed in the spare area of the selected page. At this time, all the memory cells in the regular area of the selected page hold data “1”, and a program inhibit voltage is supplied to the bit lines in the regular area of the selected page. When the error correction code is programmed in the spare area, the program operation is terminated. Since all the regular regions are prohibited from being programmed, the influence of coupling between adjacent bit lines is eliminated, and the program disturb characteristic is improved as compared with a normal program in which a programmed bit line exists.

疑似合格とされたページの読出しは、第1の実施例のときと同様に行われる。すなわち、選択ページから読み出されたデータがページバッファ/センス回路170に保持される。レギュラー領域のデータは全て「1」であり、プログラムデータは不合格ビット数Np以下のデータ「0」を有する。ECC回路130は、ページバッファ/センス回路170のスペア領域のデータを受け取り、そこに含まれる誤り訂正符号に基づき、レギュラー領域の全「1」データから誤りビット、すなわちデータ「0」をプログラムすべきビットを検出し、データ「1」をデータ「0」に訂正し、これをページバッファ/センス回路170にセットする。   Reading a page that has been falsely accepted is performed in the same manner as in the first embodiment. That is, data read from the selected page is held in the page buffer / sense circuit 170. The data in the regular area is all “1”, and the program data has data “0” having a number of rejected bits Np or less. The ECC circuit 130 receives data in the spare area of the page buffer / sense circuit 170, and should program error bits, that is, data “0” from all “1” data in the regular area based on the error correction code included therein. The bit is detected, data “1” is corrected to data “0”, and this is set in the page buffer / sense circuit 170.

このように第2の実施例によれば、プログラムすべきデータがECC回路130によって救済可能なビット数以下である場合には、通常のプログラムシーケンスとは異なり、プログラムデータをレギュラー領域にプログラムすることなく、誤り訂正符号のみをスペア領域にプログラムすることで、レギュラー領域におけるプログラムディスターブ特性が改善され、同時にプログラム時間を短縮することができる。なお、図10のステップS320においてスペア領域に誤り訂正符号をプログラムするとき、通常のプログラムと同様にベリファイステップも実行され、この場合、図10の破線Kで示すようにISPPによるプログラムルーチンを実行することも可能である。   As described above, according to the second embodiment, when the data to be programmed is less than or equal to the number of bits that can be relieved by the ECC circuit 130, the program data is programmed in the regular area unlike the normal program sequence. Instead, by programming only the error correction code in the spare area, the program disturb characteristic in the regular area can be improved, and at the same time, the programming time can be shortened. When an error correction code is programmed in the spare area in step S320 in FIG. 10, a verify step is also executed in the same way as a normal program. In this case, a program routine by ISPP is executed as shown by a broken line K in FIG. It is also possible.

次に、本発明の第3の実施例について説明する。第3の実施例は、第1の実施例と第2の実施例とを組合せたものであり、その動作フローを図11に示す。図11のフローは、図6のフローに、第2の実施例のステップS300、S310、S320を追加したものであり、その動作は、第1の実施例および第2の実施例のときと同様であるため説明を省略する。図11のステップS320において、スペア領域に誤り訂正符号をプログラムするとき、図10の場合と同様にISPPによるプログラムシーケンスを行うことも可能であり、この場合、誤り訂正符号全ての合格が望まれるため、最適回数Nopは、疑似合格されないときの最適回数Nopよりも大きく設定し、全ビット合格と判定される可能性を高くし、ステップS160における疑似合格がされ難くすることも可能である。   Next, a third embodiment of the present invention will be described. The third embodiment is a combination of the first embodiment and the second embodiment, and its operation flow is shown in FIG. The flow of FIG. 11 is obtained by adding steps S300, S310, and S320 of the second embodiment to the flow of FIG. 6, and the operation thereof is the same as in the first and second embodiments. Therefore, the description is omitted. In step S320 of FIG. 11, when an error correction code is programmed in the spare area, it is possible to perform a program sequence by ISPP as in the case of FIG. 10, and in this case, it is desired to pass all error correction codes. It is also possible to set the optimum number Nop to be larger than the optimum number Nop when the pseudo-pass is not made, to increase the possibility of determining that all bits are passed, and to make the pseudo-pass in step S160 difficult.

なお、NAND型のフラッシュメモリは、ページ単位でプログラムが行われるが、入力されるプログラムデータのサイズは、必ずしも1ページ、すなわち図7に示すレギュラー領域300の8つのセクタのサイズに等しいことを要しない。例えば、プログラムデータのサイズは、1つのセクタのサイズであることができる。通常、プログラムディスターブの観点から、同一ページに連続してプログラムすることが許される回数(NOP(Number of Program))には制限があり、そのNOPに応じて1つのページデータを分割してプログラムすることが可能である。NOPが4であるとき、1つのページデータは、例えば、2セクタ、1セクタ、3セクタ、2セクタに分けてフラッシュメモリ10に入力することが可能である。   Note that NAND-type flash memory is programmed in units of pages, but the size of program data to be input must always be equal to the size of one page, that is, the eight sectors of the regular area 300 shown in FIG. do not do. For example, the size of the program data can be the size of one sector. Usually, from the viewpoint of program disturb, there is a limit to the number of times (NOP (Number of Program)) allowed to be continuously programmed on the same page, and one page data is divided and programmed according to the NOP. It is possible. When the NOP is 4, one page data can be input to the flash memory 10 divided into, for example, 2 sectors, 1 sector, 3 sectors, and 2 sectors.

本発明の好ましい実施の形態について詳述したが、本発明は、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された発明の要旨の範囲内において、種々の変形・変更が可能である。   Although the preferred embodiments of the present invention have been described in detail, the present invention is not limited to the specific embodiments, and various modifications and changes can be made within the scope of the gist of the invention described in the claims. Is possible.

100:フラッシュメモリ 110:メモリアレイ
120:入出力バッファ 130:ECC回路
140:アドレスレジスタ 150:制御部
160:ワード線選択回路 170:ページバッファ/センス回路
180:列選択回路 190:内部電圧発生正回路
300:レギュラー領域 310:スペア領域
DESCRIPTION OF SYMBOLS 100: Flash memory 110: Memory array 120: Input / output buffer 130: ECC circuit 140: Address register 150: Control part 160: Word line selection circuit 170: Page buffer / sense circuit 180: Column selection circuit 190: Internal voltage generation positive circuit 300: Regular area 310: Spare area

Claims (7)

NAND型フラッシュメモリのプログラム方法であって、
プログラムすべきデータを受け取るステップと、
当該プログラムすべきデータによりプログラムされるビット数が、誤り検出・訂正手段により救済可能な救済ビット数以下であるか否を判定するステップと、
前記誤り検出・訂正手段により前記プログラムすべきデータの誤り訂正符号を生成するステップと、
前記プログラムすべきデータによりプログラムされるビット数が前記救済ビット数以下であると判定されたとき、選択ページのレギュラー領域にプログラムをすることなく、スペア領域に前記誤り訂正符号をプログラムすることで選択ページへのプログラムを終了するステップと、
を有するプログラム方法。
A NAND flash memory programming method comprising:
Receiving data to be programmed;
Determining whether the number of bits programmed by the data to be programmed is less than or equal to the number of rescue bits that can be relieved by the error detection / correction means;
Generating an error correction code of the data to be programmed by the error detection / correction means;
When it is determined that the number of bits programmed by the data to be programmed is equal to or less than the number of relief bits, the error correction code is selected by programming the spare area without programming the regular area of the selected page. Steps to exit the program to the page;
A programming method comprising:
プログラム方法はさらに、前記プログラムすべきデータによりプログラムされるビット数が救済ビット数よりも多いと判定されたとき、選択ページのレギュラー領域にプログラムすべきデータをプログラムするステップを有する、請求項2に記載のプログラム方法。 The programming method further comprises a step of programming data to be programmed in a regular area of a selected page when it is determined that the number of bits programmed by the data to be programmed is larger than the number of relief bits. The program method described. NAND型フラッシュメモリのプログラム方法であって、
プログラムすべきデータを受け取るステップと、
当該プログラムすべきデータによりプログラムされるビット数が、誤り検出・訂正手段により救済可能な救済ビット数以下であるか否を判定するステップと、
前記誤り検出・訂正手段により前記プログラムすべきデータの誤り訂正符号を生成するステップと、
前記プログラムすべきデータによりプログラムされるビット数が前記救済ビット数以下であると判定されたとき、選択ページのレギュラー領域にプログラムをすることなく、スペア領域に前記誤り訂正符号をプログラムすることで選択ページへのプログラムを終了するステップと、
前記プログラムすべきデータによりプログラムされるビット数が救済ビット数よりも多いと判定されたとき、選択ページのレギュラー領域にプログラムすべきデータをプログラムするステップとを有し、
前記プログラムするステップはさらに、
選択ページにプログラムパルスを印加するステップと、
選択ページのプログラムの合否を判定するステップと、
不合格であると判定されたとき、プログラムパルスの印加回数がプログラムの許容最大値よりも小さい最適値に到達していない場合には、選択ページにさらにプログラムパルスを印加し、プログラムパルスの印加回数が前記最適値に到達している場合には、選択ページが予め決められた不合格ビット数であれば疑似合格と判定するステップとを有する、プログラム方法。
A NAND flash memory programming method comprising:
Receiving data to be programmed;
Determining whether the number of bits programmed by the data to be programmed is less than or equal to the number of rescue bits that can be relieved by the error detection / correction means;
Generating an error correction code of the data to be programmed by the error detection / correction means;
When it is determined that the number of bits programmed by the data to be programmed is equal to or less than the number of relief bits, the error correction code is selected by programming the spare area without programming the regular area of the selected page. Steps to exit the program to the page;
Programming the data to be programmed into the regular area of the selected page when it is determined that the number of bits programmed by the data to be programmed is greater than the number of relief bits,
The step of programming further comprises:
Applying a program pulse to the selected page;
Determining pass / fail of the program on the selected page;
When it is determined that the program has failed, if the number of program pulse applications has not reached the optimum value smaller than the maximum allowable value of the program, the program pulse is further applied to the selected page, and the number of program pulse applications Is determined to be a pseudo-pass if the selected page has a predetermined number of failed bits.
メモリアレイと、
プログラムすべきデータの誤り訂正符号を生成する誤り検出・訂正手段と、
プログラムすべきデータおよび前記誤り訂正符号を前記メモリアレイの選択ページにプログラムするプログラム手段とを含み、
前記プログラム手段は、
プログラムすべきデータによりプログラムされるビット数が前記誤り検出・訂正手段により救済可能な救済ビット数以下であるとき、選択ページのレギュラー領域にプログラムをすることなくスペア領域に前記誤り訂正符号をプログラムすることで選択ページのプログラムを終了する、半導体記憶装置。
A memory array;
Error detection / correction means for generating an error correction code for data to be programmed;
Programming means for programming data to be programmed and the error correction code to a selected page of the memory array;
The program means includes
When the number of bits programmed by the data to be programmed is less than or equal to the number of rescue bits that can be relieved by the error detection / correction means, the error correction code is programmed in the spare area without programming in the regular area of the selected page This completes the program of the selected page.
前記プログラム手段はさらに、前記プログラムすべきデータによりプログラムされるビット数が救済ビット数より多いとき、選択ページのレギュラー領域にプログラムすべきデータをプログラムする、請求項4に記載の半導体記憶装置。 5. The semiconductor memory device according to claim 4, wherein said program means further programs data to be programmed in a regular area of a selected page when the number of bits programmed by said data to be programmed is larger than the number of relief bits. 前記プログラム手段はさらに、選択ページにプログラムパルスを印加し、選択ページのプログラムが不合格であると判定したとき、プログラムパルスの印加回数がプログラムの許容最大値よりも小さい最適値に到達していない場合には、選択ページにさらにプログラムパルスを印加し、プログラムパルスの印加回数が前記最適値に到達している場合には、選択ページが予め決められた不合格ビット数であれば疑似合格と判定する処理を実行する、請求項5に記載の半導体記憶装置。 The program means further applies a program pulse to the selected page, and when it is determined that the program of the selected page is unsuccessful, the number of application times of the program pulse does not reach an optimum value smaller than the allowable maximum value of the program. In this case, a program pulse is further applied to the selected page, and if the number of application times of the program pulse has reached the optimum value, if the selected page has a predetermined number of failed bits, it is determined as a pseudo-pass. The semiconductor memory device according to claim 5, wherein the processing is performed. 半導体記憶装置は、前記メモリアレイの選択ページのデータを読み出す手段を含み、
前記誤り検出・訂正手段は、読み出された誤り訂正符号に基づき読み出されたデータの誤り検出・訂正を行う、請求項4ないし6いずれか1つに記載の半導体記憶装置。
The semiconductor memory device includes means for reading data of a selected page of the memory array,
The semiconductor memory device according to claim 4, wherein the error detection / correction unit performs error detection / correction on the read data based on the read error correction code.
JP2016214999A 2016-11-02 2016-11-02 Semiconductor memory device Expired - Fee Related JP6293846B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016214999A JP6293846B2 (en) 2016-11-02 2016-11-02 Semiconductor memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016214999A JP6293846B2 (en) 2016-11-02 2016-11-02 Semiconductor memory device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2015246083A Division JP6115740B1 (en) 2015-12-17 2015-12-17 Semiconductor memory device

Publications (2)

Publication Number Publication Date
JP2017111849A true JP2017111849A (en) 2017-06-22
JP6293846B2 JP6293846B2 (en) 2018-03-14

Family

ID=59080922

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016214999A Expired - Fee Related JP6293846B2 (en) 2016-11-02 2016-11-02 Semiconductor memory device

Country Status (1)

Country Link
JP (1) JP6293846B2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006134476A (en) * 2004-11-05 2006-05-25 Toshiba Corp Semiconductor integrated circuit device, and nonvolatile memory system using the same
US20100315880A1 (en) * 2009-06-12 2010-12-16 Hynix Semiconductor Inc. Method of operating nonvolatile memory device
JP2015176616A (en) * 2014-03-14 2015-10-05 ウィンボンド エレクトロニクス コーポレーション Semiconductor storage device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006134476A (en) * 2004-11-05 2006-05-25 Toshiba Corp Semiconductor integrated circuit device, and nonvolatile memory system using the same
US20100315880A1 (en) * 2009-06-12 2010-12-16 Hynix Semiconductor Inc. Method of operating nonvolatile memory device
JP2015176616A (en) * 2014-03-14 2015-10-05 ウィンボンド エレクトロニクス コーポレーション Semiconductor storage device

Also Published As

Publication number Publication date
JP6293846B2 (en) 2018-03-14

Similar Documents

Publication Publication Date Title
US7508704B2 (en) Non-volatile semiconductor storage system
KR101368375B1 (en) Erased sector detection mechanisms
CN107045889B (en) Semiconductor memory device, erasing method and programming method thereof
US10395753B2 (en) Semiconductor memory device and programming method thereof
US8069382B2 (en) Memory cell programming
US8154924B2 (en) Nonvolatile memory device and read method
JP6131207B2 (en) Semiconductor memory device
JP6115740B1 (en) Semiconductor memory device
JP2008027511A (en) Semiconductor memory device and control method thereof
JP2009140564A (en) Nand flash memory and memory system
JP6088675B1 (en) Semiconductor memory device
CN107305786B (en) Nonvolatile semiconductor memory device
KR101651573B1 (en) Semiconductor memory device and programming method thereof
JP6293846B2 (en) Semiconductor memory device
US8923068B2 (en) Low margin read operation with CRC comparision
JP5710815B1 (en) Semiconductor memory device
JP6371423B2 (en) Semiconductor memory device
TWI521530B (en) Semiconductor memory device and programming method thereof

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180115

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180213

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180214

R150 Certificate of patent or registration of utility model

Ref document number: 6293846

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250