KR20100081551A - 디코딩 방법 및 그 방법을 이용하는 메모리 시스템 장치 - Google Patents

디코딩 방법 및 그 방법을 이용하는 메모리 시스템 장치 Download PDF

Info

Publication number
KR20100081551A
KR20100081551A KR1020090000842A KR20090000842A KR20100081551A KR 20100081551 A KR20100081551 A KR 20100081551A KR 1020090000842 A KR1020090000842 A KR 1020090000842A KR 20090000842 A KR20090000842 A KR 20090000842A KR 20100081551 A KR20100081551 A KR 20100081551A
Authority
KR
South Korea
Prior art keywords
variable
decoding
nodes
selecting
probability value
Prior art date
Application number
KR1020090000842A
Other languages
English (en)
Other versions
KR101535225B1 (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 KR1020090000842A priority Critical patent/KR101535225B1/ko
Priority to US12/652,768 priority patent/US8397116B2/en
Publication of KR20100081551A publication Critical patent/KR20100081551A/ko
Application granted granted Critical
Publication of KR101535225B1 publication Critical patent/KR101535225B1/ko

Links

Images

Classifications

    • 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/3738Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with judging correct decoding
    • 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/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/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • 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/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • 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
    • H03M13/451Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
    • 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
    • H03M13/458Soft decoding, i.e. using symbol reliability information by updating bit probabilities or hard decisions in an iterative fashion for convergence to a final decoding result
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/18Information format or content conversion, e.g. adaptation by the network of the transmitted or received information for the purpose of wireless delivery to users or terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes

Abstract

디코딩(decoding) 방법 및 그 방법을 이용하는 메모리 시스템 장치가 개시된다. 상기 디코딩 방법은 수신된 데이터의 확률값을 이용하여 복수의 변수 노드들 및 복수의 체크 노드들을 업데이트하는 제 1 디코딩 방법을 수행하는 단계 및 제 1 디코딩 방법을 수행하여 디코딩에 성공하지 못한 경우, 제 2 디코딩 방법을 수행하는 단계를 구비하고, 상기 제 2 디코딩 방법을 수행하는 단계는 상기 변수 노드들 중 적어도 하나의 변수 노드를 선택하는 단계, 상기 선택된 변수 노드에 수신된 데이터의 확률값을 수정하는 단계 및 상기 수정된 확률값을 이용하여 상기 변수 노드들 및 상기 체크 노드들을 업데이트하여 상기 디코딩 성공 여부를 판단하는 단계를 구비할 수 있다. 상기 디코딩 방법 및 그 방법을 이용하는 메모리 시스템 장치는 에러 마루(error-floor) 영역을 낮출 수 있고, 디코딩의 성공 확률을 증가시킬 수 있으므로 디코딩 성능을 향상시킬 수 있는 장점이 있다.

Description

디코딩 방법 및 그 방법을 이용하는 메모리 시스템 장치{Decoding method and memory system device for using the method}
본 발명은 디코딩(decoding) 방법 및 그 방법을 이용하는 메모리 시스템 장치에 관한 것으로, 특히 반복 디코딩(iterative decoding)에서 보다 효율적인 디코딩 방법 및 그 방법을 이용하는 메모리 시스템 장치에 관한 것이다.
통상적으로 디지털 통신 시스템은 전송로에서 발생하는 잡음에 의해 오류가 발생하며, 상기 발생된 오류를 제거하기 위하여 다양한 방식으로 오류를 정정하고 있다. 상기 오류를 정정하는 방식으로는 컨볼루셔널 코드(convolutional code), 터보 코드(turbo code), LDPC 코드(low density parity check code), RA 코드(repeat accumulate code) 및 지그재그 코드(zigzag code) 등이 있다. 상기 코드들 중 상기 터보 코드, LDPC 코드, RA 코드 및 지그재그 코드는 반복 디코딩(iterative decoding) 방식을 사용한다.
본 발명이 해결하고자 하는 과제는 디코딩(decoding) 성능을 향상시킬 수 있는 디코딩(decoding) 방법을 제공하는데 있다.
본 발명이 해결하고자 하는 다른 과제는 상기 디코딩 방법을 이용하는 메모리 시스템 장치를 제공하는데 있다.
상기 과제를 달성하기 위한 본 발명의 일 실시예에 따른 디코딩(decoding) 방법은 수신된 데이터의 확률값을 이용하여 복수의 변수 노드들 및 복수의 체크 노드들을 업데이트하는 제 1 디코딩 방법을 수행하는 단계 및 제 1 디코딩 방법을 수행하여 디코딩에 성공하지 못한 경우 제 2 디코딩 방법을 수행하는 단계를 구비하고, 상기 제 2 디코딩 방법을 수행하는 단계는 상기 변수 노드들 중 적어도 하나의 변수 노드를 선택하는 단계, 상기 선택된 변수 노드에 수신된 데이터의 확률값을 수정하는 단계 및 상기 수정된 확률값을 이용하여 상기 변수 노드들 및 상기 체크 노드들을 업데이트하여 상기 디코딩 성공 여부를 판단하는 단계를 구비할 수 있다.
상기 변수 노드를 선택하는 단계는 상기 제 1 디코딩 방법에서 상기 업데이트를 복수 회 수행한 경우, 각각의 횟수에서 불만족 체크 노드(unsatisfied check node)의 개수를 카운팅하는 단계 및 상기 카운팅한 개수가 최소인 횟수의 불만족 체크 노드에 연결된 변수 노드들 중 적어도 하나의 변수 노드를 선택하는 단계를 구비할 수 있다.
상기 불만족 체크 노드에 연결된 변수 노드들 중 적어도 하나의 변수 노드를 선택하는 단계는 상기 카운팅한 개수가 최소인 모든 횟수의 모든 불만족 체크 노드에 연결된 변수 노드들을 선택하는 단계일 수 있다.
상기 불만족 체크 노드에 연결된 변수 노드들 중 적어도 하나의 변수 노드를 선택하는 단계는 상기 카운팅한 개수가 최소인 횟수의 불만족 체크 노드들에 공통적으로 연결된 변수 노드를 선택하는 단계일 수 있다.
상기 불만족 체크 노드에 연결된 변수 노드들 중 적어도 하나의 변수 노드를 선택하는 단계는 상기 카운팅한 개수가 최소인 횟수의 불만족 체크 노드에 소정의 횟수이상 연결된 변수 노드를 선택하는 단계일 수 있다.
상기 불만족 체크 노드에 연결된 변수 노드들 중 적어도 하나의 변수 노드를 선택하는 단계는 상기 카운팅한 개수가 최소인 횟수들 중 마지막 횟수의 모든 불만족 체크 노드에 연결된 변수 노드들을 선택하는 단계일 수 있다.
상기 변수 노드를 선택하는 단계는 상기 각각의 변수 노드의 확률값의 부호가 변경되는 횟수를 판단하는 단계 및 상기 횟수가 높은 순서로 i(i는 자연수)개의 변수 노드를 선택거나 상기 횟수가 소정의 값 이상인 변수 노드를 선택하는 단계를 구비할 수 있다.
상기 변수 노드를 선택하는 단계는 상기 수신된 데이터의 확률값의 크기가 소정의 범위 이내인 변수 노드를 선택하는 단계를 구비할 수 있다.
상기 확률값을 수정하는 단계는 상기 선택된 변수 노드의 확률값의 부호를 변경하는 단계 및 상기 선택된 변수 노드의 확률값의 크기를 변경하는 단계 중 적 어도 하나의 단계를 구비할 수 있다.
상기 다른 과제를 달성하기 위한 본 발명의 일 실시예에 따른 메모리 시스템장치는 메모리 장치 및 상기 메모리 장치에서 독출된 데이터를 상기 디코딩 방법에 의하여 디코딩하는 메모리 컨트롤러를 구비할 수 있다.
본 발명에 따른 디코딩(decoding) 방법 및 그 방법을 이용하는 메모리 시스템 장치는 에러 마루(error-floor) 영역을 낮출 수 있고, 디코딩의 성공 확률을 증가시킬 수 있으므로 디코딩 성능을 향상시킬 수 있는 장점이 있다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일 실시예에 따른 디코딩(decoding) 방법의 흐름도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 디코딩(decoding) 방법은 수신된 데이터의 확률값을 이용하여 디코딩을 수행하는 제 1 디코딩 방법을 수행하는 단계(S120) 및 상기 제 1 디코딩 방법을 수행한 결과 디코딩을 성공하지 못한 경우 제 2 디코딩 방법을 수행하는 단계(S160)를 포함할 수 있다. 이하 도 1에서는 상기 제 1 디코딩 방법을 수행하는 단계(S120)를 위주로 설명하고, 도 2에서는 상기 제 2 디코딩 방법을 수행하는 단계(S160)를 위주로 설명한다.
먼저, 데이터를 수신하면 상기 수신된 데이터의 확률값을 계산한다(S110). 상기 확률값을 계산하기 위하여 LLR(Log Likelihood Ratio), LR(Likelihood Ratio) 등을 이용할 수 있다. 그러나, 본 발명이 이 경우에 한정되는 것은 아니며 다른 방법을 이용하여서도 수신된 데이터의 확률값을 계산할 수 있다면 본 발명의 권리범위에 포함된다.
상기 수신된 데이터의 확률값을 계산한 후, 상기 계산된 확률값을 이용하여 변수 노드(variable node)들 및 체크 노드(check node)들의 업데이트(update)를 수행한다(S130). 예를 들어, 상기 변수 노드를 업데이트하는 경우에는 상기 수신된 데이터의 확률값 및 관련된 체크 노드들로부터 전송된 값들을 이용한다. 그리고, 상기 체크 노드를 업데이트하는 경우에는 관련된 변수 노드들의 확률값들을 이용한다.
상기 업데이트를 수행하기 위하여 합-곱 디코딩 알고리즘(sum-product decoding algorithm), 최소-합 디코딩 알고리즘(min-sum decoding algorithm), 비트-반전 디코딩 알고리즘(bit-flipping decoding algorithm) 등을 이용할 수 있다. 다만, 본 발명이 상기 알고리즘을 이용하여 상기 변수 노드 및 상기 체크 노드를 업데이트하는 경우에 한정되는 것은 아니며, 다른 알고리즘을 이용하여도 상기 변수 노드 및 상기 체크 노드를 업데이트할 수 있다면 본 발명의 권리범위에 포함된다.
상기 변수 노드들 및 상기 체크 노드들의 업데이트를 수행한 후, 상기 디코딩이 성공하였는지 여부를 판단한다(S140). 상기 디코딩이 성공한 것으로 판단되면, 더 이상 디코딩을 수행할 필요가 없으므로 종료한다. 그러나, 상기 디코딩이 성공하지 못한 것으로 판단되면, 업데이트를 n 회(n은 자연수) 반복하였는지 판단한다(S150). 예를 들어, n이 50이라고 하면, 현재 업데이트를 1회 실시한 상태이어서 50보다 작으므로, S130 단계부터 다시 수행한다. 즉, 상기 변수 노드들 및 상기 체크 노드들을 n 회 업데이트하는 동안 디코딩을 성공하면 상기 디코딩을 종료하고, n 회의 업데이트를 했음에도 디코딩을 성공하지 못한 경우 S160 단계로 넘어간다. 이상과 같이 상기 변수 노드들 및 상기 체크 노드들의 업데이트를 반복적으로 수행하면서 디코딩의 성공 여부를 판단하는 것을 반복 디코딩(iterative decoding)이라고 한다.
이하에서는, 제 1 디코딩 방법을 수행하는 단계(S120)에서 상기 변수 노드들 및 상기 체크 노드들을 n 회 업데이트 하였음에도 상기 디코딩을 성공하지 못한 경우에 대하여 설명한다. 이 경우 디코딩을 실패한 것으로 결정하지 않고 제 2 디코딩 방법을 수행한다(S160 단계). 제 2 디코딩 방법을 수행하는 단계(S160)에 대하여는 이하에서 도 2를 참조하여 상세하게 설명한다.
도 2는 도 1의 제 2 디코딩 방법을 수행하는 단계(S160)의 흐름도이다.
도 1 및 도 2를 참조하면, 먼저 상기 변수 노드들 중 적어도 하나의 변수 노드를 선택한다(S210). 즉, 상기 변수 노드들 중 에러가 발생했을 확률이 높은 적어도 하나의 변수 노드를 선택한다. 상기 변수 노드들 중 적어도 하나의 노드를 선택 하는 실시예에 대하여는 도 3 및 도 4를 참조하여 보다 상세하게 설명한다.
상기 변수 노드를 선택한 경우, 상기 선택된 변수 노드에 수신된 데이터의 확률값을 수정하고(S220), 상기 수정된 확률값을 이용하여 상기 변수 노드들 및 상기 체크 노드들을 업데이트하여 상기 디코딩 성공 여부를 판단한다 (S230). 즉, 에러가 발생했을 확률이 높은 변수 노드를 선택하여, 상기 선택된 변수 노드에 수신된 데이터의 확률값을 수정하여 상기 디코딩을 다시 수행함으로서 상기 디코딩의 성공 확률이 높아진다. 상기 선택된 변수 노드의 확률값을 수정하는 실시예에 대하여는 도 3 및 도 4를 참조하여 보다 상세하게 설명한다.
상기 디코딩 성공 여부를 판단하는 단계(S230)는 상기 수정된 확률값을 이용하여 업데이트를 수행한다는 점을 제외하고 제 1 디코딩 방법을 수행하는 단계(S120)와 유사하다. 먼저, 상기 수정된 확률값을 이용하여 변수 노드들 및 체크 노드들의 업데이트를 수행한다(S240). 예를 들어, 첫 번째 업데이트에서 상기 체크 노드들은 관련된 변수 노드들의 수정된 확률값을 이용하여 업데이트를 수행한다. 그리고, 상기 변수 노드를 업데이트하는 경우에는 상기 수정된 확률값 및 관련된 체크 노드들로부터 전송된 값들을 이용한다. S130 단계와 마찬가지로 상기 업데이트를 수행하기 위하여 합-곱 디코딩 알고리즘(sum-product decoding algorithm), 최소-합 디코딩 알고리즘(min-sum decoding algorithm), 비트-반전 디코딩 알고리즘(bit-flipping decoding algorithm) 등을 이용할 수 있으나, 본 발명이 이 경우에 한정되는 것은 아니다.
상기 변수 노드들 및 상기 체크 노드들의 업데이트를 수행한 후, 상기 디코 딩이 성공하였는지 판단한다(S250). 즉, 상기 변수 노드들 및 상기 체크 노드들을 업데이트한 후 업데이트된 상기 변수 노드들의 확률값들을 이용하여 상기 디코딩의 성공 여부를 판단한다. 상기 디코딩이 성공한 것으로 판단되면, 더 이상 디코딩을 수행할 필요가 없으므로 종료한다. 그러나, 상기 디코딩이 성공하지 못한 것으로 판단되면, 업데이트를 m 회(m은 자연수) 반복하였는지 판단한다(S260). m 은 S150 단계의 n과 동일한 숫자일수도 있고 상이한 숫자일 수도 있다. 상기 업데이트가 m회 수행되지 않았다면, S240 단계부터 다시 수행한다. 상기 업데이트를 m 회 반복하였음에도 상기 디코딩을 성공하지 못하는 경우 상기 디코딩은 실패한 것으로 결정하여 종료하고, 상기 업데이트를 m 회 반복하여 수행하기 전에 상기 디코딩을 성공한 경우에도 상기 디코딩은 성공한 것으로 결정하여 종료한다. 즉, 제 2 디코딩 방법(S160) 중 상기 수정된 확률값을 이용하여 상기 변수 노드들 및 상기 체크 노드들을 업데이트하여 상기 디코딩 성공 여부를 판단하는 단계(S230)도 앞서 언급한 바와 같이 반복 디코딩(iterative decoding) 방식이다.
도 2에서는 S210 단계 내지 S230 단계가 1회 수행하는 경우에 대하여 도시하고 있다. 그러나, 필요에 따라 S210 단계 내지 S230 단계를 반복하여 수행할 수도 있다. 예를 들어, 상기 업데이트를 m 회 반복하였음에도 상기 디코딩을 성공하지 못하는 경우, 상기 디코딩은 실패한 것으로 결정하여 종료하지 않고 다시 S210 단계부터 시작함으로서 상기 제 2 디코딩을 반복하여 수행할 수도 있다. 이 경우, 상기 변수 노드들 중 에러가 발생했을 확률이 높은 적어도 하나의 변수 노드를 다시 선정할 수 있다.
도 3은 본 발명의 일 실시예에 따른 디코딩 방법을 설명하기 위한 이분 그래프(bipartite graph)의 도면이다.
도 4는 도 1의 제 1 디코딩 방법(S120)을 수행한 결과를 나타내는 표이다.
이하에서는 도 1 내지 도 4를 참조하여, 본 발명의 일 실시예에 따른 디코딩 방법을 설명한다. 이하에서는 편의상 7개의 변수 노드(V1, V2, ... , V7) 및 3개의 체크 노드(C1, C2, C3)를 포함하는 이분 그래프로 설명한다.
각각의 변수 노드(V1, V2, ... , V7)에 수신된 데이터의 확률값이 각각의 변수 노드(V1, V2, ... , V7)의 최초 확률값이다. 각각의 체크 노드(C1, C2, C3)는 관련된 변수 노드의 확률값을 이용하여 업데이트한다. 그리고, 각각의 변수 노드(V1, V2, ... , V7)는 상기 수신된 데이터의 확률값 및 관련된 체크 노드들로부터 전송된 값들을 이용하여 업데이트된다. 예를 들어, 변수 노드(V5)가 업데이트되는 경우, 체크 노드(C1)는 변수 노드(V1, V4, V7)의 확률값을 연산한 값을 변수 노드(V5)로 전송하고, 체크 노드(C3)는 변수 노드(V3, V6, V7)의 확률값을 연산한 값을 변수 노드(V5)로 전송한다. 변수 노드(V5)의 확률값은 수신된 데이터의 확률값, 체크 노드(C1)에서 전송된 값 및 체크 노드(C3)에서 전송된 값을 이용하여 결정된다. 상기와 같은 업데이트 방법에 대하여는 당해 기술분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항이므로 보다 상세한 설명은 생략한다.
이하에서, n은 10이라고 가정하고, 10번의 업데이트를 완료하였음에도 상기 디코딩을 성공하지 못하였다고 가정한다.
먼저, 변수 노드들(V1, V2, ... , V7) 중 적어도 하나의 변수 노드를 선택하 는 단계(S210)의 실시예에 대하여 설명한다.
상기 변수 노드를 선택하는 방법에 관한 제 1 실시예로, 제 1 디코딩 방법(S120)에서 업데이트(S130)를 복수 회 수행한 경우, 각각의 횟수에서 불만족 체크 노드(unsatisfied check node)를 카운팅하고, 상기 카운팅한 개수가 최소인 횟수의 불만족 체크 노드에 연결된 변수 노드들 중 적어도 하나의 변수 노드를 선택할 수 있다. 상기 불만족 체크 노드는 연결된 변수 노드들 중 에러가 발생한 변수 노드가 홀수 개 있는 체크 노드를 의미한다. 예를 들어, 도 3과 같이 변수 노드들(V1, V2, ... , V7)과 체크 노드들(C1, C2, C3)이 연결되어 있는 경우, 변수 노드들(V1, V2, ... , V7) 중 변수 노드(V6)에만 에러가 발생하였다면 체크 노드(C2, C3)가 상기 불만족 체크 노드가 된다.
도 4를 참조하면, 10번의 업데이트 중에서 상기 카운팅한 개수가 최소인 횟수는 3회 및 8회이며, 3회 및 8회의 상기 불만족 체크 노드의 개수는 1개이다. 그리고, 3회째 업데이트에서 에러가 발생한 체크 노드는 C1이고, 8회째 업데이트에서 에러가 발생한 체크 노드는 C3이다. 체크 노드(C1)에 연결된 변수 노드는 V1, V4, V5, V7이고, 체크 노드(C3)에 연결된 변수 노드는 V3, V5, V6, V7이다.
상기 변수 노드를 선택하는 방법으로는 상기 카운팅한 개수가 최소인 모든 횟수의 모든 불만족 체크 노드들에 연결된 모든 변수 노드들을 선택하는 방법(이하 'a 방법'이라 함), 상기 카운팅한 개수가 최소인 횟수의 불만족 체크 노드들에 공통적으로 연결되는 변수 노드를 선택하는 방법(이하 'b 방법'이라 함), 상기 카운팅한 개수가 최소인 횟수의 불만족 체크 노드들에 소정의 횟수이상 연결된 변수 노 드를 선택하는 방법(이하 'c 방법'이라 함) 및 상기 카운팅한 개수가 최소인 횟수들 중 가장 마지막 횟수의 모든 불만족 체크 노드에 연결된 변수 노드들을 선택하는 방법(이하 'd 방법'이라 함) 등이 있다. 상기 a 방법에 따를 경우 변수 노드들은 V1, V3, V4, V5, V6 및 V7이 선택된다. 상기 b 방법 및 상기 c 방법에 따를 경우에는 V5 및 V7이 선택된다. 상기 d 방법에 따를 경우, 상기 카운팅한 개수가 가장 작은 횟수들은 3회 및 8회이므로, 그 중 가장 마지막 횟수인 8회째 업데이트를 한 후의 불만족 체크 노드인 C3에 연결된 변수 노드들(V3, V5, V6, V7)이 선택된다.
상기 변수 노드를 선택하는 방법에 관한 제 2 실시예로, 각각의 변수 노드(V1, V2, ... , V7)의 확률값의 부호가 변경되는 횟수를 판단하여, 상기 횟수가 높은 순서로 i 개(i는 자연수)의 변수 노드를 선택하거나 상기 횟수가 소정의 값 이상인 변수 노드를 선택할 수 있다. 예를 들어, 10번의 업데이트를 하는 동안, 변수 노드들(V1, V2, ... , V7)의 확률값의 부호가 각각 2번, 4번, 7번, 5번, 1번, 3번, 6번 변경되었다고 가정하자. 상기 제 2 실시예에 따라 상기 부호가 변경된 횟수가 높은 순서대로 3개의 변수 노드를 선택하고자 한다고 가정하면, 상기 부호가 변경된 횟수가 높은 순서대로 3개의 변수 노드들(V3, V7, V4)이 선택된다. 또한, 상기 제 2 실시예에 따라 상기 부호가 변경된 횟수가 6회 이상인 변수 노드를 선택하고자 한다면 2개의 변수 노드들(V3, V7)이 선택된다.
또는, 각각의 변수 노드의 확률값의 부호가 변경되는 횟수 대신에 각각의 변수 노드의 확률값의 부호가 최초에 수신된 데이터의 확률값의 부호와 다른 횟수를 사용할 수도 있다. 예를 들어, 상기 확률값이 LLR로 표현되고 최초 수신된 데이터의 확률값의 부호가 (+)인 경우, 상기 각각의 변수 노드의 확률값의 부호가 ()인 경우의 횟수를 판단할 수 있다. 상기 확률값을 LR로 사용하는 경우에는 상기 각각의 변수 노드의 확률값의 크기가 소정의 값을 기준으로 변경되는 횟수를 사용할 수 있다. 예를 들어, 상기 확률값이 LR로 표현되고 최초 수신된 데이터의 확률값의 크기가 1 이상인 경우, 상기 각각의 변수 노드의 확률값의 크기가 1 이하로 변경되는 횟수를 판단할 수도 있다.
상기 변수 노드를 선택하는 방법에 관한 제 3 실시예로, 각각의 변수 노드(V1, V2, ... , V7)에 수신된 데이터의 확률값의 크기가 소정의 범위 이내인 변수 노드를 선택할 수 있다. 상기 확률값으로 LLR을 사용하는 경우에는, LLR의 절대값의 크기가 작을수록 에러가 발생했을 가능성이 높아진다. 또한 확률 값으로 LR을 사용하는 경우에는 LR이 1 근처에 가까울수록 에러가 발생했을 가능성이 높아진다. 예를 들어, 상기 확률값으로 LLR을 사용하는 경우에는 상기 소정의 범위는 -0.1~0.1의 범위로 지정할 수 있고, 상기 확률값으로 LR을 사용하는 경우에는 상기 소정의 범위는 e-0.1~e0.1의 범위로 지정할 수도 있다. 다만, 상기 소정의 범위가 상기 수치로 한정되는 것은 아니고, 필요에 따라 범위를 변경할 수 있다.
상기 제 1 내지 제 3 실시예 중 하나를 이용하여 상기 변수 노드를 선택할 수도 있고, 두 개 이상의 실시예들을 함께 적용하여 상기 변수 노드를 선택할 수도 있다. 예를 들어, 상기 c 방법과 상기 제 3 실시예를 함께 적용하거나, 상기 a 방 법과 상기 d 방법을 함께 적용하는 등의 다양한 조합을 할 수 있다. 상기 b 방법과 상기 제 2 실시예를 함께 적용하는 경우를 가정하면, 상기 b 방법에 의하여 선택된 변수 노드들과 상기 제 2 실시예에 의하여 선택된 변수 노드들을 모두 선택하거나 또는 공통되는 변수 노드들만을 선택할 수 있다. 즉, 상기 예에서 상기 b 방법에 의하여 선택된 변수 노드들은 V5, V7이고 상기 제 2 실시예에 의하여 선택된 변수노드들은 V3, V4, V7이므로, 선택된 모든 변수 노드들(V3, V4, V5, V7)을 선택하거나 공통된 변수 노드(V7)를 선택할 수 있다.
다만, 상기 제 1 내지 제 3 실시예는 변수 노드를 선택하는 일 실시예에 관한 것이고, 본 발명이 반드시 이에 한정되는 것은 아니며 상기 변수 노드들 중 에러가 발생했을 확률이 높은 적어도 하나의 변수 노드를 선택할 수 있다면 다른 방법을 이용할 수도 있다.
상기 선택된 변수 노드에 수신된 데이터의 확률값을 수정하는 단계(S220)의 실시예와 관련하여서는, 상기 선택된 변수 노드의 확률값의 부호를 변경하는 방법 및 상기 선택된 변수 노드의 확률값의 크기를 변경하는 방법 등이 있다. 상기 선택된 변수 노드의 확률값의 크기를 변경하는 방법은 소정의 비율로 스케일링(scaling)하는 방법, 상기 확률값을 0 또는 1로 변경하는 방법 등을 포함할 수 있다.
예를 들어, 상기 확률값이 LLR로 표현된 경우에는 상기 선택된 변수 노드의 확률값을 0으로 수정하는 방법, 상기 선택된 변수 노드의 확률값의 부호를 변경하는 방법 및 상기 선택된 변수 노드의 확률값의 크기를 다른 방법을 이용하여 변경 하는 방법 등을 이용할 수 있다, 상기 확률값이 LR로 표현된 경우에는 상기 선택된 변수 노드의 확률값을 1로 수정하는 방법, 상기 선택된 변수 노드의 확률값의 역수를 취하는 방법 및 상기 선택된 변수 노드의 확률값의 크기를 다른 방법을 이용하여 변경하는 방법 등을 이용할 수 있다.
상기 예에서 V2 및 V6 변수 노드가 선택되었다고 가정하면, 상기 V2 및 V6 변수 노드의 확률값의 부호를 변경하거나, 확률값의 크기를 변경함으로서 상기 V2 및 V6 변수 노드의 확률값을 수정할 수 있다. 상기 V2 및 V6 변수 노드의 확률값의 크기를 변경하는 방법으로는 상기 V2 및 V6 변수 노드의 확률값을 0 또는 1로 수정하거나, 확률값의 역수를 취하거나 또는 다른 방법에 의하여 크기를 변경할 수도 있다.
이 경우에도, 상기 방법들 중 하나를 선택하여 상기 선택된 변수 노드에 수신된 데이터의 확률값을 변경할 수도 있고, 상기 방법들 중 두 개 이상의 방법을 함께 적용하여 상기 선택된 변수 노드에 수신된 데이터의 확률값을 변경할 수도 있다. 예를 들어 상기 선택된 변수 노드들 중에 일부 변수 노드들은 확률값을 0으로 설정하고, 그 외의 변수 노드들은 크기를 변경할 수 있다. 다만, 본 발명이 상기 방법들에 한정되는 것은 아니며, 다른 방법을 이용하여 상기 선택된 변수 노드에 수신된 데이터의 확률값을 변경시킬 수도 있다.
상기 선택된 변수 노드에 수신된 데이터의 확률값이 수정되었으므로, 각각의 체크 노드(C1, C2, C3)는 관련된 변수 노드의 수정된 확률값을 이용하여 업데이트한다. 그리고, 각각의 변수 노드(V1, V2, ... , V7)는 상기 수정된 확률값 및 관련 된 체크 노드들로부터 전송된 값들을 이용하여 업데이트된다. 상기 업데이트한 결과를 이용하여 상기 디코딩이 성공하였는지 판단하는 방법과 관련하여서는 도 2와 관련하여 상세하게 설명하였으므로 이하 상세한 설명은 생략한다.
본 발명에서 n 값 및 m 값은 필요에 따라 변경할 수 있다. 예를들어, 종래에는 상기 제 1 디코딩 방법을 50회 수행하여 디코딩의 성공 여부를 결정하였다고 가정하자. 본 발명의 일 실시예에 따를 경우 상기 제 1 디코딩 방법을 50회 수행하고 제 3 디코딩 방법을 50회 수행한다면 종래에 비하여 디코딩을 하는데 약 2배의 시간이 소요될 수 있다. 따라서, 시간을 감소시키기 위하여 필요에 따라 적절하게 상기 n 값 및 m 값을 조절할 수 있다. 상기 예의 경우, 상기 제 1 디코딩 방법을 30회 수행하고 상기 제 3 디코딩 방법을 20회 수행한다면 종래와 동일한 시간동안 디코딩을 수행하지만 종래보다 정확하게 디코딩할 수 있다. 또는, 시간이 오래 걸려도 정확도를 향상시키기 위하여는 상기 n 값 및 m 값을 크게 할 수도 있다.
본 발명은 반복 디코딩(iterative decoding)을 사용하는 코드의 경우 보다 효율적으로 적용될 수 있으며, 상기 반복 디코딩을 사용하는 코드로 LDPC 코드(low density parity check code), RA 코드(repeat accumulate code), 지그재그 코드(zigzag code) 등이 있다. 다만, 본 발명이 상기 코드들에 한정되는 것은 아니고, 다른 코드들을 디코딩하는 경우에도 적용이 가능하다.
도 5는 본 발명의 일 실시예에 따른 디코딩 방법을 사용하는 컴퓨팅 시스템 장치(500)를 나타내는 블록도이다.
도 5를 참조하면, 본 발명에 따른 컴퓨팅 시스템 장치(500)는 버스(560)에 전기적으로 연결된 마이크로프로세서(530), 사용자 인터페이스(550), 그리고 메모리 컨트롤러(512) 및 메모리 장치(511)를 구비하는 메모리 시스템 장치(510)을 포함할 수 있다. 메모리 컨트롤러(512)는 메모리 장치(511)에서 독출된 데이터를 상기 디코딩 방법에 의하여 디코딩하여 에러를 정정한 후 전송한다. 본 발명의 일 실시예에 따른 컴퓨팅 시스템 장치(500)는 램(540) 및 파워 공급 장치(520)을 더 구비할 수 있다.
본 발명의 일 실시예에 따른 컴퓨팅 시스템 장치(500)가 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리 및 베이스밴드 칩셋(baseband chipset)과 같은 모뎀이 추가적으로 제공될 수 있다. 또한, 본 발명에 따른 컴퓨팅 시스템 장치(500)에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명한 사항인 바, 더 자세한 설명은 생략한다.
메모리 컨트롤러(512)와 메모리 장치(511)는, 예를 들면, 데이터를 저장하는 데 불휘발성 메모리를 사용하는 SSD(Solid State Drive/Disk)를 구성할 수 있다.
도 6은 본 발명의 일 실시예에 따른 디코딩 방법을 사용하는 메모리 카드(600)를 나타내는 블럭도이다.
도 6을 참조하면, 메모리 카드(600)는 메모리 장치(610) 및 메모리 컨트롤러(620)를 구비할 수 있다. 메모리 컨트롤러(620)는 메모리 장치(610)에서 독출된 데이터를 상기 디코딩 방법에 의하여 디코딩하여 에러를 정정한 후 전송한다. 메모 리 컨트롤러(620)는 USB, MMC, PCI-E, SATA, PATA, SCSI, ESDI, 그리고 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 통해 외부(예를 들면, 호스트)와 통신하도록 구성될 것이다. 도 6의 메모리 컨트롤러(620)에 구비되고 있는 CPU(622), SRAM(621), HOST I/F(623), ECC(624), MEMORY I/F(625) 및 버스(626)의 구조 및 동작은 이 분야의 통상적인 지식을 습득한 자들에게 자명한 사항인 바, 더 자세한 설명은 생략한다.
상기에서 설명된 본 발명의 일 실시예에 따른 메모리 장치는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 메모리 장치는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장될 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 일 실시예에 따른 디코딩(decoding) 방법의 흐름도이다.
도 2는 도 1의 제 2 디코딩 방법을 수행하는 단계(S160)의 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 디코딩 방법을 설명하기 위한 이분 그래프(bipartite graph)의 도면이다.
도 4는 도 1의 제 1 디코딩 방법(S120)을 수행한 결과를 나타내는 표이다.
도 5는 본 발명의 일 실시예에 따른 디코딩 방법을 사용하는 컴퓨팅 시스템 장치를 나타내는 블록도이다.
도 6은 본 발명의 일 실시예에 따른 디코딩 방법을 사용하는 메모리 카드를 나타내는 블록도이다.

Claims (12)

  1. 수신된 데이터의 확률값을 이용하여 복수의 변수 노드들 및 복수의 체크 노드들을 업데이트하는 제 1 디코딩 방법을 수행하는 단계 및
    제 1 디코딩 방법을 수행하여 디코딩에 성공하지 못한 경우, 제 2 디코딩 방법을 수행하는 단계를 구비하고,
    상기 제 2 디코딩 방법을 수행하는 단계는,
    상기 변수 노드들 중 적어도 하나의 변수 노드를 선택하는 단계
    상기 선택된 변수 노드에 수신된 데이터의 확률값을 수정하는 단계 및
    상기 수정된 확률값을 이용하여 상기 변수 노드들 및 상기 체크 노드들을 업데이트하여 상기 디코딩 성공 여부를 판단하는 단계를 구비하는 것을 특징으로 하는 디코딩 방법.
  2. 제1항에 있어서, 상기 변수 노드를 선택하는 단계는,
    상기 제 1 디코딩 방법에서 상기 업데이트를 복수 회 수행한 경우, 각각의 횟수에서 불만족 체크 노드(unsatisfied check node)의 개수를 카운팅하는 단계 및
    상기 카운팅한 개수가 최소인 횟수의 불만족 체크 노드에 연결된 변수 노드들 중 적어도 하나의 변수 노드를 선택하는 단계를 구비하는 것을 특징으로 하는 디코딩 방법.
  3. 제2항에 있어서, 상기 불만족 체크 노드에 연결된 변수 노드들 중 적어도 하나의 변수 노드를 선택하는 단계는,
    상기 카운팅한 개수가 최소인 모든 횟수의 모든 불만족 체크 노드에 연결된 변수 노드들을 선택하는 단계인 것을 특징으로 하는 디코딩 방법.
  4. 제2항에 있어서, 상기 불만족 체크 노드에 연결된 변수 노드들 중 적어도 하나의 변수 노드를 선택하는 단계는,
    상기 카운팅한 개수가 최소인 횟수의 불만족 체크 노드들에 공통적으로 연결된 변수 노드를 선택하는 단계인 것을 특징으로 하는 디코딩 방법.
  5. 제2항에 있어서, 상기 불만족 체크 노드에 연결된 변수 노드들 중 적어도 하나의 변수 노드를 선택하는 단계는,
    상기 카운팅한 개수가 최소인 횟수의 불만족 체크 노드에 소정의 횟수이상 연결된 변수 노드를 선택하는 단계인 것을 특징으로 하는 디코딩 방법.
  6. 제2항에 있어서, 상기 불만족 체크 노드에 연결된 변수 노드들 중 적어도 하나의 변수 노드를 선택하는 단계는,
    상기 카운팅한 개수가 최소인 횟수들 중 마지막 횟수의 모든 불만족 체크 노드에 연결된 변수 노드들을 선택하는 단계인 것을 특징으로 하는 디코딩 방법.
  7. 제1항에 있어서, 상기 변수 노드를 선택하는 단계는,
    상기 각각의 변수 노드의 확률값의 부호가 변경되는 횟수를 판단하거나 상기 각각의 변수 노드의 확률값의 부호가 수신된 데이터의 확률값의 부호와 다른 횟수를 판단하는 단계 및
    상기 횟수가 높은 순서로 i(i는 자연수)개의 변수 노드를 선택거나 상기 횟수가 소정의 값 이상인 변수 노드를 선택하는 단계를 구비하는 것을 특징으로 하는 디코딩 방법.
  8. 제1항에 있어서, 상기 변수 노드를 선택하는 단계는,
    상기 수신된 데이터의 확률값의 크기가 소정의 범위 이내인 변수 노드를 선택하는 단계를 구비하는 것을 특징으로 하는 디코딩 방법.
  9. 제1항에 있어서, 상기 확률값을 수정하는 단계는,
    상기 선택된 변수 노드의 확률값의 부호를 변경하는 단계 및
    상기 선택된 변수 노드의 확률값의 크기를 변경하는 단계 중 적어도 하나의 단계를 구비하는 것을 특징으로 하는 디코딩 방법.
  10. 제1항에 있어서, 상기 제 1 디코딩 방법을 수행하는 단계는,
    상기 수신된 데이터의 확률값을 이용하여 복수의 변수 노드들 및 복수의 체크 노드들을 업데이트하는 단계
    상기 업데이트한 결과를 이용하여 디코딩에 성공하였는지 판단하는 단계
    상기 디코딩에 성공하지 못한 경우, 상기 업데이트하는 단계를 n 회(n은 자연수) 수행하였는지 판단하는 단계 및
    상기 업데이트를 n 회 수행하지 않은 경우, 상기 업데이트하는 단계부터 다시 수행하는 단계를 구비하는 것을 특징으로 하는 디코딩 방법.
  11. 제1항에 있어서, 상기 디코딩 성공 여부를 판단하는 단계는,
    상기 수정된 확률값을 이용하여 복수의 변수 노드들 및 복수의 체크 노드들을 업데이트하는 단계
    상기 업데이트한 결과를 이용하여 디코딩에 성공하였는지 판단하는 단계
    상기 디코딩에 성공하지 못한 경우, 상기 업데이트하는 단계를 m 회(m은 자연수) 수행하였는지 판단하는 단계
    상기 업데이트를 m 회 수행하지 않은 경우, 상기 업데이트하는 단계부터 다시 수행하는 단계 및
    상기 업데이트를 m 회 수행한 경우, 상기 디코딩에 실패한 것으로 판단하는 단계를 구비하는 것을 특징으로 하는 디코딩 방법.
  12. 메모리 장치 및
    상기 메모리 장치에서 독출된 데이터를 제 1 항의 디코딩 방법에 의하여 디코딩하는 메모리 컨트롤러를 구비하는 메모리 시스템 장치.
KR1020090000842A 2009-01-06 2009-01-06 디코딩 방법 및 그 방법을 이용하는 메모리 시스템 장치 KR101535225B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090000842A KR101535225B1 (ko) 2009-01-06 2009-01-06 디코딩 방법 및 그 방법을 이용하는 메모리 시스템 장치
US12/652,768 US8397116B2 (en) 2009-01-06 2010-01-06 Decoding method and memory system device using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090000842A KR101535225B1 (ko) 2009-01-06 2009-01-06 디코딩 방법 및 그 방법을 이용하는 메모리 시스템 장치

Publications (2)

Publication Number Publication Date
KR20100081551A true KR20100081551A (ko) 2010-07-15
KR101535225B1 KR101535225B1 (ko) 2015-07-09

Family

ID=42312494

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090000842A KR101535225B1 (ko) 2009-01-06 2009-01-06 디코딩 방법 및 그 방법을 이용하는 메모리 시스템 장치

Country Status (2)

Country Link
US (1) US8397116B2 (ko)
KR (1) KR101535225B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140032524A (ko) * 2012-08-27 2014-03-17 삼성전자주식회사 경 판정 디코딩 방법 및 이를 이용한 저밀도 패리티 체크 디코더
KR20150121966A (ko) * 2014-04-22 2015-10-30 아주대학교산학협력단 저밀도 패리티 검사 코드의 복호화 방법 및 그 장치

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8751755B2 (en) 2007-12-27 2014-06-10 Sandisk Enterprise Ip Llc Mass storage controller volatile memory containing metadata related to flash memory storage
US8560917B2 (en) * 2009-01-27 2013-10-15 International Business Machines Corporation Systems and methods for efficient low density parity check (LDPC) decoding
US9143166B1 (en) * 2011-03-23 2015-09-22 Sk Hynix Memory Solutions Inc. Adaptive scheduling of turbo equalization based on a metric
US8843812B1 (en) 2011-03-23 2014-09-23 Sk Hynix Memory Solutions Inc. Buffer management in a turbo equalization system
US8793543B2 (en) 2011-11-07 2014-07-29 Sandisk Enterprise Ip Llc Adaptive read comparison signal generation for memory systems
CN102545913B (zh) * 2012-02-07 2015-05-27 中兴通讯股份有限公司 一种迭代译码方法及系统
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US8977926B2 (en) 2012-09-28 2015-03-10 Lsi Corporation Modified targeted symbol flipping for non-binary LDPC codes
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
WO2014138246A1 (en) * 2013-03-07 2014-09-12 Marvell World Trade Ltd. Systems and methods for decoding with late reliability information
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9136877B1 (en) * 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9361221B1 (en) 2013-08-26 2016-06-07 Sandisk Technologies Inc. Write amplification reduction through reliable writes during garbage collection
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
US9396792B2 (en) * 2014-02-26 2016-07-19 Seagate Technology Llc Adjusting log likelihood ratio values to compensate misplacement of read voltages
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
KR102045438B1 (ko) 2018-10-15 2019-11-15 고려대학교 산학협력단 Ldpc 부호의 복호를 위한 방법 및 장치

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100550414B1 (ko) * 2002-12-24 2006-02-08 한국전자통신연구원 하이브리드 재전송 시스템에서 ldpc 부호를 사용하는인코딩 장치 및 디코딩 장치
US7237181B2 (en) * 2003-12-22 2007-06-26 Qualcomm Incorporated Methods and apparatus for reducing error floors in message passing decoders
US8442441B2 (en) * 2004-12-23 2013-05-14 Qualcomm Incorporated Traffic interference cancellation
JP4595574B2 (ja) * 2005-02-07 2010-12-08 ソニー株式会社 復号装置および方法、並びにプログラム
US7609791B2 (en) * 2006-04-21 2009-10-27 Telefonaktiebolaget L M Ericsson (Publ) Iterative decoding with intentional SNR/SIR reduction
KR100738983B1 (ko) * 2006-06-07 2007-07-12 주식회사 대우일렉트로닉스 저밀도 패리티 체크 부호의 복호화 방법 및 장치, 이를이용한 광정보 재생장치
KR20090126829A (ko) * 2008-06-05 2009-12-09 삼성전자주식회사 반복 복호 방법과 반복 복호 장치
US8301979B2 (en) * 2008-10-07 2012-10-30 Sandisk Il Ltd. Low density parity code (LDPC) decoding for memory with multiple log likelihood ratio (LLR) decoders

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140032524A (ko) * 2012-08-27 2014-03-17 삼성전자주식회사 경 판정 디코딩 방법 및 이를 이용한 저밀도 패리티 체크 디코더
KR20150121966A (ko) * 2014-04-22 2015-10-30 아주대학교산학협력단 저밀도 패리티 검사 코드의 복호화 방법 및 그 장치

Also Published As

Publication number Publication date
US20100174959A1 (en) 2010-07-08
KR101535225B1 (ko) 2015-07-09
US8397116B2 (en) 2013-03-12

Similar Documents

Publication Publication Date Title
KR101535225B1 (ko) 디코딩 방법 및 그 방법을 이용하는 메모리 시스템 장치
US10707899B2 (en) Bit-flipping decoder for G-LDPC codes with syndrome-decoding for component codes
US8448050B2 (en) Memory system and control method for the same
US9432053B1 (en) High speed LDPC decoder
US11108408B2 (en) Memory controller and method of accessing flash memory
US8667360B2 (en) Apparatus, system, and method for generating and decoding a longer linear block codeword using a shorter block length
US9141467B2 (en) Semiconductor memory system including Reed-Solomon low density parity check decoder and read method thereof
US10484020B2 (en) System and method for parallel decoding of codewords sharing common data
US8751895B2 (en) Semiconductor memory device and decoding method
US10707902B2 (en) Permutation network designing method, and permutation circuit of QC-LDPC decoder
US8935598B1 (en) System and method for adaptive check node approximation in LDPC decoding
US10574274B2 (en) Systems and methods for decoding error correcting codes
US10498366B2 (en) Data dependency mitigation in parallel decoders for flash storage
US9564921B1 (en) Method and system for forward error correction decoding based on a revised error channel estimate
CN109818626A (zh) 解码低密度奇偶校验码的方法、解码器及存储器系统
US20170294923A1 (en) Optimization of low density parity-check code encoder based on a search for an independent set of nodes
US10700708B2 (en) Permutation network designing method, and permutation circuit of QC-LDPC decoder
KR102058499B1 (ko) 리드-솔로몬 저밀도 패리티 검사 디코더를 포함하는 반도체 메모리 시스템 및 그것의 읽기 방법
CN109935263B (zh) 非易失性存储器的编译码方法及存储系统
US11750219B2 (en) Decoding method, decoder, and decoding apparatus
US11876535B1 (en) Memory controller and method for controlling data in decoding pipeline
US11204831B2 (en) Memory system
CN111769839B (zh) 快速的比特翻转译码方法
CN113626249B (zh) 一种固态硬盘的软解码方法、装置、设备及存储介质
JP7309551B2 (ja) メモリシステム

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180629

Year of fee payment: 4