KR101234373B1 - 다차원 격자-rs 연접 부호의 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치를 위한 오류 정정 회로, 및 플래쉬 메모리 장치 - Google Patents

다차원 격자-rs 연접 부호의 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치를 위한 오류 정정 회로, 및 플래쉬 메모리 장치 Download PDF

Info

Publication number
KR101234373B1
KR101234373B1 KR1020110040285A KR20110040285A KR101234373B1 KR 101234373 B1 KR101234373 B1 KR 101234373B1 KR 1020110040285 A KR1020110040285 A KR 1020110040285A KR 20110040285 A KR20110040285 A KR 20110040285A KR 101234373 B1 KR101234373 B1 KR 101234373B1
Authority
KR
South Korea
Prior art keywords
data
code
flash memory
dimensional
selection data
Prior art date
Application number
KR1020110040285A
Other languages
English (en)
Other versions
KR20120122234A (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 KR1020110040285A priority Critical patent/KR101234373B1/ko
Publication of KR20120122234A publication Critical patent/KR20120122234A/ko
Application granted granted Critical
Publication of KR101234373B1 publication Critical patent/KR101234373B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/40Response verification devices using compression techniques
    • 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/1048Adding 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 arrangements adapted for a specific error detection or correction feature
    • 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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 다차원 격자-RS 연접 부호의 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치를 위한 오류 정정 회로, 및 플래쉬 메모리 장치에 관한 것으로서, 특히 본 발명의 플래쉬 메모리 장치의 오류 정정 회로는 플래쉬 메모리 코어로부터 제공되는 저장 데이터 중 일부를 인가받아 다차원 복조, 비터비 복호, 및 RS 복호를 순차적으로 수행하여 부분격자 선택 데이터를 출력하는 제1 스테이지 복호부; 및 상기 제1 스테이지 복호부의 부분격자 선택 데이터 및 상기 플래쉬 메모리 코어로부터 제공되는 저장 데이터의 나머지를 인가받아 다차원 복조, 및 RS 복호를 순차적으로 수행하여 신호점 선택 데이터를 출력하는 제2차 스테이지 복호부를 포함할 수 있다.

Description

다차원 격자-RS 연접 부호의 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치를 위한 오류 정정 회로, 및 플래쉬 메모리 장치{Multi-stage decoding circuit and method for concatenated codes with Inner TCM and Outer multi-stage RS Concatenated code, error correct circuit using the same for flash memory, and flash memory device using the same}
본 발명은 다차원 격자-RS 연접 부호의 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치를 위한 오류 정정 회로, 및 플래쉬 메모리 장치에 관한 것으로, 특히 다계층 복호를 통해서 오류의 전이를 방지하는 플래쉬 메모리 장치를 위한 다차원 격자-RS 연접 부호의 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치를 위한 오류 정정 회로, 및 플래쉬 메모리 장치에 관한 것이다.
근래에 들어 많은 전자 제품에서 사용되는 프로세서 및 램 등의 주기억장치의 스피드가 빨라짐에 따라서 보조 기억 장치의 속도에 의해서 전자 제품의 연산 처리 속도가 결정되는 병목 현상이 심화되고 있다. 기존의 보조 기억 장치로 주로 사용되던 것은 HDD(Hard Disk Drive)와 같은 자기를 저장하는 장치, CD나 DVD와 같은 광디스크 장치(ODD, Optic Disc Drive)들이 사용되었다. 그중, 광디스크 장치는 데이터 입출력이 자유롭지 않으며 데이터 출력의 속도 또한 극히 느렸다. 또한, 자기를 저장하는 장치는 광디스크 장치에 비해서 속도가 빠르긴 하나 여전히 병목 현상을 발생시킬 뿐만 아니라 충격에 의해서 쉽게 데이터가 훼손되거나 소실될 우려가 있었다.
이에, 기존의 MOSFET 구조를 응용한 반도체 소자로 구성된 SSD(Solid State Drive)가 부각되고 있다.
SSD는 HDD에 비해 작업 처리 속도가 빠르고, 데이터가 저장된 소자로 임의접근(Random Access)을 해 탐색시간 없이 고속으로 데이터를 입 출력할 수 있다. 또한, 기계적 지연이나 실패율이 현저히 작으며 외부의 충격으로 데이터가 손상되지 않는 점도 장점이다. 또한, SSD는 반도체 소자에서 소모되는 전력이 작고 별도의 기계 장치의 구동이 없어 저발열, 저소음 및 저전력 구동이 가능해 HDD에 비해 이를 포함하는 제품의 소형화, 경량화가 가능하다.
SSD로는 일반적으로 노어(NOR) 방식으로 구성되는 노어 플래쉬 메모리 및 낸드(NAND) 방식으로 구성되는 낸드 플래쉬 메모리가 있다. 그 중, 낸드 플래쉬 메모리는 직렬연결 방식으로 회로의 집적도가 높아 대용량으로 만들기가 쉬우며, 읽기/쓰기 속도가 빠르다. 또한 데이터 저장능력이 뛰어나고 대용량으로 만들기 용이한 특징 때문에, 대부분의 대용량 SSD에서 낸드 플래쉬 메모리를 사용하고 있다.
그런데, 낸드 플래쉬 메모리 소자는 미세 공정의 사용과 셀 당 저장 비트 수의 증가로 미세화, 다치화 되어 가는 추세이다. 이러한 저장 밀도의 증가는 소자의 신뢰성 악화와 수명 단축 등의 부작용을 증대시켰다.
도 1을 참조하여 낸드 플래쉬 메모리의 저장 밀도 증가에 따른 문제 및 오류 정정 부호의 필요성을 설명한다.
도 1은 SLC(Single Level Cell), MLC(Multi Level Cell), TLC(Tri-Level Cell) 및 QLC(Quad Level Cell) 플래쉬 메모리에서 문턱 전압의 분포를 도시한 도면이다.
도 1을 참조하면, SLC(Single Level Cell) 플래쉬 메모리는 1 비트의 정보를 저장하는 낸드 소자이고, MLC(Multi Level Cell) 플래쉬 메모리는 2 비트의 정보를 저장하는 낸드 소자이고, TLC(Tri-Level Cell) 플래쉬 메모리는 3비트의 정보를 저장하는 낸드 소자이며 QLC(Quad Level Cell) 플래쉬 메모리는 4비트의 정보를 저장하는 낸드 소자이다.
도 1을 참조하면, 한 셀 당 저장하는 비트의 수가 증가함에 따라, 읽기 동작 시 레벨 간 간섭에 의한 오류가 발생할 확률이 증가하며, 읽기/쓰기 동작이 반복 될수록 오류 발생 확률이 크게 증가하여 제품의 신뢰도가 떨어지는 문제가 발생한다. 그러므로 저 전력 및 높은 처리량의 오류정정회로는 합리적인 가격과 안정적인 낸드 플래쉬 메모리를 설계하는데 필수적인 요소가 된다.
이러한 문제를 해결하기 위해 일반적으로 오류 정정부호를 사용하는데, 오류 정정부호는 오류의 탐지 및 오류의 정정을 위한 정보를 담은 여분의 비트들이 필요로 한다. 따라서 상기 여분 비트들을 저장하기 위해 셀의 여분 면적이 요구된다. 하지만, 저장 매체의 저장 용량을 최대화하기 위해서는 여분 비트를 저장하기 위해 필요한 셀의 면적은 최소화하므로, 여분 비트를 최소화 할 필요성이 있다.
오류 정정부호를 위한 여분의 비트가 추가되는 것은 대역폭을 증가시켜 수신 단으로 수신되는 잡음의 양이 증가함을 의미한다. 다만, 대역폭이 제한된 환경에서는 신호의 성상을 증가시켜 대역폭의 증가 없이 오류를 정정할 수 있는 오류 정정부호 방식이 있으나, 이러한 방식에서는 신호간의 최소거리 감소에 의한 오류 정정 능력의 열화 또는 평균 에너지 증가가 발생한다. 따라서 대역폭의 증가를 줄이면서, 여분 비트의 추가도 최소화할 수 있는 오류 정정부호가 필요하다.
또한, 저장 데이터 오류의 증가로, 오류 개수에 대해 지수적인 복잡도와 많은 여분 비트를 요하는 기존의 BCH부호나 RS(Reed-Solomon) 부호를 대체할 새로운 오류 정정 부호의 필요하다.
본 발명의 목적은 플래쉬 메모리 장치를 위한 다계층 복호를 통해 오류의 전이를 방지하여 오류 정정 성능을 유지하는 다차원 격자-RS 연접 부호의 다계층 복호 회로 및 방법을 제공하는데 있다.
본 발명의 또 다른 목적은 상기 목적을 달성하기 위한 플래쉬 메모리 장치의 오류 정정 회로, 및 이를 적용한 플래쉬 메모리 장치를 제공하는데 있다.
상기 과제를 해결하기 위한 본 발명의 다차원 격자-RS 연접 부호의 다계층 복호 회로는, 격자-RS(Reed-Solomon) 연접 부호 중 일부를 인가받아 다차원 복조, 비터비 복호, 및 RS 복호를 순차적으로 수행하여 제1 출력 데이터를 출력하는 제1 스테이지 복호부; 및 상기 제1 출력 데이터를 통해 상기 격자-RS 연접 부호 중 나머지를 다차원 복조한 후 RS 복호하여 제2 출력 데이터를 출력하는 제2차 스테이지 복호부를 포함할 수 있다.
상기 과제를 해결하기 위한 본 발명의 플래쉬 메모리 장치의 오류 정정 회로는, 플래쉬 메모리 코어로부터 제공되는 저장 데이터 중 일부를 인가받아 다차원 복조, 비터비 복호, 및 RS 복호를 순차적으로 수행하여 부분격자 선택 데이터를 출력하는 제1 스테이지 복호부; 및 상기 제1 스테이지 복호부의 부분격자 선택 데이터 및 상기 플래쉬 메모리 코어로부터 제공되는 저장 데이터의 나머지를 인가받아 다차원 복조, 및 RS 복호를 순차적으로 수행하여 신호점 선택 데이터를 출력하는 제2차 스테이지 복호부를 포함할 수 있다.
상기 과제를 해결하기 위한 본 발명의 다차원 격자-RS 연접 부호의 다계층 복호 방법은, 격자-RS(Reed-Solomon) 연접 부호의 일부를 인가받아 다차원 복조, 비터비 복호, 및 RS 복호를 순차적으로 수행하여 제1 출력 데이터를 출력하는 제1 스테이지 단계; 및 상기 제1 출력 데이터 및 상기 격자-RS 연접 부호의 나머지를 인가받아 다차원 복조, 및 RS 복호를 순차적으로 수행하여 제2 데이터를 출력하는 제2차 스테이지 단계를 포함할 수 있다.
상기 과제를 해결하기 위한 본 발명의 플래쉬 메모리 장치의 오류 정정 방법은, 플래쉬 메모리 코어로부터 제공되는 저장 데이터의 일부를 인가받아 다차원 복조, 비터비 복호, 및 RS 복호를 순차적으로 수행하여 부분격자 선택 데이터를 출력하는 제1 스테이지 복호 단계; 및 상기 부분격자 선택 데이터를 통해 상기 저장 데이터의 나머지를 다차원 복조한 후 RS 복호하여 신호점 선택 데이터를 출력하는 제2차 스테이지 복호 단계를 포함할 수 있다.
상기 과제를 해결하기 위한 본 발명의 플래쉬 메모리 장치는, 입력 데이터를 두 개의 데이터로 분리한 후 각각 RS 부호화하여, 부분격자 선택 데이터 및 신호점 선택 데이터를 생성하는 외부 부호부; 상기 부분격자 선택 데이터 및 신호점 선택 데이터를 이용해 격자 부호 변조하여 m 비트의 변조 데이터 각각을 멀티 레벨을 갖는 플래쉬 메모리 코어의 복수개의 메모리 셀에 매칭하여 저장하는 내부 부호부; 상기 플래쉬 메모리 코어로부터 제공되는 저장 데이터의 일부를 인가받아 다차원 복조, 비터비 복호, 및 RS 복호를 순차적으로 수행하여 부분격자 선택 데이터를 출력하는 제1 스테이지 복호부; 및 상기 제1 스테이지 복호부의 부분격자 선택 데이터 및 상기 저장 데이터의 나머지를 인가받아 다차원 복조, 및 RS 복호를 순차적으로 수행하여 신호점 선택 데이터를 출력하는 제2차 스테이지 복호부를 포함할 수 있다.
상기 해결 수단에 따른 본 발명의 다차원 격자-RS 연접 부호의 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치를 위한 오류 정정 회로, 및 플래쉬 메모리 장치는 다차원 격자 부호를 내부 부호로 하고 매우 적은 오류 정정능력, t를 갖는 리드솔로몬 부호를 외부 부호로 사용하여 부호화되어 저장된 데이터를 다계층으로 복호하여, 부분격자 선택 데이터에서 발생하는 오류가 신호점 선택 데이터로 전이되지 않도록 하여 에러 정정 능력을 향상할 수 있다.
도 1은 SLC(Single Level Cell), MLC(Multi Level Cell), TLC(Tri-Level Cell) 및 QLC(Quad Level Cell) 플래쉬 메모리에서 문턱 전압의 분포를 도시한 도면이다.
도 2a는 본 발명의 플래쉬 메모리 장치를 위한 격자-RS 연접 부호 회로의 기능 블록을 도시한 기능 블록도이다.
도 2b는 본 발명의 플래쉬 메모리 장치를 위한 다계층 복호 회로의 기능 블록을 도시한 기능 블록도이다.
도 3은 본 발명의 내부 부호부에 적용되는 격자 부호 변조의 여분 비트가 발생하지 않는 신호 성상도이다.
도 4는 본 발명의 내부 부호부에 적용되는 격자 부호 변조의 여분 비트가 발생하지 않는 신호 성상도에 따른 4차원 격자의 비트 오류율을 도시한 도면이다.
도 5는 본 발명의 내부 부호부에 적용되는 격자 부호 변조의 여분 비트가 발생하는 신호 성상도이다.
도 6은 본 발명의 내부 부호부에 적용되는 격자 부호 변조의 여분 비트가 발생하는 신호 성상도에 따른 4차원 격자의 비트 오류율을 도시한 도면이다.
도 7은 격자 부호 변조된 데이터가 MLC 소자의 페이지 단위로 저장된 경우의 저장 데이터의 구성을 도시한 도면이다.
도 8은 변형된 길버트 채널로 모델링된 본 발명의 연접 부호이다.
도 9는 SNR 24 dB에서 본원 발명의 연접 복호 방식의 오류 심볼 발생 확률과 실험 결과를 비교한 도면이다.
도 10은 SNR 25.2 dB에서 본원 발명의 연접 복호 방식의 오류 심볼 발생 확률과 실험 결과를 비교한 도면이다.
도 11은 본 발명의 연접 복호 방식에 의한 신호점 선택 데이터의, TCM 심볼 단위의 심볼 오류율의 상계를 나타내는 도면이다.
도 12는 본 발명의 연접 복호 방식에 의한 신호점 선택 데이터의, 격자 심볼 단위와 리드-솔로몬 심볼의 길이가 일치하거나 배수일 경우, 블록 오류의 개수에 대한 확률 값의 상계를 나타내는 도면이다.
도 13은 본 발명의 오류 정정 회로의 슈퍼 블록, 블록 및 TCM 심볼의 관계를 도시한 도면이다.
도 14는 낮은 SNR(34 dB)에서 본 발명의 오류 정정 회로의 신호점 선택 데이터의 오류 심볼 개수의 확률 값의 상계 및 실험 결과를 비교한 도면이다.
도 15는 높은 SNR(35.2 dB)에서 본 발명의 오류 정정 회로의 신호점 선택 데이터의 오류 심볼 개수의 확률 값의 상계가 실험 결과를 만족함을 확인할 수 있다.
도 16은 본 발명의 순차적 계층적 연접 복호 방식이 적용된 오류 정정 회로의 오류 블록 개수에 대한 확률 값의 상계와 단순 연접 복호 방식 적용된 오류 정정 회로의 오류 블록 개수에 대한 확률 값의 상계를 비교한 도면이다.
도 17은 본 발명의 순차적 계층적 연접 복호 방식이 적용된 오류 정정 회로 및 종래의 오류 정정 회로들과 채널 용량을 비교한 도면이다.
도 18은 본 발명의 순차적 계층적 연접 복호 방식이 적용된 오류 정정 회로와 BCH 부호 또는 RS 부호가 적용된 오류 정정 회로의 페이지 오류율을 비교한 도면이다. 연접 부호 및 RS 부호의 부호율을 BCH 부호의 부호율(0.97)과 동일하게 설정한다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로서, 본 발명을 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 설명하는 실시예에 한정되는 것이 아니다. 그리고 본 발명을 명확하게 설명하기 위하여 설명과 관계없는 부분은 생략되며, 도면의 동일한 참조부호는 동일한 부재임을 나타낸다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "...부", "...기", "모듈", "블록" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
일반적으로, SSD는 병렬로 연결된 다이(die)를 기본 구조로 가지고 있고, 다이는 한번에 지울(erase) 수 있는 단위인 블록으로 구성된다. 각 블록은 읽기/쓰기(read/write) 단위인 페이지(page)로 구성된다. 그러므로 오류 정정 부호는 읽기/쓰기 단위인 페이지 단위로 수행됨이 바람직하다. 페이지의 단위는 제조사마다 다르지만 일반적으로 SLC 소자에서는 1KB 페이지를, MLC 소자에서는 4KB 페이지를 많이 사용한다.
도 2a는 본 발명의 플래쉬 메모리 장치를 위한 격자-RS 연접 부호 회로의 기능 블록을 도시한 기능 블록도이다.
격자-RS 연접 부호 회로(100)는 플래쉬 메모리 장치의 라이트 동작 시에 외부로부터 입력 데이터(in)를 인가받아 RS 부호 및 격자 부호 변조하여, m(m은 n보다 큰 자연수)비트의 변조 데이터(m_in)를 플래쉬 메모리 코어(200)의 복수개의 메모리 셀에 매칭하여 저장한다.
본 발명의 플래쉬 메모리 장치를 위한 격자-RS 연접 부호 회로(100)에 사용되는 부호는 대역폭이 제한된 환경에서 높은 부호화 이득을 가지는 격자 부호 변조(TCM: Trellis Coded Modulation)를 내부 부호로 하고, 매우 작은 오류정정능력의 RS(Reed-Solomon) 부호를 외부 부호로는 하는 연접 부호이다. 내부 부호로 사용되는 격자 부호 변조는 메모리 셀 내 프로그래밍 단계를 증가시킴으로써, 여분 비트를 저장하기 위한 셀을 발생시키지 않고 부호화 이득을 얻을 수 있는 장점이 있다. 또한, 격자 부호 변조는 복호 복잡도가 부호 길이에 대해 선형적이므로, 긴 부호 길이를 가지는 낸드 플래쉬 메모리에 적합하다.
격자 부호 변조는 해밍거리가 최대가 되는 방향이 아닌, 전체 격자를 격자 내부의 변조 점들 간 유클리드 거리가 최대화 되는 방향으로 몇 개의 부분격자(subset)로 분할(partition)한다. 그리고 정보 비트의 일부를 길쌈 부호화 하여 부분격자를 선택하는 용도로 사용(이하 '부분격자 선택 데이터')하고, 남은 정보 비트들을 이용하여 선택된 부분격자 내부의 신호점을 선택하는 용도로 사용(이하, '신호점 선택 데이터')한다.
하지만, 격자 부호 변조의 복호시에는 연집(burst) 오류가 발생할 수 있어, 이러한 오류의 제거에 뛰어난 성능을 가진 RS 부호를 외부 부호로 사용한다.
계속하여 도 2a를 참조하면, 본 발명의 플래쉬 메모리 장치를 위한 격자-RS 연접 부호 회로(100)는 입력 데이터를 두 개의 데이터로 분리한 후 각각 RS 부호화하여, 부분격자 선택 데이터 및 신호점 선택 데이터를 생성하는 외부 부호부(110) 및 상기 부분격자 선택 데이터 및 신호점 선택 데이터를 이용해 격자 부호 변조하여 m 비트의 변조 데이터 각각을 멀티 레벨을 갖는 플래쉬 메모리 코어의 복수개의 메모리 셀에 매칭하여 저장하는 내부 부호부(130)를 포함하여 구성될 수 있다.
외부 부호부(110)는 제1 RS 부호기(111) 및 제2 RS 부호기(113)를 포함하여 구성될 수 있다.
제1 RS 부호기(111)는 입력 데이터의 일부(즉, 기설정 비율의 데이터만)를 부호화하여 k(k는 자연수) 비트의 제1 RS 부호 데이터를 출력할 수 있다.
제2 RS 부호기(113)는 입력 데이터의 나머지(즉, 기설정 비율을 제외한 나머지 입력 데이터)를 RS 부호화하여 n-k(n은 자연수) 비트의 제2 RS 부호 데이터를 출력할 수 있다.
상기 제1 RS 부호 데이터 길이 및 제2 RS 부호 데이터 길이의 합은 플래쉬 메모리의 읽기/쓰기 단위인 페이지의 길이의 기설정 범위 내일 수 있다. 즉, RS 부호의 심볼 수를 조절하여 입력 데이터를 RS 부호화하여 생성한 데이터의 길이가 페이지 길이에 가깝게 하며, 이를 통해서 RS 부호 시 생성되는 여분 비트를 최소화할 수 있다. 이에 대한 자세한 설명은 후술한다.
내부 부호부(130)는 길쌈 부호기(131) 및 다차원 변조기(133)를 포함하여 구성될 수 있다.
길쌈 부호기(131)는 상기 제1 RS 부호 데이터 중 k(k는 n보다 작은 자연수)비트의 제1 입력 데이터를 인가받고, 상기 k비트의 제1 입력 데이터에 r(r은 자연수) 비트의 여분 데이터를 더하여, k+r 비트의 부분격자 선택 데이터를 출력할 수 있다.
다차원 변조기(133)는 상기 k+r 비트의 부분격자 선택 데이터 및 상기 n-k 비트의 제2 RS 부호 데이터를 인가받아 다차원 변조(예를 들어, 4차원 변조)하여 생성되는 m개의 변조 데이터를 다차원 격자 상의 포인트로 재배열하고, 재배열된 상기 격자 상의 포인트에 대응하여 m개의 변조 데이터를 상기 플래쉬 메모리 장치의 m개의 상기 메모리 셀에 저장할 수 있다.
플래쉬 메모리 코어(200)는 복수개의 메모리 셀을 구비하고, 복수개의 메모리 셀 각각은 하나의 셀에 복수 비트의 데이터를 저장할 수 있는 멀티 레벨 셀(Multi Level Cell: MLC)로 구성된다. 플래쉬 메모리 코어(200)는 플래쉬 메모리 장치가 라이트 동작 시에 외부에서 인가되는 어드레스(Add)와 라이트 명령(WR)에 응답하여 외부 부호부(130)에서 인가되는 m개의 변조 데이터(m_in)를 저장하고, 리드 동작 시에 외부에서 인가되는 어드레스(Add)와 리드 명령(RD)에 응답하여 저장된 m개의 변조 데이터(m_out)를 복호부(30)로 출력한다.
본 발명에서는 설명의 편의를 위하여 각각의 멀티 레벨 셀이 2비트의 데이터를 저장할 수 있는 메모리 셀인 것으로 예를 들어 설명하나, 본 발명은 메모리 셀당 3비트의 데이터를 저장할 수 있는 TLC(Triple Level Cell) 및 4비트의 데이터를 저장할 수 있는 QLC(Quadruple Level Cell) 또는 그 이상의 비트 데이터를 저장할 수 있는 메모리 셀 일 수 있다.
도 2b는 본 발명의 플래쉬 메모리 장치를 위한 다계층 복호 회로의 기능 블록을 도시한 기능 블록도이다.
길쌈 부호는 일반적으로 비터비(Viterbi) 복호기를 이용하여 복호할 수 있다. 하지만, 비터비 복호 시 발생하는 복호 오류는 연집(burst)된 오류 특성을 가지기 때문에 연집 오류에 강한 RS 부호를 이용하여 잔류 오류를 수정하는 것이 바람직하다.
본 발명은 부분격자(subset) 선택 데이터와 신호점(signal point) 선택 데이터를 같은 필드(field)에서 정의된 RS부호를 사용하여 오류를 정정함으로써, 전체 복호 회로의 복잡도를 감소시킬 수 있다. 또한, 부분격자 선택 데이터에 대한 오류를 먼저 정정한 후 신호점 정보에 대한 오류를 정정하는 순차적 복호 방식을 사용해 부분격자 선택 데이터에서 발생하는 오류가 신호점 선택 데이터의 복호 영향을 미치는 오류전파(error-propagation)를 막고 정정해야 할 오류의 개수를 최소화 할 수 있다.
도 2b를 참조하면, 본 발명의 플래쉬 메모리 장치를 위한 다계층 복호 회로(100)는 플래쉬 메모리 코어(200)로부터 제공되는 m(m은 자연수) 비트의 저장 데이터를 인가받아 다차원 복조, 비터비 복호, 및 RS 복호를 순차적으로 수행하여 부분격자 선택 데이터를 출력하는 1차 스테이지 복호부(310) 및 제1 스테이지 복호부(310)의 부분격자 선택 데이터 및 상기 m 비트의 저장 데이터를 인가받아 다차원 복조, 및 RS 복호를 순차적으로 수행하여 신호점 선택 데이터를 출력하는 2차 스테이지 복호부(330)를 포함하여 구성될 수 있다.
1차 스테이지 복호부(310)는 제1 다차원 복조기(311), 비터비 복호기(313), 및 제1 RS 복호기(315)를 포함하여 구성될 수 있다.
제1 다차원 복조기(311)는 우선, 플래쉬 메모리 코어(200)로부터 제공되는 m비트의 저장 데이터의 일부(즉, 기설정 비율의 데이터만)를 다차원 복조(예를 들어, 4차원 복조)하여 k+r 비트의 부분격자 선택 데이터를 출력한다.
비터비 복호기(313)는 상기 k+r 비트의 부분격자 선택 데이터를 비터비 복호하여 k비트의 부분격자 선택 데이터를 출력한다.
제1 RS 복호기(315)는 상기 k비트의 부분격자 선택 데이터를 RS 복호하여, 상기 부분격자 선택 데이터에 잔존하는 오류가 제거된 제1 출력 데이터를 출력한다.
2차 스테이지 복호부(330)는 제2 다차원 복조기(331), 및 제2 RS 복호기(333)를 포함하여 구성될 수 있다.
제2 다차원 복조기(331)는 제1 출력 데이터를 통해 플래쉬 메모리 코어(200)로부터 제공되는 m비트의 저장 데이터의 나머지(즉, 기설정 비율을 제외한 나머지 비율의 저장 데이터)를 다차원 복조(예를 들어, 4차원 복조)하여 n-k 비트의 신호점 선택 데이터를 출력한다.
제2 RS 복호기(333)는 상기 n-k 비트의 신호점 선택 데이터를 RS 복호하여, 상기 신호점 선택 데이터에 잔존하는 오류가 제거된 제2 출력 데이터를 출력한다.
즉, 2차 스테이지 복호부(330)는 잔류 오류가 제거된 부분격자내에서 다시 다차원 복조기를 통해 가장 가까운 신호점으로 복조하는 방식을 통해, 신호점 선택 데이터에 잔존하는 오류를 제거해준다.
또한, 낸드 플래쉬 메모리는 저장 데이터의 신뢰도가 높아야 하므로, 매우 낮은 페이지 오류율을 요구한다. 그러므로 컴퓨터 시뮬레이션을 통해서 시스템의 성능을 측정하는 것이 사실상 불가능하다. 다만, 오류를 정정하기 위해 더해지는 여분 비트의 양에 따른 정확한 오류율의 상계(upper bound)를 알면, 시스템의 정확한 설계가 가능하다
이에, 본 발명에서는 내부 부호의 부호 오류율의 정확한 상계를 해석하는 방법을 제안하여 연접 부호 시스템을 설계한다. 즉, 본 발명에서 제안하는 이론적인 상계 방법을 통하여 낸드 플래쉬 메모리에서 보장하고자 하는 페이지 오류율을 얻을 수 있는 여분 비트의 량을 계산할 수 있어, 정확한 오류 정정 회로 및 플래쉬 메모리 장치의 설계가 가능해 진다.
본 발명의 오류 정정 회로에 적용되는 연접 부호 및 연접 복호에 대해서 설명하기에 앞서, 다차원 격자의 구조와 신호 성상도에 대해서 설명한다.
도 1에 도시된 바와 같이, 플래쉬 메모리는 셀 당 저장하는 비트의 수를 q라고 할 때 2q-PAM 변조 방식이기 때문에 다차원 격자의 변조 방식에 적합하다. 다차원 격자는 Wei L. F. Wei, "Trellis-coded modulation with multidimensional constellations, "IEEE Trans. on In-formation Theory, vol. 33, pp. 483501, July 1987. 에 의해 제안 되었다.
먼저, 다차원 격자의 신호 성상도는 2차원 격자를 기본으로 하고, 이 기본 격자의 연접(concatenation)과 합집합(Union)으로 생성한다. 기본 2차원 직교 격자의 예는 도 3과 도 5에 도시된 바와 같다.
성상도의 격자점 간 MSED(minimum squared Euclidean distance)를 d0 2라 하면. 다차원 격자는 임의의 N차원에 대해 정의할 수 있다. 4차원 격자의 부분격자 분할 방식은 하기와 같다.
먼저, 2차원 직교 격자를 MSED를 최대화 시키는 방향으로 도 3 및 5와 같이 4개의 부분격자 A, B, C, D로 분할한다. 부분격자 A내지D는 각각 MSED 가 4d0 2가 된다. 상기 부분격자 A 내지 D의 결합으로(A,A),(A,B),...,(D,D)로 16개의 부분 집합을 생성한다. 격자 부호에서 사용하는 8개의 부분집합은 이 16개의 부분 집합의 합집합으로 생성되며 이는 표 1과 같다.
Figure 112011031764164-pat00001
표1의 부분 집합으로 정의되는 부분격자는 4차원 공간에서 가장 밀집된 격자인 D4 격자의 구조를 따르며, 부분격자 내 최소 유클리드 자승거리는 4d0 2이 된다. 부분 집합의 합집합으로 생성되는 부분과 합집합 내의 최소 유클리드 자승 거리는 2d0 2가 유지된다.
도 3은 본 발명의 내부 부호부에 적용되는 격자 부호 변조의 여분 비트가 발생하지 않는 신호 성상도이다.
도 3을 참조하면, 부분격자 내 다차원 신호점의 개수를 같게 해주기 위하여 2차원 직교 격자에서 서로 다른 영역을 모형화할 수 있다.
도 4는 본 발명의 내부 부호부에 적용되는 격자 부호 변조의 여분 비트가 발생하지 않는 신호 성상도에 따른 4차원 격자의 비트 오류율을 도시한 도면이다.
도 4를 참조하면, 3.6 dB의 점근적인(asymptotic) 부호화 이득을 얻을 수 있고, 이는 수학식 1과 같이 나타낼 수 있다.
Figure 112011031764164-pat00002
수학식 1은 격자 부호 변조를 통한 이득과 신호 성상의 증가로 인한 전력 손실을 조합하여 도출된 식이다.
도 5는 본 발명의 내부 부호부에 적용되는 격자 부호 변조의 여분 비트가 발생하는 신호 성상도이다.
도 5를 참조하면, 내부 부호의 부호화 이득의 극대화 및 성상도 확장 비율(Constellation Expansion Ratio)의 최대화를 위하여, 여분 비트를 저장하는 셀이 발생하도록 하되, 셀 당 저장하는 비트의 수와 차원의 수를 증가시켜 부호율(Code Rate)을 최대화할 수 있다.
도 6은 본 발명의 내부 부호부에 적용되는 격자 부호 변조의 여분 비트가 발생하는 신호 성상도에 따른 4차원 격자의 비트 오류율을 도시한 도면이다.
도 6을 참조하면, 6 dB의 점근적인(asymptotic) 부호화 이득을 얻을 수 있고, 이는 수학식 2와 같이 나타낼 수 있다.
Figure 112011031764164-pat00003
수학식 2는 격자 부호 변조를 통한 이득과 신호 성상의 증가로 인한 전력 손실을 조합하여 도출된 식이다
수학식 1과 수학식 2를 비교해 보면, 격자 부호 변조의 부호 이득의 증가와 여분 비트를 저장하는 셀의 증가가 궤를 같이 함을 알 수 있다.
도 7은 격자 부호 변조된 데이터가 MLC 소자의 페이지 단위로 저장된 경우의 저장 데이터의 구성을 도시한 도면이다.
도 7을 참조하면, MLC소자는 일반적으로 페이지의 단위가 4KB이므로, 해당 페이지에 저장된 부분격자 선택 데이터(Subset seletor)와 신호점 선택 데이터(Signal point selector)의 길이는 각각 1KB와 3KB이다. 이에, 격자 부호 변조 시 부분격자 선택 데이터는 길쌈 부호를 사용하여 안정성을 높이고, 신호점 선택 데이터는 신호 성상의 점간 거리를 최대화하여 안전성을 보장한다.
그런데, 부분격자 선택 데이터는 비트 간 오류 발생 확률의 상관도가 매우 높은데, 이는 비터비 복호기(313)의 출력이 연집된 특징을 가지기 때문이다. 비터비 복호기(313)의 오류는 복호를 통해 선택된 경로가 올바른 경로에서 벗어날 경우 발생한다. 그러므로 비터비 복호기(313)가 잘못된 경로에서 올바른 경로로 되돌아오기까지 연속하여 오류가 발생하기 때문에, 오류 심볼과 인접하여 있는 심볼의 오류율은 매우 높아져서 연집 오류의 발생 확률이 높다.
특히, 부분격자를 잘못 선택하게 되면 신호점 선택에도 영향을 미쳐 신호점 선택 데이터에도 오류가 발생한다. 즉, 도 7에 도시된 바와 같이, 부분격자 선택 데이터의 오류는 신호점 선택 데이터의 오류로 전파된다. 따라서 부분격자 선택 데이터의 비트간 오류 발생 확률의 상관도가 높은 특성이 신호점 선택 데이터에도 적용되어 비트간 상관관계가 높아진다. 또한, 부분격자 선택 데이터에서 신호점 선택 데이터로의 오류 전파는 격자 부호의 차원과 신호 성상이 증가할수록 증가된다.
그러므로 본 발명은 부분격자 선택 데이터의 오류가 신호 성상의 점을 선택하는 오류로 전파되는 것을 막기 위해, 1차 스테이지 복호부(310)가 부분격자 선택 데이터를 먼저 격자 부호 변조, 비터비 복호한 후 RS 복호하여 연집 오류를 제거한다. 그리고 2차 스테이지 복호부(330)가 연집 오류가 제거된 부분격자 선택 데이터를 이용해 올바른 부분격자를 선택하여 격자 변조 복호하고, 부분격자 내 신호점 정보에 대한 오류를 RS 복호를 이용해 정정한다. 순차적 다계층 복호 방식을 통해 오류전파(error-propagation)를 막고 정정해야 할 오류의 개수를 최소화할 수 있다.
또한, 부분격자 선택 정보와 내부 신호점 선택정보를 같은 필드(field)에서 정의된 RS 부호를 사용하여 오류를 정정함으로서 전체 복호 회로의 복잡도를 감소시킬 수 있다. 이에 대한 설명을 후술한다.
또한, 본 발명은 부분격자 선택 데이터와 신호점 선택 데이터 각각에 대한 오류율의 상계를 해석하고, 해석된 이론적인 상계를 통하여 오류 정정 회로에서 보장하고자 하는 페이지 오류율을 달성할 수 있는 외부 부호인 RS 부호의 오류 정정 능력 t를 계산할 수 있다. 이를 통해, 여분 비트의 량을 계산하여 전체적인 연접 부호 및 연접 복호가 적용된 오류 정정 회로를 설계할 수 있다.
이하에서는, 본 발명의 본 발명에서는 외부 부호의 성능을 계산하기 위한 연접 부호 모델링 방법 및 모델링 통한 오류율 상계를 방법을 설명한다.
도 8은 변형된 길버트 채널로 모델링된 본 발명의 연접 부호이다.
연접 부호 모델링은 외부 부호의 심볼 단위를 기준으로 하여 내부 부호의 출력 모델을 모형화한 방식을 사용할 수 있다. 심볼 단위의 천이는 마르코브 연쇄로 모델링이 가능하다. 그러나 마르코브 연쇄는 심볼 오류 하나와 두 개의 천이 확률을 가지는 경우에는 선형이 유지되지 않고, 다른 기울기를 가진다. 따라서 도 8에 도시된 바와 같이, RS 심볼 단위의 천이에 대해 bad 상태(state)를 하나 더 추가하여 변형된 길버트 채널로 모델링 할 수 있다. 변형된 길버트 채널 모델은 3개의 상태를 가지는 마르코브 연쇄이고, 비트 단위의 길버트 모델에 Bad 상태가 추가된 형태이다.
변형된 길버트 채널에서는 천이 확률
Figure 112011031764164-pat00004
Figure 112011031764164-pat00005
가 서로 다른 값을 가진다. 따라서 천이 확률들을 이용해, 오류 심볼을 발생시키는 천이 확률에 더미 변수 X를 추가하여 수학식 3과 같이 천이 행렬(transition matrix)을 생성한다.
Figure 112011031764164-pat00006
한 코드워드의 RS 심볼 개수 Ns에 대하여 오류개수의 분포는 수학식 4와 같이 천이 행렬을 Ns 번 거듭 제곱한 결과를 이용하여 구할 수 있다.
Figure 112011031764164-pat00007
수학식 4는 Ns 거듭제곱한 천이 행렬과 대기 시간이 속하는 상태인 good 상태에서의 상태 천이가 시작됨을 반영한 식이다. 즉, 수학식 4는 길이 Ns개의 심볼로 구성된 RS 코드워드에 대하여 발생하는 심볼 오류 개수와 그 확률 분포를 나타내게 된다.
PN(1,1) 을 X로 표현하면 수학식 5와 같다.
Figure 112011031764164-pat00008
수학식 5에서 X의 거듭제곱은 오류 심볼의 개수를 나타낸다. 그러므로 RS 심볼 Ns개로 구성된 한 코드워드에서 n개의 심볼 오류가 발생할 확률은 해당 Xn의 계수 An이 된다. 그리고 천이 행렬의 요소, 즉 각 천이 확률의 값은 시뮬레이션 결과로부터 얻을 수 있다.
도 9를 참조하면, semi-analytic한 방법으로 구한 SNR 24 dB에서 오류 심볼의 개수(number of sybol error)와 이에 상응하는 확률 값(*)은 실험 결과(실선)와 일치함을 확인할 수 있다.
또한, 도 10을 참조하면, 페이지 오류율 10-16을 얻기 위한 SNR 25.2 dB에서의 오류 심볼 개수에 대한 경계선(*)과 실험값(실선)에 근사함을 확인할 수 있다.
상술한 바와 같이 부분격자 선택 데이터의 오류정정 결과를 이용하여 전파된 오류를 제거하면, 오류 개수가 줄어들 뿐 아니라 격자 심볼 간 상관관계도 제거된다. 따라서 순차적 다계층 복호를 사용함으로써, 잔여 오류를 제거에 대한 이론적인 오류 정정 능력 t값의 계산이 용이하여 진다. 즉, 심볼 간 상관성이 제거 되어 격자부호 심볼 간 독립성이 보장되므로 신호점 선택 데이터의 분포는 격자 부호 심볼 단위에서 수학식 5와 같이 이항 분포를 따른다. 수학식 5를 참조하면, 이항 분포는 심볼 오류율만을 변수하므로, 심볼 오류율의 이론적인 상계를 계산하면 외부 코드의 오류 정정 능력을 계산 할 수 있다.
개별 4차원 부분격자의 구조는 D4 격자 구조이므로, 신호점 선택 데이터의 심볼 오류율의 상한선(upper bound)은 수학식 6과 같이 D4 격자의 이웃점 개수와 신호점 간 최소 유클리드 거리를 변수로 가지는 Q 함수로 표현할 수 있다.
Figure 112011031764164-pat00009
수학식 6에서 k는 D4격자의 키싱(kissing) 개수이다.
4차원 점간의 최소거리는 부분 집합 분할 규칙에 의하여 2배로 증가되므로, 심볼 오류율의 상계(upper bound)는 수학식 6과 같이 표현된다.
그런데, 도 11을 참조하면, 수학식 6을 통해 시뮬레이션한 결과가 실험 결과를 효과적으로 상한하고 있지 않음을 확인할 수 있다.
키싱 개수의 최대값(SER upper bound with Kmax)은 24지만, 채널 부호를 사용하기 위하여 프로그래밍 단계를 증가시킴으로써, 제거되는 신호점들이 발생한다. 또한, 격자의 영역이 작아 4차원 표면에 위치한 신호점들이 많게 되어 많은 점들이 kissing 개수의 최대값을 가지지 않게 된다. 즉 상기와 같은 문제에 의해서 도 11에 도시된 오차가 발생한다.
이에, 도 12을 참조하면, 평균 키싱 개수를 대입한 심볼 오류율의 이론적인 상계값을 변수로 하는 이항 분포의 식은 실험값을 효과적으로 상한한다.
상기의 방법으로 계산된 상한선을 통하여 본 발명의 오류 정정 회로의 오류 정정 능력을 계산하면 매우 낮은 값을 얻을 수 있다. 하지만, 6비트 심볼을 사용하는 RS코드의 길이는 부호화 하고자 하는 메시지의 길이인 1KB에 비하여 너무 짧기 때문에 해당 메시지에 대한 코드워드로 부적합하다.
구체적으로 살펴보면, 26-ary RS 부호는 378비트 길이를 가지므로, 8192 비트인 1KB길이의 메시지를 부호화하기 위해서는 최소 22개의 RS 코드워드가 필요하다. 따라서 한 코드워드당 오류 정정 능력 t가 작다고 하더라도, 전체 코드워드가 필요한 여분 비트의 양이 많아질 수밖에 없다.
이에, 본 발명은 10 비트 심볼의 RS 부호를 신호점 선택 데이터에 적용한다. 또한, 부분격자 선택 데이터와 신호점 선택 데이터를 같은 필드(field)에서 정의된 RS 부호(10 비트 심볼의 RS 부호)를 사용하여 오류를 정정함으로서 전체 복호 회로의 복잡도를 감소시킬 수 있다. 이하에서는, 6비트 격자 심볼과의 비교를 위하여 10 비트의 RS 심볼을 블록이라 한다.
도 13은 본 발명의 오류 정정 회로의 슈퍼 블록, 블록 및 TCM 심볼의 관계를 도시한 도면이다.
RS 부호의 특성상 210-ary RS 코드를 사용하면 30 비트 길이 내의 블록 간 상관성이 생긴다. 도 13에 도시된 바와 같이 두 번째 TCM 심볼(symbol)과 네 번째 TCM 심볼에 오류가 발생하면, 해당 TCM 심볼은 두 블록에 영향을 준다. 따라서 하나의 TCM 심볼 오류가 두 개의 블록 오류를 발생시킨다. 그러므로 30비트 내에서 블록들은 상관성을 가진다.
블록 간 상관성을 가지는 단위인 30비트를 슈퍼 블록(super block)이라 정의하면, 슈퍼 블록은 3개의 블록으로 구성되며 슈퍼 블록들 간에는 독립성이 유지된다. 이러한 슈퍼 블록 간의 독립성과 격자 심볼의 이론적인 상계값으로 RS 블록 오류의 확률식을 도출할 수 있다.
수학식 7은 슈퍼 블록의 오류율을 나타낸다.
Figure 112011031764164-pat00010
수학식 7에서, Ps는 TCM 심볼의 오류율이다. 한 코드워드 내에서 슈퍼 블록의 개수는 심볼의 개수를 N이라 할 때, N/5가 된다.
한 코드워드에서 하나의 블록 오류가 발생할 확률은 수학식 8과 같다.
Figure 112011031764164-pat00011
수학식 8은 이항 분포 식의 변형된 형태로서, 슈퍼 블록 간의 독립성을 이용하여 도출한 식이다. 수학식 8은 Nsb개의 슈퍼 블록 중 하나의 슈퍼 블록만 오류가 있을 확률 및 하나의 슈퍼 블록에서 단 하나의 블록오류가 발생한 확률의 곱을 나타낸다. 즉, 수학식 8은 Nsb개의 슈퍼 블록 중 하나의 블록 오류가 발생한 슈퍼 블록 하나만이 있는 경우의 확률을 나타내는 것이다.
수학식 8에서, Pb1은 한 슈퍼 블록에서 하나의 블록 오류가 발생할 확률이다. Pb1의 상계값은 한 슈퍼 블록에서 하나의 블록 오류를 발생시킬 수 있는 모든 TCM 심볼 오류들의 패턴을 나열하고, 그 패턴들의 확률을 모두 더함으로써 구할 수 있다.
이를 정리하면 표 2과 같다. 단,
Figure 112011031764164-pat00012
Figure 112011031764164-pat00013
는 슈퍼 블록 내의 다섯 개의 격자 심볼 각각의 오류 여부를 지칭하는 지시기(indicator)이며, TCM 심볼 내의 비트 오류는 균일(uniform)하다고 가정한다.
Figure 112011031764164-pat00014
표 2에 나열된 모든 심볼 오류 패턴의 확률 합으로 표현되는 한 슈퍼 블록 내 하나의 블록 오류가 발생할 확률의 상계를 구하면 수학식 9와 같이 표현된다.
Figure 112011031764164-pat00015
수학식 11과 수학식 12는 상기의 방법으로 슈퍼 블록 내 오류 블록이 두 개 발생할 확률의 상계값과 세 개 발생할 확률의 상계값을 도출한 것이다.
Figure 112011031764164-pat00016
Figure 112011031764164-pat00017
수학식 10의 상계값을 구하기 위한 슈퍼블록 내 격자 심볼 오류 위치의 모든 패턴은 표 3와 같다.
Figure 112011031764164-pat00018
표 3는 하나의 슈퍼 블록에서 두 개의 RS 블록 오류가 발생하는 모든 패턴과 이에 상응하는 확률 값이다.
특히, 표 3에서 하나의 TCM 오류로 인해 발생하는 패턴인 첫번째와 두번째 행의 패턴이 가장 빈번히 발생하는 확률 패턴이기 때문에, 임의의 k개 오류블록이 발생할 확률을 계산 시 고차항(high order term)들을 제거함으로써, 식을 간략화 할 수 있다.
예를 들어, 오류 블록 4개가 발생할 확률의 상계는 수학식 12과 같으며, 4가지 TCM 오류 패턴의 확률 합으로 구성된다.
Figure 112011031764164-pat00019
수학식 12을 살펴보면, 고차항인
Figure 112011031764164-pat00020
를 포함하고 있는 항의 확률 값은 매우 낮다. 즉, 4개의 확률 항(term) 중 4번째 항인 두 개의 슈퍼 블록에 오류가 발생하고 각각이 한 개와 세 개의 오류 블록을 포함하고 있을 확률은 매우 낮다. 그러므로 한 슈퍼블록 내 3개 이상의 블록 오류가 발생할 확률의 항들을 제거하여도 오류 블록 4개가 발생할 확률의 상계의 변화는 미미하다.
수학식 13은 고차항을 제거하여 수학식 12을 근사한 오류 블록 4개가 발생할 확률의 상계에 대한 수식이다.
Figure 112011031764164-pat00021
n 1은 오류블록 한 개가 발생한 슈퍼 블록의 개수이고, n 2는 오류블록 두 개를 포함한 슈퍼블록의 개수이다.
그런데, 수학식 13에는 오차 요소가 포함되어 있다.
Figure 112011031764164-pat00022
Figure 112011031764164-pat00023
의 상계값이 중복되는 오류 패턴을 가지고 있어서 확률 합이 더 크게 계산되기 때문이다. 따라서 상기의 오차 요소를 한 슈퍼 블록 내 두 개의 블록이 오류를 발생시키는 경우의 계수를 분석하여, 이를 차감함으로써 해결할 수 있다.
즉, 모든 점에 대하여 해당 점에서 가장 가까운 이웃 신호점들만을 고려하여 상기 이웃점과의 해밍 거리를 분석하여 두 개의 심볼 오류를 발생시키는 계수를 계산하여 상기 오차 요소를 찾을 수 있다.
도 14를 참조하면, 낮은 SNR(34 dB)에서 신호점 선택 데이터의 오류 심볼 개수의 확률 값(Number of error blocks, i)의 상계(upper bound)가 실험 결과(simulation result)를 만족함을 확인할 수 있다. 또한, 도 15를 참조하면, 높은 SNR(35.2 dB)에서 신호점 선택 데이터의 오류 심볼 개수의 확률 값의 상계가 실험 결과를 만족함을 확인할 수 있다.
즉, 실험값과 근사식으로 도출된 상계가 거의 근사함을 확인할 수 있어, 수학식 13의 근사식이 효과적임을 확인할 수 있다.
따라서 40개의 오류를 정정하는 BCH 부호가 페이지 오류율 10-16를 달성하는 SNR인 25.2 dB에 수학식 13을 적용하여 오류 정정 회로의 목표 페이지 오류율을 얻을 수 있는 오류 정정 능력을 계산할 수 있다.
도 16은 본 발명의 순차적 계층적 연접 복호 방식이 적용된 오류 정정 회로의 오류 블록 개수에 대한 확률 값의 상계와 단순 연접 복호 방식 적용된 오류 정정 회로의 오류 블록 개수에 대한 확률 값의 상계를 비교한 도면이다.
도 16을 참조하면, 본 발명의 순차적 계층적 연접 복호 방식이 적용된 오류 정정 회로가 단순 연접 복호 방식 적용된 오류 정정 회로보다 오류 블록 개수에 대한 확률 값의 상계가 낮음을 확인할 수 있다.
상기에서 살펴본 바와 같이, 본 발명의 플래쉬 메모리 장치를 위한 연접 부호 방법 및 회로, 연접 복호 방법 및 회로와 이를 이용한 오류 정정 회로는 다차원 격자 부호를 내부 부호로 하고 매우 적은 오류 정정능력, t를 갖는 리드솔로몬 부호를 외부 부호로 사용하여 목표 페이지 오류율을 만족하면서도, 전체적으로 낮은 복잡도와 높은 부호율을 유지할 수 있다.
또한, 다차원 격자의 출력 특성을 이용하여 다계층으로 외부 부호를 설계함으로써 부호율을 더 증가시킬 수 있도록 하였다.
일반적으로, TCM 심볼 크기는 격자의 차원과 셀 당 저장하는 비트의 수가 증가함에 따라 증가하므로 다차원 격자를 MLC, QLC, TLC 낸드 플래쉬에 적용할 경우 비교적 큰 심볼을 가진다. 따라서 비터비 복호기(313)에서 발생하는 연집 오류가 비교적 넓은 영역에 분포하게 되어 높은 외부 부호의 오류 정정 능력을 요구하게 한다.
하지만, 본 발명은 순차적 복호 방식을 통하여 이러한 오류 전파를 방지함으로써 매우 높은 부호율을 유지할 수 있도록 할 수 있다.
또한, 본 발명의 오류 정정 회로는 저장 매체인 플래쉬 메모리에 적용되기 위해 필요한 매우 낮은 페이지 오류율을 가지도록 설계되어야 한다. 그런데, 이러한 오류율은 그 상계가 매우 낮아서 일반적인 컴퓨터 시뮬레이션으로 얻을 수 없기 때문에, 본 발명은 RS 부호의 t 값에 따른 정확한 성능을 측정하기 위한 이론적인 성능의 상계를 계산하는 방법을 제시한다.
이하에서는, 본 발명의 연접 부호를 사용하는 오류 정정 회로와 종래의 오류 정정 회로들과의 성능 차이를 예를 들어 설명한다.
본 발명의 연접 부호를 사용하는 오류 정정 회로의 오류 정정 능력 t는 수학식 14와 같이 표현된다.
Figure 112011031764164-pat00024
표 4는 페이지 오류율 10-16을 얻기 위해 필요한 본 발명의 연접 부호를 사용하는 오류 정정 회로의 여분 비트 수와 BCH 부호(n=8751, k=8192, t=40) 및 GF(310)에서 동작하는 RS 부호(n=896, k=820, t=38)의 여분 비트 수를 비교한 결과이다.
TCM-RS BCH only RS only
Signal point selector 660
(220(11 ×2 ×10) ×3)
560 ×4 760 ×4
Subset selector 380(19 ×2 ×10)
총합 1040 2240 3040
WERtgt은 시스템에서 목표로 하는 페이지 오류율이고, Pdf는 한 코드워드의 복호 실패 확률이다.
표 4를 참조하면, 본 발명의 연접 부호를 적용한 오류 정정 회로는 동일 페이지 오류율을 얻기 위하여 요구되는 여분 비트의 수를 BCH 부호만을 사용하는 오류 정정 회로보다 약 50%, RS 부호만을 사용하는 오류 정정 회로보다 약 66% 감소시킴을 확인할 수 있다. 즉, 본 발명의 연접 부호를 적용한 오류 정정 회로는 동일한 페이지 오류율을 만족시키면서도 더 높은 부호율을 얻을 수 있어, 종래의 오류 정정 회로보다 더 채널 용량에 근접한 오류 정정 회로이다.
도 17은 본 발명의 순차적 계층적 연접 복호 방식이 적용된 오류 정정 회로 및 종래의 오류 정정 회로들과 채널 용량을 비교한 도면이다.
도 17을 참조하면, 본 발명의 순차적 계층적 연접 복호 방식이 적용된 오류 정정 회로가 종래의 오류 정정 회로보다 더 채널 용량(capacity)에 근접한 오류 정정 회로임을 확인할 수 있다. 구체적으로, 본 발명의 순차적 계층적 연접 복호 방식(TCM+RS)이 적용된 오류 정정 회로는 BCH 부호만(BCH only)을 사용하는 오류 정정 회로 및 RS 부호만(RS only)을 사용하는 오류 정정 회로보다 채널 용량에 약 1.2 dB 및 1.8 dB 더 접근하였음을 확인할 수 있다.
또한, 연판정 값을 사용 하는 LDPC 부호(LDPC AWGN, LPDC hard +SI) 보다는 약 0.28dB 더 채널 용량에 접근하였음을 확인할 수 있다. 채널 용량에 접근한 정도는 적으나, LDPC는 반복 복호를 하는 점에서 복호의 복잡도가 상대적으로 매우 높은 문제가 있다.
본원 발명에 적용된 연접 부호의 복잡도는 길쌈 부호와 RS 부호의 복잡도의 합으로 도출할 수 있다. 길쌈 부호의 복잡도가 상태의 개수에 대해 선형적으로 증가하므로 복잡도가 매우 낮은 편이며, RS 부호의 복잡도는 오류 정정 능력에 의해 결정되는데, RS 부호의 심볼을 크게 잡아서 오류 정정 능력을 비교적 낮게 잡아서 복잡도가 낮은 바, 본원 발명에 적용된 연접 부호의 복잡도도 낮다.
도 18은 본 발명의 순차적 계층적 연접 복호 방식이 적용된 오류 정정 회로와 BCH 부호 또는 RS 부호가 적용된 오류 정정 회로의 페이지 오류율을 비교한 도면이다. 연접 부호 및 RS 부호의 부호율을 BCH 부호의 부호율(0.97)과 동일하게 설정한다.
도 18을 참조하면, 본 발명의 순차적 계층적 연접 복호 방식이 적용된 오류 정정 회로는 BCH 부호 적용된 오류 정정 회로 및 RS 부호가 적용된 오류 정정 회로보다 1.2dB, 2.0dB 페이지 오류율을 낮출 수 있다.
본 발명의 플래쉬 메모리 장치는 기본적으로 낸드 플래쉬 메모리 장치에 적용될 수 있으나, 노어 플래쉬 메모리와 같은 다른 종류의 메모리 장치에도 적용 될 수 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다.
따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (18)

  1. 입력 데이터를 두 개의 데이터로 분리한 후 각각 RS 부호화하여, 부분격자 선택 데이터 및 신호점 선택 데이터를 생성하는 외부 부호부;
    상기 부분격자 선택 데이터 및 신호점 선택 데이터를 이용해 격자 부호 변조하여 m 비트의 변조 데이터 각각을 멀티 레벨을 갖는 플래쉬 메모리 코어의 복수개의 메모리 셀에 매칭하여 저장하는 내부 부호부;
    상기 플래쉬 메모리 코어로부터 제공되는 저장 데이터의 일부를 인가받아 다차원 복조, 비터비 복호, 및 RS 복호를 순차적으로 수행하여 부분격자 선택 데이터를 출력하는 제1 스테이지 복호부; 및
    상기 제1 스테이지 복호부의 부분격자 선택 데이터를 통해 상기 플래쉬 메모리 코어로부터 제공되는 저장 데이터의 나머지를 다차원 복조한 후 RS 복호하여 신호점 선택 데이터를 출력하는 제2차 스테이지 복호부를 포함하는 플래쉬 메모리 장치.
  2. 제1항에 있어서, 상기 외부 부호부는
    상기 두 개의 데이터 중 하나를 RS 부호화하여, k(k는 자연수) 비트의 제1 RS 부호 데이터를 출력하는 제1 RS 부호기; 및
    상기 두 개의 데이터 중 나머지 하나를 RS 부호화하여, n-k(n은 k 보다 큰 자연수) 비트의 제2 RS 부호 데이터를 출력하는 제2 RS 부호기를 포함하는 플래쉬 메모리 장치.
  3. 제2항에 있어서, 상기 내부 부호부는
    상기 제1 RS 부호 데이터에 r(r은 자연수) 비트의 여분 데이터를 더하여, k+r 비트의 부분격자 선택 데이터를 출력하는 길쌈 부호기; 및
    상기 k+r 비트의 부분격자 선택 데이터 및 상기 제2 RS 부호 데이터를 인가받아 다차원 변조하여 생성되는 m개의 변조 데이터를 다차원 격자 상의 포인트로 재배열하고, 재배열된 상기 격자 상의 포인트에 대응하여 m개의 변조 데이터를 상기 플래쉬 메모리 코어의 m개의 상기 메모리 셀에 저장하는 다차원 변조기를 포함하는 플래쉬 메모리 장치.
  4. 제1항에 있어서, 상기 제1 스테이지 복호부는
    상기 저장 데이터의 일부를 다차원 복조하여, k+r 비트의 부분격자 선택 데이터를 출력하는 제1 다차원 복조기;
    상기 k+r 비트의 부분격자 선택 데이터를 비터비 복호하여, k비트의 부분격자 선택 데이터를 출력하는 비터비 복호기; 및
    상기 k비트의 부분격자 선택 데이터를 RS 복호하여, 제1 출력 데이터를 출력하는 제1 RS 복호기를 포함하는 플래쉬 메모리 장치.
  5. 제4항에 있어서, 상기 제2 스테이지 복호부는
    상기 제1 출력 데이터 및 상기 저장 데이터의 나머지를 다차원 복조하여, n-k(n은 k 보다 큰 자연수) 비트의 신호점 선택 데이터를 출력하는 제2 다차원 복조기; 및
    상기 n-k 비트의 신호점 선택 데이터를 RS 복호하여 제2 출력 데이터를 출력하는 제2 RS 복호기를 포함하는 플래쉬 메모리 장치.
  6. 제5항에 있어서, 상기 제2 다차원 복조기는
    i(m=2i)개의 2차원 격자 중 상기 제1 출력 데이터에 대응되는 2차원 격자를 선택하고, 신호점에 대응되는 n-k 비트의 신호점 선택 데이터를 출력하는 플래쉬 메모리 장치.
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
KR1020110040285A 2011-04-28 2011-04-28 다차원 격자-rs 연접 부호의 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치를 위한 오류 정정 회로, 및 플래쉬 메모리 장치 KR101234373B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110040285A KR101234373B1 (ko) 2011-04-28 2011-04-28 다차원 격자-rs 연접 부호의 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치를 위한 오류 정정 회로, 및 플래쉬 메모리 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110040285A KR101234373B1 (ko) 2011-04-28 2011-04-28 다차원 격자-rs 연접 부호의 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치를 위한 오류 정정 회로, 및 플래쉬 메모리 장치

Publications (2)

Publication Number Publication Date
KR20120122234A KR20120122234A (ko) 2012-11-07
KR101234373B1 true KR101234373B1 (ko) 2013-02-22

Family

ID=47508524

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110040285A KR101234373B1 (ko) 2011-04-28 2011-04-28 다차원 격자-rs 연접 부호의 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치를 위한 오류 정정 회로, 및 플래쉬 메모리 장치

Country Status (1)

Country Link
KR (1) KR101234373B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6034996A (en) 1997-06-19 2000-03-07 Globespan, Inc. System and method for concatenating reed-solomon and trellis codes
KR100785925B1 (ko) * 2006-12-06 2007-12-17 삼성전자주식회사 Tcm을 이용한 멀티 레벨 셀 메모리 장치
KR20090099757A (ko) * 2008-03-18 2009-09-23 삼성전자주식회사 메모리 장치 및 인코딩/디코딩 방법
KR20090099756A (ko) * 2008-03-18 2009-09-23 삼성전자주식회사 메모리 장치 및 인코딩/디코딩 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6034996A (en) 1997-06-19 2000-03-07 Globespan, Inc. System and method for concatenating reed-solomon and trellis codes
KR100785925B1 (ko) * 2006-12-06 2007-12-17 삼성전자주식회사 Tcm을 이용한 멀티 레벨 셀 메모리 장치
KR20090099757A (ko) * 2008-03-18 2009-09-23 삼성전자주식회사 메모리 장치 및 인코딩/디코딩 방법
KR20090099756A (ko) * 2008-03-18 2009-09-23 삼성전자주식회사 메모리 장치 및 인코딩/디코딩 방법

Also Published As

Publication number Publication date
KR20120122234A (ko) 2012-11-07

Similar Documents

Publication Publication Date Title
US10326478B2 (en) Apparatus and method for encoding and decoding data in twisted polar code
US7882418B2 (en) LDPC encoder and decoder and LDPC encoding and decoding methods
KR101438072B1 (ko) 소거 없는 플래시 메모리의 다중 프로그래밍
US7519898B2 (en) Iterative decoding of linear block codes by adapting the parity check matrix
US8560930B2 (en) Systems and methods for multi-level quasi-cyclic low density parity check codes
US8930798B2 (en) Data encoding in solid state storage devices
US10812112B2 (en) Methods and decoder for soft input decoding of generalized concatenated codes
US20070011565A1 (en) Method and apparatus for low-density parity check encoding
US7644336B2 (en) Techniques for providing greater error protection to error-prone bits in codewords generated from irregular codes
US8316287B1 (en) Low-density parity check codes for holographic storage
US20090235142A1 (en) Systems Using Low Density Parity Check Codes For Correcting Errors
US20110083058A1 (en) Trapping set based ldpc code design and related circuits, systems, and methods
US20110029835A1 (en) Systems and Methods for Quasi-Cyclic LDPC Code Production and Decoding
US8806289B1 (en) Decoder and decoding method for a communication system
US8566665B2 (en) Systems and methods for error correction using low density parity check codes using multiple layer check equations
US20090276685A1 (en) Data decoding apparatus, magnetic disk apparatus, and data decoding method
US9639421B2 (en) Operating method of flash memory system
KR101320684B1 (ko) 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치
KR101234373B1 (ko) 다차원 격자-rs 연접 부호의 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치를 위한 오류 정정 회로, 및 플래쉬 메모리 장치
KR101355988B1 (ko) 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치
KR101496052B1 (ko) 블록 단위 연접 bch 부호 성능 개선 및 오류마루 경감을 위해 순환 자리 이동을 활용하는 복호 기법 및 회로
US20120089883A1 (en) Systems and Methods for Error Correction Using Irregular Low Density Parity Check Codes
WO2009150707A1 (ja) 検査行列の生成方法及び検査行列、並びに復号装置及び復号方法
KR101355986B1 (ko) 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치
CN108880564B (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
FPAY Annual fee payment

Payment date: 20160128

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee