KR20090083799A - Data error correction device and method for flash memory - Google Patents

Data error correction device and method for flash memory Download PDF

Info

Publication number
KR20090083799A
KR20090083799A KR1020080009805A KR20080009805A KR20090083799A KR 20090083799 A KR20090083799 A KR 20090083799A KR 1020080009805 A KR1020080009805 A KR 1020080009805A KR 20080009805 A KR20080009805 A KR 20080009805A KR 20090083799 A KR20090083799 A KR 20090083799A
Authority
KR
South Korea
Prior art keywords
data
checksum
error
user
management
Prior art date
Application number
KR1020080009805A
Other languages
Korean (ko)
Other versions
KR100982580B1 (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 KR1020080009805A priority Critical patent/KR100982580B1/en
Publication of KR20090083799A publication Critical patent/KR20090083799A/en
Application granted granted Critical
Publication of KR100982580B1 publication Critical patent/KR100982580B1/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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

A data error correction device and a method for flash memory are provided to confirm the result about bit error detection/correction over correction capability value. Data transmitting/receiving unit(116) transmits and receives user data, data error correcting success information, and error correction disable information codes for data. The data error detecting unit(136) of data error detection/correction module(134) of data error detection/correction unit(RS-ECC: Reed-Solomon Error Correcting Code)(130) uses the ECC parity data to detect a generation of one or more bit error about the management data, check sum data, and ECC parity data, or user data stored in a temporary storage unit(122). A data error correction unit(138) corrects one or more bit error among one or more management data, check sum data, and ECC parity data or user data in which the bit error is detected.

Description

플래시 메모리의 데이터 에러 정정장치 및 방법{Data error correction device and method for flash memory}Data error correction device and method for flash memory

본 발명은 플래시 메모리의 데이터 에러 정정장치 및 방법에 관한 것이다.The present invention relates to a data error correction apparatus and method of a flash memory.

일반적으로, 플래시 메모리(Flash memory)는 비휘발성 메모리로서, 사용자 데이터 또는 각종 디바이스 동작에 필요한 코드(Code), 폰트(Font), 컨텐츠(Contents) 등을 저장하기 위한 데이터 저장수단으로 사용되고 있다.In general, a flash memory is a nonvolatile memory and is used as a data storage means for storing code, fonts, contents, and the like required for user data or various device operations.

한편, 여러 개의 섹터로 구성된 페이지에 대하여 페이지 단위로 읽기(Read)/쓰기(Write)가 가능한 플래시 메모리를 저장수단으로 하는 기기는 플래시 메모리의 용량이 증대되고 집적도가 높아짐에 따라 다 비트에러(Bit Error) 발생 확률이 높아지고 있어 다 비트에러 정정기능이 요구되고 있다.On the other hand, a device having a flash memory capable of reading / writing on a page-by-page basis for a page composed of several sectors as a storage means has a multi-bit error as the capacity of the flash memory increases and the degree of integration increases. Error occurrence probability is increasing, and multi-bit error correction function is required.

여기서, 한 섹터는 사용자 데이터 또는 각종 디바이스 동작에 필요한 코드, 폰트, 컨텐츠 등이 저장되는 512 바이트의 메인영역(Main area)과 관리 데이터 또는 패리티 데이터 등이 저장되는 16 바이트의 스페어 영역으로 이루어진다.Here, one sector is composed of a 512-byte main area storing user data or codes, fonts, contents, etc. necessary for operating various devices, and a 16-byte spare area storing management data or parity data.

한편, 스페어 영역의 관리 데이터는 플래시 메모리의 물리적 주소(Address), 해당 플래시 메모리의 블록 종류로서 디바이스(예컨대, 임베디드 시스템)가 플래시 메모리를 관리하기 위한 데이터이다.Meanwhile, the management data of the spare area is a physical address of the flash memory and a block type of the corresponding flash memory, which are data for the device (eg, an embedded system) to manage the flash memory.

또한, 패리티 데이터는 플래시 메모리의 비트에러 정정 회로가 플래시 메모리의 데이터에 대하여 비트에러를 검출하여 정정하기 위한 부가 데이터이다.The parity data is additional data for the bit error correction circuit of the flash memory to detect and correct a bit error with respect to the data of the flash memory.

여기서, 패리티 데이터를 플래시 메모리의 스페어 영역에 저장하는 이유는 플래시 메모리를 쓰거(Write)나 읽는(Read) 중에 1비트 또는 2비트 이상의 다 비트 에러가 발생할 수 있기 때문이다.The reason for storing the parity data in the spare area of the flash memory is that a multi-bit error of 1 bit or more than 2 bits may occur during the writing or reading of the flash memory.

쓰기 에러(Write Error)는 플래시 메모리 블록의 한 페이지를 쓰거(Write)나 한 플래시 메모리 블록을 소거한 결과가 잘못된 것을 말하는 것으로, 플래시 메모리의 기록 상태 비트를 확인함으로써 알 수 있다.Write error refers to a wrong result of writing a page of a flash memory block or erasing a flash memory block. The write error is determined by checking the write status bit of the flash memory.

또한, 읽기 에러(Read Error)는 쓰기 동작을 에러 없이 수행한 후 기록된 데이터가 바뀌는 경우를 말한다.In addition, a read error refers to a case where recorded data is changed after performing a write operation without error.

한편, 비트에러(Bit error)는 하나의 페이지 또는 섹터에서 하나의 비트에서만 비트에러가 나타나는 단일 비트에러로, 플래시 메모리 셀의 플로팅 게이트(Floating gate)를 둘러싸고 있는 산화막을 통해 셀의 전하가 누설(Leakage)되기 때문에 발생한다.Meanwhile, a bit error is a single bit error in which a bit error occurs only in one bit in one page or sector, and the charge of the cell leaks through the oxide film surrounding the floating gate of the flash memory cell. It happens because of leakage.

또한, 플래시 메모리의 초기 공정 시 플래시 메모리 셀이 깨진 경우에는 공정에서 사용할 수 없는 블럭(Bad Block)이라고 스페어 영역에 표시를 해두고 나중에 사용할 때는 이러한 정보를 읽어서 이 블럭을 제외하고 사용한다.In addition, when the flash memory cell is broken during the initial process of the flash memory, the spare area is marked as a block which cannot be used in the process, and when used later, this information is read and used except for this block.

이러한, 패리티 데이터를 많이 할당할 수 도록 더 많은 비트에러 정정정보를 저장할 수 있지만, 스페어 영역의 크기가 16 바이트로 정해져 있어 비트에러 정정 장치의 알고리즘 선택에 따라 비트에러 정정 능력이 결정된다.Although more bit error correction information can be stored so that a large amount of parity data can be allocated, the size of the spare area is set to 16 bytes, and the bit error correction capability is determined according to the algorithm selection of the bit error correction apparatus.

한편, 한 개의 플래시 메모리 셀에 한 비트를 저장하는 SLC(Single-Leve Cell) 형의 플래시 메모리는 보통 1 비트에러를 검출하여 정정할 수 있는 해밍 에러 정정 회로(Hemming-ECC)를 이용한다.On the other hand, SLC (Single-Leve Cell) type flash memory that stores one bit in one flash memory cell usually uses a Hamming Error Correction Circuit (Hemming-ECC) that can detect and correct one bit error.

반면에, MLC(Multi-Level Cell) 형의 플래시 메모리는 SLC 형의 플래시 메모리에 비해 비트에러 발생 빈도가 높고 비트에러의 개수가 많은 경우에 해밍 에러 정정회로를 이용하는 데에 한계가 있어, 한 개의 플래시 메모리 셀에 다 비트(예컨대, 2비트 이상)에러를 검출하여 정정할 수 있는 리드 솔로몬 에러 정정 회로(RS-ECC:Reed-Solomon Error Correcting Code)를 이용한다.On the other hand, multi-level cell (MLC) type flash memory has a limitation in using a hamming error correction circuit when bit error occurs more frequently and the number of bit errors is higher than that of SLC type flash memory. A Reed-Solomon Error Correcting Code (RS-ECC) is used for detecting and correcting a multi-bit (for example, two or more bits) error in a flash memory cell.

그러나, 종래기술의 리드 솔로몬 에러 정정장치는 비트에러 정정 능력치 예컨대, 4 비트의 비트에러를 검출하여 정정할 수 있지만, 비트에러 정정 능력치 이상 예컨대, 5비트 이상의 비트에러에 대해서는 정확하게 검출하여 정정하지 못하는 문제가 있다.However, the conventional Reed Solomon error correcting apparatus can detect and correct a bit error correction capability value, for example, a 4-bit bit error, but cannot accurately detect and correct a bit error more than the bit error correction capability value, for example, 5 bits or more. there is a problem.

이에 따라, 플래시 메모리가 오동작 될 수 있어 플래시 메모리의 신뢰성이 떨어진다.As a result, the flash memory may malfunction, thereby reducing the reliability of the flash memory.

본 발명은 플래시 메모리에서 리드 솔로몬 에러 정정 장치(RS-ECC)의 비트 에러 정정 능력치 이상의 다 비트에러 검출/정정에 대한 결과를 확인할 수 있고, 그에 따라 플래시 메모리의 신뢰성을 향상시킬 수 있는 플래시 메모리의 데이터 에러 정정 장치 및 방법을 제공하는 데 그 목적이 있다.The present invention can confirm the results of the multi-bit error detection / correction beyond the bit error correction capability of the Reed Solomon error correction device (RS-ECC) in the flash memory, thereby improving the reliability of the flash memory It is an object of the present invention to provide a data error correction apparatus and method.

본 발명은 사용자 데이터 읽기에 따라 사용자 데이터, 관리 데이터, 체크섬 데이터 및 ECC 패리티 데이터가 저장되어 있는 데이터 저장부로부터 상기 데이터를 읽는 단계와, 상기 ECC 패리티 데이터를 이용하여 상기 적어도 하나 이상의 데이터에 대하여 적어도 하나 이상의 비트에러 발생 유무를 검출하는 단계와, 상기 데이터에서 적어도 하나 이상의 비트에러가 검출된 경우에 상기 비트에러가 검출된 적어도 하나 이상의 데이터에 대하여 상기 비트에러를 정정하는 단계와, 상기 비트에러가 정정 또는 정정되지 않은 상기 사용자 데이터 및 상기 관리 데이터에 대한 뉴 체크섬 데이터를 생성하는 단계와, 상기 뉴 체크섬 데이터와 상기 체크섬 데이터가 같은 경우에 데이터 에러 정정성공 정보를 생성한 후, 상기 데이터 에러 정정성공 정보와 상기 적어도 하나 이상의 비트에러가 정정 또는 정정되지 않은 상기 사용자 데이터를 디바이스로 전송하는 단계를 포함한다.According to the present invention, there is provided a method of reading data from a data storage unit storing user data, management data, checksum data, and ECC parity data according to reading user data, and using the ECC parity data to read at least one of the at least one data. Detecting at least one bit error occurrence, correcting the bit error with respect to at least one or more pieces of data in which the bit error is detected when at least one bit error is detected in the data; Generating new checksum data for the corrected or uncorrected user data and the management data; and generating data error correction success information when the new checksum data and the checksum data are the same; Write down the information and remind One or more bit errors transmitting the user data that are not corrected, or corrected to the device.

본 발명은 플래시 메모리에서 리드 솔로몬 에러 정정장치(RS-ECC)의 비트 에 러 정정 능력치 이상의 다 비트에러 검출/정정에 대한 결과를 확인할 수 있어 플래시 메모리의 신뢰성을 향상시킬 수 있다.According to the present invention, the result of the multi-bit error detection / correction beyond the bit error correction capability of the Reed-Solomon error correction device (RS-ECC) in the flash memory can be confirmed, thereby improving the reliability of the flash memory.

본 발명은 사용자 데이터, 관리 데이터, 체크섬 데이터 및 ECC 패리티 데이터가 저장되는 데이터 저장부; 디바이스와 연결되어 상기 사용자 데이터, 데이터 에러 정정성공 정보 및 데이터 에러 정정불능 정보를 송수신하는 데이터 송/수신부; 및 상기 사용자 데이터 읽기에 따라 상기 데이터들을 읽고, 상기 ECC 패리티 데이터를 이용하여 적어도 하나 이상의 상기 데이터에 대하여 적어도 하나 이상의 비트에러 발생 유무를 검출하며, 적어도 하나 이상의 상기 데이터에서 적어도 하나 이상의 비트에러가 검출된 경우 상기 비트에러를 정정하는 데이터 에러 검출/정정 수단과, 상기 데이터 에러 검출/정정 수단이 상기 데이터의 상기 비트에러를 정정한 경우에 상기 비트에러가 정정 또는 정정되지 않은 상기 사용자 데이터 및 상기 관리 데이터에 대한 뉴 체크섬 데이터를 생성하고, 상기 뉴 체크섬 데이터와 상기 체크섬 데이터가 같은 경우에 상기 데이터 에러 정정성공 정보를 생성한 후, 상기 적어도 하나 이상의 비트에러가 정정 또는 정정되지 않은 상기 사용자 데이터와 상기 데이터 에러 정정성공 정보를 상기 데이터 송/수신부를 통해 상기 디바이스로 전송하는 체크섬 데이터 생성/비교 수단으로 이루어진 제어부를 포함한다.The present invention provides a data storage unit for storing user data, management data, checksum data, and ECC parity data; A data transmission / reception unit connected to a device to transmit / receive the user data, data error correction success information, and data error correction non-correction information; And reading the data according to the reading of the user data, detecting whether at least one bit error occurs in at least one or more of the data using the ECC parity data, and detecting at least one bit error in the at least one or more data. Data error detection / correction means for correcting the bit error if the error is corrected, and the user data and the management for which the bit error is not corrected or corrected when the data error detection / correction means corrects the bit error of the data. Generating new checksum data for the data, generating the data error correction success information when the new checksum data and the checksum data are the same, and then the user data and the uncorrected or corrected bit error Data error definition And a control unit comprising checksum data generation / comparison means for transmitting the successful information to the device through the data transmission / reception unit.

본 발명에서 상기 체크섬 데이터 생성/비교 수단은 상기 뉴 체크섬 데이터와 상기 체크섬 데이터가 같지 않은 경우에 상기 데이터 에러 정정불능 정보를 생성한 후, 상기 적어도 하나 이상의 비트에러가 정정 또는 정정되지 않은 상기 사용자 데 이터와 상기 데이터 에러 정정불능 정보를 상기 데이터 송/수신부를 통해 상기 디바이스로 전송한다.In the present invention, the checksum data generation / comparison means generates the data error uncorrectable information when the new checksum data and the checksum data are not the same, and then the at least one bit error is corrected or not corrected. Data and the data error correction information are transmitted to the device through the data transmitter / receiver.

또한, 본 발명에서 상기 체크섬 데이터 생성/비교 수단은 상기 사용자 데이터 쓰기에 따라 상기 데이터 송/수신부를 통해 상기 디바이스로부터 상기 사용자 데이터를 수신하고, 상기 사용자 데이터와 상기 사용자 데이터가 수신됨 따라 상기 제어부에서 생성된 상기 관리 데이터에 대한 상기 체크섬 데이터를 생성하여 상기 데이터 저장부에 저장하며, 상기 데이터 에러 검출/정정 수단은 상기 사용자 데이터 쓰기에 따라 상기 사용자 데이터, 상기 관리 데이터 또는 상기 체크섬 데이터에 대한 ECC 패리티 데이터를 생성하여 상기 데이터 저장부에 저장한다.Further, in the present invention, the checksum data generation / comparison means receives the user data from the device through the data transmission / reception unit according to the writing of the user data, and in the controller as the user data and the user data are received. The checksum data of the generated management data is generated and stored in the data storage unit, and the data error detection / correction unit performs ECC parity on the user data, the management data, or the checksum data according to the user data write. Data is generated and stored in the data storage unit.

또한, 본 발명에서 상기 데이터 에러 검출/정정 수단은 적어도 하나 이상의 상기 데이터에서 적어도 하나 이상의 비트에러가 검출되지 않은 경우에 상기 사용자 데이터를 상기 데이터 송/수신부를 통해 상기 디바이스로 전송한다.Further, in the present invention, the data error detecting / correcting means transmits the user data to the device through the data transmitting / receiving unit when at least one or more bit errors are not detected in at least one or more of the data.

또한, 본 발명에서 상기 체크섬 데이터는 상기 사용자 데이터 및 상기 관리 데이터의 비트들이 XOR로 연산된 비트들에서 1의 개수 총합이고, 상기 뉴 체크섬 데이터는 적어도 하나 이상의 비트에러가 정정 또는 정정되지 않은 상기 사용자 데이터 및 상기 관리 데이터의 비트들이 XOR로 연산된 비트들에서 1의 개수 총합이다.Also, in the present invention, the checksum data is a sum total of 1s in bits in which the bits of the user data and the management data are calculated by XOR, and the new checksum data is the user whose at least one or more bit errors are corrected or not corrected. The bits of data and the management data are the sum of the number of 1s in the bits computed by XOR.

또한, 본 발명에서 상기 데이터 저장부는 상기 사용자 데이터가 저장되는 사용자 데이터 저장 수단과, 상기 관리 데이터, 상기 체크섬 데이터 및 상기 ECC 패리티 데이터가 저장되는 스페어 저장수단으로 이루어지고, 상기 스페어 저장수단은 상기 관리 데이터가 저장되는 관리 데이터 저장영역; 상기 체크섬 데이터가 저장되느 체크섬 데이터 저장영역; 및 상기 ECC 패리티 데이터가 저장되는 ECC 패리티 저장영역을 포함한다.In the present invention, the data storage unit comprises a user data storage means for storing the user data, and a spare storage means for storing the management data, the checksum data and the ECC parity data, the spare storage means is the management A management data storage area in which data is stored; A checksum data storage area in which the checksum data is stored; And an ECC parity storage area in which the ECC parity data is stored.

또한, 본 발명에서 상기 사용자 데이터 저장 수단은 512 바이트의 저장공간으로 형성되고, 상기 스페어 저장부는 16 바이트의 저장공간으로 형성되며, 상기 관리 데이터 저장영역은 6 바이트의 저장공간으로 형성되며, 상기 체크섬 데이터 저장영역은 1 바이트의 저장공간으로 형성되며, 상기 ECC 패리티 데이터 저장영역은 9 바이트의 저장공간으로 형성된다.In the present invention, the user data storage means is formed of a storage space of 512 bytes, the spare storage unit is formed of a storage space of 16 bytes, the management data storage area is formed of a storage space of 6 bytes, the checksum The data storage area is formed of 1 byte of storage space, and the ECC parity data storage area is formed of 9 bytes of storage space.

또한, 본 발명에서 상기 사용자 데이터, 상기 데이터 에러 정정성공 정보 및 상기 데이터 에러 정정불능 정보를 임시 저장하는 임시 저장부 또는, 상기 데이터들, 상기 데이터 에러 정정성공 정보 및 상기 데이터 에러 정정불능 정보를 송수신하는 통신부를 더 포함한다.In the present invention, the temporary storage unit for temporarily storing the user data, the data error correction success information and the data error correction information, or the data, the data error correction success information and the data error correction information transmission and reception The communication unit further comprises.

또한, 본 발명에서 상기 제어부는 상기 데이터들, 상기 데이터 에러 정정성공 정보 및 상기 데이터 에러 정정불능 정보를 임시 저장하는 임시 저장수단을 더 포함한다.In the present invention, the control unit further includes temporary storage means for temporarily storing the data, the data error correction success information, and the data error correction impossible information.

또한, 본 발명에서 상기 체크섬 데이터 생성/비교 수단은 상기 사용자 데이터 읽기에 따라 적어도 하나 이상의 상기 데이터에 대하여 적어도 하나 이상의 비트에러가 정정된 경우, 적어도 하나 이상의 비트에러가 정정 또는 정정되지 않은 상기 사용자 데이터 및 상기 관리 데이터를 이용하여 상기 뉴 체크섬 데이터를 생성하고, 상기 사용자 데이터 쓰기에 따라 상기 수신되는 상기 사용자 데이터 및 상 기 관리 데이터에 따른 상기 체크섬 데이터를 생성하여 상기 데이터 저장부에 저장하는 체크섬 데이터 생성모듈과, 상기 뉴 체크섬 데이터와 상기 체크섬 데이터가 같은지 비교판단하고 그에 따라 상기 데이터 에러 정정성공 정보 또는 상기 데이터 에러 정정불능 정보를 생성하는 체크섬 데이터 비교모듈을 포함한다.Further, in the present invention, when the at least one bit error is corrected for at least one or more of the data according to the reading of the user data, the checksum data generation / comparison means includes the user data for which at least one or more bit errors are not corrected or corrected. And generating the checksum data by generating the new checksum data using the management data, and generating the checksum data according to the received user data and the management data according to the writing of the user data and storing the checksum data in the data storage unit. And a checksum data comparison module for comparing and determining whether the new checksum data and the checksum data are the same and thereby generating the data error correction success information or the data error correctability information.

또한, 본 발명에서 상기 데이터 에러 검출/정정 수단은 상기 사용자 데이터, 상기 관리 데이터 및 상기 체크섬 데이터에 대한 상기 ECC 패리티 데이터를 생성하여 상기 데이터 저장부에 저장하는 ECC 패리티 데이터 생성모듈과, 상기 ECC 패리티 데이터를 이용하여 상기 적어도 하나 이상의 데이터에 대하여 적어도 하나 이상의 비트에러의 발생 유무를 검출하여 정정하는 데이터 에러 검출/정정 모듈을 포함한다.Further, in the present invention, the data error detection / correction means includes an ECC parity data generation module for generating the ECC parity data for the user data, the management data, and the checksum data and storing the ECC parity data in the data storage unit, and the ECC parity. And a data error detection / correction module for detecting and correcting at least one bit error with respect to the at least one data using data.

또한, 본 발명에서 상기 데이터 에러 검출/정정 모듈은 상기 ECC 패리티 데이터를 이용하여 상기 적어도 하나 이상의 데이터에 대하여 적어도 하나 이상의 비트에러 발생 유무를 검출하는 데이터 에러 검출수단과, 상기 데이터 에러 검출수단이 상기 적어도 하나 이상의 데이터에서 적어도 하나 이상의 비트에러를 검출한 경우에 적어도 하나 이상의 비트에러를 정정하는 데이터 에러정정 수단을 포함한다.Further, in the present invention, the data error detection / correction module includes data error detection means for detecting the presence or absence of at least one bit error with respect to the at least one or more data using the ECC parity data, and the data error detection means includes: And data error correction means for correcting at least one or more bit errors when detecting at least one or more bit errors in the at least one or more data.

또한, 본 발명에서 상기 ECC 패리티 데이터는 상기 사용자 데이터, 상기 관리 데이터, 상기 체크섬 데이터 및 상기 ECC 패리티 데이터에 대한 데이터이다.In the present invention, the ECC parity data is data about the user data, the management data, the checksum data and the ECC parity data.

또한, 본 발명에서 상기 데이터 에러 검출/정정 수단은 상기 관리 데이터, 상기 체크섬 데이터, 상기 ECC 패리티 데이터 및 상기 사용자 데이터 순으로 읽는다.In the present invention, the data error detection / correction means reads the management data, the checksum data, the ECC parity data, and the user data.

또한, 본 발명은 사용자 데이터 읽기에 따라 사용자 데이터, 관리 데이터, 체크섬 데이터 및 ECC 패리티 데이터가 저장되어 있는 데이터 저장부로부터 상기 데이터를 읽는 단계와, 상기 ECC 패리티 데이터를 이용하여 상기 적어도 하나 이상의 데이터에 대하여 적어도 하나 이상의 비트에러 발생 유무를 검출하는 단계와, 상기 데이터에서 적어도 하나 이상의 비트에러가 검출된 경우에 상기 비트에러가 검출된 적어도 하나 이상의 데이터에 대하여 상기 비트에러를 정정하는 단계와, 상기 비트에러가 정정 또는 정정되지 않은 상기 사용자 데이터 및 상기 관리 데이터에 대한 뉴 체크섬 데이터를 생성하는 단계와, 상기 뉴 체크섬 데이터와 상기 체크섬 데이터가 같은 경우에 데이터 에러 정정성공 정보를 생성한 후, 상기 데이터 에러 정정성공 정보와 상기 적어도 하나 이상의 비트에러가 정정 또는 정정되지 않은 상기 사용자 데이터를 디바이스로 전송하는 단계를 포함한다.The present invention may further include reading the data from a data storage unit storing user data, management data, checksum data, and ECC parity data according to reading user data, and using the ECC parity data to read the data. Detecting at least one bit error with respect to the at least one bit error, correcting the bit error with respect to at least one or more pieces of data in which the bit error is detected when at least one bit error is detected in the data, and Generating new checksum data for the user data and the management data for which the error has not been corrected or corrected; and generating data error correction success information when the new checksum data and the checksum data are the same; Correct Success Information and Reminders Transmitting the user data to the device at least one or more bit errors are corrected or uncorrected.

본 발명에서 상기 적어도 하나 이상의 데이터에서 적어도 하나 이상의 비트에러 검출되지 않은 경우에 상기 사용자 데이터를 상기 디바이스로 전송하는 단계를 더 포함한다.The method further includes transmitting the user data to the device when at least one or more bit errors are not detected in the at least one or more data.

또한, 본 발명에서 상기 뉴 체크섬 데이터와 상기 체크섬 데이터가 같지 않은 경우에 데이터 에러 정정불능 정보를 생성한 후, 상기 데이터 에러 정정불능 정보와 상기 적어도 하나 이상의 비트에러가 정정 또는 정정되지 않은 상기 사용자 데이터를 디바이스로 전송하는 단계를 더 포함한다.Further, in the present invention, after generating the data error uncorrectable information when the new checksum data and the checksum data are not the same, the user data for which the data error uncorrectable information and the at least one bit error are not corrected or corrected. And transmitting to the device.

또한, 본 발명에서 상기 사용자 데이터 쓰기에 따라 상기 디바이스로부터 상기 사용자 데이터를 수신하는 단계와, 상기 사용자 데이터가 수신됨에 따라 상기 관리 데이터를 생성하는 단계와, 상기 사용자 데이터 및 상기 관리 데이터에 대한 상기 체크섬 데이터를 생성하는 단계와, 상기 사용자 데이터, 상기 관리 데이터 및 상기 체크섬 데이터에 대한 ECC 패리티 데이터를 생성하는 단계와, 상기 데이터들을 상기 데이터 저장부에 저장하는 단계를 더 포함한다.In the present invention, receiving the user data from the device in accordance with the writing of the user data, generating the management data as the user data is received, and the checksum for the user data and the management data Generating data, generating ECC parity data for the user data, the management data and the checksum data, and storing the data in the data storage.

이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In addition, in describing the present invention, when it is determined that the detailed description of the related well-known configuration or function may obscure the gist of the present invention, the detailed description thereof will be omitted.

실시예Example

도 1은 본 발명에 따른 플래시 메모리의 데이터 에러 정정장치를 나타낸 블록도이다.1 is a block diagram illustrating a data error correction apparatus of a flash memory according to the present invention.

도 1에서 나타낸 바와 같이, 데이터 에러정정 장치(100)는 임시 저장부(102), 데이터 저장부(104), 데이터 송/수신부(116), 통신부(118), 제어부(120)를 포함한다.As shown in FIG. 1, the data error correction apparatus 100 includes a temporary storage unit 102, a data storage unit 104, a data transmission / reception unit 116, a communication unit 118, and a control unit 120.

먼저, 데이터 에러정정 장치(100)의 임시 저장부(102)에는 디바이스의 사용자 데이터, 제어부(120)에서 적어도 하나 이상의 비트에러가 정정 또는 정정되지 않은 사용자 데이터, 비트에러 정정성공 정보 또는 비트에러 정정불능 정보 등이 임시 저장된다.First, the temporary storage unit 102 of the data error correction apparatus 100 includes user data of the device, user data for which at least one or more bit errors are corrected or not corrected in the controller 120, bit error correction success information, or bit error correction. Disabled information is temporarily stored.

데이터 저장부(104)에는 사용자 데이터, 데이터 에러정정 장치(100)의 관리 데이터, 체크섬 데이터(Checksum Data), ECC 패리티 데이터(Error Correcting Code Parity Parity Data) 등이 저장된다.The data storage unit 104 stores user data, management data of the data error correction apparatus 100, checksum data, ECC parity data, and the like.

여기서, 데이터 저장부(104)는 플래시 메모리(Flash Memory)인 것이 바람직하다.In this case, the data storage unit 104 is preferably a flash memory.

이러한, 데이터 저장부(104)는 512 바이트(byte)의 사용자 데이터 저장수단(106)과 16 바이트의 스페어 저장수단(108)으로 이루어진다.This data storage unit 104 is composed of 512 bytes of user data storage means 106 and 16 bytes of spare storage means 108.

사용자 데이터 저장수단(106)에는 사용자 데이터의 문서 데이터, 이미지 데이터(Image Data) 또는 각종 디바이스 동작에 필요한 코드(Code), 폰트(Font), 컨텐츠(Contents) 등이 저장된다.The user data storage means 106 stores document data of the user data, image data, image codes, codes, fonts, contents, etc. necessary for various device operations.

한편, 스페어 저장수단(108)은 6 바이트의 관리 데이터 저장영역(110), 1 바이트의 체크섬 데이터 저장영역(112) 및 9 바이트의 ECC 패리티 데이터 저장영역(114)으로 이루어진다.On the other hand, the spare storage means 108 consists of a management data storage area 110 of 6 bytes, a checksum data storage area 112 of 1 byte, and an ECC parity data storage area 114 of 9 bytes.

먼저, 관리 데이터 저장영역(110)에는 데이터 에러정정 장치(100)를 관리하기 위한 데이터 저장부(104)의 논리주소가 변환된 물리적 주소의 관리 데이터가 저장된다.First, the management data storage area 110 stores management data of a physical address obtained by converting a logical address of the data storage unit 104 for managing the data error correction apparatus 100.

여기서, 관리 데이터는 사용자 데이터가 데이터 저장부(104)로 전송되는 경우에 제어부(120)의 로직(Logic)에서 생성된다.Here, the management data is generated in the logic of the controller 120 when the user data is transmitted to the data storage 104.

또한, 체크섬 데이터 저장영역(112)에는 사용자 데이터 및 관리 데이터의 비트들이 XOR로 연산된 비트들(예컨대, 0110110)에서 1의 개수 총합(예컨대, 4)인 체크섬 데이터가 저장된다.In addition, the checksum data storage area 112 stores checksum data in which bits of the user data and the management data are the sum total of 1 (eg, 4) from the bits (eg, 0110110) calculated by XOR.

한편, ECC 패리티 데이터 저장영역(114)에는 사용자 데이터, 관리 데이터 또 는 체크섬 데이터에 대한 ECC 패리티 데이터가 저장된다.Meanwhile, the ECC parity data storage area 114 stores ECC parity data for user data, management data, or checksum data.

여기서, ECC 패리티 데이터를 최대 9 바이트로 형성할 수 있어, 사용자 데이터, 관리 데이터 또는 체크섬 데이터에 대하여 최대 4 심볼의 비트에러를 검출하여 정정할 수 있다.Here, the ECC parity data can be formed up to 9 bytes, so that bit errors of up to 4 symbols can be detected and corrected for user data, management data, or checksum data.

그리고, ECC 패리티 데이터는 사용자 데이터, 관리 데이터, 체크섬 데이터 또는 자기 자신 즉, ECC 패리티 데이터에 대한 데이터인 것이 바람직하다.The ECC parity data is preferably user data, management data, checksum data, or data for oneself, that is, data for ECC parity data.

이러한, ECC 패리티 데이터는 데이터 에러정정 장치(100)에서 데이터 송/수신부(116)와 연결된 디바이스(예컨대, 임베디스 시스템) 간에 송/수신되는 사용자 데이터, 관리 데이터, 체크섬 데이터 또는 ECC 패리티 데이터 중에서 적어도 하나 이상의 비트에러가 발생했을 때 이를 검출하여 정정하기 위한 것으로 해밍 코드(Hamming Code)인 리드 솔로몬 에러 정정 코드(RS-ECC:Reed-Solomon Error Correcting Code)를 사용한다.The ECC parity data is at least among user data, management data, checksum data, or ECC parity data transmitted / received between the data transmission / reception unit 116 and a device (eg, embedded system) connected to the data error correction apparatus 100. When one or more bit errors occur, they are used to detect and correct a Hamming Code, which is a Reed-Solomon Error Correcting Code (RS-ECC).

데이터 송/수신부(116)는 디바이스와 연결되어 사용자 데이터, 비트에러가 정정 또는 정정되지 않은 사용자 데이터, 비트에러 정정성공 정보 또는 비트에러 정정불능 정보를 송/수신한다.The data transmitting / receiving unit 116 is connected to the device to transmit / receive user data, user data for which bit errors are not corrected or corrected, bit error correction information, or bit error correction information.

여기서, 디바이스는 임베디스 시스템(Embedded Systems), 프로세서(DSP:Digital Signal Processor), 노트북(Notebook), 퍼스널 컴퓨터(PC:Personal Computer) 등 일 수 있다.The device may be an embedded system, a digital signal processor (DSP), a notebook, a personal computer (PC), or the like.

한편, 통신부(118)는 사용자 데이터, 관리 데이터, 체크섬 데이터, ECC 패리티 데이터, 비트에러 정정성공 정보 또는 비트에러 정정불능 정보를 송/수신한다.On the other hand, the communication unit 118 transmits / receives user data, management data, checksum data, ECC parity data, bit error correction success information, or bit error correction information.

그리고, 제어부(120)는 사용자 데이터 쓰기(Write) 동작시 통신부(118)를 통해 수신되는 사용자 데이터, 데이터 에러정정 장치(100)의 관리 데이터, 사용자 데이터와 관리 데이터에 대한 체크섬 데이터, 사용자 데이터, 관리 데이터 또는 체크섬 데이터에 대한 ECC 패리티 데이터를 생성하여 통신부(118)를 통해 데이터 저장부(104)에 저장한다.In addition, the controller 120 may receive user data received through the communication unit 118 during operation of writing a user data, management data of the data error correction apparatus 100, checksum data of user data and management data, user data, ECC parity data for management data or checksum data is generated and stored in the data storage unit 104 through the communication unit 118.

여기서, ECC 패리티 데이터는 사용자 데이터, 관리 데이터, 체크섬 데이터 또는 자기 자신 즉, ECC 패리티 데이터에 대한 데이터인 것이 바람직하다.In this case, the ECC parity data is preferably user data, management data, checksum data, or data about oneself, that is, ECC parity data.

한편, 사용자 데이터는 사용자 데이터 저장수단(106)에 저장되고, 관리 데이터는 관리 데이터 저장영역(110)에 저장되며, 체크섬 데이터는 체크섬 데이터 저장영역(112)에 저장되며, ECC 패리티 데이터는 ECC 패리티 데이터 저장영역(114)에 저장된다.Meanwhile, the user data is stored in the user data storage means 106, the management data is stored in the management data storage area 110, the checksum data is stored in the checksum data storage area 112, and the ECC parity data is the ECC parity. It is stored in the data storage area 114.

또한, 제어부(120)는 사용자 데이터 읽기(Read)에 따라 통신부(118)를 통해 데이터 저장부(104)로부터 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 및 사용자 데이터를 순차적으로 읽은 후, ECC 패리티 데이터를 이용하여 적어도 하나 이상의 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 및 사용자 데이터에서 적어도 하나 이상의 비트에러 발생 유무를 검출하며, 검출결과 비트에러가 발생되지 않은 경우에 사용자 데이터를 통신부(118)를 통해 임시 저장부(102)에 저장한다.In addition, the controller 120 sequentially reads management data, checksum data, ECC parity data, and user data from the data storage unit 104 through the communication unit 118 according to user data read, and then stores the ECC parity data. Detects the presence of at least one bit error in at least one or more management data, checksum data, ECC parity data and user data, and temporarily stores the user data through the communication unit 118 when no bit error occurs. Stored in the unit 102.

이 후, 데이터 송/수신부(116)는 임시 저장부(102)의 사용자 데이터를 디바이스로 전송한다.Thereafter, the data transmission / reception unit 116 transmits the user data of the temporary storage unit 102 to the device.

한편, 검출결과 비트에러가 발생된 경우에, 제어부(120)는 적어도 하나 이상 의 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 또는 사용자 데이터에서 발생된 적어도 하나 이상의 비트에러를 비트에러 발생 순서대로 순차적으로 정정하고, 비트에러가 정정 또는 정정되지 않은 사용자 데이터와 관리 데이터에 대한 뉴(New) 체크섬 데이터를 생성하며, 뉴 체크섬 데이터와 기 저장된 올드(Old) 체크섬 데이터와 같은지 비교판단하며, 비교판단 결과 같은 경우에 비트에러 정정성공 정보를 생성하여 통신부(118)를 통해 임시 저장부(102)에 저장한다.Meanwhile, when a bit error occurs as a result of the detection, the controller 120 sequentially corrects at least one or more bit errors generated in at least one management data, checksum data, ECC parity data, or user data in order of bit error occurrence. And generate new checksum data for user data and management data whose bit errors are not corrected or corrected, compare and determine whether the new checksum data is the same as the old checksum data previously stored, and the result of the comparison judgment. The bit error correction success information is generated and stored in the temporary storage unit 102 through the communication unit 118.

여기서, 뉴 체크섬 데이터는 체크섬 데이터 생성방법과 같이 적어도 하나 이상의 비트에러가 정정 또는 정정되지 않은 사용자 데이터 및 관리 데이터의 비트들이 XOR로 연산된 비트들에서 1의 개수 총합인 데이터이다.Here, the new checksum data is data that is the sum of the number of 1s in the bits of the user data and the management data in which at least one or more bit errors are corrected or uncorrected, such as a checksum data generation method.

또한, 제어부(120)는 비트에러가 정정 또는 정정되지 않은 사용자 데이터를 임시 저장부(102)에 저장할 수 있다.In addition, the controller 120 may store user data in which the bit error is not corrected or corrected in the temporary storage unit 102.

이후, 데이터 송/수신부(116)는 임시 저장부(102)의 비트에러 정정성공 정보와 적어도 하나 이상의 비트에러가 정정 또는 정정되지 않은 사용자 데이터를 디바이스로 전송한다.Thereafter, the data transmission / reception unit 116 transmits bit error correction success information of the temporary storage unit 102 and user data for which at least one or more bit errors are corrected or not corrected to the device.

이때, 디바이스는 사용자 데이터를 저장 또는 비트에러 정정성공 정보를 사용자가 인지할 수 있도록 디스플레이 수단을 통해 디스플레이할 수 있다.In this case, the device may store the user data or display the bit error correction success information through the display means so that the user can recognize the information.

또한, 비교판단 결과 뉴 체크섬 데이터와 올드 체크섬 데이터가 다른 경우에 제어부(120)는 비트에러 정정불능 정보를 생성하여 통신부(118)를 통해 임시 저장부(102)에 저장한다.In addition, when the comparison result shows that the new checksum data and the old checksum data are different, the controller 120 generates bit error correction information and stores the bit error correction information in the temporary storage unit 102 through the communication unit 118.

또한, 제어부(120)는 비트에러가 정정 또는 정정되지 않은 사용자 데이터를 임시 저장부(102)에 저장할 수 있다.In addition, the controller 120 may store user data in which the bit error is not corrected or corrected in the temporary storage unit 102.

이후, 데이터 송/수신부(116)는 임시 저장부(102)의 비트에러가 정정불능 정보와 적어도 하나 이상의 비트에러가 정정 또는 정정되지 않은 사용자 데이터를 디바이스로 전송한다.Thereafter, the data transmitting / receiving unit 116 transmits the uncorrectable information of the bit error of the temporary storage unit 102 and the user data whose at least one bit error is corrected or not corrected to the device.

이때, 디바이스는 사용자 데이터를 저장 또는 비트에러 정정불능 정보를 사용자가 인지할 수 있도록 디스플레이 수단을 통해 디스플레이할 수 있다.In this case, the device may store the user data or display the bit error correction information through the display means so that the user can recognize the information.

이러한, 제어부(120)는 임시 저장 수단(122), 체크섬 데이터 생성/비교수단(124) 및 데이터 에러 검출/정정 수단(RS-ECC:Reed-Solomon Error Correcting Code)(130)을 포함한다.The controller 120 includes a temporary storage unit 122, a checksum data generation / comparison unit 124, and a data error detection / correction unit (RS-ECC) (Reed-Solomon Error Correcting Code) 130.

임시 저장 수단(122)에는 디바이스의 사용자 데이터, 적어도 하나 이상의 비트에러가 정정 또는 정정되지 않은 사용자 데이터, 관리 데이터, 체크섬 데이터(또는, 올드 체크섬 데이터), ECC 패리티 데이터 및 뉴 체크섬 데이터들이 저장된다.The temporary storage means 122 stores user data of the device, user data for which at least one or more bit errors are corrected or not corrected, management data, checksum data (or old checksum data), ECC parity data, and new checksum data.

또한, 임시 저장 수단(122)에는 비트에러 정정성공 정보 또는 비트에러 정정불능 정보가 저장될 수도 있다.In addition, the bit storage correction information or the bit error correction information may be stored in the temporary storage unit 122.

체크섬 데이터 생성/비교수단(124)은 사용자 데이터 쓰기에 따라 통신부(118)를 통해 수신되는 사용자 데이터와 데이터 에러정정 장치(100)의 관리 데이터에 대한 체크섬 데이터를 생성하여 통신부(118)를 통해 체크섬 데이터 저장영역(112)에 저장하고, 사용자 데이터 읽기에 따라 임시 저장 수단(122)에 저장된 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 또는 사용자 데이터 중에서 적어도 하나 이상의 비트에러가 정정된 경우에 적어도 하나 이상의 비트에러가 정정 또는 정정되지 않은 관리 데이터와 사용자 데이터에 대한 뉴 체크섬 데이터를 생성하여 임시 저장 수단(122)에 저장한다.The checksum data generation / comparison means 124 generates checksum data for the user data received through the communication unit 118 and the management data of the data error correction apparatus 100 according to the writing of the user data and checksum data through the communication unit 118. At least one or more bits when at least one bit error among management data, checksum data, ECC parity data, or user data stored in the data storage area 112 and stored in the temporary storage means 122 is corrected according to reading of the user data. New checksum data for management data and user data with or without errors being corrected are generated and stored in the temporary storage means 122.

또한, 체크섬 데이터 생성/비교수단(124)은 임시 저장 수단(122)에 기 저장된 올드 체크섬 데이터와 뉴 체크섬 데이터를 비교판단하여 같은 경우에 비트에러 정정성공 정보를 생성하여 통신부(118)를 통해 임시 저장부(102)에 저장하고, 다른 경우에는 비트에러 정정불능 정보를 생성하여 통신부(118)를 통해 임시 저장부(102)에 저장한다.In addition, the checksum data generation / comparison means 124 compares the old checksum data and the new checksum data previously stored in the temporary storage means 122 to generate bit error correction success information in the same case, and then temporarily sets the information through the communication unit 118. In other cases, the bit error correction information is generated and stored in the temporary storage unit 102 through the communication unit 118.

이러한, 체크섬 데이터 생성/비교수단(124)은 사용자 데이터 쓰기에 따라 통신부(118)를 통해 수신되는 디바이스의 사용자 데이터 및 데이터 에러정정 장치(100)의 관리 데이터에 대한 체크섬 데이터를 생성하여 통신부(118)를 통해 체크섬 데이터 저장영역(112)에 저장하고, 사용자 데이터 읽기에 따라 임시 저장 수단(122)에 저장된 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 또는 사용자 데이터 중에서 적어도 하나 이상의 비트에러가 정정된 경우에 적어도 하나 이상의 비트에러가 정정 또는 정정되지 않은 관리 데이터와 사용자 데이터에 대한 뉴 체크섬 데이터를 생성하여 임시 저장 수단(122)에 저장하는 체크섬 데이터 생성 모듈(126) 및 사용자 데이터 읽기에 따라 적어도 하나 이상의 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 또는 사용자 데이터 중에서 적어도 하나 이상의 비트에러가 정정된 경우에 적어도 하나 이상의 비트에러가 정정 또는 정정되지 않은 관리 데이터와 사용자 데이터에 대한 뉴 체크섬 데이터를 생성하여 임시 저장 수단(122)에 저장하며 아울러, 임시 저장 수단(122)에 기 저장된 올드 체크섬 데이터와 뉴 체크섬 데이터를 비교판단하여 같은 경우에 비트에러 정정성공 정보를 생성하여 통신부(118)를 통해 임시 저장부(102)에 저장하고, 다른 경우에는 비트에러 정정불능 정보를 생성하여 통신부(118)를 통해 임시 저장부(102)에 저장하는 체크섬 데이터 비교모듈(128)을 포함한다.The checksum data generation / comparison means 124 generates checksum data for the user data of the device received through the communication unit 118 and the management data of the data error correction apparatus 100 according to the writing of the user data, and thereby the communication unit 118. If at least one or more bit errors among the management data, checksum data, ECC parity data, or user data stored in the checksum data storage area 112 and stored in the temporary storage means 122 according to the reading of the user data are corrected. At least one management according to the checksum data generation module 126 and the user data read which generate new checksum data for the management data and the user data which have been corrected or not corrected and stored in the temporary storage means 122 and at least one bit error. Data, checksum data, ECC parity data, or user data In the case where at least one or more bit errors are corrected, new checksum data for the management data and the user data for which the at least one or more bit errors are not corrected or corrected is generated and stored in the temporary storage means 122, and the temporary storage means ( 122, the old checksum data and the new checksum data previously stored are compared to generate bit error correction success information in the same case, and stored in the temporary storage unit 102 through the communication unit 118, otherwise the bit error correction is impossible. The checksum data comparison module 128 generates information and stores the information in the temporary storage unit 102 through the communication unit 118.

한편, 데이터 에러 검출/정정수단(130)은 사용자 데이터 쓰기에 따라 통신부(118)를 통해 수신되는 사용자 데이터, 관리 데이터, 체크섬 데이터 또는 ECC 패리티 데이터에 대한 ECC 패리티 데이터를 생성하여 통신부(118)를 통해 ECC 패리티 데이터 저장 영역(114)에 저장하고, 사용자 데이터 읽기에 따라 통신부(118)를 통해 데이터 저장부(104)로부터 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 또는 사용자 데이터를 순차적으로 읽어 ECC 패리티 데이터를 이용하여 적어도 하나 이상의 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 또는 사용자 데이터에 대하여 적어도 하나 이상의 비트에러 발생 유무를 검출하고 정정한 후, 임시 저장 수단(122)에 저장한다.Meanwhile, the data error detection / correction unit 130 generates the ECC parity data for the user data, the management data, the checksum data, or the ECC parity data received through the communication unit 118 according to the writing of the user data. ECC parity data is stored in the ECC parity data storage area 114 and management data, checksum data, ECC parity data, or user data are sequentially read from the data storage unit 104 through the communication unit 118 according to the user data reading. By using the at least one or more management data, checksum data, ECC parity data or user data to detect and correct the presence of at least one or more bit errors, and stores in the temporary storage means 122.

이러한, 데이터 에러 검출/정정수단(130)은 사용자 데이터 쓰기에 따라 통신부(118)를 통해 수신되는 사용자 데이터, 관리 데이터, 체크섬 데이터 또한 ECC 패리티 데이터에 대한 ECC 패리티 데이터를 생성하여 통신부(118)를 통해 ECC 패리티 데이터 저장 영역(114)에 저장하는 ECC 패리티 데이터 생성모듈(132) 및 사용자 데이터 읽기에 따라 통신부(118)를 통해 데이터 저장부(104)로부터 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 또는 사용자 데이터를 순차적으로 읽어 임시 저장 수단(122)에 저장한 후, ECC 패리티 데이터를 이용하여 적어도 하나 이상의 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 또는 사용자 데이터에 대하여 적어도 하나 이상의 비트에러 발생 유무를 검출하고 정정하여 임시 저장수단(122)에 저장하는 데이터 에러 검출/정정 모듈(134)로 이루어진다.The data error detection / correction unit 130 generates the ECC parity data for the user data, the management data, the checksum data, and the ECC parity data received through the communication unit 118 according to the writing of the user data to communicate the communication unit 118. Management data, checksum data, ECC parity data or user from the data storage unit 104 through the communication unit 118 according to the ECC parity data generation module 132 and the user data read stored in the ECC parity data storage area 114 through After reading the data sequentially and storing it in the temporary storage means 122, using ECC parity data to detect and correct at least one bit error occurrence for at least one or more management data, checksum data, ECC parity data or user data To the data error detection / correction module 134 that is stored in the temporary storage means 122 The lure is.

한편, 데이터 에러 검출/정정 모듈(134)은 ECC 패리티 데이터를 이용하여 임시 저장 수단(122)에 저장된 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 또는 사용자 데이터에 대하여 적어도 하나 이상의 비트에러 발생 유무를 검출하는 데이터 에러 검출 수단(136) 및 데이터 에러 검출 수단(136)에 의해 비트에러가 검출된 적어도 하나 이상의 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 또는 사용자 데이터 중에서 적어도 하나 이상의 비트에러를 정정하는 데이터 에러 정정 수단(138)을 포함한다.On the other hand, the data error detection / correction module 134 detects whether at least one bit error occurs with respect to management data, checksum data, ECC parity data, or user data stored in the temporary storage unit 122 using the ECC parity data. Data error correction means for correcting at least one or more bit errors among at least one or more management data, checksum data, ECC parity data, or user data for which a bit error is detected by the data error detecting means 136 and the data error detecting means 136. (138).

여기서, 데이터 에러 정정 수단(138)은 데이터 에러 검출 수단(136)이 ECC 패리티 데이터를 이용하여 적어도 하나 이상의 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 또는 사용자 데이터에서 비트에러를 검출한 경우에 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 또는 사용자 데이터 중에서 적어도 하나 이상의 비트에러를 정정하는 것이 바람직하다.Here, the data error correction means 138 may be configured to use the management data when the data error detection means 136 detects a bit error in at least one or more management data, checksum data, ECC parity data or user data using the ECC parity data. It is desirable to correct at least one or more bit errors among checksum data, ECC parity data, or user data.

도 2는 본 발명에 따른 플래시 메모리의 데이터 쓰기(Write) 방법을 설명하기 위한 흐름도이다.2 is a flowchart illustrating a data write method of a flash memory according to the present invention.

도 2에서 나타낸 바와 같이, 데이터 에러정정 장치(100)의 데이터 송/수신부(116)는 디바이스(미도시)와 연결된 상태에서 사용자 데이터 쓰기에 따라 디바이스로부터 사용자 데이터를 수신하여 임시 저장부(102)에 저장한다(S200).As shown in FIG. 2, the data transmission / reception unit 116 of the data error correction apparatus 100 receives temporary user data from a device according to user data writing in a state of being connected to a device (not shown) to temporarily store 102. Store in (S200).

여기서, 디바이스는 임베디스 시스템(Embedded Systems), 프로세서(DSP:Digital Signal Processor), 노트북(Notebook), 퍼스널 컴퓨터(PC:Personal Computer) 등 일 수 있다.The device may be an embedded system, a digital signal processor (DSP), a notebook, a personal computer (PC), or the like.

또한, 사용자 데이터는 문서 데이터, 이미지 데이터(Image Data) 또는 각종 디바이스 동작에 필요한 코드(Code), 폰트(Font), 컨텐츠(Contents) 등일 수 있다.In addition, the user data may be document data, image data, codes, fonts, contents, etc. required for various device operations.

다음, 통신부(118)는 임시 저장부(102)에 저장된 사용자 데이터를 제어부(120)의 임시 저장 수단(122)에 저장한다.Next, the communication unit 118 stores the user data stored in the temporary storage unit 102 in the temporary storage unit 122 of the control unit 120.

이때, 제어부(120)는 데이터 에러정정 장치(100)를 관리하기 위한 데이터 저장부(104)의 논리주소가 변환된 물리적 주소의 관리 데이터를 생성하여 임시 저장 수단(122)에 저장한다(S201).At this time, the control unit 120 generates management data of the physical address converted from the logical address of the data storage unit 104 for managing the data error correction apparatus 100 and stores it in the temporary storage means 122 (S201). .

여기서, 관리 데이터는 사용자 데이터가 데이터 저장부(104)로 전송되는 경우에 제어부(120)의 로직(Logic)에 의해 생성될 수 있다.Here, the management data may be generated by logic of the controller 120 when the user data is transmitted to the data storage unit 104.

다음, 제어부(120)의 체크섬 데이터 생성모듈(126)은 사용자 데이터와 관리 데이터의 비트들이 XOR로 연산된 비트들에서 1의 개수 총합인 체크섬 데이터를 생성하여 임시 저장 수단(122)에 저장한다(S202).Next, the checksum data generation module 126 of the control unit 120 generates checksum data which is the sum total of 1 from the bits of the user data and the management data, which are calculated by XOR, and stores the checksum data in the temporary storage means 122 ( S202).

그러면, ECC 패리티 데이터 생성모듈(132)은 사용자 데이터, 관리 데이터 또는 체크섬 데이터에 따른 ECC 패리티 데이터를 생성하여 임시 저장 수단(122)에 저장한다(203).Then, the ECC parity data generation module 132 generates ECC parity data according to the user data, the management data or the checksum data, and stores the ECC parity data in the temporary storage means 122 (203).

여기서, ECC 패리티 데이터는 사용자 데이터, 관리 데이터, 체크섬 데이터 및 자기 자신 즉, ECC 패리티 데이터에 대한 데이터인 것이 바람직하다.Here, the ECC parity data is preferably user data, management data, checksum data, and data about oneself, that is, ECC parity data.

이러한, ECC 패리티 데이터는 데이터 에러정정 장치(100)에서 데이터 송/수신부(116)와 연결된 디바이스 간에 송/수신되는 사용자 데이터, 관리 데이터, 체크섬 데이터 또는 ECC 패리티 데이터 중에서 적어도 하나 이상의 비트에러가 발생했을 때 이를 검출하여 정정하기 위한 것으로, 해밍 코드(Hamming Code)인 리드 솔로몬 에러 정정 코드(RS-ECC:Reed-Solomon Error Correcting Code)를 사용한다.In the ECC parity data, at least one bit error occurred among user data, management data, checksum data, or ECC parity data transmitted / received between the device connected to the data transmission / reception unit 116 in the data error correction apparatus 100. In order to detect and correct the error, a Reed-Solomon Error Correcting Code (RS-ECC), which is a Hamming code, is used.

이 후, 제어부(120)는 임시 저장 수단(122)에 저장된 사용자 데이터, 관리 데이터, 체크섬 데이터 및 ECC 패리티 데이터를 데이터 저장부(104)의 사용자 데이터 저장수단(106), 관리 데이터 저장 영역(110), 체크섬 데이터 저장영역(112) 및 ECC 패리티 데이터 저장영역(114)에 각각 저장한다(S204).Thereafter, the controller 120 stores the user data, the management data, the checksum data, and the ECC parity data stored in the temporary storage means 122, the user data storage means 106 of the data storage unit 104, and the management data storage area 110. Are stored in the checksum data storage area 112 and the ECC parity data storage area 114 (S204).

도 3은 본 발명에 따른 플래시 메모리의 데이터 읽기(Read) 방법을 설명하기 위한 흐름도이다.3 is a flowchart illustrating a data read method of a flash memory according to the present invention.

도 3에서 나타낸 바와 같이, 데이터 에러정정 장치(100)의 데이터 송/수신부(116)와 디바이스가 연결된 상태에서 데이터 저장부(104)의 사용자 데이터 읽기에 따라 제어부(120)는 스페어 저장수단(108)의 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 및 사용자 데이터 저장수단(106)의 사용자 데이터를 순차적으로 읽어 임시 저장 수단(122)에 저장한다(S300).As shown in FIG. 3, in response to reading of the user data of the data storage unit 104 while the device is connected to the data transmission / reception unit 116 of the data error correction apparatus 100, the controller 120 stores the spare storage unit 108. Management data, checksum data, ECC parity data, and user data of the user data storage means 106 are sequentially read and stored in the temporary storage means 122 (S300).

이 후, 데이터 에러 검출/정정수단(130)의 데이터 에러 검출 수단(136)은 ECC 패리티 데이터를 이용하여 적어도 하나 이상의 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 및 사용자 데이터에서 적어도 하나 이상의 비트에러 발생 유무를 확인한다(S301).Thereafter, the data error detection unit 136 of the data error detection / correction unit 130 uses ECC parity data to generate at least one bit error in at least one or more management data, checksum data, ECC parity data, and user data. Check (S301).

만일, 상기한 단계 (S301)에서 ECC 패리티 데이터 검색결과 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 및 사용자 데이터에서 적어도 하나 이상의 비트에러가 발생되지 않은 경우에, 데이터 에러 검출 수단(136)은 임시 저장 수단(122)의 사용자 데이터를 통신부(118)를 통해 임시 저장부(102)에 저장한다.If at least one bit error has not occurred in the ECC parity data search result management data, the checksum data, the ECC parity data, and the user data in step S301, the data error detecting means 136 is a temporary storage means. User data of 122 is stored in the temporary storage unit 102 via the communication unit 118.

다음, 데이터 송/수신부(116)는 임시 저장부(102)의 사용자 데이터를 디바이스로 전송한다(S302).Next, the data transmission / reception unit 116 transmits user data of the temporary storage unit 102 to the device (S302).

이때, 디바이스는 데이터 에러정정 장치(100)로부터 사용자 데이터를 수신하여 저장 또는 사용자가 인지할 수 있도록 디스플레이 수단을 통해 디스플레이시킬 수 있다.In this case, the device may receive the user data from the data error correction apparatus 100 and display the user data through the display means so as to be stored or recognized by the user.

만일, 상기한 단계 (S301)에서 ECC 패리티 데이터 검색결과, 적어도 하나 이상의 비트에러가 발생된 경우에, 데이터 에러 검출 수단(136)은 비트에러 검출 정보를 데이터 에러 정정 수단(138)으로 전송한다.If at least one bit error occurs as a result of the ECC parity data search in step S301, the data error detecting means 136 transmits the bit error detecting information to the data error correcting means 138.

이때, 데이터 에러 정정 수단(138)은 적어도 하나 이상의 비트에러가 발생된 적어도 하나 이상의 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 또는 사용자 데이터에서 발생된 적어도 하나 이상의 비트에러를 순차적으로 정정한 후, 임시 저장 수단(122)에 저장한다(S303).In this case, the data error correcting means 138 sequentially corrects at least one or more bit errors generated from at least one or more management data, checksum data, ECC parity data, or user data from which at least one or more bit errors are generated, and then temporarily stores them. It stores in the means 122 (S303).

다음, 체크섬 데이터 생성 모듈(126)은 적어도 하나 이상의 비트에러가 정정 또는 정정되지 않은 관리 데이터 및 사용자 데이터에 대한 뉴 체크섬 데이터를 생성하여 임시 저장 수단(122)에 저장한다(S304).Next, the checksum data generation module 126 generates new checksum data for management data and user data in which at least one or more bit errors are corrected or not corrected, and stores the new checksum data in the temporary storage means 122 (S304).

여기서, 뉴 체크섬 데이터는 적어도 하나 이상의 비트에러가 정정 또는 정정 되지 않은 사용자 데이터 및 관리 데이터의 비트들이 XOR로 연산된 비트들에서 1의 개수 총합으로 형성된다.Here, the new checksum data is formed as the sum of the number of 1s in the bits of the user data and the management data in which at least one or more bit errors are corrected or not corrected.

그러면, 체크섬 데이터 비교모듈(128)은 임시 저장 수단(122)에 기 저장된 올드 체크섬 데이터와 뉴 체크섬 데이터가 같은지 비교판단한다(S305).Then, the checksum data comparison module 128 compares the old checksum data and the new checksum data previously stored in the temporary storage means 122 to determine whether the same (S305).

만일, 상기한 단계 (S305)에서 비교판단 결과 뉴(new) 체크섬 데이터와 올드 체크섬 데이터가 같은 경우에, 체크섬 데이터 비교모듈(128)은 데이터 에러 정정 성공 정보를 생성하여 통신부(118)를 통해 임시 저장부(102)에 저장한다.If the result of the comparison determination in step S305 is that the new checksum data and the old checksum data are the same, the checksum data comparison module 128 generates data error correction success information and temporarily transmits the information through the communication unit 118. The storage unit 102 stores.

또한, 체크섬 데이터 비교모듈(128)은 임시 저장 수단(122)의 비트에러가 정정 또는 정정되지 않은 사용자 데이터를 통신부(118)를 통해 임시 저장부(102)에 저장할 수도 있다.In addition, the checksum data comparison module 128 may store user data in which the bit error of the temporary storage unit 122 is corrected or not corrected in the temporary storage unit 102 through the communication unit 118.

이후, 데이터 송/신부(116)는 임시 저장부(102)의 데이터 에러 정정 성공 정보와 비트에러가 정정 또는 정정되지 않은 사용자 데이터를 디바이스로 전송한다(S306).Thereafter, the data transmission / reception unit 116 transmits data error correction success information of the temporary storage unit 102 and user data whose bit error is not corrected or corrected to the device (S306).

이때, 디바이스는 데이터 에러정정 성공 정보 또는 비트에러가 정정 또는 정정되지 않은 사용자 데이터를 저장하거나 사용자가 인지할 수 있도록 디스플레이 수단을 통해 디스플레이시킬 수 있다.In this case, the device may store or display the data error correction success information or the user data in which the bit error is corrected or not corrected through the display means.

만일, 상기한 단계 (S305)에서 비교판단 결과 뉴(new) 체크섬 데이터와 올드 체크섬 데이터가 같지 않은 경우에 체크섬 데이터 비교모듈(128)은 데이터 에러 정정 불능 정보를 생성하여 통신부(118)를 통해 임시 저장부(102)에 저장한다.If the result of the comparison determination in step S305 is not the same as the new checksum data and the old checksum data, the checksum data comparison module 128 generates data error correction impossibility information and temporarily transmits the data through the communication unit 118. The storage unit 102 stores.

또한, 체크섬 데이터 비교모듈(128)은 비트 에러가 정정 또는 정정되지 않은 사용자 데이터를 임시 저장부(102)에 저장할 수도 있다.In addition, the checksum data comparison module 128 may store the user data in which the bit error is corrected or not corrected in the temporary storage unit 102.

이 후, 데이터 송/수신부(116)는 임시 저장부(102)의 데이터 에러 정정 불능 정보와 비트에러가 정정 또는 정정되지 않은 사용자 데이터를 디바이스로 전송한다(S307).Thereafter, the data transmission / reception unit 116 transmits data error correction impossible information of the temporary storage unit 102 and user data whose bit error is not corrected or corrected to the device (S307).

이때, 디바이스는 데이터 에러정정 성공 정보 또는 비트에러가 정정 또는 정정되지 않은 사용자 데이터를 저장하거나 사용자가 인지할 수 있도록 디스플레이 수단을 통해 디스플레이시킬 수 있다.In this case, the device may store or display the data error correction success information or the user data in which the bit error is corrected or not corrected through the display means.

상기한 바와 같이, 플래시 메모리의 데이터 에러정정 장치(100)는 적어도 하나 이상의 데이터에서 적어도 하나 이상의 비트에러를 검출하여 정정한 경우에 뉴 체크섬 데이터를 생성하고, 뉴 체크섬 데이터가 기 저장된 올드 체크섬과 같은지 비교판단하여 그 결과에 따라 "데이터 에러 정정성공 정보" 또는 "데이터 에러 정정불능 정보"를 디바이스로 전송함으로써, 디바이스에서 "데이터 에러 정정성공 정보" 또는 "데이터 에러 정정불능 정보"를 확인할 수 있어 플래시 메모리의 신뢰성을 향상시킬 수 있다.As described above, the data error correction apparatus 100 of the flash memory generates new checksum data when detecting and correcting at least one or more bit errors in at least one or more data, and checks whether the new checksum data is the same as the old checksum previously stored. By comparing and transmitting "Data Error Correction Success Information" or "Data Error Correction Information" to the device according to the result of the comparison, the "Data Error Correction Success Information" or "Data Error Correction Information" can be confirmed by the device and flash The reliability of the memory can be improved.

이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석 되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical idea of the present invention, and those skilled in the art to which the present invention pertains may make various modifications and changes without departing from the essential characteristics of the present invention. Therefore, the embodiments disclosed in the present invention are not intended to limit the technical idea of the present invention but to describe the present invention, and the scope of the technical idea of the present invention is not limited by these embodiments. The protection scope of the present invention should be interpreted by the following claims, and all technical ideas within the equivalent scope should be interpreted as being included in the scope of the present invention.

도 1은 본 발명에 따른 플래시 메모리의 데이터 에러 정정장치를 나타낸 블록도.1 is a block diagram showing a data error correction apparatus of a flash memory according to the present invention.

도 2는 본 발명에 따른 플래시 메모리의 데이터 쓰기(Write) 방법을 설명하기 위한 흐름도.2 is a flowchart illustrating a data write method of a flash memory according to the present invention.

도 3은 본 발명에 따른 플래시 메모리의 데이터 읽기(Read) 방법을 설명하기 위한 흐름도.3 is a flowchart illustrating a data read method of a flash memory according to the present invention.

< 도면의 주요 부분에 대한 부호의 설명 ><Description of Symbols for Main Parts of Drawings>

100 : 데이터 에러정정 장치 102 : 임시 저장부100: data error correction device 102: temporary storage unit

104 : 데이터 저장부 106 : 사용자 데이터 저장수단104: data storage unit 106: user data storage means

108 : 스페어 저장수단 110 : 관리 데이터 저장영역108: spare storage means 110: management data storage area

112 : 체크섬 데이터 저장영역 114 : ECC 패리티 데이터 저장영역112: checksum data storage area 114: ECC parity data storage area

116 : 데이터 송/수신부 118 : 통신부116: data transmission and reception unit 118: communication unit

120 : 제어부 122 : 임시 저장 수단120: control unit 122: temporary storage means

124 : 체크섬 데이터 생성/비교수단 126 : 체크섬 데이터 생성 모듈124: checksum data generation / comparison means 126: checksum data generation module

128 : 체크섬 데이터 비교 모듈 130 : 데이터 에러 검출/정정 수단128: checksum data comparison module 130: data error detection / correction means

132 : ECC 패리티 데이터 생성모듈 134 : 데이터 에러 검출/정정 모듈132: ECC parity data generation module 134: Data error detection / correction module

136 : 데이터 에러 검출 수단 138 : 데이터 에러 정정 수단136: data error detection means 138: data error correction means

Claims (21)

사용자 데이터, 관리 데이터, 체크섬 데이터 및 ECC 패리티 데이터가 저장되는 데이터 저장부;A data storage unit for storing user data, management data, checksum data, and ECC parity data; 디바이스와 연결되어 상기 사용자 데이터, 데이터 에러 정정성공 정보 및 데이터 에러 정정불능 정보를 송수신하는 데이터 송/수신부; 및A data transmission / reception unit connected to a device to transmit / receive the user data, data error correction success information, and data error correction non-correction information; And 상기 사용자 데이터 읽기에 따라 상기 데이터들을 읽고, 상기 ECC 패리티 데이터를 이용하여 적어도 하나 이상의 상기 데이터에 대하여 적어도 하나 이상의 비트에러 발생 유무를 검출하며, 적어도 하나 이상의 상기 데이터에서 적어도 하나 이상의 비트에러가 검출된 경우 상기 비트에러를 정정하는 데이터 에러 검출/정정 수단과, 상기 데이터 에러 검출/정정 수단이 상기 데이터의 상기 비트에러를 정정한 경우에 상기 비트에러가 정정 또는 정정되지 않은 상기 사용자 데이터 및 상기 관리 데이터에 대한 뉴 체크섬 데이터를 생성하고, 상기 뉴 체크섬 데이터와 상기 체크섬 데이터가 같은 경우에 상기 데이터 에러 정정성공 정보를 생성한 후, 상기 적어도 하나 이상의 비트에러가 정정 또는 정정되지 않은 상기 사용자 데이터와 상기 데이터 에러 정정성공 정보를 상기 데이터 송/수신부를 통해 상기 디바이스로 전송하는 체크섬 데이터 생성/비교 수단으로 이루어진 제어부를 포함하는 플래시 메모리의 데이터 에러 정정장치.Read the data according to the reading of the user data, detect whether at least one bit error occurs for at least one or more of the data using the ECC parity data, and detect at least one bit error in at least one or more of the data Data error detection / correction means for correcting the bit error, and the user data and management data for which the bit error is not corrected or corrected when the data error detection / correction means corrects the bit error of the data. After generating new checksum data for the data stream and generating the data error correction success information when the new checksum data and the checksum data are the same, the user data and the data in which the at least one or more bit errors are not corrected or corrected. Error correction Ball information, the data transmitting / receiving data, the error correction device of a flash memory that includes a control unit consisting of a checksum data generating / comparing means for transmitting to the device over. 제1항에 있어서,The method of claim 1, 상기 체크섬 데이터 생성/비교 수단은The checksum data generating / compare means 상기 뉴 체크섬 데이터와 상기 체크섬 데이터가 같지 않은 경우에 상기 데이터 에러 정정불능 정보를 생성한 후, 상기 적어도 하나 이상의 비트에러가 정정 또는 정정되지 않은 상기 사용자 데이터와 상기 데이터 에러 정정불능 정보를 상기 데이터 송/수신부를 통해 상기 디바이스로 전송하는 플래시 메모리의 데이터 에러 정정장치.After generating the data error uncorrectable information when the new checksum data and the checksum data are not the same, the user data and the data error uncorrectable information on which the at least one or more bit errors are corrected or not corrected are transmitted. / Data error correction apparatus of the flash memory for transmitting to the device via the receiver. 제1항에 있어서,The method of claim 1, 상기 체크섬 데이터 생성/비교 수단은The checksum data generating / compare means 상기 사용자 데이터 쓰기에 따라 상기 데이터 송/수신부를 통해 상기 디바이스로부터 상기 사용자 데이터를 수신하고, 상기 사용자 데이터와 상기 사용자 데이터가 수신됨 따라 상기 제어부에서 생성된 상기 관리 데이터에 대한 상기 체크섬 데이터를 생성하여 상기 데이터 저장부에 저장하며,The user data is received from the device through the data transmitter / receiver according to the writing of the user data, and the checksum data of the management data generated by the controller is generated by receiving the user data and the user data. Stored in the data storage unit, 상기 데이터 에러 검출/정정 수단은The data error detection / correction means 상기 사용자 데이터 쓰기에 따라 상기 사용자 데이터, 상기 관리 데이터 또는 상기 체크섬 데이터에 대한 ECC 패리티 데이터를 생성하여 상기 데이터 저장부에 저장하는 플래시 메모리의 데이터 에러 정정장치.And an ECC parity data of the user data, the management data, or the checksum data is stored in the data storage unit according to the writing of the user data. 제1항에 있어서,The method of claim 1, 상기 데이터 에러 검출/정정 수단은The data error detection / correction means 적어도 하나 이상의 상기 데이터에서 적어도 하나 이상의 비트에러가 검출되지 않은 경우에 상기 사용자 데이터를 상기 데이터 송/수신부를 통해 상기 디바이스로 전송하는 플래시 메모리의 데이터 에러 정정장치.And transmitting the user data to the device through the data transmitter / receiver when at least one bit error is not detected in at least one of the data. 제1항 또는 제3항에 있어서,The method according to claim 1 or 3, 상기 체크섬 데이터는The checksum data is 상기 사용자 데이터 및 상기 관리 데이터의 비트들이 XOR로 연산된 비트들에서 1의 개수 총합인 플래시 메모리의 데이터 에러 정정장치.And the bits of the user data and the management data are the sum of the number of 1s in the bits calculated by XOR. 제1항에 있어서,The method of claim 1, 상기 뉴 체크섬 데이터는The new checksum data is 적어도 하나 이상의 비트에러가 정정 또는 정정되지 않은 상기 사용자 데이터 및 상기 관리 데이터의 비트들이 XOR로 연산된 비트들에서 1의 개수 총합인 플래시 메모리의 데이터 에러 정정장치.At least one bit error is corrected or uncorrected, wherein the bits of the user data and the management data are the sum of the number of 1s in the bits calculated by XOR. 제1 항에 있어서,According to claim 1, 상기 데이터 저장부는The data storage unit 상기 사용자 데이터가 저장되는 사용자 데이터 저장 수단과,User data storage means for storing the user data; 상기 관리 데이터, 상기 체크섬 데이터 및 상기 ECC 패리티 데이터가 저장되는 스페어 저장수단으로 이루어지고,A spare storage means for storing the management data, the checksum data, and the ECC parity data; 상기 스페어 저장수단은The spare storage means 상기 관리 데이터가 저장되는 관리 데이터 저장영역; 상기 체크섬 데이터가 저장되느 체크섬 데이터 저장영역; 및 상기 ECC 패리티 데이터가 저장되는 ECC 패리티 저장영역을 포함하는 플래시 메모리의 데이터 에러 정정장치.A management data storage area in which the management data is stored; A checksum data storage area in which the checksum data is stored; And an ECC parity storage area in which the ECC parity data is stored. 제7항에 있어서,The method of claim 7, wherein 상기 사용자 데이터 저장 수단은 512 바이트의 저장공간으로 형성되고,The user data storage means is formed of a storage space of 512 bytes, 상기 스페어 저장부는 16 바이트의 저장공간으로 형성되며,The spare storage unit is formed of a storage space of 16 bytes, 상기 관리 데이터 저장영역은 6 바이트의 저장공간으로 형성되며,The management data storage area is formed of a storage space of 6 bytes, 상기 체크섬 데이터 저장영역은 1 바이트의 저장공간으로 형성되며,The checksum data storage area is formed of a storage space of 1 byte, 상기 ECC 패리티 데이터 저장영역은 9 바이트의 저장공간으로 형성되는 플래시 메모리의 데이터 에러 정정장치.And an ECC parity data storage area formed of 9 bytes of storage space. 제1항에 있어서,The method of claim 1, 상기 사용자 데이터, 상기 데이터 에러 정정성공 정보 및 상기 데이터 에러 정정불능 정보를 임시 저장하는 임시 저장부 또는,A temporary storage unit for temporarily storing the user data, the data error correcting information and the data error correcting information, or 상기 데이터들, 상기 데이터 에러 정정성공 정보 및 상기 데이터 에러 정정불능 정보를 송수신하는 통신부를 더 포함하는 플래시 메모리의 데이터 에러 정정장치.And a communication unit configured to transmit and receive the data, the data error correcting success information, and the data error correctable information. 제1항에 있어서,The method of claim 1, 상기 제어부는The control unit 상기 데이터들, 상기 데이터 에러 정정성공 정보 및 상기 데이터 에러 정정불능 정보를 임시 저장하는 임시 저장수단을 더 포함하는 플래시 메모리의 데이터 에러 정정장치.And temporary storage means for temporarily storing the data, the data error correcting information and the data error correcting information. 제1항 내지 제3항 중 어느 한 항에 있어서,The method according to any one of claims 1 to 3, 상기 체크섬 데이터 생성/비교 수단은The checksum data generating / compare means 상기 사용자 데이터 읽기에 따라 적어도 하나 이상의 상기 데이터에 대하여 적어도 하나 이상의 비트에러가 정정된 경우, 적어도 하나 이상의 비트에러가 정정 또는 정정되지 않은 상기 사용자 데이터 및 상기 관리 데이터를 이용하여 상기 뉴 체크섬 데이터를 생성하고, 상기 사용자 데이터 쓰기에 따라 상기 수신되는 상기 사용자 데이터 및 상기 관리 데이터에 따른 상기 체크섬 데이터를 생성하여 상기 데이터 저장부에 저장하는 체크섬 데이터 생성모듈과,When the at least one bit error is corrected for at least one of the data according to the reading of the user data, the new checksum data is generated using the user data and the management data in which at least one or more bit errors are corrected or not corrected. A checksum data generation module configured to generate the checksum data according to the received user data and the management data and store the checksum data according to the user data write; 상기 뉴 체크섬 데이터와 상기 체크섬 데이터가 같은지 비교판단하고 그에 따라 상기 데이터 에러 정정성공 정보 또는 상기 데이터 에러 정정불능 정보를 생성하는 체크섬 데이터 비교모듈을 포함하는 플래시 메모리의 데이터 에러 정정장치.And a checksum data comparison module for comparing and determining whether the new checksum data and the checksum data are the same and thereby generating the data error correction success information or the data error correctability information. 제3항 또는 제4항에 있어서,The method according to claim 3 or 4, 상기 데이터 에러 검출/정정 수단은The data error detection / correction means 상기 사용자 데이터, 상기 관리 데이터 및 상기 체크섬 데이터에 대한 상기 ECC 패리티 데이터를 생성하여 상기 데이터 저장부에 저장하는 ECC 패리티 데이터 생성모듈과,An ECC parity data generation module configured to generate the ECC parity data for the user data, the management data, and the checksum data and store the ECC parity data in the data storage unit; 상기 ECC 패리티 데이터를 이용하여 상기 적어도 하나 이상의 데이터에 대하여 적어도 하나 이상의 비트에러의 발생 유무를 검출하여 정정하는 데이터 에러 검출/정정 모듈을 포함하는 플래시 메모리의 데이터 에러 정정장치.And a data error detection / correction module for detecting and correcting at least one bit error with respect to the at least one data using the ECC parity data. 제12항에 있어서,The method of claim 12, 상기 데이터 에러 검출/정정 모듈은The data error detection / correction module 상기 ECC 패리티 데이터를 이용하여 상기 적어도 하나 이상의 데이터에 대하여 적어도 하나 이상의 비트에러 발생 유무를 검출하는 데이터 에러 검출수단과,Data error detecting means for detecting whether at least one or more bit errors occur in the at least one or more data using the ECC parity data; 상기 데이터 에러 검출수단이 상기 적어도 하나 이상의 데이터에서 적어도 하나 이상의 비트에러를 검출한 경우에 적어도 하나 이상의 비트에러를 정정하는 데이터 에러정정 수단을 포함하는 플래시 메모리의 데이터 에러 정정장치.And data error correcting means for correcting at least one or more bit errors when the data error detecting means detects at least one or more bit errors in the at least one or more data. 제3항에 있어서,The method of claim 3, 상기 ECC 패리티 데이터는The ECC parity data is 상기 사용자 데이터, 상기 관리 데이터, 상기 체크섬 데이터 및 상기 ECC 패리티 데이터에 대한 데이터인 플래시 메모리의 데이터 에러 정정장치.And a data error correction device of the flash memory which is data for the user data, the management data, the checksum data, and the ECC parity data. 제1항에 있어서,The method of claim 1, 상기 데이터 에러 검출/정정 수단은The data error detection / correction means 상기 관리 데이터, 상기 체크섬 데이터, 상기 ECC 패리티 데이터 및 상기 사용자 데이터 순으로 읽는 플래시 메모리의 데이터 에러 정정장치.And a data error correction device of a flash memory that reads the management data, the checksum data, the ECC parity data, and the user data. 사용자 데이터 읽기에 따라 사용자 데이터, 관리 데이터, 체크섬 데이터 및 ECC 패리티 데이터가 저장되어 있는 데이터 저장부로부터 상기 데이터를 읽는 단계와,Reading the data from a data storage unit storing user data, management data, checksum data, and ECC parity data according to reading user data; 상기 ECC 패리티 데이터를 이용하여 상기 적어도 하나 이상의 데이터에 대하여 적어도 하나 이상의 비트에러 발생 유무를 검출하는 단계와,Detecting the presence or absence of at least one bit error with respect to the at least one data using the ECC parity data; 상기 데이터에서 적어도 하나 이상의 비트에러가 검출된 경우에 상기 비트에러가 검출된 적어도 하나 이상의 데이터에 대하여 상기 비트에러를 정정하는 단계와,Correcting the bit error with respect to the at least one or more data in which the bit error is detected when at least one or more bit errors are detected in the data; 상기 비트에러가 정정 또는 정정되지 않은 상기 사용자 데이터 및 상기 관리 데이터에 대한 뉴 체크섬 데이터를 생성하는 단계와,Generating new checksum data for the user data and the management data with or without the bit error corrected; 상기 뉴 체크섬 데이터와 상기 체크섬 데이터가 같은 경우에 데이터 에러 정정성공 정보를 생성한 후, 상기 데이터 에러 정정성공 정보와 상기 적어도 하나 이상의 비트에러가 정정 또는 정정되지 않은 상기 사용자 데이터를 디바이스로 전송하는 단계를 포함하는 플래시 메모리의 데이터 에러 정정방법.Generating data error correction success information when the new checksum data and the checksum data are the same, and then transmitting the data error correction success information and the user data whose at least one or more bit errors are not corrected or corrected to a device; Data error correction method of the flash memory comprising a. 제16항에 있어서,The method of claim 16, 상기 적어도 하나 이상의 데이터에서 적어도 하나 이상의 비트에러 검출되지 않은 경우에 상기 사용자 데이터를 상기 디바이스로 전송하는 단계를 더 포함하는 플래시 메모리의 데이터 에러 정정방법.And transmitting the user data to the device when at least one or more bit errors are not detected in the at least one or more data. 제16항에 있어서,The method of claim 16, 상기 뉴 체크섬 데이터와 상기 체크섬 데이터가 같지 않은 경우에 데이터 에러 정정불능 정보를 생성한 후, 상기 데이터 에러 정정불능 정보와 상기 적어도 하나 이상의 비트에러가 정정 또는 정정되지 않은 상기 사용자 데이터를 디바이스로 전송하는 단계를 더 포함하는 플래시 메모리의 데이터 에러 정정방법.Generating data error correctable information when the new checksum data and the checksum data are not the same, and then transmitting the data error correctable information and the user data whose at least one or more bit errors are not corrected or corrected to a device; And correcting the data error of the flash memory. 제16항에 있어서,The method of claim 16, 상기 사용자 데이터 쓰기에 따라 상기 디바이스로부터 상기 사용자 데이터를 수신하는 단계와,Receiving the user data from the device according to the writing of the user data; 상기 사용자 데이터가 수신됨에 따라 상기 관리 데이터를 생성하는 단계와,Generating the management data as the user data is received; 상기 사용자 데이터 및 상기 관리 데이터에 대한 상기 체크섬 데이터를 생성하는 단계와,Generating the checksum data for the user data and the management data; 상기 사용자 데이터, 상기 관리 데이터 및 상기 체크섬 데이터에 대한 ECC 패리티 데이터를 생성하는 단계와,Generating ECC parity data for the user data, the management data and the checksum data; 상기 데이터들을 상기 데이터 저장부에 저장하는 단계를 더 포함하는 플래시 메모리의 데이터 에러 정정방법.And storing the data in the data storage unit. 제16항에 있어서,The method of claim 16, 상기 체크섬 데이터는The checksum data is 상기 사용자 데이터 및 상기 관리 데이터의 비트들이 XOR로 연산된 비트들에서 1의 개수 총합이고,The bits of the user data and the management data are the sum of the number of 1s in the bits calculated by XOR, 상기 뉴 체크섬 데이터는The new checksum data is 적어도 하나 이상의 비트에러가 정정 또는 정정되지 않은 상기 사용자 데이터 및 상기 관리 데이터의 비트들이 XOR로 연산된 비트들에서 1의 개수 총합인 플래시 메모리의 데이터 에러 정정방법.And at least one bit error is corrected or corrected, wherein the bits of the user data and the management data are the sum of the number of 1s in the bits calculated by XOR. 제16항에 있어서,The method of claim 16, 상기 사용자 데이터 읽기에 따라 상기 데이터 저장부로부터 상기 관리 데이터, 상기 체크섬 데이터, 상기 ECC 패리티 데이터 및 상기 사용자 데이터 순으로 읽는 플래시 메모리의 데이터 에러 정정방법.And a data error correction method of the flash memory which reads the management data, the checksum data, the ECC parity data, and the user data in order from the data storage unit according to the user data reading.
KR1020080009805A 2008-01-30 2008-01-30 Data error correction device and method for flash memory KR100982580B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080009805A KR100982580B1 (en) 2008-01-30 2008-01-30 Data error correction device and method for flash memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080009805A KR100982580B1 (en) 2008-01-30 2008-01-30 Data error correction device and method for flash memory

Publications (2)

Publication Number Publication Date
KR20090083799A true KR20090083799A (en) 2009-08-04
KR100982580B1 KR100982580B1 (en) 2010-09-15

Family

ID=41204534

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080009805A KR100982580B1 (en) 2008-01-30 2008-01-30 Data error correction device and method for flash memory

Country Status (1)

Country Link
KR (1) KR100982580B1 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3233079B2 (en) * 1997-09-30 2001-11-26 ソニー株式会社 Data processing system and data processing method
US6167551A (en) * 1998-07-29 2000-12-26 Neomagic Corp. DVD controller with embedded DRAM for ECC-block buffering
KR100577988B1 (en) * 2003-12-24 2006-05-11 주식회사 포인칩스 Flash Memory Having Enhanced Error Detection Capability and Method for Detecting Multi-Bit Errors

Also Published As

Publication number Publication date
KR100982580B1 (en) 2010-09-15

Similar Documents

Publication Publication Date Title
US8429468B2 (en) System and method to correct data errors using a stored count of bit values
US8479077B2 (en) Memory device and bit error detection method thereof
CN105788648B (en) NVM bad block identification processing and error correction method and system based on heterogeneous hybrid memory
US8539313B2 (en) System and method of data encoding
US8812935B2 (en) Using a data ECC to detect address corruption
US7613982B2 (en) Data processing apparatus and method for flash memory
US9778985B1 (en) Operating method of data storage device
US7672162B2 (en) Non-volatile memory device, memory system, and LSB read method
US8055983B2 (en) Data writing method for flash memory and error correction encoding/decoding method thereof
US10977116B2 (en) Data access method, memory control circuit unit and memory storage device
JP2002133892A (en) Defect control method for flash memory
TW201346923A (en) Erasure correction using single error detection parity
US8347183B2 (en) Flash memory device using ECC algorithm and method of operating the same
KR20150008393A (en) Reading data from a multi-level cell memory
US20110060965A1 (en) Semiconductor memory device and data processing method thereof
US20100287448A1 (en) Flash memory device with rectifiable redundancy bit and method of controlling the same
CN111580741B (en) Data writing method, memory control circuit unit and memory storage device
US20130047056A1 (en) Flash memory device with rectifiable redundancy and method of controlling the same
CN112051963B (en) Data writing method, memory control circuit unit and memory storage device
US20130104003A1 (en) Memory system and method for recording/reproducing data thereof
US10713160B1 (en) Data writing method, memory control circuit unit and memory storage device
KR100982580B1 (en) Data error correction device and method for flash memory
KR20050064887A (en) Flash memory having enhanced error detection capability and method for detecting multi-bit errors
JP2012003569A (en) Memory controller, flash memory system including memory controller, and method of controlling flash memory
US10936248B2 (en) Data writing method with verifying a part of data, memory controlling circuit unit and memory storage 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: 20130822

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150828

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160816

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190828

Year of fee payment: 10