KR20200020535A - 에러 정정 장치, 그것의 동작 방법 및 그것을 포함하는 전자 장치 - Google Patents

에러 정정 장치, 그것의 동작 방법 및 그것을 포함하는 전자 장치 Download PDF

Info

Publication number
KR20200020535A
KR20200020535A KR1020180096335A KR20180096335A KR20200020535A KR 20200020535 A KR20200020535 A KR 20200020535A KR 1020180096335 A KR1020180096335 A KR 1020180096335A KR 20180096335 A KR20180096335 A KR 20180096335A KR 20200020535 A KR20200020535 A KR 20200020535A
Authority
KR
South Korea
Prior art keywords
bit
reliability values
hard decision
bits
decision
Prior art date
Application number
KR1020180096335A
Other languages
English (en)
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 KR1020180096335A priority Critical patent/KR20200020535A/ko
Priority to US16/212,280 priority patent/US10892779B2/en
Priority to CN201811524885.XA priority patent/CN110837435B/zh
Publication of KR20200020535A publication Critical patent/KR20200020535A/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/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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/1171Parity-check or generator matrices with non-binary elements, e.g. for non-binary LDPC codes
    • 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
    • G06F11/102Error in check bits
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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
    • 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
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • 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/45Soft decoding, i.e. using symbol reliability information

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

에러 정정 장치는 하드 디시젼 비트들에 각각 대응하는 소프트 디시젼 비트 세트들에 근거하여 상기 하드 디시젼 비트들에 각각 대응하는 비트 신뢰도 값들을 결정하도록 구성된 비트 신뢰도 값 결정부; 및 상기 하드 디시젼 비트들 및 상기 비트 신뢰도 값들을 입력받아 보관하고, 상기 비트 신뢰도 값들로부터 신뢰도 값들을 복원하여 상기 하드 디시젼 비트들에 대한 디코딩 동작을 수행하도록 구성된 변수 노드를 포함하는 디코더를 포함하되, 상기 신뢰도 값들은, 상기 변수 노드에서 정의된 갈루아 필드(GF)에서, 상기 하드 디시젼 비트들로 구성된 디시젼 심볼을 제외한 원소들에 각각 대응한다.

Description

에러 정정 장치, 그것의 동작 방법 및 그것을 포함하는 전자 장치{ERROR CORRECTION DEVICE, OPERATING METHOD THEREOF AND ELECTRONIC DEVICE INCLUDING THE SAME}
본 발명은 에러 정정 장치에 관한 것으로, 더욱 상세하게는 비이진 LDPC(Low Density Parity Check) 코드가 적용된 에러 정정 장치에 관한 것이다.
대응하는 패리티 체크 행렬의 원소가 비이진 값을 가지는 비이진 LDPC 코드는, 대응하는 패리티 체크 행렬의 원소가 0 또는 1, 즉, 이진 값을 가지는 이진 LDPC 코드와 비교하여 일반적으로 더 복잡한 연산으로 수행되고 연산을 위한 저장 공간도 크게 요구될 수 있다. 특히, 비이진 LDPC 코드는 디시젼 심볼이 p개의 비트들로 구성될 때, GF(2^p)에서 정의되기 때문에, 이진 LDPC 코드와 달리 각 변수 노드에서 복수의 신뢰도 값들에 근거하여 디코딩 동작이 수행되고, 결과적으로 신뢰도 값들의 저장 공간이 문제가 될 수 있다.
한편, LDPC 코드는 메모리 장치로부터 리드된 데이터의 에러 정정 동작을 수행하는 디코더에 구현되어, 메모리 장치를 포함하는 메모리 시스템의 신뢰성 향상에 기여할 수 있다.
본 발명의 실시 예는 신뢰도 값의 저장 용량이 감소된 에러 정정 장치, 그것의 동작 방법 및 그것을 포함하는 전자 장치를 제공하는 데 있다.
본 발명의 실시 예에 따른 에러 정정 장치는 하드 디시젼 비트들에 각각 대응하는 소프트 디시젼 비트 세트들에 근거하여 상기 하드 디시젼 비트들에 각각 대응하는 비트 신뢰도 값들을 결정하도록 구성된 비트 신뢰도 값 결정부; 및 상기 하드 디시젼 비트들 및 상기 비트 신뢰도 값들을 입력받아 보관하고, 상기 비트 신뢰도 값들로부터 신뢰도 값들을 복원하여 상기 하드 디시젼 비트들에 대한 디코딩 동작을 수행하도록 구성된 변수 노드를 포함하는 디코더를 포함하되, 상기 신뢰도 값들은, 상기 변수 노드에서 정의된 갈루아 필드(GF)에서, 상기 하드 디시젼 비트들로 구성된 디시젼 심볼을 제외한 원소들에 각각 대응할 수 있다.
본 발명의 실시 예에 따른 에러 정정 장치의 동작 방법은 하드 디시젼 비트들에 각각 대응하는 소프트 디시젼 비트 세트들에 근거하여 상기 하드 디시젼 비트들에 각각 대응하는 비트 신뢰도 값들을 결정하는 단계; 및 변수 노드에 의해, 상기 하드 디시젼 비트들 및 상기 비트 신뢰도 값들을 입력받아 보관하고, 상기 비트 신뢰도 값들로부터 신뢰도 값들을 복원하여 상기 하드 디시젼 비트들에 대한 디코딩 동작을 수행하는 단계를 포함하되, 상기 신뢰도 값들은, 상기 변수 노드에서 정의된 갈루아 필드(GF)에서, 상기 하드 디시젼 비트들로 구성된 디시젼 심볼을 제외한 원소들에 각각 대응할 수 있다.
본 발명의 실시 예에 따른 전자 장치는 둘 이상의 메모리 셀들을 포함하고, 상기 메모리 셀들로부터 하드 디시젼 비트들 및 상기 하드 디시젼 비트들 각각에 대응하는 소프트 디시젼 비트 세트들을 각각 리드하도록 구성된 메모리 장치; 및 상기 소프트 디시젼 비트 세트들에 근거하여 상기 하드 디시젼 비트들에 대한 디코딩 동작을 수행하도록 구성된 에러 정정 회로를 포함하되, 상기 에러 정정 회로는, 상기 소프트 디시젼 비트 세트들에 근거하여 상기 하드 디시젼 비트들에 각각 대응하는 비트 신뢰도 값들을 결정하도록 구성된 비트 신뢰도 값 결정부; 및 상기 하드 디시젼 비트들 및 상기 비트 신뢰도 값들을 입력받아 보관하고, 상기 비트 신뢰도 값들로부터 신뢰도 값들을 복원하여 상기 하드 디시젼 비트들에 대한 디코딩 동작을 수행하도록 구성된 변수 노드를 포함하는 디코더를 포함하고, 상기 신뢰도 값들은, 상기 변수 노드에서 정의된 갈루아 필드(GF)에서, 상기 하드 디시젼 비트들로 구성된 디시젼 심볼을 제외한 원소들에 각각 대응할 수 있다.
본 발명의 실시 예에 따른 전자 장치는 복수의 메모리 셀들을 포함하고, 상기 메모리 셀들로부터 복수의 하드 디시젼 비트들 및 상기 하드 디시젼 비트들 각각에 대응하는 복수의 소프트 디시젼 비트 세트들을 각각 리드하도록 구성된 메모리 장치; 및 상기 소프트 디시젼 비트 세트들에 근거하여 상기 하드 디시젼 비트들에 대한 디코딩 동작을 수행하도록 구성된 에러 정정 회로를 포함하되, 상기 에러 정정 회로는, 상기 소프트 디시젼 비트 세트들에 근거하여 상기 하드 디시젼 비트들에 각각 대응하는 비트 신뢰도 값들을 결정하도록 구성된 비트 신뢰도 값 결정부; 및 상기 하드 디시젼 비트들이 그룹핑된 복수의 디시젼 심볼들을 각각 입력받는 복수의 변수 노드들을 포함하는 디코더를 포함하되, 각 변수 노드는, 입력된 디시젼 심볼에 대응하는 비트 신뢰도 값들을 입력받아 보관하고, 상기 디시젼 심볼에 대응하는 비트 신뢰도 값들로부터 신뢰도 값들을 복원하여 상기 디시젼 심볼에 대한 디코딩 동작을 수행하고, 상기 신뢰도 값들은, 상기 변수 노드에서 정의된 갈루아 필드(GF)에서, 상기 디시젼 심볼을 제외한 원소들에 각각 대응할 수 있다.
본 발명의 실시 예에 따른 에러 정정 장치, 그것의 동작 방법 및 그것을 포함하는 전자 장치는 신뢰도 값을 위한 저장 용량이 감소될 수 있다.
도1은 본 발명의 실시 예에 따른 에러 정정 장치를 간략하게 도시하는 블록도,
도2는 본 발명의 실시 예에 따라, 변수 노드에서 비트 신뢰도 값들로부터 신뢰도 값들이 복원되는 방법을 예시적으로 도시하는 도면,
도3a 및 도3b는 본 발명의 실시 예에 따라 신뢰도 값들이 비트 신뢰도 값들에 근거하여 복원되는 방법을 직관적으로 설명하기 위한 도면들,
도4는 본 발명의 실시 예에 따른 전자 장치를 도시한 블록도,
도5는 본 발명의 실시 예에 따라 도3의 비트 신뢰도 값 결정부가 참조하는 비트 신뢰도 값 테이블을 예시적으로 도시한 도면,
도6은 본 발명의 실시 예에 따라 도4의 에러 정정부의 동작 방법을 예시적으로 설명하기 위한 도면,
도7은 본 발명의 실시 예에 따른 도1의 에러 정정 장치 또는 도4의 에러 정정부의 동작 방법을 예시적으로 도시하는 순서도이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
도면들에 있어서, 본 발명의 실시 예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 본 명세서에서 특정한 용어들이 사용되었으나. 이는 본 발명을 설명하기 위한 목적에서 사용된 것이며, 의미 한정이나 특허 청구 범위에 기재된 본 발명의 권리 범위를 제한하기 위하여 사용된 것은 아니다.
본 명세서에서 '및/또는'이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한, '연결되는/결합되는'이란 표현은 다른 구성 요소와 직접적으로 연결되거나 다른 구성 요소를 통해서 간접적으로 연결되는 것을 포함하는 의미로 사용된다. 본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 '포함한다' 또는 '포함하는'으로 언급된 구성 요소, 단계, 동작 및 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및 소자의 존재 또는 추가를 의미한다.
비이진 LDPC 코드가 적용된 디코더에서, 각 변수 노드는 디시젼 심볼을 구성하는 복수의 하드 디시젼 비트들의 신뢰도 값들을 연산하고, 연산 값들을 하나 이상의 체크 노드들과 주고 받음으로써 디코딩 동작을 수행할 수 있다. 하드 디시젼 비트들의 개수가 p개일 때, 디시젼 심볼은 GF(2^p)의 원소일 수 있다. GF는 갈로아 필드를 의미한다.
각 변수 노드에서 사용하는 신뢰도 값들은, 이진 LDPC 코드와 달리, (2^p)-1개일 수 있다. (2^p)-1개의 신뢰도 값들은 GF(2^p)에서 디시젼 심볼이 아닌 (2^p)-1개의 나머지 원소들에 각각 대응할 수 있다. 구체적으로, i번째 변수 노드에 대해, GF(2^p)에서 디시젼 심볼이 아닌 원소(
Figure pat00001
)의 신뢰도 값은 아래 [식1]과 같은 원소(
Figure pat00002
)의 로그 우도비(
Figure pat00003
)(이하, LLR)에 근거하여 결정될 수 있다.
[식1]
Figure pat00004
.
[식1]에서
Figure pat00005
는 i번째 변수 노드로 입력되는 채널의 출력이고,
Figure pat00006
는 i번째 변수 노드의 하드 디시젼 비트들, 즉, 디시젼 심볼이다. 여기서, 디시젼 심볼에 대한 확률(
Figure pat00007
)이 로그의 진수의 분자에 위치하므로, [식1]의 LLR 값은 양수이다.
한편, [식1]에 따른 LLR 값을 디코더의 신뢰도 값으로 그대로 사용하면 연산이 너무 복잡하기 때문에, 기 선택된 정수들이 [식1]의 LLR 값 대신 신뢰도 값으로서 사용될 수 있다. 즉, i번째 변수 노드에서 사용되는 각 신뢰도 값은 디시젼 심볼 및 대응하는 원소에 대해 [식1]의 LLR 값으로 추정된 값일 수 있다.
후술될 본 발명에서 하드 디시젼 비트들은 IID(Independent and Identically Distributed) 조건을 만족할 수 있다. 이러한 조건하에, 본 발명은 각 변수 노드로 필요한 모든 신뢰도 값들을 전송하지 않고, 신뢰도 값들을 압축하여 압축된 신뢰도 값들을 전송할 수 있다. 변수 노드는 압축된 신뢰도 값들을 입력받아 유지하고, 필요한 신뢰도 값들을 복구하여 디코딩 동작에 사용할 수 있다. 따라서, 본 발명에 따르면 디코더 또는 변수 노드 내에서 실질적으로 신뢰도 값들의 저장 용량이 감소되고, 그로 인해 파워 소모량도 감소될 수 있다.
이하, 도면들을 참조하여 본 발명의 실시 예에 대해 상세히 설명하기로 한다.
도1은 본 발명의 실시 예에 따른 에러 정정 장치(10)를 간략하게 도시하는 블록도이다.
도1을 참조하면, 에러 정정 장치(10)는 하드 디시젼 비트들(HD1, HD2) 및 소프트 디시젼 비트 세트들(SD1, SD2)을 입력받아 비이진 LDPC 코드에 근거하여 하드 디시젼 비트들(HD1, HD2)에 대해 에러 정정 동작을 수행하고, 에러 정정된 비트들(CHD1, CHD2)을 출력할 수 있다. 소프트 디시젼 비트 세트(SD1)는 하드 디시젼 비트(HD1)에 대응하고 하나 이상의 소프트 디시젼 비트들로 구성될 수 있다. 소프트 디시젼 비트 세트(SD2)는 하드 디시젼 비트(HD2)에 대응하고 하나 이상의 소프트 디시젼 비트들로 구성될 수 있다.
하드 디시젼 비트들(HD1, HD2)은 디코더(12)의 임의의 하나의 변수 노드(VN)로 입력될 디시젼 심볼을 구성할 수 있다. 이하에서 개시될 설명은, 예시적으로 디코더(12)의 임의의 하나의 변수 노드(VN)에 관한 것이지만, 디코더(12)의 다른 변수 노드들(미도시됨) 각각에 대해서도 동일하게 적용될 수 있다. 즉, 에러 정정 장치(10)는 복수의 디시젼 심볼들로 그룹핑되는 복수의 하드 디시젼 비트들 및 하드 디시젼 비트들에 각각 대응하는 소프트 디시젼 비트 세트들을 입력받을 수 있고, 디시젼 심볼들 각각에 대한 에러 정정 장치(10)의 동작 방법은 하드 디시젼 비트들(HD1, HD2)에 대한 동작 방법과 실질적으로 동일할 수 있다.
또한, 변수 노드(VN)의 디시젼 심볼은 2개의 하드 디시젼 비트들(HD1, HD2)로 구성되고, 따라서, 에러 정정 장치(10)가 GF(4)에서 정의되는 비이진 LDPC 코드로 동작하는 것으로 설명될 것이지만, 본 발명의 실시 예는 이에 제한되지 않는다. 즉, 디시젼 심볼이 p개의 하드 디시젼 비트들로 구성되고, 에러 정정 장치(10)가 GF(2^p)에서 정의되는 비이진 LDPC 코드로 동작할 때도, 본 발명은 동일하게 적용되고 신뢰도 값의 저장 용량 감소를 달성할 수 있다.
에러 정정 장치(10)는 비트 신뢰도 값 결정부(11) 및 디코더(12)를 포함할 수 있다.
비트 신뢰도 값 결정부(11)는 소프트 디시젼 비트 세트들(SD1, SD2)에 근거하여 하드 디시젼 비트들(HD1, HD2)에 각각 대응하는 비트 신뢰도 값들(BRV1, BRV2)을 결정하고 디코더(12)로 출력할 수 있다. 비트 신뢰도 값 결정부(11)는 비트 신뢰도 값들(BRV1, BRV2)을 결정하기 위해 비트 신뢰도 값 테이블(BRVTB)을 참조할 수 있다.
비트 신뢰도 값 테이블(BRVTB)은 소프트 디시젼 비트 세트들(SD1, SD2)로서 입력될 수 있는 모든 값들에 각각 대응하는 비트 신뢰도 값들을 포함할 수 있다. 따라서, 비트 신뢰도 값 결정부(11)는 비트 신뢰도 값 테이블(BRVTB)을 참조하여 소프트 디시젼 비트 세트들(SD1, SD2)에 각각 대응하는 비트 신뢰도 값들(BRV1, BRV2)을 결정할 수 있다. 본 발명에서 비트 신뢰도 값들(BRV1, BRV2)은 모두 양수일 수 있다. 예를 들어, 비트 신뢰도 값들(BRV1, BRV2)은 GF(2)에서 소프트 디시젼 비트 세트들(SD1, SD2)에 각각 대응하는 LLR 값들로서 추정된 신뢰도 값들의 크기(magnitude)들일 수 있다.
즉, 아래에서 증명될 바와 같이 본 발명에서 비트 신뢰도 값들(BRV1, BRV2)은 양수로 고정되므로, 비트 신뢰도 값 테이블(BRVTB)은 모든 비트 신뢰도 값들의 부호 정보를 포함할 필요가 없다. 또한, 비트 신뢰도 값 테이블(BRVTB)의 비트 신뢰도 값들의 개수는 GF(2) 상에서 계산되므로, p가 1이 아닌 GF(2^p) 상에서 계산되는 신뢰도 값들의 개수보다 적을 것이다. 따라서, 비트 신뢰도 값 테이블(BRVTB)의 용량은 대폭 감소될 수 있다.
디코더(12)는 비이진 LDPC 코드에 따라 비트 신뢰도 값들(BRV1, BRV2)에 근거하여 하드 디시젼 비트들(HD1, HD2)에 대해 디코딩 동작을 수행하고 에러 정정된 비트들(CHD1, CHD2)을 출력할 수 있다. 구체적으로, 하드 디시젼 비트들(HD1, HD2)과 비트 신뢰도 값들(BRV1, BRV2)은 디코더(12)에서 대응하는 변수 노드(VN)로 입력될 수 있다. 변수 노드(VN)는 비트 신뢰도 값들(BRV1, BRV2)에 근거하여 신뢰도 값들을 복원하고, 복원된 신뢰도 값들을 사용하여 디코딩 동작을 수행할 수 있다. 이때, 변수 노드(VN)는 부호를 포함하지 않는 비트 신뢰도 값들(BRV1, BRV2)을 저장하므로 신뢰도 값의 저장 용량은 감소할 수 있다.
도2는 본 발명의 실시 예에 따라, 변수 노드(VN)에서 비트 신뢰도 값들(BRV1, BRV2)로부터 신뢰도 값들(RV)이 복원되는 방법을 예시적으로 도시하는 도면이다. 디코더(12)에 포함된 각 변수 노드는 도2의 변수 노드(VN)와 실질적으로 유사하게 동작할 수 있다.
도2를 참조하면, 변수 노드(VN)로 하드 디시젼 비트들(HD1, HD2)과 비트 신뢰도 값들(BRV1, BRV2)이 입력되고 저장될 수 있다. 하드 디시젼 비트들(HD1, HD2)과 비트 신뢰도 값들(BRV1, BRV2)은 레지스터들(R1~R4)에 저장될 수 있다.
도1의 디코더(12)에 적용된 비이진 LDPC 코드의 패리티 체크 행렬에 근거하여, 변수 노드(VN)는 체크 노드(CN)와 엣지로 연결될 수 있다. 도2는 변수 노드(VN)에 연결된 하나의 체크 노드(CN)만 도시하지만 패리티 체크 행렬에 따라 변수 노드(VN)는 복수의 체크 노드들과 연결될 수도 있다.
변수 노드(VN)는 비트 신뢰도 값들(BRV1, BRV2)로부터 신뢰도 값들(RV)을 복원하고, 신뢰도 값들(RV)에 근거한 연산 값들을 체크 노드(CN)와 주고 받음으로써 디코딩 동작의 이터레이션을 반복할 수 있다. 신뢰도 값들(RV)은 비트 신뢰도 값들(BRV1, BRV2)을 포함하고, 비트 신뢰도 값들(BRV1, BRV2)의 합(SUMBRV)을 포함할 수 있다. 예를 들어, 변수 노드(VN)는 체크 노드(CN)에 대한 외재적 정보(extrinsic information) 및 신뢰도 값들(RV)을 연산하여 연산 값을 체크 노드(CN)로 전송할 수 있다. 디코더(12)가 신뢰도 값들(RV)을 사용하여 디코딩 동작을 수행하는 방법은 종래 기술에 따를 수 있고, 따라서 자세한 설명은 생략될 것이다.
즉 변수 노드(VN)에서 실제로 디코딩 동작에 사용되는 신뢰도 값들(RV)은 비트 신뢰도 값들(BRV1, BRV2)로 압축되어 저장된 것으로 볼 수 있다. 디코딩 동작의 이터레이션이 반복되는 동안 변수 노드는 레지스터들(R3, R4)에서 비트 신뢰도 값들(BRV1, BRV2)만을 유지할 수 있다. 비트 신뢰도 값들(BRV1, BRV2)이 양수이므로 신뢰도 값들(RV)은 여전히 양수이고, 따라서, 변수 노드(VN)는 신뢰도 값들(RV)에 대해서도 부호 정보들을 별도로 유지할 필요가 없다. 즉, 종래에는 디코더에서 사용하는 신뢰도 값들은 양수 또는 음수이므로, 이를 구별하기 위한 부호 정보가 별도로 유지되어야 하지만, 본 발명에 따르면 부호 정보를 유지할 필요가 없다.
이하에서, 디코더(120)의 i번째 변수 노드의 신뢰도 값들이, 디시젼 심볼을 구성하는 하드 디시젼 비트들의 비트 신뢰도 값들로 압축 가능한 이유를 상기 [식1]로부터 수학적으로 증명하면 다음과 같다. 아래에서,
Figure pat00008
는 i번째 변수 노드로 입력되는 채널의 출력이고,
Figure pat00009
는 i번째 변수 노드의 하드 디시젼 비트들이고,
Figure pat00010
Figure pat00011
의 j번째 비트이고,
Figure pat00012
는 디시젼 심볼이 아닌 원소(
Figure pat00013
)의 j번째 비트이다.
Figure pat00014
Figure pat00015
.
Figure pat00016
.
한편,
Figure pat00017
일 때,
Figure pat00018
이고,
Figure pat00019
일 때,
Figure pat00020
.
따라서,
Figure pat00021
.
즉,
Figure pat00022
은 디시젼 심볼을 구성하는 각 하드 디시젼 비트의 GF(2) 상의 LLR 값이다. 상기 식에서 보여지듯이
Figure pat00023
은 양수이다.
상기 증명에 따라, GF(2^p) 상에서 디시젼 심볼이 아닌 원소에 대응하는 LLR 값은, 하나 이상의 선택된 하드 디시젼 비트들의 LLR 값들의 크기의 합이다. 여기에서 하나 이상의 선택된 하드 디시젼 비트들은, 디시젼 심볼과 해당 원소를 비트와이즈 비교, 즉, 비트 단위로 비교할 때, 서로 다른 하나 이상의 비트들이다.
여기에서, 하드 디시젼 비트들의 LLR 값들로서, 정수의 신뢰도 값들이 사용될 수 있다. 따라서, 하나 이상의 선택된 하드 디시젼 비트들의 신뢰도 값들의 크기, 즉, 비트 신뢰도 값들의 합은 GF(2^p) 상에서 디시젼 심볼이 아닌 원소에 대응하는 신뢰도 값으로서 사용될 수 있다. 하나 이상의 선택된 하드 디시젼 비트들은 디시젼 심볼과 해당 원소를 비트 단위로 비교할 때, 서로 다른 하나 이상의 비트들이다.
도3a 및 도3b는 본 발명의 실시 예에 따라 신뢰도 값들이 비트 신뢰도 값들에 근거하여 복원되는 방법을 직관적으로 설명하기 위한 도면들이다. 도3a는 예시적으로 GF(4)의 경우를 도시하고, 도3b는 예시적으로 GF(8)의 경우를 도시한다.
도3a를 참조하면, 2개의 하드 디시젼 비트들(HD1, HD2)은 하나의 변수 노드로 입력되는 디시젼 심볼을 구성할 수 있다. 비트 신뢰도 값 결정부(11)는 하드 디시젼 비트들(HD1, HD2)의 비트 신뢰도 값들(BRV1, BRV2)을 각각 결정하고 디코더(12)의 대응하는 변수 노드로 전송할 수 있다.
디코더(12)의 변수 노드는 GF(4) 상에서 디시젼 심볼을 제외한 원소들(E1~E3)에 각각 대응하는 신뢰도 값들을 비트 신뢰도 값들(BRV1, BRV2)에 근거하여 복원하고 디코딩 동작에 사용할 수 있다. 원소들(E1~E3)에서 하드 디시젼 비트들(HD1, HD2) 앞의 '/' 부호는 해당 하드 디시젼 비트의 반전된 값을 의미한다.
구체적으로, 원소(E1)에 관하여, 디시젼 심볼의 하드 디시젼 비트(HD1)는 원소(E1)와 비트 와이즈 비교할 때 서로 다른 값일 수 있다. 따라서, 하드 디시젼 비트(HD1)의 비트 신뢰도 값(BRV1)이 원소(E1)에 대응하는 신뢰도 값이 될 수 있다.
원소(E2)에 관하여, 디시젼 심볼의 하드 디시젼 비트(HD2)는 원소(E2)와 비트 와이즈 비교할 때 서로 다른 값일 수 있다. 따라서, 하드 디시젼 비트(HD2)의 비트 신뢰도 값(BRV2)이 원소(E2)에 대응하는 신뢰도 값이 될 수 있다.
원소(E3)에 관하여, 디시젼 심볼의 하드 디시젼 비트들(HD1, HD2)은 원소(E3)와 비트 와이즈 비교할 때 서로 다른 값들일 수 있다. 따라서, 하드 디시젼 비트들(HD1, HD2)의 비트 신뢰도 값들(BRV1, BRV2)의 합이 원소(E3)에 대응하는 신뢰도 값이 될 수 있다.
도3b를 참조하면, 예를 들어, 3개의 하드 디시젼 비트들(HD11, HD12, HD13)은 하나의 변수 노드로 입력되는 디시젼 심볼을 구성할 수 있다. 비트 신뢰도 값 결정부(11)는 하드 디시젼 비트들(HD11, HD12, HD13)의 비트 신뢰도 값들(BRV11, BRV12, BRV13)을 각각 결정하고 디코더(12)의 대응하는 변수 노드로 전송할 수 있다.
디코더(12)의 변수 노드는 GF(8) 상에서 디시젼 심볼을 제외한 원소들(E11~E17)에 각각 대응하는 신뢰도 값들을 비트 신뢰도 값들(BRV11, BRV12, BRV13)에 근거하여 복원하고 디코딩 동작에 사용할 수 있다. 원소들(E11~E17)에서 하드 디시젼 비트들(HD11, HD12, HD13) 앞의 '/' 부호는 해당 하드 디시젼 비트의 반전된 값을 의미한다.
구체적으로, 원소(E11)에 관하여, 디시젼 심볼의 하드 디시젼 비트(HD11)는 원소(E11)와 비트 와이즈 비교할 때 서로 다른 값일 수 있다. 따라서, 하드 디시젼 비트(HD11)의 비트 신뢰도 값(BRV11)이 원소(E11)에 대응하는 신뢰도 값이 될 수 있다. 원소들(E11, E12)에 대응하는 신뢰도 값들을 생성하는 방법은 원소(E11)에 관한 방법과 동일하므로 생략할 것이다.
원소(E14)에 관하여, 디시젼 심볼의 하드 디시젼 비트들(HD11, HD12)은 원소(E14)와 비트 와이즈 비교할 때 서로 다른 값들일 수 있다. 따라서, 하드 디시젼 비트들(HD11, HD12)의 비트 신뢰도 값들(BRV11, BRV12)의 합이 원소(E14)에 신뢰도 값이 될 수 있다. 원소들(E15, E16)에 대응하는 신뢰도 값들을 생성하는 방법은 원소(E14)에 관한 방법과 동일하므로 생략할 것이다.
원소(E17)에 관하여, 디시젼 심볼의 하드 디시젼 비트들(HD11, HD12, HD13)은 원소(E17)와 비트 와이즈 비교할 때 서로 다른 값들일 수 있다. 따라서, 하드 디시젼 비트들(HD11, HD12, HD13)의 비트 신뢰도 값들(BRV11, BRV12, BRV13)의 합이 원소(E7)에 대응하는 신뢰도 값이 될 수 있다.
디시젼 심볼이 p개의 하드 디시젼 비트들로 구성될 때, 신뢰도 값들은 하드 디시젼 비트들에 각각 대응하는 p개의 비트 신뢰도 값들로부터 복원되며, 그 방법은 도3a 및 도3b를 참조하여 설명한 방법과 동일할 것이다.
도4는 본 발명의 실시 예에 따른 전자 장치(100)를 도시한 블록도이다.
도4를 참조하면, 전자 장치(100)는 제어부(110), 에러 정정부(120) 및 메모리 장치(130)를 포함할 수 있다.
제어부(110)는 에러 정정부(120) 및 메모리 장치(130)를 제어할 수 있다. 제어부(110)는 메모리 장치(130)의 메모리 영역(MR)에 데이터를 저장하고 메모리 영역(MR)에 저장된 데이터를 리드하도록 메모리 장치(130)를 제어할 수 있다. 이때, 메모리 영역(MR)에 저장된 데이터는 하드 디시젼 데이터(HDMR)로서 리드되고 에러 정정부(120)로 제공될 수 있다. 하드 디시젼 데이터(HDMR)는 하나 이상의 하드 리드 전압들이 메모리 영역(MR)의 메모리 셀들(MC)로 인가됨으로써 리드된 데이터일 수 있다. 하드 디시젼 데이터(HDMR)는 메모리 셀들(MC)로부터 각각 리드된 하드 디시젼 비트들을 포함할 수 있다.
또한, 제어부(110)는 메모리 영역(MR)으로부터 소프트 디시젼 데이터(SDMR)를 리드하여 에러 정정부(120)로 제공하도록 메모리 장치(130)를 제어할 수 있다. 소프트 디시젼 데이터(SDMR)는 하나 이상의 소프트 리드 전압들이 메모리 영역(MR)의 메모리 셀들(MC)로 인가됨으로써 리드된 데이터일 수 있다. 소프트 리드 전압들은 각각의 하드 리드 전압들로부터 소정 오프셋 값들만큼 차이나는 전압들일 수 있다. 소프트 디시젼 데이터(SDMR)는 메모리 셀들(MC)로부터 각각 리드된 소프트 디시젼 비트 세트들을 포함할 수 있다.
에러 정정부(120)는 하드 디시젼 데이터(HDMR) 및 소프트 디시젼 데이터(SDMR)에 근거하여 에러 정정 동작을 수행하고, 에러 정정된 데이터(CHDMR)를 출력할 수 있다. 에러 정정부(120)는 비트 신뢰도 값 결정부(121) 및 디코더(122)를 포함할 수 있다. 비트 신뢰도 값 결정부(121) 및 디코더(122)는 도1의 비트 신뢰도 값 결정부(11) 및 디코더(12)와 실질적으로 동일하게 구성되고 동작할 수 있다.
한편, 비트 신뢰도 값 결정부(121)는 미도시되었지만 도1의 비트 신뢰도 값 테이블(BRVTB)과 유사한 비트 신뢰도 값 테이블을 참조할 수 있다. 비트 신뢰도 값 테이블은, 예를 들어, 비트 신뢰도 값 결정부(121)의 내부 비휘발성 메모리(미도시됨)에 저장될 수 있다. 비트 신뢰도 값 테이블은, 예를 들어, 메모리 장치(130)에 저장되고 필요시 비트 신뢰도 값 결정부(121)로 리드될 수 있다.
메모리 장치(130)는 데이터를 저장할 수 있는 메모리 영역(MR)을 포함할 수 있다. 메모리 영역(MR)에 저장된 데이터는 인코딩된 코드워드일 수 있다. 메모리 장치(130)는 제어부(110)의 제어에 따라 메모리 영역(MR)으로 하나 이상의 하드 리드 전압들을 인가함으로써 하드 디시젼 데이터(HDMR)를 리드할 수 있다. 메모리 장치(130)는 제어부(110)의 제어에 따라 메모리 영역(MR)으로 소프트 리드 전압들을 인가함으로써 소프트 디시젼 데이터(SDMR)을 리드할 수 있다.
메모리 영역(MR)은 복수의 메모리 셀들(MC)을 포함할 수 있다. 메모리 셀들(MC)은 동일한 워드라인에 연결될 수 있다. 메모리 셀들(MC)은 메모리 장치(130)가 라이트 동작 또는 리드 동작을 수행할 때, 동시에 액세스될 수 있다.
앞서 가정한 바와 같이, 본 발명에서 디코더(122)의 각 변수 노드로 입력되는 디시젼 심볼, 즉, p개의 하드 디시젼 비트들은 IID 조건을 만족할 수 있다. 따라서, 디시젼 심볼의 p개의 하드 디시젼 비트들은 메모리 영역(MR)에서 서로 다른 메모리 셀들로부터 각각 리드된 비트들일 수 있다. 즉, 디코더(122)의 변수 노드들로 각각 입력되는 디시젼 심볼들은 하드 디시젼 데이터(HDMR)의 하드 디시젼 비트들이 p개씩 그룹핑된 것일 수 있다.
메모리 장치(130)는 휘발성 메모리 장치 및 비휘발성 메모리 장치를 포함할 수 있다. 휘발성 메모리 장치는 DRAM(Dynamic Random Access Memory) 또는 SRAM(Static Random Access Memory)일 수 있다. 비휘발성 메모리 장치는 낸드 플래시(NAND Flash) 또는 노어 플래시(NOR Flash)와 같은 플래시 메모리 장치, FeRAM(Ferroelectrics Random Access Memory), PCRAM(Phase-Change Random Access Memory), MRAM(Magnetic Random Access Memory) 또는 ReRAM(Resistive Random Access Memory) 등일 수 있다.
도5는 본 발명의 실시 예에 따라 도3의 비트 신뢰도 값 결정부(121)가 참조하는 비트 신뢰도 값 테이블(BRVTB)을 예시적으로 도시한 도면이다. 도5는 도4의 메모리 장치(130)가 예를 들어, 낸드 플래시 메모리 장치일 때, 메모리 셀들(MC)이 형성하는 문턱 전압 분포들(VD1, VD2)을 함께 도시한다.
도5를 참조하면, "1"이 저장된 메모리 셀은 문턱 전압 분포(VD1)에 포함될 수 있다. "0"이 저장된 메모리 셀은 문턱 전압 분포(VD2)에 포함될 수 있다.
문턱 전압 분포들(VD1, VD2)이 하드 리드 전압(HR)을 기준으로 명확하게 분리되어 있다면, 메모리 셀들(MC)로 하드 리드 전압(HR)을 인가하였을 때 메모리 셀들(MC)에 저장된 데이터가 에러 없이 리드될 수 있다. 그러나, 도시된 바와 같이, 문턱 전압 분포들(VD1, VD2)은 하드 리드 전압(HR) 인근에서 겹쳐질 수 있다. 따라서, 하드 리드 전압(HR)보다 작은 문턱 전압을 가진 메모리 셀은 실제로는 "0"이 저장되었더라도, 하드 디시젼 비트(HD)로서 "1"을 출력할 수 있다. 그리고 하드 리드 전압(HR)보다 높은 문턱 전압을 가진 메모리 셀은 실제로는 "1"이 저장되었더라도, 하드 디시젼 비트(HD)로서 "0"을 출력할 수 있다. 즉, 메모리 셀이 문턱 전압 분포들(VD1, VD2)의 겹쳐진 부분에 위치할 때, 메모리 셀로부터 리드된 하드 디시젼 비트(HD)는 그 신뢰성이 낮을 수 있다.
따라서, 메모리 셀이 문턱 전압 분포들(VD1, VD2)에서 보다 세밀하게 어디에 위치하는지가 소프트 디시젼 비트 세트(SD)로서 판별될 수 있다. 소프트 디시젼 비트 세트(SD)는, 소프트 리드 전압들(SR1~SR4)이 메모리 셀로 인가될 때, 메모리 셀의 문턱 전압에 따라 리드될 수 있다. 예를 들어, 메모리 셀의 문턱 전압이 소프트 리드 전압(SR1)보다 크고 소프트 리드 전압(SR2)보다 작을 때, 소프트 디시젼 비트 세트(SD)는 해당 메모리 셀로부터 "s2"로 리드될 수 있다. 결국, 소프트 디시젼 비트 세트(SD)는, 메모리 셀이 문턱 전압 분포들(VD1, VD2)이 겹쳐진 부분에서 얼마나 가깝게/멀게 위치하는지를 의미할 수 있고, 이는 하드 디시젼 비트(HD)의 신뢰도를 의미할 수 있다.
소프트 리드 전압들(SR1~SR4)은 하드 리드 전압(HR)으로부터 소정 오프셋 값들만큼 떨어진 전압들일 수 있다. 4개의 소프트 리드 전압들(SR1~SR4)이 메모리 셀로 인가되므로, 해당 메모리 셀로부터 리드된 소프트 디시젼 비트 세트(SD)는 4개의 소프트 디시젼 비트들로 구성될 수 있다. 도5에서 소프트 리드 전압들(SR1~SR4)의 개수는 예시적인 것이다.
신뢰도 값 테이블(BRVTB)은 소프트 디시젼 비트 세트(SD)의 가능한 모든 값들, 즉, "s1"부터 "s5"과, 각 소프트 디시젼 비트 세트(SD)에 대응하는 비트 신뢰도 값(BRV)을 포함할 수 있다. 비트 신뢰도 값(BRV)은 GF(2)에서 소프트 디시젼 비트 세트(SD)에 대응하는 LLR 값으로 추정된 신뢰도 값의 크기일 수 있다. 따라서, 신뢰도 값 테이블(BRVTB)의 비트 신뢰도 값(BRV)은 양수이다. 도5에 도시된 비트 신뢰도 값(BRV)은 예시적인 것이다.
예를 들어, 메모리 셀로부터 하드 디시젼 비트(HD)가 "1"로 리드되고 소프트 디시젼 비트 세트(SD)가 "s2"로 리드되면, 비트 신뢰도 값 결정부(121)는 비트 신뢰도 값 테이블(BRVTB)을 참조하여 소프트 디시젼 비트 세트(SD) "s2"에 대응하는 비트 신뢰도 값(BRV) "1"을 해당 하드 디시젼 비트(HD)에 부여할 수 있다.
한편, 비트 신뢰도 값 테이블(BRVTB)을 참조하면, 소프트 디시젼 비트 세트(SD)가 "s3"일 때, 하드 디시젼 비트(HD)가 "1"인지 "0"인지에 무관하게 비트 신뢰도 값(BRV)은 "0"으로 결정될 수 있다. 이러한 경우, 비트 신뢰도 값 결정부(121)는 하드 디시젼 비트(HD)를 입력받지 않을 수도 있다.
실시 예에 따라, 소프트 디시젼 비트 세트(SD)가 "s3"일 때, 하드 디시젼 비트(HD)가 "1"인지 "0"인지에 따라 비트 신뢰도 값(BRV)이 다르게 결정될 수 있다. 이러한 경우, 비트 신뢰도 값 결정부(121)는 비트 신뢰도 값 테이블(BRVTB)에서 해당 하드 디시젼 비트(HD) 및 해당 소프트 디시젼 비트 세트(SD)에 근거하여 비트 신뢰도 값(BRV)을 결정할 수 있다.
도6은 본 발명의 실시 예에 따라 도4의 에러 정정부(120)의 동작 방법을 예시적으로 설명하기 위한 도면이다. 도6에서 디코더(122)의 변수 노드들 각각으로 입력되는 디시젼 심볼은 2개의 하드 디시젼 비트들로 구성되는 것으로 가정한다.
도6을 참조하면, 제1 및 제2 메모리 셀들로부터 리드된 하드 디시젼 비트들(HD1, HD2)이 어떤 하나의 변수 노드로 입력되는 디시젼 심볼을 구성할 수 있다. 예를 들어, 제1 메모리 셀로부터 하드 디시젼 비트(HD1)가 "0"로 리드되고, 제2 메모리 셀로부터 하드 디시젼 비트(HD2)가 "1"로 리드될 수 있다.
그리고, 제1 메모리 셀은, 예를 들어, 소프트 리드 전압들(SR3, SR4) 사이의 문턱 전압을 가질 수 있다. 따라서, 제1 메모리 셀로부터 소프트 디시젼 비트 세트(SD1)는 "s4"로 리드될 수 있다.
제2 메모리 셀은, 예를 들어, 소프트 리드 전압(SR1) 이하의 문턱 전압을 가질 수 있다. 따라서, 제2 메모리 셀로부터 소프트 디시젼 비트 세트(SD2)는 "s1"으로 리드될 수 있다.
비트 신뢰도 값 결정부(121)는 하드 디시젼 비트들(HD1, HD2) 및 소프트 디시젼 비트 세트들(SD1, SD2)를 입력받을 수 있다. 비트 신뢰도 값 결정부(121)는 하드 디시젼 비트들(HD1, HD2)의 비트 신뢰도 값들(BRV1, BRV2)을 생성하기 위해 비트 신뢰도 값 테이블(BRVTB)을 참조할 수 있다. 비트 신뢰도 값 결정부(121)는 하드 디시젼 비트(HD1) "0"의 비트 신뢰도 값(BRV1)을 소프트 디시젼 비트 세트(SD1) "s4"에 대응하는 "1"로 결정할 수 있다. 비트 신뢰도 값 결정부(121)는 하드 디시젼 비트(HD2) "1"의 비트 신뢰도 값(BRV2)을 소프트 디시젼 비트 세트(SD2) "s1"에 대응하는 "2"로 결정할 수 있다.
디코더(122)는 하드 디시젼 비트들(HD1, HD2) 및 비트 신뢰도 값들(BRV1, BRV2)을 입력받아 디코딩 동작을 수행하고 에러 정정된 비트들(CHD1, CHD2)을 출력 수 있다. 하드 디시젼 비트들(HD1, HD2) 및 비트 신뢰도 값들(BRV1, BRV2)은 대응하는 디코더(122)의 변수 노드로 입력되고 저장될 것이다.
변수 노드는 비트 신뢰도 값들(BRV1, BRV2)에 근거하여 신뢰도 값들을 복원하고 엣지로 연결된 하나 이상의 체크 노드들로 전송할 수 있다. 복원된 신뢰도 값들은, 비트 신뢰도 값들(BRV1, BRV2) 및 비트 신뢰도 값들(BRV1, BRV2)의 합으로 구성될 수 있다. 복원된 신뢰도 값들은 GF(4)에서 디시젼 심볼 "01"을 제외한 원소들 "11", "00", 및 "10"에 각각 대응할 수 있다.
복원된 신뢰도 값들을 앞서 도3a에서 설명한 방법에 따라 GF(4)의 원소들 "11", "00", 및 "10"에 각각 대응시켜보면, 다음과 같다. 우선, 하드 디시젼 비트(HD1) "0"의 비트 신뢰도 값(BRV1) "1"은 원소 "11"에 대응하는 신뢰도 값이 될 수 있다. 하드 디시젼 비트(HD2) "1"의 비트 신뢰도 값(BRV2) "2"은 원소 "00"에 대응하는 신뢰도 값이 될 수 있다. 비트 신뢰도 값들(BRV1, BRV2)의 합 "3"은 원소 "10"에 대응하는 신뢰도 값이 될 수 있다.
도7은 본 발명의 실시 예에 따른 도1의 에러 정정 장치(10) 또는 도4의 에러 정정부(120)의 동작 방법을 예시적으로 도시하는 순서도이다. 이하 설명에서 비트 신뢰도 값 결정부는 도1의 비트 신뢰도 값 결정부(11) 또는 도4의 비트 신뢰도 값 결정부(121)일 수 있다. 디코더는 도1의 디코더(12) 또는 도4의 디코더(122)일 수 있다.
도7을 참조하면, 단계(S110)에서, 비트 신뢰도 값 결정부는 하드 디시젼 비트들에 각각 대응하는 소프트 디시젼 비트 세트들에 근거하여 하드 디시젼 비트들에 각각 대응하는 비트 신뢰도 값들을 결정할 수 있다. 비트 신뢰도 값들은, GF(2)에서 소프트 디시젼 비트 세트들에 각각 대응하는 로그 우도비들로서 추정된 신뢰도 값들의 크기들일 수 있다. 비트 신뢰도 값들 각각은, 부호 정보를 포함하지 않을 수 있다. 비트 신뢰도 값 결정부는, 소프트 디시젼 비트 세트들에 각각 대응하는 비트 신뢰도 값들을 포함하는 비트 신뢰도 값 테이블을 참조하여, 하드 디시젼 비트들에 각각 대응하는 비트 신뢰도 값들을 결정할 수 있다.
단계(S120)에서, 디코더의 변수 노드는 하드 디시젼 비트들 및 비트 신뢰도 값들을 비트 신뢰도 값 결정부로부터 입력받아 보관하고, 비트 신뢰도 값들로부터 신뢰도 값들을 복원하여 하드 디시젼 비트들에 대한 디코딩 동작을 수행할 수 있다. 신뢰도 값들은, 변수 노드에서 정의된 갈루아 필드(GF)에서, 하드 디시젼 비트들로 구성된 디시젼 심볼을 제외한 원소들에 각각 대응할 수 있다.
구체적으로, 변수 노드는, 하드 디시젼 비트들 중 하나 이상의 선택된 하드 디시젼 비트들의 비트 신뢰도 값들의 합을 원소들 중 제1 원소에 대응하는 신뢰도 값으로 복원할 수 있다. 여기서 선택된 하드 디시젼 비트들은, 디시젼 심볼과 제1 원소를 비트 단위로 비교시, 서로 다른 하나 이상의 비트들일 수 있다. 신뢰도 값들 각각은, 디시젼 심볼 및 대응하는 원소에 대한 로그 우도비로 추정되어 디코딩 동작에 사용될 수 있다.
본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10: 에러 정정 장치
11: 비트 신뢰도 값 결정부
12: NB-LDPC 디코더

Claims (26)

  1. 하드 디시젼 비트들에 각각 대응하는 소프트 디시젼 비트 세트들에 근거하여 상기 하드 디시젼 비트들에 각각 대응하는 비트 신뢰도 값들을 결정하도록 구성된 비트 신뢰도 값 결정부; 및
    상기 하드 디시젼 비트들 및 상기 비트 신뢰도 값들을 입력받아 보관하고, 상기 비트 신뢰도 값들로부터 신뢰도 값들을 복원하여 상기 하드 디시젼 비트들에 대한 디코딩 동작을 수행하도록 구성된 변수 노드를 포함하는 디코더를 포함하되,
    상기 신뢰도 값들은, 상기 변수 노드에서 정의된 갈루아 필드(GF)에서, 상기 하드 디시젼 비트들로 구성된 디시젼 심볼을 제외한 원소들에 각각 대응하는 에러 정정 장치.
  2. 제1항에 있어서,
    상기 비트 신뢰도 값들은, GF(2)에서 상기 소프트 디시젼 비트 세트들에 각각 대응하는 로그 우도비들로서 추정된 신뢰도 값들의 크기들인 에러 정정 장치.
  3. 제1항에 있어서,
    상기 비트 신뢰도 값들 각각은, 부호 정보를 포함하지 않는 에러 정정 장치.
  4. 제1항에 있어서,
    상기 비트 신뢰도 값 결정부는, 상기 소프트 디시젼 비트 세트들에 각각 대응하는 상기 비트 신뢰도 값들을 포함하는 비트 신뢰도 값 테이블을 참조하여 상기 비트 신뢰도 값들을 결정하는 에러 정정 장치.
  5. 제1항에 있어서,
    상기 변수 노드는, 상기 하드 디시젼 비트들 중 하나 이상의 선택된 하드 디시젼 비트들의 비트 신뢰도 값들의 합을 상기 원소들 중 제1 원소에 대응하는 신뢰도 값으로 복원하고,
    상기 선택된 하드 디시젼 비트들은, 상기 디시젼 심볼과 상기 제1 원소를 비트 단위로 비교시, 서로 다른 하나 이상의 비트들인 에러 정정 장치.
  6. 제1항에 있어서,
    상기 신뢰도 값들 각각은, 상기 디시젼 심볼 및 대응하는 원소에 대한 로그 우도비로 추정되는 에러 정정 장치.
  7. 제1항에 있어서,
    상기 하드 디시젼 비트들은, IID(Independent Identically Distributed) 조건을 만족하는 에러 정정 장치.
  8. 제1항에 있어서,
    상기 디코더는, 비이진 LDPC(Low Density Parity Check) 코드에 근거하여 상기 디코딩 동작을 수행하는 에러 정정 장치.
  9. 하드 디시젼 비트들에 각각 대응하는 소프트 디시젼 비트 세트들에 근거하여 상기 하드 디시젼 비트들에 각각 대응하는 비트 신뢰도 값들을 결정하는 단계; 및
    변수 노드에 의해, 상기 하드 디시젼 비트들 및 상기 비트 신뢰도 값들을 입력받아 보관하고, 상기 비트 신뢰도 값들로부터 신뢰도 값들을 복원하여 상기 하드 디시젼 비트들에 대한 디코딩 동작을 수행하는 단계를 포함하되,
    상기 신뢰도 값들은, 상기 변수 노드에서 정의된 갈루아 필드(GF)에서, 상기 하드 디시젼 비트들로 구성된 디시젼 심볼을 제외한 원소들에 각각 대응하는 에러 정정 장치의 동작 방법.
  10. 제9항에 있어서,
    상기 비트 신뢰도 값들은, GF(2)에서 상기 소프트 디시젼 비트 세트들에 각각 대응하는 로그 우도비들로서 추정된 신뢰도 값들의 크기들인 에러 정정 장치의 동작 방법.
  11. 제9항에 있어서,
    상기 비트 신뢰도 값들 각각은, 부호 정보를 포함하지 않는 에러 정정 장치의 동작 방법.
  12. 제9항에 있어서,
    상기 비트 신뢰도 값들을 결정하는 단계는, 상기 소프트 디시젼 비트 세트들에 각각 대응하는 상기 비트 신뢰도 값들을 포함하는 비트 신뢰도 값 테이블을 참조하여 상기 비트 신뢰도 값들을 결정하는 단계를 포함하는 에러 정정 장치의 동작 방법.
  13. 제9항에 있어서,
    상기 신뢰도 값들을 복원하는 것은, 상기 하드 디시젼 비트들 중 하나 이상의 선택된 하드 디시젼 비트들의 비트 신뢰도 값들의 합을 상기 원소들 중 제1 원소에 대응하는 신뢰도 값으로 복원하는 단계를 포함하고,
    상기 선택된 하드 디시젼 비트들은 상기 디시젼 심볼과 상기 제1 원소를 비트 단위로 비교시, 서로 다른 하나 이상의 비트들인 에러 정정 장치의 동작 방법.
  14. 제9항에 있어서,
    상기 신뢰도 값들 각각은, 상기 디시젼 심볼 및 대응하는 원소에 대한 로그 우도비로 추정되는 에러 정정 장치의 동작 방법.
  15. 제9항에 있어서,
    상기 하드 디시젼 비트들은, IID(Independent Identically Distributed) 조건을 만족하는 에러 정정 장치의 동작 방법.
  16. 제9항에 있어서,
    상기 디코딩 동작은, 비이진 LDPC(Low Density Parity Check) 코드에 근거하여 수행되는 에러 정정 장치의 동작 방법.
  17. 둘 이상의 메모리 셀들을 포함하고, 상기 메모리 셀들로부터 하드 디시젼 비트들 및 상기 하드 디시젼 비트들 각각에 대응하는 소프트 디시젼 비트 세트들을 각각 리드하도록 구성된 메모리 장치; 및
    상기 소프트 디시젼 비트 세트들에 근거하여 상기 하드 디시젼 비트들에 대한 디코딩 동작을 수행하도록 구성된 에러 정정 회로를 포함하되,
    상기 에러 정정 회로는,
    상기 소프트 디시젼 비트 세트들에 근거하여 상기 하드 디시젼 비트들에 각각 대응하는 비트 신뢰도 값들을 결정하도록 구성된 비트 신뢰도 값 결정부; 및
    상기 하드 디시젼 비트들 및 상기 비트 신뢰도 값들을 입력받아 보관하고, 상기 비트 신뢰도 값들로부터 신뢰도 값들을 복원하여 상기 하드 디시젼 비트들에 대한 디코딩 동작을 수행하도록 구성된 변수 노드를 포함하는 디코더를 포함하고,
    상기 신뢰도 값들은, 상기 변수 노드에서 정의된 갈루아 필드(GF)에서, 상기 하드 디시젼 비트들로 구성된 디시젼 심볼을 제외한 원소들에 각각 대응하는 전자 장치.
  18. 제17항에 있어서,
    상기 비트 신뢰도 값들은, GF(2)에서 상기 소프트 디시젼 비트 세트들에 각각 대응하는 로그 우도비들로서 추정된 신뢰도 값들의 크기들인 전자 장치.
  19. 제17항에 있어서,
    상기 비트 신뢰도 값들 각각은, 부호 정보를 포함하지 않는 전자 장치.
  20. 제17항에 있어서,
    상기 비트 신뢰도 값 결정부는, 상기 소프트 디시젼 비트 세트들에 각각 대응하는 상기 비트 신뢰도 값들을 포함하는 비트 신뢰도 값 테이블을 참조하여 상기 비트 신뢰도 값들을 결정하는 전자 장치.
  21. 제17항에 있어서,
    상기 변수 노드는, 상기 하드 디시젼 비트들 중 하나 이상의 선택된 하드 디시젼 비트들의 비트 신뢰도 값들의 합을 상기 원소들 중 제1 원소에 대응하는 신뢰도 값으로 복원하고,
    상기 선택된 하드 디시젼 비트들은, 상기 디시젼 심볼과 상기 제1 원소를 비트 단위로 비교시, 서로 다른 하나 이상의 비트들인 전자 장치.
  22. 제17항에 있어서,
    상기 신뢰도 값들 각각은, 상기 디시젼 심볼 및 대응하는 원소에 대한 로그 우도비로 추정되는 전자 장치.
  23. 제17항에 있어서,
    상기 하드 디시젼 비트들은, IID(Independent Identically Distributed) 조건을 만족하는 전자 장치.
  24. 제17항에 있어서,
    상기 메모리 셀들은 동일한 워드라인에 연결된, 전자 장치.
  25. 제17항에 있어서,
    상기 디코더는, 비이진 LDPC(Low Density Parity Check) 코드에 근거하여 상기 디코딩 동작을 수행하는 전자 장치.
  26. 복수의 메모리 셀들을 포함하고, 상기 메모리 셀들로부터 복수의 하드 디시젼 비트들 및 상기 하드 디시젼 비트들 각각에 대응하는 복수의 소프트 디시젼 비트 세트들을 각각 리드하도록 구성된 메모리 장치; 및
    상기 소프트 디시젼 비트 세트들에 근거하여 상기 하드 디시젼 비트들에 대한 디코딩 동작을 수행하도록 구성된 에러 정정 회로를 포함하되,
    상기 에러 정정 회로는,
    상기 소프트 디시젼 비트 세트들에 근거하여 상기 하드 디시젼 비트들에 각각 대응하는 비트 신뢰도 값들을 결정하도록 구성된 비트 신뢰도 값 결정부; 및
    상기 하드 디시젼 비트들이 그룹핑된 복수의 디시젼 심볼들을 각각 입력받는 복수의 변수 노드들을 포함하는 디코더를 포함하되,
    각 변수 노드는, 입력된 디시젼 심볼에 대응하는 비트 신뢰도 값들을 입력받아 보관하고, 상기 디시젼 심볼에 대응하는 비트 신뢰도 값들로부터 신뢰도 값들을 복원하여 상기 디시젼 심볼에 대한 디코딩 동작을 수행하고,
    상기 신뢰도 값들은, 상기 변수 노드에서 정의된 갈루아 필드(GF)에서, 상기 디시젼 심볼을 제외한 원소들에 각각 대응하는 전자 장치.
KR1020180096335A 2018-08-17 2018-08-17 에러 정정 장치, 그것의 동작 방법 및 그것을 포함하는 전자 장치 KR20200020535A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180096335A KR20200020535A (ko) 2018-08-17 2018-08-17 에러 정정 장치, 그것의 동작 방법 및 그것을 포함하는 전자 장치
US16/212,280 US10892779B2 (en) 2018-08-17 2018-12-06 Error correction device, operating method thereof and electronic device including the same
CN201811524885.XA CN110837435B (zh) 2018-08-17 2018-12-13 错误校正装置、该错误校正装置的操作方法以及电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180096335A KR20200020535A (ko) 2018-08-17 2018-08-17 에러 정정 장치, 그것의 동작 방법 및 그것을 포함하는 전자 장치

Publications (1)

Publication Number Publication Date
KR20200020535A true KR20200020535A (ko) 2020-02-26

Family

ID=69523560

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180096335A KR20200020535A (ko) 2018-08-17 2018-08-17 에러 정정 장치, 그것의 동작 방법 및 그것을 포함하는 전자 장치

Country Status (3)

Country Link
US (1) US10892779B2 (ko)
KR (1) KR20200020535A (ko)
CN (1) CN110837435B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11881276B2 (en) 2021-05-07 2024-01-23 SK Hynix Inc. Error correcting code decoder

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6574772B1 (en) * 2000-02-04 2003-06-03 Northrop Grumman Corporation Efficient galois field multiplier structures for error-correction encoding and decoding
US7398453B2 (en) * 2005-10-03 2008-07-08 Motorola, Inc. Method and apparatus for a low-density parity-check decoder
US8694868B1 (en) * 2010-10-21 2014-04-08 Marvell International Ltd. Systems and methods for performing multi-state bit flipping in an LDPC decoder
KR101968746B1 (ko) * 2011-12-30 2019-04-15 삼성전자주식회사 저장 장치로부터 데이터를 읽는 읽기 방법, 에러 정정 장치, 그리고 에러 정정 코드 디코더를 포함하는 저장 시스템
US8812935B2 (en) * 2012-08-02 2014-08-19 Oracle International Corporation Using a data ECC to detect address corruption
JP6367562B2 (ja) 2013-01-31 2018-08-01 エルエスアイ コーポレーション 選択的なバイナリ復号および非バイナリ復号を用いるフラッシュ・メモリ内の検出および復号
KR20150128750A (ko) * 2013-03-07 2015-11-18 마벨 월드 트레이드 리미티드 늦은 신뢰도 정보를 사용하여 디코딩하기 위한 시스템 및 방법
US20140281794A1 (en) * 2013-03-14 2014-09-18 Kabushiki Kaisha Toshiba Error correction circuit
WO2014149738A1 (en) * 2013-03-21 2014-09-25 Marvell World Trade Ltd. Systems and methods for multi-stage soft input decoding
KR20200022136A (ko) * 2018-08-22 2020-03-03 에스케이하이닉스 주식회사 에러 정정 장치 및 그것을 포함하는 전자 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11881276B2 (en) 2021-05-07 2024-01-23 SK Hynix Inc. Error correcting code decoder

Also Published As

Publication number Publication date
US20200059244A1 (en) 2020-02-20
CN110837435B (zh) 2023-03-28
US10892779B2 (en) 2021-01-12
CN110837435A (zh) 2020-02-25

Similar Documents

Publication Publication Date Title
CN103380416B (zh) 用于读取存储器的目标存储器扇区的方法和存储器系统
US9294132B1 (en) Dual-stage data decoding for non-volatile memories
KR101422050B1 (ko) 셀 당 멀티­비트인 플래시 메모리에서의 오류 보정 방법
KR100842680B1 (ko) 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
US8321760B2 (en) Semiconductor memory device and data processing method thereof
US9070453B2 (en) Multiple programming of flash memory without erase
US20140223255A1 (en) Decoder having early decoding termination detection
JP5529751B2 (ja) メモリアレイにおけるエラー訂正
US8935598B1 (en) System and method for adaptive check node approximation in LDPC decoding
JP2019057752A (ja) メモリシステム
US10191801B2 (en) Error correction code management of write-once memory codes
EP2992429B1 (en) Decoder having early decoding termination detection
US10790854B2 (en) Coset probability based majority-logic decoding for non-binary LDPC codes
KR20200020535A (ko) 에러 정정 장치, 그것의 동작 방법 및 그것을 포함하는 전자 장치
US10191803B2 (en) Rewriting flash memories by message passing
US10606695B2 (en) Error correction circuit and memory system including the same
CN103973316A (zh) 具有使用定标常数的可变节点更新器的ldpc解码器
US20170220417A1 (en) Method of operating a memory device
US11880588B2 (en) SSD device featuring improved decoding
US11881276B2 (en) Error correcting code decoder
US11152956B1 (en) Coset probability based decoding for non-binary LDPC codes
US20210089393A1 (en) Memory system and method for controlling nonvolatile memory
KR20090048142A (ko) 불휘발성 메모리 장치의 ecc 처리부
KR20230086557A (ko) 메모리 매칭된 저 밀도 패리티 검사 코딩 체계
KR101172672B1 (ko) 부호길이 동기화가 적용된 메모리 장치 및 이의 부호길이 동기화 방법

Legal Events

Date Code Title Description
A201 Request for examination