KR101889864B1 - 압축률을 이용한 낸드 플래시 메모리 컨트롤러 및 이를 이용한 낸드 플래시 메모리 저장 방법 - Google Patents

압축률을 이용한 낸드 플래시 메모리 컨트롤러 및 이를 이용한 낸드 플래시 메모리 저장 방법 Download PDF

Info

Publication number
KR101889864B1
KR101889864B1 KR1020160073146A KR20160073146A KR101889864B1 KR 101889864 B1 KR101889864 B1 KR 101889864B1 KR 1020160073146 A KR1020160073146 A KR 1020160073146A KR 20160073146 A KR20160073146 A KR 20160073146A KR 101889864 B1 KR101889864 B1 KR 101889864B1
Authority
KR
South Korea
Prior art keywords
bits
compression ratio
flash memory
nand flash
data
Prior art date
Application number
KR1020160073146A
Other languages
English (en)
Other versions
KR20170140614A (ko
Inventor
김남식
정비웅
Original Assignee
주식회사 래코랩
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 래코랩 filed Critical 주식회사 래코랩
Priority to KR1020160073146A priority Critical patent/KR101889864B1/ko
Publication of KR20170140614A publication Critical patent/KR20170140614A/ko
Application granted granted Critical
Publication of KR101889864B1 publication Critical patent/KR101889864B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

본 발명은 압축률을 이용한 낸드 플래시 메모리 컨트롤러 및 이를 이용한 낸드 플래시 메모리 저장 방법에 관한 것이다.
본 발명에 따르면, 낸드 플래시 메모리 컨트롤러를 이용한 낸드 플래시 메모리 저장 방법에 있어서, 입력받은 원본 데이터의 압축률을 연산하는 단계, 상기 연산된 압축률 및 기 설정된 복수의 임계 범위를 이용하여 상기 원본 데이터의 부호율을 연산하는 단계, 상기 부호율에 따라 오류 정정 코드(error correcting code)의 비트 수를 결정하는 단계, 상기 결정된 비트 수에 따라 오류 정정 코드를 생성하는 단계, 상기 연산된 압축률에 따라 원본 데이터를 압축하여 압축 데이터를 생성하는 단계, 그리고 상기 생성된 오류 정정 코드와 상기 압축 데이터를 결합하여 낸드 플래시 메모리에 저장하는 단계를 포함한다.
이와 같이 본 발명에 따르면, 데이터 무손실 압축 기법을 통해 오류 정정 부호에 할당할 수 있는 비트수를 증가시킴으로써 낸드 플래시 메모리에 저장되는 데이터의 안정성 및 오류 정정 능력을 향상시킬 수 있다.

Description

압축률을 이용한 낸드 플래시 메모리 컨트롤러 및 이를 이용한 낸드 플래시 메모리 저장 방법{NAND FLASH MEMORY CONTROLLER USING COMPRESSION RATE AND NAND FLASH MEMORY STORING METHOD USING THE SAME}
본 발명은 압축률을 이용한 낸드 플래시 메모리 컨트롤러 및 이를 이용한 낸드 플래시 메모리 저장 방법에 관한 것으로서, 더욱 상세하게는 낸드 플래시 메모리의 데이터 저장 신뢰성을 높이기 위한 낸드 플래시 메모리 컨트롤러 및 이를 이용한 낸드 플래시 메모리 저장 방법에 관한 것이다.
낸드 플래시 메모리(Nand Flash Memory)란 전원이 끊겨도 데이터를 보존하는 비휘발성 메모리의 일종으로 전기적인 방법으로 정보를 입출력할 수 있는 장치를 말한다. 낸드 플래시 메모리는 셀이 직렬로 배치되어 있으며, 좁은 면적에 집적 가능한 셀이 많고 대용량화가 가능하다. 또한, 제조 단가가 저렴하고 데이터를 기록하거나 지우는 속도가 빠르다. 이러한 장점으로 인해 MP3플레이어, 디지털카메라, 휴대용 저장 장치와 같은 휴대용 정보통신기기의 메모리에 주로 사용된다.
낸드 플래시 메모리는 각 셀의 컨트롤 게이트(control gate)에 전압을 걸어줌으로써 플로팅 게이트(floating gate)를 통해 셀에 전자를 채우는 방식으로 데이터를 기록한다. 예를 들어, 셀에 전자가 채워지면 1, 셀이 비워지면 0이 기록되는데 이러한 데이터 기록 방식을 SLC(Single Level Cell)라고 한다. 최근에는 하나의 셀에 저장하는 데이터의 양을 늘리기 위하여 셀을 채우는 전자의 양을 조절하는 방식을 도입하고 있는데 전자의 양을 4개 레벨로 나누어 데이터를 기록하는 방식을 MLC(Multi Level Cell), 8개 레벨로 나누어 데이터를 기록하는 방식을 TLC(Triple Level Cell)라고 한다.
하지만, 설정된 양만큼 전자의 양을 정확하게 조절하는 것은 현재의 제어 기술로는 어려운 측면이 있다. 이에 따라, 낸드 플래시 메모리 컨트롤러가 낸드 플래시 메모리에 데이터를 저장 시 오류가 발생할 수 있다. 따라서, 낸드 플래시 메모리 컨트롤러는 데이터 저장 시 발생하는 오류를 검출하고 수정할 수 있도록 데이터와 함께 ECC(Error Correcting Code) 오류 정정 정보를 함께 저장한다. 그러므로, ECC 오류 정정 정보에 할당되는 저장 공간이 많을수록 데이터 오류 검출 및 수정 능력이 향상되고 데이터 안정성을 높일 수 있다.
그러나, 낸드 플래시 메모리를 구성하는 셀의 개수는 제한되어 있으므로, 데이터 오류 검출 및 수정 능력을 향상시키기 위하여 ECC 오류 정정 정보에 할당되는 저장 공간을 늘릴수록 저장할 수 있는 데이터의 양은 적어지는 문제점이 있다. 뿐만 아니라, 기존의 인터페이스를 변경해야 하므로 제조 비용이 증가하는 문제점이 발생한다.
본 발명의 배경이 되는 기술은 한국등록특허 제10-0816761호(2008.03.25.공고)에 개시되어 있다.
본 발명이 이루고자 하는 기술적 과제는 낸드 플래시 메모리의 데이터 저장 신뢰성을 높이기 위한 낸드 플래시 메모리 컨트롤러 및 이를 이용한 낸드 플래시 메모리 저장 방법을 제공하기 위한 것이다.
이러한 기술적 과제를 이루기 위한 본 발명의 실시예에 따르면 낸드 플래시 메모리 컨트롤러를 이용한 낸드 플래시 메모리 저장 방법에 있어서, 입력받은 원본 데이터의 압축률을 연산하는 단계, 상기 연산된 압축률 및 기 설정된 복수의 임계 범위를 이용하여 상기 원본 데이터의 부호율을 연산하는 단계, 상기 부호율에 따라 오류 정정 코드(error correcting code)의 비트 수를 결정하는 단계, 상기 결정된 비트 수에 따라 오류 정정 코드를 생성하는 단계, 상기 연산된 압축률에 따라 원본 데이터를 압축하여 압축 데이터를 생성하는 단계, 그리고 상기 생성된 오류 정정 코드와 상기 압축 데이터를 결합하여 낸드 플래시 메모리에 저장하는 단계를 포함한다.
상기 부호율을 연산하는 단계는, 상기 연산된 압축률을 기 설정된 복수의 임계 범위와 비교하는 단계, 상기 연산된 압축률이 포함된 임계 범위에 대응하는 보정 압축률을 결정하는 단계, 상기 보정 압축률 이용하여 상기 원본 데이터의 부호율을 연산하는 단계를 포함할 수 있다.
상기 보정 압축률을 결정하는 단계는, 다음의 수학식을 이용하여 상기 압축률(r)이 포함된 임계 범위 중 크기가 가장 작은 수치를 상기 보정 압축률(
Figure 112016056419275-pat00001
)로 결정할 수 있다.
Figure 112016056419275-pat00002
여기서, r0 내지 rn은 크기가 서로 다른 임계값을 의미한다.
상기 압축 데이터의 비트 수와 상기 오류 정정 코드의 비트 수의 합은 기 설정된 할당 비트 수보다 작거나 같을 수 있다.
상기 압축 데이터를 생성하는 단계는, 상기 압축 데이터의 비트 수와 상기 오류 정정 코드의 비트 수 합이 상기 할당 비트 수 보다 적은 경우, 상기 할당 비트 수에서 상기 압축 데이터의 비트 수 및 오류 정정 코드의 비트 수를 뺀 값만큼 상기 압축 데이터에 이진 데이터 0을 추가할 수 있다.
상기 낸드 플래시 메모리는 데이터 영역과 스페어 영역을 포함하며, 상기 저장하는 단계는, 상기 생성된 오류 정정 코드를 상기 데이터 영역 및 스페어 영역에 분산하여 저장할 수 있다.
본 발명의 다른 실시예에 따른 낸드 플래시 메모리 컨트롤러는 입력받은 원본 데이터의 압축률을 연산하고, 상기 연산된 압축률 및 기 설정된 복수의 임계 범위를 이용하여 상기 원본 데이터의 부호율을 연산하는 연산부, 상기 부호율에 따라 오류 정정 코드(error correcting code)의 비트 수를 결정하는 결정부, 상기 결정된 비트 수에 따라 오류 정정 코드를 생성하는 정정 코드 생성부, 상기 연산된 압축률에 따라 원본 데이터를 압축하여 압축 데이터를 생성하는 압축부, 그리고 상기 생성된 오류 정정 코드와 상기 압축 데이터를 결합하여 낸드 플래시 메모리에 저장하는 저장부를 포함한다.
이와 같이 본 발명에 따르면, 데이터 무손실 압축 기법을 통해 오류 정정 부호에 할당할 수 있는 비트수를 증가시킴으로써 낸드 플래시 메모리에 저장되는 데이터의 안정성 및 오류 정정 능력을 향상시킬 수 있다.
또한, 복수의 임계 범위에 대응하여 압축률을 미리 한정함으로써 압축률에 따른 오류정정부호율 연산에서 발생할 수 있는 지연 시간을 감소시킬 수 있다.
뿐만 아니라, 압축률 한정에 따라 발생하는 여분의 데이터 양 만큼 이진 데이터 0을 추가함으로써 기존 낸드 플래시 메모리 시스템과의 호환성을 유지할 수 있다.
도 1은 본 발명의 실시예에 따른 낸드 플래시 메모리 컨트롤러의 구성도이다.
도 2는 본 발명의 실시예에 따른 낸드 플래시 메모리 저장 방법의 순서도이다.
도 3은 도 2의 S220 단계를 구체적으로 나타낸 순서도이다.
도 4는 도 3의 S222 단계를 설명하기 위한 도면이다.
도 5는 도 2의 S250 단계를 설명하기 위한 도면이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.
그러면 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.
우선, 도 1을 통해 본 발명의 실시예에 따른 낸드 플래시 메모리 컨트롤러에 대하여 살펴보도록 한다. 도 1은 본 발명의 실시예에 따른 낸드 플래시 메모리 컨트롤러의 구성도이다.
도 1에 도시된 바와 같이, 본 발명의 실시예에 따른 낸드 플래시 메모리 컨트롤러(100)는 연산부(110), 결정부(120), 정정 코드 생성부(130), 압축부(140) 및 저장부(150)를 포함한다.
먼저, 연산부(110)는 입력받은 원본 데이터의 압축률을 연산한다.
그리고, 연산부(110)는 연산된 압축률 및 기 설정된 복수의 임계 범위를 이용하여 원본 데이터의 부호율을 연산한다.
구체적으로, 연산부(110)는 연산된 압축률을 기 설정된 복수의 임계 범위와 비교한다.
그러면, 연산부(110)는 연산된 압축률이 포함된 임계 범위에 대응하는 보정 압축률을 결정한다. 이때, 연산부(110)는 연산된 압축률이 포함된 임계 범위 중 크기가 가장 작은 수치를 보정 압축률로 결정할 수 있다.
그리고, 연산부(110)는 결정된 보정 압축률 이용하여 원본 데이터의 부호율을 연산한다.
다음으로, 결정부(120)는 연산된 부호율에 따라 오류 정정 코드의 비트수를 결정한다. 여기서, 오류 정정 코드(error correcting code)란, 데이터 내의 오류를 검출하여 수정 할 수 있도록 조립되어 있는 코드를 의미한다.
다음으로, 정정 코드 생성부(130)는 결정된 비트수에 따라 오류 정정 코드를 생성한다.
다음으로, 압축부(140)는 연산된 압축률에 따라 원본 데이터를 압축하여 압축 데이터를 생성한다. 이때, 압축 데이터의 비트수와 오류 정정 코드의 비트수의 합은 기 설정된 할당 비트수보다 작거나 같을 수 있다.
따라서, 압축부(140)는 압축 데이터의 비트수와 오류 검출 및 수정 코드의 비트수 합이 할당 비트수 보다 적은 경우, 할당 비트수에서 압축 데이터의 비트수 및 오류 검출 및 수정 코드의 비트수를 뺀 값만큼 압축 데이터에 이진 데이터 0을 추가할 수 있다.
다음으로, 저장부(150)는 생성된 오류 정정 코드와 압축 데이터를 결합하여 낸드 플래시 메모리에 저장한다. 이때, 저장부(150)는 낸드 플래시 메모리의 데이터 영역에 압축 데이터를 저장할 수 있다. 그리고, 저장부(150)는 낸드 플래시 메모리의 데이터 영역 및 스페어 영역에 오류 정정 코드를 분산하여 저장할 수 있다.
다음으로, 도 2 내지 도 5를 통해 본 발명의 실시예에 따른 낸드 플래시 메모리 컨트롤러(100)를 이용한 낸드 플래시 메모리 저장 방법에 대하여 살펴보도록 한다. 도 2는 본 발명의 실시예에 따른 낸드 플래시 메모리 저장 방법의 순서도이고, 도 3은 도 2의 S220 단계를 구체적으로 나타낸 순서도이다.
먼저, 연산부(110)는 입력받은 원본 데이터의 압축률을 연산한다(S210). 구체적으로, 연산부(110)는 기 설정된 압축 기법에 따른 원본 데이터의 압축률을 연산한다. 여기서, 압축 기법은 반복길이 코딩(run-length coding), 허프만 코딩(Huffman coding) 및 렘펠-지프 코딩(Lempel-Ziv coding)과 같은 무손실 압축(lossless compression) 기법 중에서 어느 하나를 포함할 수 있다.
그리고, 연산부(110)는 연산된 압축률 및 기 설정된 복수의 임계 범위를 이용하여 원본 데이터의 부호율을 연산한다(S220).
도 3을 통해 S220 단계를 구체적으로 살펴보면, 연산부(110)는 S210 단계를 통해 연산된 압축률을 기 설정된 복수의 임계 범위와 비교한다(S221). 이때, 기 설정된 복수의 임계 범위는 낸드 플래시 메모리의 구조 등을 고려하여 통상의 기술자에 의해 설계변경 가능하다.
그리고, 연산부(110)는 S210 단계에서 연산된 압축률이 포함된 임계 범위에 대응하는 보정 압축률을 결정한다(S222). 구체적으로, 연산부(110)는 다음의 수학식을 이용하여 압축률(r)이 포함된 임계 범위 중 크기가 가장 작은 수치를 보정 압축률(
Figure 112016056419275-pat00003
)로 결정할 수 있다.
Figure 112016056419275-pat00004
여기서, r0 내지 rn은 크기가 서로 다른 임계값을 의미한다.
한편, r0 내지 rn은 서로 동일한 간격으로 설정될 수 있다. 예를 들어, {r0=0, r1=5, r2=10, …, rn=100}과 같이 5% 간격으로 임계 범위를 설정하거나, {r0=0, r1=10, r2=20, …, rn=100}과 같이 10% 간격으로 임계 범위를 설정할 수 있다. 이때, 간격은 낸드 플래시 메모리의 구조 등을 고려하여 당업자에 의해 설계변경 가능하다.
도 4는 도 3의 S222 단계를 설명하기 위한 도면으로서, 도 4에 도시된 바와 같이, 연산된 압축률 r은 r1보다 크거나 같고 r2보다 작은 임계 범위에 포함된다고 가정한다. 따라서, 도 4의 경우에는 연산부(110)는 해당 임계 범위에서 가장 작은 수치인 r1을 보정 압축률로 결정할 수 있다.
예를 들어, 압축률 r이 27%이고, 복수의 임계 범위 중 어느 하나가 25%보다 크거나 같고 30%보다 작은 범위를 가진다고 가정하면, 연산부(110)는 가장 작은 수치인 25%를 보정 압축률로 결정할 수 있다.
다음으로, 연산부(110)는 보정 압축률 이용하여 원본 데이터의 부호율을 연산한다(S223).
여기서, 부호율이란 입력 비트당 출력 비트의 수로서, 오류 제어를 위해 어느 정도의 비트를 사용하는가를 의미한다. 따라서, 부호율이 낮아질수록 데이터 오류 정정 능력이 높아진다.
구체적으로, 연산부(110)는 보정 압축률에 따른 압축 데이터의 비트수와 할당 비트수를 이용하여 원본 데이터의 부호율을 연산하며, 아래의 수학식 2를 이용하여 부효율(R)을 연산할 수 있다.
Figure 112016056419275-pat00005
이때, 할당 비트수란 원본 데이터를 낸드 플래시 메모리에 저장하기 위하여 부호화하는 경우 부호화된 데이터의 비트수를 의미한다. 할당 비트수는 기 설정되며, 낸드 플래시 메모리의 구조 등을 고려하여 통상의 기술자에 의해 설계변경 가능하다.
예를 들어, 할당 비트수가 120비트, 원본 데이터가 100비트, 보정 압축률이 15%라고 가정한다. 이때, 보정 압축률에 따라 원본 데이터를 압축하면 압축 데이터의 비트수는 85비트가 된다. 따라서, 부호율은 85/120, 즉 70.83%가 된다.
만약, 압축을 이용하지 않는 경우 부호율은 100/120, 즉 83.33%가 된다. 이와 같이, 본 발명의 실시예에 따른 낸드 플래시 메모리 컨트롤러(100)는 보정 압축률을 이용하여 부호율을 연산함으로써 압축을 이용하지 않는 경우보다 부호율을 낮출 수 있으므로, 데이터 오류 정정 능력을 높일 수 있다.
다음으로, 결정부(120)는 부호율에 따라 오류 정정 코드의 비트수를 결정한다(S230). 구체적으로, 결정부(120)는 부호율과 할당 비트수를 이용하여 오류 정정 코드의 비트수를 결정하며, 아래의 수학식 3을 이용하여 오류 정정 코드의 비트수를 결정할 수 있다.
Figure 112016056419275-pat00006
예를 들어, 할당 비트수가 120비트이고, 부호율이 17/24라고 가정한다. 그러면, 결정부(120)는 수학식 3에 할당 비트수와 부호율을 대입하여 연산된 결과값인 35비트를 오류 정정 코드의 비트수로 결정할 수 있다.
다음으로, 정정 코드 생성부(130)는 결정된 비트수에 따라 오류 정정 코드를 생성한다(S240). 구체적으로, 정정 코드 생성부(130)는 기 설정된 부호화 방식을 이용하여 S230단계에서 결정된 비트수에 따라 오류 정정 코드를 생성한다. 예를 들어, 결정부(120)가 오류 정정 코드의 비트수로 35비트를 결정하였다면, 정정 코드 생성부(130)는 기 설정된 부호화 방식을 이용하여 35비트의 오류 정정 코드를 생성할 수 있다.
이때, 부호화 방식은 해밍 부호(Hamming Code), Low-Density Parity Check 부호, 골레이 부호(Golay Code), BCH 부호(BCH Code), 리드 뮬러 부호(Reed-Muller Code), 리드 솔로몬 부호(Reed-Solomon Code) 중에서 적어도 하나를 포함할 수 있다.
그리고, 압축부(140)는 연산된 압축률에 따라 원본 데이터를 압축하여 압축 데이터를 생성한다(S250). 도 5는 도 2의 S250단계를 설명하기 위한 도면이다.
이때, 압축 데이터의 비트수와 오류 정정 코드의 비트수의 합은 기 설정된 할당 비트수보다 적거나 같을 수 있다. 이는 S222 단계에서 연산부(110)가 압축률이 포함된 임계 범위 중 크기가 가장 작은 수치를 보정 압축률로 결정할 수 있기 때문이다.
만약, 압축 데이터의 비트수와 오류 정정 코드의 비트수 합이 할당 비트수 보다 적은 경우, 압축부(140)는 할당 비트수에서 압축 데이터의 비트수 및 오류 정정 코드의 비트수를 뺀 값만큼 압축 데이터에 이진 데이터 0을 추가할 수 있다.
예를 들어, 블록에 할당된 비트수가 120비트, 원본 데이터가 100비트라고 가정한다.
이때, 압축률이 10%이고, 보정 압축률이 10%라고 한다면, 압축 데이터는 90비트가 되고 오류 정정 코드의 비트수는 30비트가 된다. 따라서, 압축데이터의 비트수와 오류 정정 코드의 비트수 합은 할당 비트수와 동일한 값을 가지게 된다(90비트+30비트=120비트).
반면, 압축률이 18%이고, 보정 압축률이 15%라고 한다면, 압축 데이터는 82비트가 되고 오류 정정 코드의 비트수는 35비트가 된다. 따라서, 압축 데이터의 비트수와 오류 정정 코드의 비트수 합은 할당 비트수보다 작은 값을 갖게 된다(82비트+25비트<120비트).
그러므로, 할당 비트수(120bit)에서 압축 데이터의 비트수(82bit)와 오류 정정 코드의 비트수(25bit)의 합산한 비트수(117bit) 사이에는 3bit의 차이가 발생하므로, 도 5에 도시된 바와 같이, 압축부(140)는 압축 데이터에 3bit의 이진 데이터 0을 추가하여 총 85bit의 압축 데이터를 생성하여 할당 비트수(120bit)와 비트수가 동일해지도록 변경한다.
그러면, 저장부(150)는 생성된 오류 정정 코드와 압축 데이터를 결합하여 낸드 플래시 메모리에 저장한다(S260). 이때, 저장부(150)는 생성된 오류 정정 코드를 데이터 영역 및 스페어 영역에 분산하여 저장할 수 있다.
본 발명의 실시예에 따르면, 데이터 무손실 압축 기법을 통해 오류 정정 부호에 할당할 수 있는 비트수를 증가시킴으로써 낸드 플래시 메모리에 저장되는 데이터의 안정성 및 오류 정정 능력을 향상시킬 수 있다.
또한, 복수의 임계 범위에 대응하여 압축률을 미리 한정함으로써 압축률에 따른 오류정정부호율 연산에서 발생할 수 있는 지연 시간을 감소시킬 수 있다.
뿐만 아니라, 본 발명의 실시예에 따르면 압축률 한정에 따라 발생하는 여분의 데이터 양 만큼 이진 데이터 0을 추가함으로써 기존 낸드 플래시 메모리 시스템과의 호환성을 유지할 수 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.
100 : 낸드 플래시 메모리 컨트롤러 110 : 연산부
120 : 결정부 130 : 정정 코드 생성부
140 : 압축부 150 : 저장부

Claims (12)

  1. 낸드 플래시 메모리 컨트롤러를 이용한 낸드 플래시 메모리 저장 방법에 있어서,
    입력받은 원본 데이터의 압축률을 연산하는 단계,
    상기 연산된 압축률 및 기 설정된 복수의 임계 범위를 이용하여 보정 압축률을 결정하고, 상기 보정 압축률을 통해 상기 원본 데이터의 부호율을 연산하는 단계,
    상기 부호율에 따라 오류 정정 코드(error correcting code)의 비트 수를 결정하는 단계,
    상기 결정된 비트 수에 따라 오류 정정 코드를 생성하는 단계,
    상기 연산된 압축률에 따라 원본 데이터를 압축하여 압축 데이터를 생성하는 단계, 그리고
    상기 생성된 오류 정정 코드와 상기 압축 데이터를 결합하여 낸드 플래시 메모리에 저장하는 단계를 포함하며,
    상기 부호율을 연산하는 단계는,
    상기 연산된 압축률을 기 설정된 복수의 임계 범위와 비교하는 단계,
    상기 연산된 압축률이 포함된 임계 범위에 대응하는 보정 압축률을 결정하는 단계,
    상기 보정 압축률을 이용하여 상기 원본 데이터의 부호율을 연산하는 단계를 포함하며,
    다음의 수학식을 이용하여 상기 압축률(r)이 포함된 임계 범위 중 크기가 가장 작은 수치를 상기 보정 압축률(
    Figure 112018042716069-pat00007
    )로 결정하는 낸드 플래시 메모리 저장 방법:
    Figure 112018042716069-pat00008

    여기서, r0 내지 rn은 크기가 서로 다른 임계값을 의미한다.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 압축 데이터의 비트 수와 상기 오류 정정 코드의 비트 수의 합은 기 설정된 할당 비트 수보다 작거나 같은 낸드 플래시 메모리 저장 방법.
  5. 제4항에 있어서,
    상기 압축 데이터를 생성하는 단계는,
    상기 압축 데이터의 비트 수와 상기 오류 정정 코드의 비트 수 합이 상기 할당 비트 수 보다 적은 경우, 상기 할당 비트 수에서 상기 압축 데이터의 비트 수 및 오류 정정 코드의 비트 수를 뺀 값만큼 상기 압축 데이터에 이진 데이터 0을 추가하는 낸드 플래시 메모리 저장 방법.
  6. 제5항에 있어서,
    상기 낸드 플래시 메모리는 데이터 영역과 스페어 영역을 포함하며,
    상기 저장하는 단계는,
    상기 생성된 오류 정정 코드를 상기 데이터 영역 및 스페어 영역에 분산하여 저장하는 낸드 플래시 메모리 저장 방법.
  7. 입력받은 원본 데이터의 압축률을 연산하고, 상기 연산된 압축률 및 기 설정된 복수의 임계 범위를 이용하여 보정 압축률을 결정하며, 상기 보정 압축률을 통해 상기 원본 데이터의 부호율을 연산하는 연산부,
    상기 부호율에 따라 오류 정정 코드(error correcting code)의 비트 수를 결정하는 결정부,
    상기 결정된 비트 수에 따라 오류 정정 코드를 생성하는 정정 코드 생성부,
    상기 연산된 압축률에 따라 원본 데이터를 압축하여 압축 데이터를 생성하는 압축부, 그리고
    상기 생성된 오류 정정 코드와 상기 압축 데이터를 결합하여 낸드 플래시 메모리에 저장하는 저장부를 포함하며,
    상기 연산부는,
    상기 연산된 압축률을 기 설정된 복수의 임계 범위와 비교하고, 상기 연산된 압축률이 포함된 임계 범위에 대응하는 보정 압축률을 결정하며, 상기 보정 압축률을 이용하여 상기 원본 데이터의 부호율을 연산하며,
    다음의 수학식을 이용하여 상기 압축률(r)이 포함된 임계 범위 중 크기가 가장 작은 수치를 상기 보정 압축률(
    Figure 112018042716069-pat00009
    )로 결정하는 낸드 플래시 메모리 컨트롤러:
    Figure 112018042716069-pat00010

    여기서, r0 내지 rn은 크기가 서로 다른 임계값을 의미한다.
  8. 삭제
  9. 삭제
  10. 제7항에 있어서,
    상기 압축 데이터의 비트 수와 상기 오류 정정 코드의 비트 수의 합은 기 설정된 할당 비트 수보다 작거나 같은 낸드 플래시 메모리 컨트롤러.
  11. 제10항에 있어서,
    상기 압축부는,
    상기 압축 데이터의 비트 수와 상기 오류 정정 코드의 비트 수 합이 상기 할당 비트 수 보다 적은 경우, 상기 할당 비트 수에서 상기 압축 데이터의 비트 수 및 오류 정정 코드의 비트 수를 뺀 값만큼 상기 압축 데이터에 이진 데이터 0을 추가하는 낸드 플래시 메모리 컨트롤러.
  12. 제11항에 있어서,
    상기 낸드 플래시 메모리는 데이터 영역과 스페어 영역을 포함하며,
    상기 저장부는,
    상기 생성된 오류 정정 코드를 상기 데이터 영역 및 스페어 영역에 분산하여 저장하는 낸드 플래시 메모리 컨트롤러.
KR1020160073146A 2016-06-13 2016-06-13 압축률을 이용한 낸드 플래시 메모리 컨트롤러 및 이를 이용한 낸드 플래시 메모리 저장 방법 KR101889864B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160073146A KR101889864B1 (ko) 2016-06-13 2016-06-13 압축률을 이용한 낸드 플래시 메모리 컨트롤러 및 이를 이용한 낸드 플래시 메모리 저장 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160073146A KR101889864B1 (ko) 2016-06-13 2016-06-13 압축률을 이용한 낸드 플래시 메모리 컨트롤러 및 이를 이용한 낸드 플래시 메모리 저장 방법

Publications (2)

Publication Number Publication Date
KR20170140614A KR20170140614A (ko) 2017-12-21
KR101889864B1 true KR101889864B1 (ko) 2018-08-21

Family

ID=60936295

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160073146A KR101889864B1 (ko) 2016-06-13 2016-06-13 압축률을 이용한 낸드 플래시 메모리 컨트롤러 및 이를 이용한 낸드 플래시 메모리 저장 방법

Country Status (1)

Country Link
KR (1) KR101889864B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102032878B1 (ko) * 2017-12-22 2019-10-16 한국외국어대학교 연구산학협력단 플래시 메모리 컨트롤러의 에러 정정 방법
CN114594908A (zh) * 2022-02-25 2022-06-07 阿里巴巴(中国)有限公司 基于固态硬盘ssd的数据处理方法、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008299718A (ja) * 2007-06-01 2008-12-11 Hitachi Ltd 記憶システム、記憶制御装置及びデータ圧縮方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102081980B1 (ko) * 2012-10-08 2020-02-27 삼성전자 주식회사 메모리 시스템에서의 라이트 동작 또는 리드 동작 수행 방법
KR101519615B1 (ko) * 2013-10-30 2015-05-12 에스케이텔레콤 주식회사 반도체 메모리 장치의 데이터 입력 제어 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008299718A (ja) * 2007-06-01 2008-12-11 Hitachi Ltd 記憶システム、記憶制御装置及びデータ圧縮方法

Also Published As

Publication number Publication date
KR20170140614A (ko) 2017-12-21

Similar Documents

Publication Publication Date Title
US8751911B2 (en) Semiconductor memory device
KR101398200B1 (ko) 메모리 장치 및 인코딩/디코딩 방법
KR101398212B1 (ko) 메모리 장치 및 인코딩/디코딩 방법
KR100842680B1 (ko) 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
US8782500B2 (en) Systems and methods for error correction and decoding on multi-level physical media
KR101434405B1 (ko) 메모리 장치 및 메모리 데이터 읽기 방법
KR101466270B1 (ko) 비휘발성 메모리 시스템 및 그것의 데이터 처리 방법
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 (ko) 비트 상태 맵핑 동작을 수행하는 코드 변조 인코더와 코드 변조 디코더를 포함하는 메모리 컨트롤러, 그것을 포함하는 데이터 저장 장치 및 플래시 메모리 시스템
US20120254686A1 (en) Non-volatile semiconductor memory devices and error correction methods
US11210163B2 (en) Memory system and control method
KR20090122060A (ko) 오류 정정 장치, 그 방법 및 상기 장치를 포함하는 메모리장치
JP2008165805A (ja) フラッシュメモリ装置のecc制御器及びそれを含むメモリシステム
KR20090089657A (ko) 메모리 장치 및 메모리 데이터 읽기 방법
US10613927B1 (en) System and method for improved memory error rate estimation
US10009045B2 (en) Decoding method, memory controlling circuit unit and memory storage device
CN112988453A (zh) 用于闪存的数据恢复方法
KR101889864B1 (ko) 압축률을 이용한 낸드 플래시 메모리 컨트롤러 및 이를 이용한 낸드 플래시 메모리 저장 방법
US10771094B2 (en) Memory system configured to estimate a read voltage using a histogram
CN106681856B (zh) 解码方法、存储器存储装置及存储器控制电路单元
US11735286B2 (en) Selecting read reference voltage using historical decoding information
US12009840B2 (en) Systems and methods of decoding error correction code of a memory device with dynamic bit error estimation
US20210081275A1 (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