KR20090083799A - Data error correction device and method for flash memory - Google Patents
Data error correction device and method for flash memory Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
Description
본 발명은 플래시 메모리의 데이터 에러 정정장치 및 방법에 관한 것이다.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
먼저, 데이터 에러정정 장치(100)의 임시 저장부(102)에는 디바이스의 사용자 데이터, 제어부(120)에서 적어도 하나 이상의 비트에러가 정정 또는 정정되지 않은 사용자 데이터, 비트에러 정정성공 정보 또는 비트에러 정정불능 정보 등이 임시 저장된다.First, the
데이터 저장부(104)에는 사용자 데이터, 데이터 에러정정 장치(100)의 관리 데이터, 체크섬 데이터(Checksum Data), ECC 패리티 데이터(Error Correcting Code Parity Parity Data) 등이 저장된다.The
여기서, 데이터 저장부(104)는 플래시 메모리(Flash Memory)인 것이 바람직하다.In this case, the
이러한, 데이터 저장부(104)는 512 바이트(byte)의 사용자 데이터 저장수단(106)과 16 바이트의 스페어 저장수단(108)으로 이루어진다.This
사용자 데이터 저장수단(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
먼저, 관리 데이터 저장영역(110)에는 데이터 에러정정 장치(100)를 관리하기 위한 데이터 저장부(104)의 논리주소가 변환된 물리적 주소의 관리 데이터가 저장된다.First, the management
여기서, 관리 데이터는 사용자 데이터가 데이터 저장부(104)로 전송되는 경우에 제어부(120)의 로직(Logic)에서 생성된다.Here, the management data is generated in the logic of the
또한, 체크섬 데이터 저장영역(112)에는 사용자 데이터 및 관리 데이터의 비트들이 XOR로 연산된 비트들(예컨대, 0110110)에서 1의 개수 총합(예컨대, 4)인 체크섬 데이터가 저장된다.In addition, the checksum
한편, ECC 패리티 데이터 저장영역(114)에는 사용자 데이터, 관리 데이터 또 는 체크섬 데이터에 대한 ECC 패리티 데이터가 저장된다.Meanwhile, the ECC parity
여기서, 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 /
데이터 송/수신부(116)는 디바이스와 연결되어 사용자 데이터, 비트에러가 정정 또는 정정되지 않은 사용자 데이터, 비트에러 정정성공 정보 또는 비트에러 정정불능 정보를 송/수신한다.The data transmitting / receiving
여기서, 디바이스는 임베디스 시스템(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
그리고, 제어부(120)는 사용자 데이터 쓰기(Write) 동작시 통신부(118)를 통해 수신되는 사용자 데이터, 데이터 에러정정 장치(100)의 관리 데이터, 사용자 데이터와 관리 데이터에 대한 체크섬 데이터, 사용자 데이터, 관리 데이터 또는 체크섬 데이터에 대한 ECC 패리티 데이터를 생성하여 통신부(118)를 통해 데이터 저장부(104)에 저장한다.In addition, the
여기서, 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
또한, 제어부(120)는 사용자 데이터 읽기(Read)에 따라 통신부(118)를 통해 데이터 저장부(104)로부터 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 및 사용자 데이터를 순차적으로 읽은 후, ECC 패리티 데이터를 이용하여 적어도 하나 이상의 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 및 사용자 데이터에서 적어도 하나 이상의 비트에러 발생 유무를 검출하며, 검출결과 비트에러가 발생되지 않은 경우에 사용자 데이터를 통신부(118)를 통해 임시 저장부(102)에 저장한다.In addition, the
이 후, 데이터 송/수신부(116)는 임시 저장부(102)의 사용자 데이터를 디바이스로 전송한다.Thereafter, the data transmission /
한편, 검출결과 비트에러가 발생된 경우에, 제어부(120)는 적어도 하나 이상 의 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 또는 사용자 데이터에서 발생된 적어도 하나 이상의 비트에러를 비트에러 발생 순서대로 순차적으로 정정하고, 비트에러가 정정 또는 정정되지 않은 사용자 데이터와 관리 데이터에 대한 뉴(New) 체크섬 데이터를 생성하며, 뉴 체크섬 데이터와 기 저장된 올드(Old) 체크섬 데이터와 같은지 비교판단하며, 비교판단 결과 같은 경우에 비트에러 정정성공 정보를 생성하여 통신부(118)를 통해 임시 저장부(102)에 저장한다.Meanwhile, when a bit error occurs as a result of the detection, the
여기서, 뉴 체크섬 데이터는 체크섬 데이터 생성방법과 같이 적어도 하나 이상의 비트에러가 정정 또는 정정되지 않은 사용자 데이터 및 관리 데이터의 비트들이 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
이후, 데이터 송/수신부(116)는 임시 저장부(102)의 비트에러 정정성공 정보와 적어도 하나 이상의 비트에러가 정정 또는 정정되지 않은 사용자 데이터를 디바이스로 전송한다.Thereafter, the data transmission /
이때, 디바이스는 사용자 데이터를 저장 또는 비트에러 정정성공 정보를 사용자가 인지할 수 있도록 디스플레이 수단을 통해 디스플레이할 수 있다.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
또한, 제어부(120)는 비트에러가 정정 또는 정정되지 않은 사용자 데이터를 임시 저장부(102)에 저장할 수 있다.In addition, the
이후, 데이터 송/수신부(116)는 임시 저장부(102)의 비트에러가 정정불능 정보와 적어도 하나 이상의 비트에러가 정정 또는 정정되지 않은 사용자 데이터를 디바이스로 전송한다.Thereafter, the data transmitting / receiving
이때, 디바이스는 사용자 데이터를 저장 또는 비트에러 정정불능 정보를 사용자가 인지할 수 있도록 디스플레이 수단을 통해 디스플레이할 수 있다.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
임시 저장 수단(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
체크섬 데이터 생성/비교수단(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
또한, 체크섬 데이터 생성/비교수단(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
이러한, 체크섬 데이터 생성/비교수단(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
한편, 데이터 에러 검출/정정수단(130)은 사용자 데이터 쓰기에 따라 통신부(118)를 통해 수신되는 사용자 데이터, 관리 데이터, 체크섬 데이터 또는 ECC 패리티 데이터에 대한 ECC 패리티 데이터를 생성하여 통신부(118)를 통해 ECC 패리티 데이터 저장 영역(114)에 저장하고, 사용자 데이터 읽기에 따라 통신부(118)를 통해 데이터 저장부(104)로부터 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 또는 사용자 데이터를 순차적으로 읽어 ECC 패리티 데이터를 이용하여 적어도 하나 이상의 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 또는 사용자 데이터에 대하여 적어도 하나 이상의 비트에러 발생 유무를 검출하고 정정한 후, 임시 저장 수단(122)에 저장한다.Meanwhile, the data error detection /
이러한, 데이터 에러 검출/정정수단(130)은 사용자 데이터 쓰기에 따라 통신부(118)를 통해 수신되는 사용자 데이터, 관리 데이터, 체크섬 데이터 또한 ECC 패리티 데이터에 대한 ECC 패리티 데이터를 생성하여 통신부(118)를 통해 ECC 패리티 데이터 저장 영역(114)에 저장하는 ECC 패리티 데이터 생성모듈(132) 및 사용자 데이터 읽기에 따라 통신부(118)를 통해 데이터 저장부(104)로부터 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 또는 사용자 데이터를 순차적으로 읽어 임시 저장 수단(122)에 저장한 후, ECC 패리티 데이터를 이용하여 적어도 하나 이상의 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 또는 사용자 데이터에 대하여 적어도 하나 이상의 비트에러 발생 유무를 검출하고 정정하여 임시 저장수단(122)에 저장하는 데이터 에러 검출/정정 모듈(134)로 이루어진다.The data error detection /
한편, 데이터 에러 검출/정정 모듈(134)은 ECC 패리티 데이터를 이용하여 임시 저장 수단(122)에 저장된 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 또는 사용자 데이터에 대하여 적어도 하나 이상의 비트에러 발생 유무를 검출하는 데이터 에러 검출 수단(136) 및 데이터 에러 검출 수단(136)에 의해 비트에러가 검출된 적어도 하나 이상의 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 또는 사용자 데이터 중에서 적어도 하나 이상의 비트에러를 정정하는 데이터 에러 정정 수단(138)을 포함한다.On the other hand, the data error detection /
여기서, 데이터 에러 정정 수단(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 /
여기서, 디바이스는 임베디스 시스템(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
이때, 제어부(120)는 데이터 에러정정 장치(100)를 관리하기 위한 데이터 저장부(104)의 논리주소가 변환된 물리적 주소의 관리 데이터를 생성하여 임시 저장 수단(122)에 저장한다(S201).At this time, the
여기서, 관리 데이터는 사용자 데이터가 데이터 저장부(104)로 전송되는 경우에 제어부(120)의 로직(Logic)에 의해 생성될 수 있다.Here, the management data may be generated by logic of the
다음, 제어부(120)의 체크섬 데이터 생성모듈(126)은 사용자 데이터와 관리 데이터의 비트들이 XOR로 연산된 비트들에서 1의 개수 총합인 체크섬 데이터를 생성하여 임시 저장 수단(122)에 저장한다(S202).Next, the checksum
그러면, ECC 패리티 데이터 생성모듈(132)은 사용자 데이터, 관리 데이터 또는 체크섬 데이터에 따른 ECC 패리티 데이터를 생성하여 임시 저장 수단(122)에 저장한다(203).Then, the ECC parity
여기서, 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 /
이 후, 제어부(120)는 임시 저장 수단(122)에 저장된 사용자 데이터, 관리 데이터, 체크섬 데이터 및 ECC 패리티 데이터를 데이터 저장부(104)의 사용자 데이터 저장수단(106), 관리 데이터 저장 영역(110), 체크섬 데이터 저장영역(112) 및 ECC 패리티 데이터 저장영역(114)에 각각 저장한다(S204).Thereafter, the
도 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
이 후, 데이터 에러 검출/정정수단(130)의 데이터 에러 검출 수단(136)은 ECC 패리티 데이터를 이용하여 적어도 하나 이상의 관리 데이터, 체크섬 데이터, ECC 패리티 데이터 및 사용자 데이터에서 적어도 하나 이상의 비트에러 발생 유무를 확인한다(S301).Thereafter, the data
만일, 상기한 단계 (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
다음, 데이터 송/수신부(116)는 임시 저장부(102)의 사용자 데이터를 디바이스로 전송한다(S302).Next, the data transmission /
이때, 디바이스는 데이터 에러정정 장치(100)로부터 사용자 데이터를 수신하여 저장 또는 사용자가 인지할 수 있도록 디스플레이 수단을 통해 디스플레이시킬 수 있다.In this case, the device may receive the user data from the data
만일, 상기한 단계 (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
이때, 데이터 에러 정정 수단(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
여기서, 뉴 체크섬 데이터는 적어도 하나 이상의 비트에러가 정정 또는 정정 되지 않은 사용자 데이터 및 관리 데이터의 비트들이 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
만일, 상기한 단계 (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
또한, 체크섬 데이터 비교모듈(128)은 임시 저장 수단(122)의 비트에러가 정정 또는 정정되지 않은 사용자 데이터를 통신부(118)를 통해 임시 저장부(102)에 저장할 수도 있다.In addition, the checksum
이후, 데이터 송/신부(116)는 임시 저장부(102)의 데이터 에러 정정 성공 정보와 비트에러가 정정 또는 정정되지 않은 사용자 데이터를 디바이스로 전송한다(S306).Thereafter, the data transmission /
이때, 디바이스는 데이터 에러정정 성공 정보 또는 비트에러가 정정 또는 정정되지 않은 사용자 데이터를 저장하거나 사용자가 인지할 수 있도록 디스플레이 수단을 통해 디스플레이시킬 수 있다.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
또한, 체크섬 데이터 비교모듈(128)은 비트 에러가 정정 또는 정정되지 않은 사용자 데이터를 임시 저장부(102)에 저장할 수도 있다.In addition, the checksum
이 후, 데이터 송/수신부(116)는 임시 저장부(102)의 데이터 에러 정정 불능 정보와 비트에러가 정정 또는 정정되지 않은 사용자 데이터를 디바이스로 전송한다(S307).Thereafter, the data transmission /
이때, 디바이스는 데이터 에러정정 성공 정보 또는 비트에러가 정정 또는 정정되지 않은 사용자 데이터를 저장하거나 사용자가 인지할 수 있도록 디스플레이 수단을 통해 디스플레이시킬 수 있다.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
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석 되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.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)
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)
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 |
-
2008
- 2008-01-30 KR KR1020080009805A patent/KR100982580B1/en active IP Right Grant
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 |