KR100577988B1 - Flash Memory Having Enhanced Error Detection Capability and Method for Detecting Multi-Bit Errors - Google Patents

Flash Memory Having Enhanced Error Detection Capability and Method for Detecting Multi-Bit Errors Download PDF

Info

Publication number
KR100577988B1
KR100577988B1 KR1020030096497A KR20030096497A KR100577988B1 KR 100577988 B1 KR100577988 B1 KR 100577988B1 KR 1020030096497 A KR1020030096497 A KR 1020030096497A KR 20030096497 A KR20030096497 A KR 20030096497A KR 100577988 B1 KR100577988 B1 KR 100577988B1
Authority
KR
South Korea
Prior art keywords
byte
block
ecc
code
data area
Prior art date
Application number
KR1020030096497A
Other languages
Korean (ko)
Other versions
KR20050064887A (en
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 KR1020030096497A priority Critical patent/KR100577988B1/en
Publication of KR20050064887A publication Critical patent/KR20050064887A/en
Application granted granted Critical
Publication of KR100577988B1 publication Critical patent/KR100577988B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

본 발명은 플래시 메모리의 다비트(예컨대, 3-비트 이상) 오류를 알아 낼 수 있는 플래시 메모리 및 오류 검출 방법에 관한 것이다. 본 발명에 따른 플래시 메모리는 복수의 메모리 블록을 포함하고, 이 복수의 메모리 블록 각각은 N-바이트의 사용자 데이터 영역과 M-바이트의 ECC 데이터 영역을 포함하며, 사용자 데이터 영역은 복수의 N1-바이트의 제1 블록을 포함하고, 이 제1 블록 각각은 N2-바이트의 상위 블록과 N2-바이트의 하위 블록으로 구성된다. N2-바이트의 상위 블록 또는 하위 블록에 데이터 기록 동작이 완료된 다음에는 이 N2-바이트의 블록에 기록된 데이터 중 '1'의 개수를 체크섬 코드로 생성하여 ECC 데이터 영역에 M1-바이트로 기록하며, N2-바이트의 상위 블록 또는 하위 블록에 대한 데이터 읽기 동작이 완료된 다음에는 이 N2-바이트의 블록으로부터 읽은 데이터 중 '1'의 개수를 ECC 데이터 영역에 기록된 M1-바이트의 체크섬 코드와 비교하여 비트 에러가 있는지를 판단하는데, 체크섬 코드의 비교 결과 하나의 비트에서만 차이가 나는 경우에는 ECC 코드 확인 과정을 거쳐 단일 비트 오류인지 2-비트 오류인지 판단하는 한편, 체크섬 코드의 비교 결과 2개 비트 이상에서 차이가 나는 경우에는 ECC 코드 확인 과정을 거치지 아니하고 해당 N2-바이트 블록을 오류 블록을 지정한다.The present invention relates to flash memory and error detection methods capable of detecting multi-bit (eg, 3-bit or more) errors of flash memory. The flash memory according to the present invention comprises a plurality of memory blocks, each of which comprises an N-byte user data area and an M-byte ECC data area, wherein the user data area comprises a plurality of N1-bytes. And a first block of N, each of which consists of an upper block of N2-bytes and a lower block of N2-bytes. After the data write operation is completed in the N2-byte upper block or the lower block, the number of '1' of the data written in the N2-byte block is generated as a checksum code and recorded as M1-byte in the ECC data area. After the data read operation for the N2-byte high or low block is completed, the number of '1' of the data read from the N2-byte block is compared with the M1-byte checksum code written in the ECC data area. If the result of comparing the checksum code differs in only one bit, ECC code checking process is used to determine whether it is a single bit error or a 2-bit error. If there is a difference, the N2-byte block is designated an error block without going through the ECC code verification process.

Description

오류 검출 능력이 강화된 플래시 메모리 및 다비트 오류 검출 방법 {Flash Memory Having Enhanced Error Detection Capability and Method for Detecting Multi-Bit Errors}Flash Memory Having Enhanced Error Detection Capability and Method for Detecting Multi-Bit Errors}

도 1은 본 발명이 적용될 수 있는 플래시 메모리의 데이터 저장 구조를 나타내는 블록 회로도.1 is a block circuit diagram showing a data storage structure of a flash memory to which the present invention can be applied.

도 2는 플래시 메모리의 메모리 블록에서 사용자 데이터 영역과 ECC 데이터 영역에 본 발명에 따라 체크섬(checksum) 데이터를 기록하는 과정을 설명하기 위한 블록 회로도.2 is a block circuit diagram for explaining a process of writing checksum data according to the present invention in a user data area and an ECC data area in a memory block of a flash memory;

본 발명은 반도체 메모리 기술에 관한 것으로서, 좀 더 구체적으로는 3-비트 이상의 에러도 검출할 수 있는 플래시 메모리 및 다비트 오류 검출 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to semiconductor memory technology, and more particularly to a flash memory and a multi-bit error detection method capable of detecting errors of more than three bits.

플래시형 비휘발성 메모리는 그 특성상 비트 에러가 발생할 수 있기 때문에 에러를 검출하고 정정하는 것이 필요하다. 이를 위해 사용되는 것이 ECC (Error Correcting Code)이다. 비트 에러에는 2가지 유형이 있는데, 쓰기 오류(write failure)와 읽기 오류(read failure)가 그것이다. 쓰기 오류는 플래시 메모리의 메모리 블록의 한 페이지를 프로그램하거나 한 블록을 소거한 후 그 결과가 잘못되는 것을 말하는데, 이것은 플래시 메모리의 기록 상태 비트를 확인함으로써 알아 낼 수 있다. 읽기 오류는 쓰기 동작을 오류 없이 수행한 후 기록된 데이터가 바뀌는 경우에 발생한다. 대부분의 비트 에러는 하나의 페이지 또는 섹터에 하나의 비트에만 오류가 나타나는 단일 비트 에러인데, 그 이유는 메모리 셀의 플로팅 게이트(floating gate)를 둘러싸고 있는 산화막을 통해 셀의 전하가 누설(leakage)되기 때문이다.Because flash type nonvolatile memories can cause bit errors due to their characteristics, it is necessary to detect and correct errors. Used for this is ECC (Error Correcting Code). There are two types of bit errors: write failures and read failures. A write error is a result of programming a page of a memory block of a flash memory or erasing a block and then the result is wrong, which can be determined by checking the write status bits of the flash memory. A read error occurs when the recorded data is changed after performing a write operation without error. Most bit errors are single bit errors where only one bit appears in one page or sector, because the charge on the cell leaks through the oxide film surrounding the floating gate of the memory cell. Because.

플래시 메모리의 비트 오류를 수정하기 위해서는 일반적으로 해밍 코드(Hamming Code)를 사용하여 왔는데, 이것은 '2-비트 검출과 1-비트 수정'을 그 특징으로 한다. 즉, 종래 해밍 코드 ECC에서는 단일 비트 에러는 이것을 발견하고 수정까지 할 수 있으며, 2-비트 에러에 대해서는 이것을 검출만 할 수 있을 뿐 이를 수정할 수는 없고, 2-비트 에러가 생긴 블록을 다른 블록으로 교체하는 것이 그 한계이다. 다시 말하면, 종래의 해밍 코드 ECC는 3-비트 이상의 오류가 생긴 경우에는 이것을 검출할 수도 없다. 플래시 메모리의 제조사에서 오류가 있는 블록(bad block)으로 표시되지 않은 블록이 사용 도중에 비트 에러가 생겨도 이것을 알 수 없다면 플래시 메모리의 신뢰성이 크게 떨어진다.To correct bit errors in flash memory, Hamming Code has been generally used, which is characterized by '2-bit detection and 1-bit correction'. That is, in the conventional Hamming code ECC, a single bit error can detect and even correct this. For a 2-bit error, it can only detect it and cannot correct it. A block having a 2-bit error is replaced with another block. The replacement is the limit. In other words, the conventional Hamming code ECC cannot detect this when an error of three or more bits has occurred. If a block that is not marked as a bad block by the manufacturer of the flash memory has a bit error in use, the reliability of the flash memory is greatly reduced.

따라서 본 발명의 목적은 플래시 메모리에서 오류 검출 능력을 확장함으로써 플래시 메모리의 신뢰성을 보장하는 것이다. Accordingly, it is an object of the present invention to ensure the reliability of flash memory by extending the error detection capability in the flash memory.                         

본 발명의 다른 목적은 플래시 메모리에서 3-비트 이상의 오류를 검출할 수 있도록 하는 것이다.Another object of the present invention is to be able to detect more than three bits of error in a flash memory.

이러한 과제를 달성하기 위해 본 발명은 일정한 크기의 플래시 메모리 블록에 대하여 데이터 기록 동작을 수행할 때 기록된 데이터 중 '1'의 개수를 체크섬 코드로 생성하여 이를 저장한 후 이를 기록 동작에서 생성된 체크섬 코드와 비교함으로써 다비트(예컨대, 3-비트 이상) 오류를 알아 낼 수 있다.In order to achieve the above object, the present invention generates a checksum code of the number of recorded data as a checksum code when performing a data write operation on a flash memory block having a predetermined size, and stores the same as a checksum generated in the write operation. By comparing with the code, we can detect multi-bit (eg, 3-bit or more) errors.

본 발명의 일례에 따른 플래시 메모리는 복수의 메모리 블록을 포함하고, 이 복수의 메모리 블록 각각은 N-바이트의 사용자 데이터 영역과 M-바이트의 ECC 데이터 영역을 포함하며, 상기 사용자 데이터 영역은 복수의 N1-바이트의 제1 블록을 포함하고, 이 제1 블록 각각은 N2-바이트의 상위 블록과 N2-바이트의 하위 블록으로 구성된다. 상기 ECC 데이터 영역에는 M1-바이트의 체크섬 코드가 기록되는 체크섬 코드 기록부와 ECC 코드가 기록되는 ECC 코드 기록부가 포함된다. 상기 ECC 데이터 영역의 체크섬 코드 기록부에 기록되는 M1-바이트의 체크섬 코드는 상기 N2-바이트의 상위 블록 또는 하위 블록에 대한 데이터 기록 동작이 완료된 다음 상기 N2-바이트의 상위 블록 또는 하위 블록에 기록된 데이터 중 ‘1’의 개수로 구성되는 코드이다. 한편, ECC 데이터 영역의 ECC 코드 기록부에 기록되는 ECC 코드는 상기 M1-바이트의 체크섬 코드의 생성시 생성되는 M2-바이트의 코드로 구성된다. 본 발명의 플래시 메모리에서는 상기 N2-바이트의 상위 블록 또는 하위 블록에 대한 데이터 읽기 동작이 완료된 다음에는 이 N2-바이트의 블록으로부터 읽은 데이터 중 ‘1’의 개수를 ECC 데이터 영역의 체크섬 코드 기록부에 기록된 M1-바이트의 체크섬 코드와 비교하여 비트 에러가 있는지를 판단하는데, 체크섬 코드의 비교 결과 하나의 비트에서만 차이가 나는 경우에는 ECC 코드 확인 과정을 거쳐 단일 비트 오류인지 2-비트 오류인지 판단하며, 체크섬 코드의 비교 결과 2개 비트 이상에서 차이가 나는 경우에는 ECC 코드 확인 과정을 거치지 아니하고 해당 N2-바이트 블록을 오류 블록으로 지정한다.A flash memory according to an example of the present invention includes a plurality of memory blocks, each of which includes an N-byte user data area and an M-byte ECC data area, wherein the user data area includes a plurality of memory blocks. And a first block of N1-bytes, each of which consists of an upper block of N2-bytes and a lower block of N2-bytes. The ECC data area includes a checksum code recorder for recording M1-byte checksum codes and an ECC code recorder for recording ECC codes. The M1-byte checksum code recorded in the checksum code recording unit of the ECC data area is the data recorded in the upper block or lower block of the N2-byte after the data write operation for the upper block or lower block of the N2-byte is completed. Code consists of the number of '1'. On the other hand, the ECC code recorded in the ECC code recording section of the ECC data area is composed of M2-byte codes generated upon generation of the M1-byte checksum code. In the flash memory of the present invention, after the data read operation for the N2-byte upper block or the lower block is completed, the number of '1' of the data read from the N2-byte block is written to the checksum code recording unit of the ECC data area. It is determined whether there is a bit error by comparing the M1-byte checksum code. If the difference of only one bit is determined as a result of comparing the checksum code, ECC code is checked to determine whether it is a single bit error or a 2-bit error. If there is a difference between two or more bits as a result of comparing the checksum codes, the N2-byte block is designated as an error block without going through the ECC code verification process.

이하 도면을 참조로 본 발명의 실시예에 대해 설명한다.Hereinafter, embodiments of the present invention will be described with reference to the drawings.

실시예Example

도 1은 본 발명이 적용될 수 있는 플래시 메모리의 데이터 저장 구조를 나타내는 블록 회로도이다.1 is a block circuit diagram illustrating a data storage structure of a flash memory to which the present invention can be applied.

플래시 메모리(10)는 복수의 메모리 블록(20)으로 구성된다. 도 1의 예에서는 블록 1∼블록 N의 블록이 포함되어 있는 것으로 나타내었는데, 여기서 N은 1K, 2K 또는 4K가 될 수 있다. 하나의 메모리 블록(블록 i)는 2K-바이트의 사용자 데이터 영역(30)과 64-바이트의 ECC 데이터 영역(40)으로 구성되어 있다.The flash memory 10 is composed of a plurality of memory blocks 20. In the example of FIG. 1, blocks of blocks 1 to N are included, where N may be 1K, 2K, or 4K. One memory block (block i) is composed of a 2K-byte user data area 30 and a 64-byte ECC data area 40.

하나의 메모리 블록(20)에서 사용자 데이터 영역(30)은 도 2에 도시한 것처럼, 4개의 512-바이트 블록(50a, 50b, 50c, 50d)를 포함하며, 각각의 512-바이트 블록은 다시 상위 256-바이트 블록(62a, 64a, 66a, 68a)와 하위 256-바이트 블록(62b, 64b, 66b, 68b)로 나누어진다. 상위 256-바이트 블록(62a)에 대한 데이터 쓰기가 끝나면 이 영역의 데이터 '1'의 개수를 3-바이트의 체크섬 코드(checksum code)로 생성하여 ECC 데이터 영역(40)에 기록한다(도 2의 ①). 마찬가지로 하위 256-바이트 블록에 대한 데이터 쓰기 동작이 이루어지면, 하위 256-바이트 블록(62b)의 데이터 '1'의 개수를 3-바이트 코드로 생성하여 ECC 데이터 영역(40)에 저장한다. 한편, 상하위 256-바이트 중 어느 하나에 대해 데이터 읽기 동작을 수행한 다음에도 이 영역의 읽은 데이터 중 '1'의 개수 데이터를 생성하고 이것을 ECC 데이터 영역에 저장되어 있는 3-바이트 체크섬 코드와 비교하여 서로 일치하는지 판단한다.In one memory block 20, the user data area 30 comprises four 512-byte blocks 50a, 50b, 50c, 50d, as shown in FIG. 2, with each 512-byte block again higher. It is divided into 256-byte blocks 62a, 64a, 66a, 68a and lower 256-byte blocks 62b, 64b, 66b, 68b. After writing data to the upper 256-byte block 62a, the number of data '1' in this area is generated as a 3-byte checksum code and recorded in the ECC data area 40 (Fig. 2). ①). Similarly, when a data write operation is performed on the lower 256-byte block, the number of data '1' of the lower 256-byte block 62b is generated as a 3-byte code and stored in the ECC data area 40. On the other hand, even after performing data read operation on any one of the upper and lower 256-bytes, the number data of '1' among the read data of this area is generated and compared with the 3-byte checksum code stored in the ECC data area. Determine if they match each other.

이러한 체크섬 코드와 ECC 코드를 조합하면 본 발명에서는 3-비트 에러를 검출할 수 있다. 앞에서 체크섬 코드는 256-바이트 블록에 대한 데이터 기록 동작에 생성되어 ECC 데이터 영역(40)에 기록된다고 하였는데, 이 과정에서 예컨대, 22-비트 ECC 코드도 생성되어 ECC 데이터 영역(40)에 기록된다. 또한, 256-바이트 블록에 대한 데이터 읽기 동작에서 체크섬 코드가 생성되는 과정에서 22-비트의 ECC 코드도 생성된다. 종래의 해밍 코드 ECC 알고리즘에 따르면, 256-바이트 블록에 대해 영역(40)에 기록되어 있던 22-바이트 ECC 코드와 데이터 읽기 동작에서 생성된 22-바이트 ECC 코드를 XOR 연산한 결과, 모든 비트의 값이 '0'이면 256-바이트 블록에는 아무런 오류가 없는 것이고, 11개의 비트 데이터가 '1'인 경우에는 단일 비트 오류(즉, 수정이 가능한 오류)가 발생한 것으로 판단하며, 하나의 비트 데이터가 '1'인 경우에는 수정이 불가능한 오류(즉, 2-비트 오류)가 생긴 것으로 판단한다. 그런데, 이러한 종래 해밍 코드 ECC에서는 하나의 256-바이트 블록에서 3-비트 이상의 오류가 생긴 경우에도 그 값이 '11-비트 데이터=1'로 될 수 있기 때문에, 이를 수정가능한 오류로 판단하여 오류를 수정한 후에는 그 데이터 블록을 오류가 없는 블록으로 잘못 인식하게 된다.Combining such checksum codes and ECC codes enables the detection of 3-bit errors in the present invention. It has been previously mentioned that a checksum code is generated in a data write operation for a 256-byte block and recorded in the ECC data area 40. In this process, for example, a 22-bit ECC code is also generated and recorded in the ECC data area 40. In addition, a 22-bit ECC code is generated during a checksum code is generated in a data read operation for a 256-byte block. According to the conventional Hamming code ECC algorithm, as a result of XORing the 22-byte ECC code recorded in the area 40 for the 256-byte block and the 22-byte ECC code generated in the data read operation, the values of all bits are Is 0, there is no error in the 256-byte block. If 11 bits of data is' 1 ', a single bit error (i.e., an error that can be corrected) has occurred, and one bit of data is' 1 ', it is determined that an error that cannot be corrected (that is, a 2-bit error) has occurred. However, in the conventional Hamming code ECC, even when 3-bit or more errors occur in one 256-byte block, since the value may be '11 -bit data = 1 ', the error is determined to be correctable error. After the modification, the data block is incorrectly recognized as an error free block.

본 발명에서는 해밍 코드 ECC 알고리즘에 따른 오류 판단을 하기 전에 체크섬 데이터를 먼저 확인한다. 체크섬을 확인한 결과 어느 256-바이트 블록에 대해 데이터 영역(40)에 저장되어 있는 3-바이트 체크섬 코드가 상기 256-바이트 블록에 대한 데이터 읽기 동작의 결과로 생성된 3-바이트 체크섬 코드와 하나의 비트만 차 이가 나는 경우에는 ECC 코드를 확인하여 어떤 비트 오류가 발생한 것인지를 판단한다. 한편, 체크섬을 비교한 결과 2개 이상의 비트에서 차이가 나는 경우에는 이것은 3-비트 이상의 셀에서 오류가 발생한 것이므로, ECC 코드 확인 과정을 거치지 아니하고 곧바로 해당 블록을 오류 블록(failure block)으로 지정한다. 오류 블록으로 지정된 블록은 정상 블록으로 대체된다.In the present invention, the checksum data is first checked before the error determination according to the Hamming code ECC algorithm. As a result of checking the checksum, the three-byte checksum code stored in the data area 40 for one 256-byte block is one bit and the 3-byte checksum code generated as a result of the data read operation for the 256-byte block. If there is a difference, check the ECC code to determine what bit error occurred. On the other hand, if the difference between two or more bits as a result of comparing checksums, this means that an error has occurred in a cell having three or more bits, and thus, the block is designated as a failure block without undergoing ECC code verification. The block designated as the error block is replaced with the normal block.

이상 도면을 참조로 본 발명의 구체적인 실시예에 대하여 설명하였으나, 이것은 발명의 이해와 재현을 쉽게 하도록 하기 위한 설명에 지나지 아니하며 본 발명의 범위를 도면에 나타낸 예로 제한하기 위한 것은 아니다. 따라서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 이하의 특허청구범위에 기재된 사항에 의하여 정해지는 본 발명의 범위를 벗어나지 않고서도 위 실시예를 다양하게 변형하고 수정할 수 있는 바, 이러한 변형과 수정은 본 발명의 범위에 포함된다.Although specific embodiments of the present invention have been described above with reference to the drawings, this is only a description for facilitating the understanding and reproduction of the present invention, and the scope of the present invention is not limited to the examples shown in the drawings. Therefore, one of ordinary skill in the art to which the present invention pertains can variously modify and modify the above embodiments without departing from the scope of the present invention as defined by the following claims. Variations and modifications are included within the scope of the present invention.

본 발명에서는 ECC 코드와 병행하여 체크섬 코드를 생성함으로써, 3-비트의 오류가 발생한 경우에도 이를 발견해 낼 수 있으므로, 플래시 메모리의 신뢰성이 크게 향상된다.In the present invention, since the checksum code is generated in parallel with the ECC code, even when a 3-bit error occurs, it can be detected, thereby greatly improving the reliability of the flash memory.

Claims (6)

복수의 메모리 블록을 포함하는 플래시 메모리로서,A flash memory including a plurality of memory blocks, 상기 복수의 메모리 블록 각각은 N-바이트의 사용자 데이터 영역과 M-바이트의 ECC 데이터 영역을 포함하며, Each of the plurality of memory blocks includes an N-byte user data area and an M-byte ECC data area, 상기 메모리 블록 각각의 사용자 데이터 영역은 복수의 N1-바이트의 제1 블록을 포함하고,The user data area of each of the memory blocks includes a plurality of N1-byte first blocks, 상기 사용자 데이터 영역의 제1 블록 각각은 N2-바이트의 상위 블록과 N2-바이트의 하위 블록으로 구성되며,Each of the first blocks of the user data area includes N2-byte upper blocks and N2-byte lower blocks. 상기 ECC 데이터 영역에는 M1-바이트의 체크섬 코드가 기록되는 체크섬 코드 기록부와 ECC 코드가 기록되는 ECC 코드 기록부가 포함되고,The ECC data area includes a checksum code recorder for recording M1-byte checksum codes and an ECC code recorder for recording ECC codes. 상기 ECC 데이터 영역의 체크섬 코드 기록부에 기록되는 M1-바이트의 체크섬 코드는 상기 N2-바이트의 상위 블록 또는 하위 블록에 대한 데이터 기록 동작이 완료된 다음 상기 N2-바이트의 상위 블록 또는 하위 블록에 기록된 데이터 중 ‘1’의 개수로 구성되고,The M1-byte checksum code recorded in the checksum code recording unit of the ECC data area is the data recorded in the upper block or lower block of the N2-byte after the data write operation for the upper block or lower block of the N2-byte is completed. Consists of a number of '1', 상기 ECC 데이터 영역의 ECC 코드 기록부에 기록되는 ECC 코드는 상기 M1-바이트의 체크섬 코드의 생성시 생성되는 M2-바이트의 코드로 구성되며,The ECC code recorded in the ECC code recording section of the ECC data area is composed of M2-byte codes generated when the M1-byte checksum code is generated. 상기 N2-바이트의 상위 블록 또는 하위 블록에 대한 데이터 읽기 동작이 완료된 다음에는 이 N2-바이트의 블록으로부터 읽은 데이터 중 ‘1’의 개수를 상기 ECC 데이터 영역의 체크섬 코드 기록부에 기록된 M1-바이트의 체크섬 코드와 비교하여 비트 에러가 있는지를 판단하는 것을 특징으로 하는 플래시 메모리.After the data read operation for the N2-byte upper block or the lower block is completed, the number of '1' of the data read from the N2-byte block is written into the M1-byte recorded in the checksum code recording section of the ECC data area. And a checksum code for determining whether there is a bit error. 제1항에서,In claim 1, 상기 N2-바이트의 상위 블록 또는 하위 블록에 대한 데이터 읽기 동작이 완료된 다음에는 이 N2-바이트의 블록으로부터 읽은 데이터 중 ‘1’의 개수를 상기 ECC 데이터 영역의 체크섬 코드 기록부에 기록된 M1-바이트의 체크섬 코드와 비교한 결과 하나의 비트에서만 차이가 나는 경우에는 상기 ECC 코드를 확인하는 것을 특징으로 하는 플래시 메모리.After the data read operation for the N2-byte upper block or the lower block is completed, the number of '1' of the data read from the N2-byte block is written into the M1-byte recorded in the checksum code recording section of the ECC data area. And comparing the checksum code with only one bit to check the ECC code. 제2항에서,In claim 2, 상기 N2-바이트의 상위 블록 또는 하위 블록에 대한 데이터 읽기 동작이 완료된 다음에는 이 N2-바이트의 블록으로부터 읽은 데이터 중 ‘1’의 개수를 상기 ECC 데이터 영역의 체크섬 코드 기록부에 기록된 M1-바이트의 체크섬 코드와 비교한 상기 체크섬 코드의 비교 결과 2개 비트 이상에서 차이가 나는 경우에는 상기 ECC 코드를 확인하지 않고 해당 N2-바이트 블록을 오류 블록으로 지정하는 것을 특징으로 하는 플래시 메모리.After the data read operation for the N2-byte upper block or the lower block is completed, the number of '1' of the data read from the N2-byte block is written into the M1-byte recorded in the checksum code recording section of the ECC data area. And if the difference is greater than two bits as a result of the comparison of the checksum code with the checksum code, the N2-byte block is designated as an error block without checking the ECC code. 플래시 메모리의 오류 검출 방법으로서,As an error detection method of flash memory, 상기 플래시 메모리는 복수의 메모리 블록을 포함하고, 이 복수의 메모리 블록 각각은 N-바이트의 사용자 데이터 영역과 M-바이트의 ECC 데이터 영역을 포함하며, 상기 사용자 데이터 영역은 복수의 N1-바이트의 제1 블록을 포함하고, 이 제1 블록 각각은 N2-바이트의 상위 블록과 N2-바이트의 하위 블록으로 구성되고, The flash memory includes a plurality of memory blocks, each of the plurality of memory blocks including an N-byte user data area and an M-byte ECC data area, wherein the user data area comprises a plurality of N1-bytes. Including one block, each of the first blocks consisting of an N2-byte upper block and an N2-byte lower block, 상기 플래시 메모리 오류 검출 방법은,The flash memory error detection method, 상기 N2-바이트의 상위 블록 또는 하위 블록에 데이터를 기록하는 단계와,Writing data to the upper block or lower block of the N2-byte; 상기 N2-바이트의 블록에 기록된 데이터 중 ‘1’의 개수를 체크섬 코드로 생성하여 상기 ECC 데이터 영역의 체크섬 코드 기록부에 M1-바이트로 기록하는 단계와,Generating a checksum code of the number of '1's of data recorded in the N2-byte block and recording the result as M1-bytes in the checksum code recording unit of the ECC data area; M2-바이트의 ECC 코드를 생성하여 이를 ECC 데이터 영역의 ECC 코드 기록부에 저장하는 단계와,Generating an M2-byte ECC code and storing it in an ECC code recording section of the ECC data area; 상기 N2-바이트의 상위 블록 또는 하위 블록으로부터 데이터를 읽는 단계와,Reading data from the N2-byte high or low block; 상기 데이터 읽기 동작이 완료된 다음에는 이 N2-바이트의 블록으로부터 읽은 데이터 중 ‘1’의 개수를 체크섬 코드로 생성하는 단계와,After the data read operation is completed, generating a checksum code of the number of '1' of the data read from the N2-byte block, 상기 읽기 동작 완료 후 생성된 체크섬 코드를 상기 ECC 데이터 영역의 체크섬 기록부에 기록된 M1-바이트의 체크섬 코드와 비교하여 비트 에러가 있는지를 판단하는 단계를Comparing a checksum code generated after completion of the read operation with a M1-byte checksum code recorded in a checksum recording unit of the ECC data area to determine whether there is a bit error; 포함하는 것을 특징으로 하는 플래시 메모리 오류 검출 방법.Flash memory error detection method comprising a. 제4항에서,In claim 4, 상기 읽기 동작 완료 후 생성된 체크섬 코드를 상기 ECC 데이터 영역에 기록된 M1-바이트의 체크섬 코드와 비교한 결과 하나의 비트에서만 차이가 나는 경우에는 ECC 코드를 확인하는 단계가 진행되는 것을 특징으로 하는 플래시 메모리 오류 검출 방법.Comparing the checksum code generated after completion of the read operation with the checksum code of M1-bytes recorded in the ECC data area, and if the difference is only one bit, checking the ECC code is performed. How to detect memory errors. 제5항에서,In claim 5, 상기 읽기 동작 완료 후 생성된 체크섬 코드를 상기 ECC 데이터 영역에 기록된 M1-바이트의 체크섬 코드와 비교한 결과 2개 비트 이상에서 차이가 나는 경우에는 상기 ECC 코드 확인 과정을 거치지 아니하고 해당 N2-바이트 블록을 오류 블록으로 지정하는 것을 특징으로 하는 플래시 메모리 오류 검출 방법.When the checksum code generated after completion of the read operation is compared with the M1-byte checksum code recorded in the ECC data area and there is a difference in two or more bits, the corresponding N2-byte block is not passed through the ECC code verification process. The flash memory error detection method, characterized in that the designation as an error block.
KR1020030096497A 2003-12-24 2003-12-24 Flash Memory Having Enhanced Error Detection Capability and Method for Detecting Multi-Bit Errors KR100577988B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030096497A KR100577988B1 (en) 2003-12-24 2003-12-24 Flash Memory Having Enhanced Error Detection Capability and Method for Detecting Multi-Bit Errors

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030096497A KR100577988B1 (en) 2003-12-24 2003-12-24 Flash Memory Having Enhanced Error Detection Capability and Method for Detecting Multi-Bit Errors

Publications (2)

Publication Number Publication Date
KR20050064887A KR20050064887A (en) 2005-06-29
KR100577988B1 true KR100577988B1 (en) 2006-05-11

Family

ID=37256442

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030096497A KR100577988B1 (en) 2003-12-24 2003-12-24 Flash Memory Having Enhanced Error Detection Capability and Method for Detecting Multi-Bit Errors

Country Status (1)

Country Link
KR (1) KR100577988B1 (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027194B2 (en) 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
KR100737912B1 (en) * 2005-10-11 2007-07-10 삼성전자주식회사 Ecc circuit of semiconductor memory device
KR100681429B1 (en) 2005-10-24 2007-02-15 삼성전자주식회사 Semiconductor memory device and bit error detection method thereof
KR100982580B1 (en) * 2008-01-30 2010-09-15 (주) 라모스테크놀러지 Data error correction device and method for flash memory
KR101434405B1 (en) 2008-02-20 2014-08-29 삼성전자주식회사 Memory device and memory data read method
KR101516577B1 (en) 2008-11-10 2015-05-06 삼성전자주식회사 Nonvolatile semi-conductor memory device and method for calculating read voltage non-volatile semiconductor memory device
CN110908603B (en) * 2019-11-01 2024-01-19 惠州市德赛西威汽车电子股份有限公司 Data storage error-proofing processing system and method
US11687407B2 (en) * 2020-08-27 2023-06-27 Micron Technologies, Inc. Shared error correction code (ECC) circuitry
US11907544B2 (en) 2020-08-31 2024-02-20 Micron Technology, Inc. Automated error correction with memory refresh
US12086026B2 (en) 2021-03-17 2024-09-10 Micron Technology, Inc. Multiple error correction code (ECC) engines and ECC schemes

Also Published As

Publication number Publication date
KR20050064887A (en) 2005-06-29

Similar Documents

Publication Publication Date Title
US10152249B2 (en) Data memory device and controller with interface error detection and handling logic
US8954818B2 (en) Error detection and correction scheme for a memory device
KR100681429B1 (en) Semiconductor memory device and bit error detection method thereof
US8122303B2 (en) Data structure for flash memory and data reading/writing method thereof
US7757153B2 (en) Multi-bit memory device and memory system
US8707135B2 (en) Method and system of dynamic data storage for error correction in a memory device
US7672162B2 (en) Non-volatile memory device, memory system, and LSB read method
KR920005297B1 (en) Fault tolerant computer memory system
US8161355B2 (en) Automatic refresh for improving data retention and endurance characteristics of an embedded non-volatile memory in a standard CMOS logic process
US8418030B2 (en) Storage system with data recovery function and method thereof
CN105788648B (en) NVM bad block identification processing and error correction method and system based on heterogeneous hybrid memory
US9130597B2 (en) Non-volatile memory error correction
US8055983B2 (en) Data writing method for flash memory and error correction encoding/decoding method thereof
US7539922B2 (en) Bit failure detection circuits for testing integrated circuit memories
US7747926B2 (en) Methods and apparatus for a memory device with self-healing reference bits
US7471562B2 (en) Method and apparatus for accessing nonvolatile memory with read error by changing read reference
TW201503153A (en) Flash memory apparatus, memory controller and method for controlling flash memory
KR100577988B1 (en) Flash Memory Having Enhanced Error Detection Capability and Method for Detecting Multi-Bit Errors
US10353769B2 (en) Recovering from addressing fault in a non-volatile memory
JP2004521430A (en) Method and circuit arrangement for memory error handling
KR920010972B1 (en) Fault tolerant computer memory systems
US8028221B2 (en) Error correction and error detection method for reading of stored information data and a storage control unit for the same
US7620884B2 (en) Memory checking device and method for checking a memory
JP2003100095A (en) Semiconductor integrated circuit device
US7773421B2 (en) Method and apparatus for accessing memory with read error by changing comparison

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

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee