KR100486132B1 - Nonvolatile semiconductor memory with fast data programming and erasing using ECC - Google Patents

Nonvolatile semiconductor memory with fast data programming and erasing using ECC Download PDF

Info

Publication number
KR100486132B1
KR100486132B1 KR1019970065352A KR19970065352A KR100486132B1 KR 100486132 B1 KR100486132 B1 KR 100486132B1 KR 1019970065352 A KR1019970065352 A KR 1019970065352A KR 19970065352 A KR19970065352 A KR 19970065352A KR 100486132 B1 KR100486132 B1 KR 100486132B1
Authority
KR
South Korea
Prior art keywords
data
programming
memory cells
error
memory
Prior art date
Application number
KR1019970065352A
Other languages
Korean (ko)
Inventor
마사노리 노다
도시노부 스기야마
겐시로 아라세
이하치 나이키
Original Assignee
소니 가부시끼 가이샤
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 소니 가부시끼 가이샤 filed Critical 소니 가부시끼 가이샤
Priority to KR1019970065352A priority Critical patent/KR100486132B1/en
Application granted granted Critical
Publication of KR100486132B1 publication Critical patent/KR100486132B1/en

Links

Images

Abstract

전기적으로 데이터의 처리가 행해지는 메모리 셀이 매트릭스 형태로 배치된 불휘발성 반도체 메모리로서, 복수 비트 데이터내에 소정 갯수 이내의 에러 비트가 존재하는 경우에 해당 에러 비트를 정정하는 에러 정정 수단과; 상기 복수 비트 데이터를 단위로 해당 복수 단위의 메모리 셀에 대하여 데이터의 프로그래밍을 행하며, 이러한 데이터의 프로그래밍 이후 해당 데이터 프로그래밍 미종료 메모리 셀의 갯수를 계수하는 수단과; 상기 데이터 프로그래밍 미종료 메모리 셀의 갯수가 상기 소정 갯수이내의 에러 비트인 경우에, 해당 데이터 프로그래밍 미종료 메모리 셀을 남긴채로 데이터의 프로그래밍을 종료하고, 해당 에러 비트를 상기 에러 정정 수단에 의해 구제하는 수단을 구비하는 불휘발성 반도체 기억장치.A nonvolatile semiconductor memory in which memory cells to be electrically processed are arranged in a matrix form, comprising: error correction means for correcting an error bit when a predetermined number of error bits exist in a plurality of bits of data; Means for programming data for a plurality of memory cells in units of the plurality of bits of data, and counting the number of data programming non-completed memory cells after programming of the data; If the number of data programming non-memory memory cells is an error bit within the predetermined number, the programming of the data is terminated with the data programming non-memory memory cell left, and the error bit is corrected by the error correction means. A nonvolatile semiconductor memory device having means.

Description

ECC를 이용한 신속한 데이터 프로그래밍 및 소거 기능을 가지는 불휘발성 반도체 기억장치Nonvolatile Semiconductor Memory with Fast Data Programming and Erasing Using ECC

본 발명은 전기적으로 데이터를 프로그래밍할 수 있는 불휘발성의 반도체 메모리에 관한 것으로서, 더 상세하게는 데이터의 프로그래밍 및 소거를 고속으로 수행할 수 있는 불휘발성의 반도체 메모리에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a nonvolatile semiconductor memory capable of electrically programming data, and more particularly, to a nonvolatile semiconductor memory capable of performing programming and erasing of data at high speed.

NAND형 플래시 메모리(flash memory), DINOR(Divided bit-line NOR)형 플래시 메모리 등의 불휘발성 반도체 기억장치에 있어서는, 선택하는 워드선(word line)에 접속된 모든 메모리 셀에 대해 데이터가 프로그래밍 된다. 즉, 워드선 단위로 페이지 프로그래밍이 행해진다.In a nonvolatile semiconductor memory device such as a NAND flash memory or a divided bit-line NOR (DINOR) flash memory, data is programmed for all memory cells connected to a selected word line. . That is, page programming is performed in word line units.

도 1a 및 도 1b는 각각 NAND형, DINOR형 플래시 메모리의 메모리 어레이 구조를 나타낸 도면이다.1A and 1B are diagrams illustrating a memory array structure of NAND type and DINOR type flash memories, respectively.

도 1a의 NAND형 플래시 메모리는 편의상 하나의 비트선(bit line)으로 접속된 하나의 NAND열에 4개의 메모리 셀이 접속된 경우의 메모리 셀을 나타낸 도면이다.The NAND flash memory of FIG. 1A is a diagram illustrating a memory cell when four memory cells are connected to one NAND column connected by one bit line for convenience.

도 1a에서 BL은 비트선을 나타낸다. 비트선 BL에 2개의 선택 트랜지스터(selection transistor) ST1, ST2 및 4개의 메모리 셀 MT1-MT4를 직렬 접속시킨 NAND열이 접속되어 있다.In FIG. 1A, BL represents a bit line. The NAND column in which two selection transistors ST1, ST2 and four memory cells MT1-MT4 are connected in series is connected to the bit line BL.

선택 트랜지스터 ST1, ST2는 각각 선택 게이트선 SL1, SL2에 의해 제어된다. 메모리셀 MT1-MT4는 각각 워드선 WL1-WL4에 의해 제어된다.The selection transistors ST1 and ST2 are controlled by the selection gate lines SL1 and SL2, respectively. Memory cells MT1-MT4 are controlled by word lines WL1-WL4, respectively.

도 1b의 DINOR형 플래시 메모리 어레이는 편의상 하나의 주비트선(main bit line: MBL)에 접속된 부비트선(sub bit line: SBL) 1개에 4개의 메모리 트랜지스터가 접속된 경우의 DINOR형 플래시 메모리를 나타내는 도면이다.The DINOR-type flash memory array of FIG. 1B is a DINOR-type flash when four memory transistors are connected to one sub bit line (SBL) connected to one main bit line (MBL) for convenience. It is a figure which shows a memory.

도 1b에서, MLB는 주비트선을, SBL은 부비트선을 각각 나타내며, 주비트선 MBL 및 부비트선 SBL은 선택 게이트선 SL에 의해 제어되는 선택 트랜지스터 ST1을 통하여 동작 가능하게 접속된다. 부비트선 SBL은 4개의 워드선 WL1-WL4와 교차하고, 각 교차 위치에는 4개의 메모리 셀 MT1-MT4가 배치되어 있다.In Fig. 1B, MLB represents a main bit line, SBL represents a sub bit line, and main bit line MBL and sub bit line SBL are operably connected through selection transistor ST1 controlled by the selection gate line SL. The sub bit line SBL intersects the four word lines WL1-WL4, and four memory cells MT1-MT4 are disposed at each crossing position.

또, NOR형 플래시 메모리 등의 불휘발성 반도체 기억장치 기억장치에 있어서의 데이터의 기입은 소정의 블록 단위(예컨대, 64 킬로바이트 정도)로 데이터의 소저를 행한 후에, 해당 소거 블록의 메모리 셀에 대하여 데이터 프로그래밍이 행해진다.In addition, writing of data in a nonvolatile semiconductor memory device such as a NOR flash memory is performed on a predetermined block unit (e.g., about 64 kilobytes) before data is written to the memory cell of the erase block. Programming is done.

도 2는 일반적인 NOR형 플래시 메모리에 있어서, 메모리 어레이 구조 및 데이터 소거시의 바이어스 조건을 나타내는 도면이다.FIG. 2 is a diagram showing a memory array structure and a bias condition when erasing data in a general NOR flash memory.

도 2의 NOR형 플래시 메모리에 있어서는, 편의상, 4개의 워드선 WL1~WL4와 4개의 비트선 BL1~BL4와의 격자 위치에 메모리 셀 MT11~MT44가 매트릭스 형태로 배치되어 있다.In the NOR flash memory of Fig. 2, for convenience, memory cells MT11 to MT44 are arranged in a matrix at grid positions of four word lines WL1 to WL4 and four bit lines BL1 to BL4.

다음에, 도 2의 NOR형 플래시 메모리에 있어서, 데이터의 소거 동작에 대하여 설명한다. 데이터의 소거는 도 2에 도시된 바와 같이, 소거 블록 메모리 어레이내의 모든 워드선 WL1~WL4를 접지 레벨(0V)로, 모든 비트선 BL1~BL4를 플로팅 상태로 하여, 공통 소스선 VSS에 고전압(예컨대, 12V)의 소거 전압 펄스를 인가한다. 그 결과, 데이터 프로그래밍시에 각 메모리 셀에 축적되어 있는 전자가 소스측으로부터 터널 전류에 의해 유입되어, 각 메모리 셀의 임계값 전압 Vth는 데이터 프로그래밍 상태인 6V~7V로부터 소거 상태인 2V~3V로 천이하게 된다.Next, the erase operation of data in the NOR flash memory of FIG. 2 will be described. 2, all word lines WL1 to WL4 in the erase block memory array are at the ground level (0 V), and all bit lines BL1 to BL4 are floating, and a high voltage is applied to the common source line VSS. For example, an erase voltage pulse of 12V) is applied. As a result, electrons accumulated in each memory cell at the time of data programming are introduced by the tunnel current from the source side, and the threshold voltage Vth of each memory cell is from 6V to 7V in the data programming state to 2V to 3V in the erase state. It is a transition.

그런데, 상술한 NAND형, DINOR형 플래시 메모리 등과 같은 워드선 섹터를 단위로 한 페이지 프로그래밍을 행하는 불휘발성의 반도체 기억장치에 있어서는, 데이터의 프로그래밍은 선택 워드선에 접속된 모든 메모리 셀에 대해 일괄로 데이터 프로그래밍이 행해진다. 그러나 선택 워드선에 접속된 각 메모리 셀은 제조 공정에 기인하는 크기 등의 편차 때문에, 각각의 프로그래밍 속도에 차이가 생기게 된다.By the way, in the nonvolatile semiconductor memory device which performs page programming on a word line sector basis such as the above-described NAND type, DINOR type flash memory, etc., data programming is collectively performed for all memory cells connected to the selected word line. Data programming is done. However, each memory cell connected to the selected word line has a difference in programming speed due to variations in size and the like resulting from the manufacturing process.

도 3은 상술한 각 선택 워드선에 접속된 메모리 셀간의 프로그래밍 속도차를 나타내는 도면이다. 도 3에 있어서, 횡축은 tPROG(프로그래밍 시간), 즉 각 메모리 셀의 프로그래밍 필요시간을 나타내고 있다. 또, 종축은 N(메모리 셀 갯수), 즉 횡축 tPROG(프로그래밍 시간)에 대한 메모리 셀 갯수의 분도 빈도를 나타낸다.3 is a diagram showing a programming speed difference between memory cells connected to each of the above selected word lines. In Fig. 3, the horizontal axis represents tPROG (programming time), that is, the programming time required for each memory cell. The vertical axis indicates the frequency of the number of memory cells with respect to N (number of memory cells), that is, the horizontal axis tPROG (programming time).

도 3에 도시된 바와 같이, NAND형 플래시 메모리 등과 같은 워드선 섹터를 단위로 한 페이지 프로그래밍을 행하는 불휘발성 반도체 기억장치 기억장치에 있어서는, 메모리 셀간에 프로그래밍 필요시간 tPROG에 분포가 생기게 된다.As shown in Fig. 3, in a nonvolatile semiconductor memory device that performs page programming on a word line sector basis such as a NAND flash memory or the like, there is a distribution in the programming required time tPROG between memory cells.

이와 같은 프로그래밍 속도의 차이를 고려하여, 일반적인 NAND형 플래시 메모리 등에 있어서는, 프로그래밍시의 임계값 전압 Vth의 분포를 좁게 억제하는 관점으로부터, 프로그래밍 동작이 베리파이(verify) 동작을 통해 행해지고, 해당 프로그래밍/베리파이 동작을 프로그래밍 종료 메모리 셀로부터 순서대로 프로그래밍 금지에 하여 모든 메모리 셀의 프로그래밍을 종료할 때까지 반복하여 행하는, 소위 비트마다 베리파이 동작이 행해지게 된다.In view of such a difference in programming speed, in a general NAND flash memory or the like, a programming operation is performed through a verify operation from a viewpoint of narrowly suppressing the distribution of the threshold voltage Vth at the time of programming. The so-called Verify operation is performed for each bit, which is repeatedly executed until the end of programming of all the memory cells with the program inhibited from the programming end memory cell in order.

그러나, 도 3에 도시된 바와 같이, 일반적인 메모리 셀의 경우, 프로그래밍 필요시간 tPROG는 도면에서 t0 이지만 공정 등의 편차 요인으로부터 매우 긴 프로그래밍 필요시간 tPROG, 예컨대 도면에서 t1 이상을 필요로 하는 메모리 셀이 드물게 존재하는 경우가 있다. 이와 같은 경우, 드물게 존재하는 프로그래밍 속도가 느린 메모리 셀 때문에, 상술한 프로그래밍/베리파이 동작의 횟수도, 예컨대 100회 이상으로 매우 많아지게 되며, 그 결과 페이지 프로그래밍을 종료하는데 필요한 시간도 매우 길어지게 된다.However, as shown in FIG. 3, in the case of a general memory cell, the programming time tPROG is t0 in the drawing, but a memory cell requiring a programming time tPROG that is very long from deviation factors such as a process, for example, t1 or more in the drawing, There are rare cases. In such a case, due to the rarely present slow programming memory cells, the number of programming / verify operations described above becomes very large, for example, more than 100 times, and as a result, the time required for terminating page programming becomes very long. .

도 4는 종래기술의 NAND형 플래시 메모리 등과 같은 워드선 섹터를 단위로하여 페이지 프로그래밍을 행하는 불휘발성 반도체 기억장치에 있어서, 데이터 프로그래밍시의 순서 흐름을 나타내는 도면이다. 이하, 도 4의 순서 흐름에 대하여 설명한다.FIG. 4 is a diagram showing the flow of procedures in data programming in a nonvolatile semiconductor memory device in which page programming is performed in units of word line sectors, such as a conventional NAND flash memory. Hereinafter, the flow of the procedure of FIG. 4 is demonstrated.

단계 SF1에서 데이터 프로그래밍이 개시되고, 최초로 단계 SF2에서 페이지 프로그래밍 데이터가 메모리 어레이내의 각 비트선마다 제공된 데이터 래치회로에 전송된다. 다음으로, 단계 SF3에서 프로그래밍 베리파이 횟수 K가 0으로 리셋되고, 프로그램 펄스를 인가하는 프로그래밍 동작(단계 SF4) 및 베리파이 독출 후에 재프로그래밍 데이터를 자동 설정하는 베리파이 독출 동작(단계 SF5)이 연속하여 수행된다. 다음으로, 단계 SF6에서 모든 메모리 셀의 프로그램이 종료하였는지 여부의 종점(終點) 검출은, 재프로그래밍 데이터내에 적어도 1개 이상의 프로그램 미종료(未終了) 메모리 셀이 남아 있는지 여부를 조사함으로써 행해진다.Data programming is started in step SF1, and first, in step SF2, page programming data is transferred to the data latch circuit provided for each bit line in the memory array. Next, in step SF3, the programming verifier number K is reset to zero, and a programming operation for applying a program pulse (step SF4) and a verification operation for automatically setting reprogramming data after the verification read (step SF5) are continued. Is performed. Next, the end point detection of whether or not the programs of all the memory cells have ended in step SF6 is performed by checking whether at least one or more program non-ended memory cells remain in the reprogrammed data.

그 결과, 모든 비트 프로그램 종료에 대한 종점 검출이 가능한 경우에는, 데이터 프로그래밍을 완료한다(단계 SF9). 한편, 모든 비트 프로그램 종료의 종점 검출이 가능하지 않은 경우에는, 추가로 프로그램 베리파이 횟수 K가 증가(increment)되고(단계 SF7), K가 미리 설정된 소정 횟수 k0(예컨대, 100회 정도) 미만인지 여부를 조사한다(단계 SF8). 그리고, K가 k0 미만인 경우에는, 상술한 단계 SF4~단계 SF8의 순서 흐름이 반복하여 행해지며, K가 k0에 도달한 시점에서 데이터 프로그래밍이 실패라고 판단된다(단계 SF10).As a result, when end point detection for all bit program terminations is possible, data programming is completed (step SF9). On the other hand, if the end point detection of all the bit program terminations is not possible, additionally, the program verification number K is incremented (step SF7), and whether K is less than a predetermined number k0 (for example, about 100 times) set in advance. Check whether it is (step SF8). When K is less than k0, the above-described flow of steps SF4 to SF8 is repeatedly performed, and it is determined that data programming has failed when K reaches k0 (step SF10).

이 소정의 프로그래밍 베리파이 횟수 k0은, 매우 드물게 존재하는 프로그램의 속도가 느린 메모리 셀 때문에, 종래의 NAND형 플래시 메모리 등의 경우, 예컨대 100회 이상으로 매우 많아지게 된다. 그 결과, 페이지 프로그래밍을 종료하는데 필요한 시간도 매우 길어지게 되었다.The predetermined number of programming verification k0 is very large, for example, 100 times or more in the case of a conventional NAND flash memory or the like because of a memory cell having a very slow program memory. As a result, the time required to end page programming has become very long.

또, 상술한 NOR형 플래시 메모리 등과 같은 불휘발성 반도체 기억장치에 있어서, 데이터의 재기입은 소정의 블록 단위(예컨대, 64 Kbyte 정도)로 데이터의 소거를 행한 후에, 해당 블록 단위로 데이터 프로그래밍을 행한다. 그러나, 소거 블록 단위내의 각 메모리 셀은, 제조 공정에 기인하는 크기 등의 편차 때문에, 각각의 소거 속도에 차이가 생긴다.In the nonvolatile semiconductor memory device such as the NOR flash memory described above, data rewriting is performed by erasing data in predetermined block units (for example, about 64 Kbytes), and then data programming is performed in the corresponding block units. However, each memory cell in the erase block unit has a difference in the erase speed due to variations in size or the like resulting from the manufacturing process.

도 5는 상술한 소거 블록내의 메모리 셀간의 소거 속도의 차를 나타내는 도면이다. 도 5에 있어서, 횡축은 terase(소거시간), 즉 각 메모리 셀의 소거 필요 시간을 나타내고 있다. 또, 종축은 N(메모리 셀 갯수), 즉 횡축 terase(소거 시간)에 대한 메모리 셀 갯수의 분포 빈도를 나타내고 있다.FIG. 5 is a diagram showing a difference in erase speed between memory cells in the above-described erase block. In Fig. 5, the horizontal axis represents terase (erasing time), that is, the erase required time of each memory cell. In addition, the vertical axis represents the distribution frequency of the number of memory cells with respect to N (number of memory cells), that is, horizontal axis terase (erasing time).

도 5에 도시된 바와 같이, NOR형 플래시 메모리 등과 같은 소정의 블록 단위로 데이터의 소거를 행하는 불휘발성 반도체 기억장치에 있어서는, 메모리 셀간에 소거 필요시간 terase에 분포가 생긴다. 이와 같은 소거 속도의 편차를 고려하여, 일반적인 NOR형 플래시 메모리에 있어서는, 소거 동작이 베리파이 동작을 통해 행해지고, 또 해당 소거/베리파이 동작을 소거 프로그램내의 모든 메모리 셀의 데이터 소거가 종료할 때까지 반복하여 행해진다.As shown in Fig. 5, in a nonvolatile semiconductor memory device which erases data in predetermined block units such as a NOR flash memory or the like, a distribution is generated in the erase required time terase between memory cells. In consideration of such variation in the erase speed, in a general NOR flash memory, an erase operation is performed through a Verify operation, and the erase / verify operation is performed until the data erase of all memory cells in the erase program is completed. It is done repeatedly.

그러나, 도 5에 나타난 바와 같이, 일반적인 메모리 셀의 경우, 소거 필요시간 terase는 도면에서 t0이지만, 공정 등의 편차 요인으로부터 매우 긴 소거 필요 시간 terase, 예컨대 도면에서 t1 이상을 필요로 하는 메모리 셀이 매우 드물게 존재하는 경우가 있다. 이와 같은 경우에, 매우 드물게 존재하는 소거 속도가 느린 메모리 셀 때문에, 상술한 소거/베리파이 동작의 횟수도, 예컨대 100회~1000회 이상으로 매우 많아지게 된다. 이 결과, 소거 동작을 종료하는데 필요한 시간도 길어지게 된다. 또한, 매우 드물게 존재하난 소거 속도가 느린 메모리 셀 때문에 소거/베리파이 동작의 횟수가 매우 많아지게 되면, 소거 속도가 빠른 메모리 셀이 과잉 소거되어, 해당 메모리 셀의 임계값 Vth 가 디플리트(deplete) 상태(Vth < 0)가 되어, 오동작의 원인으로 된다.However, as shown in FIG. 5, in the case of a general memory cell, the erase time terase is t0 in the drawing, but a memory cell that requires a very long erase time terase, e.g., t1 or more in the drawing, may be removed from a deviation factor such as a process. Very rarely exists. In such a case, the erase / verify operation described above is also very large, for example, 100 to 1000 or more times because of the extremely rare erasing memory cell. As a result, the time required to end the erase operation also becomes long. In addition, when the erase / verify operation is very large due to a very slow erase memory cell, the erase cell is over erased so that the threshold Vth of the corresponding memory cell is depleted. The state Vth < 0 results in a malfunction.

도 6은 종래의 NOR형 플래시 메모리 등과 같은 소정의 블록 단위로 데이터의 재기입을 행하는 불휘발성 반도체 기억장치에 있어서, 데이터 소거 및 그 후의 데이터 프로그래밍시의 순서 흐름을 나타내는 도면이다. 이하, 도 6의 순서 흐름에 대하여 순서대로 설명한다.FIG. 6 is a diagram showing the flow of data during data erasing and subsequent data programming in a nonvolatile semiconductor memory device which rewrites data in predetermined block units such as a conventional NOR flash memory. Hereinafter, the order flow of FIG. 6 will be described in order.

단계 SF21에서 데이터 소거가 개시되고, 단계 SF22에서 소거 베리파이 횟수 K가 최초 ‘1’ 로 설정되어 소거 펄스를 인가하는 소거 동작(단계 SF23) 및 베리파이 독출 동작(단계 SF24)이 연속으로 행해진다. 단계 SF24의 베리파이 독출 동작의 결과, 블록내의 모든 메모리 셀의 소거 종료의 종점 검출이 가능한 경우에는(단계 SF25), 단계 SF26에서, 소거 베리파이 횟수 K가 미리 설정된 소정 횟수 k0(예컨대, 100~1000회 정도) 미만인지 여부가 조사된다. 그 결과, 소거 베리파이 횟수 K가 설정 횟수 k0 미만인 경우에는 추가로 소거 베리파이 횟수 K가 증가(increment)되고(단계 SF27), 상술한 단계 SF23~SF27의 순서 흐름이 반복하여 행해진다. 그리고, 소거 베리파이 횟수 K가 설정 횟수 k0에 도달한 시점에서 데이터 소거가 실패라고 판단된다(단계 SF28).In step SF21, data erasing is started, and in step SF22, the erase verification number K is initially set to '1' so that an erase operation (step SF23) and a verify read operation (step SF24) for applying an erase pulse are performed in succession. . As a result of the verification read operation in step SF24, when the end point of erasing termination of all memory cells in the block can be detected (step SF25), in step SF26, the erase verification number K is set to a predetermined number k0 (for example, 100 to 100). Less than 1000 times). As a result, when the erase verifier number K is less than the set number k0, the erase verifier number K is further incremented (step SF27), and the above-described flow of steps SF23 to SF27 is repeatedly performed. Then, it is determined that the data erasure has failed when the erase verifier number K reaches the set number k0 (step SF28).

다음으로, 블록내의 모든 메모리 셀의 소거 종료의 종점 검출이 가능한 경우에는, 데이터 프로그래밍이 개시된다.Next, when the end point detection of the erasing end of all the memory cells in the block is possible, data programming is started.

우선, 단계 SF101에서 메모리 셀의 어드레스 Ar-NO를 최초 ‘1’ 로 설정하여, 해당 메모리 셀에 대하여 데이터 내용에 따라 데이터 프로그래밍이 행해지고(단계 SF102), 어드레스 Ar-NO가 최종 어드레스 번지인지 아닌지 여부가 조사된다(단계 SF103). 그 결과, 어드레스 Ar-NO가 최종 어드레스 번지가 아닌 경우에는, 추가로 어드레스 Ar-NO가 증가되고(단계 SF104), 상술한 단계 SF102~SF104의 순서 흐름이 반복하여 행해진다. 그리고, 어드레스 Ar-NO가 최종 어드레스 번지에 도달한 시점에서 데이터 프로그래밍이 완료한다(단계 SF105).First, in step SF101, the address Ar-NO of the memory cell is initially set to '1', and data programming is performed for the corresponding memory cell in accordance with the data contents (step SF102), and whether or not the address Ar-NO is the final address address. Is examined (step SF103). As a result, when the address Ar-NO is not the last address, the address Ar-NO is further increased (step SF104), and the above-described flow of steps SF102 to SF104 is repeatedly performed. Then, data programming is completed when the address Ar-NO reaches the final address (step SF105).

상술한 순서 흐름에 있어서, 소정의 소거 베리파이 횟수 k0은, 매우 드물게 존재하는 소거 속도가 느린 메모리 셀 때문에, 종래의 NOR형 플래시 메모리 등의 경우, 예컨대 100회~1000회 정도로 매우 많아지게 된다. 그 결과, 소거 동작을 종료하는데 필요한 시간도 매우 길어지게 되고, 결국에는 데이터의 재기입에 필요한 시간도 길어지게 되었다. 또한, 상기 소거 속도가 느린 메모리 셀 때문에 소거 속도가 빠른 메모리 셀이 과잉 소거되어, 오동작의 원인으로 되고 있다.In the above-described sequence flow, the predetermined erase verifiable number k0 is very large, for example, in the case of a conventional NOR flash memory or the like, such as 100 to 1000 times. As a result, the time required for terminating the erase operation also becomes very long, and eventually the time required for rewriting the data also becomes long. In addition, memory cells with a high erase speed are over erased due to the memory cells with a low erase speed, causing malfunction.

본 발명은 이러한 점에 착안한 것으로서, 그 목적은 데이터 프로그래밍 및 데이터 소거를 고속으로 수행할 수 있으며, 데이터의 재기입을 고속으로 행하는 것이 가능하고, 또한 과잉 소거 메모리 셀의 발생을 방지하여, 신뢰성의 향상을 도모하는 불휘발성 반도체 기억장치를 제공하는 것에 있다.SUMMARY OF THE INVENTION The present invention has been made in view of this point, and an object thereof is that data programming and data erasing can be performed at high speed, data rewriting can be performed at high speed, and the occurrence of excessive erasing memory cells can be prevented, thereby improving reliability. It is an object to provide a nonvolatile semiconductor memory device capable of improving.

상기 목적을 달성하기 위하여, 본 발명은 전기적으로 데이터의 프로그래밍이 행해지는 메모리 셀이 매트릭스 형태로 배치된 불휘발성 반도체 기억장치로서, 복수 비트 데이터내에 소정 갯수 이내의 에러 비트가 존재하는 경우에 해당 에러 비트를 정정하는 에러 정정 수단과; 상기 복수 비트 데이터를 단위로 해당 복수 단위의 메모리 셀에 대하여 데이터의 프로그래밍을 행하며, 이러한 데이터의 프로그래밍 이후 해당 데이터 프로그래밍 미종료 메모리 셀의 갯수를 계수하는 수단과; 상기 데이터 프로그래밍 미종료 메모리 셀의 갯수가 상기 소정 갯수이내의 에러 비트인 경우에, 해당 데이터 프로그래밍 미종료 메모리 셀을 남긴채로 데이터의 프로그래밍을 종료하고, 해당 에러 비트를 상기 에러 정정 수단에 의해 구제하는 수단을 구비하는 것을 불의발성 반도체 기억장치를 제공한다.SUMMARY OF THE INVENTION In order to achieve the above object, the present invention is a nonvolatile semiconductor memory device in which memory cells in which data is programmed electrically are arranged in a matrix form, and a corresponding error occurs when a predetermined number of error bits exist in a plurality of bits of data. Error correction means for correcting bits; Means for programming data for a plurality of memory cells in units of the plurality of bits of data, and counting the number of data programming non-completed memory cells after programming of the data; If the number of data programming non-memory memory cells is an error bit within the predetermined number, the programming of the data is terminated with the data programming non-memory memory cell left, and the error bit is corrected by the error correction means. The provision of the means provides an involuntary semiconductor memory device.

본 발명의 제1 특징에 따라서, 전기적으로 데이터의 프로그래밍이 행해지는 메모리 셀이 매트릭스 형태로 배치된 불휘발성 반도체 기억장치로서, 복수 비트 데이터를 단위로 하여 데이터의 독출을 행하고, 해당 복수 비트 데이터 내에 소정 갯수 이내의 에러 비트가 존재하는 경우에 해당 에러 비트를 정정하는 에러 정정 수단과; 상기 복수 비트 데이터를 단위로 하여 해당 복수 단위의 메모리 셀에 대하여 데이터의 프로그래밍을 행하며, 이러한 데이터 프로그래밍 이후에 프로그래밍 미종료 메모리 셀의 갯수를 계수하는 수단과; 상기 프로그래밍 미종료 메모리 셀의 갯수가 상기 소정 갯수 이내의 에러 비트인 경우에, 해당 프로그래밍 미종료 메모리 셀을 남긴채로 데이터의 프로그래밍을 종료하여 해당 에러 비트를 상기 에러 정정 수단에 의해 구제하는 수단 을 구비하는 불휘발성 반도체 기억장치를 제공한다.According to a first aspect of the present invention, a nonvolatile semiconductor memory device in which memory cells in which data is programmed electrically is arranged in a matrix form, wherein data is read in units of a plurality of bits of data, and the data is read in the plurality of bits of data. Error correction means for correcting an error bit when there are error bits within a predetermined number; Means for programming data to a plurality of memory cells in units of the plurality of bits of data, and counting the number of unprogrammed memory cells after such data programming; Means for terminating programming of the data with the error correcting means by terminating the programming of the data when the number of the non-programmed memory cells is an error bit within the predetermined number; A nonvolatile semiconductor memory device is provided.

예를 들면, 본 발명의 제1 실시예에서, 각 비트라인에 대하여 제공된 복수개의 데이터 래치회로로 페이지 프로그래밍 데이터를 섹터 단위로 전송하며, 데이터에 따라 선택된 섹터의 모든 메모리 셀에 대해 전기적으로 데이터의 프로그래밍이 행해지며, 매트릭스 형태로 배치되는 복수개의 메모리 셀과; 선택된 섹터의 메모리 셀 단위로 페이지 데이터의 독출을 행하고, 해당 페이지 독출된 데이터내에 소정 갯수 이내의 에러 비트가 존재하는 경우에 해당 에러 비트를 정정하는 에러 정정 수단과; 상기 페이지 프로그래밍 데이터에 따른 데이터 프로그래밍이 베리파이 독출 동작을 통하여 복수회의 프로그래밍 동작을 반복하여 행함으로써 이루어지고, 각 프로그래밍 동작마다 프로그래밍 미종료 메모리 셀이 존재하는지 여부를 검지하는 수단과, 소정 횟수의 프로그래밍 동작을 반복하여 행한 후에 프로그래밍 미종료 메모리 셀이 존재하는 경우에, 해당 프로그래밍 미종료 메모리 셀의 갯수를 계수하는 수단과; 상기 프로그래밍 미종료 메모리 셀의 갯수가 상기 소정 갯수 이내의 에러 비트인 경우에, 해당 프로그래밍 미종료 메모리 셀을 남긴채로 데이터 프로그래밍을 종료하여, 해당 에러 비트를 상기 에러 정정 수단에 의해 구제하는 수단을 구비하는 불휘발성 반도체 기억장치를 제공한다.For example, in the first embodiment of the present invention, page programming data is transmitted in sector units to a plurality of data latch circuits provided for each bit line, and electrically connected to all memory cells of a sector selected according to the data. A plurality of memory cells in which programming is performed and arranged in a matrix form; Error correction means for reading page data in units of memory cells of a selected sector and correcting the error bit when there are error bits within a predetermined number in the page read data; Data programming according to the page programming data is performed by repeatedly performing a plurality of programming operations through a VeriFi read operation, and means for detecting whether a non-programmed memory cell exists for each programming operation, and a predetermined number of programming operations. Means for counting the number of corresponding programmed non- terminated memory cells when there are non-programmed memory cells after repeating the operation; Means for terminating data programming while leaving the programmed non- terminated memory cells and retrieving the error bits by the error correction means when the number of the unprogrammed memory cells is an error bit within the predetermined number. A nonvolatile semiconductor memory device is provided.

더욱이, 바람직하게는 상기 에러 정정 수단은, 프로그래밍할 정규 데이터로부터 에러검사코드를 발생시키는 수단과; 상기 정규 데이터를 기록하기 위한 정규 메모리 어레이부와 상기 에러검사코드를 기록하기 위한 패리티 메모리 어레이부로 구성되는 메모리 어레이와; 상기 정규 데이터와 에러검사코드에 의해 합성된 페이지 프로그래밍 데이터를 상기 메모리 어레이에 페이지 프로그래밍하는 수단과; 상기 페이지 프로그래밍 데이터의 데이터 독출시에, 독출한 정규 데이터와 에러검사 코드에 의해 데이터의 프로그래밍시의 에러비트를 정정하는 수단을 구비한다.Furthermore, preferably the error correcting means comprises: means for generating an error check code from regular data to be programmed; A memory array comprising a normal memory array unit for recording the normal data and a parity memory array unit for recording the error check code; Means for page programming the page programming data synthesized by the regular data and the error check code into the memory array; And means for correcting the error bit at the time of programming the data by the read normal data and the error check code at the time of reading the data of the page programming data.

또, 바람직하게는 상기 프로그래밍 미종료 메모리 셀의 검지 수단은, 각 프로그래밍 동작 후의 각 베리파이 독출 동작마다, 프로그래밍이 종료한 메모리 셀의 접속된 데이터 래치회로에 래치되어 있는 데이터를 순차 반전시켜 재프로그래밍 데이터를 자동설정하는 수단과; 상기 재프로그래밍 데이터의 자동설정 후에, 프로그래밍 미종료의 데이터가 래치되어 있는 데이터 래치회로가 적어도 1개 이상 존재하는지 여부를 검출하는 종점 검출수단을 구비한다.Preferably, the detection means of the non-programmed memory cell re-programs the data latched in the connected data latch circuit of the memory cell in which the programming is completed, in sequence for each VeriFi read operation after each programming operation. Means for automatically setting data; And an end point detecting means for detecting whether there is at least one data latch circuit in which data for programming that is not finished is present after the automatic setting of the reprogramming data.

본 발명의 제1 실시예의 불휘발성 반도체 기억장치에 의하면, 소정 횟수의 프로그래밍 동작과 같은 데이터의 처리가 실시된 후에 프로그래밍 미종료 메모리 셀이 있는 경우에도 프로그래밍 미종료 메모리 셀의 갯수가 상기 에러 정정 수단에 의하여 정정 가능한 에러 비트의 소정 갯수 이내이면, 상기 프로그래밍 미종료 메모리 셀이 그대로 남아 있을 때 상기 데이터 프로그래밍이 종료된다.According to the nonvolatile semiconductor memory device of the first embodiment of the present invention, even if there are unprogrammed memory cells after data processing such as a predetermined number of programming operations have been performed, the number of unprogrammed memory cells has not been corrected. If within the predetermined number of correctable error bits, the data programming is terminated when the non-programmed memory cell remains.

따라서, 드물게 존재하는 프로그래밍 속도가 느린 메모리 셀의 데이터 프로그래밍에 대한 속도를 제한함이 없이 고속의 데이터 프로그래밍이 가능해진다.Thus, high speed data programming is possible without limiting the speed for data programming of rarely existing slow programming memory cells.

본 발명의 제2 형태에 의하여, 전기적으로 데이터의 소거 및 프로그래밍을 행함으로써 데이터의 재기입이 가능한 메모리 셀이 매트릭스 형태로 배치된 복수개의 메모리 셀과; 복수 비트 데이터를 단위로 하여 데이터의 독출을 행하고, 해당 복수 비트 데이터 단위내에 소정 갯수 이내의 에러 비트가 존재하는 경우에 해당 에러 비트를 정정하는 에러 정정 수단과; 적어도 1 단위 이상의 상기 복수 비트 데이터 단위의 메모리 셀에 대하여 데이터의 소거를 행하고, 이러한 데이터의 소거 후에 해당 각 복수 비트 데이터 단위 내의 소거 미종료 메모리 셀의 갯수를 계수하는 수단과; 상기 소거 미종료 메모리 셀의 갯수가 상기 소정 갯수 이내의 에러 비트인 경우에, 해당 소거 미종료 메모리 셀을 남긴채로 데이터 프로그래밍을 행하고, 해당 에러 비트를 데이터 독출시에 상기 에러 정정 수단에 의해 구제하는 수단을 구비하는 불휘발성 반도체 기억장치를 제공한다.According to a second aspect of the present invention, there are provided a plurality of memory cells in which memory cells capable of rewriting data by electrically erasing and programming data are arranged in a matrix form; Error correction means for reading data in units of a plurality of bits of data and correcting the error bit when there are error bits within a predetermined number within the plurality of bits of data; Means for erasing data into at least one unit of memory cells of the plurality of bit data units and counting the number of undeleted memory cells in each of the plurality of bit data units after erasing such data; When the number of the erased non-completed memory cells is an error bit within the predetermined number, data programming is performed while leaving the erased non-exited memory cell, and the error bit is remedied by the error correction means when the data is read. A nonvolatile semiconductor memory device having a means is provided.

예를 들면, 본 발명의 제2 실시예에서, 전기적으로 데이터의 소거 및 프로그래밍을 행함으로써 데이터의 재기입이 가능한 메모리 셀이 매트릭스 형태로 배치된 복수개의 메모리 셀과; 복수 비트 데이터를 단위로 하여 데이터의 독출을 행하고, 해당 복수 비트 데이터 단위내에 소정 갯수 이내의 에러 비트가 존재하는 경우에 해당 에러 비트를 정정하는 에러 정정 수단과; 적어도 1 단위 이상의 상기 복수 비트 데이터 단위의 메모리 셀에 대한 데이터 소거를, 베리파이 독출 동작을 통하여 복수회의 소거 전압 펄스를 반복하여 인가하여 행하고, 각 소거 동작 마다 소거 미종료 메모리 셀이 존재하는지 여부를 검지하는 수단과; 소정 횟수의 소거 동작을 반복하여 행한 후에, 소거 미종료 메모리 셀이 존재하는 경우에, 각 복수 비트 데이터 단위내의 소거 미종료 메모리 셀의 갯수를 계수하는 수단과; 상기 소거 미종료 메모리 셀의 갯수가 상기 소정 갯수 이내의 에러 비트인 경우에, 해당 소거 미종료 메모리 셀을 남긴채로 데이터 프로그래밍을 행하고, 해당 에러 비트를 데이터 독출시에 상기 에러 정정 수단에 의해 구제하는 수단을 구비하는 불휘발성 반도체 기억장치를 제공한다.For example, in the second embodiment of the present invention, a plurality of memory cells in which memory cells capable of rewriting data by electrically erasing and programming data are arranged in a matrix form; Error correction means for reading data in units of a plurality of bits of data and correcting the error bit when there are error bits within a predetermined number within the plurality of bits of data; Data erasing of the memory cells of at least one unit or more of the plurality of bit data units is performed by repeatedly applying a plurality of erase voltage pulses through a VeriFi read operation, and whether or not an erase-completed memory cell exists for each erase operation. Means for detecting; Means for counting the number of erased non-completed memory cells in each of the plurality of bit data units when there are erased non-exited memory cells after repeatedly performing a predetermined number of erase operations; When the number of the erased non-completed memory cells is an error bit within the predetermined number, data programming is performed while leaving the erased non-exited memory cell, and the error bit is remedied by the error correction means when the data is read. A nonvolatile semiconductor memory device having a means is provided.

더욱이, 바람직하게는, 상기 에러 정정 수단은, 프로그래밍할 정규 데이터로부터 에러검사코드를 발생시키는 수단과; 상기 정규 데이터를 기록하기 위한 정규 메모리 어레이부와 상기 에러검사코드를 기록하기 위한 패리티 메모리 어레이부로 구성되는 메모리 어레이와; 상기 정규 데이터와 에러검사코드에 의해 합성된 상기 복수 비트 데이터 단위의 프로그래밍 데이터를 데이터 소거 후의 상기 메모리 어레이에 프로그래밍하는 수단과; 상기 복수 비트 데이터 단위의 데이터 독출시에 독출한 정규 데이터와 에러검사코드에 의해 데이터 프로그래밍시의 에러 비트를 정정하는 수단을 구비한다.Furthermore, preferably, the error correcting means comprises: means for generating an error check code from regular data to be programmed; A memory array comprising a normal memory array unit for recording the normal data and a parity memory array unit for recording the error check code; Means for programming the data of the multi-bit data unit synthesized by the regular data and the error check code into the memory array after data erasing; And means for correcting error bits during data programming by the normal data read out at the time of reading data of the multi-bit data unit and the error check code.

또, 바람직하게는, 상기 소거 미종료 메모리 셀의 계수 수단은 일정한 클록 펄스에 동기한 컬럼 디코더의 동작에 의해 페이지 독출하고, 해당 페이지 독출 데이터를 순차 계수회로에 시프트 전송하여 소거 미종료 데이터 비트의 갯수를 카운트한다Preferably, the counting means of the erased non-ended memory cell reads out the page by the operation of the column decoder synchronized with a constant clock pulse, and shifts the page read data to the sequential counting circuit so that Count the number

본 발명의 제2 실시예의 불휘발성 반도체 기억장치에 의하면, 소정 횟수의 소거 동작을 반복적으로 수행한 후에 소거 미종료 메모리 셀의 갯수가 상기 에러 정정 수단에 의하여 정정 가능한 에러 비트의 소정 갯수이내이면 상기 소거 미종료 메모리 셀이 남아 있을 때 상기 데이터가 프로그래밍된다.According to the nonvolatile semiconductor memory device of the second embodiment of the present invention, if the number of erased non-completed memory cells is repeatedly within a predetermined number of error bits correctable by the error correction means after repeatedly performing a predetermined number of erase operations. The data is programmed when the erase unfinished memory cell remains.

따라서, 매우 드물게 존재하는 소거 속도가 느린 메모리 셀을 제한함이 없이 고속의 데이터 프로그래밍이 가능해진다. 결과적으로 데이터를 고속으로 재기입할 수 있다.Thus, high speed data programming is possible without limiting memory cells which are very rarely erased at a slow rate. As a result, data can be rewritten at high speed.

도, 소거 속도가 빠른 메모리 셀의 과잉 소거가 방지되고 신뢰성을 높인 불휘발성 기억장치가 실현된다.In addition, a nonvolatile memory device in which an over erase of a memory cell having a high erase speed is prevented and reliability is improved is realized.

이하, 본 발명의 바람직한 실시예 및 비교예를 기재한다. 그러나, 이하의 실시예는 본 발명의 이해를 돕기 위한 본 발명의 실시예에 불과할 뿐 본 발명이 이하의 실시예에 한정되는 것은 아니다.Hereinafter, preferred examples and comparative examples of the present invention are described. However, the following examples are merely examples of the present invention for better understanding of the present invention, and the present invention is not limited to the following examples.

이하, 본 발명을 이하의 실시예에 따라 구체적으로 설명한다.Hereinafter, the present invention will be described in detail according to the following examples.

[발명의 실시 형태][Embodiment of the Invention]

(제1 실시예)(First embodiment)

도 7은 본 발명에 따른 불휘발성 반도체 기억장치, 예컨대 NAND형 플래시 메모리의 구체적인 구성예를 나타내는 도면이다.7 is a diagram showing a specific configuration example of a nonvolatile semiconductor memory device, such as a NAND flash memory, according to the present invention.

도 7에 있어서, 도면부호 10은 메모리 본체를 나타내며, 이 메모리 본체(10)는 메모리 어레이부(11), 로우 디코더(12), 각 비트선마다 설치된 데이터 래치회로군(13), 컬럼 선택부(14), 재프로그래밍 데이터 자동설정회로군(15) 및 종점검출회로(16) 등으로 구성되어 있다.In Fig. 7, reference numeral 10 denotes a memory main body 10, which includes a memory array unit 11, a row decoder 12, a data latch circuit group 13 provided for each bit line, and a column selector. (14), the reprogramming data automatic setting circuit group 15, the end point detection circuit 16, and the like.

메모리 어레이부(11)는 정규 메모리 어레이(11a)와 패리티 메모리 어레이(11b)로 구성되어 있다. 정규 메모리 어레이(11a)에는 n개(통상은 512 바이트 정도)의 정규 비트선 B1~Bn이 배선되고, 패리티 메모리 어레이(11b)에는 j개(통상은 10 바이트 정도)의 패리티 비트선 b1~bj가 배선되어 있다. 또, 도면에는 워드선 Wm을 선택하여, 정규 메모리 셀 MT1~MTn 및 패리티 메모리 셀 mT1~mTj에 대하여 페이지 프로그래밍을 행하는 경우를 도시하고 있다.The memory array section 11 is composed of a regular memory array 11a and a parity memory array 11b. N regular bit lines B1 to Bn are wired to the normal memory array 11a, and usually about 512 bytes, and j parity bit lines b1 to bj are normally connected to the parity memory array 11b. Is wired. In addition, the figure shows a case where page programming is performed for the normal memory cells MT1 to MTn and the parity memory cells mT1 to mTj by selecting the word line Wm.

데이터 래치회로군(13)은 정규 데이터 래치회로 SA1~SAn 및 패리티 데이터 래치회로 sA1-sAj로 구성되고, 컬럼 선택부(14)는 정규 컬럼 선택부 14a 및 패리티 컬럼 선택부 14b로 구성되어 있다. 컬럼 선택부(14)는 데이터 전송 클록신호 ØCL에 동기하여 동작하며, 정규 데이터 래치회로 SA1~SAn 및 패리티 데이터 래치회로 sA1~sAj에 페이지 프로그래밍 데이터를 시프트 전송하고, 또 데이터 래치회로로부터 페이지 데이터의 독출을 행한다.The data latch circuit group 13 is composed of regular data latch circuits SA1 to SAn and parity data latch circuits sA1-sAj, and the column selector 14 is composed of a regular column selector 14a and a parity column selector 14b. The column selector 14 operates in synchronization with the data transfer clock signal ØCL, shifts and transfers the page programming data to the regular data latch circuits SA1 to SAn and the parity data latch circuits sA1 to sAj. Read out.

재프로그래밍 데이터 자동설정회로군(15)은 정규 데이터 래치회로 SA1~SAn 및 패리티 데이터 래치회로 sA1~sAj 마다에 대응하여 설치된 자동설정회로 15S-1~15S-n, 15S-1~15S-j에 의해 구성되어 있다. 자동설정회로 15S-1~15S-n, 15S-1~15S-j는 각 프로그래밍 동작 후의 베리파이 독출 동작마다, 프로그래밍이 종료한 메모리 셀의 접속된 데이터 래치회로에 래치되어 있는 데이터를 순차로 반전시켜 재프로그래밍 데이터를 자동 설정한다.The reprogramming data automatic setting circuit group 15 is provided in the automatic setting circuits 15S-1 to 15S-n and 15S-1 to 15S-j provided corresponding to each of the regular data latch circuits SA1 to SAn and the parity data latch circuits sA1 to sAj. It is composed by. The automatic setting circuits 15S-1 to 15S-n and 15S-1 to 15S-j sequentially invert the data latched in the connected data latch circuit of the memory cell in which programming has been completed for each VeriFi read operation after each programming operation. To automatically set the reprogramming data.

종점(終點) 검출회로(16)는 각 정규 데이터 래치회로 SA1~SAn 및 패리티 데이터 래치회로 sA1~sAj 마다에 설치된 트랜지스터 T1~Tn 및 Tp1~Tpj, 및 트랜지스터 Tset 및 반전회로 INV1로 구성되어 있다. 각 트랜지스터 T1~Tn 및 Tp1~Tpj 의 게이트 전극이 각각의 정규 데이터 래치회로 SA1~SAn 및 패리티 데이터 래치회로 sA1~sAj의 반전 출력에, 소스 전극이 접지 전위에, 드레인 전극이 공통 접속되어 있다. 소거 미종료 셀이 존재하고 적어도 1개 이상의 데이터 래치회로의 반전 출력이 하이레벨인 경우에, 공통 접속된 종점 검출 전위 Va가 접지 전위로 되고, 반전 회로 INV100에 의해 종점 검출 신호 ENDout이 하이레벨로서 출력된다. 또, 트랜지스터 Tset는 종점 검출 전위 Va를 미리 VCC 레벨로 프리차지하기 위해 설치되는 종점 검출에 앞서 프리차지 신호 Øset에 의해 구동된다.The end point detection circuit 16 is composed of transistors T1 to Tn and Tp1 to Tpj provided in each of the regular data latch circuits SA1 to SAn and the parity data latch circuits sA1 to sAj, and the transistors Tset and the inverting circuit INV1. The gate electrodes of the transistors T1 to Tn and Tp1 to Tpj are connected to the inverted outputs of the respective regular data latch circuits SA1 to SAn and the parity data latch circuits sA1 to sAj, the source electrode to the ground potential, and the drain electrode are commonly connected. When there is an erase non-ended cell and the inverted output of at least one or more data latch circuits is at a high level, the commonly-connected end point detection potential Va becomes a ground potential, and the end point detection signal ENDout is set to a high level by the inversion circuit INV100. Is output. In addition, the transistor Tset is driven by the precharge signal? Set prior to the end point detection provided for precharging the end point detection potential Va to the VCC level in advance.

도면부호 120은 데이터 입력부를 나타내며, 이 데이터 입력부(120)는 데이터 입력회로(121)와 에러검사코드 발생회로(122)로 구성된다. 데이터 입력회로(121)는 정규 입력 데이터 [Din]1~n을 에러검사코드 발생회로(122)에 입력하고, 에러검사코드(패리티 입력 데이터) [Cin]1~j를 발생한다. 정규 입력 데이터 [Din]1~n 및 에러검사코드 [Cin]1~j에 의해 합성되는 워드선 단위의 페이지 프로그래밍 데이터는, 데이터 전송 클록신호 ØCL에 동기하여, 각각 정규 데이터 래치회로 SA1~SAn 및 패리티 데이터 래치회로 sA1~sAj에 시프트 전송되고, 대응하는 정규 메모리 셀 및 패리티 메모리 셀에 페이지 프로그래밍된다.Reference numeral 120 denotes a data input unit, and the data input unit 120 includes a data input circuit 121 and an error check code generation circuit 122. The data input circuit 121 inputs regular input data [Din] 1 to n into the error check code generation circuit 122, and generates error check codes (parity input data) [Cin] 1 to j. The page programming data in word line units synthesized by the regular input data [Din] 1 to n and the error check codes [Cin] 1 to j are synchronized with the regular data latch circuits SA1 to SAn and in synchronization with the data transfer clock signal ØCL. The data is shifted to the parity data latch circuits sA1 to sAj, and page programmed to the corresponding normal memory cell and parity memory cell.

도면부호 130은 데이터 출력부를 나타내며, 이 데이터 출력부(30)는 에러검사회로(31)와 데이터 정정회로(32)로 구성된다. 에러검사회로(31)는 페이지 독출한 정규 출력 데이터 [Dout]1~n 및 에러검사코드(패리티 출력 데이터) [Cout]1~j에 의해, 데이터 복조코드 [S]1~j를 발생시킨다. 데이터 정정회로(32)는 정규 출력 데이터 [Dout]1~n 및 데이터 복조코드 [S]1~j에 의해 페이지 독출한 데이터내에 소정 갯수(예컨대, 1비트)이내의 에러 비트가 존재하는 경우에 이 에러 비트를 정정하고, 정정 후의 올바른 정규 출력 데이터 [DATA]1~n을 출력한다.Reference numeral 130 denotes a data output unit, and the data output unit 30 is composed of an error check circuit 31 and a data correction circuit 32. The error checking circuit 31 generates data demodulation codes [S] 1 to j based on the page read-out normal output data [Dout] 1 to n and the error check code (parity output data) [Cout] 1 to j. The data correction circuit 32 generates an error bit within a predetermined number (for example, 1 bit) in the data read out of the page by the normal output data [Dout] 1 to n and the data demodulation codes [S] 1 to j. This error bit is corrected and the correct normal output data [DATA] 1 to n after correction are output.

도면부호 40은 계수회로를 나타내며, 이 계수회로(40)는 소정 횟수의 프로그래밍 베리파이 횟수(예컨대, 10회 정도)를 반복한 후에 프로그래밍 미종료 메모리 셀이 존재하고 종점 검출이 가능하지 않은 경우, 결국 적어도 1개 이상의 데이터 래치회로의 출력이 로우레벨인 경우에, 이하와 같은 프로그래밍 미종료 메모리 셀의 갯수를 계수한다. 즉, 기본 데이터 전송 클록신호 ØCL에 동기시킨 베리파이 페이지 독출한 데이터 DATAver의 반전회로 INV2의 출력 DATAver'을 시프트 전송 입력하고, 최종적으로 체크신호 ØCHK의 입력에 따라 프로그래밍 미종료 메모리 셀의 갯수를 계수한다.Reference numeral 40 denotes a counting circuit, and the counting circuit 40 repeats a predetermined number of programming verifiers (e.g., about 10 times) after repetition of the programmed unfinished memory cell and the end point detection is not possible. As a result, when the output of the at least one data latch circuit is at the low level, the number of unprogrammed memory cells as described below is counted. That is, the shift transfer input of the output DATAver 'of the inverting circuit INV2 of the VeriFi page read data DATAver synchronized with the basic data transfer clock signal ØCL is finally counted according to the check signal ØCHK. do.

미종료 판정회로(50)는 메모리 본체(10)의 반전회로 INV1의 출력신호 ØCHK를 하이레벨로 입력하면, 프로그래밍 미종료 메모리 셀이 있는 것으로서, 프로그래밍 미종료 메모리 셀의 갯수의 계수를 개시하도록 체크신호 ØCHK를 계수회로(40)에 출력한다.When the non-determination determination circuit 50 inputs the output signal ØCHK of the inverting circuit INV1 of the memory main body 10 at a high level, there is a programming non-memory memory cell and checks to start counting the number of non-programmed memory cells. The signal ØCHK is output to the counting circuit 40.

판정회로(60)는 계수회로(40)의 출력 체크신호 ØCNT가 하이레벨로 전환하면, 프로그램 미종료의 셀이 1개 이상이 있는 것으로, 도시하지 않은 제어시스템으로 출력한다. 본 실시예의 경우, 판정회로(60)는, 예컨대 플립플롭으로 구성된다.When the output check signal? CNT of the counting circuit 40 switches to the high level, the decision circuit 60 outputs one or more cells that have not been completed by the program to a control system (not shown). In the case of this embodiment, the determination circuit 60 is constituted by, for example, a flip flop.

도 8은 도 7의 불휘발성 반도체 기억장치의 에러 정정수단에서 에러 비트를 취급할 수 있는 정규 데이터 비트수 n과 패리티 데이터 비트수(에러검사 비트수) j의 관계를 나타낸 도면이다.FIG. 8 is a diagram showing the relationship between the number of normal data bits n and the number of parity data bits (error checking bits) j that can handle error bits in the error correction means of the nonvolatile semiconductor memory device of FIG.

에러 정정의 원리, 에러검사코드 발생회로(22), 에러검사회로(31) 및 데이터 정정회로(32)에 대해서, 본 발명의 핵심과 직접적으로 관계가 없는 것은 여기서는 설명하지 않는 것으로 한다. 그러나, 도 8에 의하면, 512 비트의 정규 데이터 비트수에는 10비트의 에러검사비트 갯수가 필요하기 때문에, 일반적인 512 비트의 정규 입력 데이터 [Din]1~n에는 10비트의 에러검사코드 [Cin]1~j를 발생시키는 것이 필요하다.The principle of error correction, the error check code generation circuit 22, the error check circuit 31, and the data correction circuit 32 are not described here, which are not directly related to the core of the present invention. However, according to Fig. 8, since the number of error check bits of 10 bits is required for the number of 512 bit normal data bits, the error check code [Cin] of 10 bits is used for the normal 512 bit normal input data [Din] 1 to n. It is necessary to generate 1 ~ j.

도 9는 도 7의 불휘발성 반도체 기억장치에서 데이터 프로그래밍의 순서 흐름을 나타내는 도면이다. 이하, 도 9의 순서 흐름에 대하여 도 7의 구성예 등을 참조하여 설명한다.FIG. 9 is a diagram illustrating a flow of data programming in the nonvolatile semiconductor memory device of FIG. 7. Hereinafter, the flow of the process of FIG. 9 is demonstrated with reference to the structural example of FIG.

단계 S에서 데이터 프로그래밍이 개시되어, 최초로 데이터 입력회로(21)를 통해 입력된 정규 입력 데이터 [Din]1~n에 기초하여, 에러검사코드 발생회로(22)에 의해 에러검사코드 [Cin]1~j가 발생된다(단계 S2). 그리고, 정규 입력 데이터 [Din]1~n 및 에러검사코드 [Cin]1~j는 정규 컬럼 선택부 14a 및 패리티 컬럼 선택부 14b에 입력되며, 합성한 페이지 프로그래밍 데이터가 메모리 어레이내의 각 비트선마다 설치된 정규 데이터 래치회로 SA1~SAn 및 패리티 데이터 래치회로 sA1~sAj로 전송된다(단계 S3).In step S, data programming is started, and the error check code [Cin] 1 is generated by the error check code generation circuit 22 based on the regular input data [Din] 1 to n first input through the data input circuit 21. ˜j is generated (step S2). The regular input data [Din] 1 to n and the error check codes [Cin] 1 to j are input to the regular column selector 14a and the parity column selector 14b, and the synthesized page programming data is written for each bit line in the memory array. The provided regular data latch circuits SA1 to SAn and parity data latch circuits sA1 to sAj are transferred (step S3).

다음으로, 도시되지 않은 프로그래밍 제어시스템에 의해 단계 S4에서 프로그래밍 베리파이 횟수 K가 0으로 리셋되고, 프로그래밍 펄스를 인가하는 프로그래밍 동작이 행해지며(단계 S5), 베리파이 독출 후에, 자동설정회로 15S-1~l5S-n, 15S-1~15S-j에 있어서 프로그래밍 종료 메모리 셀의 정규 데이터 래치회로 SA1~SAn 및 패리티 데이터 래치회로 sA1~sAj내의 데이터를 순차적으로 반전시켜 재프로그래밍 데이터를 자동 설정한 베리파이 독출 동작(단계 S6)이 연속적으로 행해진다.Next, by the programming control system (not shown), the programming verification number K is reset to zero in step S4, and a programming operation for applying a programming pulse is performed (step S5). After the verification operation, the automatic setting circuit 15S- Berry automatically sets the reprogramming data by sequentially inverting the data in the regular data latch circuits SA1 to SAn and the parity data latch circuits sA1 to sAj of the programming termination memory cell in 1 to 5S-n and 15S-1 to 15S-j. The pie read operation (step S6) is performed continuously.

다음으로, 단계 S7에서종료검출회로(16) 및 미종료 판정회로(50)에서, 모든 메모리 셀의 프로그래밍이 종료하였는지 여부의 종점 검출은 재프로그래밍 데이터 내에 적어도 1개 이상의 프로그래밍 미종료 메모리 셀에 대응하는 데이터가 남아있는지 여부를 조사함으로써 행해진다.Next, in the end detection circuit 16 and the non-end determination circuit 50 in step S7, the end point detection of whether or not all the memory cells have been programmed corresponds to at least one or more unprogrammed memory cells in the reprogrammed data. This is done by checking whether data to be left remains.

그 결과, 모든 비트의 프로그래밍 종료의 종점 검출이 가능한 경우에는, 데이터 프로그래밍을 완료한다(단계 S12). 그러나, 모든 비트의 프로그래밍 종료의 종점 검출이 가능하지 않은 경우에는, 추가로 프로그래밍 베리파이 횟수 K가 증가되고(단계 S8), K가 미리 설정된 소정의 횟수 k0(예컨대, 10회 정도) 미만인지 여부가 조사된다(단계 S9). 그리고, K가 k0 미만인 경우에는, 상술한 단계 S5~S9의 순서 흐름이 반복하여 실시되고, K가 k0에 도달하는 시점에 단계 S10으로 진행하게 된다.As a result, when end point detection of programming termination of all bits is possible, data programming is completed (step S12). However, if the end point detection of the end of programming of all bits is not possible, the number of programming verifiers K is further increased (step S8), and whether K is less than a predetermined number of times k0 (for example, about 10 times). Is examined (step S9). When K is less than k0, the above-described flow of steps S5 to S9 is repeatedly performed, and the flow proceeds to step S10 when K reaches k0.

다음으로, 단계 S10에서 데이터 래치회로내의 데이터가 페이지 독출되고 프로그래밍 미종료 메모리 셀의 갯수가 계수회로(40)에서 계수된다. 그 다음으로, 단계 S11에서 계수된 프로그래밍 미종료 메모리 셀의 갯수가 에러 정정 가능한 소정 갯수(예컨대, 1개) 이내에 있는지 여부가 조사된다. 그 결과, 프로그래밍 미종료 메모리 셀의 갯수가 에러 정정 가능한 소정 갯수 이내에 있는 경우에는 데이터 프로그래밍을 완료시키고(단계 S12), 소정 갯수를 초과하는 경우에는 데이터 프로그래밍이 실패한 것이라고 판단한다(단계 S13).Next, at step S10, the data in the data latch circuit is page read out and the number of unprogrammed memory cells is counted in the counting circuit 40. Next, it is checked whether the number of unprogrammed memory cells counted in step S11 is within a predetermined number (e.g., one) that can be error corrected. As a result, if the number of unprogrammed memory cells is within the predetermined number capable of error correction, data programming is completed (step S12), and if the predetermined number is exceeded, it is determined that data programming has failed (step S13).

이상의 순서 흐름에 의하여, 데이터 프로그래밍을 실시한 본 발명의 불휘발성 반도체 기억장치에서, 데이터를 독출할 때 에러검사회로(31) 및 데이터 정정회로(32)에 의해 프로그래밍 미종료 메모리 셀의 에러 정정을 실시하고, 정정된 데이터 [DATA]1~n을 독출한다.According to the flow of the above procedure, in the nonvolatile semiconductor memory device of the present invention which has been subjected to data programming, the error checking circuit 31 and the data correcting circuit 32 perform error correction by the error checking circuit 31 and the data correcting circuit 32 when reading data. The corrected data [DATA] 1 to n are read.

이상 설명한 바와 같이, 본 발명의 제1 실시예에 따른 불휘발성 반도체 기억 장치에 의하면, 소정 횟수의 프로그래밍 동작을 반복하여 실시한 후에, 프로그래밍 미종료 메모리 셀이 존재하는 경우에도, 해당 프로그래밍 미종료 메모리 셀의 갯수가 에러정정수단에 의해 정정 가능한 소정 갯수 이내의 에러 비트인 경우에는 프로그래밍 미종료 메모리 셀을 남긴 그대로 데이터 프로그래밍을 종료한다. 따라서, 극히 드물게 존재하는 프로그래밍 속도가 매우 느린 메모리 셀에 의해 제한됨이 없이 고속으로 데이터의 프로그래밍이 가능하게 된다.As described above, according to the nonvolatile semiconductor memory device according to the first embodiment of the present invention, even after a predetermined number of programming operations have been repeatedly performed, even if there are no programmed memory cells, the programmed memory memory cells are not programmed. If the number of s is an error bit within a predetermined number that can be corrected by the error correction means, the data programming is terminated as it is, leaving the unprogrammed memory cell. Thus, extremely rare programming speeds can be programmed at high speed without being limited by very slow memory cells.

(제2 실시예)(2nd Example)

도 10은 본 발명에 의한 불휘발성 반도체 기억장치, 예컨대 NOR형 플래시 메모리의 구체적인 구성예를 나타내는 도면이다.FIG. 10 is a diagram showing a specific configuration example of a nonvolatile semiconductor memory device, for example, a NOR type flash memory according to the present invention.

즉, 도 10에서, 도면부호 100은 메모리 본체를 나타내며, 이 메모리 본체(100)는 메모리 어레이부(111), 로우 디코더(112), 각 비트선마다 제공된 데이터 래치회로군(113), 컬럼 선택부(114), 재프로그래밍 데이터 자동설정회로군(1150 및 종점 검출회로(116) 등으로 구성되어 있다.That is, in Fig. 10, reference numeral 100 denotes a memory body, which is a memory array unit 111, a row decoder 112, a data latch circuit group 113 provided for each bit line, and column selection. Section 114, reprogramming data automatic setting circuit group 1150, end point detection circuit 116, and the like.

메모리 어레이부(111)는 정규 메모리 어레이(111a)와 패리티 메모리 어레이(111b)로 구성되어 있다. 정규 메모리 어레이(111a)에는 n개(통상은 512 바이트 정도)의 정규 비트선 B1~Bn이 배선되고, 패리티 메모리 어레이(111b)에는 j개(통상은 10 바이트 정도)의 패리티 비트선 b1~bj가 배선되어 있다. 또, 도면에는 워드선 Wm을 선택하여, 정규 메모리 셀 MT1~MTn 및 패리티 메모리 셀 mT1~mTj에 대하여 페이지 프로그래밍을 행하는 경우를 도시하고 있다.The memory array unit 111 is composed of a regular memory array 111a and a parity memory array 111b. N regular bit lines B1 to Bn are wired to the normal memory array 111a, and usually about 512 bytes, and j parity bit lines b1 to bj are normally connected to the parity memory array 111b. Is wired. In addition, the figure shows a case where page programming is performed for the normal memory cells MT1 to MTn and the parity memory cells mT1 to mTj by selecting the word line Wm.

데이터 래치회로군(113)은 정규 데이터 래치회로 SA1~SAn 및 패리티 데이터 래치회로 sA1~sAj로 구성되고, 컬럼 선택부(114)는 정규 컬럼 선택부 114a 및 패리티 컬럼 선택부 114b로 구성되어 있다. 컬럼 선택부(114)는 데이터 전송 클록신호 ØCL에 동기하여 동작하며, 정규 데이터 래치회로 SA1~SAn 및 패리티 데이터 래치회로 sA1~sAj에 페이지 프로그래밍 데이터를 시프트 전송하고, 또 데이터 래치회로로부터 워드선 단위의 페이지 데이터의 독출을 행한다.The data latch circuit group 113 is constituted by the regular data latch circuits SA1 to SAn and the parity data latch circuits sA1 to sAj, and the column selector 114 is constituted by the normal column selector 114a and the parity column selector 114b. The column selector 114 operates in synchronism with the data transfer clock signal ØCL, shifts and transfers page programming data to the regular data latch circuits SA1 to SAn and the parity data latch circuits sA1 to sAj, and word unit by word line from the data latch circuit. The page data is read.

재프로그래밍 데이터 자동설정회로군(115)은 정규 데이터 래치회로 SA1-SAn 및 패리티 데이터 래치회로 sA1~sAj 마다에 대응하여 설치된 자동설정회로 115S-1~115S-n, 115S-1~115S-j에 의해 구성되어 있다. 자동설정회로 115S-1~115S-n, 115S-1~115S-j는 각 프로그래밍 동작 후의 베리파이 독출 동작마다, 프로그래밍이 종료한 메모리 셀의 접속된 데이터 래치회로에 래치되어 있는 데이터를 순차로 반전시켜 재프로그래밍 데이터를 자동 설정한다.The reprogramming data automatic setting circuit group 115 is provided in the automatic setting circuits 115S-1 to 115S-n and 115S-1 to 115S-j provided corresponding to each of the regular data latch circuits SA1-SAn and the parity data latch circuits sA1 to sAj. It is composed by. The automatic setting circuits 115S-1 to 115S-n and 115S-1 to 115S-j sequentially invert the data latched in the connected data latch circuit of the memory cell in which programming has been completed for each verification read operation after each programming operation. To automatically set the reprogramming data.

종점(終點) 검출회로(116)는 각 정규 데이터 래치회로 SA1~SAn 및 패리티 데이터 래치회로 sA1~sAj 마다에 설치된 트랜지스터 T1~Tn 및 Tp1~Tpj, 및 트랜지스터 Tset 및 반전회로 INV100으로 구성되어 있다. 각 트랜지스터 T1~Tn 및 Tp1~Tpj의 게이트 전극이 각각의 정규 데이터 래치회로 SA1~SAn 및 패리티 데이터 래치회로 sA1~sAj의 반전 출력에, 소스 전극이 접지 전위에, 드레인 전극이 공통 접속되어 있다. 프로그래밍 미종료 셀이 존재하고 적어도 1개 이상의 데이터 래치회로의 반전 출력이 하이레벨인 경우에, 공통 접속된 종점 검출 전위 Va가 접지 전위로 되고, 반전 회로 INV1에 의해 종점 검출 신호 ENDout이 하이레벨로서 출력된다. 또, 트랜지스터 Tset는 종점 검출 전위 Va를 미리 VCC 레벨로 프리차지하기 위해 설치되는 종점 검출에 앞서 프리차지 신호 Øset에 의해 구동된다.The end point detection circuit 116 is composed of transistors T1 to Tn and Tp1 to Tpj provided in each of the regular data latch circuits SA1 to SAn and parity data latch circuits sA1 to sAj, and the transistors Tset and inverting circuit INV100. The gate electrodes of each of the transistors T1-Tn and Tp1-Tpj are connected to the inverted outputs of the respective regular data latch circuits SA1-SAn and the parity data latch circuits sA1-sAj, the source electrode is connected to the ground potential, and the drain electrode is commonly connected. When there is a non-programmed end cell and the inverted output of at least one or more data latch circuits is at a high level, the commonly-connected end point detection potential Va is at ground potential, and the end point detection signal ENDout is at a high level by the inversion circuit INV1. Is output. In addition, the transistor Tset is driven by the precharge signal? Set prior to the end point detection provided for precharging the end point detection potential Va to the VCC level in advance.

도면부호 120은 데이터 입력부를 나타내며, 이 데이터 입력부(120)는 데이터 입력회로(121)와 에러검사코드 발생회로(122)로 구성된다. 데이터 입력회로(121)는 정규 입력 데이터 [Din]1~n을 에러검사코드 발생회로(122)에 입력하고, 에러검사코드(패리티 입력 데이터) [Cin]1~j를 발생한다. 정규 입력 데이터 [Din]1~n 및 에러검사코드 [Cin]1~j에 의해 합성되는 워드선 단위의 페이지 프로그래밍 데이터는, 데이터 전송 클록신호 ØCL에 동기하여, 각각 정규 데이터 래치회로 SA1~SAn 및 패리티 데이터 래치회로 sA1~sAj에 시프트 전송되고, 대응하는 정규 메모리 셀 및 패리티 메모리 셀에 페이지 프로그래밍된다.Reference numeral 120 denotes a data input unit, and the data input unit 120 includes a data input circuit 121 and an error check code generation circuit 122. The data input circuit 121 inputs regular input data [Din] 1 to n into the error check code generation circuit 122, and generates error check codes (parity input data) [Cin] 1 to j. The page programming data in word line units synthesized by the regular input data [Din] 1 to n and the error check codes [Cin] 1 to j are synchronized with the regular data latch circuits SA1 to SAn and in synchronization with the data transfer clock signal ØCL. The data is shifted to the parity data latch circuits sA1 to sAj, and page programmed to the corresponding normal memory cell and parity memory cell.

도면부호 130은 데이터 출력부를 나타내며, 이 데이터 출력부(130)는 에러검사회로(131)와 데이터 정정회로(132)로 구성된다. 에러검사회로(131)는 페이지 독출한 정규 출력 데이터 [Dout]1~n 및 에러검사코드(패리티 출력 데이터) [Cout]1~j에 의해, 데이터 복조코드 [S]1~j를 발생시킨다. 데이터 정정회로(132)는 정규 출력 데이터 [Dout]1~n 및 데이터 복조코드 [S]1~j에 의해 페이지 독출한 데이터내에 소정 갯수(예컨대, 1비트)이내의 에러 비트가 존재하는 경우에 이 에러 비트를 정정하고, 정정 후의 올바른 정규 출력 데이터 [DATA]1~n을 출력한다.Reference numeral 130 denotes a data output unit, and the data output unit 130 includes an error check circuit 131 and a data correction circuit 132. The error checking circuit 131 generates data demodulation codes [S] 1 to j based on the page read out regular output data [Dout] 1 to n and the error check code (parity output data) [Cout] 1 to j. The data correction circuit 132 performs an error when there are error bits within a predetermined number (for example, 1 bit) in the data read out of the page by the normal output data [Dout] 1 to n and the data demodulation codes [S] 1 to j. This error bit is corrected and the correct normal output data [DATA] 1 to n after correction are output.

도면부호 140은 계수회로를 나타내며, 이 계수회로(140)는 소정 횟수의 소거 베리파이 횟수(예컨대, 10회~100회 정도)를 반복한 후에 소거 블록내의 각 페이지 내에 소거 미종료 메모리 셀이 존재하고 종점 검출이 가능하지 않은 경우, 결국 각 페이지마다의 베리파이 독출시에 1개 이상의 데이터 래치회로의 출력이 하이레벨인 경우에, 이하와 같은 소거 미종료 메모리 셀의 갯수를 계수한다. 즉, 기본 데이터 전송 클록신호 ØCL에 동기시킨 베리파이 페이지 독출 데이터 DATAver을 시프트 입력하고, 최종적으로 체크신호 ØCHK의 입력에 따라 소거 미종료 메모리 셀의 갯수를 계수한다.Reference numeral 140 denotes a counting circuit, which repeats a predetermined number of erase verifiers (e.g., about 10 to about 100 times), and then there is an undeleted memory cell in each page of the erase block. When the end point detection is not possible, when the output of one or more data latch circuits is at a high level at the time of verify reading for each page, the following number of erased non-ended memory cells is counted. That is, the shift-in page read data DATAver synchronized with the basic data transfer clock signal ØCL is shifted in, and finally, the number of undeleted memory cells is counted according to the check signal ØCHK.

미종료 판정회로(150)는 메모리 본체(100)의 반전회로 INV100의 출력신호 ØCHK를 하이레벨로 입력하면, 소거 미종료 메모리 셀이 있는 것으로서, 소거 미종료 메모리 셀의 갯수의 계수를 개시하도록 체크신호 ØCHK를 계수회로(140)에 출력한다.The non-finish determination circuit 150 checks to start counting the number of erased non-finished memory cells when there is an erased non-finished memory cell when the output signal ØCHK of the inverting circuit INV100 of the memory main body 100 is input at a high level. The signal ØCHK is output to the counting circuit 140.

판정회로(160)는 계수회로(140)의 출력 체크신호 ØCNT가 하이레벨로 전환하면, 소거 미종료의 셀이 1개 이상이 있는 것으로, 도시하지 않은 제어시스템으로 출력한다. 본 실시예의 경우도, 판정회로(160)는, 예컨대 플립플롭으로 구성될 수 있다.When the output check signal? CNT of the counting circuit 140 switches to the high level, the determination circuit 160 outputs to the control system (not shown) that there is one or more cells that have not been erased. Also in this embodiment, the determination circuit 160 may be configured as, for example, a flip flop.

도 10의 불휘발성 반도체 기억장치에서의 에러 정정수단에 있어서, 1비트 에러에 대처할 수 있는 정규 데이터 비트 수 n과 패리티 데이터 비트 수(에러 검사 비트 수) j 와의 관계는, 제1 실시예의 경우와 동일하게 도 8에 나타낸 바와 같은 관계이다.In the error correcting means in the nonvolatile semiconductor memory device of Fig. 10, the relationship between the number of normal data bits n and the number of parity data bits (error check bits) j that can cope with a one-bit error is different from that in the first embodiment. Similarly, the relationship is as shown in FIG.

에러 정정의 원리, 에러검사코드 발생회로(122), 에러검사회로(131) 및 데이터 정정회로(132)에 대해서, 본 발명의 핵심과 직접적으로 관계가 없는 것은 여기서는 설명하지 않는 것으로 한다. 그러나, 도 8에 의하면, 512 비트의 정규 데이터 비트 수에는 10비트의 에러검사비트 갯수가 필요하기 때문에, 워드선을 512 바이트 페이지 크기로서 128 페이지의 64K바이트 소거 블록 단위가 구성되어 있는 경우, 각 페이지마다에, 512 바이트의 정규 입력 데이터 [Din]1~n에는 10 비트의 에러검사코드 [Cin]1~j를 발생시킬 필요가 있다.The principle of error correction, the error check code generation circuit 122, the error check circuit 131, and the data correction circuit 132 are not described here, which are not directly related to the core of the present invention. However, according to Fig. 8, since the number of error checking bits of 10 bits is required for the number of 512 bit regular data bits, each 128-page 64K byte erasure block unit having a word line of 512-byte page size is constructed. For each page, it is necessary to generate a 10-bit error check code [Cin] 1 to j for 512 bytes of regular input data [Din] 1 to n.

도 11은 도 10의 불휘발성 반도체 기억장치에서 데이터 소거의 순서 흐름을 나타내는 도면이다. 또, 도 12는 그 이후의 데이터 프로그래밍의 순서 흐름을 나타내는 도면이다. 이하, 도 11 및 도 12의 순서 흐름에 대하여 도 10의 구성예 등을 참조하여 설명한다.FIG. 11 is a diagram illustrating an order flow of data erasing in the nonvolatile semiconductor memory device of FIG. 10. 12 is a diagram showing the flow of data programming thereafter. Hereinafter, the sequence flow of FIG. 11 and FIG. 12 is demonstrated with reference to the structural example of FIG.

단계 S21에서 데이터의 소거 동작이 개시되고, 단계 S21에서 데이터 소거가 시작된다. 단계 S22에서 소거 베리파이 동작의 횟수 K를 최초 ‘1’로 설정하고나서, 소거 펄스(단계 S23)를 인가하는 소거 동작 및 베리파이 독출 동작(단계 S24)이 연속적으로 실시한다. 단계 S24의 베리파이 독출 동작의 결과로서 모든 메모리 셀 블록의 소거 종점 검출이 가능한 경우(단계 S25), 데이터의 소거가 종료된다.The data erase operation is started in step S21, and data erase starts in step S21. In step S22, the number K of erase verifier operations is initially set to '1', and then the erase operation and the verify read operation (step S24) that apply an erase pulse (step S23) are successively performed. If erasing end point detection of all the memory cell blocks is possible as a result of the VeriFi read operation in step S24 (step S25), erasing of the data ends.

한편, 단계 S24의 베리파이 독출 동작의 결과로서, 모든 메모리 셀 블록의 소거 종점 검출이 가능하지 않은 경우(단계 S25), 단계 S26에서 소거 베리파이 동작의 횟수 K가 미리 설정한 소정 횟수 k0(예컨대, 100~1000회 정도) 미만인지 여부를 조사한다. 그 결과, 소거 베리파이 횟수 K가 설정 횟수 k0 미만인 경우에는, 소거 베리파이 횟수 K가 증가되고(단계 S27), 상술한 단계 S23~S27의 순서 흐름이 반복하여 행해진다. 그리고, 소거 베리파이 횟수 K가 설정 횟수 k0에 도달한 시점에서 소거 미종료 메모리 셀이 존재하는 것으로서 단계 S28의 처리로 이행하게 된다On the other hand, when the erase end point detection of all the memory cell blocks is not possible (step S25) as a result of the verification operation of step S24 (step S25), a predetermined number k0 preset by the number K of erase verification operations in step S26 (e.g., , 100-1000 times). As a result, when the erase verifier number K is less than the set number k0, the erase verifier number K is increased (step S27), and the above-described flow of steps S23 to S27 is repeatedly performed. Then, when the erase verifier number K reaches the set number k0, the process ends in the process of step S28, when there is an undeleted memory cell.

단계 S28에 있어서, 소거 블록내의 페이지 어드레스 Pg-NO를 우선 최초 ‘1’ 로 설정하고, 데이터 래치회로의 소거 데이터를 페이지 독출하여, 소거 미종료 메모리 셀의 갯수가 계수된다(단계 S29).In step S28, the page address Pg-NO in the erase block is first set to '1' first, the erase data of the data latch circuit is read out by the page, and the number of undeleted memory cells is counted (step S29).

다음으로, 단계 S30에서 계수된 소거 미종료 메모리 셀의 갯수가 에러 정정 가능한 소정 갯수(예컨대, 1개) 이내에 있는지 여부가 조사된다. 그 결과, 소거 미종료 메모리 셀의 갯수가 에러 정정 가능한 소정 갯수를 초과하는 경우에는 데이터 소정 동작이 실패한 것으로 판단한다(단계 S34). 한편, 소거 미종료 셀의 갯수가 에러 정정 가능한 소정 갯수 이내에 있을 경우에는, 페이지 어드레스 Pg-NO가 최종 어드레스인지 여부를 체크한다(단계 S31). 페이지 어드레스 Pg-가 최종 어드레스가 아닌 경우에는 페이지 어드레스 Pg-NO가 증가되고(단계 S32), 단계 S29~S32의 순서 흐름이 반복하여 실시된다. 페이지 어드레스 Pg-NO가 최종 어드레스에 도달한 시점에서, 데이터 소거가 완료된 것이라고 판단한다(단계 S33).Next, it is checked whether or not the number of erased non-ended memory cells counted in step S30 is within a predetermined number (e.g., one) capable of error correction. As a result, when the number of undeleted memory cells exceeds the predetermined number capable of error correction, it is determined that the data predetermined operation has failed (step S34). On the other hand, if the number of erased non-completed cells is within a predetermined number capable of error correction, it is checked whether the page address Pg-NO is the last address (step S31). If the page address Pg- is not the final address, the page address Pg-NO is increased (step S32), and the sequence flow of steps S29 to S32 is repeatedly performed. When the page address Pg-NO reaches the final address, it is determined that data erasing has been completed (step S33).

다음으로, 도 12의 데이터 프로그래밍의 순서 흐름을 설명한다. 데이터 소거가 종료될 때(도 11의 단계 S33), 데이터 프로그래밍이 시작된다(단계 S101). 우선 단계 S102에서 내의 페이지 어드레스 Pg-NO를 최초 ‘1’ 로 설정하고, 페이지의 정규 입력 데이터 [Din]1~n을 기초로 한 에러검사코드 발생회로(22)에 의하여 에러검사코드 [Cin]1~j가 발생된다(단계 S103). 다음으로, 메모리 셀의 어드레스 Pg-NO를 페이지에서 최초 ‘1’ 로 설정하고(단계 S104), 메모리 셀 데이터의 내용에 따라 데이터를 프로그래밍하고(단계 S105), 어드레스 Ar-NO가 최종 어드레스인지 여부를 체크한다(단계 S106). 그 결과, 어드레스 Ar-NO가 최종 어드레스가 아닌 경우에는, 어드레스 Ar-NO가 증가되고(단계 S107), 단계 S103~S107의 순서 흐름이 반복하여 실시된다. 어드레스 Ar-NO가 최종 어드레스에 도달한 시점에서, 페이지의 데이터 프로그래밍이 종료된다.Next, the sequence flow of data programming of FIG. 12 will be described. When data erasing ends (step S33 in Fig. 11), data programming starts (step S101). First, the page address Pg-NO in step S102 is first set to '1', and the error check code [Cin] is made by the error check code generating circuit 22 based on the regular input data [Din] 1 to n of the page. 1 to j are generated (step S103). Next, the address Pg-NO of the memory cell is first set to '1' on the page (step S104), the data is programmed according to the contents of the memory cell data (step S105), and whether the address Ar-NO is the final address. Is checked (step S106). As a result, when the address Ar-NO is not the final address, the address Ar-NO is increased (step S107), and the sequence flow of steps S103 to S107 is repeatedly performed. When the address Ar-NO reaches the final address, the data programming of the page ends.

다음으로, 단계 S108에서 페이지 어드레스 Pg-NO가 최종 어드레스인지 여부를 체크한다.Next, it is checked in step S108 whether the page address Pg-NO is the last address.

그 결과, 어드레스 Pg-NO가 최종 어드레스가 아닌 경우에는, 페이지 어드레스 Pg-NO가 증가되고(단계 S109), 단계 S103~S109의 순서 흐름이 반복하여 실행된다. 어드레스 Pg-NO가 최종 어드레스에 도달한 시점에서, 페이지의 데이터 프로그래밍이 종료된다(단계 S110).As a result, when the address Pg-NO is not the final address, the page address Pg-NO is increased (step S109), and the sequence flow of steps S103 to S109 is repeatedly executed. When the address Pg-NO reaches the final address, data programming of the page is terminated (step S110).

이상의 순서 흐름에 의해 데이터가 재기입된, 본 발명의 불휘발성 반도체 기억장치에서 데이터 독출시 에러검사회로(131) 및 데이터 정정회로(132)에 의해 소거 미종료 메모리 셀의 에러를 정정하여, 올바른 정규 데이터 [DATA]1~n을 독출하게 된다.In the nonvolatile semiconductor memory device of the present invention in which data is rewritten according to the above-described flow, the error check circuit 131 and the data correction circuit 132 correct errors of the unfinished memory cell by correcting the error. Regular data [DATA] 1 to n are read out.

이상 설명한 바와 같이, 제2 실시예의 불휘발성 반도체 기억장치에 따라 소정 횟수의 소거 동작을 반복하여 실시한 후에 소거 미종료 메모리 셀이 존재하는 경우에도, 당해 소거 미종료 메모리 셀의 갯수가 에러 정정수단에 의해 정정이 가능한 소정 갯수 이내의 에러 비트인 경우에는 소거 미종료 메모리 셀을 남긴 그대로 데이터 프로그래밍을 종료한다.As described above, even if an erase-completed memory cell exists after repeatedly performing a predetermined number of erase operations in accordance with the nonvolatile semiconductor memory device of the second embodiment, the number of the erased-completed memory cells is determined by the error correction means. In the case of error bits within a predetermined number that can be corrected by the data, data programming is terminated as it is, without leaving the erased unfinished memory cells.

따라서, 드물게 존재하는 소거 속도가 느린 메모리 셀에 의해 제한됨이 없이 고속의 데이터 프로그래밍이 가능해진다. 결과적으로, 데이터가 고속으로 재기입될 수 있다. 또한, 소거 속도가 빠른 메모리 셀의 과잉 소거를 방지할 수 있어, 신뢰성이 높은 불휘발성 반도체 기억장치를 실현할 수 있게 된다.Therefore, high speed data programming is possible without being rarely limited by the slow memory cells. As a result, data can be rewritten at high speed. In addition, it is possible to prevent excessive erasing of a memory cell having a high erase speed, thereby achieving a highly reliable nonvolatile semiconductor memory device.

이상 설명한 바와 같이, 본 발명에 의하면 고속의 데이터 프로그래밍이 가능한 불휘발성 반도체 기억장치를 실현할 수 있다.As described above, according to the present invention, a nonvolatile semiconductor memory device capable of high-speed data programming can be realized.

또한, 본 발명에 의하면, 고속으로 데이터를 소거하고 고속으로 데이터를 재기입하며, 메모리 셀의 과잉 소거를 방지하는 것인 가능한, 신뢰성이 향상된 불휘발성 반도체 기억장치를 실현할 수 있게 된다.Further, according to the present invention, it is possible to realize a highly reliable nonvolatile semiconductor memory device capable of erasing data at high speed, rewriting data at high speed, and preventing excessive erasing of memory cells.

도 1a 및 도 1b는 각각 NAND형 및 DINOR형 플래시 메모리의 메모리 어레이 구조를 나타낸 도면.1A and 1B show a memory array structure of NAND type and DINOR type flash memories, respectively.

도 2는 일반적인 NOR형 플래시 메모리에 있어서, 메모리 어레이 구조 및 데이터 소거시의 바이어스 조건을 나타내는 도면이다.FIG. 2 is a diagram showing a memory array structure and a bias condition when erasing data in a general NOR flash memory.

도 3은 워드선 섹터의 단위로서 페이지 프로그래밍을 실시하는 종래 기술의 반도체 불휘발성 메모리에서 메모리 셀간의 프로그래밍 속도의 차이를 나타낸 도면.3 is a diagram showing a difference in programming speed between memory cells in a conventional semiconductor nonvolatile memory in which page programming is performed as a unit of word line sectors.

도 4는 워드선 섹터의 단위로서 페이지 프로그래밍을 실시하는 종래 기술의 반도체 불휘발성 메모리에서 데이터를 프로그래밍하는 순서 흐름을 나타낸 도면.Fig. 4 is a flow chart of programming data in a semiconductor nonvolatile memory of the prior art in which page programming is performed as a unit of word line sectors.

도 5는 소거된 블록의 메모리 셀간의 소거 속도의 차이를 나타낸 도면.5 is a diagram illustrating a difference in erase speed between memory cells of an erased block.

도 6은 종래 기술의 NOR형 플래시 메모리에서 데이터를 다시 쓸 때의 순서 흐름을 나타낸 도면.Fig. 6 is a diagram showing a sequence flow when rewriting data in a NOR flash memory of the prior art.

도 7은 본 발명의 제1 실시예에 따른 불휘발성의 반도체 메모리 구성의 예를 나타낸 도면.Fig. 7 is a diagram showing an example of the configuration of a nonvolatile semiconductor memory according to the first embodiment of the present invention.

도 8은 도 7의 반도체 불휘발성 메모리의 에러 정정 수단에서 에러 비트를 취급하는 것이 가능한 정규 데이터의 비트수 n 및 패리티 데이터의 수 j(에러 검사 비트의 수)의 관계를 나타낸 도면.FIG. 8 is a diagram showing a relationship between the number of bits n of regular data and the number of parity data j (the number of error check bits) capable of handling error bits in the error correction means of the semiconductor nonvolatile memory of FIG. 7; FIG.

도 9는 도 7의 불휘발성 반도체 기억장치에서 데이터 프로그래밍의 순서 흐름을 나타낸 도면.FIG. 9 is a flow chart of data programming in the nonvolatile semiconductor memory device of FIG.

도 10은 본 발명의 제2 실시예에 따른 불휘발성 반도체 기억장치의 구성을 예를 나타낸 도면.Fig. 10 shows an example of the configuration of a nonvolatile semiconductor memory device according to the second embodiment of the present invention.

도 11은 도 10의 불휘발성 메모리에서 데이터 소거의 순서 흐름을 나타낸 도면.FIG. 11 is a diagram illustrating a flow of data erasing in the nonvolatile memory of FIG. 10. FIG.

도 12는 도 10의 불휘발성 반도체 기억장치에서 데이터 프로그래밍의 순서 흐름을 나타낸 도면.FIG. 12 is a flow chart of data programming in the nonvolatile semiconductor memory device of FIG. 10; FIG.

Claims (15)

전기적으로 데이터의 프로그래밍이 행해지는 메모리 셀이 매트릭스 형태로 배치된 불휘발성 반도체 기억장치로서,A nonvolatile semiconductor memory device in which memory cells in which data is electrically programmed are arranged in a matrix form. 복수 비트 데이터내에 소정 갯수 이내의 에러 비트가 존재하는 경우에 해당 에러 비트를 정정하는 에러 정정 수단과;Error correction means for correcting the error bit when there are error bits within a predetermined number in the plurality of bit data; 상기 복수 비트 데이터를 단위로 해당 복수 단위의 메모리 셀에 대하여 데이터의 프로그래밍을 행하며, 이러한 데이터의 프로그래밍 이후 해당 데이터 프로그래밍 미종료 메모리 셀의 갯수를 계수하는 수단과;Means for programming data for a plurality of memory cells in units of the plurality of bits of data, and counting the number of data programming non-completed memory cells after programming of the data; 상기 데이터 프로그래밍 미종료 메모리 셀의 갯수가 상기 소정 갯수이내의 에러 비트인 경우에, 해당 데이터 프로그래밍 미종료 메모리 셀을 남긴채로 데이터의 프로그래밍을 종료하고, 해당 에러 비트를 상기 에러 정정 수단에 의해 구제하는 수단If the number of data programming non-memory memory cells is an error bit within the predetermined number, the programming of the data is terminated with the data programming non-memory memory cell left, and the error bit is corrected by the error correction means. Way 을 구비하는 것을 특징으로 하는 불휘발성 반도체 기억장치.And a nonvolatile semiconductor memory device. 전기적으로 데이터의 프로그래밍이 행해지는 메모리 셀이 매트릭스 형태로 배치된 불휘발성 반도체 기억장치로서,A nonvolatile semiconductor memory device in which memory cells in which data is electrically programmed are arranged in a matrix form. 복수 비트 데이터를 단위로 하여 데이터의 독출을 행하고, 해당 복수 비트 데이터 내에 소정 갯수 이내의 에러 비트가 존재하는 경우에 해당 에러 비트를 정정하는 에러 정정 수단과;Error correction means for reading data in units of a plurality of bits of data and correcting the error bit when there are error bits within a predetermined number in the plurality of bits of data; 상기 복수 비트 데이터를 단위로 하여 해당 복수 단위의 메모리 셀에 대하여 데이터의 프로그래밍을 행하며, 이러한 데이터 프로그래밍 이후에 프로그래밍 미종료 메모리 셀의 갯수를 계수하는 수단과;Means for programming data to a plurality of memory cells in units of the plurality of bits of data, and counting the number of unprogrammed memory cells after such data programming; 상기 프로그래밍 미종료 메모리 셀의 갯수가 상기 소정 갯수 이내의 에러 비트인 경우에, 해당 프로그래밍 미종료 메모리 셀을 남긴채로 데이터의 프로그래밍을 종료하여 해당 에러 비트를 상기 에러 정정 수단에 의해 구제하는 수단Means for terminating programming of the data by means of the error correction means by terminating programming of the data while leaving the programmed non- terminated memory cells when the number of the unprogrammed memory cells is the error bit within the predetermined number. 을 구비하는 것을 특징으로 하는 불휘발성 반도체 기억장치.And a nonvolatile semiconductor memory device. 데이터에 따라 선택된 섹터의 모든 메모리 셀에 대하여 전기적으로 데이터의 프로그래밍이 일괄로 행해지고, 매트릭스 형태로 배치된 복수개의 메모리 셀과;A plurality of memory cells which are electrically programmed for all the memory cells of the sector selected in accordance with the data, arranged in a matrix form; 비트 라인마다 제공된 복수개의 데이터 래치회로와;A plurality of data latch circuits provided for each bit line; 섹터 단위의 페이지 프로그래밍 데이터를 상기 데이터 래치회로에 전송하는 수단과;Means for transferring sector programming page programming data to the data latch circuit; 선택된 섹터의 메모리 셀 단위로 페이지 데이터의 독출을 행하고, 해당 페이지 독출된 데이터내에 소정 갯수 이내의 에러 비트가 존재하는 경우에 해당 에러 비트를 정정하는 에러 정정 수단과;Error correction means for reading page data in units of memory cells of a selected sector and correcting the error bit when there are error bits within a predetermined number in the page read data; 상기 페이지 프로그래밍 데이터에 따른 데이터 프로그래밍이 베리파이 독출 동작을 통하여 복수회의 프로그래밍 동작을 반복하여 행함으로써 이루어지고, 각 프로그래밍 동작마다 프로그래밍 미종료 메모리 셀이 존재하는지 여부를 검지하는 수단과;Means for detecting whether there is a non-programmed memory cell for each programming operation, wherein data programming according to the page programming data is performed by repeatedly performing a plurality of programming operations through a VeriFi read operation; 소정 횟수의 프로그래밍 동작을 반복하여 행한 후에 프로그래밍 미종료 메모리 셀이 존재하는 경우에, 해당 프로그래밍 미종료 메모리 셀의 갯수를 계수하는 수단과;Means for counting the number of programming non-completed memory cells when there are non-programmed memory cells after repeating a predetermined number of programming operations; 상기 프로그래밍 미종료 메모리 셀의 갯수가 상기 소정 갯수 이내의 에러 비트인 경우에, 해당 프로그래밍 미종료 메모리 셀을 남긴채로 데이터 프로그래밍을 종료하여, 해당 에러 비트를 상기 에러 정정 수단에 의해 구제하는 수단If the number of the unprogrammed memory cells is an error bit within the predetermined number, means for terminating data programming while leaving the programmed non-finished memory cell to rescue the error bit by the error correction means. 을 구비하는 것을 특징으로 하는 불휘발성 반도체 기억장치.And a nonvolatile semiconductor memory device. 제3항에 있어서,The method of claim 3, 상기 섹터 단위는 워드선 단위인 것을 특징으로 하는 불휘발성 반도체 기억장치.And the sector unit is a word line unit. 제3항에 있어서,The method of claim 3, 상기 에러 정정 수단은,The error correction means, 프로그래밍할 정규 데이터로부터 에러검사코드를 발생시키는 수단과;Means for generating an error check code from the regular data to be programmed; 상기 정규 데이터를 기록하기 위한 정규 메모리 어레이부와 상기 에러검사코드를 기록하기 위한 패리티 메모리 어레이부로 구성되는 메모리 어레이와;A memory array comprising a normal memory array unit for recording the normal data and a parity memory array unit for recording the error check code; 상기 정규 데이터와 에러검사코드에 의해 합성된 페이지 프로그래밍 데이터를 상기 메모리 어레이에 페이지 프로그래밍하는 수단과;Means for page programming the page programming data synthesized by the regular data and the error check code into the memory array; 상기 페이지 프로그래밍 데이터의 데이터 독출시에, 독출한 정규 데이터와 에러검사코드에 의해 데이터의 프로그래밍시의 에러비트를 정정하는 수단Means for correcting an error bit at the time of programming the data by the read regular data and the error check code at the time of reading the data of the page programming data; 을 구비하는 것을 특징으로 하는 불휘발성 반도체 기억장치.And a nonvolatile semiconductor memory device. 제3항에 있어서,The method of claim 3, 상기 프로그래밍 미종료 메모리 셀의 검지 수단은,The detection means of the non-programmed memory cell is 각 프로그래밍 동작 후의 각 베리파이 독출 동작마다, 프로그래밍이 종료한 메모리 셀의 접속된 데이터 래치회로에 래치되어 있는 데이터를 순차 반전시켜 재프로그래밍 데이터를 자동설정하는 수단과;Means for automatically setting reprogramming data by sequentially inverting the data latched in the connected data latch circuit of the memory cell in which programming has been completed, for each VeriFi read operation after each programming operation; 상기 재프로그래밍 데이터의 자동설정 후에, 프로그래밍 미종료의 데이터가 래치되어 있는 데이터 래치회로가 적어도 1개 이상 존재하는지 여부를 검출하는 종점 검출수단End point detecting means for detecting whether there is at least one data latch circuit in which data that has not been programmed has been latched after the automatic setting of the reprogramming data 을 구비하는 것을 특징으로 라는 불휘발성 반도체 기억장치.And a nonvolatile semiconductor memory device. 제3항에 있어서,The method of claim 3, 상기 프로그래밍 미종료 메모리 셀의 계수 수단은,Counting means of the non-programmed memory cell, 일정한 클록 펄스에 동기한 컬럼 디코더의 동작에 의해 페이지 독출하고, 해당 페이지 독출 데이터를 순차 계수회로에 시프트 전송하여 프로그래밍 미종료의 데이터 비트의 갯수를 카운트하는 것을 특징으로 하는 불휘발성 반도체 기억장치.A nonvolatile semiconductor memory device, characterized in that a page is read by an operation of a column decoder synchronized with a predetermined clock pulse, and the page read data is shifted to a sequential counting circuit to count the number of unprogrammed data bits. 제3항에 있어서,The method of claim 3, 상기 메모리 셀이 매트릭스 형태로 배치된 메모리 어레이는, 복수개의 메모리 셀이 직렬로 접속된 NAND형 구조를 이루는 것을 특징으로 하는 불휘발성 반도체 기억장치.A memory array in which the memory cells are arranged in a matrix form has a NAND type structure in which a plurality of memory cells are connected in series. 제3항에 있어서,The method of claim 3, 상기 메모리 셀이 매트릭스 형태로 배치된 메모리 어레이는 NOR형 구조를 이루며, 주비트선이 동작 가능한 접속 수단을 통해 복수개의 부비트선으로 계층화되어 있는 것을 특징으로 하는 불휘발성 반도체 기억장치.The memory array in which the memory cells are arranged in a matrix form has a NOR structure, wherein the main bit lines are layered into a plurality of sub bit lines through an operation connecting means. 전기적으로 데이터의 소거 및 프로그래밍을 행함으로써 데이터의 재기입이 가능한 메모리 셀이 매트릭스 형태로 배치된 복수개의 메모리 셀과;A plurality of memory cells in which memory cells capable of rewriting data by electrically erasing and programming the data are arranged in a matrix form; 복수 비트 데이터를 단위로 하여 데이터의 독출을 행하고, 해당 복수 비트 데이터 단위내에 소정 갯수 이내의 에러 비트가 존재하는 경우에 해당 에러 비트를 정정하는 에러 정정 수단과;Error correction means for reading data in units of a plurality of bits of data and correcting the error bit when there are error bits within a predetermined number within the plurality of bits of data; 적어도 1 단위 이상의 상기 복수 비트 데이터 단위의 메모리 셀에 대하여 데이터의 소거를 행하고, 이러한 데이터의 소거 후에 해당 각 복수 비트 데이터 단위 내의 소거 미종료 메모리 셀의 갯수를 계수하는 수단과;Means for erasing data into at least one unit of memory cells of the plurality of bit data units and counting the number of undeleted memory cells in each of the plurality of bit data units after erasing such data; 상기 소거 미종료 메모리 셀의 갯수가 상기 소정 갯수 이내의 에러 비트인 경우에, 해당 소거 미종료 메모리 셀을 남긴채로 데이터 프로그래밍을 행하고, 해당 에러 비트를 데이터 독출시에 상기 에러 정정 수단에 의해 구제하는 수단When the number of the erased non-completed memory cells is an error bit within the predetermined number, data programming is performed while leaving the erased non-exited memory cell, and the error bit is remedied by the error correction means when the data is read. Way 을 구비하는 것을 특징으로 하는 불휘발성 반도체 기억장치.And a nonvolatile semiconductor memory device. 전기적으로 데이터의 소거 및 프로그래밍을 행함으로써 데이터의 재기입이 가능한 메모리 셀이 매트릭스 형태로 배치된 복수개의 메모리 셀과;A plurality of memory cells in which memory cells capable of rewriting data by electrically erasing and programming the data are arranged in a matrix form; 복수 비트 데이터를 단위로 하여 데이터의 독출을 행하고, 해당 복수 비트 데이터 단위내에 소정 갯수 이내의 에러 비트가 존재하는 경우에 해당 에러 비트를 정정하는 에러 정정 수단과;Error correction means for reading data in units of a plurality of bits of data and correcting the error bit when there are error bits within a predetermined number within the plurality of bits of data; 적어도 1 단위 이상의 상기 복수 비트 데이터 단위의 메모리 셀에 대한 데이터 소거를, 베리파이 독출 동작을 통하여 복수회의 소거 전압 펄스를 반복하여 인가하여 행하고, 각 소거 동작 마다 소거 미종료 메모리 셀이 존재하는지 여부를 검지하는 수단과;Data erasing of the memory cells of at least one unit or more of the plurality of bit data units is performed by repeatedly applying a plurality of erase voltage pulses through a VeriFi read operation, and whether or not an erase-completed memory cell exists for each erase operation. Means for detecting; 소정 횟수의 소거 동작을 반복하여 행한 후에, 소거 미종료 메모리 셀이 존재하는 경우에, 각 복수 비트 데이터 단위내의 소거 미종료 메모리 셀의 갯수를 계수하는 수단과;Means for counting the number of erased non-completed memory cells in each of the plurality of bit data units when there are erased non-exited memory cells after repeatedly performing a predetermined number of erase operations; 상기 소거 미종료 메모리 셀의 갯수가 상기 소정 갯수 이내의 에러 비트인 경우에, 해당 소거 미종료 메모리 셀을 남긴채로 데이터 프로그래밍을 행하고, 해당 에러 비트를 데이터 독출시에 상기 에러 정정 수단에 의해 구제하는 수단When the number of the erased non-completed memory cells is an error bit within the predetermined number, data programming is performed while leaving the erased non-exited memory cell, and the error bit is remedied by the error correction means when the data is read. Way 을 구비하는 것을 특징으로 하는 불휘발성 반도체 기억장치.And a nonvolatile semiconductor memory device. 제11항에 있어서,The method of claim 11, 상기 에러 정정 수단은,The error correction means, 프로그래밍할 정규 데이터로부터 에러검사코드를 발생시키는 수단과;Means for generating an error check code from the regular data to be programmed; 상기 정규 데이터를 기록하기 위한 정규 메모리 어레이부와 상기 에러검사코드를 기록하기 위한 패리티 메모리 어레이부로 구성되는 메모리 어레이와;A memory array comprising a normal memory array unit for recording the normal data and a parity memory array unit for recording the error check code; 상기 정규 데이터와 에러검사코드에 의해 합성된 상기 복수 비트 데이터 단위의 프로그래밍 데이터를 데이터 소거 후의 상기 메모리 어레이에 프로그래밍하는 수단과;Means for programming the data of the multi-bit data unit synthesized by the regular data and the error check code into the memory array after data erasing; 상기 복수 비트 데이터 단위의 데이터 독출시에 독출한 정규 데이터와 에러 검사코드에 의해 데이터 프로그래밍시의 에러 비트를 정정하는 수단Means for correcting error bits during data programming by the normal data read and the error check code when data is read in the multi-bit data unit 을 구비하는 것을 특징으로 하는 불휘발성 반도체 기억장치.And a nonvolatile semiconductor memory device. 제11항에 있어서,The method of claim 11, 상기 복수 비트 데이터 단위의 메모리 셀은 각 워드선마다 페이지 단위의 메모리 셀인 것을 특징으로 하는 불휘발성 반도체 기억장치.And the memory cells of the plurality of bit data units are memory cells of page units for each word line. 제11항에 있어서,The method of claim 11, 상기 소거 미종료 메모리 셀의 계수 수단은 일정한 클록 펄스에 동기한 컬럼 디코더의 동작에 의해 페이지 독출하고, 해당 페이지 독출 데이터를 순차 계수회로에 시프트 전송하여 소거 미종료 데이터 비트의 갯수를 카운트하는 것을 특징으로 하는 불휘발성 반도체 기억장치.The counting means of the erased non-ended memory cell reads a page by an operation of a column decoder synchronized with a predetermined clock pulse, and shifts the page read data to a sequential counting circuit to count the number of erased non-ended data bits. Nonvolatile semiconductor memory device. 제11항에 있어서,The method of claim 11, 상기 메모리 셀이 매트릭스 형태로 배치된 메모리 어레이는 NOR형 구조를 이루는 것을 특징으로 하는 불휘발성 반도체 기억장치.And a memory array having the memory cells arranged in a matrix form a NOR type structure.
KR1019970065352A 1996-12-03 1997-12-02 Nonvolatile semiconductor memory with fast data programming and erasing using ECC KR100486132B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970065352A KR100486132B1 (en) 1996-12-03 1997-12-02 Nonvolatile semiconductor memory with fast data programming and erasing using ECC

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP96-323011 1996-12-03
JP96-324293 1996-12-04
JP97-55769 1997-03-11
KR1019970065352A KR100486132B1 (en) 1996-12-03 1997-12-02 Nonvolatile semiconductor memory with fast data programming and erasing using ECC

Publications (1)

Publication Number Publication Date
KR100486132B1 true KR100486132B1 (en) 2005-09-02

Family

ID=43668793

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970065352A KR100486132B1 (en) 1996-12-03 1997-12-02 Nonvolatile semiconductor memory with fast data programming and erasing using ECC

Country Status (1)

Country Link
KR (1) KR100486132B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8347183B2 (en) 2008-06-25 2013-01-01 Samsung Electronics Co., Ltd. Flash memory device using ECC algorithm and method of operating the same
US8427871B2 (en) 2009-08-27 2013-04-23 Samsung Electronics Co., Ltd. Nonvolatile memory device, memory system incorporating same, and method of operating same
US8611150B2 (en) 2010-10-28 2013-12-17 Samsung Electronics Co., Ltd. Flash memory device including flag cells and method of programming the same

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR940006143A (en) * 1992-07-01 1994-03-23 사토 후미오 Nonvolatile Semiconductor Memory Device
JPH06110793A (en) * 1992-09-30 1994-04-22 Toshiba Corp Monovolatile semiconductor memory
JPH08279295A (en) * 1995-04-05 1996-10-22 Toshiba Corp Storage system including nonvolatile semiconductor memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR940006143A (en) * 1992-07-01 1994-03-23 사토 후미오 Nonvolatile Semiconductor Memory Device
JPH06110793A (en) * 1992-09-30 1994-04-22 Toshiba Corp Monovolatile semiconductor memory
JPH08279295A (en) * 1995-04-05 1996-10-22 Toshiba Corp Storage system including nonvolatile semiconductor memory

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8347183B2 (en) 2008-06-25 2013-01-01 Samsung Electronics Co., Ltd. Flash memory device using ECC algorithm and method of operating the same
US8427871B2 (en) 2009-08-27 2013-04-23 Samsung Electronics Co., Ltd. Nonvolatile memory device, memory system incorporating same, and method of operating same
US8611150B2 (en) 2010-10-28 2013-12-17 Samsung Electronics Co., Ltd. Flash memory device including flag cells and method of programming the same

Similar Documents

Publication Publication Date Title
JP3941149B2 (en) Semiconductor nonvolatile memory device
JP4391941B2 (en) Method for reducing the effect of coupling between storage elements in adjacent rows of memory cells
US7676710B2 (en) Error detection, documentation, and correction in a flash memory device
US7872910B2 (en) Non-volatile semiconductor storage system
US8374036B2 (en) Method of operating nonvolatile memory device
US7047455B2 (en) Memory with element redundancy
KR101014926B1 (en) Programming and verifying method for non volatile memory device
KR100648254B1 (en) Non_volatile memory device being capable of reducing erase time and erase method thereof
US7437625B2 (en) Memory with element redundancy
US6335882B1 (en) Nonvolatile semiconductor memory device capable of erasing blocks despite variation in erasing characteristic of sectors
KR960005355B1 (en) Nonvolatile semiconductor storage and storage system using that
EP1073065B1 (en) Nonvolatile semiconductor memory device
US9053011B2 (en) Selective protection of lower page data during upper page write
JP2006209971A (en) Semiconductor nonvolatile storage device
US9177672B2 (en) Methods of operating memory involving identifiers indicating repair of a memory cell
JP2005018983A (en) Semiconductor nonvolatile memory device and memory system
KR100486132B1 (en) Nonvolatile semiconductor memory with fast data programming and erasing using ECC
US20100046293A1 (en) Memory cell block of nonvolatile memory device and method of managing supplementary information
US6891756B2 (en) Flash memory comprising an erase verify algorithm integrated into a programming algorithm
JP6306777B2 (en) Semiconductor memory device
JPH08203295A (en) Semiconductor nonvolatile storage device
JPH07220486A (en) Semiconductor nonvolatile memory
TW201511021A (en) Semiconductor memory device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130412

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140411

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150416

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20160408

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20170407

Year of fee payment: 13

EXPY Expiration of term