KR20090048142A - ECC processing unit of the nonvolatile memory device - Google Patents
ECC processing unit of the nonvolatile memory device Download PDFInfo
- Publication number
- KR20090048142A KR20090048142A KR1020070114373A KR20070114373A KR20090048142A KR 20090048142 A KR20090048142 A KR 20090048142A KR 1020070114373 A KR1020070114373 A KR 1020070114373A KR 20070114373 A KR20070114373 A KR 20070114373A KR 20090048142 A KR20090048142 A KR 20090048142A
- Authority
- KR
- South Korea
- Prior art keywords
- ecc
- data
- transmission data
- logical page
- algorithm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/1201—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising I/O circuitry
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
본원 발명의 불휘발성 메모리 장치의 ECC 처리부는 전송 데이터가 프로그램될 논리 페이지의 종류에 따라 상이한 ECC(Error Correcting Code) 알고리즘을 선택하여 상기 전송 데이터를 인코딩하는 ECC 인코더와, 독출된 전송 데이터가 프로그램되었던 논리 페이지의 종류에 따라 상이한 ECC 알고리즘을 선택하여 상기 전송 데이터를 디코딩하는 ECC 디코더를 포함하는 것을 특징으로 한다.The ECC processing unit of the nonvolatile memory device of the present invention selects a different ECC (Error Correcting Code) algorithm according to the type of logical page to which the transmission data is to be programmed, and encodes the transmission data, and the read transmission data is programmed. And selecting an ECC algorithm according to the type of logical page to decode the transmission data.
ECC, 논리 페이지 ECC, Logical Page
Description
본원 발명은 불휘발성 메모리 장치에 사용되는 ECC 처리부와, 그것을 이용한 ECC 인코딩 방법 및 디코딩 방법에 관한 것이다.The present invention relates to an ECC processing unit used in a nonvolatile memory device, an ECC encoding method and a decoding method using the same.
최근 들어 전기적으로 프로그램(program)과 소거(erase)가 가능하고, 일정 주기로 데이터를 재작성해야하는 리프레시(refresh) 기능이 필요 없는 불휘발성 메모리 소자에 대한 수요가 증가하고 있다.Recently, there is an increasing demand for a nonvolatile memory device that can be electrically programmed and erased and that does not require a refresh function to rewrite data at regular intervals.
상기 불휘발성 메모리 장치는 통상적으로 데이터가 저장되는 셀들이 매트릭스 형태로 구성된 메모리 셀 어레이, 상기 메모리 셀 어레이의 특정 셀들에 대하여 메모리를 기입하거나 특정 셀에 저장되었던 메모리를 독출하는 페이지 버퍼를 포함한다. 상기 페이지 버퍼는 특정 메모리 셀과 접속된 비트라인 쌍, 메모리 셀 어레이에 기록할 데이터를 임시저장하거나, 메모리 셀 어레이로부터 특정 셀의 데이터를 독출하여 임시 저장하는 레지스터, 특정 비트라인 또는 특정 레지스터의 전압 레벨을 감지하는 감지노드, 상기 특정 비트라인과 감지노드의 접속여부를 제어하는 비트라인 선택부를 포함한다.The nonvolatile memory device typically includes a memory cell array having cells in which data is stored in a matrix form, and a page buffer for writing a memory to a specific cell of the memory cell array or reading a memory stored in a specific cell. . The page buffer may include a pair of bit lines connected to a specific memory cell, a register for temporarily storing data to be written to the memory cell array, or a register for reading and temporarily storing data of a specific cell from the memory cell array, a voltage of a specific bit line or a specific register. It includes a sensing node for sensing a level, a bit line selection unit for controlling the connection of the specific bit line and the sensing node.
이러한 불휘발성 메모리 장치의 프로그램, 독출 동작을 하는데 있어서, 데이터의 저장이나 독출과정에서 일어날 수 있는 오류 발생을 수정하기 위해 ECC(Error correcting code) 기능을 사용하고 있다.In the program and read operation of the nonvolatile memory device, an error correcting code (ECC) function is used to correct an error that may occur during data storage or reading.
상기 ECC 알고리즘으로는 페이지 단위의 데이터당 1비트의 에러 정정이 가능한 해밍 코드(Hamming code) 방식이나, 수 비트의 에러 정정이 가능한 BCH 코드 방식등을 사용하고 있다.As the ECC algorithm, a hamming code system capable of error correction of 1 bit per page data, a BCH code system capable of error correction of several bits, and the like are used.
이렇게 ECC 알고리즘을 수행하는데 있어서, 전송하고자 하는 n 개의 데이터 외에 k 개의 스페어 데이터를 추가하는 방법을 사용하고 있다. 상기 BCH 코드 방식을 사용할 경우 상기 스페어 데이터의 사이즈는 대략 1~5% 정도로 할당된다. In performing the ECC algorithm, a method of adding k spare data in addition to n data to be transmitted is used. When the BCH code method is used, the size of the spare data is allocated about 1 to 5%.
상기 스페어 데이터는 기본 메모리 셀에 스페어 셀의 추가를 필요로 하므로 칩 사이즈의 증가를 가져오게 된다.The spare data requires an addition of a spare cell to the basic memory cell, resulting in an increase in chip size.
한편, 최근 불휘발성 메모리 장치에서는 하나의 물리적인 페이지에 복수의 논리적인 페이지를 프로그램하는 멀티 레벨 셀 프로그램(MLC) 방식을 널리 사용하고 있다. 멀티 레벨 셀 프로그램의 경우 각 논리 페이지별로 문턱전압의 분포가 상이 하기 때문에 에러가 발생할 확률도 상이하게 된다.Recently, non-volatile memory devices have widely used a multi-level cell program (MLC) method for programming a plurality of logical pages in one physical page. In the case of a multi-level cell program, since the distribution of threshold voltages is different for each logical page, the probability of an error is also different.
그러나, 각 논리 페이지별 에러 발생 확률과는 무관하게 동일한 ECC 처리를 하고 있어 대역폭에 제한이 생기거나 데이터 신뢰도가 떨어지는 문제점이 있다.However, the same ECC processing is performed irrespective of the error occurrence probability of each logical page, resulting in a limitation in bandwidth or inferior data reliability.
전술한 문제점을 해결하기 위하여 본원 발명은 논리 페이지별 에러 발생 확률에 따라 ECC 처리 알고리즘을 선택적으로 제어할 수 있는 불휘발성 메모리 장치의 ECC 처리부를 제공하는 것을 목적으로 한다.In order to solve the above problems, an object of the present invention is to provide an ECC processing unit of a nonvolatile memory device capable of selectively controlling the ECC processing algorithm according to the probability of error occurrence for each logical page.
또한, 상기 ECC 처리부를 이용한 불휘발성 메모리 장치의 ECC 인코딩 방법과 ECC 디코딩 방법을 제공하는 것을 목적으로 한다.Another object of the present invention is to provide an ECC encoding method and an ECC decoding method of a nonvolatile memory device using the ECC processor.
전술한 목적을 달성하기 위한 본원 발명의 불휘발성 메모리 장치의 ECC 처리부는 전송 데이터가 프로그램될 논리 페이지의 종류에 따라 상이한 ECC(Error Correcting Code) 알고리즘을 선택하여 상기 전송 데이터를 인코딩하는 ECC 인코더와, 독출된 전송 데이터가 프로그램되었던 논리 페이지의 종류에 따라 상이한 ECC 알고리즘을 선택하여 상기 전송 데이터를 디코딩하는 ECC 디코더를 포함하는 것을 특징으로 한다.The ECC processing unit of the nonvolatile memory device of the present invention for achieving the above object is an ECC encoder for encoding the transmission data by selecting a different error correction code (ECC) algorithm according to the type of logical page to be transmitted data; And an ECC decoder which selects a different ECC algorithm according to the type of logical page in which the read transmission data has been programmed and decodes the transmission data.
또한, 본원 발명의 불휘발성 메모리 장치의 ECC 인코딩 방법은 메모리 셀에 프로그램할 전송 데이터를 입력받는 단계와, 상기 전송 데이터를 프로그램할 논리 페이지를 판단하는 단계와, 상기 전송 데이터를 하나의 독출 전압이 인가되는 제1 논리 페이지에 프로그램할 경우 제1 ECC 알고리즘으로 인코딩하는 단계와, 상기 전송 데이터를 둘 이상의 독출 전압이 인가되는 제2 논리 페이지에 프로그램할 경우 상기 제1 ECC 알고리즘보다 더 큰 ECC 데이터를 출력하는 제2 ECC 알고리즘으로 인코딩하는 단계를 포함하는 것을 특징으로 한다.In addition, the ECC encoding method of the nonvolatile memory device of the present invention comprises the steps of receiving a transmission data to be programmed into a memory cell, determining a logical page to program the transmission data, and a single read voltage of the transmission data Encoding with a first ECC algorithm when programming to an applied first logical page, and ECC data larger than the first ECC algorithm when programming the transmission data to a second logical page to which two or more read voltages are applied. And encoding with the outputting second ECC algorithm.
또한, 본원 발명의 불휘발성 메모리 장치의 ECC 디코딩 방법은 메모리 셀에 프로그램된 전송 데이터 및 상기 전송 데이터의 인코딩시 출력되어 저장된 ECC 데이터를 입력받는 단계와, 상기 전송 데이터가 프로그램된 논리 페이지를 판단하는 단계와, 상기 전송 데이터가 하나의 독출 전압이 인가되는 제1 논리 페이지에 프로그램된 경우 제1 ECC 알고리즘으로 디코딩하는 단계와, 상기 전송 데이터가 둘 이상의 독출 전압이 인가되는 제2 논리 페이지에 프로그램된 경우 상기 제1 ECC 알고리즘보다 더 큰 ECC 데이터를 사용하는 제2 ECC 알고리즘으로 디코딩하는 단계를 포함하는 것을 특징으로 한다.In addition, the ECC decoding method of the nonvolatile memory device of the present invention comprises the steps of receiving the transmission data programmed in the memory cell and the ECC data output and stored when encoding the transmission data, and determining the logical page in which the transmission data is programmed Decoding the transmission data if the transmission data is programmed in a first logical page to which one read voltage is applied; and decoding the transmission data in the second logic page to which two or more read voltages are applied. And decoding the second ECC algorithm using ECC data larger than the first ECC algorithm.
전술한 본원 발명의 구성에 따라 에러 발생확률이 낮은 논리 페이지에 프로그램할 데이터를 인코딩하는 경우에는 상대적으로 더 낮은 ECC 처리능력을 갖는 ECC 알고리즘을 사용하여 ECC 처리에 사용되는 리소스를 감소시킬 수 있다.According to the above-described configuration of the present invention, when encoding data to be programmed into a logical page having a low probability of error occurrence, an ECC algorithm having a relatively lower ECC processing capability may be used to reduce resources used for ECC processing.
또한, 에러 발생확률이 높은 논리 페이지에 프로그램할 데이터를 인코딩하는 경우에는 상대적으로 더 높은 ECC 처리능력을 갖는 ECC 알고리즘을 사용하여 에러 발생확률을 낮출 수 있다. 이는 디코딩 과정에서도 마찬가지이다.In addition, when encoding data to be programmed in a logical page having a high probability of error occurrence, an error occurrence probability may be lowered by using an ECC algorithm having a relatively higher ECC processing capability. The same is true of the decoding process.
이와 같이, 각 논리 페이지별로 상이한 ECC 처리능력을 갖는 ECC 알고리즘을 적용하여, 불휘발성 메모리 장치의 ECC 처리과정을 최적화할 수 있다.As such, by applying an ECC algorithm having different ECC processing capability for each logical page, the ECC processing of the nonvolatile memory device may be optimized.
이하, 첨부된 도면들을 참조하여 본원 발명의 바람직한 실시예를 상세히 살펴보기로 한다. 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 통상의 지식을 가진 자에게 발며의 범주를 완전하게 알려주기 위해 제공되는 것이다. 도면상에서 동일 부호는 동일한 요소를 지칭한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. The present invention is not limited to the embodiments disclosed below, but will be implemented in various different forms, only these embodiments are intended to complete the disclosure of the present invention, and fully scope the scope of the invention to those skilled in the art. It is provided to inform you. Like numbers refer to like elements in the figures.
도 1은 불휘발성 메모리 장치의 멀티 레벨 셀 프로그램에 따른 각 논리 페이지의 문턱 전압 상태를 도시한 도면이다.1 illustrates a threshold voltage state of each logical page according to a multi-level cell program of a nonvolatile memory device.
불휘발성 메모리 장치의 메모리 셀에서 하나의 워드라인에 접속된 셀들을 페이지로 정의한다. 하나의 물리적 페이지에 대해서 싱글 레벨 셀 프로그램을 하는 경우에는 하나의 논리 페이지만 형성된다. 그러나 멀티 레벨 셀 프로그램을 하는 경우에는 둘 이상의 논리 페이지가 형성된다.In a memory cell of a nonvolatile memory device, cells connected to one word line are defined as pages. When a single level cell program is executed for one physical page, only one logical page is formed. However, in the case of a multi-level cell program, two or more logical pages are formed.
2비트 멀티 레벨 셀 프로그램의 경우에는 2 개의 논리 페이지가 형성되며, 3비트 멀티 레벨 셀 프로그램의 경우에는 3 개의 논리 페이지가 형성된다. 일반적으로 n 비트 멀티 레벨 셀 프로그램의 경우 n 개의 논리 페이지가 형성된다.In the case of a 2-bit multi-level cell program, two logical pages are formed. In the case of a 3-bit multi-level cell program, three logical pages are formed. In general, n logical pages are formed in an n-bit multi-level cell program.
이때, 동일한 물리적 페이지에 형성되는 각 논리 페이지의 문턱전압의 분포는 도시된 바와 같이 상이하다.At this time, the distribution of threshold voltages of each logical page formed on the same physical page is different as shown.
하나의 독출 전압이 인가되는 도 1의 제1 논리 페이지에서는 두 개의 셀 상태만이 존재하므로 각 분포별 마진이 충분한 상태이다. 그러나, 상기 제1 논리 페이지에 대하여 추가적으로 프로그램을 한 상태로, 둘 이상의 독출 전압이 인가되는 제2 논리 페이지의 경우에는 네 개의 셀 상태가 존재하며 상기 제1 논리 페이지의 분포에 비하여 마진이 좁아진 상태이다. 상기 제2 논리 페이지에 대하여 추가적으로 프로그램을 한 상태로, 넷 이상의 독출 전압이 인가되는 제3 논리 페이지의 경우에는 총 8 개의 셀 상태가 존재하며, 상기 제1 및 제2 논리 페이지의 분포에 비하여 마진이 훨씬 좁아진 상태이다.Since only two cell states exist in the first logical page of FIG. 1 to which one read voltage is applied, a margin for each distribution is sufficient. However, in a state in which an additional program is applied to the first logical page, four cell states exist in a second logical page to which two or more read voltages are applied, and a margin is narrowed compared to the distribution of the first logical page. to be. In the third logic page to which four or more read voltages are applied while additionally programming the second logical page, there are eight cell states in total, and the margin is higher than the distribution of the first and second logical pages. This is a much narrower state.
이와 같이 각 페이지의 셀 분포 상태가 상이하므로, 각 페이지별로 에러가 발생할 확률도 달라지게 된다. 즉, 각 분포에 마진이 여유가 있는 경우에는 프로그램/독출 과정에서 에러가 발생할 확률이 훨씬 줄어들게 되는 것이다.As such, since the cell distribution state of each page is different, the probability of an error occurring for each page is also different. In other words, if there is a margin in each distribution, the probability of an error occurring in the program / read process is much reduced.
본원 발명에서는 이와 같이 프로그램/독출 과정에서의 각 페이지별 에러 발생 확률이 상이하다는 사실을 이용하여, 새로운 ECC 처리 방법을 제안하고자 한다.In the present invention, a new ECC processing method is proposed by using the fact that the error occurrence probability of each page in the program / read process is different.
도 2는 본원 발명에 사용되는 불휘발성 메모리 장치를 도시한 도면이다.2 is a diagram illustrating a nonvolatile memory device used in the present invention.
상기 불휘발성 메모리 장치는 외부 입력 데이터가 저장되는 메모리 셀(210), 상기 메모리 셀에 대하여 프로그램/독출/소거 동작등을 수행하는 제어부(220), 상기 메모리 셀에 입력되는 데이터 및 상기 메모리 셀에서 출력되는 데이터에 대하여 에러 정정 처리를 하는 ECC 처리부(230)를 포함한다.The nonvolatile memory device may include a
상기 메모리 셀(210)은 외부 입력 데이터가 저장되는 메인 메모리 셀과, 불 휘발성 메모리 장치의 각종 동작 정보를 저장하는 스페어 셀을 포함한다.The
상기 스페어 셀 영역에는 상기 ECC 처리 결과를 저장하는 ECC 데이터 저장부(212)가 포함된다.The spare cell area includes an ECC
ECC 데이터는 전송하고자 하는 2진 데이터(이하 '전송 데이터')의 전송 과정 중에 오류가 발생하였는지 여부를 판단할 수 있는 기준이 되는 데이터이다.The ECC data is data that can be used to determine whether an error occurs during the transmission of the binary data (hereinafter, referred to as 'transmission data') to be transmitted.
예를 들어, 상기 전송 데이터가 '1'을 홀수 개 포함하는 경우에는 상기 ECC 데이터가 '1'로 설정되고, 상기 전송 데이터가 '1'을 짝수 개 포함하는 경우에는 상기 ECC 데이터가 '0'으로 설정된다고 가정한다.For example, when the transmission data includes an odd number of '1', the ECC data is set to '1', and when the transmission data includes an even number of '1', the ECC data is '0'. Assume that it is set to.
이후, 전송 데이터와 ECC 데이터가 합쳐진 특정 데이터를 수신하였는데, 상기 ECC 데이터가 '1' 인 상태에서, 상기 전송 데이터가 '1'을 홀수 개 포함하고 있다면 데이터 전송과정에 오류가 없었던 것으로 본다.Subsequently, specific data in which transmission data and ECC data are combined is received. If the ECC data is '1' and the transmission data includes an odd number of '1', it is considered that there was no error in the data transmission process.
그러나, 상기 ECC 데이터가 '1' 인 상태에서, 상기 전송 데이터가 '1'을 짝수 개 포함하고 있다면 데이터 전송과정에 오류가 있는 것으로 보고, 데이터의 재전송을 요구한다.However, in the state where the ECC data is '1', if the transmission data includes an even number '1', it is regarded that there is an error in the data transmission process and requests retransmission of the data.
이때, ECC 처리 알고리즘에 따라 데이터의 재전송을 요구할 수도 있고, 또는 오류를 직접 정정하는 처리를 수행할 수 있다. In this case, retransmission of data may be required according to an ECC processing algorithm, or a process of directly correcting an error may be performed.
통상적으로 알려진 패리티 비트(Parity Bit)에 의한 오류 검출은 오류 정정 기능이 없어 데이터의 재전송을 요구하는 알고리즘이며, 해밍 코드(Hamming Code)에 의한 처리방법은 오류 검출 후 오류 정정까지 가능하다. 한편, 페이지 단위의 데이터당 1비트의 에러 정정이 가능한 상기 해밍 코드방식이외에, 수 비트의 에러 정정이 가능한 BCH 코드 방식등도 사용된다.In general, error detection by a known parity bit is an algorithm that requires retransmission of data because there is no error correction function, and a processing method using a hamming code can correct errors after error detection. On the other hand, in addition to the Hamming code system capable of error correction of 1 bit per page data, a BCH code system capable of error correction of several bits is also used.
다만, 상기 각 알고리즘은 강력한 처리능력을 가질수록 프로세서가 부담하는 처리용량이 커지게 된다. 즉, 패리티 비트에 의한 ECC 처리 방식은 에러 정정 기능은 없지만 처리용량은 가장 적게 된다.However, as each algorithm has a powerful processing capability, the processing capacity of the processor increases. In other words, the ECC processing method using the parity bit has no error correction function, but the processing capacity is the smallest.
각 알고리즘의 처리능력은 주로 ECC 데이터의 크기로 나타난다. 즉, 전송 데이터에 추가되는 ECC 데이터의 크기가 클수록 처리능력이 큰 알고리즘을 사용한 것으로 본다. 다만, 그 처리부담은 더욱 커지게 된다. The processing power of each algorithm is mainly represented by the size of ECC data. In other words, the larger the size of the ECC data added to the transmission data, the larger the processing capacity. However, the processing burden becomes larger.
상기 제어부(220)는 전체 메모리 셀에 대하여 프로그램/소거/독출 동작을 수행한다. 프로그램/소거/독출 동작의 대상이 되는 메모리 셀들을 어드레싱하고, 각 동작 동안에 워드라인등에 인가되는 전압을 제어한다.The
또한, 외부에서 인가되는 전송 데이터가 상기 ECC 처리부(230)를 거치도록 제어하며, 상기 메모리 셀에 프로그램되었다가 독출된 데이터가 상기 ECC 처리부(230)를 거쳐 외부로 출력되도록 제어한다.In addition, the control unit transmits the externally transmitted data to pass through the
또한, 상기 전송 데이터가 어떤 논리 페이지에 프로그램될 것인지를 나타내는 페이지 정보 신호를 전송한다.In addition, a page information signal indicating to which logical page the transmission data will be programmed is transmitted.
상기 ECC 처리부(230)는 외부에서 입력되는 전송 데이터에 대하여 ECC 처리를 수행하고, ECC 데이터를 생성한다. 또한, 메모리 셀에서 독출한 전송 데이터와 ECC 데이터를 전달받고, 전송 데이터에 대하여 ECC 처리를 하여 상기 전달받은 ECC 데이터와 비교하여 오류 정정을 수행한다. The
이를 위해, 상기 ECC 처리부(230)는 전송 데이터를 특정 ECC 알고리즘에 따라 인코딩하여 ECC 데이터를 생성하는 ECC 인코더(232)와, 상기 ECC 처리되어 메모리 셀에 저장된 전송데이터와, ECC 데이터를 비교하여 오류를 정정하는 ECC 디코더(234)를 포함한다.To this end, the
상기 ECC 인코더(232)는 전송 데이터가 프로그램될 논리 페이지의 종류에 따라 상이한 ECC 알고리즘을 선택하여 상기 전송 데이터를 인코딩한다. 상기 인코딩 결과, 인코딩 과정에 사용된 ECC 알고리즘에 따라 상이한 크기의 ECC 데이터를 출력하며 이는 상기 메모리 셀의 ECC 데이터 저장부(212)에 저장된다.The
상기 전송 데이터가 프로그램될 논리 페이지는 해당 페이지의 독출 과정에서 인가되어야 할 독출 전압의 개수에 의하여 구분가능하며, 그 독출 전압의 개수가 많을수록 상기 ECC 데이터가 큰 ECC 알고리즘을 선택한다.The logical page to which the transmission data is to be programmed can be distinguished by the number of read voltages to be applied in the reading process of the corresponding page. As the number of read voltages is larger, an ECC algorithm having a larger ECC data is selected.
또한, 상기 ECC 디코더(234)는 독출된 전송 데이터가 프로그램되었던 논리 페이지의 종류에 따라 상이한 ECC 알고리즘을 선택하여 상기 전송 데이터를 디코딩 한다. 이때, 상기 전송 데이터가 프로그램되었던 페이지의 종류는 상기 ECC 데이터 저장부(212)에 저장된 ECC 데이터의 크기에 따라 판단가능하며, 이를 근거로 상기 전송 데이터를 디코딩할 ECC 알고리즘을 선택할 수 있다.In addition, the
이와 같이 상기 ECC 인코더와 ECC 디코더는 논리 페이지의 종류에 따라 상이 한 ECC 알고리즘을 선택하여 ECC 처리를 수행한다.As described above, the ECC encoder and the ECC decoder select different ECC algorithms according to types of logical pages to perform ECC processing.
즉, 전송 데이터가 멀티 레벨 셀 프로그램에 있어서 제1 논리 페이지에 프로그램될 예정이거나, 제1 논리 페이지에서 독출된 경우에는 에러 발생 확률이 낮은 것으로 보고 프로세서의 처리부담이 낮은 제1 ECC 알고리즘(1bit/512B)을 선택하여 처리한다. 상기 제1 ECC 알고리즘은 512Byte의 페이지 데이터를 처리하는데 있어서 1비트의 ECC 데이터를 사용한다.In other words, when the transmission data is to be programmed in the first logical page or read from the first logical page in the multi-level cell program, the first ECC algorithm (1 bit / lower) that the processor is less likely to generate an error is considered to be low. 512B) to process. The first ECC algorithm uses one bit of ECC data in processing page data of 512 bytes.
그리고, 상기 전송 데이터가 제2 논리 페이지에 프로그램될 예정이거나, 제2 논리 페이지에서 독출한 경우에는 에러 발생확률이 상대적으로 더 높은 것으로 보고 프로세서의 처리부담이 더 높은 제2 ECC 알고리즘(2bit/512B)을 선택하여 처리한다. 상기 제2 ECC 알고리즘은 512Byte의 페이지 데이터를 처리하는데 있어서 2비트의 ECC 데이터를 사용한다.In addition, when the transmission data is to be programmed in the second logical page or read from the second logical page, the probability of error occurrence is regarded as relatively higher, and a second ECC algorithm having higher processing burden of the processor (2bit / 512B). Select) to process. The second ECC algorithm uses two bits of ECC data in processing page data of 512 bytes.
그리고, 상기 전송 데이터가 제3 논리 페이지에 프로그램될 예정이거나, 제2 논리 페이지에서 독출한 경우에는 에러 발생확률이 상대적으로 더 높은 것으로 보고 프로세서의 처리부담이 더 높은 제3 ECC 알고리즘(3bit/512B)을 선택하여 처리한다. 상기 제3 ECC 알고리즘은 512Byte의 페이지 데이터를 처리하는데 있어서 3비트의 ECC 데이터를 사용한다.In addition, when the transmission data is to be programmed in the third logical page or read out from the second logical page, the probability of error occurrence is regarded as relatively higher, and a third ECC algorithm having higher processing burden of the processor (3bit / 512B). Select) to process. The third ECC algorithm uses three bits of ECC data in processing page data of 512 bytes.
이때, 각 알고리즘의 처리성능을 나타내는 수치는 각 알고리즘의 성능의 차 이를 비교하기 위하여 예로 든 수치 일뿐, 본 발명의 범위가 해당 수치에 한정되는 것은 아니다. 설계자의 의도에 따라 해당 수치들은 충분히 변경이 가능하다.In this case, the numerical values representing the processing performance of each algorithm are merely examples for comparing the performance of each algorithm, and the scope of the present invention is not limited to the numerical values. Depending on the designer's intention, the values can be changed sufficiently.
이제 본원 발명에 따른 ECC 처리과정을 더욱 상세히 살펴보기로 한다.Now, the ECC process according to the present invention will be described in more detail.
도 3은 본원 발명의 일실시예에 따른 ECC 인코딩 과정을 도시한 순서도이다.3 is a flowchart illustrating an ECC encoding process according to an embodiment of the present invention.
먼저, 메인 메모리 셀에 프로그램될 페이지 단위의 전송데이터가 상기 ECC 인코더(232)로 입력된다(단계 310).First, transmission data in units of pages to be programmed into a main memory cell is input to the ECC encoder 232 (step 310).
다음으로, 상기 전송 데이터가 어떤 논리 페이지에 저장될 데이터인지 판단한다(단계 320).Next, it is determined in which logical page the transmission data is to be stored (step 320).
이는 상기 제어부(220)에서 전송되는 페이지 정보 신호를 통해 판단하거나, 스페어 셀등에 포함되는 MLC 프로그램 단계를 나타내는 플래그 신호등을 통해 판단한다.This may be determined through a page information signal transmitted from the
다음으로, 상기 판단된 각 논리 페이지에 해당하는 ECC 알고리즘을 선택하여 ECC 인코딩을 수행한다(단계 330).Next, an ECC algorithm corresponding to each of the determined logical pages is selected to perform ECC encoding (step 330).
즉, 앞서 언급한 바와 같이 전송 데이터가 멀티 레벨 셀 프로그램에 있어서 제1 논리 페이지에 프로그램될 예정인 경우에는 에러 발생 확률이 낮은 것으로 보고 프로세서의 처리부담이 낮은 제1 ECC 알고리즘(1bit/512B)을 선택하여 처리한다. That is, as mentioned above, when the transmission data is to be programmed in the first logical page in the multi-level cell program, the probability of error occurrence is regarded as low, and the first ECC algorithm (1bit / 512B) having a low processing burden of the processor is selected. To be treated.
그리고, 상기 전송 데이터가 제2 논리 페이지에 프로그램될 예정인 경우에는 에러 발생확률이 상대적으로 더 높은 것으로 보고 프로세서의 처리부담이 더 높은 제2 ECC 알고리즘(2bit/512B)을 선택하여 처리한다. When the transmission data is to be programmed in the second logical page, the error occurrence probability is considered to be relatively higher, and the second ECC algorithm (2bit / 512B) having a higher processing burden is selected and processed.
그리고, 상기 전송 데이터가 제3 논리 페이지에 프로그램될 예정인 경우에는 에러 발생확률이 상대적으로 더 높은 것으로 보고 프로세서의 처리부담이 더 높은 제3 ECC 알고리즘(3bit/512B)을 선택하여 처리한다. When the transmission data is to be programmed in the third logical page, the error occurrence probability is regarded as relatively higher, and the third ECC algorithm (3bit / 512B) having a higher processing burden is selected and processed.
논리 페이지를 더 많이 설정한 경우에는 그에 맞는 ECC 알고리즘을 선택하여 처리하도록 한다.If more logical pages are set, the appropriate ECC algorithm is selected and processed.
다음으로, 상기 ECC 인코딩 처리후 전송데이터 및 ECC 데이터가 출력된다(단계 340).Next, transmission data and ECC data are output after the ECC encoding process (step 340).
상기 제1 ECC 알고리즘이 선택된 경우에는 1 비트의 제1 ECC 데이터가 출력될 것이고, 제2 ECC 알고리즘이 선택된 경우에는 2 비트의 제2 ECC 데이터가 출력될 것이며, 제3 ECC 알고리즘이 선택된 경우에는 3 비트의 제3 ECC 데이터가 출력 될 것이다.When the first ECC algorithm is selected, one bit of first ECC data will be output. When the second ECC algorithm is selected, two bits of second ECC data will be output. When the third ECC algorithm is selected, 3 will be output. The third ECC data of the bit will be output.
즉, 어떠한 ECC 알고리즘이 선택되었는지에 따라 출력되는 ECC 데이터도 상이하게 된다.In other words, the ECC data that is output depends on which ECC algorithm is selected.
상기 처리된 전송데이터는 이후 메인 메모리 셀의 특정 페이지에 프로그램될 것이고, 상기 ECC 데이터는 상기 특정 페이지와 연관되도록 ECC 데이터 저장부(212)에 저장된다.The processed transmission data will then be programmed into a specific page of the main memory cell, and the ECC data is stored in the
도 4는 본원 발명의 일실시예에 따른 ECC 디코딩 과정을 도시한 순서도이다.4 is a flowchart illustrating an ECC decoding process according to an embodiment of the present invention.
먼저, 메인 메모리 셀에 프로그램된 전송데이터와 ECC 데이터 저장부(212)에 저장된 ECC 데이터를 입력받는다(단계 410).First, the transmission data programmed in the main memory cell and the ECC data stored in the ECC
다음으로, 상기 전송 데이터가 어떤 논리 페이지에 저장되었던 데이터인지 판단한다(단계 320).Next, it is determined in what logical page the transmission data is stored (step 320).
이는 상기 제어부(220)에서 전송되는 페이지 정보 신호를 통해 판단하거나, 스페어 셀등에 포함되는 MLC 프로그램 단계를 나타내는 플래그 신호등을 통해 판단한다.This may be determined through a page information signal transmitted from the
또는, 상기 ECC 데이터를 통해 판단할 수 있다. 즉, 앞선 인코딩 처리 결과 각 논리 페이지별로 출력되는 ECC 데이터의 용량도 달라지므로, ECC 데이터의 용량에 따라 논리 페이지의 판단이 가능하다.Alternatively, it may be determined through the ECC data. That is, since the capacity of the ECC data output for each logical page is different as a result of the encoding process, the logical page can be determined according to the capacity of the ECC data.
예를 들어, 입력된 ECC 데이터가 1비트의 제1 ECC 데이터인 경우에는 제1 논리 페이지인 것으로 판단하고, 2비트의 제2 ECC 데이터인 경우에는 제2 논리 페이지인 것으로 판단하는 방식이다.For example, when the input ECC data is the first ECC data of 1 bit, it is determined to be the first logical page, and when the second ECC data of the 2 bits is determined to be the second logical page.
다음으로, 상기 판단된 각 논리 페이지에 해당하는 ECC 알고리즘을 선택하여 ECC 디코딩을 수행한다(단계 430).Next, an ECC algorithm corresponding to each of the determined logical pages is selected to perform ECC decoding (step 430).
즉, 전송 데이터가 제1 논리 페이지에 프로그램된 데이터인 경우에는 에러 발생 확률이 낮은 것으로 보고 프로세서의 처리부담이 낮은 제1 ECC 알고리 즘(1bit/512B)을 선택하여 처리한다. That is, when the transmission data is data programmed in the first logical page, it is determined that the error occurrence probability is low, and the first ECC algorithm (1bit / 512B) having a low processing burden of the processor is selected and processed.
그리고, 전송 데이터가 제2 논리 페이지에 프로그램된 데이터인 경우에는 에러 발생확률이 상대적으로 더 높은 것으로 보고 프로세서의 처리부담이 더 높은 제2 ECC 알고리즘(2bit/512B)을 선택하여 처리한다. When the transmission data is data programmed in the second logical page, the error occurrence probability is considered to be relatively higher, and the second ECC algorithm (2bit / 512B) having a higher processing burden is selected and processed.
그리고, 전송 데이터가 제2 논리 페이지에 프로그램된 데이터인 경우에는 에러 발생확률이 상대적으로 더 높은 것으로 보고 프로세서의 처리부담이 더 높은 제3 ECC 알고리즘(3bit/512B)을 선택하여 처리한다. When the transmission data is data programmed in the second logical page, the probability of error occurrence is regarded as relatively higher, and a third ECC algorithm (3bit / 512B) having a higher processing burden is selected and processed.
논리 페이지를 더 많이 설정한 경우에는 그에 맞는 ECC 알고리즘을 선택하여 처리하도록 한다.If more logical pages are set, the appropriate ECC algorithm is selected and processed.
한편, 상기 ECC 처리결과 오류가 발생하지 않은 것으로 판단되는 경우에는 해당 전송데이터를 그대로 출력한다. 그러나, 오류가 발생한 경우에는 ECC 데이터를 이용하여 상기 전송데이터의 오류를 정정한다.On the other hand, if it is determined that no error has occurred as a result of the ECC processing, the transmission data is output as it is. However, if an error occurs, the error of the transmission data is corrected using ECC data.
다음으로, 상기 ECC 디코딩 처리후 전송데이터가 출력된다(단계 440).Next, transmission data is output after the ECC decoding process (step 440).
이와 같이 ECC 인코딩 또는 디코딩과정에서 오류 발생 확률에 따라 상이한 ECC 처리 알고리즘을 사용하도록 한다.As such, different ECC processing algorithms may be used depending on the probability of an error occurring during ECC encoding or decoding.
도 1은 불휘발성 메모리 장치의 멀티 레벨 셀 프로그램에 따른 각 논리 페이지의 문턱 전압 상태를 도시한 도면이다.1 illustrates a threshold voltage state of each logical page according to a multi-level cell program of a nonvolatile memory device.
도 2는 본원 발명에 사용되는 불휘발성 메모리 장치를 도시한 도면이다.2 is a diagram illustrating a nonvolatile memory device used in the present invention.
도 3은 본원 발명의 일실시예에 따른 ECC 인코딩 과정을 도시한 순서도이다.3 is a flowchart illustrating an ECC encoding process according to an embodiment of the present invention.
도 4는 본원 발명의 일실시예에 따른 ECC 디코딩 과정을 도시한 순서도이다.4 is a flowchart illustrating an ECC decoding process according to an embodiment of the present invention.
<도면의 주요 부분에 대한 설명>Description of the main parts of the drawing
200: 불휘발성 메모리 장치200: nonvolatile memory device
210: 메모리 셀210: memory cell
212: ECC 데이터 저장부212: ECC data storage
220: 제어부220: control unit
230: ECC 처리부230: ECC processing unit
232: ECC 인코더232: ECC encoder
234: ECC 디코더234: ECC decoder
Claims (11)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070114373A KR20090048142A (en) | 2007-11-09 | 2007-11-09 | ECC processing unit of the nonvolatile memory device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070114373A KR20090048142A (en) | 2007-11-09 | 2007-11-09 | ECC processing unit of the nonvolatile memory device |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20090048142A true KR20090048142A (en) | 2009-05-13 |
Family
ID=40857370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070114373A Withdrawn KR20090048142A (en) | 2007-11-09 | 2007-11-09 | ECC processing unit of the nonvolatile memory device |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20090048142A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8615702B2 (en) | 2010-12-09 | 2013-12-24 | Samsung Electronics Co., Ltd. | Method and apparatus for correcting errors in memory device |
US11249848B2 (en) | 2020-06-18 | 2022-02-15 | Samsung Electronics Co., Ltd. | Error check code (ECC) decoder and memory system including ECC decoder |
-
2007
- 2007-11-09 KR KR1020070114373A patent/KR20090048142A/en not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8615702B2 (en) | 2010-12-09 | 2013-12-24 | Samsung Electronics Co., Ltd. | Method and apparatus for correcting errors in memory device |
US11249848B2 (en) | 2020-06-18 | 2022-02-15 | Samsung Electronics Co., Ltd. | Error check code (ECC) decoder and memory system including ECC decoder |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11386952B2 (en) | Memory access module for performing a plurality of sensing operations to generate digital values of a storage cell in order to perform decoding of the storage cell | |
US8140935B2 (en) | ECC controller for use in flash memory device and memory system including the same | |
KR100842680B1 (en) | Error Correction Controller of Flash Memory Device and Memory System Including It | |
US10347330B2 (en) | Solid state storage device and reading control method thereof for read retry process with optimal read voltage set | |
US9311970B2 (en) | Systems and methods of storing data | |
US8898374B2 (en) | Flash memory device and method for managing flash memory device | |
JP3982639B2 (en) | Method for reading data from a memory having multi-level cells | |
US10430275B2 (en) | Memory system | |
KR20100096457A (en) | Memory system and data processing method thereof | |
JP2012137994A (en) | Memory system and controlling method thereof | |
US20100306619A1 (en) | Controller and data access method for flash memories | |
CN106469099A (en) | Error correcting in the case of application WOM code | |
US20210005255A1 (en) | Resistive memory apparatus and method for writing data thereof | |
KR20090048142A (en) | ECC processing unit of the nonvolatile memory device | |
US20160071597A1 (en) | Storage device, memory controller and memory control method | |
US12277966B2 (en) | Memory access module for performing a plurality of sensing operations to generate digital values of a storage cell in order to perform decoding of the storage cell |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20071109 |
|
PG1501 | Laying open of application | ||
PC1203 | Withdrawal of no request for examination | ||
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |