KR20170140614A - Nand flash memory controller using compression rate and nand flash memory storing method using the same - Google Patents
Nand flash memory controller using compression rate and nand flash memory storing method using the same Download PDFInfo
- Publication number
- KR20170140614A KR20170140614A KR1020160073146A KR20160073146A KR20170140614A KR 20170140614 A KR20170140614 A KR 20170140614A KR 1020160073146 A KR1020160073146 A KR 1020160073146A KR 20160073146 A KR20160073146 A KR 20160073146A KR 20170140614 A KR20170140614 A KR 20170140614A
- Authority
- KR
- South Korea
- Prior art keywords
- bits
- flash memory
- data
- nand flash
- compression ratio
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/1012—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 using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
Description
본 발명은 압축률을 이용한 낸드 플래시 메모리 컨트롤러 및 이를 이용한 낸드 플래시 메모리 저장 방법에 관한 것으로서, 더욱 상세하게는 낸드 플래시 메모리의 데이터 저장 신뢰성을 높이기 위한 낸드 플래시 메모리 컨트롤러 및 이를 이용한 낸드 플래시 메모리 저장 방법에 관한 것이다.The present invention relates to a NAND flash memory controller using a compression ratio and a method for storing NAND flash memory using the same, and more particularly, to a NAND flash memory controller for enhancing data storage reliability of a NAND flash memory and a method for storing a NAND flash memory using the same. will be.
낸드 플래시 메모리(Nand Flash Memory)란 전원이 끊겨도 데이터를 보존하는 비휘발성 메모리의 일종으로 전기적인 방법으로 정보를 입출력할 수 있는 장치를 말한다. 낸드 플래시 메모리는 셀이 직렬로 배치되어 있으며, 좁은 면적에 집적 가능한 셀이 많고 대용량화가 가능하다. 또한, 제조 단가가 저렴하고 데이터를 기록하거나 지우는 속도가 빠르다. 이러한 장점으로 인해 MP3플레이어, 디지털카메라, 휴대용 저장 장치와 같은 휴대용 정보통신기기의 메모리에 주로 사용된다. NAND flash memory is a type of nonvolatile memory that stores data even when the power is turned off. It is a device that can input and output information by an electrical method. The NAND flash memory has cells arranged in series, and many cells that can be integrated in a narrow area can be increased in capacity. In addition, the manufacturing cost is low, and the data recording / erasing speed is high. Because of these advantages, it is mainly used in the memory of portable information communication devices such as MP3 players, digital cameras, and portable storage devices.
낸드 플래시 메모리는 각 셀의 컨트롤 게이트(control gate)에 전압을 걸어줌으로써 플로팅 게이트(floating gate)를 통해 셀에 전자를 채우는 방식으로 데이터를 기록한다. 예를 들어, 셀에 전자가 채워지면 1, 셀이 비워지면 0이 기록되는데 이러한 데이터 기록 방식을 SLC(Single Level Cell)라고 한다. 최근에는 하나의 셀에 저장하는 데이터의 양을 늘리기 위하여 셀을 채우는 전자의 양을 조절하는 방식을 도입하고 있는데 전자의 양을 4개 레벨로 나누어 데이터를 기록하는 방식을 MLC(Multi Level Cell), 8개 레벨로 나누어 데이터를 기록하는 방식을 TLC(Triple Level Cell)라고 한다.NAND flash memories write data in such a way that electrons are filled in cells through floating gates by applying a voltage to the control gates of each cell. For example, when the cell is filled with electrons, 1 is written. When the cell is empty, 0 is written. This data recording method is referred to as SLC (Single Level Cell). In recent years, a method of adjusting the amount of electrons filling a cell has been introduced to increase the amount of data stored in one cell. The method of recording data by dividing the amount of electrons into four levels is called MLC (Multi Level Cell) The method of dividing data into eight levels and recording data is called TLC (Triple Level Cell).
하지만, 설정된 양만큼 전자의 양을 정확하게 조절하는 것은 현재의 제어 기술로는 어려운 측면이 있다. 이에 따라, 낸드 플래시 메모리 컨트롤러가 낸드 플래시 메모리에 데이터를 저장 시 오류가 발생할 수 있다. 따라서, 낸드 플래시 메모리 컨트롤러는 데이터 저장 시 발생하는 오류를 검출하고 수정할 수 있도록 데이터와 함께 ECC(Error Correcting Code) 오류 정정 정보를 함께 저장한다. 그러므로, ECC 오류 정정 정보에 할당되는 저장 공간이 많을수록 데이터 오류 검출 및 수정 능력이 향상되고 데이터 안정성을 높일 수 있다. However, it is difficult to accurately control the amount of electrons by a set amount with current control technology. Accordingly, an error may occur when the NAND flash memory controller stores data in the NAND flash memory. Therefore, the NAND flash memory controller stores error correcting code (ECC) error correction information together with data to detect and correct errors occurring when data is stored. Therefore, the greater the storage space allocated to ECC error correction information, the better the data error detection and correction capability and the higher the data stability.
그러나, 낸드 플래시 메모리를 구성하는 셀의 개수는 제한되어 있으므로, 데이터 오류 검출 및 수정 능력을 향상시키기 위하여 ECC 오류 정정 정보에 할당되는 저장 공간을 늘릴수록 저장할 수 있는 데이터의 양은 적어지는 문제점이 있다. 뿐만 아니라, 기존의 인터페이스를 변경해야 하므로 제조 비용이 증가하는 문제점이 발생한다. However, since the number of cells constituting the NAND flash memory is limited, the amount of data that can be stored decreases as the storage space allocated to the ECC error correction information is increased in order to improve data error detection and correction capability. In addition, since the existing interface needs to be changed, the manufacturing cost increases.
본 발명의 배경이 되는 기술은 한국등록특허 제10-0816761호(2008.03.25.공고)에 개시되어 있다.The technology of the background of the present invention is disclosed in Korean Patent No. 10-0816761 (published on Mar. 25, 2008).
본 발명이 이루고자 하는 기술적 과제는 낸드 플래시 메모리의 데이터 저장 신뢰성을 높이기 위한 낸드 플래시 메모리 컨트롤러 및 이를 이용한 낸드 플래시 메모리 저장 방법을 제공하기 위한 것이다.SUMMARY OF THE INVENTION The present invention is directed to a NAND flash memory controller and a method for storing NAND flash memory using the NAND flash memory controller for enhancing data storage reliability of a NAND flash memory.
이러한 기술적 과제를 이루기 위한 본 발명의 실시예에 따르면 낸드 플래시 메모리 컨트롤러를 이용한 낸드 플래시 메모리 저장 방법에 있어서, 입력받은 원본 데이터의 압축률을 연산하는 단계, 상기 연산된 압축률 및 기 설정된 복수의 임계 범위를 이용하여 상기 원본 데이터의 부호율을 연산하는 단계, 상기 부호율에 따라 오류 정정 코드(error correcting code)의 비트 수를 결정하는 단계, 상기 결정된 비트 수에 따라 오류 정정 코드를 생성하는 단계, 상기 연산된 압축률에 따라 원본 데이터를 압축하여 압축 데이터를 생성하는 단계, 그리고 상기 생성된 오류 정정 코드와 상기 압축 데이터를 결합하여 낸드 플래시 메모리에 저장하는 단계를 포함한다.According to an aspect of the present invention, there is provided a method for storing a NAND flash memory using a NAND flash memory controller, the method comprising: calculating a compression ratio of input original data; Calculating a code rate of the original data using the code rate, determining a number of bits of an error correcting code according to the code rate, generating an error correction code according to the determined number of bits, Compressing the original data according to the compression ratio to generate compressed data, and combining the generated error correction code with the compressed data and storing the compressed data in the NAND flash memory.
상기 부호율을 연산하는 단계는, 상기 연산된 압축률을 기 설정된 복수의 임계 범위와 비교하는 단계, 상기 연산된 압축률이 포함된 임계 범위에 대응하는 보정 압축률을 결정하는 단계, 상기 보정 압축률 이용하여 상기 원본 데이터의 부호율을 연산하는 단계를 포함할 수 있다.Wherein the step of calculating the coding rate comprises the steps of: comparing the calculated compression ratio with a predetermined plurality of threshold ranges; determining a correction compression ratio corresponding to a threshold range including the calculated compression ratio; And calculating a code rate of the original data.
상기 보정 압축률을 결정하는 단계는, 다음의 수학식을 이용하여 상기 압축률(r)이 포함된 임계 범위 중 크기가 가장 작은 수치를 상기 보정 압축률()로 결정할 수 있다.Wherein the step of determining the corrected compression ratio is a step of determining a value of the smallest size among the critical ranges including the compression ratio (r) as the corrected compression ratio ( ).
여기서, r0 내지 rn은 크기가 서로 다른 임계값을 의미한다.Here, r 0 to r n mean different threshold values.
상기 압축 데이터의 비트 수와 상기 오류 정정 코드의 비트 수의 합은 기 설정된 할당 비트 수보다 작거나 같을 수 있다.The sum of the number of bits of the compressed data and the number of bits of the error correction code may be less than or equal to the predetermined number of allocated bits.
상기 압축 데이터를 생성하는 단계는, 상기 압축 데이터의 비트 수와 상기 오류 정정 코드의 비트 수 합이 상기 할당 비트 수 보다 적은 경우, 상기 할당 비트 수에서 상기 압축 데이터의 비트 수 및 오류 정정 코드의 비트 수를 뺀 값만큼 상기 압축 데이터에 이진 데이터 0을 추가할 수 있다.Wherein when the number of bits of the compressed data and the number of bits of the error correction code are smaller than the number of allocated bits, the number of bits of the compressed data and the number of bits of the error correction code It is possible to add
상기 낸드 플래시 메모리는 데이터 영역과 스페어 영역을 포함하며, 상기 저장하는 단계는, 상기 생성된 오류 정정 코드를 상기 데이터 영역 및 스페어 영역에 분산하여 저장할 수 있다.The NAND flash memory may include a data area and a spare area, and the storing step stores the generated error correction code in the data area and the spare area.
본 발명의 다른 실시예에 따른 낸드 플래시 메모리 컨트롤러는 입력받은 원본 데이터의 압축률을 연산하고, 상기 연산된 압축률 및 기 설정된 복수의 임계 범위를 이용하여 상기 원본 데이터의 부호율을 연산하는 연산부, 상기 부호율에 따라 오류 정정 코드(error correcting code)의 비트 수를 결정하는 결정부, 상기 결정된 비트 수에 따라 오류 정정 코드를 생성하는 정정 코드 생성부, 상기 연산된 압축률에 따라 원본 데이터를 압축하여 압축 데이터를 생성하는 압축부, 그리고 상기 생성된 오류 정정 코드와 상기 압축 데이터를 결합하여 낸드 플래시 메모리에 저장하는 저장부를 포함한다.The NAND flash memory controller according to another embodiment of the present invention includes a calculation unit for calculating a compression ratio of input original data, calculating a coding rate of the original data using the calculated compression ratio and a predetermined plurality of threshold ranges, A correcting code generating unit for generating an error correcting code according to the determined number of bits, a compressing unit for compressing the original data according to the calculated compressing ratio, And a storage unit for combining the generated error correction code and the compressed data and storing the combined data in the NAND flash memory.
이와 같이 본 발명에 따르면, 데이터 무손실 압축 기법을 통해 오류 정정 부호에 할당할 수 있는 비트수를 증가시킴으로써 낸드 플래시 메모리에 저장되는 데이터의 안정성 및 오류 정정 능력을 향상시킬 수 있다. As described above, according to the present invention, the number of bits that can be allocated to the error correction code is increased through the data lossless compression technique, thereby improving the stability and error correction capability of data stored in the NAND flash memory.
또한, 복수의 임계 범위에 대응하여 압축률을 미리 한정함으로써 압축률에 따른 오류정정부호율 연산에서 발생할 수 있는 지연 시간을 감소시킬 수 있다. In addition, by limiting the compression ratio in advance in correspondence with a plurality of critical ranges, the delay time that can be generated in the error correcting code rate calculation according to the compression ratio can be reduced.
뿐만 아니라, 압축률 한정에 따라 발생하는 여분의 데이터 양 만큼 이진 데이터 0을 추가함으로써 기존 낸드 플래시 메모리 시스템과의 호환성을 유지할 수 있다.In addition, compatibility with the existing NAND flash memory system can be maintained by adding
도 1은 본 발명의 실시예에 따른 낸드 플래시 메모리 컨트롤러의 구성도이다.
도 2는 본 발명의 실시예에 따른 낸드 플래시 메모리 저장 방법의 순서도이다.
도 3은 도 2의 S220 단계를 구체적으로 나타낸 순서도이다.
도 4는 도 3의 S222 단계를 설명하기 위한 도면이다.
도 5는 도 2의 S250 단계를 설명하기 위한 도면이다.1 is a block diagram of a NAND flash memory controller according to an embodiment of the present invention.
2 is a flowchart of a method of storing a NAND flash memory according to an embodiment of the present invention.
FIG. 3 is a flowchart specifically showing the step S220 of FIG.
4 is a view for explaining the step S222 of FIG.
5 is a diagram for explaining the step S250 of FIG.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily carry out the present invention. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.Throughout the specification, when an element is referred to as "comprising ", it means that it can include other elements as well, without excluding other elements unless specifically stated otherwise.
그러면 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily carry out the present invention.
우선, 도 1을 통해 본 발명의 실시예에 따른 낸드 플래시 메모리 컨트롤러에 대하여 살펴보도록 한다. 도 1은 본 발명의 실시예에 따른 낸드 플래시 메모리 컨트롤러의 구성도이다.First, a NAND flash memory controller according to an embodiment of the present invention will be described with reference to FIG. 1 is a block diagram of a NAND flash memory controller according to an embodiment of the present invention.
도 1에 도시된 바와 같이, 본 발명의 실시예에 따른 낸드 플래시 메모리 컨트롤러(100)는 연산부(110), 결정부(120), 정정 코드 생성부(130), 압축부(140) 및 저장부(150)를 포함한다.1, a NAND
먼저, 연산부(110)는 입력받은 원본 데이터의 압축률을 연산한다. First, the
그리고, 연산부(110)는 연산된 압축률 및 기 설정된 복수의 임계 범위를 이용하여 원본 데이터의 부호율을 연산한다.The
구체적으로, 연산부(110)는 연산된 압축률을 기 설정된 복수의 임계 범위와 비교한다. Specifically, the
그러면, 연산부(110)는 연산된 압축률이 포함된 임계 범위에 대응하는 보정 압축률을 결정한다. 이때, 연산부(110)는 연산된 압축률이 포함된 임계 범위 중 크기가 가장 작은 수치를 보정 압축률로 결정할 수 있다.Then, the
그리고, 연산부(110)는 결정된 보정 압축률 이용하여 원본 데이터의 부호율을 연산한다.Then, the
다음으로, 결정부(120)는 연산된 부호율에 따라 오류 정정 코드의 비트수를 결정한다. 여기서, 오류 정정 코드(error correcting code)란, 데이터 내의 오류를 검출하여 수정 할 수 있도록 조립되어 있는 코드를 의미한다. Next, the
다음으로, 정정 코드 생성부(130)는 결정된 비트수에 따라 오류 정정 코드를 생성한다. Next, the correction
다음으로, 압축부(140)는 연산된 압축률에 따라 원본 데이터를 압축하여 압축 데이터를 생성한다. 이때, 압축 데이터의 비트수와 오류 정정 코드의 비트수의 합은 기 설정된 할당 비트수보다 작거나 같을 수 있다. Next, the
따라서, 압축부(140)는 압축 데이터의 비트수와 오류 검출 및 수정 코드의 비트수 합이 할당 비트수 보다 적은 경우, 할당 비트수에서 압축 데이터의 비트수 및 오류 검출 및 수정 코드의 비트수를 뺀 값만큼 압축 데이터에 이진 데이터 0을 추가할 수 있다. Therefore, when the number of bits of compressed data and the number of bits of error detection and correction code are smaller than the number of allocated bits, the number of bits of compressed data and the number of bits of error detection and correction code
다음으로, 저장부(150)는 생성된 오류 정정 코드와 압축 데이터를 결합하여 낸드 플래시 메모리에 저장한다. 이때, 저장부(150)는 낸드 플래시 메모리의 데이터 영역에 압축 데이터를 저장할 수 있다. 그리고, 저장부(150)는 낸드 플래시 메모리의 데이터 영역 및 스페어 영역에 오류 정정 코드를 분산하여 저장할 수 있다.Next, the
다음으로, 도 2 내지 도 5를 통해 본 발명의 실시예에 따른 낸드 플래시 메모리 컨트롤러(100)를 이용한 낸드 플래시 메모리 저장 방법에 대하여 살펴보도록 한다. 도 2는 본 발명의 실시예에 따른 낸드 플래시 메모리 저장 방법의 순서도이고, 도 3은 도 2의 S220 단계를 구체적으로 나타낸 순서도이다.Next, a method of storing a NAND flash memory using the NAND
먼저, 연산부(110)는 입력받은 원본 데이터의 압축률을 연산한다(S210). 구체적으로, 연산부(110)는 기 설정된 압축 기법에 따른 원본 데이터의 압축률을 연산한다. 여기서, 압축 기법은 반복길이 코딩(run-length coding), 허프만 코딩(Huffman coding) 및 렘펠-지프 코딩(Lempel-Ziv coding)과 같은 무손실 압축(lossless compression) 기법 중에서 어느 하나를 포함할 수 있다. First, the
그리고, 연산부(110)는 연산된 압축률 및 기 설정된 복수의 임계 범위를 이용하여 원본 데이터의 부호율을 연산한다(S220). Then, the
도 3을 통해 S220 단계를 구체적으로 살펴보면, 연산부(110)는 S210 단계를 통해 연산된 압축률을 기 설정된 복수의 임계 범위와 비교한다(S221). 이때, 기 설정된 복수의 임계 범위는 낸드 플래시 메모리의 구조 등을 고려하여 통상의 기술자에 의해 설계변경 가능하다.Referring to FIG. 3, in operation S220, the
그리고, 연산부(110)는 S210 단계에서 연산된 압축률이 포함된 임계 범위에 대응하는 보정 압축률을 결정한다(S222). 구체적으로, 연산부(110)는 다음의 수학식을 이용하여 압축률(r)이 포함된 임계 범위 중 크기가 가장 작은 수치를 보정 압축률()로 결정할 수 있다.Then, the
여기서, r0 내지 rn은 크기가 서로 다른 임계값을 의미한다.Here, r 0 to r n mean different threshold values.
한편, r0 내지 rn은 서로 동일한 간격으로 설정될 수 있다. 예를 들어, {r0=0, r1=5, r2=10, …, rn=100}과 같이 5% 간격으로 임계 범위를 설정하거나, {r0=0, r1=10, r2=20, …, rn=100}과 같이 10% 간격으로 임계 범위를 설정할 수 있다. 이때, 간격은 낸드 플래시 메모리의 구조 등을 고려하여 당업자에 의해 설계변경 가능하다.On the other hand, r 0 to r n may be set to be equal to each other. For example, {r 0 = 0, r 1 = 5, r 2 = 10, ... , r n = 100} or {r 0 = 0, r 1 = 10, r 2 = 20,. , r n = 100}, the threshold range can be set at an interval of 10%. At this time, the interval can be changed by a person skilled in the art in consideration of the structure of the NAND flash memory and the like.
도 4는 도 3의 S222 단계를 설명하기 위한 도면으로서, 도 4에 도시된 바와 같이, 연산된 압축률 r은 r1보다 크거나 같고 r2보다 작은 임계 범위에 포함된다고 가정한다. 따라서, 도 4의 경우에는 연산부(110)는 해당 임계 범위에서 가장 작은 수치인 r1을 보정 압축률로 결정할 수 있다. 4 is assumed to be included in the smaller ranges than the threshold r 2, the calculated compression ratio r is greater than or equal to r 1, as shown in a diagram for explaining the step S222 in FIG. 3, FIG. Accordingly, in the case of FIG. 4, the
예를 들어, 압축률 r이 27%이고, 복수의 임계 범위 중 어느 하나가 25%보다 크거나 같고 30%보다 작은 범위를 가진다고 가정하면, 연산부(110)는 가장 작은 수치인 25%를 보정 압축률로 결정할 수 있다.For example, assuming that the compression ratio r is 27%, and one of the plurality of threshold ranges is greater than or equal to 25% and less than 30%, the
다음으로, 연산부(110)는 보정 압축률 이용하여 원본 데이터의 부호율을 연산한다(S223). Next, the
여기서, 부호율이란 입력 비트당 출력 비트의 수로서, 오류 제어를 위해 어느 정도의 비트를 사용하는가를 의미한다. 따라서, 부호율이 낮아질수록 데이터 오류 정정 능력이 높아진다. Here, the coding rate is the number of output bits per input bit, which means how much bits are used for error control. Therefore, the lower the coding rate, the higher the data error correction capability.
구체적으로, 연산부(110)는 보정 압축률에 따른 압축 데이터의 비트수와 할당 비트수를 이용하여 원본 데이터의 부호율을 연산하며, 아래의 수학식 2를 이용하여 부효율(R)을 연산할 수 있다.Specifically, the
이때, 할당 비트수란 원본 데이터를 낸드 플래시 메모리에 저장하기 위하여 부호화하는 경우 부호화된 데이터의 비트수를 의미한다. 할당 비트수는 기 설정되며, 낸드 플래시 메모리의 구조 등을 고려하여 통상의 기술자에 의해 설계변경 가능하다.At this time, the number of allocated bits means the number of bits of the encoded data when the original data is encoded to be stored in the NAND flash memory. The number of allocated bits is set in advance, and the design can be changed by a person skilled in the art in consideration of the structure of the NAND flash memory and the like.
예를 들어, 할당 비트수가 120비트, 원본 데이터가 100비트, 보정 압축률이 15%라고 가정한다. 이때, 보정 압축률에 따라 원본 데이터를 압축하면 압축 데이터의 비트수는 85비트가 된다. 따라서, 부호율은 85/120, 즉 70.83%가 된다. For example, assume that the number of allocated bits is 120 bits, the original data is 100 bits, and the corrected compression ratio is 15%. At this time, when the original data is compressed according to the corrected compression ratio, the number of bits of the compressed data becomes 85 bits. Therefore, the coding rate becomes 85/120, i.e., 70.83%.
만약, 압축을 이용하지 않는 경우 부호율은 100/120, 즉 83.33%가 된다. 이와 같이, 본 발명의 실시예에 따른 낸드 플래시 메모리 컨트롤러(100)는 보정 압축률을 이용하여 부호율을 연산함으로써 압축을 이용하지 않는 경우보다 부호율을 낮출 수 있으므로, 데이터 오류 정정 능력을 높일 수 있다.If compression is not used, the coding rate is 100/120, i.e., 83.33%. As described above, the NAND
다음으로, 결정부(120)는 부호율에 따라 오류 정정 코드의 비트수를 결정한다(S230). 구체적으로, 결정부(120)는 부호율과 할당 비트수를 이용하여 오류 정정 코드의 비트수를 결정하며, 아래의 수학식 3을 이용하여 오류 정정 코드의 비트수를 결정할 수 있다.Next, the
예를 들어, 할당 비트수가 120비트이고, 부호율이 17/24라고 가정한다. 그러면, 결정부(120)는 수학식 3에 할당 비트수와 부호율을 대입하여 연산된 결과값인 35비트를 오류 정정 코드의 비트수로 결정할 수 있다. For example, assume that the number of allocated bits is 120 bits and the code rate is 17/24. Then, the
다음으로, 정정 코드 생성부(130)는 결정된 비트수에 따라 오류 정정 코드를 생성한다(S240). 구체적으로, 정정 코드 생성부(130)는 기 설정된 부호화 방식을 이용하여 S230단계에서 결정된 비트수에 따라 오류 정정 코드를 생성한다. 예를 들어, 결정부(120)가 오류 정정 코드의 비트수로 35비트를 결정하였다면, 정정 코드 생성부(130)는 기 설정된 부호화 방식을 이용하여 35비트의 오류 정정 코드를 생성할 수 있다.Next, the correction
이때, 부호화 방식은 해밍 부호(Hamming Code), Low-Density Parity Check 부호, 골레이 부호(Golay Code), BCH 부호(BCH Code), 리드 뮬러 부호(Reed-Muller Code), 리드 솔로몬 부호(Reed-Solomon Code) 중에서 적어도 하나를 포함할 수 있다.In this case, the coding scheme may be a Hamming Code, a Low-Density Parity Check code, a Golay code, a BCH code, a Reed-Muller code, a Reed- ≪ / RTI > Solomon Code).
그리고, 압축부(140)는 연산된 압축률에 따라 원본 데이터를 압축하여 압축 데이터를 생성한다(S250). 도 5는 도 2의 S250단계를 설명하기 위한 도면이다. The
이때, 압축 데이터의 비트수와 오류 정정 코드의 비트수의 합은 기 설정된 할당 비트수보다 적거나 같을 수 있다. 이는 S222 단계에서 연산부(110)가 압축률이 포함된 임계 범위 중 크기가 가장 작은 수치를 보정 압축률로 결정할 수 있기 때문이다.At this time, the sum of the number of bits of the compressed data and the number of bits of the error correction code may be less than or equal to the predetermined number of allocated bits. This is because, in step S222, the
만약, 압축 데이터의 비트수와 오류 정정 코드의 비트수 합이 할당 비트수 보다 적은 경우, 압축부(140)는 할당 비트수에서 압축 데이터의 비트수 및 오류 정정 코드의 비트수를 뺀 값만큼 압축 데이터에 이진 데이터 0을 추가할 수 있다.If the sum of the number of bits of the compressed data and the number of bits of the error correction code is smaller than the number of allocated bits, the
예를 들어, 블록에 할당된 비트수가 120비트, 원본 데이터가 100비트라고 가정한다. For example, assume that the number of bits allocated to the block is 120 bits and the original data is 100 bits.
이때, 압축률이 10%이고, 보정 압축률이 10%라고 한다면, 압축 데이터는 90비트가 되고 오류 정정 코드의 비트수는 30비트가 된다. 따라서, 압축데이터의 비트수와 오류 정정 코드의 비트수 합은 할당 비트수와 동일한 값을 가지게 된다(90비트+30비트=120비트). At this time, if the compression rate is 10% and the corrected compression rate is 10%, the compressed data becomes 90 bits and the bit number of the error correction code becomes 30 bits. Therefore, the sum of the number of bits of the compressed data and the number of bits of the error correction code has the same value as the number of allocated bits (90 bits + 30 bits = 120 bits).
반면, 압축률이 18%이고, 보정 압축률이 15%라고 한다면, 압축 데이터는 82비트가 되고 오류 정정 코드의 비트수는 35비트가 된다. 따라서, 압축 데이터의 비트수와 오류 정정 코드의 비트수 합은 할당 비트수보다 작은 값을 갖게 된다(82비트+25비트<120비트).On the other hand, if the compression rate is 18% and the corrected compression rate is 15%, the compressed data becomes 82 bits and the number of bits of the error correction code becomes 35 bits. Therefore, the sum of the number of bits of the compressed data and the number of bits of the error correction code is smaller than the number of allocated bits (82 bits + 25 bits < 120 bits).
그러므로, 할당 비트수(120bit)에서 압축 데이터의 비트수(82bit)와 오류 정정 코드의 비트수(25bit)의 합산한 비트수(117bit) 사이에는 3bit의 차이가 발생하므로, 도 5에 도시된 바와 같이, 압축부(140)는 압축 데이터에 3bit의 이진 데이터 0을 추가하여 총 85bit의 압축 데이터를 생성하여 할당 비트수(120bit)와 비트수가 동일해지도록 변경한다. Therefore, a difference of 3 bits occurs between the bit number (82 bits) of the compressed data and the bit number (117 bits) of the error correction code in the number of allocated bits (120 bits) Likewise, the
그러면, 저장부(150)는 생성된 오류 정정 코드와 압축 데이터를 결합하여 낸드 플래시 메모리에 저장한다(S260). 이때, 저장부(150)는 생성된 오류 정정 코드를 데이터 영역 및 스페어 영역에 분산하여 저장할 수 있다.Then, the
본 발명의 실시예에 따르면, 데이터 무손실 압축 기법을 통해 오류 정정 부호에 할당할 수 있는 비트수를 증가시킴으로써 낸드 플래시 메모리에 저장되는 데이터의 안정성 및 오류 정정 능력을 향상시킬 수 있다. According to the embodiment of the present invention, the number of bits that can be allocated to the error correction code is increased through the data lossless compression technique, thereby improving the stability and error correction capability of data stored in the NAND flash memory.
또한, 복수의 임계 범위에 대응하여 압축률을 미리 한정함으로써 압축률에 따른 오류정정부호율 연산에서 발생할 수 있는 지연 시간을 감소시킬 수 있다. In addition, by limiting the compression ratio in advance in correspondence with a plurality of critical ranges, the delay time that can be generated in the error correcting code rate calculation according to the compression ratio can be reduced.
뿐만 아니라, 본 발명의 실시예에 따르면 압축률 한정에 따라 발생하는 여분의 데이터 양 만큼 이진 데이터 0을 추가함으로써 기존 낸드 플래시 메모리 시스템과의 호환성을 유지할 수 있다. In addition, according to the embodiment of the present invention, compatibility with the existing NAND flash memory system can be maintained by adding
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims. Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims.
100 : 낸드 플래시 메모리 컨트롤러
110 : 연산부
120 : 결정부
130 : 정정 코드 생성부
140 : 압축부
150 : 저장부100: NAND flash memory controller 110:
120: Decision section 130: Correction code generation section
140: compression unit 150: storage unit
Claims (12)
입력받은 원본 데이터의 압축률을 연산하는 단계,
상기 연산된 압축률 및 기 설정된 복수의 임계 범위를 이용하여 상기 원본 데이터의 부호율을 연산하는 단계,
상기 부호율에 따라 오류 정정 코드(error correcting code)의 비트 수를 결정하는 단계,
상기 결정된 비트 수에 따라 오류 정정 코드를 생성하는 단계,
상기 연산된 압축률에 따라 원본 데이터를 압축하여 압축 데이터를 생성하는 단계, 그리고
상기 생성된 오류 정정 코드와 상기 압축 데이터를 결합하여 낸드 플래시 메모리에 저장하는 단계를 포함하는 낸드 플래시 메모리 저장 방법.A method for storing NAND flash memory using a NAND flash memory controller,
Calculating a compression ratio of the input original data,
Calculating a coding rate of the original data using the calculated compression rate and a plurality of predetermined threshold ranges,
Determining a number of bits of an error correcting code according to the code rate,
Generating an error correction code according to the determined number of bits,
Compressing the original data according to the calculated compression ratio to generate compressed data, and
And combining the generated error correction code with the compressed data and storing the combined data in the NAND flash memory.
상기 부호율을 연산하는 단계는,
상기 연산된 압축률을 기 설정된 복수의 임계 범위와 비교하는 단계,
상기 연산된 압축률이 포함된 임계 범위에 대응하는 보정 압축률을 결정하는 단계,
상기 보정 압축률을 이용하여 상기 원본 데이터의 부호율을 연산하는 단계를 포함하는 낸드 플래시 메모리 저장 방법.The method according to claim 1,
Wherein the step of calculating the code rate comprises:
Comparing the calculated compression ratio with a predetermined plurality of threshold ranges,
Determining a corrected compression ratio corresponding to the critical range including the calculated compression ratio,
And calculating a coding rate of the original data using the corrected compression rate.
상기 보정 압축률을 결정하는 단계는,
다음의 수학식을 이용하여 상기 압축률(r)이 포함된 임계 범위 중 크기가 가장 작은 수치를 상기 보정 압축률()로 결정하는 낸드 플래시 메모리 저장 방법:
여기서, r0 내지 rn은 크기가 서로 다른 임계값을 의미한다.3. The method of claim 2,
Wherein the step of determining the corrected compression ratio comprises:
A value having the smallest size among the critical ranges including the compression ratio (r) is referred to as the corrected compression ratio ( ) NAND Flash memory storage method:
Here, r 0 to r n mean different threshold values.
상기 압축 데이터의 비트 수와 상기 오류 정정 코드의 비트 수의 합은 기 설정된 할당 비트 수보다 작거나 같은 낸드 플래시 메모리 저장 방법.The method according to claim 1,
Wherein the sum of the number of bits of the compressed data and the number of bits of the error correction code is smaller than or equal to the predetermined number of allocated bits.
상기 압축 데이터를 생성하는 단계는,
상기 압축 데이터의 비트 수와 상기 오류 정정 코드의 비트 수 합이 상기 할당 비트 수 보다 적은 경우, 상기 할당 비트 수에서 상기 압축 데이터의 비트 수 및 오류 정정 코드의 비트 수를 뺀 값만큼 상기 압축 데이터에 이진 데이터 0을 추가하는 낸드 플래시 메모리 저장 방법.5. The method of claim 4,
Wherein the step of generating compressed data comprises:
When the number of bits of the compressed data and the number of bits of the error correction code are smaller than the number of allocated bits, the number of bits allocated to the compressed data is reduced by a value obtained by subtracting the number of bits of the compressed data from the number of bits of the error- A method for storing NAND flash memory that adds binary data 0.
상기 낸드 플래시 메모리는 데이터 영역과 스페어 영역을 포함하며,
상기 저장하는 단계는,
상기 생성된 오류 정정 코드를 상기 데이터 영역 및 스페어 영역에 분산하여 저장하는 낸드 플래시 메모리 저장 방법.6. The method of claim 5,
Wherein the NAND flash memory includes a data area and a spare area,
Wherein the storing step comprises:
And storing the generated error correction code in the data area and the spare area.
상기 부호율에 따라 오류 정정 코드(error correcting code)의 비트 수를 결정하는 결정부,
상기 결정된 비트 수에 따라 오류 정정 코드를 생성하는 정정 코드 생성부,
상기 연산된 압축률에 따라 원본 데이터를 압축하여 압축 데이터를 생성하는 압축부, 그리고
상기 생성된 오류 정정 코드와 상기 압축 데이터를 결합하여 낸드 플래시 메모리에 저장하는 저장부를 포함하는 낸드 플래시 메모리 컨트롤러.A calculation unit for calculating a compression rate of input original data and calculating a coding rate of the original data using the calculated compression ratio and a plurality of predetermined threshold ranges,
A determination unit for determining the number of bits of an error correcting code according to the code rate,
A correction code generator for generating an error correction code according to the determined number of bits,
A compression unit for compressing original data according to the calculated compression ratio to generate compressed data, and
And a storage unit for storing the combined error correction code and the compressed data in a NAND flash memory.
상기 연산부는,
상기 연산된 압축률을 기 설정된 복수의 임계 범위와 비교하고, 상기 연산된 압축률이 포함된 임계 범위에 대응하는 보정 압축률을 결정하며, 상기 보정 압축률을 이용하여 상기 원본 데이터의 부호율을 연산하는 낸드 플래시 메모리 컨트롤러.8. The method of claim 7,
The operation unit,
And a control unit for comparing the computed compression ratio with a predetermined plurality of threshold ranges to determine a corrected compression ratio corresponding to a threshold range including the calculated compression ratio and calculating a coding rate of the original data using the corrected compression ratio, Memory controller.
상기 연산부는,
다음의 수학식을 이용하여 상기 압축률(r)이 포함된 임계 범위 중 크기가 가장 작은 수치를 상기 보정 압축률()로 결정하는 낸드 플래시 메모리 컨트롤러:
여기서, r0 내지 rn은 크기가 서로 다른 임계값을 의미한다.9. The method of claim 8,
The operation unit,
A value having the smallest size among the critical ranges including the compression ratio (r) is referred to as the corrected compression ratio ( ) NAND flash memory controller to determine:
Here, r 0 to r n mean different threshold values.
상기 압축 데이터의 비트 수와 상기 오류 정정 코드의 비트 수의 합은 기 설정된 할당 비트 수보다 작거나 같은 낸드 플래시 메모리 컨트롤러.8. The method of claim 7,
Wherein the sum of the number of bits of the compressed data and the number of bits of the error correction code is smaller than or equal to the predetermined number of allocated bits.
상기 압축부는,
상기 압축 데이터의 비트 수와 상기 오류 정정 코드의 비트 수 합이 상기 할당 비트 수 보다 적은 경우, 상기 할당 비트 수에서 상기 압축 데이터의 비트 수 및 오류 정정 코드의 비트 수를 뺀 값만큼 상기 압축 데이터에 이진 데이터 0을 추가하는 낸드 플래시 메모리 컨트롤러.11. The method of claim 10,
Wherein the compression unit comprises:
When the number of bits of the compressed data and the number of bits of the error correction code are smaller than the number of allocated bits, the number of bits allocated to the compressed data is reduced by a value obtained by subtracting the number of bits of the compressed data from the number of bits of the error- NAND flash memory controller to add binary data 0.
상기 낸드 플래시 메모리는 데이터 영역과 스페어 영역을 포함하며,
상기 저장부는,
상기 생성된 오류 정정 코드를 상기 데이터 영역 및 스페어 영역에 분산하여 저장하는 낸드 플래시 메모리 컨트롤러.12. The method of claim 11,
Wherein the NAND flash memory includes a data area and a spare area,
Wherein,
And storing the generated error correction code in the data area and the spare area.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160073146A KR101889864B1 (en) | 2016-06-13 | 2016-06-13 | Nand flash memory controller using compression rate and nand flash memory storing method using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160073146A KR101889864B1 (en) | 2016-06-13 | 2016-06-13 | Nand flash memory controller using compression rate and nand flash memory storing method using the same |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170140614A true KR20170140614A (en) | 2017-12-21 |
KR101889864B1 KR101889864B1 (en) | 2018-08-21 |
Family
ID=60936295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160073146A KR101889864B1 (en) | 2016-06-13 | 2016-06-13 | Nand flash memory controller using compression rate and nand flash memory storing method using the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101889864B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190076589A (en) * | 2017-12-22 | 2019-07-02 | 한국외국어대학교 연구산학협력단 | Method for correcting error of flash storage controller |
CN114594908A (en) * | 2022-02-25 | 2022-06-07 | 阿里巴巴(中国)有限公司 | Data processing method and device based on Solid State Disk (SSD) and storage medium |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008299718A (en) * | 2007-06-01 | 2008-12-11 | Hitachi Ltd | Storage system, storage control device, and data compression method |
KR20140046597A (en) * | 2012-10-08 | 2014-04-21 | 삼성전자주식회사 | Method for performing write operation or read operation in memory system |
KR20150049718A (en) * | 2013-10-30 | 2015-05-08 | 에스케이텔레콤 주식회사 | Method and apparatus for controlling data input of semiconductor memory device |
-
2016
- 2016-06-13 KR KR1020160073146A patent/KR101889864B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008299718A (en) * | 2007-06-01 | 2008-12-11 | Hitachi Ltd | Storage system, storage control device, and data compression method |
KR20140046597A (en) * | 2012-10-08 | 2014-04-21 | 삼성전자주식회사 | Method for performing write operation or read operation in memory system |
KR20150049718A (en) * | 2013-10-30 | 2015-05-08 | 에스케이텔레콤 주식회사 | Method and apparatus for controlling data input of semiconductor memory device |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190076589A (en) * | 2017-12-22 | 2019-07-02 | 한국외국어대학교 연구산학협력단 | Method for correcting error of flash storage controller |
CN114594908A (en) * | 2022-02-25 | 2022-06-07 | 阿里巴巴(中国)有限公司 | Data processing method and device based on Solid State Disk (SSD) and storage medium |
CN114594908B (en) * | 2022-02-25 | 2024-10-11 | 阿里巴巴(中国)有限公司 | Data processing method, equipment and storage medium based on solid state disk SSD |
Also Published As
Publication number | Publication date |
---|---|
KR101889864B1 (en) | 2018-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8751911B2 (en) | Semiconductor memory device | |
US8782500B2 (en) | Systems and methods for error correction and decoding on multi-level physical media | |
KR100842680B1 (en) | Ecc controller for use in flash memory device and memory system including the same | |
US8281217B2 (en) | Memory devices and encoding and/or decoding methods | |
KR101398212B1 (en) | Memory device and encoding and/or decoding method | |
KR101434405B1 (en) | Memory device and memory data read method | |
US11768732B2 (en) | Soft decoding method using LLR conversion table | |
US10103748B2 (en) | Decoding method, memory control circuit unit and memory storage device | |
US9582359B2 (en) | Write mapping to mitigate hard errors via soft-decision decoding | |
KR101991911B1 (en) | Code modulation incoder and decoder, memory controller including them, and flash memory system | |
US20120254686A1 (en) | Non-volatile semiconductor memory devices and error correction methods | |
JP2008165805A (en) | Ecc (error correction code) controller for flash memory device and memory system including same | |
KR20090122060A (en) | Error correction apparatus, method there-of and memory device comprising the apparatus | |
KR20090089657A (en) | Memory device and memory data read method | |
US9594615B2 (en) | Estimating flash quality using selective error emphasis | |
US10613927B1 (en) | System and method for improved memory error rate estimation | |
US10009045B2 (en) | Decoding method, memory controlling circuit unit and memory storage device | |
US10771094B2 (en) | Memory system configured to estimate a read voltage using a histogram | |
KR101889864B1 (en) | Nand flash memory controller using compression rate and nand flash memory storing method using the same | |
CN105304143B (en) | Coding/decoding method, memorizer control circuit unit and memory storage apparatus | |
US20230360715A1 (en) | Selecting read reference voltage using historical decoding information | |
US11204831B2 (en) | Memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |