KR102085690B1 - 오류 정정 기능을 구비한 플래시 메모리 저장 장치 및 그 구동 방법 - Google Patents

오류 정정 기능을 구비한 플래시 메모리 저장 장치 및 그 구동 방법 Download PDF

Info

Publication number
KR102085690B1
KR102085690B1 KR1020180104832A KR20180104832A KR102085690B1 KR 102085690 B1 KR102085690 B1 KR 102085690B1 KR 1020180104832 A KR1020180104832 A KR 1020180104832A KR 20180104832 A KR20180104832 A KR 20180104832A KR 102085690 B1 KR102085690 B1 KR 102085690B1
Authority
KR
South Korea
Prior art keywords
chunk
data
flash memory
error correction
parity
Prior art date
Application number
KR1020180104832A
Other languages
English (en)
Other versions
KR20190125150A (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 한양대학교 산학협력단
Publication of KR20190125150A publication Critical patent/KR20190125150A/ko
Application granted granted Critical
Publication of KR102085690B1 publication Critical patent/KR102085690B1/ko

Links

Images

Classifications

    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

오류 정정 기능을 구비한 플래시 메모리 저장 장치의 저장 방법을 개시한다. 본 발명의 일 실시예에 따른 오류 정정 기능을 구비한 플래시 메모리 저장 장치가 데이터를 저장하는 방법에 있어서, 상기 데이터에 대응되도록 소정 개수의 청크를 상이하게 배치한 복수의 청크 집합에 기초하여, 상기 데이터에 대한 복수의 패리티 코드를 생성하는 단계; 및 상기 데이터 및 상기 복수의 패리티 코드를 플래시 메모리에 저장하는 단계를 포함한다.

Description

오류 정정 기능을 구비한 플래시 메모리 저장 장치 및 그 구동 방법 {FLASH STORAGE DEVICE WITH ERROR CORRECTION FUNCTION AND OPERATING METHOD THEREOF}
본 발명은 ECC(error correction code) 엔진의 인코딩 및 디코딩 대상이 되는 청크의 집합을 복수로 구성하여 오류 정정 기능을 수행하는 플래시 메모리 장치 및 그 구동 방법에 관한 것이다.
플래시 메모리를 저장 장치로 사용하기 위해서는 별도의 오류 정정 기법이 필요하다. 이는, 플래시 메모리는 산화층 사이의 플로팅 게이트에 전자를 가두거나 비워 데이터를 저장하지만, 의도하지 않은 시점에 플로팅 게이트 안의 전자가 새어나가거나 인접한 셀의 영향을 받아 플로팅 게이트 안의 전자 수가 바뀌면 기존에 저장하고 있던 데이터가 손상될 수 있기 때문이다.
플래시 메모리 저장 장치는 일반적으로 고정된 오류 정정 능력을 가지는 ECC를 이용하여 데이터 오류를 정정한다. ECC의 오류 정정 능력은 제품 설계 단계에서 플래시 메모리의 P/E (Program/Erase) 사이클이 한계치에 이를 때까지 발생할 수 있는 BER (Bit Error Rate)을 고려하여 결정된다.
하지만, 고 신뢰성이 요구되는 시스템에 플래시 메모리를 사용하기 위해서는 예외적인 상황에서 발생하는 예측 불가능한 데이터 오류를 정정할 수 있는 강력한 오류 정정 기법이 필요하다.
본 발명은 복수의 청크 집합을 이용하여 ECC의 오류 정정 능력을 초과한 데이터 오류를 정정할 수 있는 플래시 메모리 장치 및 그 구동 방법을 제공하고자 한다.
본 발명이 해결하고자 하는 과제는 이상에서 언급한 과제(들)로 제한되지 않으며, 언급되지 않은 또 다른 과제(들)은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 오류 정정 기능을 구비한 플래시 메모리 저장 장치가 데이터를 저장하는 방법에 있어서, 상기 데이터에 대응되도록 소정 개수의 청크를 상이하게 배치한 복수의 청크 집합에 기초하여, 상기 데이터에 대한 복수의 패리티 코드를 생성하는 단계; 및 상기 데이터 및 상기 복수의 패리티 코드를 플래시 메모리에 저장하는 단계를 포함한다.
바람직하게는, 상기 복수의 청크 집합은 하나의 기본 청크 집합과 적어도 하나의 예비 청크 집합으로 구성되고, 상기 하나의 기본 청크 집합에 대응되는 패리티 코드인 기본 패리티 코드는 상기 플래시 메모리의 기본 패리티 셀에 저장되고, 상기 적어도 하나의 예비 청크 집합에 대응되는 패리티 코드인 적어도 하나의 예비 패리티 코드는 상기 플래시 메모리의 예비 패리티 셀에 저장될 수 있다.
바람직하게는, 상기 복수의 패리티 코드를 생성하는 단계는 상기 복수의 청크 집합 각각에 대응되는 복수의 ECC 인코더를 이용하여 병렬적으로 생성할 수 있다.
바람직하게는, 상기 데이터에 대한 복수의 패리티 코드를 생성하는 단계는 상기 복수의 청크 집합 각각에 대하여, 청크 집합을 구성하는 복수의 청크 각각에 대응되는 상기 데이터의 일부를 추출하는 단계; ECC 인코더 및 상기 데이터의 일부를 이용하여, 상기 복수의 청크 각각에 대하여 청크 단위의 패리티 코드를 생성하는 단계; 및 상기 청크 단위의 패리티 코드로 구성되는 패리티 코드를 생성하는 단계를 포함할 수 있다.
또한, 상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 오류 정정 기능을 구비한 플래시 메모리 저장 장치는 저장할 데이터에 대응되도록 소정 개수의 청크를 상이하게 배치한 복수의 청크 집합에 기초하여, 상기 데이터에 대한 복수의 패리티 코드를 생성하는 패리티 코드 생성부; 및 상기 데이터 및 상기 복수의 패리티 코드를 플래시 메모리에 저장하는 제어부를 포함한다.
바람직하게는, 상기 복수의 청크 집합은 하나의 기본 청크 집합과 적어도 하나의 예비 청크 집합으로 구성되고, 상기 하나의 기본 청크 집합에 대응되는 패리티 코드인 기본 패리티 코드는 상기 플래시 메모리의 기본 패리티 셀에 저장되고, 상기 적어도 하나의 예비 청크 집합에 대응되는 패리티 코드인 적어도 하나의 예비 패리티 코드는 상기 플래시 메모리의 예비 패리티 셀에 저장될 수 있다.
바람직하게는, 상기 패리티 코드 생성부는 상기 복수의 청크 집합 각각에 대응되는 복수의 ECC 인코더를 이용하여 병렬적으로 생성할 수 있다.
바람직하게는, 상기 패리티 코드 생성부는 상기 복수의 청크 집합 각각에 대하여, 청크 집합을 구성하는 복수의 청크 각각에 대응되는 상기 데이터의 일부를 추출하고, ECC 인코더 및 상기 데이터의 일부를 이용하여, 상기 복수의 청크 각각에 대하여 청크 단위의 패리티 코드를 생성하고, 상기 청크 단위의 패리티 코드로 구성되는 패리티 코드를 생성할 수 있다.
또한, 상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 오류 정정 기능을 구비한 플래시 메모리 저장 장치가 데이터를 독출하는 방법에 있어서, 상기 데이터에 대응되도록 소정 개수의 청크를 상이하게 배치한 복수의 청크 집합 중 기본 청크 집합에 대응되는 기본 패리티 코드에 기초하여, 상기 데이터를 오류 정정하여 청크 단위로 제1 독출하는 단계; 상기 오류 정정에 실패하면, 상기 복수의 청크 집합 중 적어도 하나의 예비 청크 집합에 대응되는 적어도 하나의 예비 패리티 코드에 기초하여, 상기 데이터를 오류 정정하여 청크 단위로 제2 독출하는 단계; 및 상기 제2 독출 결과에 기초하여, 상기 데이터에서 상기 오류 정정에 실패한 청크인 대상청크에 대하여 오류 정정을 다시 수행하는 단계를 포함한다.
바람직하게는, 상기 기본 청크 집합은 상기 복수의 청크 집합 중에서 청크별 오류 분포가 가장 균일한 청크 집합일 수 있다.
바람직하게는, 상기 데이터를 오류 정정하여 청크 단위로 제2 독출하는 단계 및 상기 대상청크에 대하여 오류 정정을 다시 수행하는 단계는 상기 대상청크에 대한 오류 정정이 성공할 때까지, 상기 적어도 하나의 예비 청크 집합 각각에 대하여 순차적으로 수행될 수 있다.
바람직하게는, 상기 제1 독출하는 단계 또는 상기 제2 독출하는 단계는 상기 청크 단위의 독출 결과 오류 정정에 성공하면, 상기 독출 결과를 소정의 메모리 버퍼에 저장하고, 상기 제2 독출하는 단계 또는 상기 오류 정정을 다시 수행하는 단계는 상기 메모리 버퍼를 더 이용할 수 있다.
또한, 상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 오류 정정 기능을 구비한 플래시 메모리 저장 장치는 독출할 데이터에 대응되도록 소정 개수의 청크를 상이하게 배치한 복수의 청크 집합 중 기본 청크 집합에 대응되는 기본 패리티 코드에 기초하여, 상기 데이터를 오류 정정하여 청크 단위로 제1 독출하고, 상기 복수의 청크 집합 중 적어도 하나의 예비 청크 집합에 대응되는 적어도 하나의 예비 패리티 코드에 기초하여, 상기 데이터를 오류 정정하여 청크 단위로 제2 독출하는 독출부; 및 상기 제1 독출의 오류 정정이 실패하면 상기 제2 독출을 수행하고, 상기 제2 독출 결과에 기초하여, 상기 데이터에서 상기 오류 정정에 실패한 청크인 대상청크에 대하여 오류 정정을 다시 수행하도록 상기 독출부를 제어하는 제어부를 포함한다.
바람직하게는, 상기 기본 청크 집합은 상기 복수의 청크 집합 중에서 청크별 오류 분포가 가장 균일한 청크 집합일 수 있다.
바람직하게는, 상기 제어부는 상기 대상청크에 대한 오류 정정이 성공할 때까지, 상기 적어도 하나의 예비 청크 집합 각각에 대하여 순차적으로 상기 독출부가 상기 제2 독출을 수행하고, 상기 대상청크에 대하여 오류 정정을 다시 수행하도록 제어할 수 있다.
본 발명은 복수의 청크 집합을 이용함으로써, 단일 청크 집합을 이용하는 ECC 엔진을 가지는 플래시 메모리 저장 장치에서 정정 불가능하던 데이터 오류를 정정하여 플래시 메모리 저장 장치의 신뢰성을 향상시킬 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 오류 정정 기능을 구비한 플래시 메모리 저장 장치의 저장 방법을 설명하기 위한 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 플래시 메모리 저장 장치의 패리티 코드 생성 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 오류 정정 기능을 구비한 플래시 메모리 저장 장치를 설명하기 위한 블록도이다.
도 4는 본 발명의 일 실시예에 따른 일 실시예에 따른 오류 정정 기능을 구비한 플래시 메모리 저장 장치의 독출 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 다른 실시예에 따른 오류 정정 기능을 구비한 플래시 메모리 저장 장치를 설명하기 위한 블록도이다.
도 6은 본 발명의 일 실시예에 따른 청크 집합을 설명하기 위한 도면이다.
도 7 및 8은 본 발명의 일 실시예에 따른 복수의 청크 집합을 이용한 플래시 메모리 저장 장치의 독출 방법을 설명하기 위한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 오류 정정 기능을 구비한 플래시 메모리 저장 장치의 저장 방법을 설명하기 위한 흐름도이다.
단계 S110에서는, 플래시 메모리 저장 장치가 저장할 데이터에 대응되도록 소정 개수의 청크를 상이하게 배치한 복수의 청크 집합에 기초하여, 그 데이터에 대한 복수의 패리티 코드를 생성한다.
본 발명의 플래시 메모리 저장 장치로는 SSD(solid state drive), eMMC (embedded multi media card), UFS (universal flash storage) 등이 해당할 수 있다. 하지만, 본 발명의 플래시 메모리 저장 장치가 위에서 열거한 장치들로만 한정되는 것은 아니며, 플래시 메모리에 기반하는 다양한 종류의 저장 장치일 수 있음은 물론이다.
이때, 플래시 메모리 저장 장치는 입력 및 출력의 기본 단위가 페이지(page)이며, 본 발명의 데이터는 단수 또는 복수의 페이지로 구성될 수 있다. 만일 본 발명의 데이터가 복수의 페이지로 구성된 경우, 플래시 메모리 저장 장치는 각각의 페이지별로 패리티 코드를 생성하고 독출할 수 있다. 또한, 본 발명의 청크(chunk)는 ECC 인코딩 및 디코딩의 기본 단위로써, 하나의 페이지는 동일한 크기를 갖는 복수의 청크로 구성된 청크 집합에 대응될 수 있다.
한편, 도 6을 참조하면, 청크 집합은 청크의 배치에 따라 다양한 형태로 존재할 수 있다. 보다 구체적으로, 청크 집합 0(chunk set 0)과 같이 데이터에 대하여 4개의 청크를 차례로 배치할 수 있다. 또한, 청크 집합 1(chunk set 1)과 같이 데이터에 대하여 청크 0(chunk 0)이 데이터의 시작 부분과 끝 부분으로 나누어 위치하도록 4개의 청크를 배치할 수 있다. 또한, 청크 집합 N-1(chunk set N-1)과 같이 데이터에 대하여 4개의 청크가 모두 분리되어 위치하도록 4개의 청크를 배치할 수 있다.
이처럼, 1개의 청크는 데이터의 연속적인 구간에 대응되도록 배치(청크 집합 0)되거나, 데이터의 비연속적인 구간에 대응되도록 배치(청크 집합 1의 청크 0, 청크 집합 N-1의 청크 0 내지 3)될 수 있다.
또한, 플래시 메모리 저장 장치는 청크 단위로 ECC 인코딩을 수행하는 ECC 인코더 및 복수의 청크 집합을 이용하여, 저장할 데이터에 대하여 복수의 패리티 코드를 생성할 수 있다. 즉, 플래시 메모리 저장 장치는 복수의 청크 집합 중에서 하나의 청크 집합을 순차적으로 이용하여, 대응되는 패리티 코드를 반복하여 생성할 수 있다.
한편, 플래시 메모리 저장 장치가 패리티 코드를 생성하는 자세한 방법은 도 2에 대한 설명에서 구체적으로 후술한다.
다른 실시예에서는, 플래시 메모리 저장 장치가 복수의 청크 집합 각각에 대응되는 복수의 ECC 인코더를 이용하여 병렬적으로 복수의 패리티 코드를 생성할 수 있다.
이때, 플래시 메모리 저장 장치는 청크 집합의 개수만큼의 ECC 인코더를 포함할 수 있으며, 각각의 ECC 인코더를 이용하여 복수의 청크 집합 각각에 대응되는 패리티 코드를 동시에 생성할 수 있다.
이처럼, 플래시 메모리 저장 장치가 복수의 ECC 인코더를 이용하여 병렬적으로패리티 코드를 생성함으로써, 복수의 청크 집합을 이용하여 패리티 코드를 생성하는데 소요되는 시간을 단축할 수 있다.
마지막으로 단계 S120에서는, 플래시 메모리 저장 장치가 그 데이터 및 복수의 패리티 코드를 플래시 메모리에 저장한다.
예컨대, 플래시 메모리 저장 장치는 그 데이터를 플래시 메모리에 포함된 데이터 셀에 저장할 수 있다. 또한, 플래시 메모리 저장 장치는 그 복수의 패리티 코드를 플래시 메모리에 포함된 패리티 셀에 저장할 수 있다.
다른 실시예에서는, 복수의 청크 집합은 하나의 기본 청크 집합과 적어도 하나의 예비 청크 집합으로 구성되고, 기본 청크 집합에 대응되는 패리티 코드인 기본 패리티 코드는 플래시 메모리의 기본 패리티 셀에 저장되고, 적어도 하나의 예비 청크 집합에 대응되는 패리티 코드인 적어도 하나의 예비 패리티 코드는 플래시 메모리의 예비 패리티 셀에 저장될 수 있다.
즉, 플래시 메모리 저장 장치는 오류 정정 기능을 수행하는데 기본이 되는 청크 집합을 기본 청크 집합으로 이용하고, 나머지 청크 집합을 적어도 하나의 예비 청크 집합으로 이용할 수 있다.
이때, 플래시 메모리 저장 장치는 그 데이터를 플래시 메모리에 포함된 데이터 셀에 저장하고, 기본 패리티 코드를 플래시 메모리의 기본 패리티 셀에 저장하고, 적어도 하나의 예비 패리티 코드를 플래시 메모리의 예비 패리티 셀에 저장할 수 있다.
이때, 데이터 셀, 기본 패리티 셀 및 예비 패리티 셀은 독립적으로 동작 가능한 서로 다른 메모리 셀 어레이에 포함될 수 있고, 물리적으로 분리된 별도의 장치에 분산되어 위치하는 것 또한 가능하다.
이와 같이, 본 발명의 일 실시예에 따른 오류 정정 기능을 구비한 플래시 메모리 저장 장치의 저장 방법은 추후 데이터 독출 시 오류 정정 능력의 향상을 위하여 복수의 청크 집합을 이용하여 복수의 패리티 코드를 저장할 수 있는 효과가 있다.
도 2는 본 발명의 일 실시예에 따른 플래시 메모리 저장 장치의 패리티 코드 생성 방법을 설명하기 위한 흐름도이다.
이때, 플래시 메모리 저장 장치는 복수의 청크 집합 각각에 대하여 다음과 같은 방법으로 패리티 코드를 생성할 수 있다.
단계 S210에서는, 플래시 메모리 저장 장치가 청크 집합을 구성하는 복수의 청크 각각에 대응되는 데이터의 일부를 추출한다.
예컨대, 플래시 메모리 저장 장치는 복수의 청크 집합 각각에 대하여 청크 집합을 구성하는 복수의 청크별로 대응되는 데이터의 일부를 추출할 수 있다. 보다 구체적으로, 도 6을 참조하면, 플래시 메모리 저장 장치는 청크 집합 0 내지 N-1에서 청크 0 내지 3 각각에 대응되는 데이터의 일부를 추출할 수 있다.
단계 S220에서는, 플래시 메모리 저장 장치가 ECC 인코더 및 데이터의 일부를 이용하여, 복수의 청크 각각에 대하여 청크 단위의 패리티 코드를 생성한다.
즉, 플래시 메모리 저장 장치는 청크 단위로 ECC 인코딩을 수행하는 ECC 인코더에 단계 S210에서 추출된 청크에 대응되는 데이터의 일부를 입력함으로써, 복수의 청크 각각에 대하여 청크 단위의 패리티 코드를 생성할 수 있다.
마지막으로 단계 S230에서는, 플래시 메모리 저장 장치가 그 청크 단위의 패리티 코드로 구성되는 패리티 코드를 생성한다.
즉, 플래시 메모리 저장 장치는 복수의 청크 집합 각각에 대하여 청크 단위의 패리티 코드 복수개를 포함하는 패리티 코드를 생성할 수 있다. 추후에, 플래시 메모리 저장 장치는 그 복수의 청크 집합 각각을 이용하여 패리티 코드에 포함된 청크 단위의 패리티 코드를 통해 청크 단위로 오류를 정정하여 저장된 데이터를 독출할 수 있다.
도 3은 본 발명의 일 실시예에 따른 오류 정정 기능을 구비한 플래시 메모리 저장 장치를 설명하기 위한 블록도이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 오류 정정 기능을 구비한 플래시 메모리 저장 장치(300)는 패리티 코드 생성부(310) 및 제어부(320)를 포함할 수 있다.
패리티 코드 생성부(310)는 저장할 데이터에 대응되도록 소정 개수의 청크를 상이하게 배치한 복수의 청크 집합에 기초하여, 그 데이터에 대한 복수의 패리티 코드를 생성한다.
다른 실시예에서는, 복수의 청크 집합은 하나의 기본 청크 집합과 적어도 하나의 예비 청크 집합으로 구성되고, 그 하나의 기본 청크 집합에 대응되는 패리티 코드인 기본 패리티 코드는 플래시 메모리의 기본 패리티 셀에 저장되고, 그 적어도 하나의 예비 청크 집합에 대응되는 패리티 코드인 적어도 하나의 예비 패리티 코드는 플래시 메모리의 예비 패리티 셀에 저장될 수 있다.
또 다른 실시예에서는, 패리티 코드 생성부(310)는 복수의 청크 집합 각각에 대응되는 복수의 ECC 인코더를 이용하여 병렬적으로 복수의 패리티 코드를 생성할 수 있다.
또 다른 실시예에서는, 패리티 코드 생성부(310)는 복수의 청크 집합 각각에 대하여, 청크 집합을 구성하는 복수의 청크 각각에 대응되는 그 데이터의 일부를 추출하고, ECC 인코더 및 상기 데이터의 일부를 이용하여, 그 복수의 청크 각각에 대하여 청크 단위의 패리티 코드를 생성하고, 그 청크 단위의 패리티 코드로 구성되는 패리티 코드를 생성할 수 있다.
제어부(320)는 그 데이터 및 복수의 패리티 코드를 플래시 메모리에 저장한다.
도 4는 본 발명의 일 실시예에 따른 오류 정정 기능을 구비한 플래시 메모리 저장 장치의 독출 방법을 설명하기 위한 흐름도이다.
단계 S410에서는, 플래시 메모리 저장 장치가 독출할 데이터에 대응되도록 소정 개수의 청크를 상이하게 배치한 복수의 청크 집합 중 기본 청크 집합에 대응되는 기본 패리티 코드에 기초하여, 그 데이터를 오류 정정하여 청크 단위로 제1 독출한다.
이때, 플래시 메모리 저장 장치는 입력 및 출력의 기본 단위가 페이지(page)이며, 본 발명의 데이터는 단수 또는 복수의 페이지로 구성될 수 있다. 만일 본 발명의 데이터가 복수의 페이지로 구성된 경우, 플래시 메모리 저장 장치는 각각의 페이지별로 패리티 코드를 생성하고 독출할 수 있다.
한편, 플래시 메모리 저장 장치는 복수의 청크 집합 중 하나인 기본 청크 집합에 대응되는 기본 패리티 코드를 이용하여, 청크 단위로 오류를 정정하면서 그 데이터를 독출할 수 있다.
예컨대, 플래시 메모리 저장 장치는 청크 집합이 청크 0 내지 3으로 구성된 경우에, 청크 0 내지 3 각각에 대응되는 데이터의 일부를 청크 단위로 데이터 셀로부터 출력한 뒤 청크 단위의 패리티 코드를 이용하여 ECC 디코더를 통해 오류를 정정하여 독출할 수 있다.
한편, 플래시 메모리 저장 장치는 메모리 버퍼에 그 데이터에 대한 독출 결과를 저장할 수 있다. 예컨대, 도 7을 참조하면, 플래시 메모리 저장 장치는 DATA_PC의 데이터에 대응되는 청크에 대한 오류 정정이 성공하면, 그 오류 정정된 DATA_PC_COR의 데이터로 DATA_PC의 데이터를 치환하여 메모리 버퍼에 저장할 수 있다. 이때, 플래시 메모리 저장 장치는 오류 정정이 실패하면, DATA_PC의 데이터를 치환하여 저장하지 않는다.
다른 실시예에서는, 기본 청크 집합은 복수의 청크 집합 중에서 청크별 오류 분포가 가장 균일한 청크 집합일 수 있다.
이는, 플래시 메모리 저장 장치의 오류 정정 성공 여부는 청크 단위 데이터에 존재하는 비트 오류 개수에 따라 결정될 수 있기 때문이다. 즉, 플래시 메모리 저장 장치는 청크별 오류의 분포가 균일할수록 모든 청크에 대하여 오류 정정에 성공할 가능성이 높아질 수 있기 때문이다. 이와 반대로, 플래시 메모리 저장 장치는 특정한 청크에 오류가 집중되어 있다면, 그 특정한 청크에 대하여 오류 정정에 성공할 가능성이 낮아질 수 있다.
단계 S420에서는, 플래시 메모리 저장 장치가 제1 독출에서 오류 정정에 실패하면, 복수의 청크 집합 중 적어도 하나의 예비 청크 집합에 대응되는 적어도 하나의 예비 패리티 코드에 기초하여, 그 데이터를 오류 정정하여 청크 단위로 제2 독출한다.
즉, 플래시 메모리 저장 장치는 적어도 하나의 예비 청크 집합에 대응되는 적어도 하나의 예비 패리티 코드를 이용하여, 청크 단위로 오류를 정정함으로써 그 데이터를 독출할 수 있다.
이때, 플래시 메모리 저장 장치는 적어도 하나의 예비 청크 집합 각각을 이용한 오류 정정이 성공하면, 오류 정정이 성공한 청크에 대응되는 제2 독출 결과를 메모리 버퍼에 갱신할 수 있다.
마지막으로 단계 S430에서는, 플래시 메모리 저장 장치가 제2 독출 결과에 기초하여, 그 데이터에서 제1 독출을 통해 오류 정정에 실패한 청크인 대상청크에 대하여 오류 정정을 다시 수행한다.
즉, 플래시 메모리 저장 장치는 제2 독출을 통해 대상청크와 대응되는 데이터 구간이 중복되는 청크에 대한 오류 정정이 성공한 경우에, 기본 청크 집합, 기본 패리티 코드 및 제2 독출 결과를 이용하여 대상청크에 대한 오류 정정을 다시 수행할 수 있다.
다른 실시예에서는, 플래시 메모리 저장 장치가 단계 S410 또는 단계 S420에서 청크 단위의 독출 결과 오류 정정에 성공하면 그 독출 결과를 소정의 메모리 버퍼에 저장하고, 단계 S420 또는 단계 S430에서 그 메모리 버퍼를 더 이용할 수 있다.
예컨대, 플래시 메모리 저장 장치는 제1 독출을 통해 대상청크에 대한 오류 정정에 실패한 이후에, 제2 독출을 통해 그 대상청크와 대응되는 데이터 구간이 중복되는 청크에 대한 오류 정정에 성공할 수 있다. 이때, 플래시 메모리 저장 장치는 그 성공에 따라 단계 S420을 통해 메모리 버퍼에 그 중복된 데이터 구간에 대한 독출 결과를 갱신하므로, 대상청크에 대한 오류 정정을 다시 수행하여 성공할 가능성이 증가할 수 있다.
이때, 제2 독출을 통해 그 대상청크와 대응되는 데이터 구간이 중복되는 보다많은 청크에 대한 오류 정정이 성공할수록, 대상청크에 대한 오류 정정 가능성이 높아질 수 있다.
보다 구체적으로, 도 8을 참조하면, 플래시 메모리 저장 장치가 기본 패리티 코드를 이용한 청크 0(805)에 대한 오류 정정에 실패한 경우를 가정한다. 이때, 플래시 메모리 저장 장치는 예비 청크 집합의 청크 0(810, 811)에 대한 오류 정정에 성공할 수 있고, 이에 따라 예비 청크 집합의 청크 0(810, 811)에서 데이터 구간이 대상청크(805)와 중복되는 앞부분(810)을 메모리 버퍼에 갱신할 수 있다.
그 결과, 플래시 메모리 저장 장치는 메모리 버퍼에 대상청크(805)에 대응되는 데이터 구간의 절반(즉, 810에 대응되는 구간)에 대하여 오류가 존재하지 않는 데이터를 포함할 수 있다. 또한, 그에 따라, 플래시 메모리 저장 장치는 다시 기본 패리티 코드를 이용하여 대상청크(805)에 대한 오류 정정을 수행한다면, 그 성공 가능성이 높아질 수 있다.
다시 말하면, 플래시 메모리 저장 장치는 대상청크(805)에 대응되는 데이터 구간의 나머지 절반(즉, 810에 대응되지 않는 구간)에 포함된 오류의 개수가 ECC 디코더의 오류 정정 능력을 초과하지 않으면, 대상청크(805)에 대한 오류를 성공적으로 정정할 수 있다.
다른 실시예에서는, 플래시 메모리 저장 장치가 단계 S420 및 S430을 대상청크에 대한 오류 정정이 성공할 때까지, 적어도 하나의 예비 청크 집합 각각에 대하여 순차적으로 수행할 수 있다.
즉, 플래시 메모리 저장 장치는 예비 청크 집합이 여러 개인 경우에, 제2 독출에 상대적으로 많은 시간이 소요될 수 있으므로, 그 중에서 하나씩 순차적으로 단계 S420 및 S430을 수행할 수 있다. 그리고, 플래시 메모리 저장 장치는 그 각각의 수행에 대하여 대상청크에 대한 오류 정정의 성공 여부를 판단함으로써, 제2 독출에 소요되는 시간을 절약할 수 있음은 물론이다.
이와 같이, 본 발명의 일 실시예에 따른 오류 정정 기능을 구비한 플래시 메모리 저장 장치의 독출 방법은 복수의 청크 집합을 이용함으로써, 단일 청크 집합을 이용하는 ECC 엔진을 가지는 플래시 메모리 저장 장치에서 정정 불가능하던 데이터 오류를 정정하여 플래시 메모리 저장 장치의 신뢰성을 향상시킬 수 있는 효과가 있다.
도 5는 본 발명의 다른 실시예에 따른 오류 정정 기능을 구비한 플래시 메모리 저장 장치를 설명하기 위한 블록도이다.
도 5를 참조하면, 본 발명의 다른 실시예에 따른 오류 정정 기능을 구비한 플래시 메모리 저장 장치(300)는 독출부(330) 및 제어부(320)를 포함할 수 있다.
독출부(330)는 독출할 데이터에 대응되도록 소정 개수의 청크를 상이하게 배치한 복수의 청크 집합 중 기본 청크 집합에 대응되는 기본 패리티 코드에 기초하여, 독출할 데이터를 오류 정정하여 청크 단위로 제1 독출하고, 그 복수의 청크 집합 중 적어도 하나의 예비 청크 집합에 대응되는 적어도 하나의 예비 패리티 코드에 기초하여, 그 데이터를 오류 정정하여 청크 단위로 제2 독출한다.
제어부(320)는 제1 독출의 오류 정정이 실패하면 제2 독출을 수행하고, 제2 독출 결과에 기초하여, 그 데이터에서 오류 정정에 실패한 청크인 대상청크에 대하여 오류 정정을 다시 수행하도록 독출부(330)를 제어한다.
다른 실시예에서는, 기본 청크 집합은 복수의 청크 집합 중에서 청크별 오류 분포가 가장 균일한 청크 집합일 수 있다.
또 다른 실시예에서는, 제어부(320)는 대상청크에 대한 오류 정정이 성공할 때까지, 적어도 하나의 예비 청크 집합 각각에 대하여 순차적으로 독출부(330)가 제2 독출을 수행하고, 대상청크에 대하여 오류 정정을 다시 수행하도록 제어할 수 있다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.
상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (15)

  1. 오류 정정 기능을 구비한 플래시 메모리 저장 장치가 데이터를 저장하는 방법에 있어서,
    상기 데이터에 대응되도록 소정 개수의 청크를 상이하게 배치한 복수의 청크 집합에 기초하여, 상기 데이터에 대한 복수의 패리티 코드를 생성하는 단계; 및
    상기 데이터 및 상기 복수의 패리티 코드를 플래시 메모리에 저장하는 단계를 포함하고,
    상기 복수의 청크 집합은 하나의 기본 청크 집합과 적어도 하나의 예비 청크 집합을 포함하며, 상기 복수의 청크 집합 중에서 청크별 오류 분포가 가장 균일한 청크 집합은 기본 청크 집합인 것을 특징으로 하는 오류 정정 기능을 구비한 플래시 메모리 저장 장치의 저장 방법.
  2. 제1항에 있어서,
    상기 하나의 기본 청크 집합에 대응되는 패리티 코드인 기본 패리티 코드는 상기 플래시 메모리의 기본 패리티 셀에 저장되고, 상기 적어도 하나의 예비 청크 집합에 대응되는 패리티 코드인 적어도 하나의 예비 패리티 코드는 상기 플래시 메모리의 예비 패리티 셀에 저장되는 것을 특징으로 하는 오류 정정 기능을 구비한 플래시 메모리 저장 장치의 저장 방법.
  3. 제1항에 있어서,
    상기 복수의 패리티 코드를 생성하는 단계는
    상기 복수의 청크 집합 각각에 대응되는 복수의 ECC 인코더를 이용하여 병렬적으로 생성하는 것을 특징으로 하는 오류 정정 기능을 구비한 플래시 메모리 저장 장치의 저장 방법.
  4. 제1항에 있어서,
    상기 데이터에 대한 복수의 패리티 코드를 생성하는 단계는
    상기 복수의 청크 집합 각각에 대하여,
    청크 집합을 구성하는 복수의 청크 각각에 대응되는 상기 데이터의 일부를 추출하는 단계;
    ECC 인코더 및 상기 데이터의 일부를 이용하여, 상기 복수의 청크 각각에 대하여 청크 단위의 패리티 코드를 생성하는 단계; 및
    상기 청크 단위의 패리티 코드로 구성되는 패리티 코드를 생성하는 단계
    를 포함하는 것을 특징으로 하는 오류 정정 기능을 구비한 플래시 메모리 저장 장치의 저장 방법.
  5. 저장할 데이터에 대응되도록 소정 개수의 청크를 상이하게 배치한 복수의 청크 집합에 기초하여, 상기 데이터에 대한 복수의 패리티 코드를 생성하는 패리티 코드 생성부; 및
    상기 데이터 및 상기 복수의 패리티 코드를 플래시 메모리에 저장하는 제어부를 포함하고,
    상기 복수의 청크 집합은 하나의 기본 청크 집합과 적어도 하나의 예비 청크 집합을 포함하며, 상기 복수의 청크 집합 중에서 청크별 오류 분포가 가장 균일한 청크 집합은 기본 청크 집합인 것을 특징으로 하는 오류 정정 기능을 구비한 플래시 메모리 저장 장치.
  6. 제5항에 있어서,
    상기 하나의 기본 청크 집합에 대응되는 패리티 코드인 기본 패리티 코드는 상기 플래시 메모리의 기본 패리티 셀에 저장되고, 상기 적어도 하나의 예비 청크 집합에 대응되는 패리티 코드인 적어도 하나의 예비 패리티 코드는 상기 플래시 메모리의 예비 패리티 셀에 저장되는 것을 특징으로 하는 오류 정정 기능을 구비한 플래시 메모리 저장 장치.
  7. 제5항에 있어서,
    상기 패리티 코드 생성부는
    상기 복수의 청크 집합 각각에 대응되는 복수의 ECC 인코더를 이용하여 병렬적으로 생성하는 것을 특징으로 하는 오류 정정 기능을 구비한 플래시 메모리 저장 장치.
  8. 제5항에 있어서,
    상기 패리티 코드 생성부는
    상기 복수의 청크 집합 각각에 대하여,
    청크 집합을 구성하는 복수의 청크 각각에 대응되는 상기 데이터의 일부를 추출하고,
    ECC 인코더 및 상기 데이터의 일부를 이용하여, 상기 복수의 청크 각각에 대하여 청크 단위의 패리티 코드를 생성하고,
    상기 청크 단위의 패리티 코드로 구성되는 패리티 코드를 생성하는 것을 특징으로 하는 오류 정정 기능을 구비한 플래시 메모리 저장 장치.
  9. 오류 정정 기능을 구비한 플래시 메모리 저장 장치가 데이터를 독출하는 방법에 있어서,
    상기 데이터에 대응되도록 소정 개수의 청크를 상이하게 배치한 복수의 청크 집합 중 기본 청크 집합에 대응되는 기본 패리티 코드에 기초하여, 상기 데이터를 오류 정정하여 청크 단위로 제1 독출하는 단계;
    상기 오류 정정에 실패하면, 상기 복수의 청크 집합 중 적어도 하나의 예비 청크 집합에 대응되는 적어도 하나의 예비 패리티 코드에 기초하여, 상기 데이터를 오류 정정하여 청크 단위로 제2 독출하는 단계; 및
    상기 제2 독출 결과에 기초하여, 상기 데이터에서 상기 오류 정정에 실패한 청크인 대상청크에 대하여 오류 정정을 다시 수행하는 단계를 포함하고,
    상기 기본 청크 집합은 상기 복수의 청크 집합 중에서 청크별 오류 분포가 가장 균일한 청크 집합인 것을 특징으로 하는 오류 정정 기능을 구비한 플래시 메모리 저장 장치의 독출 방법.
  10. 삭제
  11. 제9항에 있어서,
    상기 데이터를 오류 정정하여 청크 단위로 제2 독출하는 단계 및 상기 대상청크에 대하여 오류 정정을 다시 수행하는 단계는
    상기 대상청크에 대한 오류 정정이 성공할 때까지, 상기 적어도 하나의 예비 청크 집합 각각에 대하여 순차적으로 수행되는 것을 특징으로 하는 오류 정정 기능을 구비한 플래시 메모리 저장 장치의 독출 방법.
  12. 제9항에 있어서,
    상기 제1 독출하는 단계 또는 상기 제2 독출하는 단계는
    상기 청크 단위의 독출 결과 오류 정정에 성공하면, 상기 독출 결과를 소정의 메모리 버퍼에 저장하고,
    상기 제2 독출하는 단계 또는 상기 오류 정정을 다시 수행하는 단계는
    상기 메모리 버퍼를 더 이용하는 것을 특징으로 하는 오류 정정 기능을 구비한 플래시 메모리 저장 장치의 독출 방법.
  13. 독출할 데이터에 대응되도록 소정 개수의 청크를 상이하게 배치한 복수의 청크 집합 중 기본 청크 집합에 대응되는 기본 패리티 코드에 기초하여, 상기 데이터를 오류 정정하여 청크 단위로 제1 독출하고, 상기 복수의 청크 집합 중 적어도 하나의 예비 청크 집합에 대응되는 적어도 하나의 예비 패리티 코드에 기초하여, 상기 데이터를 오류 정정하여 청크 단위로 제2 독출하는 독출부; 및
    상기 제1 독출의 오류 정정이 실패하면 상기 제2 독출을 수행하고, 상기 제2 독출 결과에 기초하여, 상기 데이터에서 상기 오류 정정에 실패한 청크인 대상청크에 대하여 오류 정정을 다시 수행하도록 상기 독출부를 제어하는 제어부를 포함하고,
    상기 기본 청크 집합은 상기 복수의 청크 집합 중에서 청크별 오류 분포가 가장 균일한 청크 집합인 것을 특징으로 하는 오류 정정 기능을 구비한 플래시 메모리 저장 장치.
  14. 삭제
  15. 제13항에 있어서,
    상기 제어부는
    상기 대상청크에 대한 오류 정정이 성공할 때까지, 상기 적어도 하나의 예비 청크 집합 각각에 대하여 순차적으로 상기 독출부가 상기 제2 독출을 수행하고, 상기 대상청크에 대하여 오류 정정을 다시 수행하도록 제어하는 것을 특징으로 하는 오류 정정 기능을 구비한 플래시 메모리 저장 장치.
KR1020180104832A 2018-04-27 2018-09-03 오류 정정 기능을 구비한 플래시 메모리 저장 장치 및 그 구동 방법 KR102085690B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180049019 2018-04-27
KR1020180049019 2018-04-27

Publications (2)

Publication Number Publication Date
KR20190125150A KR20190125150A (ko) 2019-11-06
KR102085690B1 true KR102085690B1 (ko) 2020-03-06

Family

ID=68541871

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180104832A KR102085690B1 (ko) 2018-04-27 2018-09-03 오류 정정 기능을 구비한 플래시 메모리 저장 장치 및 그 구동 방법

Country Status (1)

Country Link
KR (1) KR102085690B1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102081588B1 (ko) * 2013-08-08 2020-02-26 삼성전자 주식회사 Ecc 디코더의 동작 방법 및 그것을 포함하는 메모리 컨트롤러
KR20170010273A (ko) * 2015-07-17 2017-01-26 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR102500616B1 (ko) * 2016-02-26 2023-02-17 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR20170114438A (ko) * 2016-04-04 2017-10-16 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법

Also Published As

Publication number Publication date
KR20190125150A (ko) 2019-11-06

Similar Documents

Publication Publication Date Title
TWI594254B (zh) 讀取快閃記憶體中區塊之資料的方法及相關的記憶裝置
CN101256842B (zh) 纠错码控制器和包括该纠错码控制器的存储器系统
US20190252035A1 (en) Decoding method, memory storage device and memory control circuit unit
US9471421B2 (en) Data accessing method, memory storage device and memory controlling circuit unit
US8321757B2 (en) Method and apparatus for error correction
CN111712804B (zh) 使用数据块的可变逻辑到物理关联的增强错误校正码能力
KR20120137354A (ko) 슬라이딩-윈도우 에러 정정
JP2012137994A (ja) メモリシステムおよびその制御方法
US9553608B2 (en) Data storage device decoder and method of operation
US9507658B2 (en) Data reading method, memory storage device and memory controlling circuit unit
CN106297883B (zh) 解码方法、存储器存储装置及存储器控制电路单元
US8856616B1 (en) Two dimensional encoding for non-volatile memory blocks
US20180122494A1 (en) Raid decoding architecture with reduced bandwidth
US11190217B2 (en) Data writing method, memory controlling circuit unit and memory storage device
CN109714062B (zh) 执行迭代解码的解码器和使用该解码器的存储设备
KR20220080589A (ko) Ecc 디코딩을 수행하는 ecc 엔진, 이의 동작 방법 및 ecc 엔진을 포함하는 스토리지 장치
CN104681095B (zh) 储存装置及其操作方法
KR102085690B1 (ko) 오류 정정 기능을 구비한 플래시 메모리 저장 장치 및 그 구동 방법
CN116743188A (zh) 存储系统和控制存储系统的方法
CN110795271A (zh) 对用户数据执行纠错的纠错电路和使用其的纠错方法
CN112527548B (zh) 快闪存储器控制器、储存装置及读取方法
KR101496052B1 (ko) 블록 단위 연접 bch 부호 성능 개선 및 오류마루 경감을 위해 순환 자리 이동을 활용하는 복호 기법 및 회로
CN112562772A (zh) 自适应低密度奇偶校验硬解码器
WO2019147473A1 (en) Storing critical data at a memory system
CN111061520B (zh) 一种高可靠性加载运行嵌入式软件的方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant