최근 각종 전자 기기들은 프로세서 및 램 등의 주 기억 장치의 속도에 비해 보조 기억 장치의 속도가 현저히 느려 연산 속도에 있어 병목 현상이 심화되고 있다. 하드 디스크 드라이브(Hard Disk Drive : 이하 HDD)와 같은 기존의 보조 기억 장치들은 병목현상을 발생시킬 뿐만 아니라 충격에 의해 쉽게 데이터가 훼손될 우려가 있었다. 이에 MOSFET 구조를 응용한 반도체 소자로 구성된 솔리드 스테이트 드라이브(Solid State Drive : 이하 SSD)가 차세대 보조기억 장치로서 부각되고 있다.Recently, various electronic devices have significantly slowed the speed of the auxiliary memory device compared to the speed of the main memory device such as the processor and the RAM, and thus, the bottleneck in the computational speed is intensified. Existing secondary storage devices, such as hard disk drives (HDDs), not only cause bottlenecks but also easily damage data by shock. As a result, solid state drives (SSDs) composed of semiconductor devices using a MOSFET structure are emerging as next-generation auxiliary storage devices.
SSD는 기존의 보조기억 장치들에 비해 작업 처리 속도가 빠르고, 데이터가 저장된 소자로 임의접근(Random Access)이 가능하여 탐색시간으로 인한 시간지연 없이 고속으로 데이터를 입출력 할 수 있다는 장점을 갖고 있다. 또한, 기계적 지연이나 실패율이 현저히 낮고 외부의 충격에도 데이터가 쉽게 손상되지 않는 강인한 특성을 갖는다. 뿐만 아니라, SSD는 소모 전력이 작고, 별도로 요구되는 기계 장치의 구동이 없어 저발열, 저소음 및 저전력 구동이 가능해 HDD에 비해 이를 포함하는 제품의 소형화, 경량화가 용이하다.SSD has the advantage of faster processing speed than conventional auxiliary memory devices, and allows random access to data storage devices so that data can be input and output at high speed without time delay due to search time. In addition, the mechanical delay or failure rate is remarkably low, and it has a robust characteristic that the data is not easily damaged by external shock. In addition, since SSD consumes less power and requires no driving of mechanical devices, it is possible to generate low heat, low noise, and low power, which makes it easier to reduce the size and weight of a product including the HDD.
SSD에는 노어(NOR) 방식으로 구성되는 노어 플래시 메모리 및 낸드(NAND) 방식으로 구성되는 낸드 플래시 메모리가 있다. 그 중 낸드 플래시는 대용량으로 만들기가 용이하고, 읽기/쓰기 속도가 빠른 장점을 갖기에, 대부분의 대용량 SSD에서 플래시 메모리가 일반적으로 사용되고 있다. 낸드 플래시 메모리 소자는 메모리 저장 밀도의 증가를 위해, 미세 공정의 사용과 셀 당 저장 비트 수의 증가를 통해 미세화, 다치화(Multi-value) 되어 가는 추세이나 이로 인해 소자의 신뢰성 악화와 수명 단축 등의 부작용이 증대되고 있는 실정이다.SSDs include NOR flash memory configured in NOR and NAND flash memory configured in NAND. Among them, NAND flash is easy to make into a large capacity and has a fast read / write speed. Therefore, flash memory is generally used in most SSDs. NAND flash memory devices tend to be miniaturized and multi-valued through the use of micro processes and increased number of storage bits per cell to increase memory storage density. Side effects are increasing.
도 1은 플래시 메모리에서 셀당 저장되는 비트수에 따른 문턱 전압의 분포를 도시한 도면이다.1 is a diagram illustrating a distribution of threshold voltages according to the number of bits stored per cell in a flash memory.
도 1을 참조하면, SLC(Single-Level Cell) 플래시 메모리(a)는 하나의 셀당 1 비트의 정보를 저장하는 낸드 소자이고, MLC(Multi-Level Cell) 플래시 메모리(b)는 2 비트의 정보를, TLC(Tri-Level Cell) 플래시 메모리(c)는 3 비트의 정보를, QLC(Quad-Level Cell) 플래시 메모리(d)는 4 비트의 정보를 저장하는 낸드 소자이다. 도 1의 (a), (b), (c), (d) 각각에서 E는 플래시 메모리의 각 셀의 데이터가 소거(Erase)된 상태를 의미한다.Referring to FIG. 1, a single-level cell (SLC) flash memory (a) is a NAND element that stores one bit of information per cell, and a multi-level cell (MLC) flash memory (b) is two bits of information. The Tri-Level Cell (TLC) flash memory (c) is a NAND element that stores three bits of information, and the Quad-Level Cell (QLC) flash memory (d) stores four bits of information. In (a), (b), (c), and (d) of FIG. 1, E denotes a state in which data of each cell of the flash memory is erased.
도 1에 도시된 바와 같이, 한 셀 당 저장하는 비트 수가 증가함에 따라, 잡음 여유 (Noise Margin)가 줄어들게 되고, 이로 인해 읽기 동작 시 레벨 간 간섭에 의한 오류가 발생할 확률이 증가하며, 읽기/쓰기 동작이 반복 될수록 오류 발생 확률이 크게 증가하여 제품의 신뢰도가 떨어지는 문제가 발생한다. 그러므로 저전력 및 높은 처리량의 오류정정회로는 합리적인 가격과 안정적인 낸드 플래시 메모리를 설계하는데 필수적인 요소이다.As shown in FIG. 1, as the number of bits to be stored per cell increases, noise margin is reduced, which increases the probability of an error caused by inter-level interference during a read operation, and increases read / write. As the operation is repeated, the probability of error is greatly increased, resulting in a problem of low reliability of the product. Therefore, low-power and high-throughput error correction circuits are essential to designing affordable and reliable NAND flash memories.
오류 정정 회로는 위해 일반적으로 오류 정정부호를 사용하는데, 오류 정정부호는 오류의 탐지 및 오류의 정정을 위한 정보를 담은 여분의 비트들을 필요로 한다. 따라서 여분 비트들을 저장하기 위해 여분 셀이 요구된다. 하지만, 저장 매체의 저장 용량을 최대화하기 위해서는 여분 비트를 저장하기 위해 필요한 셀의 면적이 최소화되어야 하므로, 여분 비트를 최소화 할 필요성이 있다.The error correction circuit generally uses an error correction code, which requires extra bits containing information for detecting and correcting the error. Thus, extra cells are required to store the extra bits. However, in order to maximize the storage capacity of the storage medium, an area of a cell required to store the extra bits should be minimized, and thus there is a need to minimize the extra bits.
또한, 저장 데이터 오류의 증가로, 오류 개수에 따라 지수적으로 증가하는 복잡도와 많은 여분 비트를 요하는 기존의 BCH(Bose-Chaudhuri-Hocquenghem) 부호나 RS(Reed-Solomon) 부호를 대체할 새로운 오류 정정 부호가 필요하다.In addition, the increase in stored data errors, which will replace the existing Bose-Chaudhuri-Hocquenghem (BCH) code or Reed-Solomon (RS) code, which requires exponentially increasing complexity with a large number of errors. Correction code is required.
저밀도 패리티 검사(Low-Density Parity-Check : 이하 LDPC) 부호는 오류 정정 부호로서 BP (Belief Propagation) 알고리즘과 같은 메시지 경과 알고리즘 (message passing algorithm)을 이용하여 섀넌 (Shannon)의 채널 용량 한계에 근접하는 오류 정정 성능을 보일 수 있다. 이러한 고성능의 오류정정 능력으로 인해 통신을 비롯한 오류정정이 요구되는 많은 분야에서 차세대 오류정정 부호로서 각광을 받고 있다. 하지만 저밀도 패리티 검사 부호의 복호 성능을 온전히 이끌어내기 위해서는 복호부에 연판정(Soft Decision) 정보가 필수적이나, 플래시 메모리의 경우 복호부에 경판정(Hard Decision) 정보만이 전달되기 때문에 저밀도 패리티 검사 부호의 성능을 충분히 활용하지 못하고 있는 실정이다.Low-Density Parity-Check (LDPC) codes are error correction codes that approach the Shannon's channel capacity limits using a message passing algorithm such as the BP (Belief Propagation) algorithm. It can show error correction performance. Due to this high performance error correction capability, it has been in the spotlight as the next generation error correction code in many fields that require error correction including communication. However, in order to derive the decoding performance of the low-density parity check code, soft decision information is essential to the decoding part. However, in the case of flash memory, only the hard decision information is transmitted to the decoding part, so the low-density parity check code is transmitted. The situation is not fully utilized.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.In order to fully understand the present invention, the operational advantages of the present invention, and the objects achieved by the practice of the present invention, reference should be made to the accompanying drawings which illustrate preferred embodiments of the present invention and the contents described in the accompanying drawings.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로서, 본 발명을 상세히 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 설명하는 실시예에 한정되는 것이 아니다. 그리고, 본 발명을 명확하게 설명하기 위하여 설명과 관계없는 부분은 생략되며, 도면의 동일한 참조부호는 동일한 부재임을 나타낸다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. As those skilled in the art would realize, the described embodiments may be modified in various different ways, all without departing from the spirit or scope of the present invention. In addition, in order to clearly describe the present invention, parts irrelevant to the description are omitted, and the same reference numerals in the drawings indicate the same members.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 “포함”한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 “...부”, “...기”, “모듈”, “블록” 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.Throughout the specification, when a part is said to "include" a certain component, it means that it may further include other components, without excluding the other components unless otherwise stated. In addition, the terms “... unit”, “... unit”, “module”, “block”, etc. described in the specification mean a unit that processes at least one function or operation, which means hardware, software, or hardware. And software.
본 발명에서 채널은 데이터 및 신호가 전송될 수 있는 모든 경로를 의미하며 유선 및 무선 경로를 모두 포함할 수 있다.In the present invention, the channel means all paths through which data and signals can be transmitted, and can include both wired and wireless paths.
본 발명에서는 메모리 셀에 저장된 디지털 값인 데이터를 기초로 설명하였으나, 본 발명은 통신 시스템과 같은 다양 분야에 적용될 수 있으므로, 본 발명에서 신호 및 심벌도 데이터와 동일한 의미로 사용될 수 있다.Although the present invention has been described based on data, which is a digital value stored in a memory cell, the present invention can be applied to various fields such as a communication system, and thus, the signals and symbols may be used as the same meaning in the present invention.
도 2는 일반적인 플래시 메모리의 구조를 도시한 도면이다.2 is a diagram illustrating a structure of a general flash memory.
이하, 도 2를 참조하여 낸드 플래시 메모리의 구조, 오류정정 부호의 부/복호 단위 및 간섭 채널 환경에 대해 설명한다.Hereinafter, a structure of a NAND flash memory, a sub / decoding unit of an error correction code, and an interference channel environment will be described with reference to FIG. 2.
도 2를 참조하면, 낸드 플래시 메모리의 오류정정 부호는 1개의 페이지 단위로 읽고 쓴다. 1개의 블록은 다수의 워드 라인 (word line) 으로 구성되며 이와 별개로 비트 라인 (bit line)이 있다. 1개의 워드라인은 홀/짝 (odd/even) 비트 라인으로 나눌 수 있으며 각 셀(cell)을 구성하는 비트 수에 따라 다시 세분화하여 페이지 단위로 나뉜다. 예를 들면 한 셀에 2비트를 저장하는 MLC 방식의 경우 1개의 워드 라인은 홀/짝 비트라인, 그리고 각 비트 라인에 속하는 셀의 MSB(Most Significant Bit)/LSB(Least Significant Bit) 단위, 즉 4개의 페이지로 구성된다. 상기한 바와 같이, 낸드 플래시 메모리의 오류정정 부호는 1개의 페이지 단위로 셀에 발생한 오류를 정정한다. 여기서 간섭 채널 환경이란 채널에 입력한 정보들 간에 간섭이 발생하여 원본 정보에 손상이 일어날 수 있는 채널 환경을 의미한다. 도 2와 같은 상태에서 특정 셀에 입력한 정보는, 인접한 위치에 존재하는 셀들에 정보가 새롭게 입력되는 경우에 발생한 간섭현상에 의해 원본 정보가 손상될 수 있다.Referring to FIG. 2, the error correction code of the NAND flash memory is read and written in units of one page. One block is composed of a plurality of word lines and there is a bit line separately. One word line may be divided into odd / even bit lines and may be divided into pages by subdividing according to the number of bits constituting each cell. For example, in the MLC method of storing two bits in one cell, one word line is an odd / even bit line, and a MSB (Least Significant Bit) / LSB (Least Significant Bit) unit of a cell belonging to each bit line. It consists of four pages. As described above, the error correction code of the NAND flash memory corrects an error occurring in a cell by one page unit. Here, the interference channel environment refers to a channel environment in which interference may occur between information input to a channel and damage to original information. In the state shown in FIG. 2, original information may be damaged by interference caused when information is newly input to cells existing in adjacent locations.
본 발명은 다양한 간섭 채널 환경에 널리 쓰일 수 있으나, 여기서는 설명의 편의를 위해 MLC 플래시 메모리 환경에서의 채널을 가정하여 설명한다. MLC 플래시 메모리 환경에서 채널 환경은 수학식 1과 같이 정의 될 수 있다.Although the present invention may be widely used in various interference channel environments, it is assumed herein for the convenience of description to assume channels in an MLC flash memory environment. In the MLC flash memory environment, the channel environment may be defined as inEquation 1.
수학식 1에서 x 는 메모리에 입력된 데이터들을 나타낸다. 즉, 간섭에 의해 피해를 받는 입력 데이터를 비롯하여 간섭효과를 발생시키는 데이터들이다. 일반적인 채널에서는 채널 입력 전체 데이터로 볼 수 있다.InEquation 1, x represents data input to the memory. That is, the data generating the interference effect, including the input data damaged by the interference. In a typical channel it can be seen as full channel input data.
rjk(x)는 간섭에 의해 입력한 데이터가 변한 결과, 즉 손상된 데이터 값인 신호를 의미하며 첨자는 심볼의 위치를 의미한다. 여기에서는 일예로 j번째 비트라인 k번째 워드라인에 위치한 셀의 데이터가 간섭 등에 의해 변형된 신호 값을 말한다. 그리고 오류 정정 회로에서는 변경된 신호가 입력되므로, rjk(x)는 오류 정정 회로의 입력 신호이다. 일반적인 채널에서도 의미는 유사하다.rjk (x) denotes a signal that is a result of a change in data input by interference, that is, a corrupted data value, and a subscript denotes a symbol position. In this case, for example, the data of a cell located in the j-th bit line, the k-th word line, is a signal value modified by interference or the like. Since the changed signal is input from the error correction circuit, rjk (x) is an input signal of the error correction circuit. In general channels, the meaning is similar.
xjk는 실제로 입력한 심볼, 즉 원본 데이터를 의미한다. 첨자에 대한 의미는 상기한 바와 같다. MLC를 가정한 상황이므로 도 1을 참조하면, xjk가 실제로 가질 수 있는 값은 {E, PV1, PV2, PV3} 중 하나이다. 일반적인 채널에서는 채널에 입력한 원본 심볼(신호)을 의미한다.xjk stands for the actual input symbol, that is, the original data. The meaning for the subscript is as described above. Since MLC is assumed, referring to FIG. 1, xjk may actually have one of {E, PV1, PV2, and PV3}. In a general channel, it means an original symbol (signal) input to the channel.
fjk(x)는 첨자가 의미하는 위치에 가해지는 평균적인 간섭의 크기를 의미한다. 즉 x 라는 패턴의 데이터를 입력하였을 경우 특정 위치의 데이터에 가해지는 평균적인 간섭 혹은 오류의 크기이다. 메모리 혹은 일반적인 환경에서 이러한 평균적인 간섭의 크기는 반복적인 실험과 통계적 분석을 통해 얻어질 수 있다.fjk (x) means the average amount of interference applied to the position of the subscript. That is, the average amount of interference or error applied to data at a specific position when data of pattern x is input. In memory or general environments, this average amount of interference can be obtained through repeated experiments and statistical analysis.
njk(x)는 첨자가 의미하는 위치에 가해지는 임의의 잡음을 의미한다. 즉, 주어진 데이터 패턴 x에 대하여 손상된 데이터 rjk(x)에서 입력된 원본 심볼과 평균적인 간섭 xjk + fjk(x) 에 의한 영향을 제거하고 남는 잡음을 의미한다. 이러한 잡음 항은 통계적 분석으로부터 얻어진 평균적인 분산을 이용하여, 평균이 0이고 해당 분산을 갖는 가우시안 분포를 따르는 것으로 모델링 할 수 있다. 즉, fjk(x)와 같이 통계적 분석을 통해 얻어지나, fjk(x)와 달리 고정적이지 않고 분포에 따라 임의의 값을 가질 수 있다.njk (x) means any noise applied to the position indicated by the subscript. That is, it means the noise remaining after removing the influence of the average interference xjk + fjk (x) and the original symbol input from the corrupted data rjk (x) for the given data pattern x. This noise term can be modeled using a Gaussian distribution with a mean of zero and corresponding variance, using the average variance obtained from statistical analysis. In other words, past obtained through statistical analysis, such as fjk (x), according to the not fixed unlike the distribution fjk (x) may have any value.
수학식 1을 살펴보면 원본데이터에 가해지는 손상은 원본데이터와 주변 데이터의 패턴에 의해 결정된다고 할 수 있다. 수학식 1은 발생 가능한 모든 데이터 패턴에 대해 적용할 수 있다. 본 발명 또한 모든 데이터 패턴에 적용할 수 있는 방법을 제안하지만, 설명의 편의를 위해 여기서는 원본데이터에 가해지는 손상은 바로 이웃한 데이터에 의해서만 영향을 받는다고 가정한다. 이는 원본 데이터의 손상에 지배적인 영향을 미치는 데이터가 원본 데이터와 인접한 이웃 워드라인의 단일 데이터라는 기존의 플래시 메모리에 대한 연구결과를 따른 것이다. 이 경우 수학식 1은 수학식 2와 같이 간소화 할 수 있다.Looking atEquation 1 can be said that the damage to the original data is determined by the pattern of the original data and the surrounding data.Equation 1 may be applied to all possible data patterns. The present invention also proposes a method applicable to all data patterns, but for convenience of explanation, it is assumed here that damage to the original data is only affected by neighboring data. This is based on a study of the existing flash memory that the data that dominates the damage of the original data is a single data of neighboring word lines adjacent to the original data. In this case,Equation 1 may be simplified as inEquation 2.
수학식 2에 따르면, 손상된 k 번째 데이터는 채널에 입력한 원본데이터와 이웃한 k+1 번째 데이터에 의해 결정될 수 있다. 또한 상기한 바와 같이 설명의 편의를 위해 MLC 플래시 메모리를 가정하였으므로 xk와 xk+1은 다음과 같이 값의 범위를 표현할 수 있다.According toEquation 2, the corrupted k-th data may be determined by the original data input to the channel and the neighboring k + 1th data. In addition, since MLC flash memory is assumed for convenience of description as described above, xk and xk + 1 may represent a range of values as follows.
수학식 3에서는 설명의 편의를 위해 도 1에서의 소거(E) 상태를 PV0로 표현하였다.InEquation 3, the erase (E) state of FIG. 1 is expressed as PV0 for convenience of description.
이와 같이 가정된 경우 f(xk, xk+1)는 발생 가능한 16가지 패턴에 대해 결정적인 값이 패턴에 대한 통계적 분석을 통해 얻어진다. n(xk, xk+1)은 발생 가능한 16가지 패턴에 대해 각각의 분포에 따라 결정된다. n(xk, xk+1)은 임의의 분포를 따를 수 있으나, 여기에서는 평균이 0이고 통계적 분석을 통해 얻어진 n(xk, xk+1)의 분산 σ2(xk, xk+1)를 분산으로 갖는 가우시안 분포를 따른다고 가정한다.In this case, f (xk , xk + 1 ) is obtained by statistical analysis of the patterns whose values are decisive for the 16 possible patterns. n (xk , xk + 1 ) is determined according to the distribution of each of the 16 possible patterns. n (xk , xk + 1 ) can follow any distribution, but here the variance of n (xk , xk + 1 ) obtained by statistical analysis with a mean of 0 σ2 (xk , xk Suppose that we follow a Gaussian distribution with+1 ) as variance.
또한 경판정 정보만이 취득 가능한 플래시 메모리의 특성을 반영하기 위해 다음과 같은 L 레벨의 양자화 방식을 가정한다.In addition, the following L-level quantization scheme is assumed to reflect the characteristics of the flash memory that can acquire only hard decision information.
도 3은 플래시 메모리에서의 양자화 방법을 도시한 도면이다.3 is a diagram illustrating a quantization method in a flash memory.
여기서 dk는 rk의 양자화된 값이다. 그리고 D는 양자화 함수이고, V는 양자화 값의 집합으로, 양자화 값의 집합(V)에 포함될 수 있는 v는 양자화 값 원소이다.Where dk is the quantized value of rk . D is a quantization function, V is a set of quantization values, and v, which may be included in a set (V) of quantization values, is a quantization value element.
수학식 3을 참조하면, 양자화 값의 집합(V)에 포함될 수 있는 양자화 값 원소{v0, v1, ..., vL-1}는 {PV0, PV1, PV2, PV3}이다.Referring toEquation 3, the quantization value elements {v0 , v1 , ..., vL-1 } that may be included in the set of quantization values (V) are {PV0 , PV1 , PV2 , PV3 }to be.
즉, 메모리에 저장되어 있는 실제 값 rk에는 접근이 불가능하고 rk가 양자화 된 dk만이 접근 가능한 것이다. 여기에서 D는 양자화 함수를 나타내며, Ri와 Ri+1은 각각 i번째 양자화 레벨 값을 갖게 되는 실제 값 범위의 하한과 상한을 의미한다. MLC 플래시 메모리의 경우 각 셀은 2비트 정보를 갖기 때문에 양자화 레벨 L=4 이다.That is, the actual value rk stored in the memory is not accessible, and only dk where rk is quantized is accessible. Here, D represents a quantization function, and Ri and Ri + 1 mean a lower limit and an upper limit of an actual range of values having an i th quantization level value, respectively. In the case of MLC flash memory, since each cell has two bits of information, the quantization level L = 4.
이러한 가정 하에서 간섭제거에 효과적으로 알려진 최대 우도 순차 탐색(Maximum Likelihood Sequence Detection : 이하 MLSD) 알고리즘을 채널에 맞게 변형함으로써 기존에 사용되던 오류정정 부호 복호기의 입력을 개선할 수 있다. 간섭에 의한 영향을 고려함으로써 복호기의 입력이 보다 낮은 비트 오류율 (Bit Error Rate (BER))을 갖게 되면, 기존 방식에 오류정정 성능이 향상될 수 있다. 우선 다음과 같이 비터비(Viterbi) 알고리즘의 브랜치 메트릭(Branch metric : BM)을 변형함으로써 간섭을 고려한 MLSD 알고리즘을 생각할 수 있다.Under these assumptions, the maximum likelihood sequence detection (MLSD) algorithm, which is known for interference cancellation, can be modified to fit the channel to improve the input of the error correction code decoder. If the input of the decoder has a lower bit error rate (BER) by considering the influence of interference, error correction performance can be improved in the conventional scheme. First, the MLSD algorithm considering interference can be considered by modifying the branch metric (BM) of the Viterbi algorithm.
여기서 BM 은 브랜치 메트릭을 나타내고, σ(xk, xk+1)는 n(xk, xk+1)의 표준 편차를 나타낸다.Where BM represents the branch metric and σ (xk , xk + 1 ) represents the standard deviation of n (xk , xk + 1 ).
하지만 플래시 메모리와 같이 경판정 정보만이 유효한 상황에서 수학식 6의 브랜치 메트릭은 수학식 7과 같이 변형될 수 있다.However, in the situation where only hard decision information such as flash memory is valid, the branch metric of Equation 6 may be modified as in Equation 7.
여기서 BM 은 브랜치 메트릭을 나타내고, σ(xk, xk+1)는 n(xk, xk+1)의 표준 편차를 나타낸다.Where BM represents the branch metric and σ (xk , xk + 1 ) represents the standard deviation of n (xk , xk + 1 ).
수학식 7의 브랜치 메트릭을 이용하면, 인접한 데이터에 의한 간섭의 영향이 포함되어 양자화된 원본 데이터의 값을 획득할 수 있다. 이후 일반적인 오류 정정 회로와 마찬가지로 오류 정정 부호를 사용하여 오류를 정정하면, 매우 정확한 데이터를 획득할 수 있다. 또한 간섭에 의한 오류를 1차적으로 줄인 상태에서 오류 정정 부호를 사용하여 오류를 정정하게 되므로, 오류 개수가 적은 상태에서 오류를 정정하게 되므로, 오류 정정 시에 필요한 여분 비트의 수를 최소화할 수 있다.Using the branch metric of Equation 7, the influence of interference by adjacent data may be included to obtain a value of the quantized original data. Then, as in the general error correction circuit, if the error is corrected using an error correction code, very accurate data can be obtained. In addition, since the error is corrected by using an error correction code in a state where the error due to interference is primarily reduced, the error is corrected in a state where the number of errors is small, thereby minimizing the number of extra bits required for error correction. .
상기한 바와 같이 개선된 오류 정정 성능을 위해서는 오류 정정하고자 하는 셀과 더불어 인접한 셀의 데이터(또는 심볼) 값을 알아야 한다는 단점이 있을 수 있으나, 대개 인접한 셀들은 연속적으로 복호될 가능성이 높기에 도시한 성능개선을 위한 비용으로서는 오히려 저렴하다고 볼 수 있다.As described above, the improved error correction performance may be disadvantageous in that the data (or symbol) value of the adjacent cell is known in addition to the cell to be corrected, but the adjacent cells are likely to be sequentially decoded. As a cost for improving the performance, it can be seen as cheap.
본 발명에서 제안하는 간섭채널에서의 오류정정 방법은 플래시 메모리 장치뿐만 아니라 이와 유사한 채널을 갖는 상황이라면 어디에든 적용될 수 있다. 상기한 바와 같이 기본적으로 낸드 플래시 메모리 장치에 적용될 수 있으나, 노어 플래시 메모리와 같은 다른 종류의 메모리 장치에도 적용 될 수 있다.The error correction method in the interference channel proposed by the present invention can be applied to any situation having a similar channel as well as a flash memory device. As described above, the present invention may be basically applied to NAND flash memory devices, but may also be applied to other types of memory devices such as NOR flash memory.
도 4는 본 발명의 일 실시예에 따른 오류 정정 회로를 나타낸 블록도이다.4 is a block diagram illustrating an error correction circuit according to an exemplary embodiment of the present invention.
도 4를 참조하면, 본 발명에 따른 오류 정정 회로(100)는 데이터 판정부(110)와 오류 정정부(120)를 포함한다.Referring to FIG. 4, theerror correction circuit 100 according to the present invention includes adata determination unit 110 and anerror correction unit 120.
데이터 판정부(110)는 간섭에 의해 변경된 데이터들을 수신하고, 데이터들 사이의 간섭의 영향을 고려하여 수신된 데이터의 데이터 값을 판정한다. 데이터 판정부(110)는 데이터들 사이의 간섭의 영향을 고려하기 위해 현재 데이터(rk) 뿐만 아니라 이후 연속하여 인가되는 소정 개수의 인접 데이터(rk+1, ...)를 수신한다. 그리고 현재 데이터(rk)의 데이터 값을 인접 데이터(rk+1, ...)에 의한 간섭의 영향을 고려한 최대 우도 순차 탐색 알고리즘을 적용하여 현재 데이터(rk)에 대한 판정 데이터(xk)를 계산하여 출력한다. 이때, 최대 우도 순차 탐색 알고리즘은 데이터가 양자화된 값을 갖는 경우에, 경판정(Hard Decision) 정보만이 유효하므로, 변경된 브랜치 메트릭을 이용하여 판정 데이터(xk)를 계산한다.Thedata determination unit 110 receives the data changed by the interference, and determines the data value of the received data in consideration of the influence of the interference between the data. Thedata determination unit 110 receives not only the current data rk but also a predetermined number of adjacent data rk + 1 ,... Which are subsequently applied in order to consider the influence of the interference between the data. And adjacent to the data value of the current data (rk) data (rk + 1, ...) determined data on the maximum likelihood sequential search algorithm to apply the current data (rk) in consideration of the influence of the interference by the (x Calculate and printk ). In this case, since the maximum likelihood sequential search algorithm only the hard decision information is valid when the data has a quantized value, the maximum likelihood sequential search algorithm calculates the decision data xk using the changed branch metric.
오류 정정 회로(120)는 복수개의 판정 데이터(xk, xk+1, ...)를 수신하고, 수신된 복수개의 판정 데이터(xk, xk+1, ...)를 오류 정정 부호를 이용하여 오류 정정하여 오류가 정정된 출력 데이터(ck, ck+1, ...)를 출력한다.Theerror correction circuit 120 has a plurality of detection data (xk, xk + 1, ...) for receiving and determining the received plurality of data (xk, xk + 1, ...), the error correction Error correction is performed using a sign to output the error-corrected output data (ck , ck + 1 , ...).
도 5는 도 4의 오류 정정 회로를 포함하는 플래시 메모리 장치를 나타낸 블록도이다.FIG. 5 is a block diagram illustrating a flash memory device including the error correction circuit of FIG. 4.
플래시 메모리 장치는 전기적으로 재기록이 가능한 복수개의 메모리 셀이 매트릭스 형상으로 배열된 메모리 셀 어레이(200)와, 메모리셀 어레이(300)에 기록될 기록 데이터 및 메모리 셀로부터 독출된 데이터를 래치하는 페이지 버퍼(400), 기록 데이터로부터 오류를 정정 및 검출하기 위한 오류 정정 부호를 발생시킴과 더불어 독출 데이터를 출력하는 경우 독출 데이터와 오류 정정 부호로부터 독출 데이터에서의 오류를 정정 및 검출하는 오류 정정 회로(100), 메모리 셀에서의 데이터를 기록 및 독출하기 위한 제어신호를 출력하고 어드레스를 디코드함과 더불어 페이지 버퍼(400)로부터의 데이터의 입력/출력을 제어하는 어드레스 디코딩 및 제어 회로(300), 어드레스 디코딩 및 제어 회로(300)에서 제공되는 어드레스 정보에 응답하여 동작하는 Y-게이팅 회로(500)로 구성된다. 메모리셀 어레이(200)는 일련의 메모리 셀들로 이루어진 메모리 블록이 연속하여 배열되어 있는 형태로 구성되고, 이러한 메모리 블록에 존재하는 메모리 셀들은 일련의 비트라인을 통하여 페이지 버퍼(400)에 연결된다.The flash memory device includes amemory cell array 200 in which a plurality of electrically rewritable memory cells are arranged in a matrix form, and a page buffer for latching write data to be written to thememory cell array 300 and data read from the memory cells. 400, anerror correction circuit 100 for generating an error correction code for correcting and detecting an error from the write data, and for correcting and detecting an error in the read data from the read data and the error correction code when outputting the read data. Address decoding andcontrol circuit 300 for controlling the input / output of data from thepage buffer 400 while outputting a control signal for writing and reading data in the memory cell and decoding the address. And a Y-gating cycle that operates in response to the address information provided from thecontrol circuit 300. It consists of 500. Thememory cell array 200 is configured in a form in which memory blocks consisting of a series of memory cells are continuously arranged, and memory cells existing in the memory block are connected to thepage buffer 400 through a series of bit lines.
도 5에서 오류 정정 회로(100)는 도4 에 도시된 오류 정정회로로서, 데이터 판정부(110)와 오류 정정부(120)를 구비하고, 데이터 판정부(110)가 1차적으로 입력되는 데이터를 판정한 이후 오류 정정부(120)가 오류 정정 부호를 이용하여 데이터를 정정하므로, 오류 정정율이 높을 뿐만 아니라 오류 정정 부호를 저장하기 위한 여분 메모리 셀의 개수를 크게 줄일 수 있다. 즉 동일한 개수의 메모리 셀을 갖는 플래시 메모리 장치에서 기존의 플래시 메모리 장치보다 저장 용량을 더욱 크게 할 수 있다.In FIG. 5, theerror correction circuit 100 is an error correction circuit illustrated in FIG. 4, and includes adata determination unit 110 and anerror correction unit 120, and thedata determination unit 110 primarily inputs data. Since theerror correction unit 120 corrects the data by using the error correction code after determining, the error correction rate is high and the number of spare memory cells for storing the error correction code can be greatly reduced. That is, a flash memory device having the same number of memory cells can have a larger storage capacity than a conventional flash memory device.
도 6은 도 5의 플래시 메모리 장치를 포함하는 SSD를 나타낸 블록도이다.6 is a block diagram illustrating an SSD including the flash memory device of FIG. 5.
도 6에 도시된 바와 같이, 통상적으로 SSD는 저장 용량에 따라 적어도 하나의 플래시 메모리 장치(11 ~ 1n)를 구비한다. 그리고 적어도 하나의 플래시 메모리 장치(11 ~ 1n) 각각에 대응하여 구비되어, 대응하는 플래시 메모리 장치(11 ~ 1n)로 입출력되는 데이터를 버퍼링하는 적어도 하나의 버퍼(21 ~ 2n)와 SSD로 입출력되는 데이터를 연결되는 외부 장치와의 인터페이스에 적합하도록 변환하고, 적어도 하나의 버퍼(21 ~ 2n) 및 적어도 하나의 플래시 메모리 장치(11 ~ 1n)하는 입출력 제어부(3)를 구비한다.As shown in FIG. 6, the SSD typically includes at least oneflash memory device 11 to 1n according to a storage capacity. And at least onebuffer 21 to 2n that is provided corresponding to each of the at least oneflash memory device 11 to 1n and buffers data input and output to the correspondingflash memory device 11 to 1n and input / output to the SSD. An input /output control unit 3 converts data to be suitable for an interface with an external device to be connected, and includes at least onebuffer 21 to 2n and at least oneflash memory device 11 to 1n.
도 5에 도시한 바와 같이, 적어도 하나의 플래시 메모리 장치(11 ~ 1n) 각각에는 인접한 데이터에 의한 간섭의 영향을 고려하여 오류를 정정하는 오류 정정 회로(100)를 포함한다.As shown in FIG. 5, each of the at least oneflash memory device 11 to 1n includes anerror correction circuit 100 that corrects an error in consideration of the influence of interference by adjacent data.
그리고 도 6에서는 적어도 하나의 버퍼(21 ~ 2n)가 적어도 하나의 플래시 메모리 장치(11 ~ 1n) 각각에 대응하여 구비되는 것으로 설명하였으나, 경우에 따라서는 복수개의 플래시 메모리 장치(11 ~ 1n)에 하나의 버퍼가 구비되어도 무방하다. 그리고 오류 정정 회로(100) 또한 복수개의 플래시 메모리 장치(11 ~ 1n)에 하나의 오류 정정 회로(100)가 구비될 수도 있다.6 illustrates that at least onebuffer 21 to 2n is provided corresponding to each of the at least oneflash memory device 11 to 1n. However, in some cases, the plurality offlash memory devices 11 to 1n may be provided. One buffer may be provided. Theerror correction circuit 100 may also include oneerror correction circuit 100 in theflash memory devices 11 to 1n.
SSD와 같이 복수개의 플래시 메모리 장치(11 ~ 1n)가 구비될 수 있는 기억 장치에서는 플래시 메모리 장치(11 ~ 1n) 각각에서 여분 비트의 수를 줄일 수 있으므로, 전체적으로 데이터 저장 용량을 크게 확대 할 수 있다.In a memory device in which a plurality offlash memory devices 11 to 1n may be provided, such as an SSD, the number of extra bits may be reduced in each of theflash memory devices 11 to 1n, thereby greatly increasing the overall data storage capacity. .
도 7은 본 발명의 다른 실시예에 따른 통신 시스템을 나타낸다.7 illustrates a communication system according to another embodiment of the present invention.
도 5 및 도 6에서는 본 발명의 일실시예에 따른 오류 정정 회로가 플래시 메모리 장치에 적용되는 것으로 설명하였으나, 본 발명의 오류 정정 회로는 일반적인 통신 시스템(500)에도 적용될 수 있다. 통신 시스템(500)은 송신 장치(510) 및 수신 장치(520)를 구비한다. 송신 장치(510)는 전송하고자 하는 데이터(x)를 입력 받아 변조하는 데이터 변조부(511) 및 변조된 데이터를 기설정된 통신 방식에 따라 송신하는 데이터 송신부(512)를 구비한다.5 and 6 illustrate that an error correction circuit according to an embodiment of the present invention is applied to a flash memory device, the error correction circuit of the present invention may be applied to ageneral communication system 500. Thecommunication system 500 includes a transmittingdevice 510 and areceiving device 520. Thetransmitter 510 includes adata modulator 511 for receiving and modulating data x to be transmitted and adata transmitter 512 for transmitting the modulated data according to a preset communication scheme.
그리고 수신 장치(520)는 송신 장치(510)에서 송신한 신호를 수신하는 데이터 수신부(521)와 데이터 수신부(521)로부터 수신한 신호를 인가받아 복조하고, 오류를 정정하여 송신 장치에서 송신한 데이터를 복원하는 데이터 복조부(522)를 구비한다. 그리고 데이터 복조부(522)는 통신 오류를 줄이기 위해 본 발명에 따른 오류 정정 회로(100)를 포함할 수 있다.The receivingdevice 520 receives and demodulates the data received from thedata receiving unit 521 and thedata receiving unit 521 for receiving the signal transmitted from the transmittingdevice 510, corrects an error, and transmits the data transmitted from the transmitting device. And adata demodulation unit 522 for restoring the data. The data demodulator 522 may include anerror correction circuit 100 according to the present invention to reduce communication errors.
도 7에서는 무선 통신 시스템을 도시하였으나, 본 발명은 이에 한정되지 않으며, 유선 통신 시스템에도 적용될 수 있다. 또한 상기에서는 디지털 데이터 통신을 가정하여 데이터라는 표현을 사용하였으나, 아날로그 통신에서도 적용 가능하다.Although FIG. 7 illustrates a wireless communication system, the present invention is not limited thereto and may be applied to a wired communication system. In addition, although the expression "data" is used assuming digital data communication, it is also applicable to analog communication.
본 발명에 따른 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The method according to the invention can be embodied as computer readable code on a computer readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of the recording medium include a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, and the like, and also include a carrier wave (for example, transmission through the Internet). The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다.Although the present invention has been described with reference to the embodiments shown in the drawings, this is merely exemplary, and it will be understood by those skilled in the art that various modifications and equivalent other embodiments are possible.
따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.